1. 高通Camera整体架构概览
高通平台的Camera软件栈经历了从传统 mm-camera 到新一代 CHI (Camera Hardware Interface) 架构的重大演进。理解这两代架构的差异以及AE/AWB模块在其中的位置,是进行图像质量调试的基础。
1.1 传统 mm-camera 架构
mm-camera (Multimedia Camera) 是高通在骁龙845及之前平台广泛使用的经典架构。其核心特点是模块间耦合较紧,算法与硬件抽象层绑定较深。
架构特点: 分层清晰但扩展性受限,算法库以静态链接库形式集成,调试参数固化在特定文件中。
1.2 CHI 架构演进
从骁龙855/865开始,高通全面转向 CHI (Camera Hardware Interface) 架构。CHI 基于 UML (Unified Markup Language) 的 XML 配置驱动,实现了算法与平台的解耦,极大提升了调试灵活性和可扩展性。
| 对比维度 | mm-camera | CHI 架构 |
|---|---|---|
| 配置方式 | C代码 + 静态库 | XML + 动态加载 |
| 算法集成 | 编译时链接 | 运行时加载 (UML Node) |
| 调试灵活性 | 低,需重新编译 | 高,XML 热更新 |
| 多摄支持 | 有限,需定制 | 原生多摄 Pipeline |
| AE/AWB 位置 | 算法库内部 | 独立的 UML Node |
1.3 AE/AWB 模块在架构中的位置
在 CHI 架构中,AE (Auto Exposure) 和 AWB (Auto White Balance) 被设计为独立的 UML Node,位于 ISP Pipeline 的统计数据处理阶段。它们接收来自硬件统计模块的 3A 统计数据,经过算法处理后,通过 CHI 回调机制 将控制参数写回 ISP 硬件。
调试切入点: AE/AWB 的 XML 配置文件通常位于
/vendor/etc/camera/camx/ 目录下,文件名格式为 xxx_aec.xml 和 xxx_awb.xml。修改这些 XML 文件后,通过 adb push 即可热更新,无需编译镜像。
1.4 关键数据流路径
- Sensor 输出 RAW 数据 → ISP 前端处理
- ISP 统计引擎 计算亮度直方图、色温分布等统计信息
- Stats Node 将统计数据分发到 AEC Node 和 AWB Node
- AEC Node 计算目标曝光参数 (曝光时间、增益、光圈)
- AWB Node 计算目标白平衡增益 (R/G/B 通道增益)
- CHI Core 将计算结果写入 ISP 寄存器,完成闭环控制
1.5 调试文件与工具概览
| 文件/工具 | 用途 | 路径示例 |
|---|---|---|
| aec.xml | AE 算法参数配置 | /vendor/etc/camera/camx/xxx_aec.xml |
| awb.xml | AWB 算法参数配置 | /vendor/etc/camera/camx/xxx_awb.xml |
| sensor_lib.cpp | Sensor 驱动与初始化参数 | /vendor/qcom/proprietary/chi-cdk/ |
| CamX 日志 | 调试 3A 算法运行状态 | adb logcat -s CAMX |
| CHI Debug Tool | 可视化 Pipeline 与 Node 状态 | 高通内部工具 |
注意事项: 在 CHI 架构中,AE 和 AWB 的 XML 配置文件必须严格遵循 UML Schema 定义。错误的标签或属性值可能导致 Node 加载失败,进而造成相机预览黑屏或 3A 算法不工作。修改前请备份原始文件。