Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

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).

InventorPeter D. Rail
Original AssigneeElectronic Data Systems Corporation
Primary Examiner: David Jung
Attorney: Baker Botts LLP
Current U.S. Classification1/1; 382/232; 707/999.101; 707/999.2
International Classification: G06F/1700

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US5103295Apr 25, 1990Apr 7, 1992Matsushita Electric Industrial Co., Ltd.Television signal processor for eliminating quality differences between portions of television images having different aspect ratios
US5497244May 23, 1994Mar 5, 1996Scitex Digital Video, Inc.Method for storage and retrieval of video from disks
US5592669Dec 1, 1995Jan 7, 1997Intel CorporationFile structure for a non-volatile block-erasable semiconductor flash memory
US5602870May 2, 1996Feb 11, 1997Eastman Kodak CompanyDigital signal processing
US5668897Jun 7, 1995Sep 16, 1997Method and apparatus for imaging, image processing and data compression merge/purge techniques for document image databases
US5684716Jul 21, 1995Nov 4, 1997Remote video transmission system
US5710562Aug 31, 1995Jan 20, 1998Ricoh Company Ltd.
Ricoh Corporation
Method and apparatus for compressing arbitrary data
US5710919Sep 29, 1995Jan 20, 1998Electronic Data Systems CorporationRecord compression
US6453383Aug 13, 1999Sep 17, 2002PowerQuest CorporationManipulation of computer volume segments
US6470345Jan 4, 2000Oct 22, 2002International Business Machines CorporationReplacement of substrings in file/directory pathnames with numeric tokens
US6513051Jul 16, 1999Jan 28, 2003Microsoft CorporationMethod and system for backing up and restoring files stored in a single instance store

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US6886132Jun 6, 2000Apr 26, 2005Microsoft CorporationMethod and system for packing and unpacking web pages
US6907516May 30, 2002Jun 14, 2005Microsoft CorporationCompression of program instructions using advanced sequential correlation
US6928447May 21, 2004Aug 9, 2005Microsoft CorporationProject-based configuration management method and apparatus
US6952804Feb 15, 2001Oct 4, 2005Sony CorporationVideo supply device and video supply method
US7100005Jun 17, 2003Aug 29, 2006Agilent Technologies, Inc.Record storage and retrieval solution
US7130913Jul 28, 2003Oct 31, 2006Realtime Data LLCSystem and methods for accelerated data storage and retrieval
US7161506Sep 22, 2003Jan 9, 2007Realtime Data LLCSystems and methods for data compression such as content dependent data compression
US7181608Feb 2, 2001Feb 20, 2007Realtime Data LLCSystems and methods for accelerated loading of operating systems and application programs
US7321937Apr 8, 2006Jan 22, 2008Realtime Data LLCSystem and methods for accelerated data storage and retrieval
US7352300Jan 8, 2007Apr 1, 2008Realtime Data LLCData compression systems and methods
US7358867Apr 8, 2006Apr 15, 2008Realtime Data LLCContent independent data compression method and system
US7376772Apr 8, 2006May 20, 2008Realtime Data LLCData storewidth accelerator
US7378992Apr 8, 2006May 27, 2008Realtime Data LLCContent independent data compression method and system
US7386046Feb 13, 2002Jun 10, 2008Realtime Data LLCBandwidth sensitive data compression and decompression
US7395345Apr 8, 2006Jul 1, 2008Realtime Data LLCSystem and methods for accelerated data storage and retrieval
US7398276May 30, 2002Jul 8, 2008Microsoft CorporationParallel predictive compression and access of a sequential list of executable instructions
US7400274Mar 13, 2007Jul 15, 2008Realtime Data LLCSystem and method for data feed acceleration and encryption
US7415530Oct 26, 2006Aug 19, 2008Realtime Data LLCSystem and methods for accelerated data storage and retrieval
US7417568May 7, 2003Aug 26, 2008Realtime Data LLCSystem and method for data feed acceleration and encryption
US7464328Oct 8, 2004Dec 9, 2008Microsoft CorporationMethod and system for packing and unpacking web pages
US7636724Sep 3, 2002Dec 22, 2009Peerify Technologies LLCData storage system and method by shredding and deshredding
US7714747Jan 8, 2007May 11, 2010Realtime Data LLCData compression systems and methods
US7769728Dec 6, 2005Aug 3, 2010Method 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
US7777651Jun 2, 2008Aug 17, 2010Realtime Data LLCSystem and method for data feed acceleration and encryption
US7924183May 12, 2009Apr 12, 2011International Business Machines CorporationMethod and system for reducing required storage during decompression of a compressed file
US7933876Nov 20, 2009Apr 26, 2011Peerify Technologies, LLCData storage system and method by shredding and deshredding
US8054879Jan 8, 2010Nov 8, 2011Realtime Data LLCBandwidth sensitive data compression and decompression
US8073047May 19, 2008Dec 6, 2011Realtime Data, LLCBandwidth sensitive data compression and decompression
US8090936Oct 19, 2006Jan 3, 2012Realtime Data, LLCSystems and methods for accelerated loading of operating systems and application programs
US8112619Oct 19, 2006Feb 7, 2012Realtime Data LLCSystems and methods for accelerated loading of operating systems and application programs

Claims

1. 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.