CABAC Context-Index Initialization for Video Codec Decoding Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Context-adaptive binary arithmetic coding (CABAC) decoding is a CPU-intensive process that becomes a bottleneck in video decoding on multi-core platforms, especially with increasing resolutions on smaller devices, due to its sequential nature and high complexity, making it difficult to exploit multi-core processor capabilities effectively.

Innovation Solution

A method is introduced to optimize CABAC processing by initializing context-indexes for syntax elements in macroblocks and updating them only when necessary, reducing computational complexity through a broadcasting method that eliminates the need for frequent access to neighboring block syntax elements, and optimizing de-binarization by rearranging codes with equal bit lengths for faster decoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If CABAC decoding is performed using traditional sequential methods, then coding efficiency and compression ratio are improved, but processing speed and CPU utilization are worsened

Engineering Contradiction:
Improvecompression ratioVSAvoidprocessing speed
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent divides the video stream into independent macroblock processing units, allowing parallel decoding across multiple CPU cores. Each macroblock's context-indexes are initialized and processed independently, enabling the system to maintain high compression ratios while utilizing multi-core processors to improve overall processing speed and throughput.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If context-indexes are updated for every neighboring macroblock, then coding accuracy is improved, but computational complexity is worsened

Engineering Contradiction:
Improvecoding accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by updating context-indexes selectively based on actual changes in neighboring macroblocks. Instead of uniformly updating all context-indexes, the system only updates those where the neighboring macroblock's syntax elements differ from the current one, maintaining coding accuracy while significantly reducing unnecessary computational operations.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial action by performing context-index updates only when necessary - specifically when neighboring macroblock syntax elements indicate a change in coding context. This selective updating approach maintains the precision needed for accurate CABAC decoding while avoiding the excessive computational burden of updating all context-indexes unconditionally.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If de-binarization is performed with traditional code arrangement, then decoding correctness is maintained, but processing time is increased

Engineering Contradiction:
Improvedecoding correctnessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-arranging de-binarization codes in order of bit length before actual decoding occurs. This preprocessing step groups codes with equal bit lengths together, allowing the decoder to quickly determine syntax element values without examining variable-length codes individually, thereby maintaining decoding correctness while significantly reducing processing time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11336921B2Acceleration of context adaptive binary arithmetic coding (CABAC) in video codecs
Publication Date: 2022.05.17 ARRIS ENTERPRISES LLC
  • US11336921B2 patent drawing
  • US11336921B2 patent drawing
  • US11336921B2 patent drawing

AI summary

A method is provided for determining a context-index when performing Context-based Adaptive Binary Arithmetic Coding (CABAC) for video compression or decompression includes initializing to an initialized value each of a plurality of context-indexes of chosen syntax elements associated with a given block (e.g., a macroblock). The context-index of dependent neighboring blocks of the given block is evaluated. The dependent neighboring blocks are blocks that have a context-index that depends on coding of a current bin position. The context-index of the dependent neighboring blocks is updated if and only if their context-index changes from the initialized values.