1. 3A算法全景概览:AE/AWB/AF的基本概念、三者之间的耦合关系、3A在ISP Pipeline中的位置

各位同学,咱们今天正式开讲ISP 3A算法。说实话,我做了这么多年图像算法,3A一直是ISP里最让人头疼、也最有意思的部分。你想想看,一个摄像头模组装到手机上,光线忽明忽暗、物体忽远忽近、颜色忽冷忽暖——要让每一帧画面都清晰、曝光准确、颜色自然,全靠这三个“A”在背后默默干活。

1.1 什么是3A?三个核心模块

3A是三个独立但又紧密配合的算法模块的统称:

  • AE(Auto Exposure,自动曝光):控制进光量,让画面不暗不亮
  • AWB(Auto White Balance,自动白平衡):校正色温,让白色在不同光源下看起来还是白色
  • AF(Auto Focus,自动对焦):调整镜头位置,让目标物体清晰

我刚开始接触3A时,总觉得这三个东西各管各的,没什么交集。后来在项目里踩了坑才明白——它们之间的耦合关系,才是3A调试的真正难点。

1.2 AE:自动曝光的核心逻辑

AE的目标很简单:让图像的平均亮度落在目标范围内。但实现起来,要考虑的东西可不少。

AE控制参数 作用 典型范围
曝光时间(Exposure Time) 控制传感器感光时长 1/10000s ~ 30s
模拟增益(Analog Gain) 放大传感器输出信号 1x ~ 16x
数字增益(Digital Gain) 数字域放大信号 1x ~ 8x
光圈(Aperture) 控制进光孔大小 F1.4 ~ F16

AE的经典策略是:先调曝光时间,再调增益,最后才动光圈。为什么?因为曝光时间直接影响运动模糊,增益会引入噪声,光圈影响景深。优先级搞反了,画面质量就会出问题。

我的经验:在低光场景下,很多人习惯直接拉高增益。但我建议先看看能不能适当延长曝光时间——只要被摄物体不动,延长曝光比拉增益画质好得多。我在做安防摄像头项目时,夜间场景就是靠这个策略把信噪比提升了3dB。

1.3 AWB:让白色回归白色

AWB要解决的是色温问题。人眼有色彩恒常性,不管在日光灯下还是烛光下,看白纸都觉得是白的。但传感器没这个能力,它老老实实地记录光谱——所以需要算法来校正。

AWB的典型流程:

  1. 统计图像中的色温信息(通常用R/G、B/G比值)
  2. 判断当前光源色温(通过色温曲线或色温估计模型)
  3. 计算R、B通道的增益,让灰点落在白平衡目标线上

常用的AWB算法有:

  • 灰度世界法(Gray World):假设场景平均色是灰色,R/G/B均值相等
  • 完美反射法(Perfect Reflector):假设场景中最亮的点是白色
  • 色温估计法(Color Temperature Estimation):通过色温曲线查表
避坑指南:我曾经在一个户外监控项目里,只用灰度世界法做AWB。结果傍晚时分,天空大面积蓝色导致R通道增益被拉得过高,整个画面偏红。后来我加了场景分类器,区分蓝天和真实色温偏移,才把这个问题解决。记住:没有万能的AWB算法,场景适配才是关键。

1.4 AF:让焦点落在该落的地方

AF的核心是找到镜头的最佳位置,让目标物体的对比度最高。常见的AF方案有三种:

AF类型 原理 优点 缺点
对比度检测(CDAF) 搜索对比度峰值位置 精度高、算法简单 速度慢、会来回搜索
相位检测(PDAF) 通过相位差计算偏移量 速度快、一次到位 需要专用像素、低光性能差
激光/ToF辅助 直接测量距离 不受纹理影响 成本高、功耗大

现在主流手机基本都是PDAF+CDAF混合方案——先用PDAF快速粗调,再用CDAF精调。嗯,这里要注意:PDAF在低光下容易不准,这时候我会强制切回CDAF模式。

1.5 三者的耦合关系——这才是重点

单独看每个A,都不算复杂。但把它们放在一起,问题就来了。

举个我实际遇到的例子:

  • AE在调整曝光时间,画面亮度变化 → 影响AWB的色温统计 → AWB输出错误的增益 → 画面颜色偏了
  • AF在移动镜头 → 画面模糊 → AE统计的亮度值偏低 → AE增加曝光 → 画面过曝
  • AWB校正颜色 → 改变了R/B通道增益 → 影响了AE的亮度统计权重 → AE重新调整曝光

你看,这三个模块互相影响,形成了一个闭环。如果各自独立跑,很容易出现震荡——画面忽明忽暗、颜色忽冷忽暖、对焦来回抽风。

核心观点:3A调试的本质,不是把每个A调到最优,而是让三个A在动态场景下达成一个稳定的平衡。我见过太多团队把AE调得飞快、AWB调得极准,结果合在一起就崩了。

1.6 3A在ISP Pipeline中的位置

下面这张图展示了3A在ISP处理流程中的位置。注意,3A不是独立运行的,它们需要从ISP的统计模块获取数据,然后输出控制参数给传感器和ISP模块。

3A在ISP Pipeline中的位置 ISP Pipeline 与 3A 算法位置 图像传感器 Bayer处理 去马赛克 色彩校正 Gamma/输出 降噪 锐化 HDR合成 输出图像 ISP统计模块(亮度直方图、色温统计、对比度统计) AE 自动曝光 AWB 自动白平衡 AF 自动对焦 控制参数反馈 说明: 1. 传感器输出原始数据给ISP处理模块 2. ISP统计模块从处理链路中提取亮度、色温、对比度等统计信息 3. 3A算法根据统计信息计算控制参数,反馈给传感器和ISP模块

从图中可以看到:

  • 传感器输出原始Bayer数据给ISP处理链路
  • ISP处理模块(Bayer处理、去马赛克、色彩校正、降噪、锐化、HDR合成等)逐级处理图像
  • 统计模块从处理链路中提取亮度直方图、色温统计、对比度统计等信息
  • 3A算法根据统计信息计算控制参数,反馈给传感器(曝光时间、增益)和ISP模块(白平衡增益、对焦位置)
关键点:3A算法是ISP Pipeline的“大脑”——它不直接处理像素,但决定了传感器和ISP模块如何工作。调试3A时,一定要理解统计模块的数据来源和精度,否则算法再漂亮也是空中楼阁。

1.7 本章小结

好了,这一章我们走了一遍3A的全景:

  • AE管亮度,AWB管颜色,AF管清晰度
  • 三者之间存在强耦合,调试时要统一考虑
  • 3A在ISP Pipeline中处于“控制中心”的位置,依赖统计模块提供数据