Patentable/Patents/US-10423596
US-10423596

Efficient caching of Huffman dictionaries

PublishedSeptember 24, 2019
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A Huffman cache is used to hold Huffman dictionaries that are changeable for dynamically selecting literal frequencies that are similar, wherein the Huffman cache is a data storage cache.

Patent Claims
18 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for efficient caching of Huffman dictionaries using a processor device in a computing environment, comprising: using a Huffman cache to hold the Huffman dictionaries that are changeable for dynamically selecting literal frequencies that are similar, the literal frequencies comprising a number of times each of a plurality of literals is used in input data and each of the plurality of literals comprising a sequence of bytes representing characters of the input data, wherein the Huffman cache is a data storage cache; quantifying each of the literal frequencies into triple key cache, wherein the triple key cache includes keys for each one of a number of literals, a dictionary and a hash for the literal frequencies; and wherein the literal frequencies are used to determine a cache match of a respective one of the Huffman dictionaries for the input data to improve computational time in lieu of building the respective one of the Huffman dictionaries using the literal; and encoding the respective one of the Huffman dictionaries of the input data to produce compressed output data such that the input data is encoded at both a compression ratio commensurate with a dynamic Huffman encoding operation while simultaneously encoding the input data at a compression rate commensurate with a static Huffman encoding operation; wherein the respective one of the Huffman dictionaries of the input data is encoded in one pass consistent with the compression rate of the static Huffman encoding operation in lieu of performing the encoding in a dual-pass encoding consistent with the compression ratio of the dynamic Huffman encoding operation while maintaining both the compression rate of the static Huffman encoding operation in addition to the compression ratio of the dynamic Huffman encoding operation.

2

2. The method of claim 1 , further including tallying the literal frequencies for each block of data.

3

3. The method of claim 2 , further including inserting and sorting the literal frequencies into a priority queue.

4

4. The method of claim 3 , further including creating a B-Tree and a Huffman dictionary following the tallying.

5

5. The method of claim 1 , further including using N most frequent literals as a hash key for the cache matching.

6

6. The method of claim 1 , further including performing a cache matching operation by performing each one of: tallying the literal frequencies for each block of data for generalizing a frequency table with the similar literal frequencies, comparing and matching the similar literal frequencies for achieving an increased cache hit ratio for each cache entry, determining if there is the cache match using the similar literal frequencies, creating a B-Tree and the respective one of the Huffman dictionaries if no cache match is determined and subsequently updating the Huffman cache with the created B-Tree and the respective one of the Huffman dictionaries, and encoding the respective one of the Huffman dictionaries.

7

7. A system for efficient caching of Huffman dictionaries using a processor device in a computing environment, the system comprising: at least one processor device operable in the computing storage environment for controlling the caching of Huffman dictionaries, wherein the at least one processor device: uses a Huffman cache to hold the Huffman dictionaries that are changeable for dynamically selecting literal frequencies that are similar, the literal frequencies comprising a number of times each of a plurality of literals is used in input data and each of the plurality of literals comprising a sequence of bytes representing characters of the input data, wherein the Huffman cache is a data storage cache, quantifies each of the literal frequencies into triple key cache, wherein the triple key cache includes keys for each one of a number of literals, a dictionary and a hash for the literal frequencies; and wherein the literal frequencies are used to determine a cache match of a respective one of the Huffman dictionaries for the input data to improve computational time in lieu of building the respective one of the Huffman dictionaries using the literal, and encoding the respective one of the Huffman dictionaries of the input data to produce compressed output data such that the input data is encoded at both a compression ratio commensurate with a dynamic Huffman encoding operation while simultaneously encoding the input data at a compression rate commensurate with a static Huffman encoding operation; wherein the respective one of the Huffman dictionaries of the input data is encoded in one pass consistent with the compression rate of the static Huffman encoding operation in lieu of performing the encoding in a dual-pass encoding consistent with the compression ratio of the dynamic Huffman encoding operation while maintaining both the compression rate of the static Huffman encoding operation in addition to the compression ratio of the dynamic Huffman encoding operation.

