Variable-Length Decoding Partition Markers for Parallel Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing variable length coding technologies face challenges in parallelizing the decoding process, which limits the efficiency of multi-core processing and power management in applications like image and video compression, as entropy decoding is inherently serial and difficult to parallelize.

Innovation Solution

The introduction of partition markers within the encoded data stream allows for the subdivision of data into independent partitions, enabling parallel decoding across multiple processors and achieving load balancing by ensuring approximately equal computational loads across decoders.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If variable length decoding is performed using traditional sequential methods, then decoding accuracy is maintained, but processing speed and efficiency deteriorate due to inability to parallelize

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoding system complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent divides the encoded bitstream into multiple independent partitions by inserting synchronization markers at specific boundaries. Each partition can be decoded independently by separate decoder units, enabling parallel processing. The segmentation is achieved by identifying valid partition points where code word boundaries align, allowing multiple decoders to work simultaneously on different segments without interfering with each other.

Inventive Principle:
Principle #1Segmentation

2Productivity

If parallel decoding is attempted without partition markers, then processing efficiency improves, but decoding reliability deteriorates due to inability to synchronize multiple decoders

Engineering Contradiction:
Improvedecoding throughputVSAvoiddecoding synchronization
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Synchronization markers act as intermediary elements that mediate between the encoded data and multiple parallel decoders. These markers provide explicit boundary information that allows each decoder to independently identify where its partition begins and ends, ensuring proper synchronization without requiring complex inter-decoder communication or coordination mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Use of energy by stationary object

If sequential decoding is used to maintain simplicity, then system complexity remains low, but energy consumption increases due to inability to utilize multi-core processing efficiently

Engineering Contradiction:
Improvedecoder energy consumptionVSAvoidparallel processing architecture
Core Design Contradiction:
Use of energy by stationary objectVSDevice complexity

Solution Approach 1:

The bitstream is segmented into independent partitions using synchronization markers, enabling distribution across multiple decoder cores. This segmentation allows the system to utilize multi-core processing architecture efficiently, where each core processes a partition in parallel, reducing total energy consumption compared to sequential processing on a single core, while maintaining manageable complexity through the use of simple marker-based partitioning.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8520958B2Parallelization of variable length decoding
Publication Date: 2013.08.27 STMICROELECTRONICS INT NV
  • US8520958B2 patent drawing
  • US8520958B2 patent drawing
  • US8520958B2 patent drawing

AI summary

Parallelization of decoding of a data stream encoded with a variable length code includes determining one or more markers, each of which indicates a position within the encoded data stream. The determined markers are included into the encoded data stream together with the encoded data. At the decoder side, the markers are parsed from the encoded data stream and based on the extracted markers. The encoded data is separated into partitions, which are decoded separately and in parallel.