Huffman Decoding Lookup Tables for Fast Low-Memory Search

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Huffman decoding methods are inefficient for embedded systems due to slow processing speed and high memory usage, making them unsuitable for handling high-bit-rate audio streams and images with limited resources.

Innovation Solution

A Huffman decoding method that processes codewords to derive an auxiliary lookup table, reducing memory usage and enhancing search speed by limiting the search range to specific codeword groups, allowing for efficient decoding in embedded systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple bit methods with table lookup are used to speed up Huffman decoding, then decoding speed is improved, but memory space consumption increases significantly

Engineering Contradiction:
ImproveHuffman decoding speedVSAvoidmemory space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent divides the traditional large Huffman decoding table into multiple smaller auxiliary lookup tables. Each auxiliary table stores only a portion of the codeword data (specifically, the high-order bits and corresponding decoded values), while the low-order bits are processed separately. This segmentation reduces the memory footprint of each individual table while maintaining the overall decoding functionality through coordinated use of multiple smaller tables.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by creating specialized auxiliary lookup tables that store only the specific portions of codeword data needed for each decoding stage. Rather than storing complete codeword mappings in a single large table, each auxiliary table is optimized to store locally relevant information (high-order bits paired with decoded values), allowing efficient local lookup operations that collectively achieve full decoding functionality with reduced total memory usage.

Inventive Principle:
Principle #3Local quality

2Quantity of substance

If single bit decoding methods are used, then memory space is reduced, but decoding speed becomes very slow

Engineering Contradiction:
Improvememory spaceVSAvoidHuffman decoding speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent performs preliminary action by pre-processing the codeword data to create auxiliary lookup tables that contain pre-computed high-order bit patterns and their corresponding decoded values. During actual decoding operations, the high-order bits are looked up in advance in these auxiliary tables, eliminating the need for sequential bit-by-bit processing. This preliminary preparation of lookup data enables faster decoding while keeping memory requirements low.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces auxiliary lookup tables as intermediary structures between the input codewords and the final decoded output. These intermediary tables store pre-processed high-order bit information that mediates the decoding process, allowing the system to avoid direct sequential processing of all bits while maintaining memory efficiency. The intermediary tables bridge the gap between compact storage and fast retrieval.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7880647B1Huffman decoding method
Publication Date: 2011.02.01 SILICON MOTION INC
  • US7880647B1 patent drawing
  • US7880647B1 patent drawing
  • US7880647B1 patent drawing

AI summary

A Huffman decoding method for decoding codewords included in an encoded data transmitted via a stream includes: processing codewords of a codebook that is predefined or extracted from the stream to derive at least an auxiliary lookup table, and storing each derived auxiliary lookup table in a storage device; and searching a decoded value corresponding to a target codeword included in the encoded data according to at least the auxiliary lookup table stored in the storage device and the codebook.