Transform Coefficient Entropy Coding With Last-Coefficient Flags
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current entropy coding methods, such as CABAC, are inefficient for larger block sizes due to the need for two scanning passes and excessive use of binary arithmetic coding operations, which complicates the coding process and reduces compression efficiency.
Innovation Solution
A systematic entropy coding approach that uses a single scanning pass and introduces new syntax elements like last_ge2_flag to reduce binary bins, allowing for simpler coding and improved compression efficiency by indicating non-zero coefficients and their values directly in the scanning order.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If CABAC is used for entropy coding of quantized transform coefficients, then coding efficiency is improved through arithmetic coding, but the complexity increases due to two scanning passes and excessive binary arithmetic coding operations
Solution Approach 1:
The patent segments the coding process into two distinct parts: a significance map pass that codes only the positions of non-zero coefficients, and a value coding pass that codes only the values of non-zero coefficients. This segmentation eliminates the need for repeated binary arithmetic coding operations on all coefficients in both passes, reducing complexity while maintaining arithmetic coding efficiency for the actual data values.
Solution Approach 2:
The patent extracts the significance map information (positions of non-zero coefficients) from the full coefficient data and codes it separately in the first pass. This extraction allows the second pass to focus only on coding the actual values of non-zero coefficients, removing unnecessary binary arithmetic coding operations and simplifying the overall process.
2Reliability
If CABAC uses two scanning passes (forward zigzag for significance map, inverse zigzag for values), then comprehensive coding is achieved, but the processing time increases
Solution Approach 1:
The patent segments the coding task into two specialized passes: the first pass identifies and codes the positions of non-zero coefficients using a forward zigzag scan, while the second pass codes their values. This segmentation allows each pass to be optimized for its specific task, reducing overall processing time compared to traditional methods that require more comprehensive scanning.
Solution Approach 2:
The first pass performs preliminary action by identifying and coding the significance map (positions of non-zero coefficients) before the second pass codes the actual values. This preliminary identification allows the second pass to efficiently code only the necessary value information without redundant scanning, reducing total processing time.
3Measurement precision
If CABAC is designed mainly for smaller block sizes (4x4, 8x8), then detailed coding is achieved, but performance degrades for larger blocks (16x16, 32x32, 64x64)
Solution Approach 1:
The patent segments the coefficient block into a significance map and value data, allowing independent optimization of each segment. This segmentation enables the use of efficient context-adaptive binary arithmetic coding for significance flags while using more compact value coding for actual coefficients, improving performance on large blocks without sacrificing precision on small blocks.
Solution Approach 2:
The patent changes the coding parameters by introducing separate context models and coding strategies for significance flags versus coefficient values. This parameter change allows adaptive optimization for different block sizes, maintaining high precision for small blocks while achieving better compression efficiency for large blocks through more flexible parameter control.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods and apparatus are provided for improved entropy encoding and decoding. An apparatus includes a video encoder (200) for encoding at least a block in a picture by transforming a residue of the block to obtain transform coefficients, quantizing the transform coefficients to obtain quantized transform coefficients, and entropy coding the quantized transform coefficients. The quantized transform coefficients are encoded using a flag to indicate that a current one of the quantized transform coefficients being processed is a last non-zero coefficient for the block having a value greater than or equal to a specified value.