AVC / H.264

The AVC (Advanced Video Coding) video compression standard was proposed by the JVT (Joint Video Team) in May 2003. At that time, it represented a revolutionary advance in video compression technology. The new standard completely surpassed the commonly used MPEG-2 and MPEG-4 Part 2 (SP, ASP) standards. By some estimates, storing video compressed according to the AVC standard requires 2 times less memory space than for video compressed according to the MPEG-2 standard with the same quality.
The new standard made it po
ssible to receive broadcast quality standard definition video at a rate of 1.5 Mbps. This compression ratio allows the transmission of approximately 12 compressed TV channels in the frequency band previously occupied by an analog TV channel. Additionally, the introduction of AVC enabled television operators to provide new video services in places where they were not previously available and opened up the ability to “pack” more video channels into a narrow and expensive frequency range for transmission. Advantages in encoding efficiency, such as good video quality at low bit rates, have made AVC the undisputed leader in Internet TV systems and have taken the industry to a whole new level. AVC has also significantly improved the quality of digital television and made HDTV high definition television widely available.
MPEG-LA’s low license fees have also contributed to the rapid adoption of the standard, and H.264 / AVC has successfully established itself in the market to date. In 2010, the number of AVC-based solutions exceeded the number of similar solutions based on the outdated MPEG-2 standard and increased every year until the adoption of the next H.265 / HEVC video compression standard.
Key features of the H.264 / AVC standard
The H.264 standard provides advanced encoding technology using methods similar to the previous MPEG and ITU-T standards. New tools that include the following provide increased productivity and quality.
Improved motion estimation
Motion estimation allows you to search for sub-macroblocks of various sizes from 16×16 to 4×4 pixels. Motion vectors are now accurate to 1/4 pixel for luma and 1/8 pixel for chroma. Furthermore, the coding of motion vectors has been significantly improved; your prediction is used.
Spatial prediction
H.264 performs internal predictions for intracoded blocks, allowing up to 9 different directional predictions to be applied.
Optimization of encoding parameters
The classical encoding method involves making optimal local decisions at each stage. Obviously, in this case, the resulting solution may not be optimal. The AVC standard proposes a new algorithm to optimize RDO (Frequency Distortion Optimization) encoding parameters, the essence of which is to select those parameters, the use of which will better affect the result.
Modified PrEP
To transform the residual information, a modified integer discrete cosine transform (MDCT) is used, which avoids rounding errors. One important difference from previous standards is the block sizes for DCT. AVC allows transformations in 8×8 and 4×4 pixel blocks.
Filter block limits
Another innovation of the AVC standard is the use of an unblocking filter, the main task of which is to smooth out block artifacts at the boundaries of macroblocks in the image. Thus, the visual perception of each frame and the entire video sequence as a whole is improved.
Enhanced coding on smooth movements
Several new conditions have been added to AVC to encode macroblocks in “jump” mode. In fact, in this case, the macroblock is not encoded, but a different macroblock is used in the same position but of a different frame. Therefore, significant gain is achieved at low bit rates or with smooth camera movements, when the entire image is moved in the same way.
Entropy coding
The standard provides two more efficient entropy encoding processes. Context Adaptive Variable Length Encoding (CAVLC – Context Adaptive Encoding with Different Lengths of Codewords) is an entropy encoder, the principle of which is close to the Huffman compression algorithm. CAVLC allows you to compress information quickly, while providing an acceptable compression ratio.
Context Adaptive Binary Arithmetic Coding (CABAC – Context Adaptive Binary Arithmetic Coding) is an arithmetic coder.