u6709什么意思,709什么意思( 四 )


模拟 D55 (左)和 D65 (右)带来不同的色彩感觉
为了 100% 还原颜色和颜色的实际观感,我们还需要在色彩空间里设定一个目标白色,通过这个精准的白点能够精确正确的色彩状况:在色彩空间里应用最广泛的 D65 就是太阳正午时阳光的色温,而印刷业用 D55 就是上午或午后时阳光的色温 。
用编码保证观感同样的色彩在不同的环境光、哪怕是相似的明暗环境下,也能给人带来不同的视觉观感 。
不同环境光的影响有多大?可以看下面这张图:明明是三个一模一样的色块,在明暗不同的背景上,呈现的视觉观感迥异 。这种现象叫做(Simultaneous Contrast Effect) 。
模拟明亮和昏暗环境带来不同的明暗感
究其原因,人眼和传感器在色彩敏感度上有着本质的不同 。相机传感器是线性的,有多少光就会照射就会让画面变亮多少;人眼则是非线性的,在接收到同样的光线之后,有的人可能还是会感觉不够亮 。
此外,人眼也有着极为广阔的感光范围 。我们同时需要在环境光线较弱的夜晚和环境光线明亮的正午分辨物体,因此人眼可感知的亮度范围为 10^-2 到 10^6 之间(这里的单位是 cd/m^2,大家更常见到的说法是 nit),可感受范围达 10^8 。而常见光源的亮度如下图:
常见光源的亮度,图片来自知乎用户 @如云般飘过
最后人眼对光的感光性也是有强弱变化并且有适应性的:晚上在房间里开着灯会感觉灯泡很亮,白天阳光照在房间里时同样一盏灯打开后就感觉没有那么亮了;晚上走进一间漆黑的房间,刚开灯时候会觉得灯光刺眼,但只需要一会儿就能适应灯光了 。
这些例子都说明,人眼对亮度变化的反应其实是一个近似 log 的函数:整体光线亮度较暗时,更能发现亮度的变化,而整体光线亮度较亮时对亮度变化的感知就相对变得不那么敏感了 。
一个 log 函数
经过实验,科学家还发现我们通过人眼想要发现一个物体比周围物体亮,还需要满足这个物体的亮度需要比周围物体亮 1% 。所以如果我们均匀划分亮度,能明显感觉到暗部亮度变化不足,而亮部变化又太丰富,不符合我们人眼对暗部亮度变化更加灵敏的特性 。
均匀划分亮度反而导致看起来并不连续,来自 UNDERSTANDING GAMMA CORRECTION
显然,在不同观看条件下,数字世界里的色彩也会呈现不同的观感 。
这里就要引入计算机刚刚普及时候我们一直使用的「大屁股」CRT 显示器了 。CRT 显示器内部的阴极射线管把负责电能转化成光能,而阴极射线管的工作原理决定了它的输入电压和输出亮度也是非线性关系:
I:输出亮度,V: 输入电压,γ:天然属性 Gamma
输入的电压和屏幕亮度的关系
I 是屏幕呈现的亮度,V 是输入的电压,不同显示器的 γ 值(也就是我们常说的 Gamma)各有不同,基本在 2.0~3.0 之间 。这条很像幂函数的曲线,可以在较低的电压时让亮度变化更明显,而在较高的电压让亮度变化变得不明显起来,完美符合了人眼的视觉特性——可以说是一条神奇的曲线 。
引入 Gamma 曲线以后灰阶过渡更加平滑,来自 UNDERSTANDING GAMMA CORRECTION
自然而然地,要想让不同亮度下的色彩变化更加符合人眼视觉特性,我们不妨将上面这种曲线引入到亮度划分上来,通过一定 Gamma 编码来让亮度划分从视觉上变得更均匀,层次也更多 。此外这种方式还能利用更少的色彩,让文件变得更加节省空间,减少电视、显示屏和摄像机的工艺难度,可谓一举多得 。
但是 Gamma 值随便定义是没有用的 。为了让 CRT 显示器的画面完美再现所拍摄物体的亮度和颜色,我们需要在色彩空间里定义 Gamma 值 。
正确定义的 Gamma 才能够正确还原颜色,来自 UNDERSTANDING GAMMA CORRECTION
最后,只有 CRT 显示器天然具备 Gamma 曲线,其他设备比如打印机、液晶显示器都是通过内置电路或驱动模拟 Gamma 曲线,这也为我们未来校准颜色打下基础 。
扩展:认识常见色彩空间和编码上面介绍完那么多理论和为什么要有它们进行了详细的解释,这能很好的帮助我们理解下文和未来的内容 。在接下来的文章中,我将主要介绍常见的色彩空间和色彩编码方式 。
RGB 色彩模型RGB 色彩模型是我们目前日常生活里最常用的模型,无论屏幕显示、相机捕获还是扫描仪扫描都会用到 。
sRGB 是我们目前最常用的色彩空间
其中我们接触的最多的就是惠普与微软于 1996 年一起开发的用于显示器、因特网的一种标准 RGB 色彩空间,即 sRGB 。这种标准得到了 W3C、Exif、英特尔、Pantone、Corel 以及其它许多业界厂商的支持,是目前最广泛使用的色彩空间 。