IP Library Granted Patent US 9,311,721
Granted Patent B1
US 9,311,721 · App. 14/067,788 · Granted Apr 12, 2016

Graphics processing unit-assisted lossless decompression

Inventor: Thomas A. Loughry (Albuquerque, NM)
Assignee: Sandia Corporation
G06T9/00G06T1/20
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 9,311,721
App. No.
14/067,788
Granted
Apr 12, 2016
Kind
B1
Abstract

Systems and methods for decompressing compressed data that has been compressed by way of a lossless compression algorithm are described herein. In a general embodiment, a graphics processing unit (GPU) is programmed to receive compressed data packets and decompress such packets in parallel. The compressed data packets are compressed representations of an image, and the lossless compression algorithm is a Rice compression algorithm.

Claims (19)

1. A graphics processing unit (GPU) comprising a plurality of cores, the GPU programmed with instructions that, when executed by the GPU, cause the GPU to perform acts, comprising:

receiving a plurality of compressed data packets, the plurality of compressed data packets compressed by way of a lossless compression algorithm;

decompressing the plurality of compressed data packets to generate a plurality of de-mapped data packets,

wherein the instructions comprise a first kernel that comprises a first thread, instances of the first thread executed in parallel by multiple cores of the GPU, wherein decompressing the plurality of compressed data packets comprises executing the instances of the first thread in parallel over data packets in the plurality of compressed data packets to generate a plurality of decompressed data packets, each decompressed data packet comprising a respective plurality of decompressed data elements,

wherein the instructions comprise a second kernel that comprises a second thread, instances of the second thread executed in parallel by multiple cores of the GPU, wherein decompressing the plurality of compressed data packets comprises executing the instances of the second thread in parallel over decompressed data elements of a decompressed data packet to generate a de-mapped data packet, and

wherein the instructions comprise a third kernel that comprises a third thread, instances the third thread executed in parallel by multiple cores of the GPU, the acts further comprising executing the instances of the third thread in parallel over de-mapped data packets to compute respective checksums for the de-mapped data packets;

comparing a checksum computed for a de-mapped data packet with a checksum computed for the de-mapped data packet prior to being subjected to the lossless compression algorithm; and

outputting a signal responsive to the comparing that is indicative of whether or not the checksum computed for the de-mapped data packet is equivalent to the checksum computed for the de-mapped data packet prior to being subjected to the lossless compression algorithm.

2. The GPU of claim 1 , wherein the compressed data packets comprise compressed image packets.

3. The GPU of claim 1 , wherein the lossless compression algorithm is a Rice compression algorithm.

4. The GPU of claim 1 , the compressed data packets arranged in a sequence, wherein the second kernel, when executed by the GPU, causes the instances of the second thread to execute over the compressed data packets in an order of the sequence, thereby generating the plurality of de-mapped data packets.

5. The GPU of claim 1 , wherein each de-mapped data packet comprises a 64×64 pixel image.

6. The GPU of claim 1 , the acts further comprising:

receiving a first command signal from a central processing unit (CPU) that is in communication with the GPU; and

responsive to receiving the first command signal, retrieving the plurality of compressed data packets from a system memory and loading the plurality of compressed data packets into an onboard memory of the GPU.

7. The GPU of claim 6 , the acts further comprising:

receiving a second command signal from the CPU; and

decompressing the plurality of compressed data packets responsive to receiving the second command signal.

8. The GPU of claim 1 , wherein the GPU decompresses the compressed data packets at a rate between 300 MB/s and 1,000 MB/s.

Assignments (3)
CHANGE OF NAME Recorded May 24, 2018
From: SANDIA CORPORATION
To: NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA, LLC
Reel/Frame 046237/0090 →
CONFIRMATORY LICENSE Recorded Feb 27, 2014
From: SANDIA CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 032311/0484 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2014
From: LOUGHRY, THOMAS A.
To: SANDIA CORPORATION
Reel/Frame 031909/0897 →
Continuity (1)
Provisional Application 61808362 · Apr 4, 2013