Real-time history-based byte stream compression
AssigneeCitrix Systems, Inc.
InventorMuhammad Dawood
Life of this patent
Estimating the term…
Abstract
Systems and methods for stream-based compression include an encoder of a first device that receives 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.
Claims20
A method for stream-based compression comprising:
- receiving, by an encoder of a first device, an input stream of bytes including a first byte preceded by one or more second bytes;
- determining, by the encoder, to identify a prefix code for the first byte;
- selecting, by the encoder from a plurality of prefix code tables maintained by the encoder, a prefix code table using the one or more second bytes, each prefix code table of the plurality of prefix code tables including respective prefix codes for respective bytes, each prefix code comprising a number of bits based on a frequency of occurrence of the one or more second bytes preceding the respective byte;
- identifying, by the encoder, from the selected prefix code table, the prefix code of the first byte;
- generating, by the encoder, an output stream of bytes by replacing the first byte in the input stream with the prefix code of the first byte;
- and
- transmitting the output stream from the encoder of the first device to a decoder of a second device, the output stream having a fewer number of bits than the input stream.
A system for stream-based compression comprising:
- a first device comprising:
- an encoder configured to:
- receive an input stream of bytes including a first byte preceded by one or more second bytes;
- determine to identify a prefix code for the first byte;
- select, from a plurality of prefix code tables maintained by the encoder, a prefix code table using the one or more second bytes, each prefix code table of the plurality of prefix code tables including respective prefix codes for respective bytes, each prefix code comprising a number of bits based on a frequency of occurrence of the one or more second bytes preceding the respective byte;
- identify, from the selected prefix code table, the prefix code of the first byte;
- and
- generate an output stream of bytes by replacing the first byte in the input stream with the prefix code of the first byte;
- wherein the first device is configured to transmit the output stream from the encoder of the first device to a decoder of a second device, the output stream having a fewer number of bits than the input stream.
Dependencies are inferred from the claim text.