Entropy Coding Large Alphabet Prefix Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Entropy coding for sources with large alphabets faces complexity challenges, particularly in video coding systems, where existing methods struggle to balance compression efficiency and system complexity, especially when dealing with non-decreasing probability distributions and high probability prefix values.
Innovation Solution
A universal entropy coding method that divides the prefix part into two parts by comparing a test value related to the prefix against a threshold, using variable and fixed-length codes to derive binary strings for CABAC mode encoding, and applies Rice or Exp-Golomb binarization processes to optimize coding for source symbols with large alphabet sizes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If conventional entropy coding methods (CABAC) are used for sources with large alphabet sizes, then compression efficiency is maintained through adaptive binary arithmetic coding, but system complexity increases due to the need for binarization and context modeling for each symbol
Solution Approach 1:
The patent segments the large alphabet into multiple sub-alphabets or groups, applying separate entropy coding to each segment. This reduces the complexity of context modeling and binarization operations by breaking down the large state space into smaller, more manageable parts, while still achieving good compression efficiency through targeted adaptive coding.
Solution Approach 2:
The patent extracts and separately encodes the most significant bits (MSBs) of source symbols using a simplified coding approach, while the less significant bits are handled through context-based CABAC. This separation reduces the overall complexity by removing the need for complex context modeling for all bits, while maintaining compression efficiency through selective adaptive coding.
2Ease of operation
If binarization is applied to convert syntax element values into binary strings for CABAC encoding, then the arithmetic coder can process the data, but the coding complexity increases for large alphabet sizes
Solution Approach 1:
The patent applies different binarization strategies to different parts of the syntax element representation. For example, MSBs are encoded using simple fixed-length or variable-length codes, while LSBs use context-adaptive binarization. This local differentiation reduces overall binarization complexity while maintaining the compatibility benefits of binary encoding for CABAC processing.
3Loss of information
If context modeling is used to adaptively encode binary symbols based on underlying syntax elements, then compression efficiency improves, but the computational complexity and memory requirements increase
Solution Approach 1:
The patent creates an asymmetric context modeling approach where different numbers of contexts are used for different syntax elements or different bit positions. For example, early bits or high-probability symbols use fewer contexts, while later bits or low-probability symbols use more contexts. This asymmetric allocation reduces overall computational complexity while maintaining compression efficiency where it matters most.
Solution Approach 2:
The patent applies context modeling selectively rather than uniformly to all binary symbols. High-probability or early bits are encoded with simpler models or fewer contexts, while lower-probability or later bits receive more intensive context modeling. This partial application of context modeling reduces computational overhead while still achieving good compression for the most important bits.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A general entropy coding method for source symbols is disclosed. This method determines a prefix part and any suffix part for the current symbol. The method divides prefix of the source symbol into at least two parts by comparing a test value related to the prefix part against a threshold. If the test value is greater than or equal to the threshold, the method derives a first binary string by binarizing a first prefix part related to the prefix part using a first variable length code. If the test value related to the prefix part is less than the threshold, the method derives a second binary string by binarizing a second prefix part related to the prefix part using a second variable length code or a first fixed-length code. The method then encodes at least one of the first binary string and the second binary string using a CABAC mode.