date
Aug 15, 2025
slug
2025-08-15-the-gamma-correction-in-ISP-processing-workflow
status
Published
tags
ISP
音视频
summary
本文详细总结了图像ISP处理流程中的Gamma校正模块,解释了在ISP处理流程中要包含Gamma校正模块的原因,以及主流ISP在进行Gamma校正的处理过程中的主要思路和工作流程。
type
Post
category
音视频
AI summary
本文详细总结了图像ISP处理流程中的Gamma校正模块,解释了在ISP处理流程中要包含Gamma校正模块的原因,以及主流ISP在进行Gamma校正的处理过程中的主要思路和工作流程。
Gamma校正存在的意义
在ISP对于Sensor输出RAW图像的处理流程中,Gamma校正模块是其中一个非常重要的图像亮度非线性变换模块。Gamma模块存在的意义,主要是解决图像传感器感光性能的线性,与人眼/显示设备感知和显示图像的非线性之间的匹配问题。
具体而言,图像传感器在曝光的过程中,对于光线强度和曝光时间长短的响应基本上是线性的,也就是说,光照强度增加一倍,图像传感器所输出的电信号也就增加一倍。
显示设备的输出电压与亮度效果的呈现之间存在的非线性关系,这一点要从古老的CRT显示器说起。对于CRT显示器而言,其显示亮度与输入电压之间成 γ≈2.2 的幂律关系,如果把图像传感器采集到的线性亮度信号直接输入到CRT显示器上显示的话,显示出来的效果会呈现出图像的暗部细节损失严重,整体画面偏暗,而亮部的对比度压缩,高光部分的层次感减弱。所以,为了能够在CRT显示器上把图像传感器采集的线性亮度图像以线性的方式呈现出来,就需要在把图像在CRT上进行显示之前,先进行一个Gamma Encode的运算,即对图像传感器的线性亮度图像进行一个 γ=0.45 的Gamma映射,然后把这个处理过的图像送入CRT显示器,CRT显示器显示出来的图像就可以把线性亮度还原回来。整体的流程如下图所示:

CRT显示器早已经被淘汰了,而目前主流的LCD/OLCD液晶显示器的亮度响应实际上是接近于线性的,所以理论上讲,直接把图像传感器采集的原始亮度图像,直接显示在液晶显示器上,就可以免去上面的Gamma映射的繁琐流程了。但问题是,这样的话,之前CRT时代所积累的大量图像文件(以前在进行图像压缩之前提前进行了Gamma Encode的运算处理),显示在LCD/OLCD显示器上就会有问题了。所以为了兼容CRT时代所积累的历史内容,现代的LCD显示器都会额外内置一个 $γ≈2.2$ 的校正,这样就可以继续保持之前的线性图像-编码gamma(0.45)处理-显示gamma(2.2)-线性图像的闭环。
人眼对于光照亮度的感知与以上逻辑类似,也是非线性的,其亮度感知规律符合韦伯-费希纳定律,具体来讲就是,人眼对于光照的暗区更加敏感,因此在低照度的情况下,人眼可以分辨极其微小的亮度变化;而对于光照的亮区就没有那么敏感了,在高亮度的情况下,人眼对光照亮度的变化往往很难察觉。

Gamma校正的流程
基于以上所描述的在ISP端进行的Gamma Encode处理和显示器端自动进行的Gamma Decode处理流程可知,在ISP处理流程中所执行的gamma encode需要对RGB三通道的亮度进行以下处理:
在ISP实际进行Gamma处理的计算流程中,因为直接计算各个像素的幂函数耗时高,所以实际工程中采用预计算LUT查找表实现来实时Gamma操作的幂映射。
Gamma校正模块的输入数据为经过Demosaic和CCM处理后的RGB域数据,每个像素都包含了RGB三个通道,但为了保证三个通道的色彩平衡,所以一般情况下对三个通道数据使用统一的Gamma映射表来进行Gamma转换操作。
- 以上提到的这种三个颜色通道共用同一组LUT表的处理方式也成为1D LUT,实际上就是Gamma亮度变换。在部分ISP或者图像处理流程中,还有一个3D LUT的概念,RGB三个通道使用各自的LUT表,一般用于实现一些色彩风格个性化的功能。
为了应对各种复杂的光照场景(如逆光、夜景),以及更好的适应人眼感知特性的非线性,对图像素质要求较高的主流ISP往往还会采用分段式可编程LUT表来实现更为精细化的控制。例如,分段式Gamma LUT将输入亮度范围(如0~255)划分为暗部(0~20%)、中灰(20%~70%)、高光(70%~100%)三个亮度区间,然后为每个区间独立配置不同的Gamma映射函数:
- 暗部:采用低 $γ$ 值,斜率平缓,拉伸暗区细节
- 中灰:采用标准 $γ$ 值,维持自然的对比度
- 高光:采用高 $γ$ 值或对数压缩,斜率陡峭,抑制过曝

这个分段LUT的设计可以很好的适应人眼的亮度响应,在暗部拉伸图像的亮度响应以保留更多的暗部细节,在亮部则压缩响应范围抑制过曝。