8

8. The system of claim 7 , wherein the at least one processor device tallies the literal frequencies for each block of data.

9

9. The system of claim 8 , wherein the at least one processor device inserts and sorts the literal frequencies into a priority queue.

10

10. The system of claim 9 , wherein the at least one processor device creates a B-Tree and a Huffman dictionary following the tallying.

11

11. The system of claim 7 , wherein the at least one processor device uses N most frequent literals as a hash key for the cache matching.

12

12. The system of claim 7 , wherein the at least one processor device performs a cache matching operation by performing each one of: tallying the literal frequencies for each block of data for generalizing a frequency table with the similar literal frequencies, comparing and matching the similar literal frequencies for achieving an increased cache hit ratio for each cache entry, determining if there is the cache match using the similar literal frequencies, creating a B-Tree and the respective one of the Huffman dictionaries if no cache match is determined and subsequently updating the Huffman cache with the created B-Tree and the respective one of the Huffman dictionaries, and encoding the respective one of the Huffman dictionaries.

13

13. A non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising executable instructions for efficient caching of Huffman dictionaries using a processor device in a computing environment comprising: a first executable portion that: uses a Huffman cache to hold the Huffman dictionaries that are changeable for dynamically selecting literal frequencies that are similar, the literal frequencies comprising a number of times each of a plurality of literals is used in input data and each of the plurality of literals comprising a sequence of bytes representing characters of the input data, wherein the Huffman cache is a data storage cache; quantifies each of the literal frequencies into triple key cache, wherein the triple key cache includes keys for each one of a number of literals, a dictionary and a hash for the literal frequencies; and wherein the literal frequencies are used to determine a cache match of a respective one of the Huffman dictionaries for the input data to improve computational time in lieu of building the respective one of the Huffman dictionaries using the literal; and encoding the respective one of the Huffman dictionaries of the input data to produce compressed output data such that the input data is encoded at both a compression ratio commensurate with a dynamic Huffman encoding operation while simultaneously encoding the input data at a compression rate commensurate with a static Huffman encoding operation; wherein the respective one of the Huffman dictionaries of the input data is encoded in one pass consistent with the compression rate of the static Huffman encoding operation in lieu of performing the encoding in a dual-pass encoding consistent with the compression ratio of the dynamic Huffman encoding operation while maintaining both the compression rate of the static Huffman encoding operation in addition to the compression ratio of the dynamic Huffman encoding operation.

14

14. The non-transitory computer-readable storage medium of claim 13 , further including a second executable portion that tallies the literal frequencies for each block of data.

15

15. The non-transitory computer-readable storage medium of claim 14 , further including a third executable portion that inserts and sorts the literal frequencies into a priority queue.

16

16. The non-transitory computer-readable storage medium of claim 15 , further including a fourth executable portion that creates a B-Tree and a Huffman dictionary following the tallying.

17

17. The non-transitory computer-readable storage medium of claim 13 , further including a second executable portion that uses N most frequent literals as a hash key for the cache matching.

18

18. The non-transitory computer-readable storage medium of claim 13 , further including a second executable portion that performs a cache matching operation by performing each one of: tallying the literal frequencies for each block of data for generalizing a frequency table with the similar literal frequencies, comparing and matching the similar literal frequencies for achieving an increased cache hit ratio for each cache entry, determining if there is the cache match using the similar literal frequencies, creating a B-Tree and the respective one of the Huffman dictionaries if no cache match is determined and subsequently updating the Huffman cache with the created B-Tree and the respective one of the Huffman dictionaries, and encoding the respective one of the Huffman dictionaries.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 11, 2014

Publication Date

September 24, 2019

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Efficient caching of Huffman dictionaries” (US-10423596). https://patentable.app/patents/US-10423596

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.