IP Library Granted Patent US 12,190,847
Granted Patent B2
US 12,190,847 · App. 17/407,981 · Granted Jan 7, 2025

Reducing 3D lookup table interpolation error while minimizing on-chip storage

Inventors: Keith Lee (Markham, CA); David I. J. Glen (Toronto, CA); Jie Zhou (Markham, CA); Yuxin Chen (Markham, CA)
Assignee: ATI Technologies ULC
G09G5/06G09G2320/0666
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,190,847
App. No.
17/407,981
Granted
Jan 7, 2025
Kind
B2
Abstract

Systems, apparatuses, and methods for reducing three dimensional (3D) lookup table (LUT) interpolation error while minimizing on-chip storage are disclosed. A processor generates a plurality of mappings from a first gamut to a second gamut at locations interspersed throughout a 3D representation of the pixel component space. For example, in one implementation, the processor calculates mappings for 17×17×17 vertices within the 3D representation. Other implementations can include other numbers of vertices. Rather than increasing the number of vertices to reduce interpolation error, the processor calculates mappings for centroids of the sub-cubes defined by the vertices within the 3D representation of the first gamut. This results in a smaller increase to the LUT size as compared to increasing the number of vertices. The centroid mappings are used for performing tetrahedral interpolation to map source pixels in the first gamut into the second gamut with a reduced amount of interpolation error.

Claims (50)

1. A method comprising:

partitioning a three dimensional (3D) representation of a gamut mapping space into a plurality of sub-cubes;

calculating centroid mappings for N sub-cubes of the plurality of sub-cubes, in response to determining that the N sub-cubes have an interpolation error that exceeds a threshold, wherein a centroid mapping for a given sub-cube corresponds to a geometric center of the given sub-cube; and

providing a target pixel to a display, based at least in part on the centroid mappings.

2. The method of claim 1 , comprising:

receiving a first source pixel from a source image, wherein the source image is represented in a first gamut; and

converting the first source pixel to the target pixel in a second gamut, wherein the second gamut is different from the first gamut.

3. The method of claim 2 , comprising storing the centroid mappings in a table.

4. The method as recited in claim 3 , accessing the table to find mappings for vertices of a geometric shape that bounds pixel components of the first source pixel in a 3D representation of a pixel component space.

5. The method as recited in claim 4 , comprising:

in response to determining an interior point of the geometric shape is stored in the table, retrieving mappings of the interior point and three corresponding vertices of the geometric shape from the table;

in response to determining an interior point of the geometric shape is not stored in the table, retrieving mappings of four corresponding vertices of the geometric shape from the table; and

performing interpolation on mappings retrieved from the table to convert the first source pixel to the target pixel.

6. The method as recited in claim 5 , wherein the interpolation is tetrahedral interpolation.

7. The method as recited in claim 1 , comprising:

using a first resolution setting for a number of mapping points when calculating the centroid mappings, in response to determining the interpolation error is greater than a first threshold; and

using a second resolution setting for a number of mapping points when calculating the centroid mappings, in response to determining the interpolation error is not greater than the first threshold, wherein the second resolution setting is lower than the first resolution setting.

8. An apparatus comprising:

a processing unit comprising circuitry configured to:

partition a three dimensional (3D) representation of a gamut mapping space into a plurality of sub-cubes;

calculate centroid mappings for N sub-cubes of the plurality of sub-cubes, in response to determining that the N sub-cubes have an interpolation error that exceeds a threshold, wherein a centroid mapping for a given sub-cube corresponds to a geometric center of the given sub-cube; and

provide a target pixel to a display, based at least in part on the centroid mappings.

9. The apparatus of claim 8 , wherein the processing unit is configured to:

receive a first source pixel from a source image, wherein the source image is represented in a first gamut; and

convert the first source pixel to the target pixel in a second gamut, wherein the second gamut is different from the first gamut.

10. The apparatus of claim 9 , wherein the processing unit is configured to store the centroid mappings in a table.

11. The apparatus as recited in claim 10 , wherein the processing unit is configured to access the table to find mappings for vertices of a geometric shape that bounds pixel components of the first source pixel in a 3D representation of a pixel component space.

12. The apparatus as recited in claim 11 , wherein the processing unit is configured to:

