IP Library › Granted Patent US 12,489,462
Granted Patent B2
US 12,489,462 · App. 18/508,010 · Granted Dec 2, 2025

Parallel decompression of compressed data streams

Inventor: Steven Parker (Draper, UT)
Assignee: NVIDIA Corporation
H03M7/3088G06F9/466G06T1/20H03M7/3084H03M7/40H03M7/4031H03M7/6005H03M7/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 12,489,462
App. No.
18/508,010
Granted
Dec 2, 2025
Kind
B2
Abstract

In various examples, metadata may be generated corresponding to compressed data streams that are compressed according to serial compression algorithms—such as arithmetic encoding, entropy encoding, etc.—in order to allow for parallel decompression of the compressed data. As a result, modification to the compressed data stream itself may not be required, and bandwidth and storage requirements of the system may be minimally impacted. In addition, by parallelizing the decompression, the system may benefit from faster decompression times while also reducing or entirely removing the adoption cycle for systems using the metadata for parallel decompression.

Claims (73)

1 . A method comprising:

determining first metadata associated with segments of compressed data;

determining second metadata associated with locations of segments of a dictionary, the dictionary being associated with the compressed data; and

decompressing, using the dictionary and based at least on the first metadata and the second metadata, two or more of the segments of the compressed data in parallel to generate a decompressed output.

2 . The method of claim 1 , wherein the first metadata is indicative of at least a first input segment location and a first output segment location associated with an individual segment of the segments of the compressed data.

3 . The method of claim 1 , wherein the decompressing the segments of the compressed data to generate the decompressed output comprises:

decompressing, based at least on the second metadata, one or more of the segments of the dictionary to generate the dictionary; and

decompressing, based at least on the dictionary and the first metadata, the segments of the compressed data to generate the decompressed output.

4 . The method of claim 1 , wherein an individual segment of the segments of the dictionary is used to decompress at least an individual segment of the segments of the compressed data.

5 . The method of claim 1 , further comprising generating third metadata indicative of at least one of:

a first index associated with the segments of the compressed data; or

a second index associated with the segments of the dictionary.

6 . The method of claim 1 , further comprising:

receiving input data;

identifying segments of the input data that correspond to segments of the dictionary; and

generating the compressed data by at least compressing the segments of the input data using the dictionary.

7 . A system comprising:

one or more processing units to:

generate first metadata associated with segments of compressed data;

generate second metadata associated with segments of a dictionary, the dictionary being associated with the compressed data;

associate the first metadata with at least the compressed data and the second metadata with at least the dictionary;

transmit the first metadata, the second metadata, and the compressed data to cause a decompression of two or more of the segments of the compressed data in parallel using the dictionary and based on the first metadata and the second metadata.

8 . The system of claim 7 , wherein:

the first metadata is indicative of at least a first input segment location and a first output segment location associated with an individual segment of the segments of the compressed data; and

the second metadata is indicative of at least a second input segment location and a second output segment location associated with an individual segment of the segments of the dictionary.

9 . The system of claim 7 , wherein the one or more processing units are further to decompress, based at least on the first metadata and the second metadata, segments of the segments of the compressed data to generate output data.

10 . The system of claim 9 , wherein a decompression of the segments of the compressed data to generate the output data is achieved by:

decompressing, based at least on the second metadata, one or more segments of the segments of the dictionary to generate the dictionary; and

decompressing, based at least on the dictionary and the first metadata, the segments of the compressed data to generate the output data.

11 . The system of claim 7 , wherein an individual segment of the dictionary is used to decompress at least an individual segment of the compressed data.

12 . The system of claim 7 , wherein the one or more processing units are further to generate third metadata indicative of at least one of:

a first index associated with the segments of the compressed data; or

a second index associated with the segments of the dictionary.

13 . The system of claim 7 , wherein the one or more processing units are further to:

receive input data;

identify segments of the input data that correspond to segments of the dictionary; and

generate the compressed data by at least compressing the segments of the input data using the dictionary.

14 . The system of claim 7 , wherein the system is comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system for performing simulation operations;

a system for performing deep learning operations;

a system for performing real-time streaming broadcasts;

a system for performing video monitoring services;

a system for performing intelligent video analysis;

a system implemented using an edge device;

a system for generating ray-traced graphical output;

a system incorporating one or more virtual machines (VMs);

a system implemented at least partially in a data center; or

