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

Patents

Systems and methods for providing fast and efficient data compression using a combination of content independent data compression and content dependent data compression. In one aspect, a method for compressing data comprises the steps of: analyzing a data block of an input data stream to identify a data type of the data block, the input data stream comprising a plurality of disparate data types; performing content dependent data compression on the data block, if the data type of the data block is identified; performing content independent data compression on the data block, if the data type of the data block is not identified.

InventorJames J. Fallon
Original AssigneeRealtime Data, LLC
Primary Examiner: Patrick Wamsley
Attorneys: F. Chau & Associates, LLP, Frank V. DeRosa, Esq.
Current U.S. Classification341/51; 710/68
International Classification: G06F/1312; G06F/1338; H03M/734; H03M/738

View patent at USPTO
Search USPTO Assignment Database
Download USPTO Public PAIR data

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US4682150Dec 9, 1985Jul 21, 1987NCR CorporationData compression method and apparatus
US4872009Dec 7, 1987Oct 3, 1989Hitachi, Ltd.
Hitachi Computer Peripherals Co.
Method and apparatus for data compression and restoration
US4929946Feb 9, 1989May 29, 1990Storage Technology CorporationAdaptive data compression apparatus including run length encoding for a tape drive system
US5045852Mar 30, 1990Sep 3, 1991International Business Machines CorporationDynamic model selection during data compression
US5097261Nov 19, 1990Mar 17, 1992International Business Machines CorporationData compression for recording on a record medium
US5212742May 24, 1991May 18, 1993Apple Computer, Inc.Method and apparatus for encoding/decoding image data
US5231492Nov 16, 1990Jul 27, 1993Fujitsu LimitedVideo and audio multiplex transmission system
US5237675Mar 19, 1992Aug 17, 1993Maxtor CorporationApparatus and method for efficient organization of compressed data on a hard disk utilizing an estimated compression factor
US5243341Jun 1, 1992Sep 7, 1993Hewlett Packard CompanyLempel-Ziv compression scheme with enhanced adapation
US5243348Apr 27, 1992Sep 7, 1993Motorola, Inc.Partitioned digital encoder and method for encoding bit groups in parallel
US5270832Apr 14, 1992Dec 14, 1993C-Cube MicrosystemsSystem for compression and decompression of video data using discrete cosine transform and coding techniques
US5379036Apr 1, 1992Jan 3, 1995Method and apparatus for data compression
US5381145Feb 10, 1993Jan 10, 1995Ricoh Corporation
Ricoh Company Ltd.
Method and apparatus for parallel decoding and encoding of data
US5394534Sep 11, 1992Feb 28, 1995International Business Machines CorporationData compression/decompression and storage of compressed and uncompressed data on a same removable data storage medium
US5461679May 14, 1993Oct 24, 1995Apple Computer, Inc.Method and apparatus for encoding/decoding image data
US5467087Dec 18, 1992Nov 14, 1995Apple Computer, Inc.High speed lossless data compression system
US5471206Dec 5, 1994Nov 28, 1995Ricoh Corporation
Ricoh Company Ltd
Method and apparatus for parallel decoding and encoding of data
US5479587Sep 3, 1992Dec 26, 1995Hewlett-Packard CompanyPage printer having adaptive data compression for memory minimization
US5486826May 19, 1994Jan 23, 1996PS Venture 1 LLCMethod and apparatus for iterative compression of digital data
US5495244Oct 12, 1994Feb 27, 1996Samsung Electronics Co., Ltd.Device for encoding and decoding transmission signals through adaptive selection of transforming methods
US5533051Mar 12, 1993Jul 2, 1996The James GroupMethod for data compression
US5557749Oct 15, 1992Sep 17, 1996Intel CorporationSystem for automatically compressing and decompressing data for sender and receiver processes upon determination of a common compression/decompression method understood by both sender and receiver processes
US5583500Dec 23, 1993Dec 10, 1996Ricoh Corporation
Ricoh Company, Ltd.
Method and apparatus for parallel encoding and decoding of data
US5627534Mar 23, 1995May 6, 1997International Business Machines CorporationDual stage compression of bit mapped image data using refined run length and LZ compression
US5654703Jun 17, 1996Aug 5, 1997Hewlett-Packard CompanyParallel data compression and decompression
US5668737Mar 22, 1995Sep 16, 1997Pixel Magic, Inc.High-speed data processor and coding method
US5717393Jul 19, 1996Feb 10, 1998Fujitsu LimitedApparatus for data compression and data decompression
US5717394Dec 17, 1996Feb 10, 1998Ricoh Company Ltd.
Ricoh Corporation
Method and apparatus for encoding and decoding data
US5729228Jul 6, 1995Mar 17, 1998International Business Machines Corp.Parallel compression and decompression using a cooperative dictionary
US5748904Sep 13, 1996May 5, 1998Silicon Integrated Systems Corp.Method and system for segment encoded graphic data compression
US5771340Dec 18, 1996Jun 23, 1998Oki Electric Industry Co., Ltd.Data compression method and print processing device utilizing the same
US5784572Dec 29, 1995Jul 21, 1998LSI Logic CorporationMethod and apparatus for compressing video and voice signals according to different standards
US5799110Nov 9, 1995Aug 25, 1998Utah State University FoundationHierarchical adaptive multistage vector quantization
US5805932Feb 13, 1996Sep 8, 1998Sony CorporationSystem for transmitting compressed data if compression ratio is at least preset ratio and pre-compressed data if compression ratio is less than preset ratio
US5809176Oct 18, 1995Sep 15, 1998Seiko Epson CorporationImage data encoder/decoder system which divides uncompresed image data into a plurality of streams and method thereof
US5818368Apr 18, 1997Oct 6, 1998Premier Research, LLCMethod and apparatus for lossless digital data compression
US5818530Jun 19, 1996Oct 6, 1998Thomson Consumer Electronics, Inc.MPEG compatible decoder including a dual stage data reduction network
US5819215Oct 13, 1995Oct 6, 1998Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5825424Jun 19, 1996Oct 20, 1998Thomson Consumer Electronics, Inc.MPEG system which decompresses and recompresses image data before storing image data in a memory and in accordance with a resolution of a display device
US5847762Dec 27, 1995Dec 8, 1998Thomson Consumer Electronics, Inc.MPEG system which decompresses and then recompresses MPEG video data before storing said recompressed MPEG video data into memory
US5861824Feb 6, 1997Jan 19, 1999Ricoh Company, Ltd.Encoding method and system, and decoding method and system
US5917438Jun 25, 1996Jun 29, 1999Victor Company of Japan, Ltd.Data storing and outputting apparatus
US5964842Jan 31, 1997Oct 12, 1999Network Computing Devices, Inc.Method and apparatus for scaling data compression based on system capacity
US5991515Jul 15, 1997Nov 23, 1999Adobe Systems IncorporatedMethod and apparatus for compressing and decompressing data prior to display
US6031939Mar 13, 1998Feb 29, 2000AlcatelMethod of optimizing the compression of image data, with automatic selection of compression conditions
US6195024Dec 11, 1998Feb 27, 2001Realtime Data, LLCContent independent data compression method and system
US6309424Nov 3, 2000Oct 30, 2001Realtime Data LLCContent independent data compression method and system
US6529633Sep 10, 1999Mar 4, 2003Texas Instruments IncorporatedParallel difference coding method for lossless compression and real time decompression

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US6825780Apr 17, 2003Nov 30, 2004Droplet Technology, Inc.Multiple codec-imager system and method
US6907516May 30, 2002Jun 14, 2005Microsoft CorporationCompression of program instructions using advanced sequential correlation
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
US7283265Nov 14, 2001Oct 16, 2007InfoPrint Solutions CompanyRaster data compression apparatus and method
US7295608Sep 26, 2002Nov 13, 2007System and method for communicating media signals
US7302102Feb 23, 2004Nov 27, 2007System and method for dynamically switching quality settings of a codec to maintain a target data rate
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
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
US7420992Mar 17, 2005Sep 2, 2008Packeteer, Inc.Adaptive network traffic compression mechanism including dynamic selection of compression algorithms
US7457358Feb 23, 2004Nov 25, 2008Interact Devices, Inc.Polymorphic codec system and method
US7457359Apr 16, 2004Nov 25, 2008Systems, devices and methods for securely distributing highly-compressed multimedia content
US7460032Oct 3, 2006Dec 2, 2008Evault, Inc.Methods and apparatus for performing adaptive compression
US7464185Apr 30, 2002Dec 9, 2008Hewlett-Packard Development Company, L.P.Method and apparatus for transfering data from a sending system to a receiving system, and program storage devices
US7512748Aug 17, 2006Mar 31, 2009OSR Open Systems Resources, Inc.Managing lock rankings
US7548657Jun 25, 2005Jun 16, 2009General Electric CompanyAdaptive video compression of graphical user interfaces using application metadata
US7599434Oct 23, 2003Oct 6, 2009System and method for compressing portions of a media signal using different codecs
US7649909Jun 30, 2006Jan 19, 2010Packeteer, Inc.Adaptive tunnel transport protocol
US7714747Jan 8, 2007May 11, 2010Realtime Data LLCData compression systems and methods
US7777651Jun 2, 2008Aug 17, 2010Realtime Data LLCSystem and method for data feed acceleration and encryption
US7809897Feb 19, 2009Oct 5, 2010OSR Open Systems Resources, Inc.Managing lock rankings
US7831491Nov 5, 2004Nov 9, 2010Chicago Mercantile Exchange Inc.Market data message format
US7936290Nov 2, 2009May 3, 2011ARM LimitedDynamic selection of suitable codes for variable length coding and decoding
US7949693Aug 23, 2007May 24, 2011OSR Open Systems Resources, Inc.Log-structured host data storage
US7966496Dec 22, 2006Jun 21, 2011JPMorgan Chase Bank, N.A.System and method for single sign on process for websites with multiple applications and services
US7987246May 23, 2002Jul 26, 2011JPMorgan Chase BankMethod and system for client browser update
US7987501Dec 21, 2001Jul 26, 2011JPMorgan Chase Bank, N.A.System and method for single session sign-on
US8024433Apr 24, 2007Sep 20, 2011OSR Open Systems Resources, Inc.Managing application resources
US8036265Nov 9, 2007Oct 11, 2011Interact DevicesSystem and method for communicating media signals
US8054879Jan 8, 2010Nov 8, 2011Realtime Data LLCBandwidth sensitive data compression and decompression
US8064515Aug 19, 2009Nov 22, 2011Interact Devices, Inc.System and method for compressing portions of a media signal using different codecs
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
US8108221May 18, 2009Jan 31, 2012Microsoft CorporationMixed lossless audio compression
US8112619Oct 19, 2006Feb 7, 2012Realtime Data LLCSystems and methods for accelerated loading of operating systems and application programs
US8120515Sep 26, 2007Feb 21, 2012AgileDelta, Inc.Knowledge based encoding of data with multiplexing to facilitate compression
US8160160Sep 8, 2006Apr 17, 2012Broadcast International, Inc.Bit-rate reduction for multimedia data streams
US8160960Dec 11, 2009Apr 17, 2012JPMorgan Chase Bank, N.A.System and method for rapid updating of credit information
US8175395Nov 26, 2007May 8, 2012Interact Devices, Inc.System and method for dynamically switching quality settings of a codec to maintain a target data rate
US8185940Jul 17, 2007May 22, 2012JPMorgan Chase Bank, N.A.System and method for providing discriminated content to network users
US8229820Sep 22, 2010Jul 24, 2012Chicago Mercantile Exchange Inc.Market data message format

