071、Gamma 校正:从线性空间到非线性空间的映射曲线与暗部和亮部分配
2026/6/11 3:12:53 网站建设 项目流程

071、Gamma 校正:从线性空间到非线性空间的映射曲线与暗部和亮部分配

一、一个让我熬夜三天的Bug

去年做某款旗舰机的前置摄像头调试,客户反馈暗光自拍人脸“发灰”,像是蒙了一层雾。我盯着波形图看了两小时,RAW域数据明明正常,RGB直方图也没问题,但sRGB输出就是不对劲。最后发现是ISP pipeline里Gamma LUT加载顺序搞反了——线性数据先被Gamma压缩,然后才做CCM,导致色彩矩阵作用在了非线性空间上。这个坑让我意识到,Gamma校正远不止“拉曲线”那么简单。

二、Gamma的物理本质:人眼不是线性传感器

人眼对亮度的感知遵循韦伯-费希纳定律,对暗部变化极其敏感,对亮部变化相对迟钝。如果摄像头直接输出线性光强(比如0-4095的12bit RAW),在8bit显示器上你会看到:暗部细节挤在几个灰度级里,亮部却浪费了大量码字。这就是为什么需要Gamma编码——把有限的码字分配给视觉更敏感的区域。

数学上,标准Gamma曲线是:

V_out = V_in ^ (1/γ)

消费电子领域γ通常取2.2。注意这个指数是倒数——编码时用1/2.2≈0.454,解码时用2.2。很多新手搞反,结果画面要么死黑要么死白。

三、ISP Pipeline里的Gamma位置:别放错地方

在典型的移动ISP流程中,Gamma校正通常放在:<

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询