IP Library Granted Patent US 10,356,407
Granted Patent B2
US 10,356,407 · App. 15/223,823 · Granted Jul 16, 2019

Display-side video decompression using quantization tables

Inventors: Andrew Thomas Forsyth (Kirkland, WA); Lyle David Bainbridge (Redwood City, CA)
Assignee: Facebook Technologies, LLC
H04N19/124G06T19/006H04N19/176H04N19/51H04N19/597
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 10,356,407
App. No.
15/223,823
Granted
Jul 16, 2019
Kind
B2
Abstract

Embodiments relate to a method and a system for performing image compression and decompression of image data. In one or more embodiments, the image data is divided into one or more image data blocks, and the image compression and decompression are performed for each image data block. The image data block is compressed and includes a base value corresponding to a first image component and a compressed difference value corresponding to a second image component. For decompression, a first value of the image data block can be obtained based on the base value, and a second value of the image data block can be obtained based on the first value, the first compressed difference value and a corresponding quantization table. An output image can be presented to a user, according to the decompressed image data block.

Claims (77)

1. A display headset comprising:

an electronic display including pixels configured to display image data according to an output image data block, the output image data block comprising a first output value of a first image component and a second output value of a second image component; and

a decompression engine communicatively coupled to the electronic display, the decompression engine configured to:

receive a compressed data block, the compressed data block including a base value and a first compressed difference value representative of a first input value and a second input value, wherein the compressed data block is compressed by 1) obtaining an offset value based on the first input value and a largest value corresponding to an image component of an input image data block, 2) shifting the first input value based on the offset value to produce a shifted input image data block, and 3) compressing the shifted input image data block to produce the compressed data block,

obtain the first output value of the first image component based on the base value,

decompress the first compressed difference value using a value of a quantization table closest to a difference value that, when compressed, is equal to the first compressed difference value,

obtain the second output value of the second image component by adding the first decompressed difference value to the first output value, and

generate the output image data block comprising the first output value of the first image component and the second output value of the second image component.

2. The display headset of claim 1 , further comprising:

a position sensor for detecting a movement of the display headset, wherein the compressed data block is generated based on the movement detected by the position sensor.

3. The display headset of claim 1 , wherein the output image data block further comprises a third output value of a third image component and a fourth output value of a fourth image component, wherein the compressed data block further comprises a second compressed difference value corresponding to the third image component and a third compressed difference value corresponding to the fourth image component.

4. The display headset of claim 3 , wherein the decompression engine is further configured to:

decompress the second compressed difference value based on another quantization table different from the quantization table, and

decompress the third compressed difference value based on the quantization table.

5. The display headset of claim 4 , wherein the decompression engine is further configured to:

obtain the third output value of the third image component by adding the second decompressed difference value to the first output value, and

obtain the fourth output value of the fourth image component by adding the third decompressed difference value to the first output value.

6. The display headset of claim 3 , wherein the first image component is a red sub-pixel, the second image component is a first green sub-pixel, the third image component is a blue sub-pixel, and the fourth image component is a second green sub-pixel.

7. The display headset of claim 6 , wherein the second output value and the fourth output value are identical.

8. The display headset of claim 3 , wherein the decompression engine is configured to obtain the first output value by:

decompressing the base value into the first output value, the first output value and the first decompressed difference value obtained using different decompression processes.

9. A system comprising:

a console configured to:

generate an input image, the input image comprising an input image data block, the input image data block comprising a first input value of a first image component and a second input value of a second image component, and

compress the input image data block into a compressed data block by:

computing a base value and a first compressed difference value representative of the first input value and the second input value;

obtaining an offset value based on the first input value and a largest value corresponding to an image component of the input image data block;

shifting the first input value based on the offset value to produce a shifted input image data block; and

compressing the shifted input image data block to produce the compressed data block; and

a display headset comprising:

a decompression engine, the decompression engine configured to:

receive the compressed data block,

obtain a first output value of the first image component based on the base value,

decompress the first compressed difference value using a value of a quantization table closest to a difference value that, when compressed, is equal to the first compressed difference value,

obtain a second output value of the second image component by adding the first decompressed difference value to the first output value, and

generate an output image data block comprising the first output value of the first image component and the second output value of the second image component, and

an electronic display coupled to the decompression engine, the electronic display including pixels configured to display an output image according to the output image data block from the decompression engine.

10. The system of claim 9 , wherein the display headset further comprises:

a position sensor for detecting a movement of the display headset, wherein the console is further configured to generate the input image based on the movement detected by the position sensor.

11. The system of claim 9 , wherein the output image data block further comprises a third output value of a third image component and a fourth output value of a fourth image component, wherein the compressed data block further comprises a second compressed difference value corresponding to the third image component and a third compressed difference value corresponding to the fourth image component.

