Variable Copy-Pointer Encoding for Better Data Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data compression techniques, such as SLDC, face limitations in achieving optimal compression ratios due to inefficiencies in encoding consecutive data units and displacement counts, leading to suboptimal output data streams.

Innovation Solution

The implementation of variable length code tables, specifically Huffman coding, to generate copy pointer and literal data symbols, where the encoding scheme is determined based on relative displacement counts and match counts, optimizing the representation of consecutive data units in the compressed output.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If fixed-length encoding is used for displacement counts and match counts, then the encoding scheme is simple and easy to implement, but the compression ratio is suboptimal due to inefficient bit representation

Engineering Contradiction:
Improveease of implementationVSAvoidcompression ratio
Core Design Contradiction:
Ease of manufactureVSLoss of substance

Solution Approach 1:

The patent applies dynamic encoding by using variable-length code tables instead of fixed-length encoding. The code tables are adapted based on the actual data characteristics, specifically using different encoding schemes for different ranges of displacement counts and match counts. This allows the encoding to dynamically adjust to the data distribution, achieving better compression ratios while maintaining implementation feasibility through pre-defined code tables.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the encoding parameters by implementing variable-length codes for displacement counts and match counts. Instead of using a uniform fixed number of bits, the system uses different bit lengths depending on the value range and frequency of occurrence. This parameter change optimizes the average code length and improves compression efficiency without significantly complicating the implementation.

Inventive Principle:
Principle #35Parameter changes

2Loss of substance

If variable length code tables are used to optimize compression, then the compression efficiency improves, but the device complexity increases due to multiple code tables and range determinations

Engineering Contradiction:
Improvecompression efficiencyVSAvoidencoding scheme complexity
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The patent segments the encoding space by dividing displacement counts and match counts into different ranges, each with its own code table. This segmentation allows the system to use simpler code tables for each segment while collectively achieving optimal compression. The segmentation is implemented through range-based classification, which organizes the complexity into manageable pieces.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-defining multiple code tables for different ranges of values before the actual compression process. These code tables are prepared in advance based on statistical analysis of typical data distributions. During compression, the system only needs to determine which range the current value falls into and select the corresponding pre-prepared code table, avoiding the need for complex real-time optimization.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If uniform encoding is used for all data symbols, then the implementation is straightforward, but the compression is suboptimal for different types of consecutive data units

Engineering Contradiction:
Improveimplementation simplicityVSAvoidcompression optimization
Core Design Contradiction:
Ease of operationVSLoss of substance

Solution Approach 1:

The patent applies local quality by using different encoding strategies for different local characteristics of the data. Specifically, it uses different code tables for different ranges of displacement counts and match counts, and potentially different schemes for literal data symbols versus copy pointer symbols. This local differentiation allows each part of the data to be encoded with the most appropriate scheme for its specific characteristics, improving overall compression while keeping each local encoding rule relatively simple.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8933828B2Using variable encodings to compress an input data stream to a compressed output data stream
Publication Date: 2015.01.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8933828B2 patent drawing
  • US8933828B2 patent drawing
  • US8933828B2 patent drawing

AI summary

Provided are a computer program product, system, method, and data structure for compressing an input data stream. A determination is made of consecutive data units in the input data stream that match consecutive data units in a history buffer. A copy pointer symbol indicates a copy pointer symbol referencing previously received data units in the history buffer. A determination is made of a relative displacement count in the history buffer at which the number of matching consecutive data units start. A determination is made of a range of relative displacement counts comprising one of a plurality of ranges of displacement counts including the determined relative displacement count. A determination is made of the encoding scheme associated with the determined range. An encoding of the relative displacement count is determined from the determined encoding scheme. The determined encoding of the relative displacement count is indicated in the copy pointer.