The human eye can differentiate about 10 million colors. A 24-bit display mode can produce about 16 million. Why, then, do operating systems have 32-bit and higher display modes if the apparent quality is the same as a 24-bit mode?
This disparity is likely due to a variety of factors:
- It's not clear exactly how many colors humans can see. For example, the table at the top of this page about the number of colors distinguishable by the human eye cites various academic papers as saying anything from "more than 100,000" to "roughly 10 million." In any case, the number of colors visible to humans appears to be lower than the number of different colors which can be represented by a computer screen, although because the number of distinguishable colors is not known exactly, the people who made the screens probably decided to play on the safe side.
- The way memory is laid out in the computer, data is easiest to store and quickly access when the memory units are in powers of two. This physical constraint is why we have a full byte (2^3 bits) per color channel rather than just 6 or 7 bits. This preference for powers of two also plays a role in the decision to include the fourth (2^2-th) channel. It makes for a much more uniform layout in memory and thus significantly faster processing than would be the case if there were only three channels, especially given how optimized graphic cards are for specific types of parallel processing.
- Now I come to the crux of your question. You point out that the 24 bits used to store the red, green, and blue color channels would already be sufficient on their own to produce more colors than we can see. That makes the final byte (the alpha value) appear a bit superfluous. But the alpha channel has a great usability value to programmers. Adjusting it adjusts the brightness of the whole pixel simultaneously rather than having to write the code to adjust each of the three channels independently. Among other things, the alpha value drastically simplifies the math needed for greenscreening, blending images, and setting transparency. Fewer operations doesn't just mean that the code can be written faster; it will take less time to debug and run faster as well.
You're incorrectly assuming that the distribution of those colors over the gamut matches the human eye. The distribution of the 16 million colors is chosen for technical simplicity, ignoring even the difference in sensitivity for red and green.
For the same reason, there's a sizeable part of the gamut which many monitors can't display at all (15% is usual)
24 bit isn't really 16 million different colors. It 3 times a single color at different intensity which your eye/brain interprets as a single color, it isn't. So, try this exercise, show all the 256 different "reds" with the other colors at 0. Then you'll find out that 8 bits per color x 3 actually isn't that much...
Because if you used 7-bits instead of 8-bits per RGB component, you'd get 21-bits for all color space and that would sum up to about 2 million colors, much less than what we can see.
From graphics processing and system-programmers' point-of-view, 32-bit staffs are much easily manageable than 16-bit/24-bit/whatever-bit staffs ....
simple explanation, right?
Your problem is that you are thinking in colors which doesn't always mean what you think because those are the individual colors not counting the colors achieved by blending and mixing those colors. Your eye an see something like 2.4 million colors but this does not take into account shades and tones of those colors which puts us more in the 100 million colors range play around with a 16 bit photo shop image for a while there are trillions of colors available see below : "an 8-bit image, which would be "2 to the exponent 8", or "2 x 2 x 2 x 2 x 2 x 2 x 2 x 2", which gives us 256. That’s where the number 256 comes from.
Don’t worry if you found that confusing, or even worse, boring. It all has to do with how computers work. Just remember that when you save an image as a JPEG, you’re saving it as an 8-bit image, which gives you 256 shades each of red, green, and blue, for a total of 16.8 million possible colors.
Now, 16.8 million colors may seem like a lot. But as they say, nothing is big or small except by comparison, and when you compare it with how many possible colors we can have in a 16-bit image, well, as they also sometimes say, you ain’t seen nothin’ yet.
As we just learned, saving a photo as a JPEG creates an 8-bit image, which gives us 16.8 million possible colors in our image.
That may seem like a lot, and it is when you consider that the human eye can’t even see that many colors. We’re capable of distinguishing between a few million colors at best, with some estimates reaching as high as 10 million, but certainly not 16.8 million. So even with 8-bit JPEG images, we’re already dealing with more colors than we can see. Why, then, would we need more colors? Why isn’t 8-bit good enough? We’ll get to that in a moment, but first, let’s look at the difference between 8-bit and 16-bit images.
Earlier, we learned that 8-bit images give us 256 shades each of red, green and blue, and we got that number using the expression "2 to the exponent 8", or "2 x 2 x 2 x 2 x 2 x 2 x 2 x 2", which equals 256. We can do the same thing to figure out how many colors we can have in a 16-bit image. All we need to do is calculate the expression "2 to the exponent 16", or "2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2", which, if you don’t have a calculator handy, gives us 65,536. That means that when working with 16-bit images, we have 65,536 shades of red, 65,536 shades of green, and 65,536 shades of blue. Forget about 16.8 million! 65,536 x 65,536 x 65,536 gives us an incredible 281 trillion possible colors!" http://www.photoshopessentials.com/essentials/16-bit/
Before we can define a number of colors, we have to define: What is color? Color isn’t a particular wavelength or property of light, it is a cognitive perception. Color, is a perceptual property, something that occurs deep inside our brains. So if we can't see it, it is not a color. As such, colors are defined based on perceptual experiments. Another term is Color Value, which refer to human perception and specifically to colorimetry. Lab, Luv, XYZ, Yxy define color values. These models are based on human color perception experiments original done in the 1930’s. We can use math and a metric called deltaE to define when one set of color values are imperceptible (indistinguishable) from another set of numbers (color values). delta-E refers to differences in color values. For example, in one color space called sRGB, it isn’t possible to see a difference between values 2/255/240 and 1/255/240 as they have the same Lab values (90/-54/-8). Two sets of RGB numbers that define one color. As such, we can’t count that example as defining two colors, we can’t see any difference between them. They appear identical to the Standard Observer. A deltaE of less than 1 between two color values is said to be imperceptible but to complicate matters, there are several formulas for calculating this metric. Further the ability of the eye to distinguish two colors as different and is more limited for yellows but is better for greens and blues. This just adds even more difficulty in assigning a meaningful and accurate number of colors to these colors spaces.
The pixel has what is called an encoding which can provide a number of possible device values. For example, 24 bit color, (three channels, 8-bit each) can mathematically define 16.7 million device values. Can we see 16.7 million colors? No. Far less. Depending on who’s figures you examine, the range is said to be “more than 100,000 to 10 million”. The number is up to debate but the point is, we can use math to produce a value that has no actual relationship to what we can see and call color. All the RGB working spaces have exactly the same number of addressable device values and the total number is set by the bit depth of the image file used for encoding, i.e., 8-bit, 16-bit.
Now we have to look at color spaces like ProPhoto RGB. If you examine a gamut plot of this synthetic color space on top of the gamut of human vision of our Standard Observer (the CIE chromaticity diagram), part of it falls outside this plot. ProPhoto RGB can define device values, numbers, which represent “colors" we can’t see. So these “imagery colors” can’t be counted when we ask, does ProPhoto RGB have more colors than sRGB or any other color space. One of the best explanations of why it is folly to even attempt to put a number of colors onto of a color space comes from Graeme Gill the creator of the Argyll Color Management System: "Colorspaces are conceptually continuous, not discrete, therefore it's wrong to talk about number of colors". Just examining ProPhoto RGB further illustrates it is impossible to define the number of colors it can contain as it can defines color values that we can’t see as colors. Parts of ProPhoto RGB’s gamut lies outside human vision! Much like 24 bit color which can define more device values than colors we can see. Encoding is a useful attribute when editing our images so the point isn’t to dismiss it but rather point out, we can encode values for something that isn’t a color, it’s just a number, a device value.
Don’t confuse a color number, a device value, as a color you can see!