Pipelined DEFLATE Compression for High-Bandwidth Lossless Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data compression technologies, such as unmodified DEFLATE, face challenges in scalability and hardware implementation due to data hazards and complexity, particularly in achieving high-throughput lossless compression suitable for network traffic rates.

Innovation Solution

A modified DEFLATE process is implemented using a fully pipelined hardware-amenable compression method on reconfigurable devices like FPGAs, incorporating a chained hash table with parallelization and lazy match selection to enable parallel execution and hardware pipelining while maintaining high compression quality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If unmodified DEFLATE is implemented in hardware, then lossless compression is achieved, but scalability and hardware implementation become difficult due to data hazards and complexity

Engineering Contradiction:
Improvelossless compression qualityVSAvoidhardware implementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The compression process is divided into multiple independent pipeline stages: hash table construction stage, matching stage, and encoding stage. Each stage operates independently with clearly defined inputs and outputs, eliminating data hazards between stages and enabling parallel hardware implementation while maintaining lossless compression quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hash table is pre-computed and stored before the matching process begins. By preparing the hash table in advance during a separate construction stage, the matching stage can proceed without waiting for hash table updates, eliminating data hazards and enabling independent pipeline operation in hardware.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If traditional compression methods are used, then compression functionality is provided, but high-throughput suitable for network traffic rates cannot be achieved

Engineering Contradiction:
Improvecompression throughputVSAvoidpipeline architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The pipeline architecture ensures continuous compression operation by keeping all stages busy simultaneously. While one stage processes data, another stage prepares or encodes, eliminating idle time and achieving sustained high throughput suitable for network traffic rates without excessive complexity.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system uses dynamic pipeline control where data flows through different stages at optimized rates. The pipeline can adapt to varying input rates while maintaining continuous operation, enabling high throughput performance without requiring overly complex static architecture.

Inventive Principle:
Principle #15Dynamics

3Productivity

If parallelization is implemented to increase throughput, then high-bandwidth compression is achieved, but compression quality may be sacrificed

Engineering Contradiction:
Improvecompression throughputVSAvoidcompression quality
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

By segmenting the compression process into independent stages that operate in parallel, the system achieves high throughput without compromising compression quality. Each stage maintains the integrity of the compression algorithm while running concurrently, ensuring lossless compression is preserved despite parallelization.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9590655B2Scalable high-bandwidth architecture for lossless compression
Publication Date: 2017.03.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9590655B2 patent drawing
  • US9590655B2 patent drawing
  • US9590655B2 patent drawing

AI summary

A method of lossless data compression includes receiving a set of parallel data strings; determining compression hash values for each of the parallel data strings; determining bit matches among portions of each of the parallel data strings based, at least in part, on the compression hash values; selecting among literals and the bit matches for each of the parallel data strings; and applying Huffman encoding to the selected literals or the selected bit matches.