首页

认识色彩空间

2013/8/21 10:34:28点击:1887
返回

这篇文章讲述视频中色彩再现的理论和制作出使用相机和实用编码系统的折中方案。

视频处理通常会包含用场景中的三元素再现色彩,这三元素是红,绿,蓝或者是通过这三原色混合的方法再现色彩。一旦场景中的红,绿,蓝得到了,色彩编码系统把这些元素转换成其他适合处理,记录和传输的格式。准确的色彩再现需要准确的知道原始场景中的物理光谱是怎么转换成这些基本元素而且需要准确知道这些色彩基本元素在显示的时候又是如何转换成物理光谱。

我用术语亮度(luminance)和Y符号来表示真实的,CIE亮度(与物理强度成线性关系的物理量)。我用术语luma和Y’符号来表示视频中用来近似亮度的量。如果你对这些量不熟悉,可以参考我的一本书(《视频技术基础新版》)。

三基色色彩是由于视网膜对波长从400到700nm的光产生反应的原因。

人的视网膜有三种类型的杆状感光单元,这造成了不同的光谱反应曲线。由于有三种类型的精确的色彩感光单元,用三基色来描述色彩是非常必要和充分的,这也使得人们可以使用三个适当的描述光谱的函数,色彩感知的三基色性质是固有的。

第四种感光单元是视网膜杆,这在视网膜中存在。视网膜杆只有在相当低的亮度条件下才会产生作用。因为视网膜杆只有一种类型,“黑视觉”不能感知色彩。图像只有在一定光线强度的情况下才会再现,而在这种情况下,视网膜杆是不起作用的。

Isaac Newton 说:“事实中的光线,不是以色彩形式表现的”。在物理世界中,光谱能量分布(SPDs)是存在的,但是色彩只在眼睛和大脑中存在。

色彩详述CIE定义了一种可以计算三基色的系统,这种系统可以认为是色彩空间的数学坐标。这些函数在空间坐标中式相互协调作用的。不同的制图有不同的侧重点,有的着重于区域,有的着重于经纬度。没有一个地图是可以装载所有使用者需求的。相似的,也没有一个单独的色彩系统可以装载所有色彩使用者需求的。

 

 

图1 色彩系统可以根据不同的转换被分为四组。三基色系统和完全的感知系统对于图像编码是有用的。

任何色彩定义的系统都必须和CIE的定义紧密关联。所有对色彩定义有用的系统都是基于CIE XYZ。CIE定义了很多关于色彩和饱和度的系统,但是这些系统都不适合于色彩描述。

一个色彩描述系统必须用很高的精确度表述出任何一种色彩。由于一次要处理的色彩很少,一个色彩描述系统可以在计算上复杂。

一种墨水的颜色可以用标准的定义,也可以用几种特定的色彩来混合出来。墨水的混合超出了本文的范围。

比色法的科学构成了用三基色来描述色彩的基础。然而,典型的比色法是用来定义颜色的,而不是用来进行彩色图像编码的。尽管理解比色法对于视频中有好的色彩很有用,但是严格的比色法在应用中就不是很合适了。

色彩图像编码彩色图像时用一组像素来表示的,而每一个像素又是由构成色彩的很多元素表现出来。三基色对于正确表达彩色图像是必要的和充足的,尽管在打印的时候黑色元素也是很有用的。

在理论上,用来构成图像的三基色的值可以有一个色彩感知系统来提供,从而这些值可以用来进行编码。但是在实际中图像编码系统需要计算上有效率,不能在精度上没有限制,需要和CIE系统紧密的联系起来,而且通常需要能覆盖大部分色彩而不是所有的色彩。所以图像编码用区别于色彩定义的系统。

用以进行图像编码的系统如线性RGB,非线性RGB,非线性CMY,非线性CMYK,和非线性RGB的变形如Y’CBCR。很多关于色彩和饱和度的值在彩色图像的编码中是没有用的。

如果你生产汽车,你需要使挡板和车门上的油漆的颜色匹配。这个时候一个色彩定义系统是必要的。然而,要表达车的图像,你需要进行图像编码。你在一开始可以承受少量的数学计算,因为一开始只有两种色彩元素,门和挡板。第二种情况是,色彩的编码必须非常效率高,因为你可能有数百万或者更多的色彩元素。

 

 

