Many people are confused concerning nonlinear coding. The topic has historically gone by the name of "gamma."
Image processing literature often neglects to treat gamma. This is a consequence of the fact that classical image processing is not ordinarily concerned with the reproduction of images. Instead, it is concerned with extracting features, or "enhancement" (whatever that is).
Literature in the area of machine vision similarly discounts gamma, or treats display nonlinearity as purely a physical problem. But that isn't surprising: "Machine vision" involves machines looking at images, not people looking at images! The constraints are quite different!
In computing, people refer to RGB code values as "intensity." But intensity is a clearly defined term in physics. Intensity is necessarily proportional to a physical stimulus. Usually, RGB codes are nonlinearly mapped to intensity. So the term "RGB intensity" is rarely correct.
Video engineers use perceptual principles all the time. Camera designers know this very well. But not too many video engineers are camera designers. The nonlinear mechanism at the CRT is implemented in a highly subtle fashion. There are no moving parts, in fact, no extra parts at all! The nonlinear mapping at the display is buried in the electron gun of the CRT itself. So video engineers - other than camera designers - generally do not have an objective view of the whole system. (And video engineers play fast and loose with nomenclature. They call the video Y' signal "luminance," even though it bears no direct relationship to CIE luminance.)
There's an amazing shortage of quality information concerning gamma in desktop computing. (Check the indexes for yourself!)
See also: Gamma FAQ - Linear and nonlinear coding
Charles Poynton
Copyright © 1998-03-12