IP Library Granted Patent US 11,481,929
Granted Patent B2
US 11,481,929 · App. 16/820,264 · Granted Oct 25, 2022

System and method for compressing and decompressing images using block-based compression format

Inventors: Cheng Chang (Redmond, WA); Richard Lawrence Greene (Kirkland, WA); Richard Webb (Sammamish, WA)
Assignee: Meta Platforms Technologies, LLC
G06T9/00
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,481,929
App. No.
16/820,264
Granted
Oct 25, 2022
Kind
B2
Abstract

Disclosed herein includes a system, a method, and a device for compressing image data. The device includes one or more processors, coupled to memory, configured to identify a plurality of sub-blocks of a block of image data including a first sub-block and a second sub-block. The one or more processors are configured to identify a first data characteristic of data of the first sub-block and a second data characteristic of data of the second sub-block, determine a first compression technique based at least on the first data characteristic of the first sub-block, determine a second compression technique based at least on the second data characteristic of the second sub-block, and compress the first sub-block using the first compression technique and the second sub-block using the second compression technique.

Claims (46)

1. A method for compressing image data, comprising: identifying, by a processor, a plurality of sub-blocks of a block of image data including a first sub-block and a second sub-block;

identifying, by the processor, for a first data characteristic of data of the first sub- block and a second data characteristic of data of the second sub-block, a number of bits per pixel sample, an offset of a starting endpoint representing a number of zero values in pixel samples in each sub-block, and a range of values of pixel samples within each sub-block, the range of values being determined to satisfy a cost function of a compression rate and a distortion efficiency;

determining, by the processor, a first compression technique based at least on the first data characteristic of the first sub-block;

determining, by the processor, a second compression technique, based at least on the second data characteristic of the second sub-block; and

compressing, by the processor, the first sub-block using the first compression technique and the second sub-block using the second compression technique.

2. The method according to claim 1 , wherein each of the first data characteristic and the second data characteristic further comprises at least one of an image quality, a compression rate, or a distortion efficiency.

3. The method according to claim 1 , wherein each of the first and second compression techniques is one of lossless compression, lossy compression, prediction-based compression, or no compression.

4. The method according to claim 1 , wherein

the block of image data corresponds to one of a plurality of channels, each channel being one of a color channel or an alpha channel.

5. The method according to claim 1 , wherein the offset is a non-zero value.

6. The method according to claim 4 , further comprising:

generating a plurality of first compressed blocks by compressing a plurality of first blocks, each block of the plurality of first blocks corresponding to one of the plurality of channels; and

dividing the plurality of first compressed blocks into a plurality of first data slices, each of the plurality of first data slices including a plurality of portions, each portion including compressed blocks corresponding to a respective one of the plurality of channels.

7. The method according to claim 6 , further comprising:

generating a plurality of second compressed blocks by compressing a plurality of second blocks, each block of the plurality of second blocks corresponding to one of the plurality of channels; and

dividing the plurality of second compressed blocks into a plurality of second data slices, each of the plurality of second data slices including a plurality of portions, each portion including compressed blocks corresponding to a respective one of the plurality of channels,

wherein the plurality of first blocks have a first multum in parvo (MIP) level different from a second MIP level of the plurality of second blocks.

8. The method according to claim 6 , further comprising:

generating, based on the plurality of first data slices, an indirection table indicating address information of compressed blocks in the plurality of data slices.

9. A device for compressing image data, comprising:

one or more processors, coupled to memory and configured to identify a plurality of sub- blocks of a block of image data including a first sub-block and a second sub-block;

identify, for a first data characteristic of data of the first sub-block and a second data characteristic of data of the second sub-block, a number of bits per pixel sample, an offset of a starting endpoint representing a number of zero values in pixel samples in each sub- block, and a range of values of pixel samples within each sub-block, the range of values being determined to satisfy a cost function of a compression rate and a distortion efficiency;

determine a first compression technique based at least on the first data characteristic of the first sub-block;

determine a second compression technique based at least on the second data characteristic of the second sub-block; and

compress the first sub-block using the first compression technique and the second sub- block using the second compression technique.

10. The device according to claim 9 , wherein each of the first data characteristic and the second data characteristic further comprises at least one of an image quality, a compression rate, or a distortion efficiency.

11. The device according to claim 9 , wherein each of the first and second compression techniques is one of lossless compression, lossy compression, prediction-based compression, or no compression.

12. The device according to claim 9 , wherein

the block of image data corresponds to one of a plurality of channels, each channel being one of a color channel or an alpha channel.

13. The device according to claim 9 , wherein the offset is a non-zero value.

14. The device according to claim 12 , wherein the processor is further configured to:

generate a plurality of first compressed blocks by compressing a plurality of first blocks, each block of the plurality of first blocks corresponding to one of the plurality of channels; and

divide the plurality of first compressed blocks into a plurality of first data slices, each of the plurality of first data slices including a plurality of portions, each portion including compressed blocks corresponding to a respective one of the plurality of channels.

15. The device according to claim 14 , wherein the processor is further configured to:

generate a plurality of second compressed blocks by compressing a plurality of second blocks, each block of the plurality of second blocks corresponding to one of the plurality of channels; and

divide the plurality of second compressed blocks into a plurality of second data slices, each of the plurality of second data slices including a plurality of portions, each portion including compressed blocks corresponding to a respective one of the plurality of channels,

wherein the plurality of first blocks have a first multum in parvo (MIP) level different from a second MIP level of the plurality of second blocks.

16. The device according to claim 15 , wherein the processor is further configured to:

generate, based on the plurality of first data slices, an indirection table indicating address information of compressed blocks in the plurality of data slices.

17. A non-transitory computer readable medium storing program instructions for causing one or more processors to:

identify a plurality of sub-blocks of a block of image data including a first sub- block and a second sub-block;

identify, for a first data characteristic of data of the first sub-block and a second data characteristic of data of the second sub-block, a number of bits per pixel sample, an offset of a starting endpoint representing a number of zero values in pixel samples in each sub-block, and a range of values of pixel samples within each sub-block, the range of values being determined to satisfy a cost function of a compression rate and a distortion efficiency;

determine a first compression technique based at least on the first data characteristic of the first sub-block;

determine a second compression technique based at least on the second data characteristic of the second sub-block; and

compress the first sub-block using the first compression technique and the second sub- block using the second compression technique.

18. The non-transitory computer readable medium according to claim 17 , wherein each of the first data characteristic and the second data characteristic further comprises at least one of an image quality, a compression rate, or a distortion efficiency.

Assignments (2)
CHANGE OF NAME Recorded Jul 22, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060816/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2020
From: CHANG, CHENG; GREENE, RICHARD LAWRENCE; WEBB, RICHARD
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 052155/0757 →
Cited By (2)
US 12,500,605 US 12,621,457