IP Library Granted Patent US 11,100,889
Granted Patent B2
US 11,100,889 · App. 16/289,260 · Granted Aug 24, 2021

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

Inventors: Keith Lee (Markham, CA); David I. J. Glen (Toronto, CA); Jie Zhou (Richmond Hill, 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 11,100,889
App. No.
16/289,260
Granted
Aug 24, 2021
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 (61)

1. A system comprising:

a memory storing one or more lookup tables; and

a display controller configured to:

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

access the one or more lookup tables to find mappings for vertices of a geometric shape, wherein the geometric shape bounds pixel components of the first source pixel in a three dimensional (3D) representation of a pixel component space;

retrieve, from the one or more lookup tables, three corresponding vertex mappings of the geometric shape and a mapping of an interior point bound within the 3D representation of the pixel component space by the geometric shape;

perform interpolation with the interior point mapping and three corresponding vertex mappings of the geometric shape to 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.

2. The system as recited in claim 1 , wherein the geometric shape is a sub-cube and the interior point is a centroid of the sub-cube, wherein the display controller is configured to retrieve the centroid mapping and perform the interpolation responsive to determining that the sub-cube has a corresponding centroid stored in the one or more lookup tables.

3. The system as recited in claim 2 , wherein the sub-cube having a corresponding centroid stored in the one or more lookup tables indicates that the sub-cube has an interpolation error greater than a threshold.

4. The system as recited in claim 1 , wherein the display controller is further configured to:

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

access the one or more lookup tables to find mappings for vertices of a sub-cube;

responsive to determining that the sub-cube does not have a corresponding centroid mapping stored in the one or more lookup tables:

retrieve four corresponding vertex mappings of the sub-cube from the one or more lookup tables; and

perform interpolation with the four corresponding vertex mappings of the sub-cube to convert the second source pixel to the target pixel in the second gamut.

5. The system as recited in claim 4 , wherein the sub-cube not having a corresponding centroid mapping stored in the one or more lookup tables indicates that the sub-cube has an interpolation error less than or equal to a threshold.

6. The system as recited in claim 1 , wherein the display controller is configured to perform tetrahedral interpolation with the interior point mapping and the three corresponding vertex mappings of the geometric shape to convert the first source pixel to the target pixel in the second gamut.

7. The system as recited in claim 1 , further comprising a processing unit, wherein the processing unit is configured to:

calculate a measure of an interpolation error for each sub-cube of a plurality of sub-cubes of a grid within the 3D representation of the pixel component space;

generate a mapping from the first gamut to the second gamut at a centroid of each sub-cube which has an interpolation error greater than a threshold; and

store mappings of centroids in the one or more lookup tables.

8. A method comprising:

receiving, by a display controller, a first source pixel from a source image, wherein the source image is represented in a first gamut;

accessing one or more lookup tables to find mappings for vertices of a geometric shape, wherein the geometric shape bounds pixel components of the first source pixel in a three dimensional (3D) representation of a pixel component space;

retrieving, from the one or more lookup tables, three corresponding vertex mappings of the geometric shape and a mapping of an interior point bound within the 3D representation of the pixel component space by the geometric shape;

performing interpolation with the interior point mapping and the three corresponding vertex mappings of the geometric shape to convert the first source pixel to a target pixel in a second gamut, wherein the second gamut is different from the first gamut; and

providing the target pixel to a display.

9. The method as recited in claim 8 , wherein the geometric shape is a sub-cube and the interior point is a centroid of the sub-cube, wherein the method further comprising retrieving the centroid mapping and performing the interpolation responsive to determining that the sub-cube has a corresponding centroid stored in the one or more lookup tables.

10. The method as recited in claim 9 , wherein the sub-cube having a corresponding centroid stored in the one or more lookup tables indicates that the sub-cube has an interpolation error greater than a threshold.

11. The method as recited in claim 9 , further comprising:

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

accessing the one or more lookup tables to find mappings for vertices of a sub-cube;

responsive to determining that the sub-cube does not have a corresponding centroid mapping stored in the one or more lookup tables:

retrieving four corresponding vertex mappings of the sub-cube from the one or more lookup tables; and

performing interpolation with the four corresponding vertex mappings of the sub-cube to convert the second source pixel to the target pixel in the second gamut.

12. The method as recited in claim 11 , wherein the sub-cube not having a corresponding centroid mapping stored in the one or more lookup tables indicates that the second sub-cube has an interpolation error less than or equal to a threshold.

13. The method as recited in claim 8 , further comprising performing tetrahedral interpolation with the interior point mapping and the three corresponding vertex mappings of the geometric shape to convert the first source pixel to the target pixel in the second gamut.

14. The method as recited in claim 8 , further comprising:

calculating a measure of an interpolation error for each sub-cube of a plurality of sub-cubes of a grid within the 3D representation of the pixel component space;

generating a mapping from the first gamut to the second gamut at a centroid of each sub-cube which has an interpolation error greater than a threshold; and

storing mappings of centroids in the one or more lookup tables.

15. A processing unit comprising:

a memory; and

control logic coupled to the memory;

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;

access one or more lookup tables to find mappings for vertices of a geometric shape, wherein the geometric shape bounds pixel components of the first source pixel in a three dimensional (3D) representation of a pixel component space;

retrieve, from the one or more lookup tables, three corresponding vertex mappings of the geometric shape and a mapping of an interior point bound within the 3D representation of the pixel component space by the geometric shape;

perform interpolation with the interior point mapping and three corresponding vertex mappings of the geometric shape to 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 processing unit as recited in claim 15 , wherein the geometric shape is a sub-cube and the interior point is a centroid of the sub-cube, wherein the processing unit is configured to retrieve the centroid mapping and perform the interpolation responsive to determining that the sub-cube has a corresponding centroid stored in the one or more lookup tables.

17. The processing unit as recited in claim 16 , wherein the sub-cube having a corresponding centroid stored in the one or more lookup tables indicates that the sub-cube has an interpolation error greater than a threshold.

18. The processing unit as recited in claim 16 , wherein the processing unit is further configured to:

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

access the one or more lookup tables to find mappings for vertices of a sub-cube;

responsive to determining that the sub-cube does not have a corresponding centroid mapping stored in the one or more lookup tables:

retrieve four corresponding vertex mappings of the sub-cube from the one or more lookup tables; and

perform interpolation with the four corresponding vertex mappings of the sub-cube to convert the second source pixel to the target pixel in the second gamut.

19. The processing unit as recited in claim 18 , wherein the sub-cube not having a corresponding centroid mapping stored in the one or more lookup tables indicates that the sub-cube has an interpolation error less than or equal to a threshold.

20. The processing unit as recited in claim 15 , wherein the processing unit is configured to perform tetrahedral interpolation with the interior point mapping and the three corresponding vertex mappings of the geometric shape to convert the first source pixel to the target pixel in the second gamut.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2019
From: LEE, KEITH; GLEN, DAVID I. J.; ZHOU, JIE; CHEN, YUXIN
To: ATI TECHNOLOGIES ULC
Reel/Frame 048611/0657 →
Continuity (1)
Related Publication 20200279538A1 · Sep 3, 2020
Cited By (3)
US 12,190,847 US 12,387,290 US 12,579,922