3、3A算法基础与调试:自动曝光、自动对焦、自动白平衡

3A算法,说白了就是相机自动化的三大支柱。AE、AF、AWB,这三个字母组合在一起,决定了你拍出来的照片是亮是暗、是清晰还是模糊、是偏黄还是偏蓝。我做了十年高通平台的画质调优,可以负责任地告诉你——3A调不好,后面所有tuning都是白搭。

这一章,咱们就把这三个家伙的原理掰开揉碎,再聊聊怎么通过Chrome工具去调它们的参数。嗯,内容不少,但都是干货。

3.1 自动曝光(AE)——让画面亮暗刚刚好

自动曝光的目标很简单:让画面既不过曝也不欠曝。但实现起来,远比想象中复杂。

AE的核心逻辑是一个闭环控制系统。传感器采集到图像后,ISP统计出当前画面的亮度信息,然后算法根据目标亮度去调整曝光时间、模拟增益、数字增益,甚至光圈。高通平台里,这个流程叫AE收敛。

AE的关键参数:

  • Target Luma(目标亮度):算法想让画面达到的平均亮度值,通常用Y值表示。我习惯设到110-120之间(0-255范围),具体看场景。
  • Exposure Time(曝光时间):传感器感光的时间,单位是微秒。太长会糊片,太短会欠曝。
  • Analog Gain(模拟增益):传感器内部的信号放大,噪声控制的关键。能不用就不用,噪声会炸。
  • Digital Gain(数字增益):ISP层面的数字放大,噪声控制更差。我一般限制在2x以内。
  • Convergence Speed(收敛速度):从当前亮度到目标亮度的调整速度。太快会闪烁,太慢用户觉得卡。

我在项目中遇到过一个问题:室内灯光下,画面总是忽明忽暗。查了半天,发现是AE的收敛速度设得太激进,加上荧光灯的50Hz频闪干扰。后来把曝光时间限制在10ms的整数倍,收敛步长调慢,问题就解决了。

避坑指南:我曾经在调试夜景模式时,把模拟增益上限设到了8x。结果画面噪点跟雪花一样。后来学乖了,增益上限不超过4x,配合多帧降噪,效果才过得去。

3.2 自动对焦(AF)——让主体清晰锐利

自动对焦,说白了就是让镜头移动到合适的位置,让被摄物体在传感器上成清晰像。高通平台主要用反差对焦(CDAF)和相位对焦(PDAF)两种方式。

CDAF的原理是:移动镜头,找到画面中对比度最大的位置。对比度越高,图像越清晰。PDAF则利用传感器上的专用像素,直接检测相位差,一步到位算出镜头应该移动的距离。

对焦方式 速度 精度 适用场景
CDAF(反差对焦) 慢(来回搜索) 高 静态场景、微距
PDAF(相位对焦) 快(一步到位) 中等 运动场景、视频
Hybrid AF(混合对焦) 快且准 高 通用场景

高通平台里,AF的调试重点在于几个参数:

  • Search Range(搜索范围):镜头从最近到最远的移动范围。设太大,对焦慢;设太小,微距对不上。
  • Step Size(步长):每次移动的步进量。步长越小,精度越高,但速度越慢。
  • Sharpness Threshold(清晰度阈值):算法认为“对上焦”的最低清晰度值。设太低,容易误判。
  • Lens Position Table(镜头位置表):不同距离对应的镜头驱动值。这个表不准,对焦就永远不准。

你想想看,如果镜头位置表没标定好,算法以为镜头在50cm位置,实际却在30cm,那对焦怎么可能准?我遇到过一台样机,拍远处清晰,拍近处就糊。查了三天,发现是镜头位置表的近端标定值偏了20个码值。重新标定后,一切正常。

注意:PDAF的调试需要特别注意传感器上的相位像素校准。如果校准数据丢失或错误,PDAF会完全失效,甚至导致画面出现坏点。我曾经在量产前发现一批机器PDAF不准,最后定位是产线校准环节出了问题。

3.3 自动白平衡(AWB)——让白色回归白色

自动白平衡,就是让相机在不同色温的光源下,都能把白色物体还原成白色。人眼有色彩恒常性,但传感器没有。所以需要算法去猜当前是什么光源,然后做色彩校正。

