US2018285393A1PendingUtilityA1

Content estimation data compression

53
Assignee: REALTIME DATA LLCPriority: May 2, 2012Filed: Oct 11, 2017Published: Oct 4, 2018
Est. expiryMay 2, 2032(~5.8 yrs left)· nominal 20-yr term from priority
G06F 17/30312H03M 7/4043G06F 16/22H03M 7/3088H03M 7/4062
53
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
What 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.