12. The system of claim 11 , wherein the first image component is a red sub-pixel, the second image component is a first green sub-pixel, the third image component is a blue sub-pixel, and the fourth image component is a second green sub-pixel.

13. The system of claim 12 , wherein the second output value and the fourth output value are identical.

14. The system of claim 9 , wherein the console compresses the input image data block by:

obtaining a first difference value, the first difference value being a difference between the first input value of the first image component and the second input value of the second image component;

obtaining the base value based on the value of the first image component;

compressing the first difference value into the first compressed difference value based on the quantization table; and

generating the compressed data block comprising the base value and the first compressed difference value.

15. The system of claim 14 , wherein the console compresses the first difference value into the first compressed difference value based on the quantization table by:

identifying a first representable difference value from a set of values in the quantization table closest to the first difference value;

replacing the first difference value with the first representable difference value, the first representable difference value having a fewer number of bits than the first difference value; and

compressing the first representable difference value into the first compressed difference value.

16. The system of claim 9 , wherein the input image data block further comprises a third input value of a third image component and a fourth input value of a fourth image component, wherein the compressed data block further comprises a second compressed difference value corresponding to the third image component and a third compressed difference value corresponding to the fourth image component.

17. The system of claim 16 , wherein the console compresses the input image data block by:

obtaining a first difference value, the first difference value being a difference between the shifted first input value and the second input value;

obtaining a second difference value, the second difference value being a difference between the shifted first input value and the third input value; and

obtaining a third difference value, the third difference value being a difference between the shifted first input value and the fourth input value.

18. The system of claim 17 , wherein the console compresses the input image data block by:

obtaining the base value according to the shifted first input value;

compressing the first difference value into the first compressed difference value based on the quantization table;

compressing the second difference value into the second compressed difference value based on another quantization table;

compressing the third difference value into the third compressed difference value based on the quantization table; and

generating the compressed data block comprising the base value, the first compressed difference value, the second compressed difference value and the third compressed difference value.

19. An integrated circuit decoder configured to:

receive a compressed image data block comprising a base value corresponding to a first image component and a first compressed difference value corresponding to a second image component and representative of a first input value and a second input value, wherein the compressed image data block is compressed by 1) obtaining an offset value based on the first input value and a largest value corresponding to an image component of an input image data block, 2) shifting the first input value based on the offset value to produce a shifted input image data block, and 3) compressing the shifted input image data block to produce the compressed image data block;

generate a first output value corresponding to the first image component based on the base value;

decompress the first compressed difference value using a value of a quantization table closest to a difference value that, when compressed, is equal to the first compressed difference value to obtain a decompressed difference value;

generate a second output value corresponding to the second image component by adding the decompressed difference value to the first output value;

generate an output image data block comprising the first output value of the first image component and the second output value of the second image component; and

provide the output image data block to a display including pixels and configured to display an output image based on the output image data block.

20. The integrated circuit decoder of claim 19 , wherein the display comprises a wearable display headset.

21. A method comprising:

receiving a compressed image data block comprising a base value corresponding to a first image component and a first compressed difference value corresponding to a second image component and representative of a first input value and a second input value, wherein the compressed image data block is compressed by 1) obtaining an offset value based on the first input value and a largest value corresponding to an image component of an input image data block, 2) shifting the first input value based on the offset value to produce a shifted input image data block, and 3) compressing the shifted input image data block to produce the compressed image data block;

generating a first output value corresponding to the first image component based on the base value;

decompressing the first compressed difference value using a value of a quantization table closest to a difference value that, when compressed, is equal to the first compressed difference value to obtain a decompressed difference value;

generating a second output value corresponding to the second image component by adding the decompressed difference value to the first output value;

generating an output image data block comprising the first output value of the first image component and the second output value of the second image component; and

providing the output image data block to a display including pixels and configured to display an output image based on the output image data block.

Assignments (5)
CHANGE OF NAME Recorded Jun 8, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060315/0224 →
CHANGE OF NAME Recorded Sep 12, 2018
From: OCULUS VR, LLC
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 047178/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2017
From: FORSYTH, ANDREW T.
To: FACEBOOK, INC.
Reel/Frame 043868/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2017
From: BAINBRIDGE, LYLE DAVID
To: OCULUS VR, LLC
Reel/Frame 043869/0264 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2017
From: FACEBOOK, INC.
To: OCULUS VR, LLC
Reel/Frame 043869/0969 →
Continuity (2)
Provisional Application 62258417 · Nov 20, 2015
Related Publication 20170150147A1 · May 25, 2017