过去几周,我逐渐发现许多我们过去以为了解的“事实”其实不如我们想象的那样正确。举例来说,以前在学校读书时,老师告诉我们,人类眼睛有三个分别识别红光、绿光和蓝光的色彩受体(color receptors),我们能识别的其它颜色都是这三种基色的混合色。我被告知,这就解释了为什么电子彩色显示器(如电视机或计算机显示屏)的每个像素都是由红、绿、蓝三色构成的。

而如今,我发现实际情况要复杂得多。虽然我们大多数人的确有3个色彩受体——一个对蓝紫色(blue-violet)最敏感、其它两个分别对偏蓝的绿色和偏黄的绿色最敏感。但现在我们了解到,人类的视觉系统“被设计成”来察觉不同视锥细胞(cones)的反应的差异。也就是说:当黄绿色视锥细胞受到比蓝绿色视锥细胞稍强些的刺激时,我们看到的就是黄色;同理,当黄绿色视锥细胞受到比蓝绿色视锥细胞强烈得多的刺激时,我们看到的就是红色。

在所有这些发现当中,有趣的一点是我们的蓝紫色视锥细胞比蓝绿色和黄绿色视锥细胞数少一个数量级。另外,由于蓝绿色和黄绿色视锥细胞都对绿色敏感,所以,人眼对光谱内的绿色部分的变化尤其敏感。

Clive (Max) Maxfield,EE Times姊妹网站“Programmable Logic DesignLine”(www.pldesignline.com)主编,著有《计算机是如何计算》(How Computers Do Math)一书。

所有这些促使我们重新审视用于表现彩色显示器像素的位的数量。我再一次发现,过去以为自己了解的东西其实了解得不那么准确。过去的存储器比现在贵得多,那时,设计人员在对每个像素进行编码时,极力将所用位数减至最少。例如,在用15位对像素进行编码时,以用5位表现红色、5位表现绿色、5位表现蓝色的5-5-5方案为例,它能表现215 = 32,768种颜色。

而采用5-6-5方案的16位编码则更进一步,能表现更丰富的色彩,共能提供216 = 65,536种色彩。在5-6-5模式中,5位表现红色、6位表现绿色、5位表现蓝色(用更多位表现绿色的原因是因人眼对各种绿色更敏感,前文对此已有论述)。

但我曾被告知,要实现照片质量的图像,须使用24位色彩(即所谓的“真彩”),其中红、绿、蓝三基色各用8位来表现,这样,总共就能表现出224 = 16,777,216种颜色。

当你不假思索地照本宣科时,这些似乎都对,但事实真是这样的吗?我们确实需要用多达24位来表现每一个像素吗?能不能少用些?对大型系统来说,这也许不那么要紧,但对嵌入式系统来说就很重要。在嵌入式系统中,使用的像素越少,就等于芯片的占用空间更小、计算要求降低,并且功耗也更少。

我质疑“传统智慧”的原因是我近期拜读了IBM资深专家Mike Cowlishaw撰写的一篇文章(www.cary.demon.co.uk/buss/ cowlishaw1985-fundamental.pdf)。这篇名为“图像呈现的基本要求(Fundamental Requirements for Picture Presentation)”的文章发表于1985年,论证了不超过17位就能再现最理想的色彩(5位红、7位绿、5位蓝),但采用(4位红、5位绿、3位蓝)的12位方案几乎能实现同样好的效果。另外,该文还展示了一张栩栩如生的照片,它竟是由8位(2位红、4位绿、2位蓝)方案实现的。

我仍在咀嚼从该文中学习到的一切,我坚信,任何想要生成一幅电子图像或研制一个显示系统的人都应读一读这篇文章。

作者:Clive Maxfield

Advertisements