1. 3A算法全景概览

各位好,我是老张。做ISP算法这行十几年了,今天咱们聊聊3A算法。很多人一听到AE、AF、AWB就觉得头大,其实说白了,这三个东西就是摄像头自己学会「看世界」的基础。

你想想看,手机拍照为什么能自动调亮度?为什么能对上焦?为什么在不同灯光下颜色还准?背后就是这三个算法在干活。我刚开始做这行的时候,也以为3A是三个独立模块,后来踩了不少坑才明白——它们仨是绑在一起的。

1.1 什么是3A算法

3A是三个英文缩写:

  • AE(Auto Exposure)——自动曝光。控制进光量,让画面不暗不亮。
  • AF(Auto Focus)——自动对焦。让主体清晰,背景该虚化就虚化。
  • AWB(Auto White Balance)——自动白平衡。纠正色偏,让白色在不同光源下还是白色。

这三个东西,任何一个出问题,图像质量就崩了。我记得有一次项目,AE收敛速度慢了半拍,结果预览画面忽明忽暗,客户直接说「这摄像头是不是坏了」。

核心观点:3A不是三个独立模块,而是一个闭环系统。AE管亮度,AF管清晰度,AWB管颜色。三者互相影响,牵一发而动全身。

1.2 3A在ISP Pipeline中的位置

ISP(Image Signal Processor)的pipeline很长,从sensor raw数据进来,到最后输出YUV或RGB,中间有几十个模块。3A算法不在pipeline的固定位置上,而是「旁路」——它读取图像统计信息,然后反馈控制其他模块。

我画了一张图,你看一眼就明白了:

3A算法在ISP Pipeline中的位置与协同关系 ISP Pipeline 与 3A 算法协同架构 Sensor Raw → 黑电平校正 → 去噪 → 去马赛克 → 颜色校正 → Gamma → 输出 统计信息采集(Histogram / 亮度统计 / 对比度统计 / 色温统计) AE 自动曝光 曝光时间/增益/光圈 AF 自动对焦 镜头位置/焦距 AWB 自动白平衡 R/G/B增益 反馈控制:Sensor 曝光参数 / ISP 增益矩阵 / 镜头驱动 说明:3A算法不直接处理像素数据,而是读取统计信息后,通过反馈环路控制sensor和ISP模块。 AE、AF、AWB之间通过共享统计信息和参数约束实现协同工作。

从图上你能看到,3A算法是「站在旁边看,然后指挥别人干活」的角色。它不处理像素,但决定了像素怎么被处理。

个人经验:我在调试AE的时候,经常发现AWB也跟着变。为什么?因为曝光变了,统计窗口内的颜色分布也变了,AWB就得重新算。所以调3A一定要三个一起看,别一个一个调。

1.3 3A算法的协同工作逻辑

这三个算法不是各干各的。它们共享同一份统计信息,互相有约束关系。我列个表,你一看就清楚:

算法 控制对象 依赖的统计信息 受谁影响
AE 曝光时间、模拟增益、数字增益、光圈 亮度直方图、平均亮度、区域亮度 AF(对焦清晰度影响亮度统计)
AF 镜头位置、焦距 对比度统计、相位差信息 AE(曝光不足时对比度统计不准)
AWB R/G/B通道增益 色温估计、R/G/B统计 AE(曝光饱和时颜色统计失效)

你看这个表,每个算法都不是独立的。举个例子:

  • AE影响AWB:曝光过度导致高光饱和,R/G/B通道都到顶了,AWB算不出真实色温。我遇到过这种情况,拍出来的白色偏紫,怎么调都调不回来——后来发现是曝光太亮了。
  • AF影响AE:对焦不准的时候,画面模糊,亮度统计会偏低。AE以为场景暗了,就增加曝光,结果对焦准了之后画面又过曝。
  • AWB影响AE:这个影响小一些,但AWB调整增益后,整体亮度会微变,AE需要做二次补偿。

避坑指南:我曾经在一个项目中,AE和AWB的收敛速度不匹配。AE每秒调30次,AWB每秒只调5次。结果AWB还没算完,AE又变了,画面一直在「亮→偏色→调色→暗→再亮」的循环里震荡。后来我把AE的收敛速度降下来,让AWB先稳定,问题才解决。

1.4 3A算法的典型工作流程

一个典型的3A工作流程是这样的:

  1. 采集统计信息:ISP从当前帧中提取亮度直方图、对比度值、R/G/B分量均值等。
  2. AE计算:根据目标亮度,计算下一帧需要的曝光时间和增益。
  3. AWB计算:根据色温估计,计算R/G/B通道的校正增益。
  4. AF计算:根据对比度或相位差,计算镜头移动方向和步长。
  5. 参数下发:将计算结果写入sensor寄存器或ISP寄存器。
  6. 等待下一帧:重复步骤1-5,直到所有指标收敛。

这里有个关键点:收敛速度。调得太快,画面会抖动;调得太慢,用户觉得卡顿。我一般建议AE在5-10帧内收敛,AWB在10-15帧内收敛,AF在15-30帧内收敛(取决于镜头行程)。

核心原则:3A调优的本质是「在收敛速度和稳定性之间找平衡」。快不一定好,稳才是王道。