在了解色彩空间之前,我们先说说黑白和彩色图片是怎么获取的吧。
假设我们使用一束光线射向一个光敏感传感器,则当我们观察传感器时,被光照射到的部分在我们看来是亮的,没有被光照射到的部分在我们人眼看来是暗的。如果我们定义黑色为暗,白色为亮,那么这就形成了一幅黑白图片,整幅图片的颜色只有黑和白,接受到最强光线的部分为最白,没有接受到光线的部分为最暗,其他接受到一部分光线的就是鉴于最白与最暗之间(我们也可以称它为灰色)。
那如果光感传感器只能接受到一定波长范围内的光线的话,那么当一束白光射向该传感器时,传感器就会过滤掉其他波长的光,而只接收自己能接受到的光,加入这一定波长范围为420到440纳米(nm)的话,那就会显示出蓝色,如果时534到555纳米的话,那就是绿色,如果时564到580纳米的话,就是红色。这三种颜色如果叠加到一起,就形成了我们人眼看到的彩色。
HVS 人眼视觉系统(Human Visual System)
下图是我们人眼的简易构造图
我们的眼睛结构很复杂,但是主要的工作机理很简单,就是外部的光线经过瞳孔,在视网膜上成像,视网膜收集这些信号,传递给大脑的这么一个过程。人眼中的光感受器一共有两种,分别为锥状体和杆状体。
每只眼睛的锥状体的数量约为600-700万个,他们主要集中在位于视网膜中的“中间凹”部位,对颜色高度敏感,使用这些锥状体,人们可以充分地分辨图像细节,因为每个锥状体都连接到自身的神经末梢。肌肉控制眼球的转动,直到感兴趣的物体图像落到中央凹上。
杆状体的数量更多,约有7500-15000万个分布在视网膜表面,因为视网膜本身的面积相对较大,所以几个杆状体才连接到一个神经末梢,因此减少了这些感受器感知细节的数量,杆状体用来给出视野内的总体图像,它们没有彩色感觉,对低照明度敏感。
上图是《数字图像处理》第三版中的图,绘制的是视网膜中杆状体和锥状体的分布,实线为锥状体,虚线为杆状体,横轴是距离中心凹的度数,竖轴是在每个度数点分布的数量。
可以看出,对于锥状体,几乎全部分布在中心凹处(0度区域分布最集中),而杆状体在中心凹部分几乎不分布,越远离中心凹,分布越多,在左右30度的地方达到最高峰,然后逐渐减少。然后,锥状体和杆状体有一个共同点就是在大概左20度的地方,有一块“盲区”,既没有锥状体,又没有杆状体。这个点被称为“盲点”。
RGB Color Space
锥状体在视网膜上主要分布在中央凹区域,这些锥状体一共分为三种,这三种所吸收能量最强时对应的波长不同,如图所示;
- 在波长420nm到440nm吸收能力最强的锥状体感知蓝色
- 在波长534nm到555nm吸收能力最强的锥状体感知绿色
- 在波长564nm到580nm吸收能力最强的锥状体感知红色
上述的三种锥状体所能感知到的光的范围就覆盖了390nm - 780nm波长范围,这就是我们人类的可见光范围。
所以这三种颜色:蓝色(Blue),绿色(Green),红色(Red)组合起来,就是我们熟知的 RGB 色彩空间。
YCbCr Color Space
人们在革新技术时,不仅仅要考虑新技术的导入带来的服务的变革,还应当考虑对现有服务或者设备的兼容性。在从黑白电视向彩色电视转换的时期,考虑到既要让安装有彩电的家庭能够观看彩色的视频内容,同时也要让那些以前购买了黑白电视的家庭能够正常观看电视(黑白内容)。基于这个设想,彩色电视的内容,就是在原有黑白电视内容的基础上,加上色彩成分。简单来说,就是同一段影像,对于黑白电视的用户,电视台只传送原始黑白内容给他,对于彩色电视的用户,电视台除了传送原始黑白内容以外,还附加传送内容对应的彩色内容,那么在彩色电视上就可以播放出彩色的内容。
所以此时,YCbCr应运而生。YCbCr是由Y,Cb,Cr三部分组成,其实Y为灰色成分(luminance),Cb和Cr为彩色成分(chrominance),一张图片,如果由RGB表示的话,那就意味着每一个像素由R,G,B三部分组成,同样,YCbCr图片的话,就是图中的像素都是由Y,Cb,Cr三部分组成,这样将灰度成分与彩色成分分开,相比起RGB来,在存储,传输上效率更高,既满足了已有的黑白电视设备,也支持新出的彩色电视设备。以HEVC为代表的视频压缩标准均采用YCbCr色彩空间来作为输入,而不是使用RGB。RGB和YCbCr之间的转换请参照 维基百科
YCbCr 采样格式
人的眼睛在观看影像的时候,对色度的敏感度要比对灰度的敏感度要低一些,所以在YCbCr格式的帧中,经常对色度成分,也就是CbCr部分,进行采样。主要采用的格式有:
- 4:4:4 无采样
- 4:2:2
- 4:2:0 最常用
上图中,4:4:4和4:2:2从图中都很好理解,但是为什么第三个图是4:2:0呢?不应该是4:1:1吗?根据上图推测,4:4:4就是Y,Cb,Cr三个分量的采样率相同,4:2:2表示Cb和Cr两分量是Y分量水平上的一半,而第三幅图对应的水平和垂直方向都是一半,从表述上来看应该是4:1:1。但是由于历史原因,在大众市场上,4:2:0是早已被广泛使用到数字视频会议,数字电视,DVD存储中,所以就一直这么沿用下来了。理论上的解释请参考我的另外一篇博文《数字视频分量编码》