Claims

1. A method for compressing data, comprising the steps of:

analyzing a data block of an input data stream to identify a data type of the data block, the input data stream comprising a plurality of disparate data types;
performing content dependent data compression on the data block, if the data type of the data block is identified;
performing content independent data compression on the data block, if the data type of the data block is not identified.

2. The method of claim 1, wherein the step of analyzing the data block comprises one of analyzing the data block to recognize one of a data type, data structure, data block format, file substructure, file types and a combination thereof.

3. The method of claim 2, further comprising the step of maintaining an association between encoder types and one of data types, data structures, data block formats, file substructure, file types and a combination thereof.

4. The method of claim 1, wherein the step of performing content independent data compression, comprises:

encoding the data block with a plurality of encoders to provide a plurality of encoded data blocks;
determining a compression ratio obtained for each of the encoders;
comparing each of the determined compression ratios with a first compression threshold;
selecting for output the input data block and appending a null compression descriptor to the input data block, if all of the encoder compression ratios do not meet the first compression threshold; and
selecting for output the encoded data block having the highest compression ratio and appending a corresponding compression type descriptor to the selected encoded data block, if at least one of the compression ratios meet the first compression threshold.

5. The method of claim 1, wherein the step of performing content dependent compression comprises the steps of:

selecting one or more encoders associated with the identified data type and encoding the data block with the selected encoders to provide a plurality of encoded data blocks;
determining a compression ratio obtained for each of the selected encoders;
comparing each of the determined compression ratios with a second compression threshold;
selecting for output the input data block and appending a null compression descriptor to the input data block, if all of the encoder compression do not meet the second compression threshold; and
selecting for output the encoded data block having the highest compression ratio and appending a corresponding compression type descriptor to the selected encoded data block, if at least one of the compression ratios meet the second compression threshold.

