Variable Copy Pointer Encoding for Higher Data Compression
Find Innovative SolutionsGenerate 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, allowing for more efficient representation of consecutive data units in the compressed output.
Engineering Contradictions & Design Principles
Engineering 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
Solution Approach 1:
The patent implements dynamic encoding by selecting between different code tables (first code table for small displacement counts, second code table for large displacement counts) based on the actual displacement count value. This dynamic adaptation allows the system to use the most efficient encoding for each specific case, improving overall compression ratio while maintaining implementation feasibility through clear selection criteria.
Solution Approach 2:
The patent changes the encoding parameters (code table selection) based on the displacement count value and match count value. By switching between different encoding schemes (fixed-length vs. variable-length, different bit allocations) according to the data characteristics, the system achieves better compression efficiency without significantly complicating the implementation.
2Loss of substance
If variable length code tables are used for encoding, then the compression ratio improves by reducing bits required, but the device complexity increases due to multiple code tables and selection logic
Solution Approach 1:
The patent segments the encoding space into multiple code tables, where the first code table handles small displacement counts (e.g., 0-255) and the second code table handles large displacement counts (e.g., 256-65535). This segmentation allows each code table to be optimized for its specific range, achieving better compression while keeping each individual code table relatively simple and manageable.
Solution Approach 2:
The patent performs preliminary classification by comparing the displacement count against thresholds before encoding. This preliminary action determines which code table to use, allowing the system to prepare the appropriate encoding scheme in advance, which simplifies the actual encoding process and reduces runtime complexity despite having multiple code tables.
3Ease of manufacture
If absolute displacement counts are encoded, then the encoding is straightforward, but the number of bits required is larger compared to relative displacement counts
Solution Approach 1:
The patent changes the encoding parameter from absolute displacement count to relative displacement count (difference between current and previous displacement counts). This parameter transformation significantly reduces the number of bits required, especially when displacement counts change gradually, while maintaining encoding simplicity through straightforward subtraction and encoding of the difference value.
Data Source
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.


