IP Library Granted Patent US 11,670,009
Granted Patent B2
US 11,670,009 · App. 17/003,575 · Granted Jun 6, 2023

Rate controlled image and texture data compression

Inventors: Cheng Chang (Redmond, WA); Zhi Zhou (Issaquah, WA); Richard Webb (Sammamish, WA); Richard Lawrence Greene (Kirkland, WA)
Assignee: Meta Platforms Technologies, LLC
G06T9/00G06T1/60H04N19/115H04N19/146H04N19/157H04N19/184
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,670,009
App. No.
17/003,575
Granted
Jun 6, 2023
Kind
B2
Abstract

In one embodiment, a computing system may access first alpha values associated with first pixels in a first pixel region of an image and determine a bit budget for encoding the first alpha values. The computing system may then select a first alpha-encoding mode for the first alpha values to reflect a determination that the first alpha values are all fully transparent or all fully opaque, and encode the first alpha values by storing the selected first alpha-encoding mode as part of a metadata without using the bit budget to encode the first alpha values individually. The computing system may then update a record of unallocated bits available for allocation based on the bit budget unused in the encoding of the first alpha values, and allocate, based on the record of unallocated bits, bits to encode a set of alpha values different from the first alpha values.

Claims (52)

1. A method implemented by a computing system, the method comprising:

accessing first alpha values associated with first pixels in a first pixel region of an image;

determining a bit budget for encoding the first alpha values;

selecting a first alpha-encoding mode for the first alpha values to reflect a determination that the first alpha values are all fully transparent or all fully opaque;

encoding the first alpha values by storing the selected first alpha-encoding mode as part of a metadata associated with the first pixel region without using the bit budget to encode the first alpha values individually;

updating a record of unallocated bits available for allocation based on the bit budget unused in the encoding of the first alpha values;

allocating, based on the record of unallocated bits, one or more bits to encode a set of alpha values different from the first alpha values;

accessing second alpha values associated with second pixels in a second pixel region of the image, wherein the bit budget is further determined for encoding the second alpha values;

selecting a second alpha-encoding mode for the second alpha values to reflect a determination that the second alpha values have one or two partial-transparency levels;

encoding the second alpha values by storing, as part of a metadata associated with the second pixel region, at least the selected second alpha-encoding mode and the one or two partial-transparency levels; and

updating the record of unallocated bits available for allocation based on the bit budget unused in the encoding of the second alpha values.

2. The method of claim 1 , wherein the first pixels have three color components, and the first alpha values are associated with one or more color components of the three color components.

3. The method of claim 2 , wherein the set of alpha values are associated with one or more other color components of the three color components.

4. The method of claim 1 , wherein the set of alpha values are associated with the second pixels in the second pixel region of the image.

5. The method of claim 1 , wherein the second alpha values have one partial-transparency level, and wherein encoding the second alpha values further comprises storing, as part of the metadata associated with the second pixel region, the one partial-transparency level without using the bit budget to encode the second alpha values individually.

6. The method of claim 5 , wherein the metadata associated with the second pixel region includes an encoding-precision value indicating that no bit is allocated for individually encoding each of the second alpha values.

7. The method of claim 1 , wherein the second alpha values have two partial-transparency levels, and wherein encoding the second alpha values further comprises (1) storing, as part of the metadata associated with the second pixel region, the two partial-transparency levels and an encoding-precision value indicating that one bit is allocated for individually encoding each of the second alpha values and (2) quantizing each of the second alpha values to either of the two partial-transparency levels using a one-bit index.

8. A system comprising:

one or more non-transitory computer-readable storage media including instructions; and

one or more processors coupled to the storage media, the one or more processors configured to execute the instructions to:

access first alpha values associated with first pixels in a first pixel region of an image;

determine a bit budget for encoding the first alpha values;

select a first alpha-encoding mode for the first alpha values to reflect a determination that the first alpha values are all fully transparent or all fully opaque;

encode the first alpha values by storing the selected first alpha-encoding mode as part of a metadata associated with the first pixel region without using the bit budget to encode the first alpha values individually;

update a record of unallocated bits available for allocation based on the bit budget unused in the encoding of the first alpha values;

