Parallel Huffman Coding With Precomputed Tables for Low-Complexity Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory devices face challenges in achieving low memory space requirements, low complexity, high throughput, and near-optimum compression due to the complexity of parallelizing entropy coding techniques, particularly in decoders.

Innovation Solution

A memory device with a processor that generates a Huffman tree, prefix length table, logarithm frequency table, and cumulative frequency table to encode and decode digital data, allowing for parallel processing and efficient compression and decompression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of substance

If entropy coding techniques are used for compression, then compression ratio is improved, but device complexity increases due to difficulty in parallelization

Engineering Contradiction:
Improvedata redundancyVSAvoidparallelization complexity
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The patent divides the entropy coding process into independent parallel segments by processing multiple symbols simultaneously through multiple processors. Each processor handles a portion of the symbol stream independently using pre-computed Huffman tables, allowing parallel execution without complex synchronization while maintaining high compression ratios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent pre-computes Huffman coding tables during an initialization phase before the actual compression operation. This preliminary action includes building the Huffman tree and generating frequency tables, which are then stored for rapid lookup during parallel compression, eliminating the need for complex real-time computations during the encoding phase.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel processing is implemented to increase throughput, then productivity is improved, but memory space requirement increases

Engineering Contradiction:
Improvecompression throughputVSAvoidmemory space
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent assigns different Huffman frequency tables to different processors based on their specific processing needs. Each processor maintains only the necessary table data for its assigned symbols, rather than all processors storing complete tables. This local optimization reduces overall memory consumption while enabling parallel processing across multiple units.

Inventive Principle:
Principle #3Local quality

3Productivity

If complex parallel techniques are used for decoding, then throughput is improved, but ease of operation deteriorates

Engineering Contradiction:
Improvedecoding throughputVSAvoidimplementation ease
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent uses identical Huffman decoding logic across all parallel processors, with each processor executing the same decoding algorithm on its assigned portion of the data. This copying approach simplifies implementation because the same proven code can be replicated across multiple processors without requiring complex custom decoding logic for each unit.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12113554B2Low complexity optimal parallel Huffman encoder and decoder
Publication Date: 2024.10.08 SAMSUNG DISPLAY CO LTD
  • US12113554B2 patent drawing
  • US12113554B2 patent drawing
  • US12113554B2 patent drawing

AI summary

A memory device includes a memory; and at least one processor configured to: obtain a symbol stream including a plurality of symbols; determine a Huffman tree corresponding to the symbol stream, wherein each symbol of the plurality of symbols is assigned a corresponding prefix code from among a plurality of prefix codes based on the Huffman tree; generate a prefix length table based on the Huffman tree, wherein the prefix length table indicates a length of the corresponding prefix code for each symbol; generate a logarithm frequency table based on the prefix length table, wherein the logarithm frequency table indicates a logarithm of a frequency count for each symbol, generate a cumulative frequency table which indicates a cumulative frequency count corresponding to each symbol; generate a compressed bitstream by iteratively applying an encoding function to the plurality of symbols based on the logarithm frequency table and the cumulative frequency table; and store the compressed bitstream in the memory.