Gamma correction, also known as gamma compression or encoding, is used to encode linear luminance or RGB values to match the non-linear characteristics of display devices. Gamma correction helps to map data into a more perceptually uniform domain, so as to optimize perceptual performance of a limited signal range, such as a limited number of bits in each RGB component.
Gamma correction is, in the simplest cases, defined by This Equation
where the input and output values are between 0 and 1 ( This Figure ). The case γ <1 is often called gamma compression and γ >1 is called gamma expansion.
When used in conjunction with an embedded or external processor, the Gamma LUT core supports frame-by-frame dynamic reprogramming of the gamma tables. The gamma tables can be reprogrammed with arbitrary functions, supporting a wide range of applications, such as intensity correction, feature enhancement, lin-log, log-lin conversion, and thresholding.
The Gamma LUT core is implemented as a set of LUTs that are used to perform the data transformation. The width of the data determines the number of entries in the LUT. For example, 8-bit data would require 2 8 (256) entries in the LUT. The width of the data also determines the width of each entry in the LUT. For example, 10-bit data would require that each entry in the table be 10-bit wide.