Method and apparatus for data compression using fingerprinting
AssigneeLucent Technologies Inc.
InventorsJon Louis Bentley, Malcolm Douglas McIlroy
Life of this patent
Estimating the term…
Loading patent…
AssigneeLucent Technologies Inc.
InventorsJon Louis Bentley, Malcolm Douglas McIlroy
Estimating the term…
A method and apparatus for achieving relatively low compression ratios based on the realization of using a longer history and longer common strings of the input data stream as an initial evaluation of the input data prior to applying a particular compression process. More particularly, the input data is preprocessed by applying string-matching to the extract long common strings. The input data is divided into a series of blocks with each individual block having a uniform size, illustratively, 1000 characters in length. Further, a so-called fingerprint is computed and stored for each block. Thereafter, the input data stream is traversed and comparison is made between a particular set of character of the input stream and the computed fingerprints. In particular, the input stream is traversed as a function of a sliding window wherein the present window of characters of the input is compared to the computed fingerprints. Upon detecting a match, the input stream is encoded with an identifier determined as function of the detected match. Thereafter, a compression of the preprocessed and encoded input stream is made, illustratively, using Lempel-Ziv compression.
A method for compressing an input stream of data comprising:
A method of processing an input stream of data into a compressed code stream, the input stream of data including a plurality characters, the method comprising:
A data compression apparatus comprising:
A data storage system for storing a digital data stream in compressed data form, the data storage system comprising:
An apparatus for processing a compressed digital signal, the compressed digital signal being produced by (i) dividing an input stream of digital data into a plurality of data blocks and each block of the plurality of blocks contains a plurality of characters, (ii) computing a plurality of fingerprints, each fingerprint of the plurality of fingerprints corresponding to a different one data block of the plurality of data blocks, (iii) comparing the input stream of digital data to the plurality of fingerprints, the comparing the input stream of digital data to the plurality of fingerprints further comprising:
A machine-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions that, when executed by a machine, cause the machine to perform of a method of processing an input stream of data into a compressed code stream, the input stream of data including a plurality characters, dividing the input stream of data into a plurality of blocks, each block containing a particular number of characters of the plurality of characters, computing a plurality of fingerprints, each fingerprint of the plurality of fingerprints corresponding to a different one block of the plurality of blocks, comparing the plurality of blocks to the plurality of fingerprints such that the comparing the plurality of blocks to the plurality of fingerprints is performed as a function the characters in the block, and an interim fingerprint for the block is computed at each character of the plurality of characters and compared to the particular fingerprint, determining whether a match occurs between a particular fingerprint and any portion of a particular block, encoding, for each match, an identifier of the match within the input stream of data, the identifier including at least a starting position within the input stream of data of the matching portion of the particular block and a length of the matching portion, and compressing the encoded input stream of data into the compressed code stream.
Dependencies are inferred from the claim text.