Parallel Deflate Decompression Using Overlapping Bit Windows
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Huffman coding's variable length codewords result in compressed data that is not byte-aligned, making it difficult for decoders to determine the start and end of each codeword without decoding the previous codeword, leading to sequential decoding processes that are inefficient.
Innovation Solution
The proposed solution involves speculatively and concurrently detecting codewords in overlapping bit windows within the series of Huffman codewords, selecting valid codewords, and decompressing them to increase decoding speed, particularly in combination with LZ compression using the Deflate algorithm.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If sequential decoding is used to determine codeword boundaries, then decoding accuracy is maintained, but decoding speed deteriorates
Solution Approach 1:
The patent performs preliminary speculative decoding in parallel by creating multiple bit window views (first bit window view, second bit window view, etc.) that assume different starting positions for codewords. These speculative decodings are performed in advance before validation, allowing the system to quickly identify valid codeword boundaries without sequential processing.
Solution Approach 2:
The patent segments the compressed data stream into multiple overlapping bit windows, where each window represents a potential starting position for a codeword. By dividing the decoding task into multiple parallel segments (each window independently decoded), the system achieves parallel processing while maintaining the ability to validate results against the actual data structure.
2Productivity
If parallel speculative decoding is performed in multiple bit windows, then decoding speed is improved, but computational complexity increases
Solution Approach 1:
The patent uses feedback validation to check whether the speculative codeword decodings from different bit windows are consistent with the actual compressed data structure. By validating the results of parallel speculative decoding and selectively accepting only valid decodings, the system avoids wasting computational energy on incorrect speculative paths while maintaining high throughput from correct parallel processing.
3Quantity of substance
If variable length codewords are used for compression, then compression ratio is improved, but byte-alignment is lost making decoding difficult
Solution Approach 1:
The patent transforms the one-dimensional sequential decoding problem into a multi-dimensional parallel processing approach by creating multiple bit window views at different offset positions. This dimensional transformation allows simultaneous exploration of multiple potential codeword starting positions, making boundary detection easier through parallel validation rather than sequential searching.
Data Source
AI summary
A computing system includes a network interface, a processor, and a decompression circuit. In response to a compression request from the processor the decompression circuit compresses data to produce compressed data and transmits the compressed data through the network interface. In response to a decompression request from the processor for compressed data the decompression circuit retrieves the requested compressed data, speculatively detects codewords in each of a plurality of overlapping bit windows within the compressed data, selects valid codewords from some, but not all of the overlapping bit windows, decodes the selected valid codewords to generate decompressed data, and provides the decompressed data to the processor.


