3、3A算法概述:AE、AF、AWB的基本任务与交互

好,咱们进入第三章。前两章我们把HDR多帧融合的宏观场景和挑战聊完了。从这章开始,得真正碰一碰3A算法本身了。

3A,就是AE(自动曝光)、AF(自动对焦)、AWB(自动白平衡)。这三个家伙在相机里各管一摊,但又互相牵扯。我经常跟团队里的新人说:“你把3A理解成三个各怀心思的合伙人,目标都是让照片好看,但经常吵架。”

为什么吵架?因为曝光、焦点、颜色,这三件事在物理上是耦合的。你动曝光时间,画面亮度变了,AF的对比度检测曲线会漂;你调了白平衡增益,AE统计的亮度值也会变。嗯,这就是3A算法的核心难点——不是各自做到极致,而是让它们协作好。

3.1 AE(自动曝光)—— 管亮度,也管信噪比

AE的任务,说白了就是让画面不黑不白,细节都在。但它的目标其实有两个层面:

  • 基础任务:把场景亮度映射到传感器响应曲线的中间区域,避免过曝或欠曝。
  • 进阶任务:在HDR多帧融合场景下,AE要为每一帧分配不同的曝光参数,确保短帧不过曝、长帧不欠曝,且帧间亮度步长合理。

我个人习惯把AE的决策流程拆成三步:

  1. 统计:从RAW域或YUV域统计亮度直方图、分区平均亮度。
  2. 目标亮度计算:根据场景类型(逆光、夜景、普通)确定目标平均亮度值。
  3. 参数调整:调整曝光时间、模拟增益、数字增益,甚至光圈(如果有的话)。

这里有个坑,我踩过不止一次。在HDR多帧融合中,AE不能只盯着“当前帧”的亮度。你得考虑帧间融合后的信噪比。举个例子,如果你把短帧的曝光时间压得太短,虽然它不过曝了,但信噪比极差,融合后反而引入大量噪声。所以,AE在HDR模式下,本质上是在做“亮度分配”和“噪声预算”。

关键指标:AE的收敛速度(通常要求< 0.5秒)、亮度误差(< 0.3 EV)、帧间亮度抖动(< 0.1 EV)。

3.2 AF(自动对焦)—— 找清晰,也找深度

AF的任务,是让感兴趣的区域最清晰。传统AF主要靠对比度检测或相位检测。但在HDR多帧融合场景下,AF面临一个特殊问题:不同曝光帧的清晰度评价曲线不一致。

你想想看,长帧曝光时间长,运动模糊大,对比度天然低;短帧曝光时间短,运动冻结,对比度更真实。如果AF只用某一帧做评价,很容易被误导。我记得有一次做夜景HDR项目,AF总是对焦不准,查了半天发现是AF模块只用了长帧的对比度数据,而长帧因为手抖已经糊了。

所以,在HDR多帧融合系统中,AF通常采用以下策略:

  • 多帧联合评价:对短帧、中帧、长帧分别计算对比度,加权融合后作为最终评价指标。
  • 深度辅助:如果传感器支持PDAF(相位检测对焦),直接用相位差计算深度,不受曝光时间影响。
  • 运动检测:检测到场景运动时,优先使用短帧做AF评价,避免运动模糊干扰。

避坑指南:我曾经在某个项目中,AF在低照度下反复拉风箱。后来发现是AE在低照度下把模拟增益拉得太高,导致噪声淹没了对比度信号。解决方案是:在AF搜索阶段,临时限制AE的最大增益,保证对比度信号的信噪比。

3.3 AWB(自动白平衡)—— 管颜色,也管一致性

AWB的任务,是把不同色温光源下的白色还原成白色。听起来简单,但HDR多帧融合给AWB带来了两个新麻烦:

  1. 帧间色温不一致:不同曝光帧的增益不同,导致白平衡统计值偏移。比如长帧增益大,暗部噪声被放大,噪声的色偏会影响白平衡统计。
  2. 融合后颜色伪影:如果AWB在每帧独立做,融合时不同帧的色温不一致,会在运动区域产生颜色断层。

我的做法是:AWB统计必须在融合前的RAW域完成,且所有帧共用同一组白平衡增益。这样能保证帧间颜色一致性。具体流程:

  • 对短帧做白平衡统计(因为短帧信噪比高,颜色信息更可靠)。
  • 用统计结果计算全局白平衡增益。
  • 所有帧(短、中、长)统一应用这组增益。
  • 融合后再做一次微调(可选)。

注意:如果场景中有强单色光源(比如霓虹灯),AWB可能会被误导。此时需要结合色温估计和场景分类,强制锁定色温或切换到“光源保留”模式。

3.4 3A交互 —— 三角关系与优先级

AE、AF、AWB不是独立工作的。它们共享传感器数据,也互相影响。我画了一张图,帮你理清它们的关系:

3A算法交互关系图 AE 自动曝光 曝光时间 / 增益 / 光圈 AF 自动对焦 对比度 / 相位差 / 深度 AWB 自动白平衡 色温估计 / 增益计算 亮度影响对比度 对焦区域反馈 增益影响色温统计 白平衡增益影响亮度 对焦区域颜色参考 核心交互逻辑 AE 提供亮度基础 → AF 依赖亮度做对比度评价 → AWB 依赖增益做色温估计 三者形成闭环,任何一方的调整都会影响其他两方 HDR多帧融合下的优先级建议 AE 优先(确定帧曝光参数)→ AF 次之(基于短帧对焦)→ AWB 最后(统一增益应用)

从图中你能看到,3A之间是双向影响的。在实际系统中,我通常按以下优先级处理:

优先级 模块 原因
1 AE 曝光参数决定帧的信噪比和动态范围,是所有后续处理的基础
2 AF 对焦依赖亮度信息,AE稳定后才能做准确对焦
3 AWB 白平衡统计受增益影响,AE和AF稳定后做AWB最可靠

但这不是的。比如在场景切换时,AWB的色温突变可能会让AE误判场景亮度,这时候就需要做联合收敛。我常用的方法是:在每一帧的垂直消隐期(VBLANK)内,依次完成AE统计、AF评价、AWB统计,然后统一更新参数。这样能保证三个模块看到的是同一帧的数据,避免互相打架。

总结一下:3A算法的本质,是在亮度、清晰度、颜色三个维度上做联合优化。在HDR多帧融合中,这种联合优化变得更加复杂,因为每一帧的曝光条件不同。理解3A的交互关系,是设计好HDR融合算法的第一步。