CABAC

Context Adaptive Binary Arithmetic Coding

Other
Introduced in Rel-12
CABAC is a highly efficient entropy coding technique used in 3GPP video codecs to compress video data. It achieves superior compression ratios by adapting its probability models based on the context of previously coded symbols. This efficiency is critical for delivering high-quality video services over bandwidth-constrained mobile networks.

Description

Context Adaptive Binary Arithmetic Coding (CABAC) is the entropy coding engine at the heart of several 3GPP video codecs, most notably those in the Advanced Video Coding (AVC/H.264) and High Efficiency Video Coding (HEVC/H.265) families adopted for services like Multimedia Telephony Service for IMS (MTSI) and Enhanced Voice Services (EVS). Unlike simpler entropy coders, CABAC operates on a binary arithmetic coding principle, which allows it to assign fractional bits to symbols, approaching the theoretical Shannon limit for compression. The process begins by converting non-binary syntax elements (like transform coefficients or motion vector differences) into a sequence of binary decisions (bins) through binarization schemes such as truncated unary, k-th order Exp-Golomb, or fixed-length coding.

The core innovation of CABAC is its context modeling. For many of these binary decisions, CABAC maintains multiple probability models (contexts). The selection of which specific probability model to use for encoding the next bin is determined by the 'context,' which is typically derived from the values of previously encoded neighboring syntax elements in the spatial, temporal, or frequency domain. For example, the context for coding a significant coefficient flag might depend on whether the coefficients above and to the left were significant. This context-adaptive modeling allows the coder to dynamically track local statistics, making it exceptionally efficient for the non-stationary statistics of video data.

The actual coding is performed by a binary arithmetic coder. It represents the current probability interval, which is subdivided based on the probability of the Least Probable Symbol (LPS) and the Most Probable Symbol (MPS). The interval corresponding to the actual coded bin is selected, and the coder outputs bits once the interval's range falls below a precision threshold, a process known as renormalization. A critical component is the probability state update: after each bin is coded, the probability estimate for that context is updated using a finite-state machine to reflect the new observation, ensuring the model stays accurate. Some syntax elements, like signs of transform coefficients, are coded in 'bypass' mode without context modeling for lower complexity.

Within the 3GPP ecosystem, CABAC's role is defined in codec-specific specifications. It is the mandatory entropy coding method for the Main and High profiles of AVC and HEVC, which are profiles mandated for 3GPP conversational and streaming services. Its implementation directly impacts key performance indicators for mobile operators: by reducing the bitrate required for a given video quality, it decreases network load, improves spectrum efficiency, and enhances the user experience by enabling higher resolution or more robust streaming under poor radio conditions. The computational complexity of CABAC is significantly higher than its predecessor, Context Adaptive Variable Length Coding (CAVLC), but the substantial bitrate savings (typically 10-15% for AVC) justify its inclusion in profiles targeting efficient mobile video delivery.

Purpose & Motivation

CABAC was developed to address the fundamental challenge of video compression: reducing bitrate while maintaining perceptual quality, a task paramount for bandwidth-limited and costly mobile networks. Prior entropy coding methods in video standards, like Huffman-based Variable Length Coding (VLC) or even the simpler Context Adaptive VLC (CAVLC) used in AVC's Baseline profile, were less efficient. They assign an integer number of bits to each symbol and use static or less adaptive probability models, failing to fully exploit the statistical redundancies and correlations present in video syntax elements. This inefficiency translated directly to higher bitrates, limiting video resolution, increasing buffering, and consuming more network resources.

The creation of CABAC was motivated by the need for a substantial leap in coding efficiency to enable new video services over 3G and, later, 4G LTE networks. As user demand shifted from voice to video calling and mobile TV, a more powerful compression tool was required. Arithmetic coding theory had long promised near-optimal compression, but its practical application was hindered by computational complexity and patent concerns. The breakthrough of CABAC was in pairing a practical binary arithmetic coder with a sophisticated, adaptive context model, making high-efficiency entropy coding feasible for real-time encoding and decoding in consumer devices.

By solving the bitrate efficiency problem, CABAC enabled 3GPP to standardize video services that were economically viable for operators and provided a satisfactory quality of experience for users. It allowed the AVC codec to achieve roughly a 50% bitrate saving over its predecessor, MPEG-4 Part 2, with CABAC being a key contributor to that gain. Its adoption in 3GPP specifications meant that mobile video could be delivered at lower bitrates, reducing network congestion and data costs, or at higher qualities within the same bitrate envelope, directly supporting the business case for mobile video streaming and conferencing.

Key Features

  • Binary Arithmetic Coding core for fractional bit precision and high compression efficiency
  • Adaptive context modeling using multiple probability states based on neighboring data
  • Binarization process to convert multi-valued syntax elements into binary decisions (bins)
  • Separate coding modes: regular context-adaptive mode and low-complexity bypass mode
  • Integrated probability state update mechanism using a finite-state machine
  • Mandatory entropy coding for high-efficiency 3GPP video codec profiles (e.g., AVC Main Profile)

Evolution Across Releases

Rel-12 Initial

CABAC was initially standardized within 3GPP as the entropy coding engine for the Advanced Video Coding (AVC/H.264) codec, specifically for its Main and High Profiles. These profiles were adopted for Multimedia Telephony Service for IMS (MTSI) and packet-switched streaming services. Rel-12 specifications referenced the core CABAC algorithm defined in ITU-T H.264/ISO IEC 14496-10, mandating its use to ensure superior compression efficiency for conversational and broadcast video services over LTE networks.

Defining Specifications

SpecificationTitle
TS 26.906 3GPP TS 26.906
TS 26.948 3GPP TS 26.948
TS 26.955 3GPP TS 26.955