a system implemented at least partially using cloud computing resources.

15 . A processor comprising:

one or more processing units to generate output data by decompressing at least two segments of compressed data in parallel based at least on first metadata associated with the at least two segments of the compressed data and second metadata associated with segments of a dictionary, the first metadata indicating one or more first locations associated with the at least two segments of the compressed data and the second metadata indicating one or more second locations associated with the segments of the dictionary.

16 . The processor of claim 15 , wherein the first metadata is indicative of at least a first input segment location and a first output segment location associated with an individual segment of the at least two segments of the compressed data.

17 . The processor of claim 15 , wherein the decompressing the at least two segments of the compressed data comprises:

decompressing, based at least on the second metadata, one or more of the segments of the dictionary to generate the dictionary; and

decompressing, based at least on the dictionary and the first metadata, the at least two segments of the compressed data to generate the output data.

18 . The processor of claim 15 , wherein an individual segment of the segments of the dictionary is used to decompress at least an individual segment of the at least two segments of the compressed data.

19 . The processor of claim 15 , wherein the generation of the output data is further by using third metadata indicative of at least one of:

a first index associated with the at least two segments of the compressed data; or

a second index associated with the segments of the dictionary.

20 . The processor of claim 15 , wherein the processor is comprised in at least one of:

a control system for an autonomous or semi-autonomous machine;

a perception system for an autonomous or semi-autonomous machine;

a system for performing simulation operations;

a system for performing deep learning operations;

a system for performing real-time streaming broadcasts;

a system for performing video monitoring services;

a system for performing intelligent video analysis;

a system implemented using an edge device;

a system for generating ray-traced graphical output;

a system incorporating one or more virtual machines (VMs);

a system implemented at least partially in a data center; or

a system implemented at least partially using cloud computing resources.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2023
From: PARKER, STEVEN
To: NVIDIA CORPORATION
Reel/Frame 065562/0069 →
Continuity (3)
Continuation 17879436 · Aug 2, 2022
Continuation 17002564 · Aug 25, 2020
Related Publication 20240080041A1 · Mar 7, 2024
References Cited (17)
US 9264068B2 · Wu · 2016 [cited by examiner]
US 10230392B2 · Gopal · 2019 [cited by examiner]
US 11405053B2 · Parker · 2022 [cited by applicant]
US 11817886B2 · Parker · 2023 [cited by applicant]
US 20110150351A1 · Singh · 2011 [cited by examiner]
US 20180183462A1 · Gopal et al. · 2018 [cited by applicant]
US 20220376701A1 · Parker · 2022 [cited by applicant]
JP 2015513386A · 2015 [cited by applicant]
JP 2020201948A · 2020 [cited by applicant]
Parker, Steven; Notice of Allowance for U.S. Appl. No. 17/002,564, filed Aug. 25, 2020, mailed Mar. 25, 2022, 12 pgs. [cited by applicant]
An LZ Codec Designed for SSE Decompression. Feb. 15, 2016. Retrieved from the Internet on Jul. 17, 2020 from URL <https://conorstokes.github.io/compression/2016/02/15/an-LZ-codec-designed-for-SSE-decompression>. [cited by applicant]
Weißenberger, A., & Schmidt, B. (Aug. 2018). Massively parallel Huffman decoding on GPUs. In Proceedings of the 47th International Conference on Parallel Processing (pp. 1-10). [cited by applicant]
Sitaridi, E., Mueller, R., Kaldewey, T., Lohman, G., & Ross, K. A. (Aug. 2016). Massively-parallel lossless data decompression. In 2016 45th International Conference on Parallel Processing (ICPP) (pp. 242-247). IEEE. [cited by applicant]
Deutsch, P. (1996). RFC1951: Deflate compressed data format specification version 1.3. [cited by applicant]
Parker; Notice of Allowance for U.S. Appl. No. 17/879,436, filed Aug. 2, 2022, mailed Jun. 30, 2023, 12 pgs. [cited by applicant]
Parker, Steven; Notice of Registration for Chinese Patent Application No. 202110979990.8, filed Aug. 25, 2021, mailed May 29, 2025, 6 pgs. [cited by applicant]
Parker, Steven; First Office Action for Japanese Patent Application No. 2021-123793, filed Jul. 29, 2021, mailed Feb. 14, 2025, 4 pgs. [cited by applicant]