Context-adaptive binary arithmetic coding
Encyclopedia
Context-adaptive binary arithmetic coding (CABAC) is a form of entropy encoding
used in H.264/MPEG-4 AVC
video encoding. It is a lossless compression technique. It is notable for providing much better compression
than most other encoding algorithms used in video encoding, and is one of the primary advantages of the H.264/AVC encoding scheme. CABAC is only supported in Main and higher profiles and requires a large amount of processing to decode compared to similar algorithms. It is also difficult to parallelize and vectorize. As a result, Context-adaptive variable-length coding
(CAVLC), a lower efficiency entropy encoding scheme, is used to increase performance on slower playback devices.
modes for different contexts. It first converts all non-binary
symbols to binary. Then, for each bit, the coder selects which probability model to use, then uses information from nearby elements to optimize the probability estimate. Arithmetic coding
is finally applied to compress the data.
Entropy encoding
In information theory an entropy encoding is a lossless data compression scheme that is independent of the specific characteristics of the medium....
used in H.264/MPEG-4 AVC
H.264/MPEG-4 AVC
H.264/MPEG-4 Part 10 or AVC is a standard for video compression, and is currently one of the most commonly used formats for the recording, compression, and distribution of high definition video...
video encoding. It is a lossless compression technique. It is notable for providing much better compression
Data compression
In computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use....
than most other encoding algorithms used in video encoding, and is one of the primary advantages of the H.264/AVC encoding scheme. CABAC is only supported in Main and higher profiles and requires a large amount of processing to decode compared to similar algorithms. It is also difficult to parallelize and vectorize. As a result, Context-adaptive variable-length coding
Context-adaptive variable-length coding
Context-adaptive variable-length coding is a form of entropy coding used in H.264/MPEG-4 AVC video encoding. It is an inherently lossless compression technique, like almost all entropy-coders. In H.264/MPEG-4 AVC, it is used to encode residual, zig-zag order, blocks of transform coefficients. It...
(CAVLC), a lower efficiency entropy encoding scheme, is used to increase performance on slower playback devices.
Algorithm
CABAC has multiple probabilityProbability
Probability is ordinarily used to describe an attitude of mind towards some proposition of whose truth we arenot certain. The proposition of interest is usually of the form "Will a specific event occur?" The attitude of mind is of the form "How certain are we that the event will occur?" The...
modes for different contexts. It first converts all non-binary
Binary numeral system
The binary numeral system, or base-2 number system, represents numeric values using two symbols, 0 and 1. More specifically, the usual base-2 system is a positional notation with a radix of 2...
symbols to binary. Then, for each bit, the coder selects which probability model to use, then uses information from nearby elements to optimize the probability estimate. Arithmetic coding
Arithmetic coding
Arithmetic coding is a form of variable-length entropy encoding used in lossless data compression. Normally, a string of characters such as the words "hello there" is represented using a fixed number of bits per character, as in the ASCII code...
is finally applied to compress the data.
External links
- Introduction to Arithmetic Coding. 60 pages. Includes CABAC.
- Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard. 17 page introduction.
- Arithmetic Coding for Data Compression. Contains useful step by step instructions.
- "Context-Based Adaptive Binary Arithmatic Coding in H.264/AVC Video Compression Standard", CASVT July 2003, D.Marpe,H.Schwarz, T.Weigand
See also
- Arithmetic codingArithmetic codingArithmetic coding is a form of variable-length entropy encoding used in lossless data compression. Normally, a string of characters such as the words "hello there" is represented using a fixed number of bits per character, as in the ASCII code...
- Data compressionData compressionIn computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use....
- Lossless compression
- Context-adaptive variable-length coding (CAVLC)Context-adaptive variable-length codingContext-adaptive variable-length coding is a form of entropy coding used in H.264/MPEG-4 AVC video encoding. It is an inherently lossless compression technique, like almost all entropy-coders. In H.264/MPEG-4 AVC, it is used to encode residual, zig-zag order, blocks of transform coefficients. It...