CABAC Context Index Broadcasting for Video Decoding Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

CABAC decoding is a CPU-intensive bottleneck in video decoders, especially on multi-core platforms, due to its sequential nature and high complexity, which hinders real-time decoding and encoding efficiency, particularly in devices with increasing resolutions.

Innovation Solution

The broadcasting method for context-index determination reduces computational complexity by initializing and updating context indices for neighboring blocks, eliminating the need to access syntax element values from neighboring blocks during context determination, thereby optimizing CABAC processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional CABAC decoding is used, then accurate context-adaptive binary arithmetic coding is achieved, but CPU intensity and processing time increase significantly

Engineering Contradiction:
Improvecoding accuracyVSAvoiddecoding speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent pre-calculates and stores context model probabilities in lookup tables before actual decoding occurs. This preliminary preparation allows the decoder to quickly retrieve pre-computed probability values during decoding, avoiding time-consuming calculations while maintaining coding accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates simplified copies of the complex context modeling process by using lookup tables that store pre-computed probability values. These tables replicate the results of complex probability calculations, allowing fast access without re-performing the original computations

Inventive Principle:
Principle #26Copying

2Measurement precision

If sequential CABAC decoding is implemented, then accurate probability modeling is maintained, but multi-core processor capabilities cannot be utilized

Engineering Contradiction:
Improveprobability modeling accuracyVSAvoidparallel processing capability
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the video data into multiple segments or slices that can be decoded independently in parallel. By segmenting the processing workload, multiple cores can simultaneously work on different portions of the data while maintaining accurate probability modeling within each segment

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-computes and stores context model probabilities in lookup tables before parallel decoding begins. This preliminary preparation enables multiple cores to independently access pre-computed values without interfering with each other, facilitating parallel processing while maintaining modeling accuracy

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If context indices are determined by accessing syntax element values from neighboring blocks, then accurate context adaptation is achieved, but computational complexity and memory access operations increase

Engineering Contradiction:
Improvecontext adaptation accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent pre-calculates context indices and stores them in lookup tables based on predefined syntax element patterns. During decoding, these pre-computed context indices are directly retrieved without needing to access and process neighboring block syntax elements, reducing computational complexity while maintaining context adaptation accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates lookup tables that copy and store the results of complex context index calculations. These tables replicate the adaptive context modeling results, allowing fast retrieval without re-accessing neighboring blocks or re-performing complex index determination

Inventive Principle:
Principle #26Copying

4Manufacturing precision

If high-resolution video decoding is supported, then image quality is improved, but CABAC processing becomes more CPU-intensive

Engineering Contradiction:
Improveimage qualityVSAvoidCPU energy consumption
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The patent pre-computes context model probabilities and stores them in lookup tables before high-resolution video decoding. This preliminary preparation reduces the real-time computational burden during decoding of high-resolution content, lowering CPU energy consumption while maintaining the ability to process detailed high-quality images

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses lookup tables that copy pre-computed probability values to avoid repeated calculations during high-resolution decoding. This approach significantly reduces CPU energy consumption while maintaining the precision required for high-quality image reconstruction

Inventive Principle:
Principle #26Copying

Data Source

PatentEP3149948B1Acceleration of context adaptive binary arithmetic coding (CABAC) in video codecs
Publication Date: 2021.07.07 ARRIS ENTERPRISES LLC
  • EP3149948B1 patent drawingFigure 1
  • EP3149948B1 patent drawingFigure 2
  • EP3149948B1 patent drawingFigure 3~4

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.