LIST OF ACRONYMS AVC – Advanced Video Coding B slice – Bi-directional slice CABAC – Context-Based Adaptive Binary Arithmetic Coding – Context Adaptive Variable Length Coding CIF – Common Intermediate Format DCT – Discrete Cosine Transform DDCT – Directional Discrete Cosine Transform DC coefficients – zero frequencies DVD – Digital Versatile Disc DFT – Discrete Fourier Transform FRExt – Fedility Range Extensions FMO – Flexible Macroblock Order HD – High Definition I – Intra frame Int-DCT – Integer Discrete Cosine Transform ISO – International Organization for standardization ITU-T – International Telecommunication Union- Transmission standardization sector IEC – International Electro-Technical Commission IDCT – Inverse Discre Cosine Transform IDDCT – Inverse Directional Discrete Cosine Transform JPEG – Photographic Experts group JVT – Video Team JM - Joint Model
HVGA 640 240 Half Video Graphics Array 55 Mbps VGA 640 480 Video Graphics Array 110 Mbps SD 720 486 Standard Definition 125 Mbps SVGA 800 600 Super Video Graphics Array 172 Mbps XGA 1024 768 Extended Graphics Array 283 Mbps XGA+ 1152 768 Extended Graphics Array plus 318 Mbps 1152 864 358 Mbps SXGA 1280 1024 Super Extended Graphics Array 471 Mbps SXGA+ 1400 1050 Extended Graphics Array plus 529 Mbps UXGA 1600 1200 Ultra Extended Graphics Array 691 Mbps HD 1920 1080 High Defintion 746 Mbps QXGA 2048 1536 Quad Extended Graphics Array 1.1 Gbps Multimedia applications are targeted for a wide range of applications such as video conferencing, video on demand, mobile video broadcast and even medical applications. Given such wide range of applications, standardization of video compression techniques is essential. Standardization ensures interoperability of implementation from different vendors thereby
enabling end-users to access video from different services both software and hardware. There are numerous video compression standards [8] both open-source and proprietary depending on the application and end-usage. 1.7 Summary Hence the need for compression in media communication was expressed in detail. Chapter 2 is a detailed study of the H.264 codec and its implementation.
Coding tools High High 10 High 4:2:2 High 4:4:4 Main profile tools x x x x 4:2:0 Chroma format x x x x 8 bit sample bit depth x x x x 8x8 vs. 4x4 transform adaptivity x x x x Quantization scaling matrices x x x x Separate Cb and Cr Quantization parameter (QP) control x x x x Monochrome video format x x x x 9 and 10 bit sample depth x x x 4:2:2 Chroma format x x 11 and 12 sample bit depth x 4:4:4 Chroma format x Residual color transform x Predictive lossless coding x 2.3 H.264 Encoder Figure 2.3 illustrates the schematic of the H.264 encoder. H.264 encoder on macroblocks and motion-compensation like most other previous generation codecs. Video is
• At slice level – global filtering strength is adjusted to the individual characteristics of the video sequence • At block-edge level – deblocking filter decision is based on inter or intra prediction of the block, motion differences and presence of coded residuals in the two participating blocks. • At sample level – it is important to distinguish between the blocking artifact and the true edges of the image. True edges should not be de blocked. Hence decision for deblocking at a sample level becomes important. 2.3.5 Entropy coding H.264 uses variable length coding to match a symbol to a code based on the context characteristics. All the syntax elements except for the residual data are encoded by the Exp- Golomb codes[1]. The residual data is encoded using CAVLC. The main and the high profiles of H.264 use CABAC. • adaptive variable length coding (CAVLC): After undergoing transform and quantization the probability that the level of coefficients is zero or +1 is very high [1]. CAVLC handles these values differently. It codes the number of zeroes and +1. For other values, their values are coded. • Context-based adaptive binary arithmetic coding (CABAC): This technique utilizes the arithmetic encoding to achieve good compression. The schematic for CABAC is shown in Figure 2.13. Figure 2.13 Schematic block diagram of CABAC [1] CABAC consists of three steps: Step 1: Binarization: A non-binary value is uniquely mapped to a binary sequence