Gamma校正-计算机图形学

一、历史的巧合

在早期介绍Gamma校正的文章中都是这样说的:由于CRT显示器响应曲线的非线性关系,即亮度与输入电压呈指数为2.2的幂函数关系,如下图中实线所示。如果直接將相机或摄像机采集到的线性图像输入,图像就会被压得很暗,因此就需要对输入图像做一个与CRT响应曲线相反的校正如下图中虚线所示,將图像提亮,使输出与原图保持一致,这就是图像的Gamma校正,Gamma值为2.2。这种说法在很长一段时间内被视为对Gamma校正的经典解释。

Gamma校正

Gamma校正

现在的显示器大多数用的是LCD,这种显示器已不具备CRT这样的特性,应该说可以不需要或者是用另外的参数来做Gamma校正。但是生产厂商还是通过硬件或软件方法使其保持有Gamma=2.2响应曲线,也就是说输入图像仍然需要做2.2Gamma校正。这是为什么呢?原来输入图像的Gamma校正不仅是为了补偿CRT的响应曲线,更重要的是能真实反映人眼对亮度感知的特性和合理分配8位图像的阶值。这个美妙的历史巧合一直延续至今。但是现在CRT显示器已被淘汰,再沿用这样的解释就会引起更多的混乱与矛盾,因此有必要回归到Gamma校正的真实意图。

 

二、人眼视觉与中灰色

 

人眼对亮度的感知是非线性的,也就是感知与亮度的增加不是成正比的,在一个小黑屋中,当点燃第一支蜡烛时会感受到亮度有很大提高,如果已经点燃了100支蜡烛,再点燃第101支蜡烛时感觉到亮度的变化是很微小,尽管第101支蜡烛与第一支蜡烛对亮度的贡献是相同的。总量为A,变化量为ΔA,人的感觉取决于ΔAA,而不是ΔA。相同的ΔA,总量越小感觉越明显,也就是在较暗的环境下对亮度的变化更为敏感。因此在从黑色到白色线性分佈的色板中,人眼感知到的中灰色不在色板中间,而是在物理亮度为白色的20%左右的地方,如下图所示。所以摄影用的灰卡称为18%灰,即为白卡18%反射率。

Gamma校正

 

三、8位图像的灰阶分配

 

相机的光电传感器是线性元件,将光的强度线性地转换为电信号,再通过A-D转换为数字信号,在8位图像中就是02550为黑色,255为白色),由于是线性分佈,亮度为20%白色的值为255x0.2=51。也就是人眼感知到的中灰色的阶值为51,由此造成了亮区有205个阶值,而暗区只有50个阶值,这种阶值分配的不均匀性导致亮区阶值的浪费和暗区的分辨率很低。利用Gamma=1/2.2校正能将人眼感知到的中灰色(即亮度为20%白色)的阶值提升到128,则亮区与暗区阶值分佈圴匀,各有128个灰阶,使图像的分辨率有明显的改善,如下图所示。这就是Gamma校正的真正意图。原来所说的Gamma校正为了补偿CRT的响应曲线是有些本末倒置,混淆了问题的主要矛盾。

Gamma校正

 

四、不同阶段的Gamma校正

一个简单完整的图像过程包括图像采集、存储传输、显示输出三个阶段。在每个阶段都可加入Gamma校正。

图像采集阶段以相机为例,由于传感器是线性元件,拍摄所得的原始数据都是线性的,即RAW文件中存放的是线性数据。在转换为JPG的过程中做Gamma校正。根据颜色空间的配置文件决定校正系数,SRGBAdobe RGB都是Gamma=1/2.2。这种校正有时也称为前期Gamma 校正,该Gamma值也称为文件Gamma

在存储传输阶段是图像过程的中间环节,Windows系统在对图像存储和传输过程中一般不涉及Gamma校正,但Apple系统在图像存储传输中却做了1.4Gamma校正。此外有些查看及处理图像的应用程序,如Acdsee在编辑图像时可以修改Gamma的设置。Photoshop色阶命令中的中间滑块就是调节图像的Gamma校正。简单的图像查看软件一般都不提供Gamma校正。

显示输出阶段中主要是显示器固有的响应特性及相应的驱动程序将显示器的Gamma 设置为某一固定值,一般为2.2。经常见到的一些Gamma校正软件都是用来调整显示器最终的Gamma值。

在一个完整的图像过程中,应该使各个阶段的Gamma校正生成最终的Gamma1,即各阶段Gamma值的乘积为1。就可使输入与输出的图像保持一致。 

日期:2020-03-14
阅读:
作者:admin
字体:
收藏 推荐 打印 | 录入:admin | 来源:根元环保
相关新闻      
本文评论   查看全部评论 (0) [发表评论]