1. 3A算法概述:AE、AF、AWB的基本概念与在ISP流水线中的位置
各位好,我是老周。做ISP这行十几年了,今天咱们聊聊3A算法。说白了,3A就是自动曝光(AE)、自动对焦(AF)、自动白平衡(AWB)这三个家伙。它们是ISP流水线的"大脑",没有它们,摄像头拍出来的画面基本没法看。
我刚开始接触ISP时,总觉得3A是三个独立模块,各干各的。后来踩了不少坑才明白——它们仨是绑在一根绳上的蚂蚱。你想想看,曝光变了,对焦的对比度信息就变了;白平衡调了,曝光统计也得重新算。所以理解3A,得先搞清楚它们各自是什么,在流水线里站什么位置。
1.1 自动曝光(AE)——让画面不黑不白
AE的目标很简单:让图像亮度刚刚好。太暗了细节全丢,太亮了高光一片死白。它通过调整曝光时间、模拟增益、数字增益这三板斧来控制亮度。
| 参数 | 作用 | 我踩过的坑 |
|---|---|---|
| 曝光时间 | 控制感光时间,影响亮度与运动模糊 | 室内光线不足时,曝光时间过长,拍人像全是拖影 |
| 模拟增益 | 放大传感器信号,但会引入噪声 | 增益拉到6dB以上,暗部噪点像雪花一样 |
| 数字增益 | 数字域放大,噪声控制更灵活 | 数字增益太高,亮部容易饱和 |
AE在ISP流水线中的位置,一般在RAW域处理之后、去马赛克之前。它需要统计图像的亮度直方图,然后反馈给传感器和ISP前端。
1.2 自动对焦(AF)——让画面不糊
AF的任务是让镜头移动到合适位置,使目标清晰。常见的AF方式有三种:反差对焦(CDAF)、相位对焦(PDAF)、激光/ToF辅助对焦。
- 反差对焦(CDAF):通过寻找图像对比度最大的位置。优点是精度高,缺点是慢,像拉风箱一样来回找。
- 相位对焦(PDAF):利用传感器上的专用像素检测相位差。速度快,但精度受限于像素排布。
- 混合对焦:先用PDAF快速粗调,再用CDAF精调。现在手机基本都用这个方案。
AF在流水线中的位置比较靠前,通常在RAW域或者简单的预处理之后。它需要原始像素数据来计算对焦评价函数,不能等去马赛克和颜色校正,否则延迟太大。
1.3 自动白平衡(AWB)——让白色是白色
AWB解决的是色温问题。人眼会自动适应不同光源,但传感器不会。日光下拍的照片放到白炽灯下看,会偏黄。AWB就是通过调整R/G/B增益,让中性色还原为中性。
常用的AWB算法分两步:
- 色温估计:从图像中统计色温信息。经典方法有灰度世界法、完美反射法、色温曲线法。
- 增益调整:根据估计的色温,计算R/G/B通道的增益系数。
| 方法 | 原理 | 优缺点 |
|---|---|---|
| 灰度世界法 | 假设场景平均色为灰色 | 简单,但大面积单色场景会失效 |
| 完美反射法 | 假设最亮点为白色 | 高光区域有效,但暗部不准 |
| 色温曲线法 | 预标定不同色温下的R/G、B/G曲线 | 精度高,但需要标定,泛化性一般 |
实际项目中的教训:AWB最怕混合光源。比如室内既有日光灯又有窗户进来的自然光,色温估计会左右摇摆。我做过一个安防摄像头项目,白天偏蓝、晚上偏黄,用户投诉不断。后来加了场景分类器,先判断光源类型再选AWB策略,才算稳住。
AWB在流水线中的位置比较靠后,一般在去马赛克、颜色校正之后。因为它需要RGB彩色信息来做色温估计,RAW域的数据是Bayer格式,没法直接算色温。
1.4 3A在ISP流水线中的位置总览
下面这张图是我自己画的,把3A在ISP流水线中的位置标出来了。你一看就明白。
从这张图你能看到:AE和AF的反馈环路比较靠前,它们需要RAW域的数据来做统计。AWB的反馈环路靠后,需要彩色信息。但注意,这三个反馈是同时工作的,互相影响。
1.5 3A协同的难点
我做了这么多年ISP,最头疼的就是3A协同。为什么?因为三个环路的控制周期不一样:
- AE:通常每帧调整一次,响应快
- AF:可能需要多帧才能收敛,响应慢
- AWB:色温变化慢,但混合光源下容易抖动
你想想看,AE每帧都在调亮度,AF还在慢慢找焦点,AWB突然发现色温变了——三个环路互相拉扯,画面就会忽明忽暗、忽冷忽暖、忽糊忽清。这就是所谓的"3A振荡"。
1.6 小结
这一章我们聊了3A的基本概念:
- AE:控制亮度,靠曝光时间、增益三板斧
- AF:控制清晰度,反差对焦慢但准,相位对焦快但糙
- AWB:控制色温,让白色还原为白色
- 它们在ISP流水线中的位置不同,反馈环路互相耦合