4. AWB统计信息:ISP统计窗口配置与色温估计

AWB(自动白平衡)的准确性高度依赖ISP前端提供的统计信息质量。本章深入剖析统计窗口(Zone/Region)的划分策略、R/G/B直方图的解读方法以及色温区间估计(CCT Estimator)的实现原理,帮助调试人员快速定位AWB统计异常。

4.1 统计窗口配置(Zone/Region)

ISP通常将整帧图像划分为M×N个统计窗口(Zone),每个窗口独立计算R、G、B的均值与直方图。窗口划分方式直接影响AWB对不同光源场景的适应能力。

4.1.1 窗口划分策略对比

策略 划分方式 适用场景 优势 劣势
均匀网格 固定行列数(如16×12) 常规室内/室外 实现简单,硬件开销低 无法适应主体偏移
自适应加权 根据亮度/色度分布动态调整 逆光、高动态场景 突出主体区域权重 算法复杂,实时性受限
人脸优先 结合人脸检测框覆盖 人像拍摄 肤色还原准确 非人脸场景失效
中心加权 中心区域权重高于边缘 手机/监控定焦 符合构图习惯 边缘物体偏色
调试建议:在ISP调优初期,建议使用均匀网格(如15×11)作为基线,待AWB基础稳定后再根据产品场景引入加权策略。避免一开始就使用复杂自适应方案,否则难以区分是统计窗口问题还是AWB算法本身的问题。

4.1.2 窗口配置参数清单

以下为典型ISP统计窗口配置寄存器参数(以某主流ISP芯片为例):

// 统计窗口尺寸配置
STAT_WIN_H_NUM = 15;   // 水平方向窗口数
STAT_WIN_V_NUM = 11;   // 垂直方向窗口数
STAT_WIN_WIDTH  = 128; // 每个窗口宽度(像素)
STAT_WIN_HEIGHT = 96;  // 每个窗口高度(像素)

// 窗口使能与权重
STAT_WIN_ENABLE = 0xFFFF; // 全窗口使能
STAT_WIN_WEIGHT[0..164] = {1}; // 均匀权重

// 有效像素范围(排除黑边/OVB)
STAT_VALID_START_X = 16;
STAT_VALID_START_Y = 12;
STAT_VALID_END_X   = 4095;
STAT_VALID_END_Y   = 3071;
常见问题:如果统计窗口尺寸设置过大(如单个窗口覆盖超过200×200像素),会导致窗口内包含多种颜色/光源,AWB统计均值被“平均化”,丢失局部色温信息。建议单个窗口覆盖不超过150×150像素。

4.2 R/G/B统计直方图

每个统计窗口输出的R、G、B直方图是AWB算法判断场景色温分布的核心依据。直方图通常包含256个bin(8bit数据)或1024个bin(10bit数据),反映每个颜色通道的像素值分布。

4.2.1 直方图数据结构

以10bit RAW数据为例,每个窗口的直方图数据结构如下:

// 单个窗口直方图结构体
typedef struct {
    uint32_t r_hist[1024]; // R通道直方图
    uint32_t g_hist[1024]; // G通道直方图
    uint32_t b_hist[1024]; // B通道直方图
    uint32_t pixel_count;  // 窗口内有效像素总数
    uint32_t r_sum;        // R通道像素值累加和
    uint32_t g_sum;        // G通道像素值累加和
    uint32_t b_sum;        // B通道像素值累加和
} awb_stat_window_t;

4.2.2 直方图典型异常模式

异常模式 直方图表现 可能原因 排查方向
R通道整体右偏 R直方图峰值在bin 700~900 传感器R增益过高或光源偏红 检查传感器增益配置、光源色温
G通道双峰 G直方图出现两个明显峰值 窗口内包含强光源与阴影区域 缩小窗口尺寸或启用局部统计
B通道低端截断 B直方图在bin 0~50堆积 B通道黑电平校正异常或欠曝 检查OB(光学黑电平)校正值
三通道均集中在低端 峰值在bin 0~100 整体欠曝或镜头光圈过小 增加曝光时间或增益
调试技巧:在ISP调试工具中,建议同时显示“R/G/B直方图叠加图”和“R/G比值散点图”。如果直方图显示R通道整体偏高,但R/G比值散点图却集中在低比值区域,说明可能是G通道异常偏低而非R通道偏高——需要结合多维度统计交叉验证。

