Context-Adaptive Variable-Length Coding for Parallel Syntax Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The H.264 CAVLC method is time-consuming due to dependencies between syntax elements, requiring completion of calculations for one element before starting another, which slows down the variable-length coding process.

Innovation Solution

A variable-length coding apparatus that processes image data block by block, using a storage unit to temporarily store data, calculating and coding syntax elements in parallel, allowing simultaneous calculation and coding of multiple elements without waiting for previous calculations to complete.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If syntax elements are coded sequentially with dependencies, then coding accuracy is maintained, but processing speed decreases

Engineering Contradiction:
Improveprocessing speedVSAvoiddependency management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the syntax element coding process into independent parallel processing units. Each syntax element (TotalCoeff, TrailingOnes, TotalZeros, Level, Run) is processed by a dedicated calculating unit that operates independently, eliminating sequential dependencies while maintaining coding accuracy through structured parallel execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary calculation of syntax element values before the actual variable-length coding process. The calculating units compute all necessary syntax element values in advance using parallel processing, so that when coding begins, all values are ready and no sequential waiting is required, thereby increasing processing speed.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel processing is implemented, then processing speed increases, but device complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidnumber of processing units
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent employs a universal processing architecture where multiple calculating units share the same functional structure and operate on different syntax elements simultaneously. This multi-functional design allows parallel processing without requiring entirely separate processing paths, thereby managing device complexity while achieving speed improvements.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the output stages of multiple parallel calculating units into a single integrated coding process. All syntax element values computed in parallel are fed into the variable-length coding unit simultaneously, combining multiple processing streams into one unified output, which reduces the overall system complexity compared to fully separate processing chains.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUSRE45300E1Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements
Publication Date: 2014.12.23 CANON KK
  • USRE45300E1 patent drawing
  • USRE45300E1 patent drawing
  • USRE45300E1 patent drawing

AI summary

A variable-length coding apparatus which receives image data block by block, and generates coded data from syntax elements. A storage unit temporarily stores the image data, while, at the same time, a first syntax element calculating unit calculates a first syntax element from the image data. A first coding unit generates coded data of the first syntax element from a value of the first syntax element. A second syntax element is calculated from the image data by a second syntax element calculating unit that reads out the image data stored in the storage unit. A second coding unit generates coded data of the second syntax element on the basis of the values of the first and second syntax elements, and a packing unit connects the coded data of the first and second syntax elements.