瑞芯平台AWB架构:从硬件到算法的全景图
做AWB调试,第一件事不是调参数,而是搞清楚整个链路怎么跑的。我见过不少工程师,拿着ISP工具就开始调白平衡增益,结果偏色问题怎么都修不好——后来发现是硬件通路配置错了。嗯,这章我们就来拆解瑞芯平台的AWB架构。
RK ISP硬件模块概览
瑞芯的ISP不是一个黑盒子,它内部有明确的硬件模块分工。AWB相关的硬件模块,说白了就这几个核心单元:
| 硬件模块 | 功能描述 | 我踩过的坑 |
|---|---|---|
| RAW域统计引擎 | 从RAW图直接提取R/G/B三通道统计值 | 统计窗口没对齐,导致边缘偏色 |
| AE/AWB共用直方图 | 亮度与色度直方图,用于场景判断 | 直方图bin宽度设太粗,色温区分不开 |
| 色彩校正矩阵(CCM) | 硬件级色彩空间转换,AWB之后执行 | CCM和AWB增益打架,颜色过饱和 |
| Gamma/LUT模块 | 非线性映射,影响AWB后的色调 | Gamma曲线改了,白平衡又得重调 |
你想想看,这些模块是串联工作的。RAW统计引擎先拿到原始数据,然后AWB算法算出增益,最后CCM和Gamma做色彩映射。任何一个环节出问题,最终图像都会偏色。
关键认知:硬件统计引擎的输出质量,直接决定了AWB算法的上限。统计窗口位置、大小、权重配置,比算法参数本身更重要。
AWB算法模块划分
瑞芯的AWB算法不是单一模块,它分成了三个层次。我个人习惯把它们叫做「感知层-决策层-执行层」:
- 色温估计器(感知层)—— 从统计值推算当前光源色温。常用方法有灰度世界、完美反射、色温查找表。
- 场景分类器(决策层)—— 判断当前是室内、室外、日落还是混合光源。这个模块我花了很多时间调,因为误判会导致白平衡跳变。
- 增益计算器(执行层)—— 根据色温和场景,输出R/G/B三通道增益值。这里要注意增益上限,防止通道饱和。
我曾经在一个项目中,色温估计器算出来是5000K,但场景分类器认为是室内暖光,结果增益算出来偏蓝。后来发现是统计窗口覆盖了天空和墙壁的混合区域。说白了,统计源的纯净度比算法复杂度更重要。
我的经验:调试AWB时,先锁定场景分类器的输出,确认它没判错,再去调色温估计器。否则你会在错误的方向上越走越远。
RkAiq与3A库的关系
很多新手搞不清RkAiq和3A库的区别。我简单解释一下:
- RkAiq 是瑞芯的AIQ框架,负责ISP参数的整体调度。它像个总指挥,告诉各个模块什么时候该做什么。
- 3A库(AE/AWB/AF)是具体的算法实现。AWB算法就放在3A库里,RkAiq会调用它。
它们的关系是这样的:
应用层 → RkAiq框架 → 3A库(AWB算法) → ISP硬件寄存器
调试的时候,你改的是3A库里的AWB参数,但生效需要经过RkAiq的调度。我记得有一次改了AWB的增益上限,结果没生效,查了半天发现是RkAiq的配置文件中把AWB模块给禁用了。嗯,这种低级错误最容易让人抓狂。
注意:RkAiq的配置文件(通常是JSON或XML格式)里有一个 enable_awb 字段。如果它被设为false,你改再多3A库参数都没用。这是排查问题的第一站。
调试工具链介绍
工具链是AWB调试的「眼睛」。瑞芯平台主要提供这几样工具:
| 工具名称 | 用途 | 我的使用习惯 |
|---|---|---|
| RKISP_Tuner | 在线调参,实时预览效果 | 先调大方向,再微调细节 |
| RkAiq_Calibration | 离线标定,生成初始参数 | 实验室环境下做一次,作为基准 |
| ISP_Dump工具 | 抓取RAW图和统计值 | 遇到偏色必抓RAW,分析原始数据 |
| Log分析脚本 | 解析AWB算法运行日志 | 看色温估计值和最终增益是否匹配 |
我个人最常用的是 ISP_Dump工具。为什么?因为很多偏色问题在预览图上看不出来,但RAW图里一清二楚。比如某个通道有坏点,或者统计窗口覆盖了过曝区域,这些在RAW里都能发现。
避坑指南:我曾经花了两天调AWB参数,偏色就是修不好。最后dump了RAW图,发现绿色通道有两个坏点,导致统计值偏高。换掉sensor后,问题立刻解决。所以——先看RAW,再调参。
AWB架构全景图
下面这张图是我自己总结的瑞芯AWB架构关系,你可以把它当作调试时的路线图:
这张图把整个链路串起来了。从上到下依次是:硬件统计引擎 → 3A库AWB算法 → RkAiq调度 → 工具链。调试的时候,我建议你按照这个顺序排查问题。先确认硬件统计值对不对,再看算法算出来的色温和增益是否合理,最后检查RkAiq有没有正确下发参数。
一句话总结:AWB调试不是调一个参数的事,而是理解整个链路后,在正确的位置做正确的修改。硬件统计是地基,算法是房子,RkAiq是物业——地基歪了,房子和物业再好也没用。