Data compression method and apparatus
First Claim
1. A method of sending data from an input file that is stored by a sending computer, over a communication channel, to a receiving computer, the receiving computer storing earlier data, the method comprising the steps:
- (a) providing to the sending computer one or more first keys, each first key corresponding to an incompressible group of data in the earlier data, each incompressible group of data in the earlier data comprising a respective portion of non-preset size of said earlier data and being located between two respective compressible groups of data in said earlier data;
(b) determining a second key that corresponds to a second group of data in the input file;
(c) ascertaining whether the second key matches one of the first keys;
(d) if the second key matches one of the first keys, sending a control signal from the sending computer to the receiving computer, the control signal causing the receiving computer to copy, from the earlier data, the incompressible group of data that corresponds to the matching first key;
(e) if the second key does not match any of the first keys, sending, from the sending computer to the receiving computer, a representation of at least some of the second group of data in the input file; and
(f) repeating steps (b), (c), (d) and (e) for additional second groups of data in the input file until all data in the input file has been processed.
16 Assignments
0 Petitions
Accused Products
Abstract
A data compressor scans one or more data files to locate variable-length strings of characters (data) that can be more efficiently compressed by delta compression (i.e. by referring to a string in an earlier version of the data file) than by traditional compression (i.e. by referring to a string of characters that occurs earlier in the data file). The compressor employs a criterion to select the strings that are likely to be most amenable to delta compression, i.e. to provide the highest overall compression ratio. The compressor creates a dictionary that describes the selected strings, which can then be advantageously used to delta-compress edited (changed) versions of the data files for transmission to another computer. In addition, a "dual-mode" data compressor employs a combination of delta and traditional compression to efficiently compress data and send one or more files from a sending computer to a receiving computer, where a decompressor reconstitutes a copy of the files. As the dual-mode compressor processes the files, it creates a dictionary.
181 Citations
19 Claims
-
1. A method of sending data from an input file that is stored by a sending computer, over a communication channel, to a receiving computer, the receiving computer storing earlier data, the method comprising the steps:
-
(a) providing to the sending computer one or more first keys, each first key corresponding to an incompressible group of data in the earlier data, each incompressible group of data in the earlier data comprising a respective portion of non-preset size of said earlier data and being located between two respective compressible groups of data in said earlier data; (b) determining a second key that corresponds to a second group of data in the input file; (c) ascertaining whether the second key matches one of the first keys; (d) if the second key matches one of the first keys, sending a control signal from the sending computer to the receiving computer, the control signal causing the receiving computer to copy, from the earlier data, the incompressible group of data that corresponds to the matching first key; (e) if the second key does not match any of the first keys, sending, from the sending computer to the receiving computer, a representation of at least some of the second group of data in the input file; and (f) repeating steps (b), (c), (d) and (e) for additional second groups of data in the input file until all data in the input file has been processed. - View Dependent Claims (2, 3)
-
-
4. A method of producing a dictionary that contains descriptions of one or more incompressible groups of data, the incompressible groups of data being stored in one or more computer-readable files, the method comprising the steps:
-
(a) locating, in the one or more computer-readable files, a group of data that cannot be compressed in accordance with a compression method and that is located next to at least one group of data that can be compressed in accordance with said compression method, each of the located incompressible group of data and the group of data that can be compressed in accordance with said compression method being of a respective non-preset size; (b) determining a key that corresponds to the located incompressible group of data; (c) storing, in a memory, an address of the located incompressible group of data and the key that corresponds to the located incompressible group of data; and (d) repeating steps (a), (b) and (c) to produce each description in the dictionary. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. A method of sending data from an input file stored by a sending computer, over a communication channel, to a receiving computer, the method comprising the steps:
-
(a) dividing the input file into portions of respective non-preset sizes; (b) for each portion of the input file; (b1) selecting one of a plurality of compression methods; (b2) processing the portion of the input file in accordance with the selected compression method to produce resulting data; and (b3) sending the resulting data from the sending computer, over the communication channel, to the receiving computer. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
Specification