AVC (Advanced Video Codec)
Introduction:
The AVC (Advanced Video Codec), also known as H.264 or MPEG-4 Part 10, is a widely-used video compression standard that is currently the most commonly-used video codec for streaming, Blu-ray discs, and digital television broadcasting. AVC was first introduced in 2003 by the Joint Video Team (JVT), a collaborative effort between the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC).
AVC was designed to deliver high-quality video at low bitrates, making it ideal for use in a variety of applications, including mobile devices, video conferencing, and surveillance systems. It provides significant improvements over its predecessors, such as MPEG-2 and MPEG-4 Part 2, in terms of video quality, compression efficiency, and flexibility.
This article provides a detailed explanation of AVC, including its history, technical specifications, and applications.
History:
The development of AVC began in the late 1990s when the need for a more efficient video compression standard was recognized. The goal was to develop a standard that could deliver high-quality video at low bitrates while also being flexible enough to support a wide range of applications and devices.
In 2001, the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG) formed a joint team, known as the Joint Video Team (JVT), to develop a new video compression standard. The JVT included experts from both organizations and was responsible for developing the technical specifications for what would become AVC.
After several years of development, the first version of AVC was released in 2003. It quickly gained popularity and became the most widely-used video codec in the world. In 2004, Apple added support for AVC in QuickTime 7, which helped to further increase its popularity.
Technical Specifications:
AVC is a block-based video compression standard that uses a variety of techniques to achieve high compression efficiency while maintaining high video quality. It uses a combination of intra-frame and inter-frame coding to reduce redundancy and achieve high compression ratios.
Intra-Frame Coding:
Intra-frame coding is used to compress individual frames of video. Each frame is divided into a number of macroblocks, which are further divided into smaller blocks called transform blocks. These transform blocks are transformed using a mathematical algorithm called the discrete cosine transform (DCT) to reduce spatial redundancy.
After the DCT, the resulting transform coefficients are quantized to further reduce the amount of data that needs to be stored or transmitted. The quantization process introduces some loss of information, but the amount of loss can be controlled by adjusting the quantization parameter.
The quantized transform coefficients are then entropy coded using a variable-length coding (VLC) scheme to further reduce the amount of data. The entropy coding is based on the statistical properties of the coefficients and assigns shorter codes to more probable values and longer codes to less probable values.
Inter-Frame Coding:
Inter-frame coding is used to compress the differences between frames. It exploits temporal redundancy by using the information from previously-encoded frames to predict the contents of the current frame. The difference between the predicted frame and the actual frame, known as the prediction error or residual, is then compressed using the same techniques used for intra-frame coding.
AVC uses several inter-frame coding techniques, including motion estimation and compensation, spatial and temporal prediction, and deblocking filtering.
Motion Estimation and Compensation:
Motion estimation and compensation is used to track the movement of objects in the video and reduce the amount of data that needs to be stored or transmitted. It works by comparing the current frame to a reference frame and estimating the motion of each macroblock. The motion vectors are then encoded and transmitted along with the residual data.
Spatial and Temporal Prediction:
Spatial and temporal prediction are used to further reduce redundancy in the video. Spatial prediction uses neighboring pixels to predict the value of the current pixel, while temporal prediction uses the previously-encoded frames to predict the value of the current frame. The predicted values are then subtracted from the actual values to obtain the residual, which is then compressed using the same techniques used for intra-frame coding.
Deblocking Filtering:
Deblocking filtering is used to reduce the blocking artifacts that can occur in compressed video. These artifacts are caused by the quantization process and can result in visible edges between macroblocks. The deblocking filter smooths these edges by selectively smoothing or sharpening the pixels at the block boundaries.
Flexible Macroblock Ordering (FMO):
Flexible macroblock ordering (FMO) is a feature of AVC that allows the encoder to divide the frame into separate regions and apply different coding techniques to each region. This can improve compression efficiency and reduce the overall bitrate.
Applications:
AVC is used in a wide range of applications, including:
- Streaming video: AVC is the most commonly-used codec for streaming video over the internet. It provides high-quality video at low bitrates, making it ideal for delivering video content to mobile devices and other bandwidth-limited devices.
- Digital television broadcasting: AVC is used in digital television broadcasting around the world, including in the United States, Europe, and Asia. It provides high-quality video while using less bandwidth than previous standards, such as MPEG-2.
- Blu-ray discs: AVC is used as the primary video codec for Blu-ray discs. It provides high-quality video while also allowing for high levels of compression, which is essential for fitting a full-length movie on a single disc.
- Video conferencing: AVC is commonly used in video conferencing systems, where it provides high-quality video at low bitrates, which is essential for real-time communication over the internet.
- Surveillance systems: AVC is used in many surveillance systems to compress and store video footage. It allows for high-quality video to be stored using less storage space than previous standards, such as MPEG-2.
Conclusion:
AVC is a widely-used video compression standard that provides high-quality video at low bitrates. It was developed by the Joint Video Team (JVT), a collaborative effort between the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). AVC uses a combination of intra-frame and inter-frame coding to achieve high compression efficiency while maintaining high video quality. It is used in a wide range of applications, including streaming video, digital television broadcasting, Blu-ray discs, video conferencing, and surveillance systems.