A system (10) compresses a file (12) to produce a compressed file (14). The system (10) includes a compression splitter (16) that splits the file (12) into subfiles. Compressors (20a, 20b, 20c), operating on one or more microprocessors, compress the subfiles to produce compressed subfiles (22a, 22b, 22c). A compression combiner (26) combines the compressed subfiles (22a, 22b, 22c) to produce the compressed file (14). |
Citations|
| US5103295 | Apr 25, 1990 | Apr 7, 1992 | Matsushita Electric Industrial Co., Ltd. | Television signal processor for eliminating quality differences between portions of television images having different aspect ratios | | US5497244 | May 23, 1994 | Mar 5, 1996 | Scitex Digital Video, Inc. | Method for storage and retrieval of video from disks | | US5592669 | Dec 1, 1995 | Jan 7, 1997 | Intel Corporation | File structure for a non-volatile block-erasable semiconductor flash memory | | US5602870 | May 2, 1996 | Feb 11, 1997 | Eastman Kodak Company | Digital signal processing | | US5668897 | Jun 7, 1995 | Sep 16, 1997 | | Method and apparatus for imaging, image processing and data compression merge/purge techniques for document image databases | | US5684716 | Jul 21, 1995 | Nov 4, 1997 | | Remote video transmission system | | US5710562 | Aug 31, 1995 | Jan 20, 1998 | Ricoh Company Ltd. Ricoh Corporation | Method and apparatus for compressing arbitrary data | | US5710919 | Sep 29, 1995 | Jan 20, 1998 | Electronic Data Systems Corporation | Record compression | | US6453383 | Aug 13, 1999 | Sep 17, 2002 | PowerQuest Corporation | Manipulation of computer volume segments | | US6470345 | Jan 4, 2000 | Oct 22, 2002 | International Business Machines Corporation | Replacement of substrings in file/directory pathnames with numeric tokens | | US6513051 | Jul 16, 1999 | Jan 28, 2003 | Microsoft Corporation | Method and system for backing up and restoring files stored in a single instance store |
Referenced by|
| US6886132 | Jun 6, 2000 | Apr 26, 2005 | Microsoft Corporation | Method and system for packing and unpacking web pages | | US6907516 | May 30, 2002 | Jun 14, 2005 | Microsoft Corporation | Compression of program instructions using advanced sequential correlation | | US6928447 | May 21, 2004 | Aug 9, 2005 | Microsoft Corporation | Project-based configuration management method and apparatus | | US6952804 | Feb 15, 2001 | Oct 4, 2005 | Sony Corporation | Video supply device and video supply method | | US7100005 | Jun 17, 2003 | Aug 29, 2006 | Agilent Technologies, Inc. | Record storage and retrieval solution | | US7130913 | Jul 28, 2003 | Oct 31, 2006 | Realtime Data LLC | System and methods for accelerated data storage and retrieval | | US7161506 | Sep 22, 2003 | Jan 9, 2007 | Realtime Data LLC | Systems and methods for data compression such as content dependent data compression | | US7181608 | Feb 2, 2001 | Feb 20, 2007 | Realtime Data LLC | Systems and methods for accelerated loading of operating systems and application programs | | US7321937 | Apr 8, 2006 | Jan 22, 2008 | Realtime Data LLC | System and methods for accelerated data storage and retrieval | | US7352300 | Jan 8, 2007 | Apr 1, 2008 | Realtime Data LLC | Data compression systems and methods | | US7358867 | Apr 8, 2006 | Apr 15, 2008 | Realtime Data LLC | Content independent data compression method and system | | US7376772 | Apr 8, 2006 | May 20, 2008 | Realtime Data LLC | Data storewidth accelerator | | US7378992 | Apr 8, 2006 | May 27, 2008 | Realtime Data LLC | Content independent data compression method and system | | US7386046 | Feb 13, 2002 | Jun 10, 2008 | Realtime Data LLC | Bandwidth sensitive data compression and decompression | | US7395345 | Apr 8, 2006 | Jul 1, 2008 | Realtime Data LLC | System and methods for accelerated data storage and retrieval | | US7398276 | May 30, 2002 | Jul 8, 2008 | Microsoft Corporation | Parallel predictive compression and access of a sequential list of executable instructions | | US7400274 | Mar 13, 2007 | Jul 15, 2008 | Realtime Data LLC | System and method for data feed acceleration and encryption | | US7415530 | Oct 26, 2006 | Aug 19, 2008 | Realtime Data LLC | System and methods for accelerated data storage and retrieval | | US7417568 | May 7, 2003 | Aug 26, 2008 | Realtime Data LLC | System and method for data feed acceleration and encryption | | US7464328 | Oct 8, 2004 | Dec 9, 2008 | Microsoft Corporation | Method and system for packing and unpacking web pages | | US7636724 | Sep 3, 2002 | Dec 22, 2009 | Peerify Technologies LLC | Data storage system and method by shredding and deshredding | | US7714747 | Jan 8, 2007 | May 11, 2010 | Realtime Data LLC | Data compression systems and methods | | US7769728 | Dec 6, 2005 | Aug 3, 2010 | | Method and system for intra-row, inter-row compression and decompression of data items in a database using a page-based structure where allocating a page-buffer based on a stored value indicating the page size | | US7777651 | Jun 2, 2008 | Aug 17, 2010 | Realtime Data LLC | System and method for data feed acceleration and encryption | | US7924183 | May 12, 2009 | Apr 12, 2011 | International Business Machines Corporation | Method and system for reducing required storage during decompression of a compressed file | | US7933876 | Nov 20, 2009 | Apr 26, 2011 | Peerify Technologies, LLC | Data storage system and method by shredding and deshredding | | US8054879 | Jan 8, 2010 | Nov 8, 2011 | Realtime Data LLC | Bandwidth sensitive data compression and decompression | | US8073047 | May 19, 2008 | Dec 6, 2011 | Realtime Data, LLC | Bandwidth sensitive data compression and decompression | | US8090936 | Oct 19, 2006 | Jan 3, 2012 | Realtime Data, LLC | Systems and methods for accelerated loading of operating systems and application programs | | US8112619 | Oct 19, 2006 | Feb 7, 2012 | Realtime Data LLC | Systems and methods for accelerated loading of operating systems and application programs |
Claims1. A system for compressing a file having a plurality of records, the system comprising: - a splitter operable to partition the file into a first subfile and a second subfile, wherein each subfile comprises a subset of the records contained in the file;
- a first compressor coupled to the splitter and operable to compress the first subfile to produce a first compressed subfile;
- a second compressor coupled to the splitter and operable to compress the second subfile to produce a second compressed subfile; and
- a combiner coupled to the compressors, the combiner operable to combine the compressed subfiles produced by the compressors to produce a compressed file.
2. The system of claim 1, further comprising a first microprocessor and a second microprocessor, wherein the first compressor executes on the first microprocessor and the second compressor executes on the second microprocessor. 3. The system of claim 1, wherein each compressor comprises a separate software process. 4. The system of claim 1, wherein the splitter is further operable to generate a subfile pointer for each subfile to specify the first record of the subfile. 5. The system of claim 1, wherein each compressor is further operable to set a subfile pointer forward to the beginning of a first record for an associated subfile, and further operable to compress a last record in the subfile if the associated subfile comprises at least a portion of the last record. 6. The system of claim 1, wherein each compressor is further operable to set a subfile pointer backwards to the beginning of a first record for an associated subfile, and further operable to compress a last record in the subfile that comprises a complete record. 7. A method performed on a computer for compressing a file having a plurality of records, the method comprising: - partitioning the file into a first subfile and a second subfile, wherein each subfile comprises a subset of the records contained in the file;
- compressing the first subfile to produce a first compressed subfile;
- compressing the second subfile to produce a second compressed subfile; and
- combining the compressed subfiles to produce a compressed file.
8. The method of claim 7, wherein the steps of compressing the subfiles comprise: - providing a first compressor and a second compressor;
- compressing the first subfile using the first compressor; and
- compressing the second subfile using the second compressor.
9. The method of claim 7, wherein the steps of compressing the subfiles comprise: - spawning a first compressor and a second compressor as separate software processes;
- compressing the first subfile using the first compressor; and
- compressing the second subfile using the second compressor.
10. The method of claim 7, wherein the steps of compressing the subfiles further comprise: - setting a subfile pointer forward to the beginning of a first record for each subfile; and
- compressing a last record in each subfile if the associated subfile comprises at least a portion of the last record.
11. The method of claim 7, wherein the steps of compressing the subfiles further comprise: - setting a subfile pointer backwards to the beginning of a first record for each subfile; and
- compressing a last record in each subfile that comprises a complete record.
12. A compressor for compressing a file having a plurality of records with delimited fields, the compressor comprising: - a first buffer operable to store a first record of the file;
- a second buffer operable to store a second record of the file; and
- a processor coupled to the first buffer and the second buffer, the processor operable to compare, on a field-by-field basis, the first record to the second record, the processor operable to replace a field of the second record with a vertical repeat indicator if the field of the second record matches the corresponding field of the first record.
13. The compressor of claim 12, wherein the first record and the second record comprise adjacent records contained in the file. 14. The compressor of claim 12, wherein the processor is further operable to compare a first field of the second record with a second field of the second record, and to replace the first field with a horizontal repeat indicator if the first field matches the second field. 15. The compressor of claim 14, wherein the horizontal repeat indicator comprises: - the vertical repeat indicator; and
- a number indicating the repetitions of the vertical repeat indicator.
16. The compressor of claim 12, wherein the processor is further operable to compare a first character of a field of the second record with a second character of the field, and to replace the first character with a horizontal repeat indicator if the first character matches the second character. 17. The compressor of claim 16, wherein the horizontal repeat indicator comprises: - the character; and
- a number indicating the repetitions of the character.
18. The compressor of claim 12, wherein: - the file comprises a plurality of subfiles, each subfile comprising a subset of the records contained in the file; and
- the processor is further operable to set a subfile pointer forward to the beginning of the first record for each subfile, and to compress a last record in each subfile if the associated subfile comprises at least a portion of the last record.
19. The compressor of claim 12, wherein: - the file comprises a plurality of subfiles, each subfile comprising a subset of the records contained in the file; and
- the processor is further operable to set a subfile pointer backwards to the beginning of a first record for each subfile, and to compress a last record in each subfile that comprises a complete record.
20. A method for compressing a file having a plurality of records with delimited fields, the method comprising: - comparing, on a field-by-field basis, a first record of the file to a second record of the file; and
- replacing a field of the second record with a vertical repeat indicator if the field of the second record matches the corresponding field of the first record.
21. The method of claim 20, wherein the first record and the second record comprise adjacent records contained in the file. 22. The method of claim 20, further comprising the steps of: - comparing a first field of the second record with a second field of the second record; and
- replacing the first field with a horizontal repeat indicator if the first field matches the second field.
23. The method of claim 22, wherein the horizontal repeat indicator comprises: - the vertical repeat indicator; and
- a number indicating the repetitions of the vertical repeat indicator.
24. The method of claim 20, further comprising the steps of: - comparing a first character of a field of the second record with a second character of the field; and
- replacing the first character with a horizontal repeat indicator if the first character matches the second character.
25. The method of claim 24, wherein the horizontal repeat indicator comprises: - a character; and
- a number indicating the repetitions of the character.
26. The method of claim 20, wherein the file comprises a plurality of subfiles, each subfile comprising a subset of the records contained in the file, and further comprising the steps of: - setting a subfile pointer forward to the beginning of a first record for each subfile; and
- compressing a last record in each subfile if the associated subfile comprises at least a portion of the last record.
27. The method of claim 20 wherein the file comprises a plurality of subfiles, each subfile comprising a subset of the records contained in the file, and further comprising the steps of: - setting a subfile pointer backwards to the beginning of a first record for each subfile; and
- compressing a last record in each subfile that comprises a complete record.
28. A method for decompressing a compressed file having a plurality of records with delimited fields, the method comprising: - determining, on a field-by-field basis, if a field of a compressed record comprises a vertical repeat indicator; and
- writing the field to a buffer if the field of the compressed record is not a vertical repeat indicator.
29. The method of claim 28, further comprising writing a corresponding field of a previous decompressed record to the buffer if the field of the compressed record is a vertical repeat indicator. 30. The method of claim 29, wherein the decompressed record and the compressed record comprise adjacent records of the file. 31. The method of claim 28, further comprising: - determining, on a field-by-field basis, if a field of the compressed record comprises a horizontal repeat indicator having a character and a number indicating the repetitions of the character; and
- writing to a second buffer the character of the horizontal repeat indicator according to the number indicating the repetitions of the character.
32. The method of claim 31, wherein the character of the horizontal repeat indicator comprises the vertical repeat indicator. |