关键词 :
RK3568RKAIQISP21CCMColor Correction Matrix颜色校正矩阵色彩校正IQ TuningGC2053
适用平台 :RK3568 / RV1126 / RK3588(ISP21 框架通用)
作者笔记 :本文基于gc2053_default_JX8006.json实战调试过程整理
📑 文章目录
- 前言
- 一、CCM 是什么
- 二、为什么必须有 CCM
- 三、CCM_CALIB 整体结构
- 四、control 模块控制
- 五、lumaCCM 亮度自适应 CCM
- 六、TuningPara 调参核心
- 七、illu_estim 光源估计
- 八、aCcmCof 光源策略
- 九、matrixAll CCM 矩阵库
- 十、CCM 矩阵数学原理
- 十一、当前 IQ 文件状态分析
- 十二、实战调试经验
- 十三、矩阵手工微调技巧
- 十四、CCM 与其他模块协同
- 十五、一图速查
- 十六、CCM 调试铁律
- 总结
- 参考资料
前言
ccm_calib 是 RKAIQ ISP21 框架中的:
CCM(Color Correction Matrix)颜色校正矩阵模块
主要作用:
把 Sensor RGB
校正到标准色彩空间
它决定:
- 肤色是否正常
- 红色是否偏橙
- 蓝色是否偏紫
- 绿色是否偏黄
一、CCM 是什么
一句话理解:
给 RGB 做一次 3×3 矩阵变换
CCM 的本质
去除 RGB 串扰
恢复真实颜色
为什么需要 CCM
因为:
Sensor RGB
不是真正的 RGB
例如:
- 红通道混有绿色
- 蓝通道混有绿色
- 绿色混有红色
CCM 的作用
把"脏 RGB"
变成"标准 RGB"
二、为什么必须有 CCM
如果关闭 CCM:
画面会发灰
颜色不准
典型现象:
- 肤色灰
- 天空不蓝
- 红色偏橙
- 绿色偏黄
三、CCM_CALIB 整体结构
ccm_calib
├── control
├── lumaCCM
└── TuningPara
├── illu_estim
├── aCcmCof
└── matrixAll
四、control 模块控制
"control": {
"enable": 1,
"wbgain_tolerance": 0.1,
"gain_tolerance": 0.2
}
4.1 enable
| 值 | 含义 |
|---|---|
| 1 | 开启 CCM |
| 0 | 关闭 CCM |
推荐
"enable": 1
4.2 wbgain_tolerance
0.1
含义
AWB 增益变化小于 10%
不重新切换 CCM
作用
防止颜色闪烁
4.3 gain_tolerance
0.2
含义
Sensor gain 变化小于 20%
不更新 CCM
本质
滞后机制(Hysteresis)
五、lumaCCM 亮度自适应 CCM
⭐ 暗部彩噪控制核心
5.1 rgb2y_para
[38,75,15]
含义
RGB → Y:
Y = 0.299R + 0.587G + 0.114B
当前值
BT.601 标准量化
5.2 gain_yalp_curve
⭐ 最关键
当前结构
"y_alpha_curve":
[0,64,128,...,1024]
含义
亮度 → CCM 强度
alpha 规则
| alpha | 含义 |
|---|---|
| 0 | 不做 CCM |
| 1024 | 完整 CCM |
当前状态
全亮度完整应用 CCM
5.3 为什么暗部需要减弱 CCM
因为:
暗部噪声很大
CCM:
会把噪声变成彩噪
推荐
前 4 点:
[0,0,0,0,128,256,...]
效果
暗部彩噪明显减少
5.4 gain_alphaScale_curve
当前:
全 1
含义
不同 gain 不缩放 CCM
六、TuningPara 调参核心
"TuningPara": {
"damp_enable": 1,
"illu_estim": {...},
"aCcmCof": [...],
"matrixAll": [...]
}
七、illu_estim 光源估计
7.1 damp_enable
| 值 | 含义 |
|---|---|
| 1 | 平滑切换 |
| 0 | 立即切换 |
推荐
1
原因
避免:
光源切换瞬间颜色跳变
7.2 interp_enable
| 值 | 含义 |
|---|---|
| 0 | 单光源 |
| 1 | 多光源插值 |
当前
0
含义
只使用最接近光源
7.3 default_illu
"A"
含义
默认启动光源
7.4 prob_limit
0.2
含义
光源置信度小于 20%
不切换
7.5 frame_no
8
含
连续 8 帧确认
才切光源
八、aCcmCof 光源策略
当前共有 7 个光源
| 光源 | 含义 |
|---|---|
| A | 钨丝灯 |
| HZ | 钠灯 |
| D75 | 冷日光 |
| TL84 | 欧标荧光 |
| CWF | 冷白荧光 |
| D65 | 标准日光 |
| D50 | 中性日光 |
8.1 awbGain
[1.1857, 2.5794]
含义
[R_gain, B_gain]
用于:
匹配当前光源
8.2 matrixUsed
["A_74","A_100"]
含义
对应:
低饱和矩阵
高饱和矩阵
8.3 gain_sat_curve
"gains": [1,4,8,16]
"sat": [100,100,95,60]
含义
高 ISO:
自动降低饱和度
原因
避免:
高 ISO 彩噪
九、matrixAll CCM 矩阵库
⭐ CCM 真正核心
9.1 当前共有
14 张矩阵
组成
| 光源 | 数量 |
|---|---|
| 7 个光源 × 2 档 | 14 |
9.2 矩阵结构
"ccMatrix": [
1.7374,-0.4821,-0.2553,
-0.4947,1.625,-0.1303,
-0.2138,-1.2794,2.4932
]
十、CCM 矩阵数学原理
公式
|R'| |m00 m01 m02| |R|
|G'| = |m10 m11 m12| × |G|
|B'| |m20 m21 m22| |B|
10.1 对角元素
> 1
作用:
增强主通道
10.2 非对角元素
< 0
作用:
减去串扰
10.3 白点保持
每行:
和 ≈ 1
例如:
1.7374 -0.4821 -0.2553 = 1
原因
保证白色亮度不变
十一、当前 IQ 文件状态分析
| 模块 | 状态 | 评价 |
|---|---|---|
| enable | ✅ | 已开启 |
| lumaCCM | ✅ | 已启用 |
| damp_enable | ✅ | 平滑切换 |
| interp_enable | ❌ | 单光源 |
| gain_sat_curve | ✅ | 已优化 |
| matrixAll | ✅ | 完整 |
当前特点
低 ISO 高饱和
高 ISO 自动降饱和
十二、实战调试经验
经验 1:整体偏色
优先检查:
AWB 是否正确
经验 2:暗部彩噪
解决:
前 4 个 y_alpha_curve 写 0
经验 3:高 ISO 伪色
解决:
高 ISO sat:
95 → 60 → 40
经验 4:场景切换跳变
解决:
damp_enable = 1
frame_no = 12
经验 5:混合光不自然
解决:
interp_enable = 1
十三、矩阵手工微调技巧
13.1 红色更红
m00 增大
m01/m02 更负
13.2 绿色不偏黄
m10 更负
13.3 蓝色更纯
m21 更负
13.4 调矩阵铁律
每行和必须≈1
十四、CCM 与其他模块协同
AWB
↓
LSC
↓
CCM
↓
Gamma
↓
3DLUT
⚠️ 联调原则
| 模块 | 职责 |
|---|---|
| AWB | 色温 |
| LSC | 边缘颜色 |
| CCM | 线性色彩 |
| 3DLUT | 风格化 |
十五、一图速查
| 想做什么 | 改哪里 | 怎么改 |
|---|---|---|
| 红更红 | m00 | 增大 |
| 蓝更纯 | m21 | 更负 |
| 降暗部彩噪 | y_alpha_curve | 前段写 0 |
| 高 ISO 防彩噪 | sat | 降低 |
| 防闪烁 | damp_enable | 1 |
| 防频繁切换 | frame_no | 8→16 |
| 混合光自然 | interp_enable | 1 |
十六、CCM 调试铁律
铁律 1
AWB 不准
CCM 必错
铁律 2
LSC 问题
不要怪 CCM
铁律 3
暗部 CCM 要减弱
铁律 4
高 ISO 饱和度必须降低
总结
CCM 的本质:
恢复真实颜色
它决定:
-
肤色
-
天空颜色
-
红绿蓝纯度
-
整体色彩准确性
真正项目里最重要的是:自然
稳定
不过饱和
因此:
- AWB 先准
- CCM 再调
- 暗部减弱 CCM
- 高 ISO 自动降饱和
才是正确的 CCM 调参方式。
参考资料
- Rockchip RKAIQ Framework Documentation
- RKAIQ ISP21 CCM Calibration Guide
- GC2053 Datasheet
- RKMedia Developer Guide
- RKAIQ Source Code