6. The method of claim 1, wherein the step of performing content independent data compression on the data block, if the data type of the data block is not identified, comprises the steps of:

estimating a desirability of using of one or more encoder types based one characteristics of the data block; and
compressing the data block using one or more desirable encoders.

7. The method of claim 1, wherein the methods steps are tangibly embodied as program instructions on a program storage device, wherein the instructions are executable by a machine to perform the method steps.

8. The method of claim 1, wherein the step of performing content dependent data compression on the data block, if the data type of the data block is identified, comprises the steps of:

estimating a desirability of using of one or more encoder types based on characteristics of the data block; and
compressing the data block using one or more desirable encoders.

9. A method for compressing data, comprising the steps of:

analyzing a data block of an input data stream to identify a data type of the data block, the input data stream comprising a plurality of disparate data types;
performing content dependent data compression on the data block, if the data type of the data block is identified;
determining a compression ratio of the compressed data block obtained using the content dependent compression and comparing the compression ratio with a first compression threshold; and
performing content independent data compression on the data block, if the data type of the data block is not identified or if the compression ratio of the compressed data block obtained using the content dependent compression does not meet the first compression threshold.

10. The method of claim 9, wherein the step of analyzing the data block comprises one of analyzing the data block to recognize one of a data type, data structure, data block format, file substructure, file types and a combination thereof.

