Arithmetic Video Codec Context Initialization Overhead Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The H.264 video codec's context adaptive binary arithmetic-coding (CABAC) method is computationally intensive and requires significant initialization time for each video slice, leading to overhead that limits slice rates and increases hardware costs due to the need for reinitializing 399 contexts, with existing solutions either consuming too much time or increasing hardware area.

Innovation Solution

A method utilizing a one-bit by 399 cell memory with a single cycle flash clear capability to minimize initialization overhead, where the context initialization is performed by reading current context values and using pre-computed initialization values stored in memory, allowing for continuous processing without interruptions and minimizing ROM storage area.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional loop-through initialization is used for all 399 contexts, then complete context initialization is achieved, but initialization time increases significantly

Engineering Contradiction:
Improvecontext initialization completenessVSAvoidinitialization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the 399 contexts into multiple groups and processes them in parallel using multiple initialization units. Each unit handles a specific group of contexts simultaneously, dividing the monolithic initialization process into concurrent sub-tasks that complete faster overall.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-calculates and stores initialization values in a lookup table before processing. Instead of computing initialization values during the initialization phase, the system prepares them in advance, eliminating computation time from the critical initialization path.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If multiple simultaneous initializations are performed to reduce time, then initialization speed improves, but hardware area increases due to wider memory and multiple scalars

Engineering Contradiction:
Improveinitialization timeVSAvoidhardware area
Core Design Contradiction:
Loss of timeVSArea of stationary object

Solution Approach 1:

The patent transitions from parallelizing across multiple scalar units (horizontal dimension) to parallelizing across multiple context groups using memory-based lookup (vertical dimension). This replaces compute-intensive parallel scalars with memory-access parallelism, reducing hardware area while maintaining speedup.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent uses a shared lookup table that stores pre-computed initialization values for all contexts. Multiple initialization units copy data from this single shared table rather than each unit maintaining separate storage, eliminating redundant memory and reducing overall hardware area.

Inventive Principle:
Principle #26Copying

3Loss of time

If pre-scaled table is stored to eliminate scaling operations, then initialization speed improves, but ROM storage area increases approximately 50 times

Engineering Contradiction:
Improveinitialization timeVSAvoidROM storage area
Core Design Contradiction:
Loss of timeVSVolume of stationary object

Solution Approach 1:

The patent stores pre-computed initialization values only for the specific conditions actually encountered in practice (e.g., only for valid context ranges and applicable slice types), rather than pre-computing and storing values for all possible contexts. This localized pre-computation dramatically reduces table size while maintaining initialization speed for actual use cases.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial initialization by identifying and initializing only the subset of contexts that are actually used in a given slice type, rather than initializing all 399 contexts. This selective approach reduces both the computation required and the size of any pre-computed tables needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7463781B2Low overhead context intializations for arithmetic video codecs
Publication Date: 2008.12.09 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US7463781B2 patent drawing
  • US7463781B2 patent drawing
  • US7463781B2 patent drawing

AI summary

A method for controlling an arithmetic codec context is disclosed. The method may include the steps of (A) reading a current value indicating one of a first condition and a second condition corresponding to a current context of a plurality of predetermined contexts, (B) generating an input state matching (i) an initial state in response to the first condition and (ii) an output state in response to the second condition, wherein the initial state has a predetermined value and the output state has a value generated by the method before receiving the current context and (C) generating a current output state by performing an arithmetic code operation on an input signal using the input state.