色彩管理中的Gamma值

色彩管理中的Gamma值

什么是Gamma值

  • 在图像处理和计算机视觉领域,Gamma运算通常用于校正图像的亮度,使之更符合人眼的感知特性。人眼对亮度变化的感知是非线性的,特别是在较暗的环境下,人眼对亮度的变化更为敏感。而摄像机和其他图像捕捉设备捕捉到的图像亮度通常是线性的,这意味着图像中的每个像素值直接与其捕捉到的光线强度成正比。
  • 因此,需要进行Gamma校正来弥补这种差异。Gamma校正通过非线性变换来调整图像的亮度,使得输出图像在视觉上更加自然和符合人眼的感知。
  • Gamma值的广义定义就是输入值和输出值的Gamma幂指数关系。输入与输出关系如下图所示
  • 输入和输出的关系可表达为:

=Gamma输出 = 输入^{Gamma}

  • Gamma=1,斜45°直线,不校正,输出=输入;Gamma大于1,曲线下压,输出值小于输入值,图像的较暗区域会被增强,而较亮区域则相对减弱;Gamma小于1,曲线上拱,输出值大于输入值,图像的较亮区域会被增强,而较暗区域则相对减弱。

为什么需要做Gamma运算

Gamma运算的目的

  • Gamma运算主要解决的问题有两个:
  1. 其一是为了解决人眼对自然亮度非线性感知的问题;
  2. 其二是因为记录存储的有限性。

人眼的非线性感知

韦伯定律

  • 韦伯定律(Weber’s Law),又称为韦伯-费希纳定律(Weber-Fechner Law)的一部分,是心理物理学中的一个重要定律,由19世纪的德国生理学家恩斯特·韦伯(Ernst Weber)提出。这个定律描述了感觉刺激的变化和感知变化之间的关系。

ΔI/I=kΔI/I=k

  • ΔI 是感觉阈值的变化量,即刚刚能察觉到的最小刺激变化;I 是原来的刺激强度;k 是一个常数,称为韦伯分数或韦伯比率,对于某一特定的感觉器官和某一特定的刺激类型,这个值是恒定的。
  • 韦伯定律表明,大自然中,感觉的差别阈限随原来刺激量的变化而变化,即为了察觉到刺激的变化,刺激强度的变化量必须与原始刺激强度的比例成正比。
  • 举个栗子:一间黑屋子中,点亮了一只灯泡A,人眼会感觉照亮整间屋子,持续点亮第2个、第2个......灯泡后,人眼会感觉屋子逐渐变得明亮,此时再点亮第N+1个灯泡,其实人眼没有什么感觉甚至微乎其微,为什么?
  • 这是因为亮度对人眼的刺激是非线性的,第1个和最后一个灯泡点亮对人眼的刺激感觉是不同的;人眼感觉黑->白范围“有限”,灯泡可以无限,但感觉会趋于一个有限制值。

在图像领域的应用

  • 下图显示了自然界的线性增长的亮度和人心里感觉的灰介关系图:
  • 当物理亮度达到白色的20%左右的时候,人的心目中已经感受到中灰色(即0.5处)的概念。而剩下的一半高光区的灰阶,需要用白色80%的物理能量才能照亮成白色。根据输入和输出的关系,可确定此时的Gamma大约在1.8~2.5,而现在大多数用2.2。
  • 所以,GAMMA值的应用非常多,如图像的拍摄中的相机的GAMMA、图像显示中的显示器的GAMMA、图像输出中的打印机、印刷机等GAMMA等,不同设备的GAMMA描述的都是此设备的信号值对应的亮暗关系,而且,这些关系都是非线性的。

记录存储的有限性

  • 使用不同的Gamma值:1.0(线性响应),1.8~2.2(较暗的图像),3.0(过暗的图像)显示同一幅图像:
  • 可见,较低的Gamma值(1.0)有一个较亮,较平稳的显示;而较高的Gamma值(2.2)有更高对比度的较暗的显示。现在显示器一般用8位深的RGB来记录数字图像,所以最大的数据存储量就是28 * 28 * 28 = 16,777,216,如果使用线性的方式进行存储自然中的亮度,那可能根本不够用。所以拍摄的图像先用Gamma进行压缩,保留了大部分的中间和暗调细节,再通过Gamma释放(校正)并显示,展示给人眼看见,保证了人眼在显示器上感觉和自然中相同。

特殊的Gamma值

Gamma值为1.0的线性响应

  • 对于采集设备,如相机或者扫描仪,Gamma为1.0的时候,图像不存在压缩和释放,直接将原自然高动态亮度1:1输出为高动态显示信号,如果不对图像进行Gamma校正,整体图像会显得更亮,会失去更多的中间调和暗调,同时图像文件的大小也会更大。如我们熟知的RAW工作流程就是一种线性Gamma流程。

Gamma的标准值

  • GAMMA值没有标准,如果要正确的找到GAMMA的标准,只能通过每台显示器的调整GAMMA更适合人眼的感觉,即感觉白-黑之间的渐变平滑,而且中间灰处于0.5中间的位置,如下图(8位深的RGB编码模式下):
  • 一般而言,显示器的GAMMA值会在1.8~2.5之间。由于最初的CRT显示器的GAMMA采用2.2,所以现在大部分显示器还是沿用2.2作为推荐的GAMMA值,但Mac中使用1.8。没有对与错,最正确的方法则是通过灰介自己找到最佳的GAMMA值。

参考:
色彩管理中的Gamma值的理解