IP Library Granted Patent US 11,171,665
Granted Patent B2
US 11,171,665 · App. 16/646,135 · Granted Nov 9, 2021

Dictionary-based data compression

Inventor: Alexander Kingsley St. John (Cambridge, NZ)
Assignee: Nyriad Limited
H03M7/3088H03M7/6023
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 11,171,665
App. No.
16/646,135
Granted
Nov 9, 2021
Kind
B2
Abstract

Approaches to dictionary-based data compression are disclosed, including those in which a Zbuffer is used to identify phrases that represent uncompressed data and/or to generate decompressed data by combining a set of overlapping occluded phrases.

Claims (52)

1. A computer-implemented method for compressing data, the method comprising:

using a Zbuffer to perform a parallel dictionary generation process to generate a dictionary of phrases from sample data, the dictionary being configured for use in encoding unencoded data and/or decoding encoded data,

wherein the parallel dictionary generation process comprises:

computing a plurality of candidate patterns based on the likely contribution of each candidate pattern to compression of the sample data;

calculating, in parallel, an actual contribution of each of the plurality of candidate patterns to the compression of the sample data;

selecting the pattern having a highest calculated actual contribution;

adding the selected pattern to the dictionary; and

repeating the calculating, selecting, and adding until a termination condition is satisfied;

wherein the Zbuffer is configured to handle occlusion of objects by storing the distance from a viewer for a set of rendered pixels.

2. The method of claim 1 , wherein one or more phrases are overlapping occluded phrases.

3. The method of claim 2 , wherein a plurality of lowest-ranking overlapping occluded phrases are preassigned, the method further comprising:

using the Zbuffer to identify phrases that represent the uncompressed data; and

accessing the resulting phrases to identify the phrases that best compress the data.

4. The method of claim 1 , further comprising: using a stencil buffer in conjunction with the Zbuffer to store wildcard phrases within an occluding phrase.

5. The method of claim 4 , wherein during processing the Zbuffer and stencil buffer interact such that where wildcards exist in a phrase, data of the phrase from a lower depth of the Zbuffer passes through.

6. The method of claim 1 , further comprising: obtaining the phrases from a dictionary.

7. The method of claim 1 , further comprising: generating the phrases from the data.

8. The method of claim 1 , further comprising:

determining that an identified phrase is not in the compression dictionary; and

adding the phrase to the compression dictionary.

9. The method of claim 1 , wherein a phrase is represented by a label and parameters, wherein the label references a function that takes the parameters.

10. The method of claim 1 , wherein a phrase is represented by a hash code, the hash code corresponding to a plurality of functions.

11. An apparatus for compressing data, the apparatus comprising:

a processor;

memory associated with the processor; and

a Zbuffer;

wherein the Zbuffer is configured for use in the method of claim 1 .

12. A non-transitory computer-readable medium comprising instructions which, when executed by a computer, cause the computer to perform the method of claim 1 .

13. A computer-implemented method for decompressing compressed data comprising:

using a Zbuffer to generate decompressed data by combining a set of overlapping occluded phrases from a predetermined dictionary of phrases,

wherein using the Zbuffer to generate decompressed data by combining the set of overlapping occluded phrases from the predetermined dictionary of phrases comprises:

receiving encoded data, the encoded data being encoded using the predetermined dictionary of phrases and having at least two overlapping phrases;

computing, in parallel, a plurality of distinct permutations of the at least two overlapping phrases;

decoding, in parallel, the encoded data using each of the distinct permutations of the at least two overlapping phrases in the Zbuffer to produce a plurality of decompressed data, each decompressed data in the plurality of decompressed data corresponding to a permutation of the distinct permutations of the at least two overlapping phrases; and

identifying one decompressed data of the plurality of decompressed data as the correct decompressed data for the encoded data;

wherein the Zbuffer is configured to handle occlusion of objects by storing the distance from a viewer for a set of rendered pixels.

14. The method of claim 13 , further comprising: using a stencil buffer in conjunction with the Zbuffer to store wildcard phrases within an occluding phrase.

15. The method of claim 14 , wherein during decompression the depth and stencil buffer interact such that where wildcard phrases exist in a phrase, data of the phrase from a lower depth of the Zbuffer passes through.

16. The method of claim 13 , wherein the compressed data contains codewords, the method further comprising:

obtaining the phrases by looking up the codewords in a dictionary.

17. The method of claim 16 , wherein the codewords in the dictionary contain multiple phrases, and wherein the compressed data contains one or more checksums, the method further comprising:

decompressing the compressed data in parallel using each phrase;

calculating a checksum associated with the decompression;

comparing the calculated checksum to the checksum contained in the compressed data; and

determining which phrase to use based on the comparison.

18. The method of claim 13 , further comprising: decompressing the compressed data by executing one or more functions, a function is referenced by a label and the function takes parameters, and wherein the compressed data contains the label and parameters.

19. An apparatus for decompressing compressed data comprising:

a processor;

memory associated with the processor; and

a Zbuffer;

wherein the Zbuffer is configured for use in the method of claim 13 .

20. A non-transitory computer-readable medium comprising instructions which, when executed by a computer, cause the computer to perform the method of claim 13 .

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 66856 FRAME 603. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 25, 2024
From: NYRIAD; NYRIAD, INC.
To: DAEDALUS CLOUD LLC
Reel/Frame 067239/0096 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2024
From: NYRIAD; NYRIAD INC.
To: DAEDALUS CLOUD LLC
Reel/Frame 066856/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2022
From: NYRIAD
To: NYRIAD, INC.
Reel/Frame 060364/0929 →
CHANGE OF NAME Recorded Jun 8, 2022
From: NYRIAD LIMITED
To: NYRIAD
Reel/Frame 060312/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058919/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058905/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2021
From: ST. JOHN, ALEXANDER KINGSLEY
To: NYRIAD LIMITED
Reel/Frame 058919/0848 →
Continuity (4)
Provisional Application 62556896 · Sep 11, 2017
Provisional Application 62556909 · Sep 11, 2017
Provisional Application 62556902 · Sep 11, 2017
Related Publication 20200274550A1 · Aug 27, 2020