图2 光谱和三基色再现。一个颜色可以被描述为光谱能量的分布,可能有31个成员,一个成员表示10nm的宽度。然而,如果近似的光谱测量函数应用的话,这31个成员的值是很有用的。

为了能对彩色图像编码更简单易懂,可以咨询DeMarsh and Giorgianni2 。如果想要简洁完整的理解技术方法,可以看Schreiber3

清晰度强度是对表面发射和存在的电磁波谱的能量分布进行一些间隔的测量。强度就是我所说的一种线性光的测量,表达的单位就是瓦特每平方米。

CIE把亮度定义为“一个区域内能有多少视觉感知的光线”。由于亮度感知非常复杂,CIE定义了一个更容易接受的量,luminance,这个量是通过一个光谱感知函数测量的视觉可感知的辐射能量。

色调是一个彩色场景的颜色属性,可以用蓝色,绿色,黄色,红色等等表示的量。粗略的讲,如果光谱能量分布中占主要成分的波长发生改变,那么色彩的色调也是会发生改变的。

饱和度,或者说是纯度,是色彩的级别,这个级别就是根据中性的灰色到饱和的色彩划分出来的。粗略的讲,光谱能量分布越集中,相关的色彩饱和度越高。你可以用包含所有波长的光来稀释一种颜色。

光谱能量分布(SPD)于三基色物理能量(或者辐射)是用光谱能量分布来表达的(SPD),通常是用间隔10nm的范围来表达400nm到700nm的范围。CIE标准的日光亮度D65的光谱能量分布用图2表示出来。

一种描述色彩的方法就是直接再现它的光谱能量分布。这可以用图2中间图的方法来实现,这幅图中31个元素被转换。这种方法当然可以用来进行描述一种或者少量的色彩,但是用31种元素来描述图像中的每个像素是不实用的。基于自然视觉的三基色原理,我们可以决定使用合适的测量函数来描述色彩,就如图2中的最下方的图所示。

光谱能量分布和感知色彩的关系是关于比色法的学科。在1931年,CIE用根据标准的曲线来表示标准观察着。这些曲线可以定义光谱能分布如何定义一种颜色。

 

 

CIE系统迅速而且几乎是广泛的应用于自发光体和显示中。然而,由反光系统如相机,打印,油漆,这些系统的色彩的表述不仅仅是色彩,而且是周围亮度的表述。如果你的应用对于亮度光谱的依赖性很强,你就需要求助于光谱的吻合。

扫描光谱限制光谱分布和色彩的三基色值的关系自从著名的色彩匹配实验起就很容易解释了。我就从实践的角度来讲解用一个彩色扫描仪或者相机构成的光谱过滤器,其结果就如上面的图3所示。

上面的一行显示了三种宽域过滤器对光谱的敏感度,这三种过滤器对于红,绿,蓝有着相同的反应。一种典型的过滤器,不管是电子信号或者是光学能量,这种过滤器通常具有同样的通过率,这种过滤器有很小的通过范围,在截止范围上尽可能少的通过。所有的练习书都是关于过滤器的设计,这些书都是在讲如何使过滤器优化。最上面的图显示了饱和的红色和橙色单色光的曲线。用一种练习书上讲到的过滤器表示相同的RGB三角,得到了两种不同的波长分布。这是很严重的问题,因为这些光谱能量分布被看成了不同的颜色!

对这种现象的第一反应似乎是因为宽域滤波器对于波长的鉴别能力不够。中间一行的例子是为了区别与上面的例子,弥补其不足,用了窄域的滤波器。这样可以解决一部分的问题,但是同时又产生了另外一个问题:很多单色的色彩都被滤波器过滤掉了,这样扫描器看到的就是黑色。举个例子来说,橙色的显示了[0,0,0]的RGB三角,同样造成了扫描中黑色的效果。

 

 

尽管这个例子是设计出来的,但是问题却是实实在在存在的。最根本的就是,如果人眼看到的色彩不同,扫描仪就应该表现出不同的RGB三角。要做到像人眼一样看色彩,那么这三种滤波器的感应曲线就需要紧密的根据人眼的反应来设计。

