ProMotion Home Page
GO GO GO GO GO GO
Product
line
Support
&
software
Press
releases
A+
software
developers
White
papers
ProMotion
Home

ProMotion® White Paper:

Gamma Correction

Gamma Correction is a technique used in professional-quality graphics and imaging systems to correct for the non-linear characteristics of display devices and the human eye.

Here's what Computer Graphics: Principles and Practice has to say: the eye "is sensitive to ratios of intensity levels rather than to absolute values of intensity. That is, we perceive the intensities 0.10 and 0.11 as differing just as much as the intensities 0.50 and 0.55. (This nonlinearity is easy to observe: Cycle through the settings on a three-way 50-100-150-watt lightbulb; you will see that the step from 50 to 100 seems much greater than the step from 100 to 150.) On a brightness (that is, perceived intensity) scale, the differences between intensities of 0.10 and 0.11 and between intensities of 0.50 and 0.55 are equal. Therefore, the intensity levels should be spaced logarithmically rather than linearly, to achieve equal steps in brightness." (Foley 564)

A typical graphics DAC displays linearly spaced values. Each color component, red, green, and blue, typically has a digital value generated by the graphics controller which ranges from 0 to 255. These values are displayed directly as intensities: digital values 1, 2, 3 have intensities 1.000, 2.000, 3.000, and digital values 253, 254, 255 have intensities 253.0, 254.0, 255.0. As a result, there is poor color resolution in dim regions, since there are no intermediate steps between intensity 1.000 and intensity 2.000 for example, while in bright regions it is almost impossible to distinguish between nearby values, since 255.0 and 254.0 have a ratio of only 1.004 and, as a rule of thumb, a ratio of 1.01 or greater is needed for distinction (Foley 565).

The gamma function generates logarithmically spaced values. In the case of a typical computer graphics application, each color component (red, green, blue) can take one of 256 different values, so a gamma function may be used to generate 256 logarithmically-spaced intensities. Then a gamma-corrected controller

Fixed gamma correction displays the gamma function intensities on the screen rather than linearly spaced intensities. For example, digital values of 1, 2, 3 in the frame buffer might correspond to intensities of 0.6000, 0.6145, 0.6293 on the display, while digital values of 253, 254, 255 would correspond to 243.1, 249.0, 255.0--this way each brightness step multiplies the intensity by the same amount (1.024 in this case).

Programmable Gamma Correction

Programmable gamma correction, otherwise known as color correction, is supported in ProMotion-6422, ProMotion-AT24, and future Alliance controllers. Programmable gamma correction is more general than fixed gamma. Programmable gamma correction uses a lookup table (LUT) memory inside the graphics DAC to map any frame buffer digital value to any output intensity level. This permits emulation of a standard gamma function by loading the appropriate gamma intensity value (or the nearest integer) into each entry.

However, gamma correction can also create other effects, such as varying the contrast, brightness, and black level of a screen image. Increasing the intensities of every entry in the LUT, for example, would increase the black level of an image. Programmable correction can even be used to create a photo-negative image, by loading an "inverse ramp" (255, 254, 253, ..., 3, 2, 1, 0) into the LUT.

Desktop publishing users may be familiar with color correction from applications like Adobe Photoshop. Many image manipulation programs, like Photoshop, offer a color control panel. The software recalculates the color of each pixel based on the settings in the control panel, a process which takes anywhere from a few seconds to a minute or more for each change. Programmable correction can accomplish the same sort of color control, across the entire screen, in real-time. Rather than recalculating and rewriting every pixel on the screen, the color control software only has to rewrite 256 LUT entries, which can be done in a matter of milliseconds, permitting very fine-grain color control.

Programmable correction can also be used to match printer colors to screen colors. Simply print a test picture on your color printer, then use the Gamma Correction tool in ProMotion Director's Chair to make your monitor display match the printout color.

Programmable Chroma Correction

Chroma correction is a term Alliance has coined to describe a ProMotion feature which is closely related to programmable gamma correction. What chroma correction permits is complete color control of motion video window(s), independent of the graphics desktop. The control offered by the chroma correction feature is just as flexible as programmable gamma correction, since it is also implemented as a lookup table -- in fact, chroma correction is an additional hardware LUT in the ProMotion DAC designed specifically for motion video.

If you've ever tried to play back motion video data on your computer screen, then you can appreciate why it's important to have independent chroma control for video windows. Today's accelerators have gone a long way toward smooth PC video playback and scaling, but too often the video displayed on the monitor is washed out, too dim, etc. If you increase the brightness or contrast on the monitor front panel, then the graphics desktop becomes too bright or over saturated. Changing the monitor controls for video playback would also ruin any calibration you have done to your color printer.

ProMotion's independent chroma control, together with fast playback acceleration and smooth bilinear interpolated scaling, can vastly improve the PC motion video experience.

Article by Spencer Greene

Bibliography

Foley, van Dam, Feiner, and Hughes. Computer Graphics, Principles and Practice, Second Edition. Addison-Wesley: 1996.

White Papers Page Top of page ProMotion® Home Page

Alliance Semiconductor Corporation, 3099 North First Street, San Jose, CA 95134-2006
TEL: 408/383-4900 FAX:408/383-4999
(c)Copyright 1996 Alliance Semiconductor. All rights reserved.

Send all questions and comments regarding this site's condition to webmaster@alsc.com
NOTE: Please do not send technical questions or requests to webmaster@alsc.com
[an error occurred while processing this directive]