AWB的核心是色温估计。高通平台通常用灰度世界法(Gray World)和色温曲线法(Color Temperature Curve)结合。

  • 灰度世界法:假设画面中所有颜色的平均值是灰色。如果偏红,就减红;如果偏蓝,就减蓝。简单,但容易受大面积纯色干扰。
  • 色温曲线法:在R/G和B/G坐标系下,画出一条色温曲线。算法根据当前画面的R/G、B/G值,找到最接近的色温点。精度高,但需要提前标定。

高通平台里,AWB调试的核心参数包括:

参数 说明 我的建议值
Color Temperature Range 支持的色温范围(K) 2000K ~ 8000K
R/G Gain Limit 红色增益上限 1.2x ~ 2.0x
B/G Gain Limit 蓝色增益上限 1.2x ~ 2.0x
Convergence Speed 白平衡收敛速度 中等,避免闪烁
Zone Weight 不同区域的权重 中心区域权重高

我记得有一次调试室内混合光源场景——一边是日光灯,一边是白炽灯。AWB在两者之间来回跳,画面一会儿偏蓝一会儿偏黄。后来把色温估计的收敛速度调慢,同时增加了统计区域的权重平滑,才稳定下来。

小技巧:调试AWB时,我习惯先用DNP(日光灯)、TL84(冷白荧光灯)、A(白炽灯)三种标准光源卡做基础标定。然后再去实际场景验证。基础标定不准,后面怎么调都是歪的。

3.4 通过Chrome工具调整3A参数

高通平台的Chrome工具,全称是Qualcomm Chromaticity Tool。它不只是调色彩,3A参数也能在这里改。说白了,Chrome就是高通调试的瑞士军刀。

用Chrome调3A参数,大致分三步:

  1. 连接设备:通过ADB连接手机,启动Chrome工具,选择对应的sensor和ISP配置。
  2. 进入3A调试界面:在Chrome的菜单里找到AE/AF/AWB的调试面板。每个模块都有独立的参数列表。
  3. 实时调整并观察效果:修改参数后,Chrome会实时推送到设备上。你可以一边调一边看画面变化。

举个例子,调AE的目标亮度:

// Chrome工具中AE参数调整示例
// 找到AE模块下的 Target Luma 参数
// 默认值:110
// 修改为:120(画面更亮)
// 修改为:100(画面更暗)
// 点击 Apply 按钮,实时生效

调AF的搜索范围:

// Chrome工具中AF参数调整示例
// 找到AF模块下的 Search Range
// 默认值:0 ~ 1023(全范围)
// 如果微距对不上,可以缩小范围到 200 ~ 1023
// 如果远景对不上,可以缩小范围到 0 ~ 800
// 注意:修改后需要重新触发AF才能看到效果

调AWB的色温曲线:

// Chrome工具中AWB参数调整示例
// 找到AWB模块下的 Color Temperature Curve
// 可以手动添加或修改色温点
// 例如:在 3000K 位置,设置 R/G = 1.8, B/G = 1.2
// 在 6500K 位置,设置 R/G = 1.2, B/G = 1.8
// 保存后,算法会根据新的曲线做白平衡估计

注意:Chrome工具修改的参数只对当前session有效。如果断电或重启,参数会恢复默认。所以调好后,记得把参数导出到tuning文件里,烧录到设备中。

我个人习惯是,先在Chrome里快速验证参数效果,确认没问题后,再写到XML或QCT文件中。这样效率最高,也避免直接改文件导致设备变砖。

3.5 3A算法知识体系总览

下面这张图,把AE、AF、AWB的核心逻辑和调试要点串起来了。你保存下来,以后调试时对照着看,思路会清晰很多。

3A算法知识体系总览 3A算法知识体系总览 3A 算法 AE 自动曝光 AF 自动对焦 AWB 自动白平衡 目标亮度 曝光时间 模拟增益 数字增益 搜索范围 步长 清晰度阈值 镜头位置表 色温范围 R/G增益 B/G增益 收敛速度 调试工具:Chrome(Qualcomm Chromaticity Tool) 核心方法:实时调整参数 → 观察效果 → 导出到tuning文件

这张图把AE、AF、AWB的核心参数都列出来了。你调试的时候,对着这张图,一个一个参数去试,基本不会漏掉什么。