IP Library › Granted Patent US 10,367,524
Granted Patent B2
US 10,367,524 · App. 15/496,562 · Granted Jul 30, 2019

Semi-dynamic, low latency compression

Inventors: Gregory B. Tucker (Chandler, AZ); James D. Guilford (Northborough, MA); Daniel F. Cutter (Maynard, MA); Vinodh Gopal (Westborough, MA); Wajdi K. Feghali (Boston, MA)
Assignee: Intel Corporation
H03M7/40
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,367,524
App. No.
15/496,562
Granted
Jul 30, 2019
Kind
B2
Abstract

Methods and apparatus are described by which data is compressed using semi-dynamic Huffman code generation. Embodiments generate symbol statistics over a portion of data. The symbol statistics are expanded to include all possible literals that could appear within the data. Any literal or reference added to the statistics may be given a frequency of one. The statistics are used to generate a semi-dynamic Huffman code. The entire data is then compressed using the semi-dynamic Huffman code.

Claims (46)

1. An apparatus comprising:

a hardware matcher circuit to:

encode a preamble of data into a plurality of tokens, the data to include remainder data, each token to include a symbol and a length of the symbol; and

generate symbol frequency statistics to indicate a number of times the symbol appears within the preamble of data;

a Huffman table generator circuit to generate a Huffman code from the plurality of tokens and the symbol frequency statistics; and

an encoder circuit to compress the remainder data using the Huffman code.

2. The apparatus of claim 1 , the hardware matcher circuit to add a second plurality of tokens with a symbol frequency of one, the plurality of tokens and the second plurality of tokens to include all possible literals within the data.

3. The apparatus of claim 1 , the Huffman table generator circuit to add a second plurality of tokens with a symbol frequency of one, the plurality of tokens and the second plurality of tokens to include all possible literals within the data.

4. The apparatus of claim 3 , the encoder circuit to compress the preamble of data.

5. The apparatus of claim 3 , further comprising:

a buffer to store the plurality of tokens; and

a transcoder to transcode the plurality of tokens using the Huffman codes, the encoder circuit to compress only the remainder data.

6. The apparatus of claim 1 , a file to include a plurality of chunks of data, and wherein the data is one chunk of data.

7. The apparatus of claim 6 , wherein each chunk of data is compressed.

8. The apparatus of claim 7 , wherein at least two chunks of data are one megabyte in size.

9. The apparatus of claim 1 , wherein the preamble of data is no more than 5% of a size of the data.

10. The apparatus of claim 9 , wherein the preamble of data is 32 kilobytes.

11. The apparatus of claim 9 , wherein the preamble of data is 64 kilobytes.

12. The apparatus of claim 9 , wherein the preamble of data is 96 kilobytes.

13. A machine-implemented method comprising:

encoding a preamble of data into a plurality of tokens, the data to include remainder data, each token to include a symbol and a length of the symbol;

generating symbol frequency statistics to indicate a number of times the symbol appears within the preamble of data;

generating a Huffman code from the plurality of tokens and the symbol frequency statistics; and

compressing the remainder data using the Huffman code.

14. The method of claim 13 , further comprising generating the Huffman codes from a second plurality of tokens with a symbol frequency of one, the plurality of tokens and the second plurality of tokens to include all possible literals within the data.

15. The method of claim 14 , further comprising compressing the preamble of data.

16. The method of claim 14 , further comprising:

storing, in a buffer, the plurality of tokens;

transcoding the plurality of tokens using the Huffman codes; and

compressing only the remainder data.

17. The method of claim 13 , a file to include a plurality of chunks of data, and wherein the data is one chunk of data.

18. The method of claim 17 , wherein each chunk of data is compressed.

19. The method of claim 18 , wherein at least two chunks of data are one megabyte in size.

20. The method of claim 17 , wherein the preamble of data is no more than 5% of a size of the data.

21. At least one non-transitory computer-readable medium, including instructions, which when executed by a machine, cause the machine to perform operations:

encoding a preamble of data into a plurality of tokens, the data to include remainder data, each token to include a symbol and a length of the symbol;

generating symbol frequency statistics to indicate a number of times the symbol appears within the preamble of data;

generating a Huffman code from the plurality of tokens and the symbol frequency statistics; and

compressing the remainder data using the Huffman code.

22. The at least one computer-readable medium of claim 21 , the operations further comprising generating the Huffman codes from a second plurality of tokens with a symbol frequency of one, the plurality of tokens and the second plurality of tokens to include all possible literals within the data.

23. The at least one computer-readable medium of claim 22 , the operations further comprise compressing the preamble of data.

24. The at least one computer-readable medium of claim 22 , the operations further comprising:

storing, in a buffer, the plurality of tokens;

transcoding the plurality of tokens using the Huffman codes; and

compressing only the remainder data.

25. The at least one computer-readable medium of claim 21 , wherein a file comprises a plurality of chunks of data, and wherein the data is one chunk of data.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE FILING DATE WHICH WAS MISSING IN ASSIGNMENT PREVIOUSLY RECORDED ON REEL 042138 FRAME 0617. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 15, 2017
From: TUCKER, GREGORY B.; GUILFORD, JAMES D.; CUTTER, DANIEL F.; GOPAL, VINODH; FEGHALI, WAJDI K.
To: INTEL CORPORATION
Reel/Frame 043553/0700 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 25, 2017
From: FEGHALI, WAJDI K.; GOPAL, VINODH; CUTTER, DANIEL F.; GUILFORD, JAMES D.; TUCKER, GREGORY B.
To: INTEL CORPORATION
Reel/Frame 042138/0617 →
Continuity (1)
Related Publication 20180310012A1 · Oct 25, 2018