Entropy Encoding (CABAC, CAVLC)

Entropy encoding is a crucial step in modern video compression. By intelligently assigning codes based on the probability of data elements, it plays a vital role in achieving high compression efficiency and maintaining video quality.

Entropy encoding is the final stage in the video compression process. It's like a clever way of assigning shorter codes to more frequent data elements and longer codes to less frequent ones, maximizing compression efficiency.

How Entropy Encoding Works:

  • Statistical Analysis: The encoder analyzes the video data to determine the probability of occurrence for different symbols or patterns.
  • Code Assignment: Based on the analysis, shorter codes are assigned to frequent symbols, and longer codes to less common ones.
  • Code Generation: The encoder replaces the original data with these codes to form a compressed bitstream.

Common Techniques:

  • Huffman Coding: Builds a binary tree based on symbol probability, optimizing code length.
  • Arithmetic Coding: Represents data as a single fractional number, achieving high compression ratios.
  • Context-Adaptive Binary Arithmetic Coding (CABAC): Used in codecs like H.264 and HEVC; adapts probabilities based on data context.
  • Context-Adaptive Variable-Length Coding (CAVLC): Used in H.264, it’s a form of lossless compression optimized for simpler content.

Benefits of Entropy Encoding:

  • Increased Compression: Reduces video file sizes significantly.
  • Improved Efficiency: Optimizes data encoding based on symbol distribution.
  • Preserved Quality: Achieves compression without sacrificing visual fidelity.

Applications:

  • Video/Image Compression: Used in JPEG, MPEG, H.264, and HEVC standards.
  • Data Transmission: Improves bandwidth use and speeds up transfer.
  • File Compression: Tools like ZIP and GZIP also use entropy encoding methods.