Methods, devices and systems for hybrid data compression and decompression
AssigneeZeropoint Technologies AB
InventorsAngelos Arelakis, Per Stenström
Life of this patent
Estimating the term…
Abstract
Methods, devices and systems enhance compression and decompression of data blocks of data values by selecting the best suited compression method and device among two or a plurality of compression methods and devices, which are combined together and which said compression methods and devices compress effectively data values of particular data types; said best suited compression method and device is selected using as main selection criterion the dominating data type in a data block by predicting the data types within said data block.
Claims37
A hybrid data compression device for compressing an uncompressed data block into a compressed data block, the uncompressed data block comprising one or a plurality of data values of one or a plurality of data types, the hybrid data compression device comprising:
- a plurality of data compressors, each data compressor configured for a respective data compression scheme, wherein the plurality of data compressors comprises:
- a first data compressor configured for a first data compression scheme, and
- a second data compressor configured for a second data compression scheme, different from the first data compression scheme,
- wherein each of the first and second data compression schemes is a lossless compression scheme or a lossy compression scheme,
- wherein the first data compression scheme is designed to exploit data locality between data values of a first data type, the data locality being temporal, spatial, or a combination thereof, and
- wherein the second data compression scheme is designed to exploit data locality between data values of a second data type, the data locality being temporal, spatial, or a combination thereof;
- and
- a predictor mechanism configured for predicting data types of data values of the uncompressed data block and for selecting an estimated best suited data compressor among said plurality of data compressors using as a main criterion a dominating data type among the predicted data types,
- wherein the hybrid data compression device is configured to generate the compressed data block by causing the selected estimated best suited data compressor to compress the whole of the uncompressed data block.
A hybrid data compression method for compressing an uncompressed data block into a compressed data block, the uncompressed data block comprising one or a plurality of data values of one or a plurality of data types, the hybrid data compression method comprising:
- predicting data types of data values of the uncompressed data block;
- selecting an estimated best suited data compression scheme among a plurality of data compression schemes using as a main criterion a dominating data type among the predicted data types,
- wherein the plurality of data compression schemes comprises a first data compression scheme and a second data compression scheme,
- wherein each of the first and second data compression schemes is a lossless compression scheme or a lossy compression scheme,
- wherein the first data compression scheme is designed to exploit data locality between data values of a first data type, the data locality being temporal, spatial or a combination thereof, and
- wherein the second data compression scheme is designed to exploit data locality between data values of a second data type, the data locality being temporal, spatial or a combination thereof;
- and
- compressing the whole of the uncompressed data block by the selected estimated best suited data compression scheme to generate the compressed data block.
A hybrid data decompression device for decompressing a compressed data block into a decompressed data block comprising one or a plurality of data values of one or a plurality of data types, the hybrid data decompression device comprising:
- a plurality of data decompressors, each decompressor configured for a respective data decompression scheme, wherein the plurality of data decompressors comprises:
- a first data decompressor configured for a first data decompression scheme comprising a common-block-value decompression scheme, and
- a second data decompressor configured for a second data decompression scheme, different from the first data decompression scheme and comprising one of statistical (variable-length) decoding, dictionary-based decompression, delta decoding, pattern-based decompression, or significance-based decompression,
- wherein the hybrid data decompression device is configured to,
- check if the compressed data block is a compressed common-value data block and if so to select the first data decompressor as an estimated best suited data decompressor,
- generate the decompressed data block by causing the estimated best suited data decompressor to decompress the whole of the compressed data block into a decompressed common-value data block, and
- otherwise generate the decompressed data block by causing the second data decompressor to decompress the whole of the compressed data block according to the second data decompression scheme.
A hybrid data decompression method for decompressing a compressed data block into a decompressed data block comprising one or a plurality of data values of one or a plurality of data types, the hybrid data decompression method comprising:
- checking if the compressed data block is a compressed common-value data block;
- selecting, if the compressed data block is a compressed common-value data block, a first data compression scheme as an estimated best suited data decompression scheme among a plurality of data decompression schemes, wherein the plurality of decompression schemes comprises:
- the first data decompression scheme comprising a common-block-value decompression scheme, and
- a second data decompression scheme, different from the first data decompression scheme, comprising one of statistical (variable-length) decoding, dictionary-based decompression, delta decoding, pattern-based decompression, and significance-based decompression;
- and
- decompressing the whole of the compressed data block by the selected estimated best suited data compression scheme to generate the decompressed data block by
- decompressing the whole of the compressed data block into a decompressed common-value data block, or
- otherwise decompressing the whole of the compressed data block according to the second data decompression scheme.
A system comprising:
- one or more memories;
- a data compression device for compressing an uncompressed data block into a compressed data block, the uncompressed data block comprising one or a plurality of data values of one or a plurality of data types, the data compression device comprising:
- a plurality of data compressors, each data compressor configured for a respective data compression scheme, wherein the plurality of data compressors comprises:
- a first data compressor configured for a first data compression scheme, and
- a second data compressor configured for a second data compression scheme, different from the first data compression scheme,
- wherein each of the first and second data compression schemes is a lossless compression scheme or a lossy compression scheme,
- wherein the first data compression scheme is designed to exploit data locality between data values of a first data type, the data locality being temporal, spatial, or a combination thereof, and
- wherein the second data compression scheme is designed to exploit data locality between data values of a second data type, the data locality being temporal, spatial, or a combination thereof;
- and
- a predictor mechanism configured for predicting data types of data values of the uncompressed data block and for selecting an estimated best suited data compressor among said plurality of data compressors using as a main criterion a dominating data type among the predicted data types,
- wherein the hybrid data compression device is configured to generate the compressed data block by causing the selected estimated best suited data compressor to compress the whole of the uncompressed data block;
- and
- a data decompression device for decompressing the compressed data block into a decompressed data block comprising the one or a plurality of data values of the one or a plurality of data types, the hybrid data decompression device comprising:
- a plurality of data decompressors, each decompressor configured for a respective data decompression scheme, wherein the plurality of data decompressors comprises:
- a first data decompressor configured for a first data decompression scheme comprising a common-block-value decompression scheme, and
- a second data decompressor configured for a second data decompression scheme, different from the first data decompression scheme and comprising one of statistical (variable-length) decoding, dictionary-based decompression, delta decoding, pattern-based decompression, or significance-based decompression,
- wherein the data decompression device is configured to,
- check if the compressed data block is a compressed common-value data block and if so to select the first data decompressor as an estimated best suited data decompressor,
- generate the decompressed data block by causing the estimated best suited data decompressor to decompress the whole of the compressed data block into a decompressed common-value data block, and
- otherwise generate the decompressed data block by causing the second data decompressor to decompress the whole of the compressed data block according to the second data decompression scheme.
A hybrid data compression device for compressing an uncompressed data block into a compressed data block, the uncompressed data block comprising one or a plurality of data values of one or a plurality of data types, the hybrid data compression device comprising:
- a plurality of data compressors, each data compressor configured for a respective data compression scheme;
- and
- a predictor mechanism configured for predicting data types of data values of the uncompressed data block and for selecting an estimated best suited data compressor among said plurality of data compressors using as a main criterion a dominating data type among the predicted data types, wherein the predictor mechanism is configured to:
- divide the uncompressed data block into segments;
- for all segments, inspect an inspection bit portion of each segment to classify the segment as a predicted data type among a plurality of candidate data types;
- and
- compare occurrences of the predicted data types of all segments to determine the dominating data type of the uncompressed data block, and
- wherein the hybrid data compression device is configured to generate the compressed data block by causing the selected estimated best suited data compressor to compress the whole of the uncompressed data block.
A hybrid data compression method for compressing an uncompressed data block into a compressed data block, the uncompressed data block comprising one or a plurality of data values of one or a plurality of data types, the hybrid data compression method comprising:
- dividing the uncompressed data block into segments;
- predicting data types of data values of the uncompressed data block by, for all segments, inspecting an inspection bit portion of each segment to classify the segment as a predicted data type among a plurality of candidate data types;
- comparing occurrences of the predicted data types of all segments to determine a dominating data type of the uncompressed data block;
- selecting, based on the dominating data type, an estimated best suited data compression scheme from a plurality of data compression schemes;
- and
- compressing the whole of the uncompressed data block by the selected estimated best suited data compression scheme to generate the compressed data block.
Dependencies are inferred from the claim text.