Parallel decompression of compressed data streams
AssigneeNVIDIA Corporation
InventorSteven Parker
Life of this patent
Estimating the term…
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.
Claims34
A method comprising:
- receiving compressed data and metadata corresponding to the compressed data;
- determining, based at least in part on the metadata, an initial input location and an initial output location corresponding to the compressed data;
- determining, based at least in part on the initial input location and the initial output location, an input segment location and an output segment location for at least two segments of a plurality of segments of the compressed data;
- and
- decompressing the at least two segments in parallel according to the input segment location and the output segment location to generate a decompressed output.
A method comprising:
- analyzing compressed data to determine demarcations between a plurality of segments of the compressed data;
- generating, based at least in part on the demarcations and for at least two segments of the plurality of segments, metadata indicative of an initial input location within the compressed data and an initial output location in an output data corresponding to each data segment of the at least two data segments;
- and
- transmitting the compressed data and the metadata to a decompressor.
A system comprising:
- one or more processors;
- one or more memory devices storing instructions thereon that, when executed using the one or more processors, cause the one or more processors to instantiate:
- a compressed data analyzer to identify segments of a compressed data;
- a metadata generator to generate, based at least in part on the identified segments, metadata indicative of an initial input location, an initial output location, and a copy index for each identified segment of the identified segments of the compressed data;
- and
- a decompressor to:
- receive the compressed data and the metadata;
- process, in parallel and according to the metadata, the identified segments using threads of a processor;
- output, based at least in part on the processing, literal symbols to an output and copy information to a deferred copy queue;
- and
- process the copy information to output copied symbols to the output.
A method comprising:
- receiving compressed data and metadata corresponding to the compressed data, the metadata being indicative of an initial input location and an initial output location corresponding to the compressed data, and an input segment location and an output segment location for at least two segments of a plurality of segments of the compressed data;
- and
- decompressing the at least two segments in parallel using input corresponding to a position indicated by the initial input segment and the input segment location, wherein an output of the decompressing has a position corresponding to the initial output location and the output segment location.
Dependencies are inferred from the claim text.