H.264 CABAC Decoder FSM Architecture for Real-Time HDTV

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional CABAC decoders for H.264 video decoding in HDTV applications face bottlenecks due to high complexity and difficulty in parallelization, leading to insufficient performance for real-time decoding on embedded systems, especially with multiple stalls caused by context memory updates and inefficient memory access patterns.

Innovation Solution

A decoder architecture utilizing multiple Finite State Machines (FSMs) adapted for specific syntax elements, a context memory, and a binary arithmetic decoder block that processes one bin per cycle, with optimized memory access and inter-block communication reduction through an intermediate FIFO, enabling efficient decoding of macroblock headers and data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If CABAC decoding is implemented in conventional hardware, then compression efficiency is improved, but decoding complexity increases and real-time performance deteriorates

Engineering Contradiction:
Improvecompression efficiencyVSAvoiddecoding complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The decoder is divided into multiple specialized Finite State Machines (FSMs), each dedicated to decoding specific syntax elements (e.g., one FSM for macroblock type, another for motion vectors, another for transform coefficients). This segmentation allows parallel processing of different syntax elements simultaneously, reducing overall decoding complexity while maintaining CABAC compression efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Context values are pre-loaded into context memory before decoding operations begin. The context model is prepared in advance with all necessary probability values and state information, eliminating the need for dynamic context updates during the critical decoding path. This preliminary preparation reduces runtime complexity and enables real-time processing.

Inventive Principle:
Principle #10Preliminary action

2Loss of information

If CABAC decoding is implemented in conventional hardware, then compression efficiency is improved, but processing speed decreases due to multiple stalls

Engineering Contradiction:
Improvecompression efficiencyVSAvoidprocessing speed
Core Design Contradiction:
Loss of informationVSSpeed

Solution Approach 1:

By segmenting the decoding function into multiple independent FSMs that can operate in parallel, the processor avoids sequential stalls. Each FSM processes its assigned syntax elements independently without waiting for context memory updates, as the context is pre-loaded and maintained in fast memory accessible by all FSMs simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The decoder maintains continuous processing by pre-loading all context values into fast memory before decoding begins. During operation, multiple FSMs continuously decode different syntax elements without interruption or stalls, as all required context information is immediately available in fast memory without needing to wait for memory write-back operations.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If context memory updates are performed frequently, then decoding accuracy is improved, but memory access efficiency deteriorates

Engineering Contradiction:
Improvedecoding accuracyVSAvoidmemory access efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

All context values are pre-loaded into fast memory before the decoding process begins. The context model is initialized with complete probability information for all syntax elements, eliminating the need for frequent memory write-back operations during decoding. This preliminary action maintains decoding accuracy while maximizing memory access efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The context model is copied into fast memory (SRAM or register file) from slower memory before decoding operations begin. Each FSM has direct access to this copied context data in fast memory, allowing frequent reads without the penalty of slow write-back operations to the original memory location, thus maintaining both accuracy and efficiency.

Inventive Principle:
Principle #26Copying

4Productivity

If multiple FSMs are used for syntax element decoding, then decoding parallelism is improved, but inter-block communication increases

Engineering Contradiction:
Improvedecoding parallelismVSAvoidinter-block communication
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Multiple FSMs share a common fast memory structure for context storage and access. Instead of each FSM having separate memory blocks requiring complex inter-block communication protocols, all FSMs access the same unified context memory space, significantly reducing communication overhead and simplifying the overall system architecture while maintaining parallelism.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9001882B2System for entropy decoding of H.264 video for real time HDTV applications
Publication Date: 2015.04.07 STMICROELECTRONICS SRL
  • US9001882B2 patent drawing
  • US9001882B2 patent drawing
  • US9001882B2 patent drawing

AI summary

An embodiment relates to a decoder for decoding CABAC encoded video data in real time for HDTV applications. The decoder comprises a binary arithmetic decoder block for converting an input bit stream into a bin string, a context memory for storing a plurality of context values, and a plurality of finite state machines. Each of the finite state machines is adapted for decoding a particular one of the H.264 syntax elements by providing the binary arithmetic decoder block with an index of the relevant context value within the context memory and by converting the resulting bin stream into a value of the current syntax element. In this manner, a performance of one bin per cycle may be achieved.