伽马校正
定义
伽马校正是针对影像系统里光线的辉度(luminance)或三色刺激值所进行的非线性运算或反运算,也被称作伽马非线性化(gamma nonlinearity)或伽马编码(gamma encoding)[1]。在数学上,它一般表示为幂函数 $V_{out} = A \cdot V_{in}^{\gamma}$,其中 $A$ 为常数,$\gamma$ 即伽马值,输入与输出通常都是 0 至 1 的归一化非负实数[1]。
当 $\gamma < 1$ 时,编码运算称为伽马压缩(gamma compression);当 $\gamma > 1$ 时,有时称为解码伽马值,相应运算称为伽马展开(gamma expansion)[1]。
需要注意的是,伽马校正所指的指数并不总是公式里写出的那个数字。sRGB 传输函数的幂次是 2.4,但整体效果更接近指数约为 2.2 的纯幂律函数[3]。
原理
伽马校正之所以必要,源于两类非线性同时存在。其一,早期主流的阴极射线管显示器输入电压与发光强度不成正比,而是近似服从幂律,指数通常在 2.2 左右[4]。其二,人眼对亮度的感受也近似呈幂函数性质,对暗部的差异比亮部更敏感[1]。
若在采集端用指数约为 0.45 的曲线预先压缩信号,再经指数约为 2.2 的显示器还原,端到端的整体指数就接近 1,画面亮度与原场景大体相符[2]。这一分工还带来数据利用上的好处:8 位通道若直接存线性值,暗部会缺少足够的量化级,而先做伽马编码可以把码字更多分配给视觉敏感的暗区,减少可见的精度伪影[5]。
对于 CRT,电子枪电流密度按约 3/2 次幂随栅极电压变化,整管电流与亮度则近似服从 5/2 次幂关系,实际产品的指数会偏离这个理论值[6]。现代标准多采用分段函数,在极暗处取线性段、其余段取幂律,使曲线在衔接点处连续且导数一致[7]。例如 Rec.709 规定的编码曲线在 $\Phi < 0.018$ 时为 $V = 4.5\Phi$,其余区间为 $V = 1.099\Phi^{0.45} - 0.099$[8]。
发展历程
阴极射线管于 1897 年由德国科学家布劳恩发明,其后成为电视接收机与计算机显示器的主要显示器件[9]。电视发展早期即发现其光输出与输入电压不成正比,PAL 与 SECAM 制式对应的指数约为 2.8,NTSC 制式约为 2.2[9]。
由于摄像机传感器输出大体与场景光强成正比,补偿 CRT 非线性的校正被放在摄像机内部完成。这样安排是出于成本考虑:把昂贵的处理电路放在数量较少的演播室摄像机里,比放进大量接收机更经济[2]。早期 NTSC 标准要求摄像机传递函数的指数为 1/2.2,约等于 0.45;后来采用的分段函数行为可用指数约 0.52 的幂函数近似[2]。
固态摄像机普及后性能更稳定可预期,ANSI/SMPTE 170M-1994 与 ITU-R BT.709 等标准重新定义了 CRT 的电光特性及参考摄像机的补偿特性[9]。2011 年 3 月,国际电信联盟无线电通信部门发布 ITU-R BT.1886 建议书,为高清电视演播室制作所用的平板显示器规定参考电光转换函数,指数取 2.4,用于替代已不再生产的 CRT 参考监视器[10]。
液晶、等离子等新型显示器本身并不具备 CRT 的幂律响应,但为兼容既有的海量内容和设备体系,通常仍模拟 CRT 的伽马曲线。显示端也因此出现了由操作系统或显卡查表完成的校准方式,把校正曲线写入查找表后再送数模转换器[3]。
应用
在消费影像领域,相机输出的 JPEG 通常按 sRGB 色彩空间保存,其中已包含约 0.45 的伽马编码,用于预先补偿显示器[11]。电视与视频系统则依靠摄像机预校正加显示器反校正的组合,使整条链路呈现接近线性的亮度关系[9]。
在计算机图形与网页渲染中,混色、抗锯齿、图像缩放等运算都假定数据是线性的;若直接对伽马编码值做平均,结果会明显偏离正确亮度,因此需要先转换到线性空间计算、输出时再编码回 sRGB[5]。纹理存储也常沿用幂律编码,以便在有限位深下保留更多暗部细节[4]。
在科学成像中,显微镜探测器输出的原始数据是线性的,直接显示在 gamma 约 2.2 的显示器上会偏暗,因此显示环节常施加约 0.45 的伽马来还原观感;更稳妥的做法是只重映射查找表而不改动像素值,避免破坏后续定量分析[11]。
局限
伽马校正并非适用于所有场合。若图像各部分亮度分布本身足够均匀明亮,调整伽马未必带来好处;显示器较高的伽马反而会增强亮部的对比感,背景弥散而偏亮的图像不做校正可能更耐看[11]。
用伽马校正去提亮或压暗同一被摄物的不同曝光影像以做影调匹配,隐含了相机响应函数为指数形式的假设,这一假设并不符合多数相机的实际压缩型响应,因此这种做法在原理上并不成立[8]。
位深有限时,幂律编码在动态范围较大处会暴露量化不足的问题。传统的 2.2 伽马曲线是针对峰值亮度约 100 cd/m² 的标准动态范围显示器优化的;用于高动态范围内容时,即使每通道 10 位也可能不够,暗部渐变容易出现条带[12]。为此高动态范围电视系统改用混合对数伽马(HLG)与感知量化(PQ)等新的传输函数[13]。
此外,伽马是显示设备的个体属性,软件往往无法直接查询到准确值,只能猜测或依赖用户校准[14]。当编码端与显示端的伽马约定不一致时,交换的图像会显得过亮发白或过暗过硬[2]。
参见
参考资料
- [科普中国]-伽玛校正 [引用日期2026-10-19]
- PNG (Portable Network Graphics) Specification, Version 1.1 [引用日期2026-10-19]
- Gamma correction [引用日期2026-10-19]
- 使用伽玛校正 - 跳转至主内容 跳到 Ask Learn 聊天体验 [引用日期2026-10-19]
- w3.org 上的网页 [引用日期2026-10-19]
- Reconsideration of CRT Monitor Characteristics [引用日期2026-10-19]
- dataformat.1.2(PDF) [引用日期2026-10-19]
- Gamma Correction - Chapters and Articles [引用日期2026-10-19]
- Gamma correction [引用日期2026-10-19]
- ITU-R [引用日期2026-10-19]
- gamma-preprint(PDF) [引用日期2026-10-19]
- CN105379260B(PDF) [引用日期2026-10-19]
- Frequently Asked Questions on [引用日期2026-10-19]
- Gamma Correction [引用日期2026-10-19]