01
伽马校正的形式与效果
人眼的感知明亮度(brightness)是与物理量亮度(luminance,单位:cd/m2)呈非线性关系的,且人眼的恰可察觉差(just noticeable difference, JND)与适应亮度呈正相关。因此,人眼对于暗部细节的感知能力要强于亮部。
对于相机而言,其感光元件的响应值是与亮度线性相关的,对亮部与暗部的细节感知能力基本相当。伽马校正在一定程度上便是用于校正人眼感知与相机响应之间的差别,将图像以基本符合人眼感知的形式存储下来。具体而言,伽马校正一般采用幂函数的形式:
式中,Vi与Vo分别为输入原始响应值与伽马调制后的响应值,一般在0到1之间,而γ为校正参数,用于调节伽马校正曲线的形状。图1中给出了不同伽马值对应的曲线,而上一期中提及的斯蒂文斯定律也是幂函数的形式,对于亮度感知一般指数取小于1的数值。
图1 不同γ取值的伽马校正曲线
将图1中的伽马校正曲线应用于同一幅图像中,效果见图2。结合图1的幂函数曲线与图2可见,小于1时图像的暗部细节得到增强,而大于1时图像暗部被压缩。
图2 同一幅图像采用不同γ取值时的伽马校正效果
02
伽马校正与相机系统的编码
我们知道,人眼可感知的动态范围(dynamic range)远大于相机可采集的动态范围,同时相机图像存储受制于位深(bit depth)。因此,相机要在有限的编码位深下记录更多有效信息,便需要合理高效的编码系统。
一些实验表明,在明视觉条件下用于表征明亮度感知的韦伯分数约为1.4%。也就是说,在均匀的背景下,当前景亮度变化达到背景亮度的1.4%时,人眼才能感受到亮度的变化。这为编码系统提供了重要的依据。在对图像进行编码的时候,相邻编码值对应的场景亮度差必须小于1.4%才能保证在人眼看来没有变化。
一般而言,常见图像格式各颜色通道的位深为8比特,即数值为0-255。如果采用线性编码,小于72的编码值所对应的亮度变化便超过了韦伯分数。为了更好地利用编码位深,相机系统中便会采用伽马校正对线性响应值进行处理:
式中,L为线性响应值,即场景亮度值,V为伽马校正后的编码值。我们知道,反射比为18%的中性色在人眼看来是50%感知明亮度的中灰。因此,以人眼为依据,则γ约为0.4,实际上相机系统中的伽马取值会与上述略有不同。图3中以4比特为例展示了两种编码方式的视觉效果,可见伽马校正后暗处分配的编码空间更多,更为符合人眼的视觉机理,看起来更为平滑。
图3 不同编码的视觉效果
03
伽马校正与显示设备的电光转换特性
在图像系统中,采集端与显示端是相辅相成、息息相关的。相信有小伙伴会产生疑问——既然图像在编码时进行了伽马校正,那在显示端是否需要相反的校正以保证显示图像与现实场景尽可能接近?
在计算机刚普及的时代,几乎市面上只有阴极射线管(cathode ray tube, CRT)显示器,其电光转换函数(electro-optical transfer function, EOTF),即亮度与电压(响应值)的关系是幂函数的形式:
式中, γ取值在2到3之间。因此,从图像采集到显示,相机的伽马校正(也可以称为一种光电转换函数,opto-electrical transfer function, OETF)与传统显示器的EOTF构成了一种图像亮度编解码系统,见图4。当相机与显示器的γ互为倒数时,便可以粗略的认为显示器亮度与原始场景呈线性关系,也就是所谓的“所见即所得”。当然,现实场景与显示器的动态范围差异巨大,并不能真正实现现实场景的完美复现。另外,当相机与显示器的伽马不为倒数关系时,该系统的等效伽马不为1,而最佳的等效伽马与显示器观察环境有关。
图4 从采集到显示的伽马亮度调制
现如今,我们已见不到CRT显示器的身影,取而代之的是液晶或是OLED显示器。这些显示器并不天生具有Gamma特性,而是人为设定了Gamma形式的电光转换曲线。
04
总结
虽然伽马校正可以提升编码位深的利用效率,同时较为符合人眼的感知规律。但是,根据韦伯-费希纳定律,人眼的明亮度感知与亮度其实是呈对数关系,伽马校正的曲线并不完全符合该关系。另外,伽马校正在亮部或高光的表现欠佳,因为其分配的编码空间较小。
为了解决伽马校正的缺陷,目前所有主流摄影机都配备了对数(Log)校正。此外,高动态范围(high dynamic range, HDR)技术也在显示端应用了对数形式的电光转换曲线。