EP0729237A2

Adaptive multiple dictionary data compression

Abstract

A system and method for compressing and decompressing data using a plurality of data compression mechanisms. Representative samples of each block of data are tested to select an appropriate one of the data compression mechanisms to apply to the block. The block is then compressed using the selected one of the mechanisms and the compressed block is provided with an identifier of the selected mechanism. For decompression, the identifier is examined to select an appropriate one of the data decompression mechanisms to apply to the block. The block is then decompressed using the selected one of the mechanisms.

EP0729237A2, drawing sheet 1
Sheet 1 of 10

Term

Term ended

Projected expiry passed 25 January 2016, 10.7 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

15 claims: 4 independent, 11 dependent

  1. 1
    A method for compressing data using a plurality of data compression mechanisms, comprising the steps of:testing a portion of a block of the data to select an appropriate one of the data compression mechanisms to apply to the block;compressing the block using the selected one of the mechanisms;, and, providing the compressed block with an identifier of the selected one of the mechanisms.
  2. 2
    The method of Claim 1 comprising the further step of using the identifier to identify the one of the mechanisms to be used to decompress the data.
  3. 3
    The method of Claim 1 wherein the data compression mechanisms are selected from least two of a run-length encoder, an adaptive dictionary and a static dictionary.
  4. 4
    The method of Claim 1 wherein at least one of the data compression mechanisms comprises a dictionary.
  5. 5
    The method of Claim 4 wherein the dictionary is of an adaptive type.
  6. 6
    A system for coding data, comprising:a plurality of data compression mechanisms, a memory for storing the data to be compressed;and, first logic for testing a portion of a block of the data to select an appropriate one the data compression mechanisms to apply to the block and for routing the data to the appropriate one of the data compression mechanisms for compression;second logic for providing each compressed block with an identifier of the selected one of the mechanisms.
  7. 7
    The system of Claim 6 wherein the second logic comprises further includes means for providing at least some of the blocks with a field identifying a dictionary.
  8. 8
    The system of Claim 6 further comprising:a plurality of decompression mechanisms;and, routing logic for using the identifier to identify the one of the mechanisms to be used to decompress the data and for routing the each data block to an appropriate one of the decompression mechanisms responsive thereto.
  9. 9
    A method for decompressing data using a plurality of data decompression mechanisms, comprising the steps of:decoding a coding identifier provided with each of the data to select an appropriate one of the data decompression mechanisms to apply to the block;and, decompressing the block using the selected one of the mechanisms.
  10. 10
    The method of Claim 9 wherein the data compression mechanisms are selected from at least two of a run-length encoder, an adaptive dictionary and a static dictionary.
  11. 11
    The method of Claim 9 wherein at least one of the data decompression mechanisms comprises a dictionary.
  12. 12
    The method of Claim 11 wherein the dictionary is of an adaptive type.
  13. 13
    A system for coding data, comprising:a plurality of data decompression mechanisms, a buffer for receiving blocks of the data to be decompressed, at least some of the blocks comprising multiple data elements;and, logic for testing a coding identifier associated with each block to select an appropriate one of the data decompression mechanisms to apply to the block and for routing the block to the appropriate one of the data decompression mechanisms for decompression.
  14. 14
    The system of Claim 13 wherein the logic comprises means for using a portion of each block as a dictionary.
  15. 15
    The system of Claim 13 wherein the logic comprises means for selecting subset of each block for use as a dictionary, which yields the best compression.