11. The method of claim 10, further comprising the step of maintaining an association between encoder types and one of data types, data structures, data block formats, file substructure, file types and a combination thereof.

12. The method of claim 9, wherein the step of performing content independent data compression, comprises:

encoding the data block with a plurality of encoders to provide a plurality of encoded data blocks;
determining a compression ratio obtained for each of the encoders;
comparing each of the determined compression ratios with a second compression threshold;
selecting for output the input data block and appending a null compression descriptor to the input data block, if all of the encoder compression ratios do not meet the second compression threshold; and
selecting for output the encoded data block having the highest compression ratio and appending a corresponding compression type descriptor to the selected encoded data block, if at least one of the compression ratios meet the second compression threshold.

13. The method of claim 9, wherein the step of performing content dependent compression comprises the steps of:

selecting one or more encoders associated with the identified data type and encoding the data block with the selected encoders to provide a plurality of encoded data blocks;
determining a compression ratio obtained for each of the selected encoders;
comparing each of the determined compression ratios with the first compression threshold;
selecting for output the input data block and appending a null compression descriptor to the input data block, if all of the encoder compression do not meet the first compression threshold; and
selecting for output the encoded data block having the highest compression ratio and appending a corresponding compression type descriptor to the selected encoded data block, if at least one of the compression ratios meet the first compression threshold.

14. The method of claim 9, wherein the step of performing content dependent data compression when the data type of the data block is identified, further comprises the steps of:

estimating a desirability of using of one or more encoder types based one characteristics of the data block; and
compressing the data block using one or more desirable encoders.

15. The method of claim 9, wherein the step of performing content independent data compression on the data block, if the data type of the data block is not identified, comprises the steps of:

estimating a desirability of using of one or more encoder types based one characteristics of the data block; and
compressing the data block using one or more desirable encoders.

16. The method of claim 9, wherein the methods steps are tangibly embodied as program instructions on a program storage device, wherein the instructions are executable by a machine to perform the method steps.

17. A program storage device readable by a machine, tangibly embodying a program instructions executable by the machine to perform method steps for compressing data, the method steps comprising:

receiving an input data stream comprising a plurality of disparate data types;
compressing the input data stream using each of a plurality of different encoders; and
generating an encoded data stream by selectively combining compressed data blocks output from each of the encoders based on compression ratios obtained by the encoders.

18. The program storage device of claim 17, wherein the instructions for performing the step of compressing the input data stream comprise instructions for compressing each data block in the input data stream using each of the encoders, and wherein the instructions for performing the step of generating the encoded data stream comprise instructions for:

for each data block in the input stream,
determining a compression ratio obtained from each of the encoders;
selecting for output the input data block and appending a null compression descriptor to input the data block, if no compression ratio exceeds a predetermined threshold; and
selecting for output the encoded data block having the greatest compression ratio associated therewith that meets the predetermined threshold and appending a compression type descriptor to the selected encoded data block.

19. The program storage device of claim 18, further comprising instructions for performing the step of applying a predetermined timing constraint to the compression process to provide real-time data compression of the input data stream.

20. The program storage device of 19, wherein the instructions for performing the step of applying a predetermined time constraint comprise instructions for performing the steps of:

initializing a timer with a user-specified time interval upon commencing compression of an input data block; and
terminating the encoding step upon the earlier of one of the expiration of the timer and the completion of the encoding of the input data block by all of the plurality of encoders;
wherein the step of determining the compression ratios is only performed for the encoders that have completed encoding of the input data block before expiration of the timer.

21. The program storage device of claim 17, wherein the instructions for performing the step of generating the encoded data stream comprise instructions for tagging each compressed data block with a compression type descriptor.

22. The program storage device of claim 17, wherein the step of generating the encoded data stream comprises combining uncompressed data blocks from the input data stream with the compressed data blocks and tagging each uncompressed data block with a null compression descriptor.