Content estimation data compression
Abstract
Systems for data compression using content estimation. In one aspect, a system includes a dictionary encoder and one or more additional data compression encoders. One or more processors are configured to determine compression statistics related to a first data block, estimate a size of a first compressed data block, estimate a size of a second compressed data block, compare the estimated sizes, compress the first data block using the dictionary encoder when the estimated size of the first compressed data block is smaller than the estimated size of the second compressed data block, and compress the first data block using the additional data compression encoder when the estimated size of the second compressed data block is smaller than the estimated size of the first compressed data block.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A system for compressing data, comprising:
one or more memories; one or more processors coupled to the one or more memories; a dictionary encoder and an additional data compression encoder configured to execute on the one or more processors, wherein the one or more processors are configured to:
determine compression statistics related to a first data block, wherein the compression statistics are determined during a dictionary encoder compression process;
estimate a size of a first compressed data block that would result from the completion of the compression process by the dictionary encoder;
estimate a size of a second compressed data block that would result from compressing the first data block with the additional data compression encoder;
compare the estimated size of the first compressed data block with the estimated size of the second compressed data block;
compress the first data block using the dictionary encoder when the estimated size of the first compressed data block is smaller than the estimated size of the second compressed data block; and
compress the first data block using the additional data compression encoder when the estimated size of the second compressed data block is smaller than the estimated size of the first compressed data block.
2 . The system of claim 1 , wherein the additional encoder is a Huffman encoder.
3 . The system of claim 1 , wherein the additional encoder is a run-length encoder.
4 . The system of claim 1 , wherein the additional encoder is an LZDR encoder.
5 . The system of claim 1 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compare the first estimated compression ratio and the second estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio and the second estimated compression ratio is below the compression threshold, output the first data block.
6 . The system of claim 1 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compare the first estimated compression ratio and the second estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio and the second estimated compression ratio is not greater than the compression threshold, output the first data block.
7 . The system of claim 1 , wherein the one or more processors are further configured to:
analyze one or more encoder desirability factors; and compress the first data block using the dictionary encoder based on a function of the one or more encoder desirability factors and the estimated size of the first compressed data block.
8 . A system for compressing data, comprising:
one or more memories; one or more processors coupled to the one or more memories; a dictionary encoder, a first additional data compression encoder, and a second additional compression encoder configured to execute on the one or more processors, wherein the one or more processors are configured to:
determine compression statistics related to a first data block, wherein the compression statistics are determined during a dictionary encoder compression process;
estimate a size of a first compressed data block that would result from the completion of the compression process by the dictionary encoder;
estimate a size of a second compressed data block that would result from compressing the first data block with the first additional data compression encoder;
estimate a size of a third compressed data block that would result from compressing the first data block with the second additional data compression encoder;
compare the estimated size of the first compressed data block with the estimated size of the second compressed data block with the estimated size of the third compressed data block;
compress the first data block using the dictionary encoder when the estimated size of the first compressed data block is smaller than the estimated size of the second compressed data block and the estimated size of the third compressed data block;
compress the first data block using the first additional data compression encoder when the estimated size of the second compressed data block is smaller than the estimated size of the first compressed data block and the estimated size of the third compressed data block; and
compress the first data block using the second additional data compression encoder when the estimated size of the third compressed data block is smaller than the estimated size of the first compressed data block and the estimated size of the second compressed data block.
9 . The system of claim 8 , wherein the first additional data compression encoder is a Huffman encoder.
10 . The system of claim 8 , wherein the second additional data compression encoder is a Huffman encoder
11 . The system of claim 8 , wherein the first additional data compression encoder is a run-length encoder.
12 . The system of claim 8 , wherein the second additional data compression encoder is a run-length encoder.
13 . The system of claim 8 , wherein the first additional data compression encoder is an LZDR encoder.
14 . The system of claim 8 , wherein the second additional data compression encoder is an LZDR encoder.
15 . The system of claim 8 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block with the estimated size of the third compressed data block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compute a third estimated compression ratio corresponding to the third compressed data block; compare the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio is below the compression threshold, output the first data block.
16 . The system of claim 8 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block with the estimated size of the third compressed data block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compute a third estimated compression ratio corresponding to the third compressed data block; compare the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio is not greater than the compression threshold, output the first data block.
17 . The system of claim 8 , wherein the one or more processors are further configured to:
analyze one or more encoder desirability factors; and compress the first data block using the dictionary encoder based on a function of the one or more encoder desirability factors and the estimated size of the first compressed data block.
18 . A system for compressing data, comprising:
one or more memories; one or more processors coupled to the one or more memories; a LZDR encoder and an additional data compression encoder configured to execute on the one or more processors, wherein the one or more processors are configured to:
determine compression statistics related to a first data block, wherein the compression statistics are determined during a LZDR encoder compression process;
estimate a size of a first compressed data block that would result from the completion of the compression process by the LZDR encoder;
estimate a size of a second compressed data block that would result from compressing the first data block with the additional data compression encoder;
compare the estimated size of the first compressed data block with the estimated size of the second compressed data block;
compress the first data block using the LZDR encoder when the estimated size of the first compressed data block is smaller than the estimated size of the second compressed data block; and
compress the first data block using the additional data compression encoder when the estimated size of the second compressed data block is smaller than the estimated size of the first compressed data block.
19 . The system of claim 18 , wherein the additional data compression encoder is a Huffman encoder.
20 . The system of claim 18 , wherein the additional data compression encoder is a run-length encoder.
21 . The system of claim 18 , wherein the additional data compression encoder is an Lempel-Ziz encoder.
22 . The system of claim 18 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compare the first estimated compression ratio and the second estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio and the second estimated compression ratio is below the compression threshold, output the first data block.
23 . The system of claim 18 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compare the first estimated compression ratio and the second estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio and the second estimated compression ratio is not greater than the compression threshold, output the first data block.
24 . The system of claim 18 , wherein the one or more processors are further configured to:
analyze one or more encoder desirability factors; and compress the first data block using the LZDR encoder based on a function of the one or more encoder desirability factors and the estimated size of the first compressed data block.
25 . A system for compressing data, comprising:
one or more memories; one or more processors coupled to the one or more memories; a LZDR encoder, a first additional data compression encoder, and a second additional compression encoder configured to execute on the one or more processors, wherein the one or more processors are configured to:
determine compression statistics related to a first data block, wherein the compression statistics are determined during a LZDR encoder compression process;
estimate a size of a first compressed data block that would result from the completion of the compression process by the LZDR encoder;
estimate a size of a second compressed data block that would result from compressing the first data block with the first additional data compression encoder;
estimate a size of a third compressed data block that would result from compressing the first data block with the second additional data compression encoder;
compare the estimated size of the first compressed data block with the estimated size of the second compressed data block with the estimated size of the third compressed data block;
compress the first data block using the LZDR encoder when the estimated size of the first compressed data block is smaller than the estimated size of the second compressed data block and the estimated size of the third compressed data block;
compress the first data block using the first additional data compression encoder when the estimated size of the second compressed data block is smaller than the estimated size of the first compressed data block and the estimated size of the third compressed data block; and
compress the first data block using the second additional data compression encoder when the estimated size of the third compressed data block is smaller than the estimated size of the first compressed data block and the estimated size of the second compressed data block.
26 . The system of claim 25 , wherein the first additional data compression encoder is a Huffman encoder.
27 . The system of claim 25 , wherein the second additional data compression encoder is a Huffman encoder
28 . The system of claim 25 , wherein the first additional data compression encoder is a run-length encoder.
29 . The system of claim 25 , wherein the second additional data compression encoder is a run-length encoder.
30 . The system of claim 25 , wherein the first additional data compression encoder is an Lempel-Ziv encoder.
31 . The system of claim 25 , wherein the second additional data compression encoder is a Lempel-Ziv encoder.
32 . The system of claim 25 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block with the estimated size of the third compressed data block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compute a third estimated compression ratio corresponding to the third compressed data block; compare the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio is below the compression threshold, output the first data block.
33 . The system of claim 25 , wherein to compare the estimated size of the first compressed data block with estimated size of the second compressed block with the estimated size of the third compressed data block, the one or more processors are further configured to:
compute a first estimated compression ratio corresponding to the first compressed data block; compute a second estimated compression ratio corresponding to the second compressed data block; compute a third estimated compression ratio corresponding to the third compressed data block; compare the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio to a compression threshold; and in response to determining that the first estimated compression ratio, the second estimated compression ratio, and the third estimated compression ratio is not greater than the compression threshold, output the first data block.
34 . The system of claim 25 , wherein the one or more processors are further configured to:
analyze one or more encoder desirability factors; and compress the first data block using the LZDR encoder based on a function of the one or more encoder desirability factors and the estimated size of the first compressed data block.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.