Variable-Length Decoding with Partition Markers for Parallel Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing variable length coding technologies face challenges in parallelizing decoding processes, which limits the efficiency of multi-core architectures and hinders real-time, low-power encoding and decoding in applications like image and video compression, especially for portable devices.

Innovation Solution

The introduction of partition markers within the encoded data stream allows for independent decoding of partitions, enabling load balancing across parallel decoders by marking boundaries between code-words, thereby facilitating parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If variable length decoding is performed serially to ensure accurate code-word boundary identification, then decoding accuracy is maintained, but decoding speed and productivity deteriorate

Engineering Contradiction:
Improvecode-word boundary identification accuracyVSAvoiddecoding speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The encoded data stream is divided into multiple partitions using partition markers. Each partition can be decoded independently by separate decoder instances, enabling parallel processing while maintaining accurate code-word boundary identification within each partition. This segmentation resolves the contradiction by allowing multiple serial decoding processes to occur simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Partition markers are inserted into the encoded data stream during the encoding phase, before decoding occurs. These markers pre-establish the code-word boundaries that would otherwise require complex runtime analysis during decoding. This preliminary action enables decoders to quickly identify boundaries without sacrificing accuracy, thereby improving decoding speed.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If partition markers are added to enable parallel decoding, then productivity and decoding speed improve, but device complexity and data stream structure complexity increase

Engineering Contradiction:
Improveparallel decoding efficiencyVSAvoiddata stream structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Partition markers are simple, lightweight data elements that add minimal overhead to the encoded stream. They serve their purpose of enabling partition identification and can be easily parsed and discarded during decoding, without requiring complex processing or long-term storage. This keeps the added complexity manageable while achieving parallel decoding benefits.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Productivity

If multiple partitions are decoded in parallel to reduce decoding time, then productivity improves, but synchronization and load balancing difficulty increase

Engineering Contradiction:
Improvedecoding throughputVSAvoidparallel processing coordination
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By dividing the data stream into partitions with clear boundaries marked by partition markers, the system creates naturally segmented units of work that can be distributed to multiple decoder instances. This segmentation simplifies load balancing compared to arbitrary partitioning, as each partition is self-contained with well-defined start and end points, reducing synchronization complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8942502B2Parallelization of variable length decoding
Publication Date: 2015.01.27 STMICROELECTRONICS INT NV
  • US8942502B2 patent drawing
  • US8942502B2 patent drawing
  • US8942502B2 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.