So Many H.264 Codecs, So Little Time
This article appears in the August/September issue of Streaming Media magazine. Click here for your free subscription.
If you produce Windows Media files, your encoder is working with code supplied by Microsoft. When you’re producing VP6 videos, your encoder is licensing some code from On2. But if you’re producing H.264 video, you could be using a codec from a number of different companies, including Apple, Dicas, MainConcept, Sorenson, and several others. Unlike the quality of either WMV or VP6-based Flash files, which are relatively homogenous due to their common origin, the quality of H.264 video varies depending upon who developed the codec and, to a lesser degree, the encoding tool.
In this review, I’ll analyze H.264 files that use the Apple, Dicas, and MainConcept codecs. I’ll look at three usage cases: standard definition, high definition, and a screencam tutorial. And I’ll detail the encoding parameters that I used in each section below.
To assess quality, I looked at three factors: still-image quality, motion quality, and playback smoothness. To assess still-image quality, I captured frames from each compressed file and compared them side by side, and you’ll see a lot of those comparisons in this article. To test motion quality, I played the files back in real time, looking for artifacts like mosquitoes, banding, jitter, and other artifacts that only appear during real-time playback. Finally, to test smoothness, I loaded each compressed file into Inlet Technology’s Semaphore to detect whether the encoder dropped any frames to meet the target data rate.
As you’ll see in each test, I rated all three codecs in each of these categories and then picked a winner. Let’s start with a brief overview of the H.264 codec, followed by a description of the codecs and encoding tools.
If you’ve produced H.264 files with different encoding tools, you know that the encoding parameters exposed by the various tools differ in both nature and extent. To a large degree, that’s because the H.264 standard doesn’t define a standard encoder; it defines a standard decoder, and codec vendors are free to employ any number of encoding techniques so long as the standard decoder can play the compressed file.
Even when a codec vendor decides to implement a specific encoding technique, it may decide not to expose those controls to the user, either in its own encoding tools (like Apple with Compressor) or to licensees of the codec (like Sorenson with the Apple codec). Or the codec vendor may expose the options to its application developers but the licensee may decide not to expose them to its end users, preferring to make the encoding tool as simple as possible to use.
Even the absence of specific controls (such as search pattern or entropy coding) doesn’t mean that these techniques are not being used since the codec or application vendor can tie them to higher-level controls such as a quality slider. This is why different encoding tools have very different interfaces, which makes it very challenging to understand exactly what’s going on under the hood. Though H.264 analysis tools like Inlet Semaphore provide some insight into the encoding techniques used by an encoding tool, to a great degree, each H.264 codec is a black box of techniques—you input a file, adjust the encoding parameters, and assess the quality of the result. Essentially, that’s what I did in this comparison.
The Apple Codec
The Apple codec is used in Apple Compressor, Grass Valley/Canopus ProCoder, and several versions of Sorenson Squeeze prior to the new release, Squeeze 5.0. The Apple codec is very simple to use; Apple exposes very few encoding parameters in any encoding tool. For example, where the other codecs let you select the profile (Baseline, Main, or High), Compressor includes a check box for Frame Reordering that encodes in the Main profile and can’t currently produce files conforming to the High profile.
I produced all Apple-codec test files in both Squeeze and Compressor to identify which encoding tool produced the best results. Ultimately, I rated the SD and tutorial tests produced by Apple Compressor rather than Squeeze, because there was very little noticeable difference. I used the Squeeze files for the high-definition comparison because Compressor couldn’t hit the data rate target.
The Dicas codec was developed by Dicas Digital Image Coding GmbH and is available in Telestream’s Episode Pro. Dicas provides a range of H.264 encoding controls, including profile, entropy coding, number of B-frames and reference frames, and enable/disable deblocking filter, along with the usual bitstream-related controls.
H.264 still accounts for most video encoding today, but HEVC/H.265 and VP9 are beginning to make noise. What will 2015 bring?
Companies and Suppliers Mentioned