Method for compressing a data file using a separate dictionary file
AssigneeMicrosoft Corporation
InventorLaurence Kelvin Griffiths
Life of this patent
Estimating the term…
Abstract
A system for compressing a first file based on a second file used as a dictionary. The second file is sampled at predetermined locations within the second file, each sample having a fixed sample length. A dictionary database is created by storing each sample and a start position within the second file of the corresponding sample. The first file is compared to the dictionary database to locate any matches that exist between the first file and the stored samples of the dictionary database. In turn, the first file is encoded by outputting coded segments for each match located by this comparison of the source file and the dictionary database and uncoded segments for all remaining portions of the first file.
Claims13
A method for compressing a data file of characters using a separate dictionary file, comprising the steps of:
- sampling the dictionary file at predetermined locations within the dictionary file, each sample having a fixed sample length;
- creating a dictionary database by storing each sample and a start position within the dictionary file of the corresponding sample;
- and
- encoding the data file by comparing the data file to the dictionary database, locating any matches that exist between the data file and the stored samples of the dictionary database, and outputting a matched code for each match and unmatched code segments for all remaining portions of the data file.
A method for compressing a source file using a separate dictionary file, the dictionary file sampled at predetermined locations to create samples having a fixed sample length, the samples and a start position within the dictionary file of each sample being stored in a dictionary database, comprising the steps of:
- selecting a segment of the source file, the selected segment having a length equal to the fixed sample length;
- comparing the selected segment to the samples stored in the dictionary database;
- if the selected segment matches any of the samples stored in the dictionary database, then
- identifying a matched segment;
- and
- outputting a matched code to an encoded file, the matched code defining a matched segment length and a location in the dictionary file of the start position of the matched segment.
A method for decoding an encoded file using a dictionary file, the encoded file having codes, including matched codes, comprising the steps of:
- selecting one of the codes from the encoded file;
- determining if the selected code is one of the matched codes, the matched code defining a matched segment length and a location in the dictionary file of the matched segment;
- and
- if the selected code is one of the matched codes, then outputting characters of the dictionary file corresponding to the matched segment to a decoded file.
A computer-readable medium having computer-executable instructions for compressing a source file using a dictionary file, the source file having an unrestricted format, comprising the steps of:
- sampling a dictionary file at predetermined locations within the dictionary file, each sample having a fixed sample length;
- creating a dictionary database by storing each sample and a start position within the dictionary file of the corresponding sample;
- obtaining from the source file segments having the fixed sample length of each sample;
- and
- encoding the source file by comparing the source file segments to the stored samples of the dictionary database, locating any matches that exist between the source file segments and the stored samples of the dictionary database, and outputting a matched code for each match and unmatched code segments for all remaining portions of the source file.
Dependencies are inferred from the claim text.