4. AE(自动曝光)基础理论

各位好,我是老周。在瑞芯微平台上调了这么多年3A,我始终觉得AE是门槛最低、但坑最多的模块。说白了,AE不像AF那样需要复杂的搜索算法,也不像AWB那样涉及色温估计——它核心就三件事:曝光三角怎么配合、直方图怎么看、目标亮度设多少。但就是这三件事,能把人折腾得够呛。

今天这一章,咱们就把AE的底裤扒干净。你把这些基础吃透了,后面调RK平台的AE策略时,至少能少走一半弯路。

4.1 曝光三角:光圈、快门、ISO的物理本质

先问个问题:曝光三角里哪个参数最重要?

我的答案是——没有最重要的,只有最受限的。你想想看,在手机或IPC这种小尺寸传感器上,光圈基本是固定的,能调的只有快门和增益。但在RK平台上,我们面对的传感器五花八门,有的带P-Iris,有的只有固定光圈,所以理解三者的物理限制比背公式重要得多。

参数 物理含义 RK平台常见范围 我踩过的坑
光圈 (F-Number) 通光孔径与焦距的比值 F1.4 ~ F16 (P-Iris) 或固定值 P-Iris校准不准,导致AE来回跳
快门 (Exposure Time) 传感器感光的时间长度 1/10000s ~ 30fps帧长 50Hz工频闪烁,快门设成1/50s整数倍
ISO (Gain) 模拟/数字增益倍数 ISO 100 ~ ISO 3200 (典型) 增益超过800后,噪点压不住

核心公式(记住这个就够了):

曝光量 ∝ (光圈面积) × (快门时间) × (1 / ISO增益)

注意:ISO增益越大,信噪比越低。这不是线性关系,增益翻倍,信噪比大约下降3dB。

在RK平台上,AE算法通常按优先级调整:先动快门,再动增益,最后才动光圈(如果有的话)。为什么?因为光圈机械结构有寿命,增益会引入噪点,快门相对最“干净”。

个人习惯:我在调RK3588的AE时,会把快门上限卡在1/120s(室内)或1/1000s(室外),增益上限卡在ISO 1600。超过这个范围,我宁愿降低目标亮度,也不让画面全是噪点。

4.2 亮度统计直方图:AE的眼睛

直方图这东西,很多工程师觉得就是看看亮度分布。其实在RK平台上,直方图是AE决策的核心依据——它决定了AE是收敛还是震荡。

RK的ISP硬件会输出一个256bin的亮度直方图,每个bin代表一个灰度级(0~255)。AE算法拿到这个直方图后,会做三件事:

  1. 计算平均亮度——加权平均,不是简单平均。RK默认权重是中间亮区域权重高,暗区和亮区权重低。
  2. 判断场景类型——通过直方图形状判断是逆光、顺光还是均匀光照。
  3. 调整曝光参数——让平均亮度逼近目标亮度。

举个例子,我在RK3566上调一个室内监控项目时,发现画面总是过曝。一看直方图,峰值集中在200~240之间,明显偏右。但奇怪的是,AE算法认为平均亮度只有150,还在目标范围内。后来查代码才发现,RK默认的直方图权重对高亮区域做了抑制——说白了,算法觉得高亮区域不重要。

避坑指南:我曾经在RK平台上遇到一个bug——直方图bin的统计范围被截断了。传感器输出10bit数据,但直方图只用了8bit,导致高亮区域全部被截断到255。AE永远觉得画面不够亮,一直往上提增益,最后画面全白。排查了三天才找到问题。所以拿到新平台,第一件事就是验证直方图原始数据是否正确。

直方图还有两个重要用途:

  • 过曝/欠曝检测:如果直方图在0或255处有大量像素堆积,说明画面有严重的欠曝或过曝区域。AE需要做局部补偿或调整曝光策略。
  • 场景切换检测:连续两帧直方图的差异超过阈值,说明场景变了,AE需要快速响应而不是慢慢收敛。

4.3 目标亮度设定:AE的“锚”

目标亮度(Target Luminance)是AE的最终目标。设高了,画面亮但噪点多;设低了,画面暗但细节好。这个值怎么定?

在RK平台上,目标亮度通常用8bit灰度值表示,范围0~255。常见的设定值:

应用场景 推荐目标亮度 理由
室内监控(白天) 120 ~ 140 人脸和物体细节清晰,背景不过曝
室内监控(夜间) 80 ~ 100 降低增益,减少噪点,保留轮廓
户外白天 140 ~ 160 光照充足,可以适当提高亮度
车载(前视) 100 ~ 120 避免高亮区域(天空、车灯)过曝
医疗内窥 150 ~ 180 需要高亮度看清组织细节

我的经验:目标亮度不是一成不变的。我在RK3588上做过一个自适应目标亮度的方案——根据直方图的分布动态调整目标值。如果直方图显示场景偏暗(峰值在左侧),就适当降低目标亮度,避免增益过高;如果场景偏亮(峰值在右侧),就提高目标亮度,充分利用动态范围。这个方案在逆光场景下效果特别好。

设定目标亮度时,还要考虑动态范围。传感器的动态范围是有限的,比如IMX415的典型动态范围是70dB左右。如果目标亮度设得太高,高亮区域容易过曝;设得太低,暗部细节丢失。所以目标亮度本质上是在“亮部细节”和“暗部细节”之间做权衡。

嗯,这里要注意:目标亮度不是AE唯一的约束条件。RK平台的AE还支持最小/最大曝光时间约束、最小/最大增益约束、帧率约束等。这些约束的优先级高于目标亮度。比如你设了帧率不低于30fps,那快门时间就不能超过33ms,即使目标亮度还没达到,AE也不会继续增加快门。

4.4 知识体系总览

下面这张图把本章的核心逻辑串起来了。你把它存下来,后面调AE的时候对照着看,思路会清晰很多。

AE自动曝光知识体系 AE自动曝光 曝光三角 亮度统计直方图 目标亮度设定 光圈 (F-Number) 快门 (Exposure) ISO (Gain) 平均亮度计算 场景类型判断 过曝/欠曝检测 场景适配 动态范围权衡 约束条件 核心逻辑:曝光三角提供物理手段 → 直方图提供反馈 → 目标亮度提供方向 三者闭环,形成AE的完整控制链路

这张图把AE的三大支柱和它们之间的逻辑关系画清楚了。你注意看底部的说明框——曝光三角是执行层,直方图是反馈层,目标亮度是决策层。三层闭环,缺一不可。