Hybrid Parallel Decoder for JPEG Images

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing decoding techniques for JPEG images are inefficient, as they either require re-encoding with reduced compression ratios or are wasteful in power consumption, particularly when attempting parallel decoding.

Innovation Solution

A hybrid parallel decoder method that partially decodes a JPEG file on a CPU to find offsets of entropy-encoded data blocks, then transfers these to a GPU for parallel processing, allowing for efficient Huffman decoding, de-quantization, and inverse-DCT transformation to reconstruct images.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel decoding is attempted using existing techniques, then decoding speed is improved, but power consumption increases and compression ratio deteriorates

Engineering Contradiction:
Improvedecoding speedVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments the decoding process into two distinct phases: a CPU-based phase that identifies entropy-encoded data block locations and determines Huffman tree structures, and a GPU-based phase that performs parallel Huffman decoding of individual blocks. This segmentation allows the CPU to perform sequential analysis tasks while the GPU handles parallel decoding operations, optimizing the use of each processor type's strengths and reducing overall power consumption compared to purely speculative parallel decoding approaches.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by having the CPU perform preparatory work before GPU parallel decoding: identifying offsets of entropy-encoded data blocks, determining Huffman tree structures, and organizing metadata. This preliminary processing enables the GPU to immediately begin efficient parallel Huffman decoding without requiring speculative execution or redundant processing, thereby reducing power consumption while maintaining high decoding speed.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel decoding is attempted using existing techniques, then decoding speed is improved, but compression ratio is reduced

Engineering Contradiction:
Improvedecoding speedVSAvoidcompression ratio
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent segments the image data into discrete entropy-encoded blocks that can be independently decoded in parallel by the GPU. Each block is processed separately using the same Huffman decoding logic, allowing parallel execution without requiring modification of the original compressed data structure. This preserves the compression ratio while achieving parallel decoding speed improvements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a copy of the compressed JPEG data and transfers it to GPU memory for parallel processing, while the original CPU-based decoding logic remains unchanged. This copying approach allows the GPU to perform parallel Huffman decoding using identical algorithms to the CPU version, ensuring decoding accuracy is maintained and compression ratio is preserved, while simultaneously achieving faster decoding speeds through parallel execution.

Inventive Principle:
Principle #26Copying

3Use of energy by moving object

If CPU-based serial decoding is used, then power consumption is reduced, but decoding speed is slow

Engineering Contradiction:
Improvepower consumptionVSAvoiddecoding speed
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The patent segments the decoding workload between CPU and GPU based on task characteristics: the CPU handles sequential tasks (offset identification, Huffman tree construction) that consume less power, while the GPU handles parallel Huffman decoding tasks that require higher computational throughput. This segmentation enables the system to achieve faster overall decoding speed than pure CPU serial decoding while maintaining more efficient power consumption than speculative parallel decoding approaches.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by having the CPU perform preparatory analysis to identify entropy-encoded block locations and construct Huffman tree structures before transferring control to the GPU. This preliminary work minimizes the CPU's involvement during the actual parallel decoding phase, allowing the GPU to operate at full capacity with minimal power-wasting CPU-GPU coordination overhead, thereby achieving both high speed and reasonable power efficiency.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If re-encoding with restart markers is performed, then parallel decoding becomes possible, but compression ratio is reduced

Engineering Contradiction:
Improveparallel decoding capabilityVSAvoidcompression ratio
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

Instead of modifying the compressed data structure (as in restart marker approaches), the patent inverts the problem by keeping the original JPEG compression structure intact and developing CPU-GPU coordination algorithms that can extract parallel decoding opportunities from the existing entropy-encoded block structure. This inversion approach enables parallel decoding without requiring re-encoding, thereby preserving the original compression ratio while achieving parallel processing capabilities.

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS10277921B2Hybrid parallel decoder techniques
Publication Date: 2019.04.30 NVIDIA CORP
  • US10277921B2 patent drawing
  • US10277921B2 patent drawing
  • US10277921B2 patent drawing

AI summary

Decoder techniques in accordance with embodiment of the present technology include partially decoding a compressed file on a serial based processing unit to find offsets of each of a plurality of entropy data blocks. The compressed file and offset for each of the plurality of entropy encoded data blocks are transferred to a parallel based processing unit. Thereafter, the compressed file is at least partially decoded on the parallel based processing unit using the offset for each of the plurality of entropy encoded data blocks.