Hash-Based Compression Matching for Larger History Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data compression algorithms, such as the Lempel-Ziv Stac algorithm, rely on pattern matching to reduce data transmission bandwidth, but they are limited by the need for precise matching between transmitter and receiver history buffers, leading to inefficiencies in compressing data with varying redundancy levels.

Innovation Solution

The method involves generating a hash table with pointers to historical data, allowing for doubleword and all-to-all comparisons to increase the chances of pattern matching, thereby optimizing data compression by using additional data from the history and its associated pointers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional pattern matching algorithms are used to search for repeating data patterns in the history buffer, then the compression algorithm can identify and replace repetitive data, but the search process becomes time-consuming and reduces compression efficiency

Engineering Contradiction:
Improvepattern matching accuracyVSAvoidcompression efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent pre-processes the history buffer by creating a hash table that stores hash values of historical data segments along with their positions. This preliminary action allows the compression algorithm to quickly retrieve potential matches without performing exhaustive sequential searches, thereby maintaining pattern matching accuracy while significantly improving compression efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a hash table as an intermediary data structure between the input data and the history buffer. The hash table serves as a mediator that maps hash values to historical data positions, enabling fast indirect access to potential pattern matches without direct comparison of entire data segments, thus resolving the contradiction between matching reliability and compression productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the history buffer size is increased to improve compression ratios for highly redundant data, then more patterns can be matched, but the memory requirements and buffer management complexity increase

Engineering Contradiction:
Improvecompression ratioVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the history buffer into manageable units and organizes them in a hash table structure. Instead of treating the entire history buffer as a single large block that requires complex management, it divides the buffer into smaller segments that can be independently hashed and stored, reducing buffer management complexity while still allowing access to a large effective history for improved compression ratios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from a one-dimensional sequential history buffer to a two-dimensional hash table structure where data is organized by hash value indices. This dimensional change allows efficient access to historical patterns without requiring linear search through the entire buffer, enabling larger effective buffer sizes with manageable complexity through the hash-based indexing system.

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

Data Source

PatentUS8868584B2Compression pattern matching
Publication Date: 2014.10.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8868584B2 patent drawing
  • US8868584B2 patent drawing
  • US8868584B2 patent drawing

AI summary

Systems and methods are provided for data comparisons in a compression algorithm to optimize the compression of data. An exemplary method includes receiving input data. The method further includes generating a hash table address for the input data. The method further includes obtaining a pointer associated with the hash table address. The method further includes reading a data library with the pointer to obtain an associated piece of historical data. The method further includes comparing the historical data to the input data to determine a match.