伽马校正

一切计算机图形学理论,在建立了一系列的数学和物理模型去描述物体长什么样子,最终还是还是要让人看到才有意义。
德国生理学家韦伯.费希纳所发现的描述人的心理量和物理量的韦伯.费希纳定律:

韦伯发现,同一个刺激差别量必须达到一定比例才能引起差别感觉,这一比例就是上式子的k。
把人类能感到的最小差别量作为感觉量的单位,也就是每增加一个差别阈限,心理量增加一个单位。
感觉量与物理量的对数值成正比。这就是说,感觉量的增加落后于物理量的增加,物理量呈几何级数增长,而心理量呈算术级数增长。
所谓“几何级数”,又称“等比级数”,指的是这样一个数列,这个数列中的每一个数都是前一个数的固定倍数,这个倍数又称“公比”。
所谓“算术级数”,又称“等差级数”,指的是指的是这样一个数列,这个数列中的每一个数跟前一个数的差额是固定的,这个差额又称“公差”。

上面的总结:
人对外界刺激的感知是非线性的。如果以非线性的方式加强外界刺激,人对这个外界刺激的感觉程度是均匀增长的。

举例:
假设有一个完全封闭的小黑屋,在屋里均匀安装100盏功率为20w的电灯,我们站在屋里,开始的时候,这100盏灯都是关闭的,室内完全黑暗。
现在我们开启第一盏灯,显然第一盏灯对照亮室内的贡献是显著的——从完全看不见到能看到东西了(0到1的飞跃)。
接着再开第二盏灯,因为刚开第一盏灯的时候,屋里还是比较昏暗的,但是第二盏灯开了之后,屋里更加明亮了。
接下来就是依次开起剩余的灯,你可能会发现在开到90盏灯的时候,已经足够看到房间里的每个细节了。后面的10盏灯,打开与否效果变化不大。
在这里插入图片描述
当把这些生产出来的颜料按编号依次排列在我们眼前时,由于韦伯.费希纳定律所揭示的原因,
我们会发现:
编号比较靠前的颜色,如1,2,3号,为什么看起来一个比一个白得那么快。而编号靠后的那些颜色,如253,254,255号,为什么看起来都没有什么颜色变化,都是白色的?
为什么编号127的那个颜色,好像并不是正正好好的中灰色,而是偏白色一点。
而大家印象中的那个中灰色,反而和编号为56的那个颜色更接近。这一组颜色,并不是从黑到白均匀变化的颜料组。

现在问题变成了:在给定编号范围的前提下,如何调配各个编号的颜料客观反射率,使得这一系列颜料的颜色看起来是从黑到白均匀变化的。
例如编号为127的颜色的客观反射率是0.5,人眼看起来并不像是0.5客观反射率产生的视觉效果。
现在我们要给编号127的颜色找到一个客观反射率,使得人眼看起来,是由0.5客观反射率产生的视觉效果。
而这个问题,就和计算机图形学领域中的伽马校正类似。

人们经过大量的实践研究和总结,发现客观的物理数量数值O和人类的心理感应数值P呈幂函数关系,即:
在这里插入图片描述
O是横坐标;P是纵坐标;r是指数。上图为r取不同的值,函数曲线。

放到颜料颜色的问题来讨论,横坐标为客观反射率,纵坐标为人眼看到该客观反射率后觉得的主观反射率。
人们经过大量的实践研究得到,在亮度领域,人眼的伽马值约为1/2.2
其幂函数图像也接近于指数值(伽马值)1/2的曲线。
这也揭示了生产出来的颜料明明其客观反射率是均匀变化的(线性变化)的,但是看起来不是均匀变化的原因。

理解了颜料颜色的问题,也就能理解计算机中的伽马校正的含义。
假设使用数码相机拍摄到一个看起来是中灰色的物体,该中灰色对白光的反射率是0.21763。如果数码在采样并编码的过程中做一次伽马校正操作,即给定一个伽马值0.45454作为指数,对作为底数的客观反射率0.21763做求幂操作,得到中灰色的主管反射率为0.5左右。

此时,如果把这些主观反射率的灰度值编码进一个8位通道的数组,无论是比中灰色暗的暗部,还是比中灰色明的亮部,都能各自分配到128位的灰阶,这样灰白过度就显得很均匀。
如果不做伽马校正,中灰色便记录在0.2左右并存储,那比中灰色暗的暗部仅分配到50个灰阶(2560.2=50),采样严重不足。
而比中灰色亮的明部因为分配到200多个灰阶,则显得冗余。
但如果把存储空间变为32位通道的数组,那么伽马校正就没有必要了。
因为即使把中灰色记录在0.2左右的位置,比中灰色暗的暗部也能分配到0.2
2的32次方,约为858 993 459 个灰阶,足够存储均匀地描述人能感觉到的暗部信息了。

从上面举例可以看出,之所以会存在伽马校正这样一个概念,是因为:

  1. 基于韦伯-费希纳定律所揭示的原因,人对颜色暗部细节变化的感觉要比对明部细节变化敏感得多。
  2. 由于存储空间得限制,只能在有限数量得存储空间中存放尽可能多的颜色数据,而且要使得这一系列颜色变化得均匀,
    需要在对颜色数据进行编码时尽可能地调整,以保留暗部细节。该调整过程就是伽马校正。

很多书籍在介绍伽马校正时,都会从阴极射线管显示器CRT谈起,CRT显示器在显示最终像素值时,其电子枪输入电压与屏幕得光线输出存在一种物理关系,这种关系也可以用如下幂函数来表示:
在这里插入图片描述
V为输入电压;
α和γ(gamma)为显示器常量;
ε为显示器得亮度级;
I为最终生成的光强度。

一般地,CRT显示器的gamma取值范围在2.3~2.6。其曲线形状和走向接近于图2-11中gamma=2的曲线。
此时的横坐标为显示器电子枪的电压(可以理解为客观反射率),纵坐标为光强度。
这时,CRT显示器在显示像素时恰好就做了一次符合人眼感觉的伽马校正:假如CRT要显示一个客观亮度值为0.5的颜色,
因为式2-25所产生的伽马校正,这个值为0.5的客观亮度值被显示器输出成一个0.2左右的客观亮度值。
由于韦伯.费希纳定律所解释的gamma校正,对于0.2左右的客观亮度值,人就感觉成了0.5左右的值。

这样两个互为逆操作的伽马校正恰好使得客观亮度值和人眼看到的主观亮度值基本一致。

这时,在计算存储器中的客观亮度值就不需要像前面提到的数码相机的采样编码那样进行转换,直接存0.5即可。

上面的CRT显示器做的伽马校正,其伽马值大于1,称为解码伽马值(decoding gamma),该操作通常称为伽马展开(gamma expansion)。
摄像机(或人眼)做的伽马校正,其伽马值小于1,称为编码伽马值(encoding gamma),该校正操作称为伽马压缩(gamma compression)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值