CABAC Context Sharing for Transform Coefficient Coding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Context-adaptive binary arithmetic coding (CABAC) is a throughput bottleneck in video codec implementations, particularly in decoding, due to the high memory requirements and initialization time for context initialization in video encoding and decoding processes.
Innovation Solution
Simplified context selection for entropy coding of transform coefficient syntax elements by sharing contexts for significant coefficient flags across different transform block sizes, reducing the number of contexts used for both encoding and decoding processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If context initialization is performed for each transform block size in CABAC, then coding precision is improved, but device complexity and memory requirements increase
Solution Approach 1:
The patent applies universality by creating a single context initialization table that serves multiple transform block sizes (4×4, 8×8, 16×16, 32×32). Instead of maintaining separate context tables for each block size, the system uses one universal table with 120 entries that can be indexed differently based on the current block size being processed, thereby reducing memory requirements while maintaining coding precision.
Solution Approach 2:
The patent changes the indexing parameters of the context table based on transform block size. The same context table is used with different index calculations: for 4×4 blocks, indices 0-3 are used; for 8×8 blocks, indices 0-7 are used; for 16×16 blocks, indices 0-15 are used; and for 32×32 blocks, indices 0-31 are used. This parameter change approach allows one table to serve multiple purposes.
2Productivity
If separate contexts are maintained for different transform block sizes, then coding efficiency is improved, but initialization time increases
Solution Approach 1:
The patent reduces initialization time by initializing a single universal context table once per slice or picture, rather than initializing separate context tables for each transform block size. The universal table with 120 entries can be initialized in one operation, and then reused across all block sizes (4×4, 8×8, 16×16, 32×32) within that slice or picture, significantly reducing the total initialization time.
Solution Approach 2:
The patent performs preliminary initialization of the universal context table at the beginning of each slice or picture, before any transform coding occurs. This preliminary action ensures that the context table is ready for use with any block size without requiring additional initialization operations during the coding process.
3Manufacturing precision
If multiple probability modes are used for different contexts in CABAC, then manufacturing precision is improved, but ease of operation deteriorates
Solution Approach 1:
The patent simplifies operation by changing the indexing parameters based on block size rather than maintaining separate context tables. The index calculation adapts to the current block size: for 4×4 blocks, the index is derived from the coefficient position within the 4×4 block; for 8×8 blocks, the index accounts for the larger block dimensions; and so on. This parameter change approach maintains manufacturing precision while improving ease of operation.
Solution Approach 2:
The patent segments the universal context table into different usable portions based on block size. The table is divided into segments that correspond to different block sizes, with each segment containing the appropriate number of context entries for that block size. This segmentation allows the system to maintain a single unified table while providing specialized contexts for each block size.
Data Source
AI summary
A method for entropy encoding syntax elements of transform coefficient levels in a video encoder to generate a compressed video bit stream is provided that includes selecting a context for a first significant coefficient flag corresponding to a first transform coefficient level in a 32×32 transform block, wherein the first transform coefficient level is at a lowest frequency position in the 32×32 transform block, entropy encoding the first significant coefficient flag using the context, selecting the context for a second significant coefficient flag corresponding to a second transform coefficient level in a 16×16 transform block, wherein the second transform coefficient level is at a lowest frequency position in the 16×16 transform block, and entropy encoding the second significant coefficient flag using the context.


