H.264/MPEG-4 Part 10 Advanced Video Coding
AVC (Advanced Video Coding) video compression standard was first introduced by a group of JVT (Joint Video Team) experts in May, 2003. At that time it was a revolutionary breakthrough in video compression technology. The new standard left behind the widely spread and universally exploited MPEG-2 and MPEG-4 Part (SP, ASP) standards. According to some estimates, the video compressed in the AVC format required almost two times less memory than the video compressed in the MPEG-2 format, while retaining the same quality.
The new standard made it possible to get a 1.5 Mbit/s video stream of Standard Quality (SD), which meant that up to 12 compressed TV channels could now be streamed over the same bandwidth that had been used for broadcasting only one analog channel. The introduction of AVC allowed service providers and operators to offer new kinds of video services in areas where it had been previously impossible and to compress a large number of video channels to fit them into a low-bandwidth channel. Encoding efficiency advantages, as well as high quality at low bit rates has made it an absolute leading format for IPTV systems and took the industry onto the whole new level. AVC has also significantly improved the quality of Digital TV and made High-Definition TV (HDTV) generally available on a global scale.
The low fee for the MPEG-LA license also facilitated the promotion and implementation of the standard, and made H.264/AVC an absolute leader of the market. In 2010, the number of solutions based on the AVC format significantly exceeded the number of similar solutions based on the outdated MPEG-2 format and gradually increased each year until the introduction of the next-generation H.265/HEVC video standard.
Main features of the H.264/AVC standard
The H.264 standard provides advanced coding techniques within similar scheme as used by previous MPEG standards, including MPEG and ITU-T. The higher encoding efficiency and quality provided by new tools include:
Improved Motion Estimation and Inter-Prediction
Motion estimation provides for the searching of sub-macro blocks of variable size, from 16x16 down to 4x4 blocks. Motion vectors allow up to 1/4 pixel accuracy for luminance, and up to 1/8 pixel for chrominance. Besides, motion vector encoding has been significantly improved by taking advantage of the inter-prediction,
Spatial Intra Prediction and Transform
H.264 carries out intra-prediction for intra coded blocks before the transform, performed on either 4x4 or 16x16 blocks and allowing up to 9 directional modes for direction dependent prediction.
Optimization of encoding parameters
The classic encoding method implies making locally optimal decisions at each step. It is evident that the result decision may not be the optimal one. The AVC standard offers a new algorithm of Rate distortion optimization (RDO), which chooses the best parameters that will eventually lead to the best optimal result.
Modified discrete cosine transform
Modified discrete cosine transform (MDCT) algorithm, which prevents rounding errors, is used to process the residue data. One of the main features that make AVC different from other standards is the block sizes for discrete cosine transform (DCT). It allows transformation to be performed on either 8x8 or 4x4 pixel blocks.
Macroblock sharp edge filtration
One of the innovations in the AVC standard was the introduction of a deblocking filer, which was applied for smoothing the sharp edges and compression artifacts between macroblocks in an image. This, in turn, improved visual quality of each frame and of the whole video.
Improved encoding for smooth motion
The AVC standard offers a whole new range of options for encoding macroblocks in the Skip mode. Essentially, the macroblock does not get encoded, instead a different macroblock is used, which is taken from a different frame. So when the camera is moving smoothly, the whole picture is moving slowly as well thanks to this new feature, which shows the best results at low bitrates.
The standard provides two alternative and more efficient processes of entropy coding. Context-adaptive variable length coding (CAVLC) entropy encoder utilizes the Hoffman-like compression algorithm. CAVLC allows quick data compression, while providing acceptable quality.
Context-adaptive binary arithmetic coding (CABAC) is an arithmetic coder, which provides highly efficient automatic adjustment for underlying probability model of encoded data. Exploiting CABAC makes it possible to achieve the highest compression efficiency rate, however, it requires more hardware resources than CAVLC.