Canonical Huffman Coding in VLSI Without Tree Sorting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Huffman coding implementations face inefficiencies due to memory usage and computational costs associated with storing and traversing the code tree, particularly when dealing with high proportions of unique literals and complex hardware-based compression in high-bandwidth applications.

Innovation Solution

The implementation of canonical Huffman coding using VLSI circuits, which simplifies the decoding process by storing only code lengths and eliminates the need for dedicated hardware sorting operations, and introduces a suboptimal algorithm to limit Huffman code lengths, making it more suitable for hardware implementation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional Huffman coding with code tree storage is used, then compression efficiency is improved, but memory usage increases significantly

Engineering Contradiction:
Improvecompression efficiencyVSAvoidmemory usage
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information needed for decoding by storing solely the code lengths in a lookup table rather than the complete code tree structure. This extraction of critical data elements reduces memory requirements while preserving the ability to perform lossless decompression, directly resolving the contradiction between compression efficiency and memory usage.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates a simplified copy of the code tree information by storing only the length attributes in a lookup table rather than the full hierarchical structure. This copying approach retains the necessary decoding capability while significantly reducing the memory footprint, addressing the trade-off between maintaining compression performance and reducing storage requirements.

Inventive Principle:
Principle #26Copying

2Measurement precision

If traditional Huffman decoding with tree traversal is implemented, then accurate decoding is achieved, but computational cost increases

Engineering Contradiction:
Improvedecoding accuracyVSAvoidcomputational cost
Core Design Contradiction:
Measurement precisionVSUse of energy by stationary object

Solution Approach 1:

The patent replaces the mechanical tree traversal process with a direct table lookup operation. Instead of navigating through the hierarchical code tree structure requiring multiple comparisons and pointer followings, the system directly accesses the precomputed lookup table using the input data as an index, dramatically reducing computational steps and energy consumption while maintaining decoding accuracy.

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

Solution Approach 2:

The patent performs preliminary computation by precalculating and storing the code length information in a lookup table before the actual decoding process. This preliminary action eliminates the need for complex runtime tree traversal calculations, reducing the computational burden during decoding operations while ensuring accurate reconstruction of the original data.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If hardware sorting operations are included for Huffman encoding, then optimal code generation is achieved, but device complexity increases

Engineering Contradiction:
Improvecode optimizationVSAvoidhardware complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the necessary statistical information (frequency counts) from the input data and uses this extracted information to directly determine code lengths without implementing full hardware sorting operations. This extraction approach achieves sufficient code optimization for hardware implementation while avoiding the complexity of building complete sorting circuits.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the optimization parameter from achieving theoretically optimal Huffman codes through complete sorting to achieving practically effective compression through frequency-based code length assignment. This parameter change allows the system to achieve good compression performance with simpler hardware that does not require complex sorting operations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3152840B1VLSI efficient huffman encoding apparatus and method
Publication Date: 2020.04.29 MICRON TECHNOLOGY INC
  • EP3152840B1 patent drawingFigure 1
  • EP3152840B1 patent drawingFigure 2
  • EP3152840B1 patent drawingFigure 3

AI summary

A compression algorithm based on Huffman coding is disclosed that is adapted to be readily implemented using VLSI design. A data file may be processed to replace duplicate data with copy commands including an offset and length, such as according to the LV algorithm. A Huffman code may then be generated for parts of the file. The Huffman code generates Huffman code lengths for literals in a data file without first sorting the literal statistics. The Huffman code lengths may be constrained to be no longer than a maximum length and the Huffman code may be modified to provide an acceptable overflow probability and be in canonical order. Literals, offsets, and lengths may be separately encoded. The different values for these data sets may be assigned to a limited number of bins for purpose of generating usage statistics used for generating Huffman codes.