allocate, based on the record of unallocated bits, one or more bits to encode a set of alpha values different from the first alpha values

access second alpha values associated with second pixels in a second pixel region of the image, wherein the bit budget is further determined for encoding the second alpha values;

select a second alpha-encoding mode for the second alpha values to reflect a determination that the second alpha values have one or two partial-transparency levels;

encode the second alpha values by storing, as part of a metadata associated with the second pixel region, at least the selected second alpha-encoding mode and the one or two partial-transparency levels; and

update the record of unallocated bits available for allocation based on the bit budget unused in the encoding of the second alpha values.

9. The system of claim 8 , wherein the first pixels have three color components, and the first alpha values are associated with one or more color components of the three color components.

10. The system of claim 9 , wherein the set of alpha values are associated with one or more other color components of the three color components.

11. The system of claim 8 , wherein the set of alpha values are associated with the second pixels in the second pixel region of the image.

12. The system of claim 8 , wherein the second alpha values have one partial-transparency level, and wherein encoding the second alpha values further comprises storing, as part of the metadata associated with the second pixel region, the one partial-transparency level without using the bit budget to encode the second alpha values individually.

13. The system of claim 12 , wherein the metadata associated with the second pixel region includes an encoding-precision value indicating that no bit is allocated for individually encoding each of the second alpha values.

14. The system of claim 8 , wherein the second alpha values have two partial-transparency levels, and wherein encoding the second alpha values further comprises (1) storing, as part of the metadata associated with the second pixel region, the two partial-transparency levels and an encoding-precision value indicating that one bit is allocated for individually encoding each of the second alpha values and (2) quantizing each of the second alpha values to either of the two partial-transparency levels using a one-bit index.

15. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors of a computing system, cause the one or more processors to:

access first alpha values associated with first pixels in a first pixel region of an image;

determine a bit budget for encoding the first alpha values;

select a first alpha-encoding mode for the first alpha values to reflect a determination that the first alpha values are all fully transparent or all fully opaque;

encode the first alpha values by storing the selected first alpha-encoding mode as part of a metadata associated with the first pixel region without using the bit budget to encode the first alpha values individually;

update a record of unallocated bits available for allocation based on the bit budget unused in the encoding of the first alpha values;

allocate, based on the record of unallocated bits, one or more bits to encode a set of alpha values different from the first alpha values

access second alpha values associated with second pixels in a second pixel region of the image, wherein the bit budget is further determined for encoding the second alpha values;

select a second alpha-encoding mode for the second alpha values to reflect a determination that the second alpha values have one or two partial-transparency levels;

encode the second alpha values by storing, as part of a metadata associated with the second pixel region, at least the selected second alpha-encoding mode and the one or two partial-transparency levels; and

update the record of unallocated bits available for allocation based on the bit budget unused in the encoding of the second alpha values.

16. The non-transitory computer-readable medium of claim 15 , wherein the first pixels have three color components, and the first alpha values are associated with one or more color components of the three color components.

17. The non-transitory computer-readable medium of claim 16 , wherein the set of alpha values are associated with one or more other color components of the three color components.

18. The non-transitory computer-readable medium of claim 15 , wherein the set of alpha values are associated with the second pixels in the second pixel region of the image.

19. The non-transitory computer-readable medium of claim 15 , wherein the second alpha values have one partial-transparency level, and wherein encoding the second alpha values further comprises storing, as part of the metadata associated with the second pixel region, the one partial-transparency level without using the bit budget to encode the second alpha values individually.

20. The non-transitory computer-readable medium of claim 15 , wherein the second alpha values have two partial-transparency levels, and wherein encoding the second alpha values further comprises (1) storing, as part of the metadata associated with the second pixel region, the two partial-transparency levels and an encoding-precision value indicating that one bit is allocated for individually encoding each of the second alpha values and (2) quantizing each of the second alpha values to either of the two partial-transparency levels using a one-bit index.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2020
From: CHANG, CHENG; ZHOU, ZHI; WEBB, RICHARD; GREENE, RICHARD LAWRENCE
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 054381/0742 →