有一个著名的实验,色彩匹配试验,在1920年代做的,为了找出SPD和色彩之间的联系。这个实验测量了人眼观察者配色需要的不同光谱。受这种实验的启发,CIE在1931年定义了一组标准测量函数以用来展示色彩的感知。这些曲线就是标准观察者用来配色的函数。这组函数在图3的最下方展示。

CIE XYZ 三基色CIE设计他们的系统,其中Y值是根据人眼视觉对亮度的敏感性来定义的光谱的能量的值。光源的亮度Y是通过它的SPD中的y色彩配色函数得到的。

当用其他两个X和Z来和亮度一起用x,y和z配色函数来表示时,结果(X,Y,Y)元素就被称为XYZ三角。这些线性光的值是产生于人眼色彩视觉的内在性质。

三基色值是从连续的光谱能量分布中计算的来的,这些连续的光谱能量是通过用三个配色函数混合得来的。在离散的表格中,三刺激值可以从矩阵乘法算出来,就如图5所示的。

 

 

图5 用矩阵乘法来计算三刺激值。右面矩阵的数值时CIE光源D65的离散描述。左边的是CIE三配色函数的离散表达,这个矩阵表达了光谱每间隔10nm的31个波长。这样得出来的结果就是XYZ三刺激值。

人类彩色视觉是根据重叠理论,这个理论是有Grassman提出来的,现在被称为Grassman定理:一些列SPD和的三刺激值等于每个SPD的三刺激值相加的和。根据这个色彩混合线性定理,任何构成色彩的三元素都是X,Y,Z的混合,这当然也是一系列的三刺激值的混合。

CIE系统是依据色彩的描述的,比方Y是用来描述色彩的亮度,X和Z描述色彩的。X和Z的曲线已经被标准化了,这是基于观察者实验的统计分析出来的结果。XYZ三刺激值可以描述任何色彩。(RGB三刺激值将在稍后讲述)

XYZ元素的重要性和物理中的能量一样重要,但是光谱混合是根据人类视觉色彩配色性质。

CIE x,y 色度这种系统对于理解和计算都是非常方便的,因为这个系统有色彩纯度的表达,没有了亮度的表达。CIE把从XYZ得到两个色度值x和y的程式做了标准化的处理。这种关系可以用以下的式子表示:

一个色彩是用(x,y)色度的一个坐标点来表示,就像图6表示的那样。当把窄域的SPD混合能量仅仅用400到700nm之间的单一波长。就会出现鳍形的光谱区域。紫色不能由单一波长混合出来:制造出紫色,需要短波光线和长波光线混合而成。紫色线混合了纯粹的蓝和纯粹的红。真实的SPDs是由紫色的线和鳍形的区域组合而成:所有的颜色都是包围在这个区域里的。

用一个颜色的色度和亮度来定义它是常见的方法,在xyY三角中。(第三个色度值,z可以用相似的方法来得到。然而,如果x,y知道的话,z可以推算出来,因为x+y+z=1。)

 

 

如果要重新获得X和Z的值,则只需要把式1方向推导:

用来计算x和y的映射转换方法是两种光谱线性混合,或者是两种三刺激值得混合。然而,这种转换并不能反映线性关系,所以色度值并不是线性混合。

没有一种统一的对于白色的物理学或者感知学的定义。被当做白色的SPD大概在CIE坐标图中三分之一的位置。

添加混合(RGB)得到色彩的一个宽范围的最简单的方法就是从红,蓝,绿的三种色彩的光进行混合。图7演示了添加再现方法。在物理形式上,是每一种光的波长相加在一起用来形成混合物的波长。

作为混合理论的结果,需要一个严格的函数,因为每一个混合色都是原色包括小数点的混合。

添加再现法在视频放映机中是很常见的,视频放映机是通过红色光线,绿色光线,蓝色光线在放映屏幕上进行物理混合的方法。

添加再现方法也在CRT中常见,但是是用不同的间接地方法。CRT的屏幕混合产生红,绿,蓝光线的三种点。当屏幕在一个充分的距离观看时,这些点的混合光谱就被人的视网膜接收。

 

 

白色在添加图像再现方法中,白色点式相同的红色,绿色和蓝色混合而成的。白色点是三种颜色的同比例的混合。

通常为了方便的目的,把白色作为等比例的SPD。白色参照物就是等能量的光源,或者是CIE光源E。

