RGB
颜色空间是颜色集合的数学表示。在计算机中最常用的颜色系统是RGB,RGB三种颜色取不同幅度可以得到不同的颜色。如图所示,立方体代表的是RGB颜色空间,对角线表示不同的灰度。
RGB颜色空间简单易理解,在计算机显示器上显示也省事,但是它在视频方面并不高效。比如,要在RGB立方体中生成任意一种颜色,RGB分量都需要明确幅值,因此它们需要相同的带宽(所占带宽高)。此外,如果要修改某个点的亮度,要先读取这个点的RGB值,计算亮度,反过来求RGB,写入视频,操作及其繁琐,不如以亮度和颜色存储的图像直观(不宜处理)。
数字RGB采用二进制来表示,如8位二进制、24位二进制等,通常用8位,即0-255。表示RGB的二进制位数叫做图像的像素深度。
sRGB
sRGB色彩空间是惠普与微软于1996年一起开发的用于显示器、打印机以及因特网的一种标准RGB色彩空间。 下图是色度图(详见第五部分),图中显示的颜色是人眼能看到的所有颜色,但是,sRGB并不能表示所有可见的颜色,而是在色度图中选取了三个点作为标准的RGB颜色,红色位于[0.6400, 0.3300]、绿色位于[0.3000, 0.6000]、蓝色位于[0.1500, 0.0600]、白色是位于[0.3127,0.3290]的D65。sRGB能显示的颜色全部在这个颜色三角形中。
sRGB和色度图坐标(x,y)的互换详见维基百科sRGB词条。
一般来说,生成的sRGB的范围是0-1(归一化),如果用8位二进制表示,那么将数值乘以255取整即可。
sRGB还定义了原色强度与实际保存的数值之间的非线性变换。这个曲线类似于CRT显示器的gamma响应。重现这条曲线要比sRGB图像在显示器上正确显示更加重要。这个非线性变换意味着sRGB非常高效地使图像文件中的整数值表示了人眼可以分辨的颜色。
sRGB由于它的色域不够大,尤其是蓝-绿颜色色域无法表示CMYK印刷中的所有颜色,所以通常印刷行业的专业人员不用这种模型。而Adobe RGB是印刷行业经常使用的色彩空间。 scRGB
scRGB is a wide color gamut RGB (Red Green Blue) color space created by Microsoft and HP that uses the same color primaries and white/black points as the sRGB color space but allows coordinates below zero and greater than one. The full range is -0.5 through just less than +7.5. 与sRGB类似,scRGB也是定义在色度图上的颜色空间,选取的三个坐标如下图所示。可以看到,三角形的区域要远远大于人眼所能看到的区域(但并没有包含所有人眼能看到的区域)。
16位scRGB(16)编码是通过将-0.5到7.4999的模拟RGB颜色进行转换,转换公式为8192x + 4096。-0.5时为0;7.5时为65536,但是由于只能表示到65535,因此最大为7.4999。
The components in Windows 7 that support 48-bit scRGB are Direct3D, the Windows Imaging Component, and the Windows Color System and they support it in both full screen exclusive mode and in video overlays. scRGB用在Windows系统中,但是我们在视频中接触不多,了解即可。
伽马校准
现实世界中几乎所有的CRT显示设备、摄影胶片和许多电子照相机的光电转换特性都是非线性的。这些非线性部件的输出与输入之间的关系(例如,电子摄像机的输出电压与场景中光强度的关系,CRT发射的光的强度与输入电压的关系)可以用一台幂函数来表示。对于RGB颜色空间来说,就是如下公式: R = R' ^ gamma; // R是校准前的值,R'是校准后的值
G = G' ^ gamma; // G是校准前的值,G'是校准后的值
B = B' ^ gamma; // B是校准前的值,B'是校准后的值将上述公式逆变换得到校准后的值的过程,就是伽马校准。
伽马校准是为了使数据变得线性。
早年的NTSC使用gamma值为2.2,PAL和SECAM使用gamma值为2.8。
目前的gamma校准采用的是分段校准,gamma值采用[1/0.45]。
具体如下:
如果有超出0-1范围的,变换如下:
反变换公式相应如下:
超出0-1范围:
目前采用这样的gamma校准较多。
色度图
色度图是给出了人类正常的视觉色域。(色度图为CIE颜色系统)
这个图的构成如下:CIE系统中,红、绿、蓝的亮度被转换成三色值的量,分别用X、Y、Z表示,图中的坐标值由三色值推导而来。
x = X / (X + Y + Z)
y = Y / (X + Y + Z)
z = Z / (X + Y + Z)x,y,z称为色度坐标。由于三者之和为1,因此只需要x和y的值,图也可以是二维的。
通常来说,信号源或者显示器会选择色度图中的三个点,将其围成的三角形作为其颜色空间,所以,一般的颜色空间不能表示所有的颜色。
NTSC,PAL,SECAM,sRGB,scRGB所选取的都不相同(具体不列出了)。
这里有三篇文章,大家可以看看,以前也有知友推荐过。
UI 设计知识库 [01] 色彩 · 理论
UI 设计知识库 [02] 色彩 · 理论 - 常见问题
UI 设计知识库 [03] 色彩 · 配色
中英文对照表
|