1. 3A算法全景概览:AE/AWB/AF基本原理、高通平台3A架构、调试工具链介绍
各位同学,欢迎来到《高通相机3A算法场景适配与画质调优》的第一章。
我是你们这门课的主讲。做了十几年高通平台的相机调试,说实话,3A算法是入门容易精通难。你可能会觉得AE就是调曝光,AWB就是调白平衡,AF就是调焦距——对,也不全对。真正到了项目里,你会发现这三个东西是互相咬死的。
这一章,我们先搭个全景框架。把AE、AWB、AF的基本原理讲清楚,再把高通平台上的3A架构和调试工具串一遍。嗯,后面每一章都会基于这个框架展开。
1.1 什么是3A?为什么它们必须一起调?
3A是三个自动算法的缩写:
- AE(Auto Exposure):自动曝光。控制进光量,让画面不暗不亮。
- AWB(Auto White Balance):自动白平衡。消除色偏,让白色在不同光源下看起来都是白的。
- AF(Auto Focus):自动对焦。让主体清晰,背景该虚化就虚化。
你可能会问:这三个东西不是各管各的吗?
其实不是。我举个例子你就明白了——
你在一个昏暗的室内拍人像。AE会拉高增益和曝光时间,画面亮了,但噪点也多了。AWB一看光源偏黄,开始往蓝色方向拉。AF呢?光线暗了,对比度下降,对焦开始犹豫。你看,一个动作牵动三个模块。
所以,3A调试的核心不是单独调好某一个,而是让它们三个在场景里配合默契。
核心观点:3A是一个闭环系统。AE的输出影响AWB的统计,AWB的增益影响AF的对比度,AF的合焦位置又反过来影响AE的亮度评估。调任何一个,都要考虑另外两个的反应。
1.2 AE基本原理:从测光到曝光收敛
AE的目标很简单:让画面的平均亮度接近一个目标值。这个目标值通常用Y(亮度)或者LV(亮度值)来表示。
AE的流程大致分三步:
- 测光:从sensor读出当前帧的亮度统计信息。高通平台会把画面分成若干个zone,每个zone算一个平均亮度。
- 计算:把当前亮度和目标亮度做比较,算出需要调整多少曝光量。
- 执行:调整曝光时间、模拟增益、数字增益这三板斧。
这里有个关键点:曝光三要素的优先级。我习惯的配置是——先调曝光时间,再调模拟增益,最后才动数字增益。为什么?因为数字增益会放大噪声,能不用就不用。
个人经验:我在调试一个低光场景时,发现AE总是优先拉高模拟增益,导致画面噪点明显。后来我把模拟增益的上限从8x降到了4x,强制AE多走曝光时间。虽然帧率降了一点,但画质干净了很多。这个trade-off,你得根据项目需求来权衡。
1.3 AWB基本原理:色温估计与增益计算
AWB要解决的核心问题是:不管光源是日光灯、白炽灯还是阴天,白色物体在照片里必须是白色的。
高通平台的AWB流程大致如下:
- 统计:从画面中提取R/G/B通道的统计值,通常是在一个色温网格上做分布统计。
- 色温估计:根据统计值,判断当前场景的光源色温。比如3000K是白炽灯,5500K是正午日光,7000K是阴天。
- 增益计算:算出R和B通道的补偿增益,让画面中的灰色区域落在中性轴上。
这里有个坑——当场景里有大面积单色物体时,AWB容易翻车。比如你拍一片蓝天,AWB可能会误判成冷色温光源,然后往暖色方向拉,结果天空变成了灰蓝色。
避坑指南:我曾经在一个户外蓝天场景的调试中,发现AWB总是偏暖。查了半天,原来是统计窗口没有排除天空区域。后来我加了一个“天空检测”逻辑,在AWB统计前先识别大面积蓝色区域,然后降低它的权重。效果立竿见影。
1.4 AF基本原理:对比度检测与相位检测
AF分为两大类:
| 类型 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| CDAF(对比度检测) | 移动镜头,找画面中对比度最大的位置 | 精度高,算法简单 | 慢,需要来回扫 |
| PDAF(相位检测) | 通过sensor上的相位检测像素,直接算出离焦方向和距离 | 快,一次到位 | 需要硬件支持,低光下精度下降 |
高通平台从骁龙8系列开始,基本都支持PDAF。但实际调试中,我建议用混合模式:先用PDAF快速粗调,再用CDAF做精调。这样既快又准。
你想想看,如果只用PDAF,低光下相位检测像素的信噪比下降,对焦可能偏一点。如果只用CDAF,拍运动物体时镜头来回扫,黄花菜都凉了。混合模式才是正解。
1.5 高通平台3A架构概览
高通的3A架构,说白了就是一套分层设计的软件栈。从底层到上层,大致分四层:
- Sensor驱动层:控制sensor的曝光时间、增益、帧率等硬件参数。
- ISP Pipeline层:处理raw图数据,输出统计信息给3A算法。
- 3A算法层:AE/AWB/AF的核心算法模块。高通提供了一套参考实现,但厂商可以自己替换。
- 策略控制层:决定什么时候触发3A,怎么切换场景模式。这部分通常由厂商自己写。
下面这张图,是我自己整理的3A架构关系。你看一眼就明白了。
你看,这个架构是典型的“上层决策、下层执行”。策略控制层识别出你是在拍夜景还是拍人像,然后告诉3A算法层用哪套参数。3A算法层算出结果,通过ISP下发给Sensor。
1.6 调试工具链介绍
高通平台上的3A调试,离不开几样趁手的工具。我列个清单:
| 工具名称 | 用途 | 我的使用习惯 |
|---|---|---|
| Chimera | 高通官方的3A调试工具,可以实时查看AE/AWB/AF的统计值和参数变化 | 我习惯用它抓log,配合场景回放做问题定位 |
| QCARC | 相机参数配置工具,用来调tuning文件 | 调AWB色温曲线时,我基本离不开它 |
| CamX | 高通新一代相机框架,支持更灵活的3A策略配置 | 新项目我全用CamX,旧项目还在用CamX的上一代 |
| adb + logcat | 抓取3A运行时的log,分析算法行为 | 这个不用多说,调试基本功 |
小技巧:用Chimera调试时,我习惯同时开三个窗口——一个看AE的亮度曲线,一个看AWB的色温轨迹,一个看AF的对比度波形。三个窗口并排,哪个模块出问题一眼就能看出来。
1.7 本章小结
这一章我们走了一遍3A的全景。从AE的曝光控制,到AWB的色温补偿,再到AF的对焦策略。然后看了高通平台的四层架构,最后认识了几个调试工具。
说白了,3A调试就是跟场景打交道。同一个算法,在室内灯光下表现很好,拿到户外强光下可能就翻车。所以后面每一章,我们都会围绕具体场景展开——夜景、逆光、运动、人像……一个一个啃。