Parallel Deflate Decompression Using Overlapping Bit Windows

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Speed

If sequential decoding is used to determine codeword boundaries, then decoding accuracy is maintained, but decoding speed deteriorates

Engineering Contradiction:
Improvedecoding speedVSAvoiddecoder complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #1Segmentation

2Productivity

If parallel speculative decoding is performed in multiple bit windows, then decoding speed is improved, but computational complexity increases

Engineering Contradiction:
Improvedecompression throughputVSAvoidcomputational energy
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #23Feedback

3Quantity of substance

If variable length codewords are used for compression, then compression ratio is improved, but byte-alignment is lost making decoding difficult

Engineering Contradiction:
Improvedata compression ratioVSAvoidcodeword boundary detection
Core Design Contradiction:
Quantity of substanceVSDifficulty of detecting and measuring

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10284226B1Performing parallel deflate compression
Publication Date: 2019.05.07 AMAZON TECH INC
  • US10284226B1 patent drawing
  • US10284226B1 patent drawing
  • US10284226B1 patent drawing

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.