3. 自动曝光(AE)原理:从18%灰卡到曝光三角

自动曝光,说白了就是让相机自己决定「进多少光」。我刚开始做ISP时,觉得AE不就是调调亮度嘛,后来才发现——这里面的坑,一个比一个深。

这一章,我们先把AE的根基打牢。18%灰卡、测光模式、曝光三角,这三个东西搞不明白,后面调AE算法就是瞎蒙。

3.1 18%灰卡:相机眼中的「标准亮度」

为什么是18%?不是50%,也不是10%?

我当年也问过这个问题。后来在实验室里对着灰卡拍了三天,才真正理解——18%灰,对应的是人眼感知的中等亮度。你想想看,一张白纸反射率接近90%,一张黑纸不到5%,而18%正好卡在中间。

相机测光系统默认:把画面平均亮度映射到18%灰。这就是AE的核心假设。

核心结论:所有自动曝光算法,本质上都在回答一个问题——「当前画面离18%灰差多少?我该怎么调参数补回来?」

举个实际例子。拍雪景时,大片白色会让相机觉得「太亮了」,于是自动压曝光。结果呢?雪变成灰色。这就是18%灰假设的副作用。我做过一个项目,用户在雪地里拍视频,画面灰蒙蒙的,最后我们加了一个场景检测模块,检测到高比例白色区域就主动补偿+1EV。

避坑指南:我曾经在调试AE时忽略了一个细节——不同传感器的线性响应区间不一样。同一个18%灰卡,在CMOS A上输出120DN,在CMOS B上可能只有90DN。AE的参考点必须针对具体传感器标定,不能直接复用。

3.2 测光模式:相机怎么看世界

测光模式决定了「相机用哪些像素来计算平均亮度」。我见过不少工程师把测光模式当成一个简单的开关选项,其实它对最终曝光的影响非常大。

测光模式 测光区域 权重策略 典型场景
矩阵测光 全画面分区 多区域加权平均 风景、日常拍照
中央重点测光 画面中央60-80% 中央权重高,边缘低 人像、主体居中
点测光 中央1-5%区域 仅参考小区域 逆光、微距、舞台

3.2.1 矩阵测光:全盘考虑

矩阵测光把画面分成几十个区,每个区独立测光,然后根据场景识别结果分配权重。比如天空区域权重低一点,人脸区域权重高一点。

我参与过一款手机ISP的AE调试,矩阵测光用了16×12=192个分区。每个分区统计亮度直方图,然后喂给一个轻量级场景分类器。效果确实好,但计算量也大——每帧要多花0.3ms。嗯,这里要注意,嵌入式平台上每一毫秒都很宝贵。

3.2.2 中央重点测光:老派但可靠

中央重点测光假设「主体在画面中央」。这个假设在大多数情况下成立,所以它比矩阵测光简单,也比点测光稳定。

我个人习惯在调试初期先用中央重点测光。为什么?因为它的行为可预测。矩阵测光有时候会「聪明反被聪明误」,场景识别错了,曝光就偏了。中央重点测光至少不会突然抽风。

3.2.3 点测光:精准但危险

点测光只参考画面中心一个小圆点区域。你用点测光对准人脸,人脸曝光就准;对准背景,背景曝光就准。但如果你对准了高光或阴影——画面就废了。

警告:点测光在自动模式下非常容易翻车。我曾经在调试一个安防摄像头时,点测光对准了墙上的黑插座,结果整个画面过曝到飞起。后来我们加了一个保护逻辑:点测光模式下,如果测光值与全局平均偏差超过3档,自动回退到中央重点。

3.3 曝光三角:光圈、快门、ISO

曝光三角是AE的「执行层」。测光算出了目标亮度,曝光三角负责实现它。这三个参数互相制约,调整一个,另外两个就得跟着变。

曝光三角关系图 光圈 Aperture 快门 Shutter ISO 感光度 三者互相制约:调大光圈 → 提高快门或降低ISO;降低快门 → 缩小光圈或降低ISO

3.3.1 光圈:进光量的阀门

光圈用F值表示。F值越小,光圈越大,进光越多。F1.8比F2.8进光量多一倍(一档)。

但光圈不只是控制亮度。它还影响景深——大光圈背景虚化,小光圈全景清晰。AE算法在做决策时,必须考虑用户意图。如果用户选了人像模式,AE应该优先开大光圈;如果是风景模式,就收小光圈。

关键参数:光圈每差一档(√2倍),进光量差一倍。F1.4 → F2.0 → F2.8 → F4.0,每步减半。

3.3.2 快门:曝光时间的长短

快门速度决定了传感器收集光线的时间。1/100秒比1/200秒进光量多一倍。

快门有两个限制:

  • 手抖模糊:安全快门一般是1/焦距。50mm镜头至少1/50秒。
  • 运动模糊:拍跑步的人,快门至少1/500秒。

我记得有一次调试运动相机的AE,用户反馈画面总是模糊。查了半天,发现AE算法为了压低ISO,把快门降到了1/30秒。跑步的人当然糊了。后来我们加了一个运动检测模块,检测到运动就强制快门不低于1/250秒。

3.3.3 ISO:感光度的代价

ISO是传感器对光信号的放大倍数。ISO 100画质最好,ISO 3200噪点满天飞。

AE算法的核心权衡就在这里:用ISO换快门,还是用快门换ISO?

策略 优点 缺点 适用场景
优先低ISO 画质好,噪点少 快门慢,容易糊 三脚架、静物
优先高快门 抓拍清晰 ISO高,噪点多 运动、儿童
均衡策略 两者兼顾 都不极致 日常拍照

我的经验:在手机ISP上,我通常把ISO上限设为1600。超过1600的噪点,后处理降噪也救不回来。宁可让画面暗一点,也别让噪点炸掉。用户对「暗」的容忍度,远高于对「脏」的容忍度。

3.4 曝光三角的联动决策

AE算法的核心逻辑可以简化为三步:

  1. 测光:计算当前画面亮度,与目标亮度(18%灰)比较,得到亮度偏差ΔEV。
  2. 策略选择:根据场景模式(人像/风景/运动)决定优先调整哪个参数。
  3. 参数映射:把ΔEV分配到光圈、快门、ISO上。

举个实际例子。假设当前画面暗了2档(ΔEV = -2):

  • 人像模式:开大光圈(F2.8→F1.4,+2档),快门和ISO不变。
  • 运动模式:降低快门(1/500→1/125,+2档),光圈和ISO不变。
  • 夜景模式:提高ISO(400→1600,+2档),光圈和快门不变。

注意:实际AE算法不会一步到位。它会分多步逼近目标,每帧调整0.3-0.5档,避免画面亮度突变。这个「平滑过渡」的节奏,我调了整整两个月才找到手感。

3.5 本章小结

自动曝光的根基就三件事:

  • 18%灰卡是相机的亮度参考基准,所有测光都围绕它转。
  • 测光模式决定了「看哪里、怎么加权」,选错了模式,曝光就偏了。
  • 曝光三角是执行层,光圈、快门、ISO互相牵制,AE算法就是在三者之间找平衡。