Streaming Media - June/July 2008 - (Page 54) Like MPEG-2, H.264 uses three types of frames, meaning that each group of pictures (GOP) comprises I-, B-, and Pframes, with I-frames such as the DCT-based compression used in DV and B- and P-frames referencing redundancies in other frames to increase compression. Interestingly, when H.264 development started in early 1998, the project was called H.26L, and its target was to double the efficiency of any existing codecs, including MPEG-2. That would mean the same quality at half the bitrate, a metric that H.264 clearly delivers in most applications. Also interestingly, like most video coding standards, H.264 actually standardizes only the “central decoder … such that every decoder conforming to the standard will produce similar output when given an encoded bitstream that conforms to the constraints of the standard,” according to an article titled “Overview of the H.264/AVC Video Coding Standard” published in IEEE Transactions on Circuits and Systems for Video Technology (ITCSVT). Basically, this means that there’s no standardized H.264 encoder and, in fact, that H.264 encoding vendors can utilize a range of different techniques to optimize video quality so long as the bitstream plays on the target player. This is one of the key reasons that H.264 encoding interfaces vary so significantly among the various tools. • High 4:2:2 Profile (Hi422P)—Primarily targeting professional applications that use interlaced video, this profile builds on top of the High 10 Profile—adding support for the 4:2:2 chroma sub subsampling format while using up to 10 bits per sample of decoded picture precision. • High 4:4:4 Predictive Profile (Hi444PP)—This profile builds on top of the High 4:2:2 Profile—supporting up to 4:4:4 chroma sampling, up to 14 bits per sample, and additionally supporting efficient lossless region coding and the coding of each picture as three separate color planes. cracking the h.264 codec Profiles and Levels To make H.264 relevant to a range of devices, the standard contains both profiles and levels. Briefly, a profile “defines a set of coding tools or algorithms that can be used in generating a conforming bitstream, whereas a level places constraints on certain key parameters of the bitstream,” according to the ITCSVT article. To explain, a profile defines specific encoding techniques that you can or can’t utilize when encoding the files (such as B-frames), while the level defines details such as the maximum resolutions and data rates. H.264 includes seven profiles, with the following taxonomy courtesy of Wikipedia (http://en.wikipedia. org/wiki/H264): • Baseline Profile (BP)—Primarily for lower-cost applications with limited computing resources, this profile is used widely in video conferencing and mobile applications. • Main Profile (MP)—Originally intended as the mainstream consumer profile for broadcast and storage applications, the importance of this profile faded when the High Profile was developed for those applications. • Extended Profile (XP)—Intended as the streaming video profile, this profile has relatively high compression capability and some extra tricks for robustness toward data loss and server stream switching. • High Profile (HiP)—The primary profile for broadcast and disc storage applications, particularly for high-definition television applications (this is the profile adopted into HD DVD and Blu-ray Disc, for example). • High 10 Profile (Hi10P)—Going beyond today’s mainstream consumer product capabilities, this profile builds on top of the High Profile—adding support for up to 10 bits per sample of decoded picture precision. 54 STREAMING MEDIA June/July 2008 To continue with our example, players conforming to the Baseline Profile may not be able to decode bitstreams using B-frames, meaning that the profile should be utilized on relatively low-powered devices such as cell phones or the earliest iPods. The cited Wikipedia reference contains a detailed table identifying the features supported by each profile as well as the configuration options available at each level. To a great degree, an H.264 compressionist’s most important job is to make sure that the selected encoding parameters don’t exceed the level supported by the target playback device so that the target device can play the stream. Within the profile, you’re then free to choose among a range of encoding options that typically balance encoding speed against encoding quality, which I discuss in the third section of this article. Encoding tools usually try to help in two ways. First, when a player is well-defined, they contain playerspecific templates that are customized and tested for the profile and level supported by the player. Second, they tailor the options you can configure to the selected Figure 1. Episode Pro’s H.264 encoding options http://en.wikipedia.org/wiki/H264 http://en.wikipedia.org/wiki/H264
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.