ISP-3A 模块理解
- [3A 模块概念](#3A 模块概念)
-
-
- [3A 算法模块具体分析](#3A 算法模块具体分析)
- [AF Stat(对焦统计)](#AF Stat(对焦统计))
- [AE 自动曝光](#AE 自动曝光)
- AWB(自动白平衡)
-
3A 模块概念
在典型的相机系统中,3A(AE、AWB、AF)遵循统一的统计闭环收敛流程:
ISP 统计 → HAL 解析 → 3A 算法 → 控制参数 → 下一帧(重复,直至收敛)
并且,在触发 Shutter(拍照)之前,软件栈必须等待 3A 均处于"已收敛"状态(或达到超时阈值),以确保最终图像曝光准确、白平衡自然、对焦清晰。
3A 算法软件实现机制
3A 算法的软件实现机制可以包括统计值获取和解析、算法调用和结果返回的完整流程。
以 AX 平台为例,3A 统计在 Pipeline 中的位置:

在做 ISP 算法设计时,尽量减少各算法模块之间的耦合。
-
AE0 Stat(曝光统计)------ BPC(坏点校正)之后、HDR 之前
- 避开坏点干扰:坏点会产生极亮或极暗的异常值,若在 BPC 之前统计,会严重拉偏亮度均值。
- 保留原始线性亮度:放在 HDR 之前,此时数据仍是线性的 RAW 域,曝光算法可以直接映射到曝光时间/增益,无需逆 HDR 曲线。
- 早统计可减少延迟:曝光控制对实时性要求最高,越早获得统计,下一帧曝光调整越快。
-
AWB Stat(白平衡统计)------ LSC(镜头阴影校正)之后、WBC(白平衡校正)之前
- 消除镜头阴影影响:LSC 修正了镜头四周暗角(R/G/B 衰减不均),若不校正,四周色偏会误导 AWB 统计。
- RAW 域色温敏感度高:在乘白平衡增益之前统计,算法能直接估计场景色温,避免"循环依赖问题"(AWB 用上一次的增益来统计下一次的增益)。
- 避开非线性处理:WBC 之后还有 LTM 等局部调整,会改变局部色温关系,因此必须在这些非线性模块之前。
-
AE2 Stat(高级曝光/局部补偿)------ 白平衡之后、色调映射之前
- 获取带白平衡的图像亮度:此时 R/G/B 已乘以正确的白平衡增益,亮度值更接近人眼感知(人眼对绿色最敏感,白平衡后的 RGB→亮度转换更准确)。
- 支持局部曝光补偿(如背光检测):LTM 会改变局部对比度,若在其之后统计,无法区分"真实曝光不足"还是"LTM 压暗处理"。
- 配合 HDR 合成后的全局亮度评估:AE2 通常用于高动态场景下的最终曝光微调。
在 WB 后做曝光统计呢?主要是为了保证在不同色温下画面亮度是相同的。
- AF Stat(对焦统计)
- LSC→WBC:RAW 域高频信息(相位差、对比度)------ 相位对焦(PDAF):利用未乘白平衡增益的原始 Bayer 数据计算相位差。
- WBC→LTM:彩色域边缘信息(RGB 梯度)------ 对比度对焦(CDAF):利用白平衡校正后的彩色图像计算边缘清晰度。
3A 算法模块具体分析
AF Stat(对焦统计)
在拍照时,镜头需要前后移动来使得画面变得清晰,AF 统计模块的任务就是告诉算法当前画面有多清晰,算法根据这个值来决定镜头的移动方向。而清晰 = 边缘明显 = 明暗变化剧烈 。故AF 模块的核心是:检测画面里明暗变化有多剧烈。
一般使用滤波器来检测边缘,一般变化大的地方输出大的数字,变化小的地方输出小数字。不同方向的边缘都能反映清晰度,故会使用多个滤波器。
自动对焦技术,指目标场景在成像系统中准确清晰成像的自动调节的过程,通常分为主动对焦和被动对焦。
被动对焦利用入射的光线和图像信息进行分析来调节对焦,包括相位检测对焦 PDAF 和对比度检测聚焦 CDAF。
(1)CDAF(反差对焦/对比度对焦)
核心原理
通过计算图像的对比度(锐度)来判断是否合焦,对比度最大时即为合焦点。
工作流程
text
移动镜头 → 获取图像 → 计算 FV(对比度) → 判断是否峰值 → 继续移动/停止
关键概念
| 概念 | 说明 |
|---|---|
| FV (Focus Value) | 对比度/锐度评价值,越大越清晰 |
| 单峰曲线 | 合焦点处 FV 最高,两侧递减 |
| 爬山搜索 | 往 FV 上升方向移动,下降则回退 |
优点
- 无需特殊硬件,成本低
- 精度高,可达到像素级
- 适用所有场景(只要有纹理)
缺点
- 速度慢:需要多次搜索才能找到峰值
- 暗光失效:噪声大,FV 不准确
- 低纹理失效:白墙等无纹理场景,FV 无变化
适用场景
光线充足 + 有纹理 + 对速度要求不高(如风景、静物拍照)
(2)PDAF(相位对焦)
核心原理
通过传感器上专门的相位差像素,检测左右光束的相位差,直接计算镜头应移动的距离。
工作流程
text
传感器相位差像素 → 计算 PD 值(相位差) → 一步算出目标位置 → 镜头直接移动到位
关键概念
| 概念 | 说明 |
|---|---|
| PD 值 | 相位差值,反映当前失焦方向和程度 |
| 掩蔽像素 | 传感器上专门用于相位检测的像素 |
| 一步到位 | 计算出 PD 值后,直接跳转到合焦位置 |
优点
- 速度快:无需多次搜索,1-2 步完成
- 暗光可用:主动检测光束,不依赖图像内容
- 运动场景友好:追焦能力强
缺点
- 需要特殊硬件:传感器必须带相位差像素
- 成本较高:工艺更复杂
- 精度受限:受相位差像素密度影响
适用场景
暗光 + 低纹理 + 需要快速对焦(如运动抓拍、视频追焦)
AF 模块在 RAW 域统计图像 FV,可以有效避免 ISP(降噪模块)影响图像的对比度信息。
为什么在 RAW 域做(BPC 之后、HDR 之前)?
- 避免降噪影响:RAW 域的噪声虽大,但对比度信息最原始。一旦经过 NRLite/Raw2DNR 等降噪模块,微弱的边缘高频信息可能被抹平,导致 FV(对焦评价值)灵敏度下降,出现"对焦犹豫"。
- RAW 域响应线性:相比经过 HDR 合成或 Gamma 校正后的图像,RAW 域的亮度变化与镜头物理失焦程度呈更线性的关系。
AX 平台上 AF 模块一共提供四组滤波:分别是水平方向滤波 H1、H2(检测垂直边缘的清晰度)和垂直方向滤波 V1、V2(检测水平边缘的清晰度)。每组滤波分别输出各自的 FV(滤波结果)、像素个数、像素值、高亮像素值。Raw 图进入 AF 模块后,先转成 1/2 分辨率的 Y 值图,后根据参数选择是否做 Gamma,然后分窗口统计水平和垂直方向统计信息,最后进行 Coring。

这种设计通过早期介入(RAW 域)+ 多方向滤波 + 分窗统计 + Coring 去噪,在保持对焦灵敏度(FV)的同时,最大程度隔离了 ISP 后续模块对对比度信息的污染。
核心价值:AX 平台的 AF 统计模块在 RAW 域(BPC 之后、HDR 之前)对图像进行 1/2 下采样转 Y,通过 H1/H2/V1/V2 四组滤波器分别提取水平和垂直方向的边缘信息,经 Coring 去噪后输出 FV、亮度等统计量,供上层 AF 算法(PDAF + CDAF)使用。同时支持在 PSTHDR 位置(LTM 之后)配置第二组统计,实现多位置融合。


AE 自动曝光
AE 算法是 AF 正常工作的绝对前提。无论是 CDAF 还是 PDAF,都极度依赖亮度信息:亮度太低,信噪比差,AF 容易出现找不到焦点、反复振荡;亮度过曝,造成边缘被削顶,AF 聚焦失败等。通常,AF 需要用到的 AE 信息包括,增益信息,主要用来辅助判断当前噪声水平,并根据噪声水平调整梯度判断阈值、爬山算法峰值判断阈值等;快门信息,用来辅助判断 AF 清晰度统计区域、指导电机运动等;亮度变化信息,用于辅助判断物距的变化等;
AE 算法同样也需要 AF 算法提供的信息,常见的包括:对焦 ROI 坐标,辅助 AE 测光,保证对焦主体亮度合适;对焦状态,用于决定 AE 状态,如聚焦搜索过程中,需要保持 AE 稳定等;对焦距离(物距),用于辅助判断闪光灯是否开启等。
AE 的作用:让画面亮度合适。
AE 控制:快门,模拟增益,数字增益

曝光统计本质上就是 RGB 三通道(实际是 R/Gr/Gb/B 四通道)加权平均得到亮度 Y。人眼对绿色最敏感,对红、蓝相对不敏感。所以计算亮度时,绿色的权重最高。AX 平台允许用户自定义加权系数。
测光模式:测光就是成像设备对成像场景的光线强度进行测量,并根据光线强度计算出相应的曝光控制因素,使成像设备的画面亮度合适。
中央重点测光
主要测量画面中央区域的亮度,同时也会兼顾边缘区域,但中央区域拥有更大的权重。这主要是由于在进行拍摄时,目标物体往往会处于画面中心位置。
在车载监控场景中,天空占比过多 → AE 读出来画面偏亮 → 地面/路面欠曝。我们就需要调整权重表,降低天空区域的权重,提高地面区域的权重。AX 平台通过 nGridWeightTable 支持完全自定义的权重分布。
AE 算法是全局生效的:提亮就全屏提亮,压暗就全屏压暗。不存在"只提亮暗区、不同时提亮亮区"这种操作。因为 sensor 曝光控制(快门、增益)是全局寄存器。
在逆光场景时,高亮区和暗部亮度差异过大,sensor 动态范围有限,无法同时兼顾。就必须选择优先暗部还是高亮区,或者使用 HDR 进行处理。
长帧:暗部曝光正常 │
│ ├── 短帧:高亮区曝光正常 │
│ └── 多帧合成:取长帧的暗部 + 短帧的高亮区
在低光照场景下,曝光增益(尤其是数字增益)会放大噪声,需要在两者之间找平衡。即 YUV2DNR/YUV3DNR。
车辆从晴朗户外快速进入隧道(亮→暗)或驶出隧道(暗→亮)时,AE 算法如何避免画面过曝、欠曝或闪烁?
传统 AE 算法依赖"反馈-调节"的闭环机制,在亮度平稳变化时表现良好。但在亮度瞬间跳变时,若处理不当,就会出现几秒的全黑或刺眼过曝,严重影响用户体验和后续算法(如识别、跟踪)的稳定性。
AE 可调的参数有快门、模拟增益、数字增益/ISP 增益。不同参数的调整速度和副作用不同,必须明确优先级。
快门优先:无论变亮还是变暗,快门都是最快、最干净的调节方式。
模拟增益优于数字增益:模拟增益引入的噪声相对较小。
设置合理上限:
快门上限:防止进隧道时因曝光时间过长导致运动拖影。
增益上限:防止噪声过大导致画面"噪点"。
曝光收敛速度,即场景亮度突变后,亮度从当前亮度收敛到目标亮度并稳定所需的时间(帧数)。
AE 模块 = 从 ISP 读亮度统计 → 跟目标亮度比较 → 算出新的快门/增益 → 直接写 sensor 驱动 → 重复直到亮度稳定(收敛)。用户可以自己实现整套 AE 逻辑,也可以直接用 SDK 默认 AE 并通过 Tuning 工具调参。
AWB(自动白平衡)
AWB 是让白色物体在不同光源下都能呈现白色的技术。
AWB 本质:估计当前色温 → 计算 R 和 B 的补偿增益。
AWB = 统计 RGB 分块值 → 筛选白色点 → 估计色温 → 计算归一化 RGB 增益 → 写入 WBC 硬件。过程中与 AE、CCM、LSC 联动,特殊场景(单色、混合光、暗光)有专门处理策略。 → 计算归一化 RGB 增益 → 写入 WBC 硬件。过程中与 AE、CCM、LSC 联动,特殊场景(单色、混合光、暗光)有专门处理策略