Method and apparatus for compressing data-carrying signals
First Claim
1. A computer-implemented method of compressing input data comprising a sequence of input data symbols, the method comprising:
- (a) copying a predetermined number of input data symbols into a defined block of input data symbols;
(b) selecting a subset of input data symbols SN in the defined block of input data symbols according to a first predetermined selection rule;
(c) generating a respective input data dictionary-index value DIN for the selected subset SN;
(d) if the input data dictionary-index value DIN represents a range of dictionary data symbols DN stored in a dictionary, then;
(e) determining a range of input data symbols including the subset of input data symbols SN that matches a range of dictionary data symbols that includes the range of dictionary data symbols DN; and
(f) storing a correlation of the matching input data range of symbols and the dictionary data range of symbols, determined in step (e) as a set comprising a pointer to a starting symbol location in the dictionary and a matching range length;
(g) selecting a next subset of input data symbols SN in the defined block of input data symbols according to the first predetermined selection rule; and
(h) repeating steps (c)-(g) until an end of the defined block of input data symbols is reached; and
converting the defined block of input data symbols into an outgoing data payload by replacing those input data symbols determined to be in a matching range of symbols in the dictionary in steps (b)-(h) with an indication of the stored corresponding pointer and matching range length.
1 Assignment
0 Petitions
Accused Products
Abstract
A compression method applies a selection rule to input symbols and generates a reduced partial set of symbols. The partial set is checked against a dictionary-index for a match. A match identifies a range of matching symbols in a dictionary. The length of the matching range is iteratively increased by checking previous and next symbols in the input data and the dictionary until a matching range length meets a threshold limit or the length of the matching range cannot be increased further. Compressed data corresponding to the input symbols is provided where input symbols are copied over and symbols in a matched range of data are replaced with a representation of their corresponding start location and length in the dictionary.
-
Citations
60 Claims
-
1. A computer-implemented method of compressing input data comprising a sequence of input data symbols, the method comprising:
-
(a) copying a predetermined number of input data symbols into a defined block of input data symbols; (b) selecting a subset of input data symbols SN in the defined block of input data symbols according to a first predetermined selection rule; (c) generating a respective input data dictionary-index value DIN for the selected subset SN; (d) if the input data dictionary-index value DIN represents a range of dictionary data symbols DN stored in a dictionary, then; (e) determining a range of input data symbols including the subset of input data symbols SN that matches a range of dictionary data symbols that includes the range of dictionary data symbols DN; and (f) storing a correlation of the matching input data range of symbols and the dictionary data range of symbols, determined in step (e) as a set comprising a pointer to a starting symbol location in the dictionary and a matching range length; (g) selecting a next subset of input data symbols SN in the defined block of input data symbols according to the first predetermined selection rule; and (h) repeating steps (c)-(g) until an end of the defined block of input data symbols is reached; and converting the defined block of input data symbols into an outgoing data payload by replacing those input data symbols determined to be in a matching range of symbols in the dictionary in steps (b)-(h) with an indication of the stored corresponding pointer and matching range length. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for compressing data, the apparatus comprising:
-
at least one memory having at least one computer program stored therein; at least one processor operative to execute the at least one computer program out of the at least one memory to; (a) receive a sequence of input data symbols; (b) copy a predetermined number of the received input data symbols into a defined block of input data symbols; (c) select a subset of input data symbols SN in the defined block of input data symbols according to a first predetermined selection rule; (d) generate a respective input data dictionary-index value DIN for the selected subset of input data symbols SN; (e) if the dictionary-index value DIN represents a range of dictionary data symbols DN stored in a dictionary, then; (f) determine a range of input data symbols including the subset of input data symbols SN that matches a range of dictionary data symbols that includes the range of dictionary data symbols DN; and (g) store a correlation of the matching input data range of symbols and the dictionary data range of symbols as a set comprising a pointer to a starting symbol location in the dictionary and a matching range length; (h) select a next subset of input data symbols SN in the defined block of input data symbols according to the first predetermined selection rule; (i) repeat steps (d)-(h) until an end of the defined block of input data symbols is reached; and convert the defined block of input data symbols into an outgoing data payload by replacing those input data symbols determined to be in a matching range of symbols in the dictionary in steps (c)-(i) with an indication of the stored corresponding pointer and matching range length. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A computer-implemented method of compressing a sequence of input data symbols, the method comprising:
-
generating a respective input data dictionary-index value DIN for a subset of input data symbols SN in the sequence of input data symbols selected according to a first predetermined selection rule; for each input data dictionary-index value DIN; searching a dictionary-index for an entry corresponding to each input data dictionary-index value DIN, where each dictionary-index entry points to a range of dictionary data symbols D and a corresponding location in a dictionary; if the input data dictionary-index value DIN is found in the dictionary-index then determining a range of input data symbols including the subset SN that matches a range of dictionary data symbols DN; and storing the correlation of the matching input data range of symbols and the dictionary data range of symbols as a set comprising a pointer to a starting symbol is location in the dictionary and a matching range length; and for each input data symbol of the sequence of input data symbols; inserting the input data symbol into an outgoing data payload if the input data symbol is not in a range of matching symbols in the dictionary; and for those input data symbols in a matching range of symbols in the dictionary then inserting an indication of the stored corresponding pointer and matching range length in the outgoing data payload instead of the input data symbols. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. An apparatus for compressing data, the apparatus comprising:
-
at least one memory having at least one computer program stored therein; at least one processor operative to execute the at least one computer program out of the at least one memory to; receive sequence of input data symbols, generate a respective input data dictionary-index value DIN for a subset of input data symbol SN in the received sequence of input data symbols selected according to a first predetermined selection rule; and for each input data dictionary-index value DIN; search a dictionary-index for an entry corresponding to each input data dictionary-index value DIN, where each dictionary-index entry points to a range of dictionary data symbols D and a corresponding location in a dictionary; if the input data dictionary-index value DIN is found in the dictionary-index then determine a range of input data symbols including the subset SN that matches a range of dictionary data symbols DN; and store the correlation of the matching input data range of symbols and the dictionary data range of symbols as a set comprising a pointer to a starting is symbol location in the dictionary and a matching range length; and for each input data symbol of the sequence of input data symbols; insert the input data symbol into an outgoing data payload if the input data symbol is not in a range of matching symbols in the dictionary; and for those input data symbols in a matching range of symbols in the dictionary then insert an indication of the stored corresponding pointer and matching range length in the outgoing data payload instead of the input data symbols. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
-
Specification