Originally posted by: ChuckHsiao
Here's how it works:
The fundamental unit of an LCD panel is the subpixel (not the pixel); three subpixels (red, green, blue) make up a pixel. A "bit" refers to an on or off, a binary in other words (0 or 1). Each subpixel on a 6-bit panel then can produce 2^6 = 64 colors, while each subpixel on an 8-bit panel can produce 2^8 = 256 colors. Since each pixel has three subpixels, you then cube this number to see how many different colors a pixel can display. So for 6-bit panels, it's (2^6)^3 = 64^3 = 262144 colors (usually stated as 262k colors), while for 8-bit panels, it's (2^8)^3 = 256^3 = 16777216 colors (usually stated as 16.7M or 16.8M colors).
16.7M colors might sound like a lot, but you can see the difference when you look closely (just open up paint and make blocks that are one off in brightness to each other, or alternately, look at
http://www.amptron.com/chuck/bittest.bmp ). You can thus imagine that 262k colors is a lot worse. So because of their inferior quality, manufacturers of 6-bit panels use either dithering or frame rate control to emulate 253 colors per subpixel. For example, if you want to simulate a brightness of 193 (brightness varies from 0 to 255), the two shades next to it for 6-bit panels are 192 and 196, so it does one frame of 196 followed by three frames of 192 (thus averaging to 193 brightness). That's frame rate control. Dithering would just be to make sure that over an area that you want 193 brightness, one out of every four pixels is 196 while the other three is 192. The reason why it's only 253 colors (instead of 8-bit's 256) is that if you take the sequence 0, 4, 8, etc. (the various shades that a 6-bit panel can do; it might be 3, 7, 11, etc. instead, I'm not sure which), you end up with the last shade being 252. Since that's the highest it can go, shades 253, 254, and 255 are the "missing" colors. Since 253^3 = 16194277 (16.2M) colors, a monitor with a spec of 16.2M indicates 6-bit with some form of dithering/frame rate control.
Yes it's possible to have 32-bit LCD monitors. We have to be careful here, though. The reason why we talk in terms of 256 colors, is that in video addressing, each color is assigned one byte (8 bits, hence 256 colors). This is the actual signal itself that's sent from the video card to the monitor. Although this means that only three bytes are needed, virtually all programs send four bytes, with the last one being a dummy byte (just a placeholder), because this actually speeds up processing (at the expense of more memory needed) because, well, four bytes is a common unit memory length in code. So when you set Windows to 32-bit, it's actually (usually) 24-bit with an extra 8 bits of dummy info -- and that 24 bits is made up of 8 bits for each color.
Unfortunately, you can still tell the difference between one-off colors (have to look carefully though) for 16.7M colors. So some manufacturers use the first 6 bits of that dummy 8 bits to send additional color info, essentially producing a 10-bit (per color) signal. That info is worthless though unless the monitor can support it, so some monitors can use dithering or frame rate control (in the same way that 6-bit emulates 8-bit) to get an 8-bit monitor to emulate 10-bit. As with 6-bit emulating 8-bit, you lose three colors; consequently, each color can have 1021 shades instead of 1024 shades, resulting in 1064M colors produced. I think Eizo is one of the companies with a 10-bit monitor, I don't know who else has them. Note though that the extra bits do you no good unless you have the accompanying software.
Even though CRT fans like to say their CRTs are 32-bit, that's actually per pixel. Since LCDs are per subpixel, multiply a given LCD's amount by 3. 8-bit LCDs are 24-bit color. But remember what I said about the extra 8 bits being just a placeholder; I think (but might be wrong on this) that CRTs are really just 24-bit like 8-bit LCDs, and they added that dummy byte in order to call them 32-bit.
Unfortunately, it's getting harder and harder these days to tell the difference between 6-bit and 8-bit panels; manufacturers of 6-bit panels are understandably reluctant to admit their panels are 6-bit (because of its lower color quality). Generally, 16.7M means 8-bit, and anything else (16.2M, "over 16 million colors", etc.) indicates 6-bit. This may not work in the future though because I'm sure they will eventually find a way to justify calling a 6-bit monitor "16.7M colors", or simply make the interpolation scheme wise up to be able to support 16.7M colors, albeit only via interpolation. There are various tests that are meant to let users find out if a panel is 6-bit or 8-bit (my bittest.bmp was a crude one that doesn't really work), but I haven't found one yet that works all the time.
Chuck Hsiao
Formerly of Amptron