1. AE算法基础
各位同学好,我是老张。做高通平台ISP调试这些年,AE收敛性是我觉得最磨人、也最有意思的一块。今天咱们先打好地基,聊聊自动曝光的基本概念,以及它在Spectra平台上是怎么流转的。
1.1 自动曝光到底在干什么?
说白了,AE就是让摄像头像人眼一样,根据环境亮度自动调节进光量。太暗了提亮,太亮了压暗,最终输出一张亮度合适的图像。
但这里有个关键点——AE不是单纯追求“亮”,而是追求“准”。我在项目中遇到过好几次,AE收敛到很亮的画面,但人脸过曝、高光细节全丢了。所以AE的目标是:在动态范围内,把主体亮度映射到目标值附近。
AE核心三要素:
- 目标亮度:通常用Y值(亮度分量)表示,比如目标Y=100(8bit范围)
- 收敛速度:从当前亮度到目标亮度需要多少帧
- 稳定性:收敛后画面不闪烁、不来回跳变
1.2 曝光三角在数字域中的映射
传统摄影的曝光三角——光圈、快门、ISO,到了数字图像传感器这边,映射关系发生了本质变化。我刚开始从传统相机转做手机摄像头时,也花了不少时间才理清楚。
| 物理参数 | 数字域映射 | 控制方式 | 影响范围 |
|---|---|---|---|
| 光圈 (Aperture) | 固定(手机多为F1.6-F2.4) | 硬件固定,少数可变光圈 | 进光量、景深 |
| 快门 (Shutter) | 曝光时间 (Exposure Time) | 寄存器写入,单位us/ms | 亮度、运动模糊 |
| ISO | 模拟增益 + 数字增益 | Sensor增益寄存器 + ISP数字增益 | 亮度、噪声 |
嗯,这里要注意:手机摄像头的光圈通常是固定的,所以AE实际只调节快门和增益两个维度。你想想看,少了光圈这个自由度,收敛策略就得更精细。
快门与增益的权衡
我在调试一个暗光场景时,AE算法倾向于拉高增益来提亮,结果画面噪点满天飞。后来我强制限制了最大增益,让快门适当延长,画质反而好了很多。这就是典型的曝光策略问题。
- 快门优先:先调曝光时间,再补增益。适合静止场景,画质好。
- 增益优先:先调增益,再调快门。适合运动场景,防抖。
- 混合策略:根据场景动态分配权重。高通Spectra默认走这条路线。
个人经验:调试初期建议先用固定策略(比如快门优先),等收敛性调稳了再切混合策略。否则你根本分不清是策略问题还是算法问题。
1.3 数字域中的曝光值计算
AE算法内部其实不直接操作物理时间,而是操作一个叫曝光指数 (Exposure Index, EI)的归一化值。
// 曝光指数计算公式(简化版)
EI = exposure_time * analog_gain * digital_gain
// 实际代码中通常用对数域表示
log2_EI = log2(exposure_time) + log2(analog_gain) + log2(digital_gain)
为什么要用对数?因为人眼对亮度的感知是对数的,而且对数域做加减法比乘除法快得多。高通Spectra的AE引擎内部全是log2域运算,这一点后面调试时会反复用到。
1.4 高通Spectra平台的AE Pipeline概述
接下来是重头戏。Spectra平台的AE Pipeline,我画了一张流程图,你看看就明白了。
这个流程每帧都会跑一遍。我简单解释一下各模块的作用:
- Sensor Raw Data:传感器输出的原始Bayer数据,还没经过任何处理。
- ISP 3A统计引擎:硬件模块,实时统计亮度直方图、分区平均亮度等。这部分是硬加速,不占CPU。
- AE算法核心:软件算法,根据统计值计算当前亮度与目标亮度的偏差,决定下一步怎么调。
- 曝光决策:把算法结果拆解成具体的快门、增益值。
- Sensor/ISP配置:把决策写入硬件寄存器,下一帧生效。
曾经踩过的坑:有一次我发现AE收敛特别慢,查了两天才发现是统计引擎的窗口配置错了——统计区域只覆盖了画面中心一小块,边缘亮暗变化完全没被纳入计算。所以调试AE的第一步,永远是确认统计引擎的配置对不对。
1.5 Spectra AE的关键特性
高通Spectra相比其他平台,有几个让我印象深刻的特性:
| 特性 | 说明 | 调试影响 |
|---|---|---|
| 多分区统计 | 画面分成5x5或15x15网格,每个格子独立统计 | 分区权重配置直接影响测光区域 |
| HDR融合支持 | 长短帧融合时,AE需要分别控制两帧的曝光 | 收敛策略复杂度翻倍 |
| 帧级流水线 | 当前帧的统计值用于下一帧的配置 | 存在1-2帧的延迟,调试时要考虑 |
| 用户回调接口 | 允许Tuning工程师注入自定义策略 | 灵活性高,但也容易引入bug |
我个人觉得,多分区统计是Spectra最强大的地方。你可以针对人脸区域、天空区域、暗部区域分别设置权重,实现智能测光。但这也意味着,你得花大量时间去调这些权重表。
1.6 本章小结
好了,第一节课的内容就这些。咱们捋一下重点:
- AE的本质是亮度闭环控制,目标Y值是核心参考点
- 曝光三角在数字域简化为快门 + 增益两个自由度
- 高通Spectra的AE Pipeline是硬件统计 + 软件决策的混合架构
- 调试AE的第一步,永远是确认统计引擎配置正确