Data compression for use with a communications channel
First Claim
1. A method of compressing data for transmission over a communications channel comprising:
- receiving a symbol, and at least one subsequent symbol;
determining in a compression dictionary whether the symbol has a valid extension pointer;
using, in the event the symbol does have a valid extension pointer, the valid extension pointer to access string extension symbols;
determining, in the event the symbol does have a valid extension pointer, whether the string extension symbols equal the at least one subsequent symbol;
determining in the compression dictionary, in the event the string extension symbols do not equal the at least one subsequent symbol, whether the symbol has a valid parallel extension;
repeating, in the event the symbol has a valid parallel extension, the using step;
repeating, in the event the string extension symbols equal the at least one subsequent symbol, the determining of whether the symbol has a valid extension pointer;
inserting, in the event the symbol does not have a valid extension pointer or in the event the symbol does not have a valid parallel extension, a code word indicative of a longest string found into a compressed data stream;
determining whether the longest string was a single symbol;
extending, in the event the longest string was a single symbol, the longest string by one symbol;
extending, in the event the longest string was not a single symbol, the longest string by a plurality of symbols;
placing, in the event the longest string was not a single symbol, and in the event the longest string is extended by more than one symbol, a multi-character extension string signaling code word into the compressed data stream; and
transmitting the compressed data stream through the communications channel.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of compressing data involves receiving a symbol, and a subsequent symbol; determining in a compression dictionary whether the symbol has a valid extension pointer; using, in the event the symbol does have a valid extension pointer, the valid extension pointer to access string extension symbols; determining, in the event the symbol does have a valid extension pointer, whether the string extension symbols equal the at least one subsequent symbol; determining in the compression dictionary, in the event the string extension symbols do not equal the at least one subsequent symbol, whether the symbol has a valid parallel extension; repeating, in the event the symbol has a valid parallel extension, the using step; repeating, in the event the string extension symbols do not equal the at least one subsequent symbol, the determining of whether the symbol has a valid extension pointer; inserting, in the event the symbol does not have a valid extension pointer or in the event the symbol does not have a valid parallel extension, a code word indicative of a longest string found into a compressed data stream; determining whether the longest string was a single symbol; extending, in the event the longest string was a single symbol, the longest string by one symbol; extending, in the event the longest string was not a single symbol, the longest string by a plurality of symbols; inserting a string extension signalling code word if the string is extended by multiple symbols and transmitting the compressed data stream through the communications channel.
120 Citations
5 Claims
-
1. A method of compressing data for transmission over a communications channel comprising:
-
receiving a symbol, and at least one subsequent symbol; determining in a compression dictionary whether the symbol has a valid extension pointer; using, in the event the symbol does have a valid extension pointer, the valid extension pointer to access string extension symbols; determining, in the event the symbol does have a valid extension pointer, whether the string extension symbols equal the at least one subsequent symbol; determining in the compression dictionary, in the event the string extension symbols do not equal the at least one subsequent symbol, whether the symbol has a valid parallel extension; repeating, in the event the symbol has a valid parallel extension, the using step; repeating, in the event the string extension symbols equal the at least one subsequent symbol, the determining of whether the symbol has a valid extension pointer; inserting, in the event the symbol does not have a valid extension pointer or in the event the symbol does not have a valid parallel extension, a code word indicative of a longest string found into a compressed data stream; determining whether the longest string was a single symbol; extending, in the event the longest string was a single symbol, the longest string by one symbol; extending, in the event the longest string was not a single symbol, the longest string by a plurality of symbols; placing, in the event the longest string was not a single symbol, and in the event the longest string is extended by more than one symbol, a multi-character extension string signaling code word into the compressed data stream; and transmitting the compressed data stream through the communications channel. - View Dependent Claims (2, 3)
-
-
4. A method for decompressing data received over a communications channel comprising:
-
receiving a code word; determining whether the code word represents a single character; placing, in the event the code word represents a single character, the code word into an output data stream; determining, in the event the code word represents more than a single character, whether the code word is in a dictionary; placing, in the event the code word is in the dictionary, a string defined by the code word into the output data stream; determining, in the event the code word is not in the dictionary, whether the code word is a next code word to be built; placing, in the event the code word is a next code word to be built, a string into the output data stream, the string being copied from a dictionary entry indicated by a previous code word processed; placing, in the event the code word is the next code word to be built, a first symbol of the string into the output data stream; and placing, in the event the code word is not in the dictionary and is not the next code word to be built, an extension string into the output data stream, the extension string being copied from the output data stream at a symbol following a last symbol of a dictionary entry indicated by a previous code word processed. - View Dependent Claims (5)
-
Specification