JIT Compiled Huffman Tree Decoding for MIPS Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Decoding JPEG files on MIPS-constrained devices, such as handheld communications devices, is computationally expensive due to the need for multiple main memory accesses to Huffman tables during the decoding process, leading to poor performance.

Innovation Solution

A method involving a JIT compiler that generates native machine code to construct a binary tree of prefix codes, allowing for the traversal of a Huffman tree without accessing main memory, thereby bypassing the need for time-consuming lookups and loop operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional Huffman decoding with main memory accesses is used, then decoding can be performed with simple software implementation, but decoding speed is slow due to multiple memory accesses

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoder complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The Huffman tree is constructed and stored in a pre-computed lookup table during system initialization or first-use. This preliminary action eliminates the need for repeated tree construction and memory accesses during actual decoding operations, significantly improving decoding speed while maintaining simple software implementation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of accessing the original Huffman tree structure stored in main memory during each decoding operation, the patent creates a copy of the tree structure in a optimized format (lookup table) that can be quickly accessed. This copying approach reduces memory access overhead and improves decoding performance without complicating the decoder architecture.

Inventive Principle:
Principle #26Copying

2Reliability

If multiple main memory accesses to Huffman tables are performed during decoding, then accurate decoding can be achieved, but computational cost increases on MIPS-constrained devices

Engineering Contradiction:
Improvedecoding accuracyVSAvoidcomputational energy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The lookup table is pre-computed and stored with all necessary decoding information including tree structure, node values, and exit codes. This preliminary preparation ensures that during actual decoding, the processor can retrieve accurate decoding information with minimal memory accesses, maintaining decoding accuracy while reducing computational energy consumption on MIPS-constrained devices.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical process of traversing the Huffman tree structure with multiple memory accesses and pointer following with a simplified lookup-based approach. By substituting the tree traversal mechanism with direct table lookups, the system maintains decoding accuracy while significantly reducing the computational overhead and energy consumption on resource-constrained processors.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If Huffman tree traversal with looping operations is used, then complete decoding can be performed, but performance deteriorates on resource-constrained handheld devices

Engineering Contradiction:
Improveimage decompression throughputVSAvoiddecoder implementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the iterative looping logic from the decoding process by pre-computing the entire Huffman tree structure and encoding it into a linear lookup table. This extraction eliminates the need for complex looping operations during actual decoding, allowing the processor to simply follow sequential instructions in the lookup table, thereby improving throughput while managing implementation complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The lookup table is designed to be self-contained with all necessary decoding information embedded within it, including the complete tree structure and decoding paths. This self-service approach allows the decoder to operate autonomously without requiring external control logic or complex iteration management, improving performance on handheld devices while keeping the implementation relatively simple.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8457419B2Method of decoding entropy-encoded data
Publication Date: 2013.06.04 MALIKIE INNOVATIONS LTD
  • US8457419B2 patent drawing
  • US8457419B2 patent drawing
  • US8457419B2 patent drawing

AI summary

A method of decoding data that is encoded with a set of prefix codes begins by receiving the data at a computing device, and then compiling native machine code from the prefix code set for execution by a processing unit of the computing device. The machine code implements a binary tree of prefix codes that corresponds to the prefix code set. The data is decoded by traversing the prefix code tree, which is effected by executing the machine code with the processing unit.