A color transformation is needed for various use—cases such as, but not limited to, a Display Gamma adjustment, a Gamut mapping, a Color correction, and the like. The color transformation is often complex and has nonlinear behavior, for example, of digital color devices that may require a significant amount of memory and computational power in order to process large images in real-time. To reduce computational cost, the complex functions typically uses pre-computed multidimensional lookup tables (LUTs).
Conventionally, the LUT is essentially a rectangular grid or lattice that spans an input color space of a transform. Output values corresponding to each node, i.e., intersection points, of the grid are pre-computed and stored in the LUT. Input colors are then processed through the LUT by first retrieving the cell to which the input color belongs, and then performing an interpolation among a subset of the surrounding cell vertices to compute the output color value.
The LUT may be stored inside a graphics processing unit's hardware (HW) registers in order to achieve fastest processing. Hence, a LUT size may be critical to minimize silicon area of a semiconductor chip.