Cascaded History Buffers for Faster Lempel-Ziv Decompression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems face increased bandwidth and storage requirements when processing large amounts of information, which can be costly and slow down system performance, and existing compression algorithms either lose data quality or are inefficient in decompression speed.

Innovation Solution

The use of cascaded history buffers in a decompression engine to parallelize the decompression of Lempel-Ziv compressed data, with a smaller first-level buffer for recent history and a larger second-level buffer for less recent history, allowing for increased access and storage while maintaining data integrity and speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Volume of stationary object

If a single large history buffer is used to store all decompressed data, then storage capacity is sufficient, but access time increases and system performance decreases

Engineering Contradiction:
Improvehistory buffer storage capacityVSAvoiddecompression speed
Core Design Contradiction:
Volume of stationary objectVSSpeed

Solution Approach 1:

The patent divides the history buffer into multiple segments (first history buffer and second history buffer), each storing different portions of the decompressed data stream. This segmentation allows parallel access to different data portions, significantly improving decompression speed while maintaining sufficient total storage capacity.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If compression is applied to reduce bandwidth and storage requirements, then bandwidth and storage needs decrease, but decompression speed may be reduced

Engineering Contradiction:
Improvedata volumeVSAvoiddecompression throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

By segmenting the history buffer into multiple independently accessible buffers, the patent enables parallel decompression operations on compressed data streams, thereby maintaining high decompression throughput while preserving the bandwidth and storage reduction benefits of compression.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a dimensional change by organizing history buffers in a hierarchical structure with different levels (first-level and second-level buffers), allowing decompression operations to access data from multiple dimensions simultaneously, thus improving throughput without sacrificing compression efficiency.

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

3Quantity of substance

If lossy compression is used to achieve higher compression ratios, then data size reduces further, but data quality is lost

Engineering Contradiction:
Improvecompressed data sizeVSAvoiddata quality
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The patent employs lossless compression algorithms (such as Lempel-Ziv) that divide the data processing into manageable segments handled by different history buffers, achieving high compression ratios while preserving complete data integrity through the segmented buffer architecture.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9973205B1Decompression using cascaded history windows
Publication Date: 2018.05.15 AMAZON TECH INC
  • US9973205B1 patent drawing
  • US9973205B1 patent drawing
  • US9973205B1 patent drawing

AI summary

The following description is directed to decompression using cascaded history buffers. In one example, an apparatus can include a decompression pipeline configured to decompress compressed data comprising code words that reference a history of decompressed data generated from the compressed data. The apparatus can include a first-level history buffer configured to store a more recent history of the decompressed data received from the decompression pipeline. The apparatus can include a second-level history buffer configured to store a less recent history of the decompressed data received from the first-level history buffer.