4.3 色温区间统计(CCT Estimator)

CCT Estimator(相关色温估计器)是AWB模块中负责将统计窗口的R/G、B/G比值映射到色温区间的关键组件。它通常基于预定义的色温查找表(LUT)或多项式模型进行估计。

4.3.1 CCT Estimator工作流程

CCT Estimator 工作流程 统计窗口输入 R/G, B/G, 亮度 有效窗口筛选 排除过暗/过曝/饱和 色温LUT映射 查表得到候选色温 置信度加权 距离/亮度/饱和度权重 多窗口融合 加权平均/投票机制 色温输出 CCT值 + 置信度 反馈:低置信度时触发重新统计 关键说明: 1. 有效窗口筛选:排除亮度低于阈值(如<10%满量程)或高于阈值(如>98%满量程)的窗口。 2. 色温LUT映射:通常基于黑体辐射轨迹(Planckian Locus)预计算R/G-B/G到CCT的映射表。 3. 置信度加权:距离色温轨迹越近的窗口权重越高,远离轨迹的窗口(如纯色物体)权重降低。

4.3.2 色温区间划分参考

实际工程中,CCT Estimator通常将色温划分为若干离散区间,每个区间对应一组AWB增益。以下为典型划分方案:

色温区间 CCT范围(K) 典型光源 R/G比值范围 B/G比值范围
低色温 2000 ~ 3000 白炽灯、烛光 1.8 ~ 2.4 0.6 ~ 1.0
中低色温 3000 ~ 4500 暖白荧光灯、卤素灯 1.4 ~ 1.8 0.8 ~ 1.2
中性色温 4500 ~ 5500 日光、闪光灯 1.0 ~ 1.4 1.0 ~ 1.4
中高色温 5500 ~ 7000 阴天、荧光灯 0.8 ~ 1.0 1.4 ~ 1.8
高色温 7000 ~ 10000 蓝天阴影、LED冷白 0.6 ~ 0.8 1.8 ~ 2.4
常见问题:当场景中存在大面积单色物体(如蓝色墙面、红色旗帜)时,CCT Estimator可能被“欺骗”,输出错误的色温估计。解决方法:在有效窗口筛选中加入“色度饱和度”判断,排除饱和度高于阈值的窗口(通常饱和度阈值设为0.3~0.5)。

4.4 统计信息调试实战要点

4.4.1 统计窗口可视化调试

在ISP调试工具中,建议开启以下可视化功能:

  • 窗口覆盖图:在图像上叠加显示统计窗口网格,每个窗口用颜色标记其R/G比值(如红色表示R/G偏高,蓝色表示R/G偏低)。
  • 直方图实时刷新:选中任意窗口,实时显示该窗口的R/G/B直方图,支持叠加显示多个窗口的直方图对比。
  • 色温分布热力图:将每个窗口估计的CCT值映射为颜色,生成整帧的色温分布热力图,快速定位色温异常区域。

4.4.2 常见统计异常排查清单

现象 排查步骤 预期结果
全帧偏红,AWB无法校正 1. 检查R通道直方图是否右偏
2. 检查传感器R增益寄存器
3. 检查黑电平校正值
R通道直方图峰值应在bin 400~600(10bit)
局部区域色温跳变 1. 检查该区域窗口尺寸是否过大
2. 检查窗口权重配置
3. 检查该区域是否有强光源
窗口尺寸应小于光源区域
CCT估计值长时间不更新 1. 检查统计窗口使能状态
2. 检查有效窗口筛选阈值
3. 检查AWB算法帧间隔配置
统计窗口应每帧更新
直方图出现大量空bin 1. 检查ADC位宽配置
2. 检查数字增益是否过大
3. 检查量化步长
直方图应连续分布,无大量空bin
总结:AWB统计信息的质量决定了白平衡校正的上限。窗口配置要兼顾分辨率与计算效率,直方图分析要关注分布形态而非仅看均值,CCT Estimator需要结合置信度机制避免被单色物体误导。在ISP调优工程中,建议将统计信息调试作为AWB校准的第一步,统计信息准确后再进行增益矩阵和色温曲线的精细调优。