1. 3A算法概述:AE、AF、AWB的基本概念与在ISP流水线中的位置

各位好,我是老周。做ISP这行十几年了,今天咱们聊聊3A算法。说白了,3A就是自动曝光(AE)、自动对焦(AF)、自动白平衡(AWB)这三个家伙。它们是ISP流水线的"大脑",没有它们,摄像头拍出来的画面基本没法看。

我刚开始接触ISP时,总觉得3A是三个独立模块,各干各的。后来踩了不少坑才明白——它们仨是绑在一根绳上的蚂蚱。你想想看,曝光变了,对焦的对比度信息就变了;白平衡调了,曝光统计也得重新算。所以理解3A,得先搞清楚它们各自是什么,在流水线里站什么位置。

1.1 自动曝光(AE)——让画面不黑不白

AE的目标很简单:让图像亮度刚刚好。太暗了细节全丢,太亮了高光一片死白。它通过调整曝光时间、模拟增益、数字增益这三板斧来控制亮度。

参数 作用 我踩过的坑
曝光时间 控制感光时间,影响亮度与运动模糊 室内光线不足时,曝光时间过长,拍人像全是拖影
模拟增益 放大传感器信号,但会引入噪声 增益拉到6dB以上,暗部噪点像雪花一样
数字增益 数字域放大,噪声控制更灵活 数字增益太高,亮部容易饱和
我的经验:AE的优先级通常是曝光时间优先,增益兜底。为什么?因为增益带来的噪声后期很难去掉。我曾经在一个低光项目中,硬是把增益压到3dB以下,靠延长曝光时间配合防抖算法,效果比竞品好一截。

AE在ISP流水线中的位置,一般在RAW域处理之后、去马赛克之前。它需要统计图像的亮度直方图,然后反馈给传感器和ISP前端。

1.2 自动对焦(AF)——让画面不糊

AF的任务是让镜头移动到合适位置,使目标清晰。常见的AF方式有三种:反差对焦(CDAF)、相位对焦(PDAF)、激光/ToF辅助对焦。

  • 反差对焦(CDAF):通过寻找图像对比度最大的位置。优点是精度高,缺点是慢,像拉风箱一样来回找。
  • 相位对焦(PDAF):利用传感器上的专用像素检测相位差。速度快,但精度受限于像素排布。
  • 混合对焦:先用PDAF快速粗调,再用CDAF精调。现在手机基本都用这个方案。
注意:AF和AE是强耦合的。曝光变化会影响对比度统计值,导致AF误判。我曾经遇到一个bug:场景从暗到亮切换时,AE突然拉高增益,AF以为画面变清晰了,结果对焦反而跑偏。后来加了曝光补偿逻辑才解决。

AF在流水线中的位置比较靠前,通常在RAW域或者简单的预处理之后。它需要原始像素数据来计算对焦评价函数,不能等去马赛克和颜色校正,否则延迟太大。

1.3 自动白平衡(AWB)——让白色是白色

AWB解决的是色温问题。人眼会自动适应不同光源,但传感器不会。日光下拍的照片放到白炽灯下看,会偏黄。AWB就是通过调整R/G/B增益,让中性色还原为中性。

常用的AWB算法分两步:

  1. 色温估计:从图像中统计色温信息。经典方法有灰度世界法、完美反射法、色温曲线法。
  2. 增益调整:根据估计的色温,计算R/G/B通道的增益系数。
方法 原理 优缺点
灰度世界法 假设场景平均色为灰色 简单,但大面积单色场景会失效
完美反射法 假设最亮点为白色 高光区域有效,但暗部不准
色温曲线法 预标定不同色温下的R/G、B/G曲线 精度高,但需要标定,泛化性一般

实际项目中的教训:AWB最怕混合光源。比如室内既有日光灯又有窗户进来的自然光,色温估计会左右摇摆。我做过一个安防摄像头项目,白天偏蓝、晚上偏黄,用户投诉不断。后来加了场景分类器,先判断光源类型再选AWB策略,才算稳住。

AWB在流水线中的位置比较靠后,一般在去马赛克、颜色校正之后。因为它需要RGB彩色信息来做色温估计,RAW域的数据是Bayer格式,没法直接算色温。

1.4 3A在ISP流水线中的位置总览

下面这张图是我自己画的,把3A在ISP流水线中的位置标出来了。你一看就明白。

ISP流水线中3A算法位置总览 传感器 RAW 黑电平校正 去马赛克 颜色校正 Gamma校正 输出 YUV AE 自动曝光 AF 自动对焦 AWB 自动白平衡 说明 AE:反馈曝光时间/增益 AF:反馈镜头位置 AWB:反馈R/G/B增益

从这张图你能看到:AE和AF的反馈环路比较靠前,它们需要RAW域的数据来做统计。AWB的反馈环路靠后,需要彩色信息。但注意,这三个反馈是同时工作的,互相影响。

1.5 3A协同的难点

我做了这么多年ISP,最头疼的就是3A协同。为什么?因为三个环路的控制周期不一样:

  • AE:通常每帧调整一次,响应快
  • AF:可能需要多帧才能收敛,响应慢
  • AWB:色温变化慢,但混合光源下容易抖动

你想想看,AE每帧都在调亮度,AF还在慢慢找焦点,AWB突然发现色温变了——三个环路互相拉扯,画面就会忽明忽暗、忽冷忽暖、忽糊忽清。这就是所谓的"3A振荡"。

避坑指南:我曾经在一个项目中,AE和AWB的收敛速度没匹配好。AE调快了,AWB跟不上,结果画面亮度稳定了但颜色一直在漂。后来我强制AWB的更新频率比AE慢两倍,才稳住。记住:3A协同的核心是"节奏一致"。

1.6 小结

这一章我们聊了3A的基本概念:

  • AE:控制亮度,靠曝光时间、增益三板斧
  • AF:控制清晰度,反差对焦慢但准,相位对焦快但糙
  • AWB:控制色温,让白色还原为白色
  • 它们在ISP流水线中的位置不同,反馈环路互相耦合