Sub-Literal Huffman Trees for Lower-Complexity DEFLATE Coding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Huffman coding techniques used in DEFLATE file formats are complex and time-consuming, requiring significant processing time and resources, especially when constructing Huffman code trees for literals, which limits their efficiency in data compression and decompression.
Innovation Solution
The proposed solution involves dividing literal elements into sub-literals and encoding each sub-literal using separate Huffman code trees, reducing the complexity and latency of the encoding and decoding processes by using smaller, more efficient Huffman code trees for sub-literals.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional Huffman coding is used for DEFLATE compression, then compression capability is maintained, but processing time and computational complexity increase
Solution Approach 1:
The patent divides the traditional single Huffman code tree into multiple separate Huffman code trees, each handling a specific subset of literal values (e.g., one tree for 0-255, another for 256-511). This segmentation reduces the complexity of each individual tree construction and lookup operations, directly addressing the contradiction by lowering computational burden while preserving compression functionality through the combined use of multiple specialized trees.
2Productivity
If traditional Huffman coding with large code trees is used, then compression ratio is optimized, but hardware resources and latency increase
Solution Approach 1:
By segmenting the large Huffman code tree into multiple smaller trees, the patent reduces the hardware resources required for each tree construction and storage. Each smaller tree requires less memory and processing power, enabling faster lookup operations and reduced latency, thus improving compression speed while decreasing hardware resource requirements.
Solution Approach 2:
The patent applies partial action by using multiple specialized Huffman trees only for specific ranges of literal values rather than constructing a single comprehensive tree for all possible values. This partial approach to Huffman coding achieves sufficient compression for common literal ranges while avoiding the excessive hardware resources and latency that would result from a complete universal tree.
3Device complexity
If separate Huffman code trees are used for sub-literals, then encoding complexity is reduced, but compression ratio may be slightly degraded
Solution Approach 1:
The patent applies local quality by creating specialized Huffman code trees optimized for specific local ranges of literal values (e.g., one tree optimized for common ASCII characters 0-255, another for extended characters 256-511). Each local tree is constructed with optimal code assignments for its specific range, reducing encoding complexity within that range while maintaining good compression ratios for the local data distribution.
Data Source
AI summary
A literal element that has a plurality of bits is received. The plurality of bits in the literal element is divided into a first sub-literal comprising a first set of bits and a second sub-literal comprising a second set of bits. The first sub-literal is encoded using a first Huffman code tree to obtain a first sub-literal codeword; the second sub-literal is encoded using a second Huffman code tree to obtain a second sub-literal codeword. Encoded data that includes information associated with the first Huffman code tree, information associated with the second Huffman code tree, the first sub-literal codeword, and the second sub-literal codeword is output.


