IP Library Granted Patent US 12,183,043
Granted Patent B2
US 12,183,043 · App. 18/182,029 · Granted Dec 31, 2024

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 12,183,043
App. No.
18/182,029
Granted
Dec 31, 2024
Kind
B2
Abstract

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 (66)

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 fully transparent or 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;

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

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.

2. The method of claim 1 , wherein the first pixels have three color components, and wherein 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 second pixels in a second pixel region of the image.

5. The method of claim 1 , further comprising:

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; and

selecting a second alpha-encoding mode for the second alpha values to reflect a determination that the second alpha values have a uniform partial-transparency level between fully transparent and fully opaque.

6. The method of claim 5 , further comprising:

encoding the second alpha values by storing at least the selected second alpha-encoding mode and the uniform partial-transparency level as part of a metadata associated with the second pixel region without using the bit budget to encode the second alpha values; and

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

7. The method of claim 1 , further comprising:

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 at most two partial-transparency levels; and

encoding the second alpha values.

8. The method of claim 7 , further comprising encoding the second alpha values by:

storing, as part of a metadata associated with the second pixel region, at least (1) the selected second alpha-encoding mode, (2) the two partial-transparency levels, and (3) an encoding-precision value indicating that one bit is allocated for encoding each of the second alpha values; and

quantizing each of the second alpha values to either of the two partial-transparency levels using a one-bit index.

9. The method of claim 8 , further comprising:

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

10. 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 fully transparent or 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;

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, one or more bits to encode a set of alpha values different from the first alpha values.

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

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

13. The system of claim 10 , wherein the instructions further comprise instructions to:

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; and

select a second alpha-encoding mode for the second alpha values to reflect a determination that the second alpha values have a uniform partial-transparency level between fully transparent and fully opaque.

14. The system of claim 13 , wherein the instructions further comprise instructions to:

encode the second alpha values by storing at least the selected second alpha-encoding mode and the uniform partial-transparency level as part of a metadata associated with the second pixel region without using the bit budget to encode the second alpha values; and

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

15. The system of claim 10 , wherein the instructions further comprise instructions to:

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 at most two partial-transparency levels; and

encode the second alpha values.

16. The system of claim 15 , wherein the instructions further comprise instructions to encode the second alpha values by:

storing, as part of a metadata associated with the second pixel region, at least (1) the selected second alpha-encoding mode, (2) the two partial-transparency levels, and (3) an encoding-precision value indicating that one bit is allocated for encoding each of the second alpha values; and

quantizing each of the second alpha values to either of the two partial-transparency levels using a one-bit index.

17. The system of claim 16 , wherein the instructions further comprise instructions to:

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

18. 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 fully transparent or 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;

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, one or more bits to encode a set of alpha values different from the first alpha values.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions further comprise instructions to:

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; and

select a second alpha-encoding mode for the second alpha values to reflect a determination that the second alpha values have a uniform partial-transparency level between fully transparent and fully opaque.

20. The non-transitory computer-readable medium of claim 18 , wherein the instructions further comprise instructions to:

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 at most two partial-transparency levels; and

encode the second alpha values.

Assignments (2)
CHANGE OF NAME Recorded Sep 1, 2023
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 064803/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2023
From: CHANG, CHENG; ZHOU, ZHI; WEBB, RICHARD; GREENE, RICHARD LAWRENCE
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 063216/0280 →
Continuity (2)
Continuation 17003575 · Aug 26, 2020
Related Publication 20230215054A1 · Jul 6, 2023