in response to a determination that an interior point of the geometric shape is stored in the table, retrieve mappings of the interior point and three corresponding vertices of the geometric shape from the table;

in response to a determination that an interior point of the geometric shape is not stored in the table, retrieve mappings of four corresponding vertices of the geometric shape from the table; and

perform interpolation on values retrieved from the table to convert the first source pixel to the target pixel.

13. The apparatus as recited in claim 12 , wherein the interpolation is tetrahedral interpolation.

14. The apparatus as recited in claim 8 , wherein the processing unit is configured to:

use a first resolution setting for a number of mapping points when calculating the centroid mappings, in response to determining the interpolation error is greater than a first threshold; and

use a second resolution setting for a number of mapping points when calculating the centroid mappings, in response to determining the interpolation error is not greater than the first threshold, wherein the second resolution setting is lower than the first resolution setting.

15. A system comprising:

a processor comprising circuitry configured to calculate centroid mappings for N sub-cubes corresponding to a three dimensional (3D) representation of a gamut mapping space, wherein a centroid mapping for a given sub-cube corresponds to a geometric center of the given sub-cube; and

a display controller comprising circuitry configured to:

receive a first source pixel from a source image, wherein the source image is represented in a first gamut;

identify vertices of a geometric shape that bounds pixel components of the first source pixel in a 3D representation of a pixel component space;

convert the first source pixel to a target pixel in a second gamut, wherein the second gamut is different from the first gamut; and

provide the target pixel to a display.

16. The system as recited in claim 15 , wherein the processor is configured to access the centroid mappings to identify vertices of a geometric shape that bounds pixel components of the first source pixel in a 3D representation of a pixel component space.

17. The system as recited in claim 16 , wherein the processor is configured to partition a three dimensional (3D) representation of the gamut mapping space into a plurality of sub-cubes.

18. The system as recited in claim 17 , wherein the display controller comprises a table configured to store the mappings.

19. The system as recited in claim 18 , wherein the display controller is configured to perform interpolation on mappings retrieved from the table to generate the target pixel.

20. The system as recited in claim 19 , wherein the display controller is configured to:

in response to determining an interior point of the geometric shape is stored in the table, retrieve mappings of the interior point and three corresponding vertices of the geometric shape from the table;

in response to determining an interior point of the geometric shape is not stored in the table, retrieve mappings of four corresponding vertices of the geometric shape from the table; and

perform interpolation on values retrieved from the table to convert the first source pixel to the target pixel.

Continuity (2)
Continuation 16289260 · Feb 28, 2019
Related Publication 20210383772A1 · Dec 9, 2021
References Cited (18)
US 10152772B2 · Fainstain · 2018 [cited by applicant]
US 10992938B2 · Saeedi et al. · 2021 [cited by applicant]
US 11100889B2 · Lee et al. · 2021 [cited by applicant]
US 20040096104A1 · Terekhov · 2004 [cited by examiner]
US 20050047504A1 · Sung et al. · 2005 [cited by applicant]
US 20070041026A1 · Tin · 2007 [cited by applicant]
US 20070046691A1 · Presley et al. · 2007 [cited by applicant]
US 20100128976A1 · Stauder et al. · 2010 [cited by applicant]
US 20140269919A1 · Rodriguez · 2014 [cited by applicant]
US 20140376624A1 · Li et al. · 2014 [cited by applicant]
US 20150055706A1 · Xu et al. · 2015 [cited by applicant]
US 20150256850A1 · Kottke et al. · 2015 [cited by applicant]
US 20170236306A1 · Kuchnio · 2017 [cited by examiner]
US 20180109804A1 · Saeedi · 2018 [cited by applicant]
US 20190027082A1 · Van Belle · 2019 [cited by examiner]
US 20190045210A1 · Guermazi et al. · 2019 [cited by applicant]
“Co-occurrence matrix”, Wikipedia.org, Sep. 7, 2016, 2 pages, https://en.wikipedia.org/wiki/Co-occurrence_matrix. [Retrieved Jul. 31, 2018]. [cited by applicant]
International Search Report and Written Opinion in International Application No. PCT/IB2019/057945, mailed Dec. 9, 2019, 8 pages. [cited by applicant]