Parallel Huffman Coding Using Prefix-Length and Frequency Tables
Find Innovative SolutionsGenerate 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 and processes a Huffman tree to create a prefix length table, logarithm frequency table, and cumulative frequency table, allowing for parallel encoding and decoding using bitwise operations and table lookups, thereby generating a compressed bitstream and symbol stream efficiently.
Engineering Contradictions & Design Principles
Engineering 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
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, allowing parallel execution while maintaining the compression benefits of entropy coding. This segmentation resolves the contradiction by enabling parallelization without requiring complex synchronization mechanisms.
Solution Approach 2:
The patent performs preliminary actions by pre-computing and storing frequency tables, cumulative frequency tables, and Huffman code mappings in memory before the actual encoding process. These pre-computed tables allow processors to quickly lookup and encode symbols without performing complex calculations in real-time, reducing the complexity of parallel execution while maintaining high compression ratios.
2Productivity
If parallel processing is implemented to increase throughput, then productivity is improved, but memory space requirement increases
Solution Approach 1:
The patent assigns different memory regions and data structures to different processors, allowing each processor to access only the specific tables and data it needs for its portion of the work. This local allocation of memory resources reduces the total memory footprint compared to providing full tables to all processors, while still enabling high throughput through parallel processing.
Solution Approach 2:
The patent uses compact representations and shared read-only tables that can be copied or referenced by multiple processors without requiring large amounts of unique memory per processor. The frequency tables and Huffman mappings are stored once and accessed by multiple processors, reducing overall memory requirements while maintaining parallel processing capability.
3Productivity
If complex parallel techniques are used to achieve high throughput, then productivity is improved, but ease of manufacture worsens due to implementation complexity
Solution Approach 1:
The patent implements self-service mechanisms where the decoding process automatically synchronizes processors and manages its own state without requiring complex external control. Each processor independently manages its own decoding state and progresses through the symbol stream at its own pace, eliminating the need for complex inter-processor synchronization logic and resynchronization markers, thereby simplifying implementation while maintaining high throughput.
4Loss of substance
If Huffman coding is used to achieve near-optimum compression, then loss of substance is reduced, but device complexity increases due to difficulty in operating in parallel
Solution Approach 1:
The patent segments the Huffman encoding process into independent parallel operations where multiple processors can simultaneously encode different symbols using the same Huffman tree. Each processor maintains its own encoding state and progresses independently through the symbol stream, allowing parallel execution of Huffman coding without requiring complex synchronization, thus achieving near-optimum compression with reduced parallelization complexity.
Data Source
Figure 1
Figure 2A
Figure 2B
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.