Getting More Than 16.7 Million Colors
Through Gamma Adjustments

A 24 bit color system can display 2^24 or 16.7 million colors simultaneously. However, the same hardware may be capable of displaying many more colors, just not more than 16.7 million simultaneously. Anyone who has worked on an 8-bit color system (256 colors) knows that they can display 256 colors at any given time and can change their palette of 256 colors as their needs change. Similarly, people with 16-bit colors systems (65536 colors) can display more than 65,536 colors by chaining their palettes. With 24 bit color systems, many people overlook this option of rearranging their palette. Most software doesn't explicitly tell a user how to change the palette and low end graphics cards may not allow the capability to extend the palette to a different set of 16.7 million colors. But if you work with 16 bit color, 8 bit color or have a really nice graphics card with a 10-bit DAC or 12-bit DAC (Digital Analog Converter) it would behoove you to take note of this palette switching capability.

Bit Division

One very effective way of changing the palette is by dividing up the 24 bits differently among the red, green and blue channels. Typically the red, green, and blue channels are each assigned 8 bits of color. Should a user desire more control over the colors in one channel, however, these bits could be divided differently. Had Monet been a computer artist while doing his studies of blue, he could have assigned 10 bits to blue, and 7 each to red and green, thereby offering a more blue palette. Since most graphics applications and file formats do not support this method, however, it is not very practical to implement, unless you are a computer programmer writing your own graphics package.

Gamma Encoding

The second method of palette control is to change the mapping between the bit values and their corresponding CRT voltage. A crude way to do this is to adjust the brightness and contrast knobs on your monitor. A more elegant and reproducible way of doing this is to adjust the gamma value associated with the image file. (What is Gamma Anyway )Bit division changes the number of blues, relative to the number of reds and greens. By gamma adjusting, one changes not the NUMBER of blues (or reds, or greens) but the SET of blues, reds and greens available.

Photoshop Experiment

The two images below were made in the Windows version of Adobe Photoshop in RGB mode. (Note this will not work in the same way on the Macintosh version of Photoshop) In the first image, the Photoshop Gamma Setting (Found under the File Menu under Monitor Setup) was set to 1.0. This implies that the file is gamma corrected to 1.0, or that the File Gamma is 1.0. The second image was made by copying the first, and setting the Photoshop gamma value to 2.5. Both images are grayscales from 128 to 255. On some computer systems on which I have viewed this page (those with low system gammas like SGI's), the top image looks entirely white. This further shows how important proper gamma correction can be.

When these images were made in Windows Photoshop, the R,G,B values of each image were identical. That's right. The image data for both of them were identical. Actually, since viewing them properly requires changing the gamma (thus changing the palette), both images appeared exactly the same at all times in Photoshop. The images below are only a simulation of what was seen. (Tell me how to repeat the experiment)

Obviously one image is darker and the other is lighter. The more colors a computer system has, the harder it is to tell the difference between individual shades of gray in both images. Clearly the lighter image represents a greater challenge in color differentiation. It would very difficult (impossible on 24-bit systems) to tell the difference between the shade of "almost white" made by r=g=b=250 and that made by r=g=b=251

Because both of the above images were made from identical RGB image data , we see the importance of gamma selection with regard to palette control.

In the lighter image (the File Gamma = 1.0 image) the palette made by setting the gamma value of Photoshop to 1.0 offers tremendous amounts of subtlety and control over different shades of "almost white". The darker image (the File Gamma = 2.5 image) is not quite so subtle and offers the artist fewer choices from the "almost white" section of the palette. In 24-bit systems this amount of control may or may not be overkill, depending upon the subject. It must be remembered that overkill in one area of the spectrum will mean fewer colors in another part of the spectrum. This may be desirable in some situations and the artist should plan carefully.

But what about the low end? I made a similar test for shades of gray between 0 and 128. Here the opposite is true. In the "File Gamma = 1.0" version, the image is again lighter and we see the price that is paid for having so many high end shades: There are very fewer dark colors to work with. In the "File Gamma = 2.5" version the image is darker as we expect and we see where all of the shades that were missing at the high end went to. The "File Gamma = 2.5" version has the same subtlety and control that was seen at the high end in the "File Gamma = 1.0" version. Click here to see this second test against a white background.

What this experiment shows is that we are really changing the palette of colors available to us. If we set the file gamma equal to 1.0 we emphasize the bright end of the spectrum, and higher gammas emphasize the lower end of the spectrum. It would be impossible to reproduce the colors seen when gamma is set to 1.0, with the colors available when the gamma is set to 2.5.

Note: not just gray scales are affected by this. This is just a very obvious example. By selecting a specific gamma, the palette is changed for all colors in most color spaces or modes. ( More about how Gamma Affects Colors) Ideally, applications like Photoshop should allow for separate gammas for each color channel. This would afford even greater palette selection power.

Is Gamma Best?

A good question to ask, now that it is seen how gamma can change the palette, is whether or not gamma selection is a good means of palette selection. The graphics cards in some systems allow for independent gamma correction on all three color channels. Some even allow for user defined "gamma" curves. These curves can take on any shape the user desires, and as such are really not gamma curves because they may not be exponential. Nonetheless they perform the same function. Ultimately, the best tool is one that gives the user as much control as possible in choosing the mapping of RGB values into CRT voltages.

File Formats and the WWW

Changing the gamma for a specific file can be a wasted effort, however. Most file formats, GIF, JPEG, TIFF and Photoshop PSD have no way of encoding the gamma of a file. This unfortunate problem rears its ugly head on images all over the WWW. A new graphics format called Portable Network Graphics (PNG) hopes to solve this problem as well as others associated with making WWW graphics. More about making graphics for the WWW


My thanks to David Moe at Radius Corp. for helping me out with this one. Radius happens to make graphics cards for the Mac that have a 10-bit DAC.