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的流程大致分三步:

  1. 测光:从sensor读出当前帧的亮度统计信息。高通平台会把画面分成若干个zone,每个zone算一个平均亮度。
  2. 计算:把当前亮度和目标亮度做比较,算出需要调整多少曝光量。
  3. 执行:调整曝光时间、模拟增益、数字增益这三板斧。

这里有个关键点:曝光三要素的优先级。我习惯的配置是——先调曝光时间,再调模拟增益,最后才动数字增益。为什么?因为数字增益会放大噪声,能不用就不用。

个人经验:我在调试一个低光场景时,发现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架构,说白了就是一套分层设计的软件栈。从底层到上层,大致分四层:

  1. Sensor驱动层:控制sensor的曝光时间、增益、帧率等硬件参数。
  2. ISP Pipeline层:处理raw图数据,输出统计信息给3A算法。
  3. 3A算法层:AE/AWB/AF的核心算法模块。高通提供了一套参考实现,但厂商可以自己替换。
  4. 策略控制层:决定什么时候触发3A,怎么切换场景模式。这部分通常由厂商自己写。

下面这张图,是我自己整理的3A架构关系。你看一眼就明白了。

高通平台3A架构分层图 策略控制层(场景识别、模式切换) 3A算法层 AE算法 AWB算法 AF算法 ISP Pipeline层(统计信息输出) Sensor驱动层(曝光/增益/帧率控制) 说明: 策略控制层决定“拍什么场景”,3A算法层决定“怎么调”,ISP负责“给数据”,Sensor负责“执行”。

你看,这个架构是典型的“上层决策、下层执行”。策略控制层识别出你是在拍夜景还是拍人像,然后告诉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调试就是跟场景打交道。同一个算法,在室内灯光下表现很好,拿到户外强光下可能就翻车。所以后面每一章,我们都会围绕具体场景展开——夜景、逆光、运动、人像……一个一个啃。