Data compression systems and methods
DC CAFCFirst Claim
1. A method of decompressing in a data decompression engine one or more compressed data blocks included in one or more data packets, the one or more data packets being transmitted in sequence from one of an internal or an external source to the data decompression engine, wherein a data packet from among the one or more data packets comprises a header containing control information followed by one or more compressed data blocks of the data packet,the method comprising:
- applying a plurality of decompression techniques to the one or more compressed data blocks using the data decompression engine;
identifying one or more associated recognizable data tokens of the data packet;
wherein the one or more associated recognizable data tokens identifies a selected compression encoder used to compress the one or more compressed data blocks associated with the data packet; and
wherein the selected compression encoder was selected based on content of a data block on which a compression algorithm was applied to provide the compressed data block;
applying one or more decompression decoders to the compressed data block corresponding to the data packet based on the one or more associated recognizable data tokens;
decompressing the compressed data block with an appropriate decompression decoder if the one or more associated recognizable data tokens indicates that the data block was encoded utilizing content dependent data compression; and
decompressing the compressed data block with an appropriate decompression decoder if the one or more associated recognizable data tokens indicates that the data block was encoded utilizing content independent data compression.
1 Assignment
Litigations
0 Petitions
Accused Products
Abstract
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.
-
Citations
30 Claims
-
1. A method of decompressing in a data decompression engine one or more compressed data blocks included in one or more data packets, the one or more data packets being transmitted in sequence from one of an internal or an external source to the data decompression engine, wherein a data packet from among the one or more data packets comprises a header containing control information followed by one or more compressed data blocks of the data packet,the method comprising:
-
applying a plurality of decompression techniques to the one or more compressed data blocks using the data decompression engine; identifying one or more associated recognizable data tokens of the data packet; wherein the one or more associated recognizable data tokens identifies a selected compression encoder used to compress the one or more compressed data blocks associated with the data packet; and wherein the selected compression encoder was selected based on content of a data block on which a compression algorithm was applied to provide the compressed data block; applying one or more decompression decoders to the compressed data block corresponding to the data packet based on the one or more associated recognizable data tokens; decompressing the compressed data block with an appropriate decompression decoder if the one or more associated recognizable data tokens indicates that the data block was encoded utilizing content dependent data compression; and decompressing the compressed data block with an appropriate decompression decoder if the one or more associated recognizable data tokens indicates that the data block was encoded utilizing content independent data compression. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for decompressing, one or more compressed data blocks included in one or more data packets using a data decompression engine, the one or more data packets being transmitted in sequence from a source that is internal or external to the data decompression engine, wherein a data packet from among the one or more data packets comprises a header containing control information followed by one or more compressed data blocks of the data packet the system comprising:
-
a data decompression processor configured to analyze the data packet to identify one or more recognizable data tokens associated with the data packet, the one or more recognizable data identifying a selected encoder used to compress one or more data blocks to provide the one or more compressed data blocks, the encoder being selected based on content of the one or more data blocks on which a compression algorithm was applied; one or more decompression decoders configured to decompress a compressed data block from among the one or more compressed data blocks associated with the data packet based on the one or more recognizable data tokens;
wherein;the one or more decompression decoders are further configured to decompress the compressed data block utilizing content dependent data decompression to provide a first decompressed data block when the one or more recognizable data tokens indicate that the data block was encoded utilizing content dependent data compression; and the one or more decompression decoders are further configured to decompress the compressed data block utilizing content independent data decompression to provide a second decompressed data block when the one or more recognizable data tokens indicate that the data block was encoded utilizing content independent data compression; and an output interface, coupled to the data decompression engine, configured to output a decompressed data packet including the first or the second decompressed data block. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A method of compressing a plurality of data blocks residing in data packets, the data packets being transmitted in sequence from a source that is internal or external to a source of the compression method, the one or more compressed data packets including one or more compressed data blocks, wherein a data packet from among the one or more data packets comprises a header containing control information followed by one or more compressed data blocks of the data packet, the method comprising:
-
applying a plurality of compression techniques to the plurality of data blocks using a data compression engine; analyzing content of a data block from among the plurality of data blocks to determine any characteristic, attribute, or parameter of the data block, wherein the analyzing of the data within the data block excludes analyzing based on a descriptor that is indicative of the characteristic, attribute, or parameter of the data block; selecting one or more encoders based on the characteristic, attribute, or parameter of the data block and a file, wherein the file indicates the characteristic, attribute, or parameter of the data block and their associated encoders; compressing the data block with the selected one or more encoders utilizing content dependent data compression when the characteristic, attribute, or parameter of the data residing within the data block is recognized as associated with an encoder utilizing content dependent data compression; compressing the data block with the selected one or more encoders utilizing content independent data compression when the characteristic, attribute, or parameter of the data residing within the data block is not recognized as associated with an encoder utilizing content dependent data compression; and providing a recognizable data token which identifies the selected one or more encoders utilized for compression of the data block in the one or more data blocks transmitted in sequence. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A system for compressing a plurality of data blocks that are compressed and placed into the payload portion of a data packet from among one or more data packets, the data packets being transmitted in sequence from a source that is internal or external to the compression system, wherein the data packet comprises a header containing control information followed by the plurality of compressed data blocks of the data packet, the system comprising:
-
a data compression processor configured to analyze content of a data block to determine any characteristic, attribute, or parameter of the data block, where in the analyizing of the data within the data block excludes analyzing based on a descriptor that is indicative of the any characteristic attribute or parameter of the data block; one or more compression encoders configured to be selected based on the characteristic, attribute, or parameter of the data block and a file, wherein the file indicates the characteristic, attribute, or parameter of the data block and their associated compression encoders;
wherein;the data block is compressed by the selected one or more compression encoders utilizing content dependent data compression when the characteristic, attribute, or parameter of the data block is recognized as being associated with an encoder utilizing content dependent data compression; and the data block is compressed by the selected one or more compression encoders utilizing content independent data compression when the characteristic, attribute, or parameter of the data block is not recognized as being associated with an encoder utilizing content dependent data compression; and an output interface, coupled to the data compression processor, configured to output a recognizable data token identifying the selected one or more compression encoders, the recognizable data token including any recognizable data token representative of one or more values in the compressed data packet. - View Dependent Claims (28, 29, 30)
-
Specification