一、AE概述与行业背景
1.1 什么是自动曝光(AE)?
自动曝光,说白了就是让相机自己决定「拍多亮」。
你按下快门之前,AE 模块会做一件事:测量当前场景的亮度,然后调整曝光参数——快门速度、光圈、增益——让最终图像既不暗成一片,也不亮到过曝。
我刚开始做手机摄像头调试时,总觉得 AE 不就是个亮度闭环嘛,有什么难的?后来发现,真正落地时坑多得很。同一个场景,有人觉得亮才好看,有人觉得暗才有氛围。AE 要做的,是在各种光线条件下,给出一个「大多数人能接受」的亮度。
1.2 AE在相机系统中的位置
一个完整的相机 ISP 流水线里,AE 不是孤立的。它和 AWB(自动白平衡)、AF(自动对焦)并称「3A」,三者互相影响。
举个例子:你调高了曝光增益,图像变亮了,但颜色饱和度也会跟着变——这时候 AWB 就得重新算白平衡。同样,AE 在低光下会拉长曝光时间,如果画面里有运动物体,AF 就得考虑是不是该切换到短曝光模式。
| 模块 | 职责 | 与AE的耦合 |
|---|---|---|
| AE | 控制亮度 | — |
| AWB | 控制色温 | AE 增益变化 → 颜色偏移 → AWB 需重新收敛 |
| AF | 控制清晰度 | AE 曝光时间变化 → 运动模糊 → AF 需调整策略 |
我在项目中遇到过最头疼的情况:AE 和 AWB 同时收敛,结果两个环路互相拉扯,画面亮度刚稳定,颜色又开始漂;颜色稳了,亮度又跳了。后来我们加了「收敛优先级」——先让 AE 稳定,再启动 AWB 的精细调整。嗯,这个顺序很重要。
1.3 AE的行业标准与挑战
行业内对 AE 的要求,其实可以归纳成三个字:快、准、稳。
- 快:场景切换后,AE 要在几帧内收敛到目标亮度。用户从室内走到室外,你总不能让画面亮暗闪烁好几秒吧?
- 准:亮度误差控制在 ±0.3 EV 以内。我见过一些低端方案,误差能到 ±1 EV,拍出来的照片一张亮一张暗,用户体验极差。
- 稳:收敛后不能有周期性抖动。尤其是视频录制,AE 一旦震荡,画面就会「呼吸」——忽明忽暗,非常明显。
但实际落地时,有三个老大难问题:
动态范围
真实场景的亮度范围,远大于传感器能记录的。比如逆光人像:人脸暗到接近 0,背景亮到接近饱和。AE 该保人脸还是保背景?
行业里常见的做法是分区测光——把人脸区域权重提高,背景适当过曝也不管。但如果你做的是安防摄像头,人脸和车牌都得看清,那就得用 HDR 合成。AE 在这里的角色,是决定每帧的曝光参数,让合成后的图像动态范围最大化。
闪烁(Flicker)
这个坑我踩过。在 50Hz 交流电环境下,日光灯每秒闪烁 100 次。如果曝光时间不是 10ms 的整数倍,画面就会出现明暗条纹——这就是闪烁。
解决办法?强制曝光时间对齐到电网频率的整数倍。50Hz 地区用 10ms、20ms、30ms……60Hz 地区用 8.33ms、16.67ms……
延迟(Latency)
从场景变化到 AE 收敛,中间有多少帧延迟?
- 传感器读出延迟:1~2 帧
- ISP 统计计算延迟:1 帧
- AE 算法计算延迟:几乎可忽略
- 参数生效延迟:1~2 帧
加起来,最少也要 3~5 帧。如果算法收敛速度慢,延迟会更大。对于手机拍照,用户能容忍半秒的延迟;但对于自动驾驶摄像头,延迟超过 100ms 就可能出事故。
所以,AE 的收敛速度,本质上是在「稳定性」和「响应速度」之间做 trade-off。你调快了,容易震荡;调慢了,用户嫌卡顿。我个人的习惯是:先保证不震荡,再逐步加快收敛步长。
1.4 AE系统框架图
下面这张图,是我自己画的一个 AE 系统框架。它展示了从场景亮度到最终曝光参数的完整链路。
你看,从场景到参数输出,中间经过传感器、ISP、算法引擎,最后还要反馈回传感器。这个闭环的每一环,都可能引入延迟和误差。做 AE 落地,本质上就是在跟这些延迟和误差打交道。
1.5 小结
这一章我们聊了:
- AE 是什么——亮度闭环控制
- AE 在 3A 中的位置——与 AWB、AF 互相耦合
- 行业三大挑战——动态范围、闪烁、延迟
嗯,这些都是基础。但基础往往是最容易出问题的地方。我见过太多方案,算法理论完美,一到真实场景就崩——要么闪烁没处理好,要么收敛太慢。所以,后面的章节我们会深入每个细节,从统计方法到控制策略,一步步把 AE 落地讲透。