GPU Huffman Decoding with Overlapped Chunk Boundary Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Huffman decoding schemes are not suitable for parallel processing due to the unpredictable relationship between encoded and decoded bits, which prevents the implementation of efficient parallel decoding methods.

Innovation Solution

The system partitions the Huffman encoded bitstream into chunks and assigns each execution unit to decode a chunk and an extra portion of an adjacent chunk, allowing for parallel decoding while correcting incorrectly decoded data at chunk boundaries.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a naive parallel algorithm is used to decode Huffman data, then parallel processing capability is improved, but decoding correctness deteriorates due to unpredictable relationship between encoded and decoded bits

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoding correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent divides the encoded bitstream into multiple fixed-size chunks, with each execution unit assigned to decode a specific chunk. This segmentation allows parallel processing while managing the unpredictable bit relationship by isolating decoding tasks into manageable segments with controlled overlap regions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each execution unit decodes an extra portion of the adjacent chunk beyond its assigned chunk boundary before final validation. This preliminary action ensures that potentially incorrect decodings at chunk boundaries are generated in advance, allowing subsequent validation and correction steps to identify and fix errors systematically.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 3:

The patent implements a validation mechanism where decoded data at chunk boundaries is checked for correctness. When incorrect decodings are detected in the extra portion, the system uses feedback from adjacent execution units to identify the correct symbol boundaries and correct the errors, ensuring decoding reliability.

Inventive Principle:
Principle #23Feedback

2Productivity

If parallel decoding is implemented by assigning fixed chunks to execution units, then processing efficiency is improved, but decoding accuracy deteriorates at chunk boundaries due to misalignment with symbol boundaries

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidsymbol boundary alignment
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent applies different processing strategies to different regions of the chunk. The majority of each chunk is decoded with standard parallel processing, while the extra portion at the boundary receives special attention with validation and correction mechanisms. This local quality approach maintains high overall efficiency while ensuring accuracy at critical boundary regions.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

Each execution unit performs partial decoding of the adjacent chunk (the extra portion) beyond its strict assignment boundaries. This excessive action of decoding additional data ensures that symbol boundaries are not missed, and the validation process can identify and correct any misalignments, sacrificing some redundant computation for guaranteed accuracy.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If execution units decode only their assigned chunk without overlapping, then resource utilization is improved, but decoding completeness deteriorates due to missed symbol boundaries

Engineering Contradiction:
Improveresource utilizationVSAvoiddecoded data completeness
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

Execution units perform preliminary decoding of the extra portion of adjacent chunks before the actual chunk boundaries are finalized. This preliminary action ensures that no symbol boundaries are missed, as the extra portion acts as a buffer zone that captures potential boundary locations, preventing information loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The validation process uses feedback from comparing decoded results across chunk boundaries to identify the correct symbol boundaries. When execution units decode extra portions, the system validates these results and uses feedback to determine where actual symbol boundaries lie, ensuring complete and accurate decoding without permanent information loss.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3646467B1GPU parallel huffman decoding
Publication Date: 2025.05.28 ATI TECHNOLOGIES ULC
  • EP3646467B1 patent drawingFigure 1
  • EP3646467B1 patent drawingFigure 2
  • EP3646467B1 patent drawingFigure 3

AI summary

Systems, apparatuses, and methods for implementing a parallel Huffman decoding scheme are disclosed herein. A system with a plurality of execution units receives a Huffman encoded bitstream. The system partitions the encoded bitstream into a plurality of chunks. Each execution unit is assigned to decode a separate chunk of the encoded bitstream as well as an extra portion of an adjacent chunk. With this approach, the decoding of the bitstream overlaps for a programmable amount of data at each chunk boundary since each execution unit, excluding the first execution unit decoding the first chunk of the bitstream, will likely decode a certain number of symbols incorrectly at the beginning of the chunk since the chunk boundaries will not be aligned with symbol boundaries. The system determines, from the decoded extra portion at each chunk boundary, where incorrectly decoded ends and where correctly decoded data begins for each decoded chunk.