H.264 standard describes the various syntax elements that may occur in a bitstream. It specifies exactly how each syntax element should be processed and decoded in order to produce an output video sequence. It is important to know whether a particular decoder can handle a particular coded sequence. This is achieved by specifying a profile and level for every coded sequence. Profile places algorithmic constraints on the decoder, determining which decoding tools the decoder should be capable of handling. Level places data processing and storage constraints on the decoder. It determine how much data the decoder should be capable of storing, processing and outputting to a display.
An H.264 decoder can immediately determine whether it is capable of decoding a particular bitstream by extracting the Profile and Level parameters.
The H.264/AVC standard specifies a number of Profiles, each specifying a subset of the coding tools available in the H.264 standard. A decoder conforming to the Main Profile of H.264 only needs to support the tools contained within the Main Profile. Each Profile is intended to be useful to a class of applications. For example, Baseline Profile may be useful for low-delay applications such as video conferencing, with relatively low computational requirements. The Main Profile may be suitable for basic television/entertainment applications such as Standard Definition TV services.
Below figure shows the tools supported by the Baseline, Constrained Baseline, Extended and Main Profiles.
- Constrained Baseline Profile: Aimed at low-cost mobile and video communication applications, the Constrained Baseline Profile uses the subset of features that are in common with the Baseline, Main, and High Profiles.
- Baseline Profile: This profile is targeted for low-cost applications that require additional error resiliency. As such, on top of the features supported in the Constrained Baseline Profile, it has three features for enhanced robustness. However, in practice, Constrained Baseline Profile is more commonly used than Baseline Profile. The bitstreams for these two profiles share the same profile identifier code value.
- Extended Profile: This is intended for video streaming. It has higher compression capability and more robustness than Baseline Profile, and it supports server stream switching.
- Main Profile: Main profile is used for standard-definition digital TV broadcasts, but not for HDTV broadcasts, for which High Profile is primarily used.
- High Profile: It is the principal profie for HDTV broadcast and for disc storage, such as the Blu-ray Disc storage format.
- Progressive High Profile: This profile is similar to High profile, except that it does not support the field coding tools. It is intended for applications and displays using progressive scanned video.
- High 10 Profile: Mainly for premium contents with 10-bit per sample decoded picture precision, this profile adds 10-bit precision support to the High Profile.
- High 4:2:2 Profile: This profile is aimed at professional applications that use interlaced video. On top of the High 10 Profile, it adds support for the 4:2:2 chroma subsampling format.
- High 4:4:4 Predictive Profile: Further to the High 4:2:2 Profile, this profile supports up to 4:4:4 chroma sampling and up to 14 bits per sample precision. It additionally supports lossless region coding and the coding of each picture as three separate color planes.
Levels are constraints that specify the degree of decoder performance needed for a profile; for example, a level designates the maximum picture resolution, bit rate, frame rate, and so on that the decoder must adhere to within a profile.