3. 曝光三角模型:光圈、快门、增益(ISO)的物理意义,数字域与模拟域增益的区别,曝光量与亮度的线性关系
曝光三角,这个词做ISP的应该都不陌生。但说实话,很多人只是背下了「光圈大进光多、快门慢进光多、ISO高噪点多」这几句口诀。真正到了调AE收敛的时候,你会发现——光知道口诀,根本不够用。
这一章,我们就把曝光三角拆开揉碎。我会结合我在几个手机平台项目里踩过的坑,把光圈、快门、增益的物理意义讲清楚。尤其是模拟增益和数字增益的区别,很多工程师在这里翻过车。
3.1 光圈:进光的「水龙头」
光圈,说白了就是镜头里那个能开能合的孔。孔径越大,单位时间进光越多。
光圈值用F数表示,比如F1.8、F2.0。注意,F数越小,光圈越大。这个关系很多人一开始会搞反。
| 光圈F值 | 相对孔径 | 进光量(相对F2.0) |
|---|---|---|
| F1.4 | 大 | 2倍 |
| F2.0 | 中 | 1倍(基准) |
| F2.8 | 小 | 0.5倍 |
在AE收敛里,光圈通常是固定的。手机镜头基本都是定光圈,你没法在运行时调它。所以,真正用来调节曝光量的,是快门和增益。
3.2 快门:曝光时间的「闸门」
快门控制传感器收集光线的时间。时间越长,积累的光子越多,信号越强。
快门时间通常用毫秒或行数表示。比如1/30秒、1/60秒。在AE算法里,我们更常用「曝光行数」这个概念——因为传感器是逐行读出的。
这里有个关键点:快门时间不能无限长。手抖、物体运动都会导致模糊。我见过一个项目,AE为了追求亮度把快门拉到1/10秒,结果预览画面全是拖影。用户投诉说「这手机是不是坏了」。
3.3 增益(ISO):信号的「放大器」
增益,也叫ISO,是对传感器输出信号的放大。但它不是白给的——放大信号的同时,噪声也被放大了。
增益分为两种:模拟增益和数字增益。这个区别,是AE调优里最容易出问题的地方。
3.3.1 模拟增益 vs 数字增益
模拟增益是在传感器读出电路上做的放大。它发生在信号被数字化之前。数字增益是在ADC之后,对数字信号做的乘法。
为什么这个区别重要?因为模拟增益放大的是「信号+噪声」,而数字增益放大的是「已经包含噪声的数字信号」。前者在信噪比上更有优势。
| 特性 | 模拟增益 | 数字增益 |
|---|---|---|
| 作用位置 | ADC之前 | ADC之后 |
| 信噪比影响 | 信号和噪声同时放大 | 放大已量化的噪声 |
| 量化噪声 | 不引入额外量化噪声 | 可能放大量化误差 |
| AE优先级 | 优先使用 | 最后手段 |
我曾经在一个低光场景调试中,发现画面噪点特别多。查了半天,发现AE策略把数字增益用到了6倍,而模拟增益只用了2倍。调整策略后,优先把模拟增益推到4倍,数字增益降到1.5倍,画面干净了很多。
3.4 曝光量与亮度的线性关系
曝光量(Exposure Value, EV)和最终图像亮度之间,存在一个线性关系。但这个线性关系,是在对数域里看的。
简单说:曝光量每增加一倍,图像亮度(在RAW域)也增加一倍。但人眼对亮度的感知是对数的,所以我们在AE里通常用对数或线性分段来处理。
曝光量的计算公式:
EV = log2( (光圈^2) / 快门时间 )
或者更直观的:
曝光量 ∝ 进光面积 × 曝光时间 × 增益
在AE算法里,我们通常用目标亮度(Target Luminance)来反推需要的曝光参数。比如,当前画面亮度是80(0-255范围),目标是120,那就需要增加50%的曝光量。
但这里有个陷阱:增益和快门对亮度的影响不是完全等价的。增益增加会带来噪声,快门增加会带来模糊。所以AE策略需要权衡。
3.5 曝光三角的SVG结构图
下面这张图,把曝光三角的关系和AE收敛的决策路径画出来了。你可以看到光圈、快门、增益如何共同影响最终亮度,以及AE策略的优先级顺序。
3.6 曝光量与亮度的线性映射
在RAW域,曝光量和像素值之间是严格线性的。但经过Gamma校正、色调映射后,这个线性关系会被打破。
AE算法通常工作在RAW域或线性RGB域。我们计算目标亮度时,用的也是线性值。
举个例子:
当前平均亮度(线性): 80
目标平均亮度(线性): 120
需要增加的曝光倍数: 120 / 80 = 1.5 倍
如果当前快门是1/60秒,增益是2倍
方案A:快门调到 1/40秒(1.5倍)
方案B:增益调到 3倍(1.5倍)
方案C:快门1/50秒 + 增益2.4倍(组合)
三种方案都能达到目标亮度,但效果完全不同。方案A可能引入运动模糊,方案B可能噪声过大,方案C是折中。
3.7 避坑指南
最后,分享几个我在项目中踩过的坑:
- 增益跳变太大: 我曾经在AE收敛里让增益从1倍直接跳到4倍,结果画面亮度突变,用户能明显感觉到闪烁。后来加了平滑过渡,每次只调0.25倍。
- 快门和增益同时调: 有些AE策略会同时调整快门和增益,导致收敛不稳定。我建议每次只调一个参数,等画面稳定后再调下一个。
- 忽略模拟增益上限: 不同传感器的模拟增益上限不同。有的传感器模拟增益只能到4倍,超过就切到数字增益。如果不了解这个特性,AE策略会失效。
- 亮度目标设得太高: 在低光场景下,强行把目标亮度拉到正常光照水平,会导致增益过高、噪声爆炸。我习惯根据环境照度动态调整目标亮度。
曝光三角是AE的基础,但真正做好AE收敛,需要理解每个参数背后的物理限制和噪声特性。下一层,我们会深入AE收敛的具体算法实现。