最接近日光的参照物被CIE多次定义为光源D65。除非你找到更好的替代方法,否则你就用这种方法来表示日光。印刷行业通常用D50,照相行业通常用D55。这两种标准是介于室内和日光之间的。

人类视觉在看环境的时候,适应白色。一个在独立环境下的图像—例如暗室中的幻灯片,观察者对白的的感受能力没有那么准确。然而,如果相同的图像在另外一个白色参照物或者是第二个图像下观看,那么白色点的差别就能很容易分辨出来。

Planck 定义了热体—黑体的SPD是一个关于温度的函数。典型的照度源在它的核心里有热的物体,所以用温度来度量物体的照度是比较有用的,可以参照在相同温度下的黑体的照度。

尽管照度可以被光源的色彩温度来区分,更复杂的色度坐标被定义出来,如图8所示。图8展示了几种标准光源的SPD。

相机白色参照通常有一个明显的假象就是在电视机里面摄影机就像是有着D65一样照度下操作。在事实上,场景的照度通常在短波(蓝色)上是不同的。电视工作光线通常是由钨灯来混合成的,而钨灯通常都是很黄的。这种情况在白色平衡中是可以被接受的,这是通过校正场景中红,绿,蓝这三种元素的值来得到的效果,所以场景看起来就像用D65照明一样。

 

 

显示器白色参照在添加混合方法中,再现图像的照度通常是通过显示设备来展现的。在实践中,再现的白色通常是有显示器的特性,而且这和显示设备在什么环境下是没有关系的。在完全黑暗的环境下观看如电影院,这是非常好的。然而,如果观看者视觉范围内集中在显示设备周围的环境中,那么他看到的白色是周围环境影响或者控制的。为了避免主观的错觉,周围的白色光源应该在观看显示设备时关闭。

现代蓝色CRT磷光比红色和绿色对人眼的视觉反应更有效果。在牺牲色彩准确度的情况下追求亮度,对于电脑显示器用大量的蓝色内容是一种常见的方法,通常蓝色的数量是日光的两倍,白色的色温通常是9300K。这种情况可以同过校正显示器,使以低温的白色参照作为显示器的校正。

RGB三原色的界定添加再现方法是基于产生所有正值SPDs的物理设备。物理学上和数学上,是光谱相加。可以用红,绿,蓝三种原色来产生最大范围内的颜色。人眼色彩感知是基于红,绿,蓝的相加原理,所以通过任何三种基本光谱添加混合成的色彩可以用XYZ中的基本元素相加得到:色彩可以从一些列的RGB原色混合而来。相减再现更复杂一些:混合后的色彩是由原色和它们的混合物得到。

一个相加的RGB系统是由它的原色的色度和它的白色点定义得到的。色彩限度(gamut)可以通过给定的RGB原色的色度图混合得到。

在计算中,没有原色的标准也没有白点的标准。如果你有一个RGB图像但是没有它的色度信息,你不能准确的定义这图像中的色彩值。

NTSC在1953年定义了一系列的原色,这些原色用来表达彩色CRT中的磷。然而,磷已经更换了很多年了,主要是为了市场上对已更亮的接收的需求压力,而且在第一代视频记录中原色的值和现在书本上的值是非常不一样的。所以当你看到NTSC原色色度的文档,它们在今天是没有实际用处的。

同一时期的制作间显示器在北美,欧洲,日本有着不一样的标准。然而,国际上关于高清电视的标准得到了同一的标准,而且这些原色标准紧接着就应用于那个时期的演播室,计算和电脑像素。这个标准在BT.709中以表格的形式展示出来。我把这个标准称作Rec.709。Rec.709的原色和它的D65白色光点如下:

 

 

为了更好的讨论电脑像素中的非线性RGB,请阅读Lindbloom’s SIGGRAPH论文。如果想得到更多显示器的校正问题,请参照Cowan7。

详述抽象R’G’B’视频标准的系统和真实显示器的特点很匹配。产生相加色彩的物理设备包括容忍度和不确定性,但是如果你有一个符合Rec.709标准的显示器,你认为显示器是设备独立的。

Rec.709的重要性就在于这是演播室视频,广播电视和高清电视的内部转换标准,而且这其中的感知标准甚至被用于平板显示器中,平板显示器和CRT有这物理上的区别。