How to Make the Move to HEVC
Even without a known royalty picture, virtually all mainstream encoding vendors had announced plans to integrate HEVC encoding into their product lines (more on this later). On the playback side, until HEVC encoding becomes mainstream, there’s no reason for Adobe, Apple, and Google to pay up to $25 million per annum to integrate HEVC playback into Flash, iOS, and Android. Several large publishers, most notably Netflix, have announced plans to distribute content in HEVC format, though without Flash, iOS or Android support, most smaller publishers have no incentive to start encoding their content into HEVC.
In this regard, it’s instructive to note that while it feels like HEVC deployment is dragging, HEVC adaption in the streaming space is proceeding much more quickly than H.264. Specifically, the H.264 spec was approved in March 2003, with royalty policies announced in November 2003. In a move that seems prescient in retrospect, Apple integrated H.264 into QuickTime in April 2005, and, of course, integrated H.264 playback into all video-capable iOS devices. However, H.264 didn’t become truly useful for general-purpose streaming until Adobe integrated H.264 playback into Flash in March 2008, five years after the spec was announced.
The HEVC spec was approved in January 2013, and it’s clearly taking longer than with H.264 for royalty terms to become known. However, it’s unlikely that streaming producers will have to wait five years to start using HEVC as they did with H.264.
The Encoding Side
What do we know about HEVC encoding so far? At a high level, we know that HEVC will have the same type of Profile/Level gradations exposed in H.264, as shown in Table 2 from Wikipedia. The HEVC specification finalized in January 2013 defined two video profiles, Main and Main 10, and one still-image profile, Main Still Picture. In August 2013, the five additional range extensions shown in the table were proposed.
As with H.264, as profiles integrate more advanced algorithms and features, the CPU, memory, and power required to play back the video increases. In this manner, Profiles allow hardware developers to choose the level of HEVC support in their devices based upon their own design goals and cost structures. Then, video producers can customize videos for those targets by encoding with that profile.
How will HEVC profiles be incorporated into the typical encoding interface? Taking a step back, the typical encoding interface must include multiple configuration options irrespective of the codec actually used to compress the video. These include the following:
- Resolution, pixel aspect ratio, and frame rate
- Bitrate targets and control technique (VBR, CBR)
- Group of Picture (GOP) controls, including I- and B-frame interval, the number of reference frames, and scene detection options.
- Some level of buffer control
So all of these familiar options will also be present in all HEVC encoding tools. Beyond these, most HEVC encoders will also enable HEVC profile selection, some general quality parameters, and perhaps some direct access to HEVC-specific encoding parameters.
To get a feel for what the typical HEVC encoding interface will look like, I asked a number of vendors for access to their encoders. While I did encode files using several different codecs and encoding tools, it’s premature to discuss comparative quality, though quality did vary noticeably from encoder to encoder. None of these products are actually shipping in final form, so quality comparisons at this point would be akin to analyzing the performance of football teams on the first day of training camp, which is neither useful nor relevant.
I was more interested in what encoding HEVC was going to look like from a user interface perspective, so that’s where I focused my attention, and that’s what I’ll describe going forward. As a preview, just like we saw with H.264 encoding, the configuration options exposed for HEVC encoding will vary dramatically from vendor to vendor. I’ll start with HEVC codec vendors, since they tend to expose more parameters in their encoding tools.
MainConcept is a subsidiary of Rovi (formerly Macrovision) and is primarily a codec vendor whose H.264 codec is used in a range of products sold by Adobe, Sorenson Media, and Telestream. In addition to developing their HEVC codec for licensing to third parties, the MainConcept codec will also be deployed in products sold by Rovi and other Rovi subsidiaries. Figure 3 shows the advanced dialog from Rovi’s TotalCode Studio encoder. Note that for presentation purposes, I cut the vertical screen in half and placed the controls side by side.
The screen contains a mix of old and new. You see the HEVC profile and level controls on the upper left, with familiar GOP Structure controls immediately below. The bottom left contains configuration options for coding tree units, a key HEVC innovation that is similar to macroblock units. Motion estimation controls are on the right, which manage the trade-off between searching precision and encoding time. Beneath that is the Deblocking filter, which is similar to that used in H.264 processing but with improved support for parallel processing.
Sample Adaptive Offset (SAO) is another HEVC innovation that should deliver increased quality and reduced banding and ringing artifacts. As the name suggests, Wavefront Parallel Processing is a more efficient technique for enabling parallelism than the threading technique available in H.264. Though documentation for these controls was not available when I looked at the program, MainConcept will document how to use the new features when the product ships in early 2014. The company also indicated that the controls shown in Figure 3 are advanced controls that many viewers don’t access, preferring to rely upon the default settings that MainConcept includes in its presets. Note that the initial version of TotalCode Studio will lack support for the Main 10 Profile and several other minor components of HEVC, which are all on the road map for release in 2014.
Ittiam Systems is an embedded software and systems design company that is offering an HEVC codec. Ittiam provided several sample files that were encoded via command line because no GUI was yet available. While most HEVC-related encoding parameters were available in the command line string, Ittiam did not yet support SAO and multiple tiles, though these will be introduced in 2014.
At the other end of the spectrum, Elemental Technologies takes a minimalist approach when it comes to exposing extensive codec-related encoding options to its users. This is shown in Figure 4, which contains all the HEVC-specific encoding options available in the Elemental Server real-time encoder. Beyond choosing the profile and level, you can select the number of slices, the adaptive quantization technique, enable Flicker Reduction, and via the Density versus Quality slider, manage the trade-off between encoding speed and quality.
In general, Elemental seems to prefer to optimize settings behind the scenes and present the user with a limited number of relatively well-defined parameters that enable critical decisions such as the quality/encoding speed trade-off. Certainly this works for H.264, where Elemental ranks very close to the top while presenting a set of configurations very close to those shown in Figure 5. This may be frustrating if you’re one of the few encoding professionals who can truly tune the extensive encoding parameters offered by some vendors to your advantage. For most users, however, simpler is always better so long as the quality is very high. Perhaps more to the point, if you’re an existing Elemental customer, the learning curve for encoding HEVC will be very short.
Harmonic takes a two-pronged approach to the HEVC configuration issue. In ProMedia Xpress, a service of its Workflow System (WFS) product (Figure 5), you can choose the profile, level, and little else. At the other end of the spectrum, Harmonic will expose many more HEVC-related configuration options in tools such as ProMedia Carbon that you can use to create HEVC presets deployed in Harmonic WFS. Specifically, Harmonic expects the HEVC-related configuration options available in Carbon to equal those exposed for H.264 in the same program, which are very extensive.
What’s the net/net from an encoding UI perspective? Unlike the changeover from VP6 to H.264, which involved many new concepts, encoding HEVC will be very similar to H.264 with the exception of a handful of options that some encoders will optimize behind the scenes and won’t make available to their users.
This article appears in the 2014 Streaming Media Sourcebook as "Making the Move to HEVC."
Which codec delivers better image quality? Which is more compatible? And what about Daala, the spoiler codec currently being developed from scratch?
Elemental says HEVC gains now approach 50 percent for high-definition content, but the codec's rollout and growth will take a decade.
The news is good for content owners and not so good for encoding/decoding vendors, but gives everyone a feel for how the issue will play out.
Streaming Ultra HD video to the home will require serious compression. Look for the HEVC codec to make the next jump in video resolution possible.
Companies and Suppliers Mentioned