Suppose that you wish to communicate a luminance value to a distant observer, through a channel having only 8 bits. Consider a linear light representation, where code zero represents black and code 255 represents white. Code value 100 represents a shade of gray that is approximately at the perceptual threshold: For codes above 100, the ratio of intensity values between adjacent codes is less than 1 percent; and for codes below 100, the ratio of intensity values between adjacent code values is greater than 1 percent.
For luminance values below 100, as the code value decreases toward black, the difference of luminance values between adjacent codes becomes increasingly visible: At code 25, the ratio between adjacent codes is 4 percent, which is objectionable to most observers. These errors are especially noticeable in pictures having large areas of smoothly varying shades, where they are known as contouring or banding.
Luminance codes above 100 suffer no artifacts due to visibility of the jumps between codes. However, as the code value increases toward white, the codes have decreasing perceptual utility. For example, at code 200 the ratio between adjacent codes is 0.5 percent, well below the threshold of visibility. Codes 200 and 201 are visually indistinguishable: Code 201 is perceptually useless and could be discarded without being noticed. This example, sketched in the margin, shows that a linear-luminance representation is a bad choice for an 8-bit channel.
In an image coding system, it is sufficient, for perceptual purposes, to maintain a ratio of luminance values between adjacent codes of about a 1 percent. This can be achieved by coding the signal nonlinearly, as roughly the logarithm of luminance. To the extent that the log function is an accurate model of the contrast sensitivity function, full perceptual use is made of every code.
Excerpted from Chapter 6, Gamma, of A Technical Introduction to Digital Video. (New York: John Wiley & Sons, 1996). Page 94. This chapter is available online, in Acrobat PDF format.
See also: Gamma FAQ - Linear and nonlinear coding
Copyright © 1998-03-12