History-Based Byte Stream Compression Without Prefix Table Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing stream-based compression methods are inefficient in reducing bandwidth consumption and responsiveness due to the need to transmit prefix tables and lack of accurate matching in history buffers.

Innovation Solution

The system employs a real-time history-based byte stream compression using an elaborate hashing scheme and context-specific prefix codes, allowing the encoder and decoder to mirror prefix code computation, eliminating the need for transmitting prefix tables and improving matching accuracy by using an arbitrarily sized circular history buffer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If prefix tables are transmitted in existing stream-based compression methods, then the decoder can decode the compressed data, but the bandwidth consumption increases and the transmission time is extended

Engineering Contradiction:
Improvecompression efficiencyVSAvoidbandwidth consumption
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The decoder mirrors the encoder's prefix code computation process, generating the same prefix codes locally without receiving them from the encoder. This self-service approach eliminates the need to transmit prefix tables, reducing bandwidth consumption while maintaining decoding accuracy

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Both encoder and decoder pre-compute and maintain identical prefix code tables using the same hashing scheme and context-specific computation before compression begins. This preliminary synchronization allows the decoder to independently generate the correct prefix codes without receiving them during transmission

Inventive Principle:
Principle #10Preliminary action

2Ease of manufacture

If conventional compression methods use fixed-size history buffers, then the implementation is simpler, but the matching accuracy is reduced

Engineering Contradiction:
Improveimplementation simplicityVSAvoidmatching accuracy
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The history buffer is implemented as a dynamic circular buffer with arbitrarily adjustable size rather than a fixed-size buffer. The buffer automatically overwrites oldest entries when full, maintaining optimal matching capability while adapting to different data patterns and compression requirements through configurable size parameters

Inventive Principle:
Principle #15Dynamics

3Loss of information

If the encoder uses elaborate hashing scheme for accurate matching, then the compression ratio improves, but the computational complexity increases

Engineering Contradiction:
Improvecompression ratioVSAvoidcomputational complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The hashing scheme uses context-specific parameters including the number of preceding bytes and buffer size configurations to optimize the balance between matching accuracy and computational cost. By adjusting these parameters based on data characteristics, the system achieves high compression ratios without excessive computational complexity

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The hashing process is segmented into multiple stages: initial hash computation for quick filtering, followed by verification of matching sequences. This segmentation allows the system to quickly eliminate non-matching candidates with simple hash comparisons before performing more complex verification operations on potential matches

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11025272B2Real-time history-based byte stream compression
Publication Date: 2021.06.01 CITRIX SYSTEMS INC
  • US11025272B2 patent drawing
  • US11025272B2 patent drawing
  • US11025272B2 patent drawing

AI summary

Systems and methods for stream-based compression include an encoder of a first device that may receive an input stream of bytes including a first byte preceded by one or more second bytes. The encoder may determine to identify a prefix code for the first byte. The encoder may select a prefix code table using the one or more second bytes. The encoder may identify, from the selected prefix code table, the prefix code of the first byte. The encoder may generate an output stream of bytes by replacing the first byte in the input stream with the prefix code of the first byte. The encoder may transmit the output stream from the encoder of the first device to a decoder of a second device. The output stream may have a fewer number of bits than the input stream.