【RKAIQ ISP21】RK3568 平台 BLC 黑电平校正模块参数详解(GC2053 实战)
·
关键词:
RK3568RKAIQISP21BLCBlack Level Correction黑电平校正IQ TuningGC2053
适用平台:RK3568 / RV1126 / RK3588(ISP21 框架通用)
作者笔记:本文基于gc2053_default_JX8006.json实战调试过程整理
📑 文章目录
- 前言
- 一、BLC 是什么
- 二、整体架构
- 三、
enable—— BLC 总开关 - 四、ISO 13 档控制轴
- 五、
R/Gr/Gb/B_Channel—— 四通道黑电平核心 - 六、当前 IQ 文件状态分析
- 七、实战调试场景
- 八、不同 Sensor 的典型 BLC 值
- 九、BLC 的 4 个铁律
- 十、BLC 与其他模块协同
- 十一、板端验证流程
- 十二、参数速查总表
- 总结
- 参考资料
前言
ablc_calib 是 RKAIQ ISP21 框架中的:
BLC(Black Level Correction)黑电平校正模块
它是:
整个 ISP 流水线的第一站
Sensor RAW 数据进入 ISP 后:
第一件事就是做 BLC
一、BLC 是什么
BLC 的作用:
减去 Sensor 的“假亮度”
为什么会有“假亮度”
即使:
镜头盖完全盖住
Sensor 输出也不是:
0
而是会有:
64
128
256
...
这种基底亮度。
原因
主要来自:
- 模拟电路热噪声
- ADC 偏置
- Sensor 黑电平设计
如果没有 BLC
会导致:
- 整张图发灰
- 黑色不纯
- AWB 计算错误
- CCM 色彩偏移
二、整体架构
ablc_calib
├── BlcTuningPara
│ ├── enable
│ └── BLC_Data
│ ├── ISO
│ ├── R_Channel
│ ├── Gr_Channel
│ ├── Gb_Channel
│ └── B_Channel
│
└── Blc1TuningPara
├── enable
└── BLC_Data
RK ISP 的两级 BLC
| 模块 | 作用 |
|---|---|
| BlcTuningPara | 主 BLC(入口) |
| Blc1TuningPara | 副 BLC(中段) |
实际项目里
通常:
只用主 BLC
副 BLC:
默认关闭
三、enable —— BLC 总开关
参数说明
| 值 | 含义 | 推荐 |
|---|---|---|
1 |
启用 BLC | ✅ |
0 |
关闭 BLC | ❌ |
推荐配置
"enable": 1
为什么必须开
如果关闭:
黑电平不会被减掉
结果:
画面整体发灰
四、ISO 13 档控制轴
当前配置
"ISO": [
50,100,200,400,
800,1600,3200,
10000,12800,
25600,51200,
102400,204800
]
含义
这是:
BLC 的控制轴
ISP 会根据:
当前 ISO
在这 13 档之间:
线性插值
一般不需要改
除非:
- Sensor ISO 范围特殊
- 超高 ISO 专门标定
五、R/Gr/Gb/B_Channel —— 四通道黑电平核心
🔥 BLC 模块最核心部分
当前配置示
"R_Channel": [256,256.125,255.938,255.812,255.438,256,...]
"Gr_Channel": [256,256.125,256.062,255.625,255.25,256,...]
"Gb_Channel": [256,256.125,256,255.812,255.688,256,...]
"B_Channel": [256,256.25,255.875,255.5,255.188,256,...]
六、怎么理解这些值
例如:
ISO100 时:
R_Channel = 256.125
表示:
R 通道减去 256.125 LSB
单位
范围:
0 ~ 4095
即:
12-bit 域
为什么是 256
因为:
GC2053 原始黑电平是 64
RK ISP 内部:
统一转成 12-bit
所以:
64 × 4 = 256
七、为什么 4 个通道分开
Bayer 排列:
R Gr
Gb B
Gr 与 Gb:
物理位置不同
因此:
- 热噪声不同
- 串扰不同
- 电路布局不同
所以:
必须独立标定
八、当前 IQ 文件状态分析
主 BLC 状态
| 字段 | 状态 | 说明 |
|---|---|---|
| enable | ✅ 1 | 已开启 |
| 四通道值 | ≈256 | 正常 |
| 高 ISO | 固定 256 | 未单独标定 |
当前通道差异(ISO100)
| 通道 | 当前值 |
|---|---|
| R | 256.125 |
| Gr | 256.125 |
| Gb | 256.125 |
| B | 256.25 |
当前状态评价
非常正常
原因:
4 通道差异 < 0.5 LSB
说明:
暗部不会明显偏色
九、副 BLC(Blc1TuningPara)
当前:
"enable": 0
一般不用
副 BLC 主要用于:
- HDR 合成
- LSC 后补偿
- 特殊 ISP 流程
普通 IPC:
保持关闭即可
十、实战调试场景
10.1 黑场发灰 🌫️
现象
拍黑色物体:
RGB ≈ (15,15,15)
而不是:
(0,0,0)
原因
BLC 减得不够。
修改方法
例如:
256 → 260
"R_Channel": [260,260,260,...]
⚠️ 注意
优先检查:
Gamma 前几点
因为:
90% 的“发灰”
其实是 Gamma 问题
10.2 暗部偏紫/偏绿 🌈
原因
4 通道 BLC 不平衡。
诊断方法
盖镜头盖抓 RAW:
看 4 通道平均值
示例
| 现象 | 解决方案 |
|---|---|
| 暗部发紫 | 增加 R_Channel |
| 暗部发绿 | 增加 Gr/Gb |
| 暗部发蓝 | 增加 B_Channel |
10.3 高 ISO 彩色噪点 🔵🔴
原因
高 ISO:
黑电平漂移
但:
BLC 没做高 ISO 标定
解决方案
针对高 ISO:
单独测量黑电平
例如:
[256,256,256,257,258,260,265,270]
10.4 换 Sensor 后颜色异常 ⚠️
原因
不同 Sensor:
黑电平不同
解决方案
查看:
datasheet 中的 Black Level
换算成:
12-bit ISP 值
十一、不同 Sensor 的典型 BLC 值
| Sensor | 12-bit BLC |
|---|---|
| GC2053 | 256 |
| OV2718 | 256 |
| IMX291 | 240~260 |
| SC2335 | 256 |
| AR0231 | 168 |
| JX-SC8006 | 256 |
十二、BLC 的 4 个铁律
1. 没必要不要改
因为:
这是 Sensor 厂家标定值
2. 必须用暗场图测
不要:
凭肉眼调
3. 先检查 Gamma
因为:
暗部发灰
90% 是 Gamma
4. 高温会漂移
高端方案:
会做动态 OB 校准
普通 IPC:
只用静态值
十三、BLC 与其他模块协同
数据流:
RAW(sensor)
↓
BLC
↓
LSC
↓
AWB
↓
CCM
十四、为什么 BLC 很重要
因为:
它是 ISP 最早的模块
后续:
- AWB
- CCM
- LSC
全部依赖:
正确的黑电平
BLC 偏 1LSB 会怎样
| 影响 | 后果 |
|---|---|
| AWB | 白点偏移 |
| CCM | 色相偏移 |
| 暗部 | 偏色 |
十五、板端验证流程
15.1 暗场测试(最准确)
抓 RAW
adb shell rkisp_demo --raw_dump /tmp/dark.raw
分析 RAW
import numpy as np
raw = np.fromfile(
'dark.raw',
dtype=np.uint16
).reshape(1080,1920)
R = raw[0::2,0::2].mean()
Gr = raw[0::2,1::2].mean()
Gb = raw[1::2,0::2].mean()
B = raw[1::2,1::2].mean()
print(R,Gr,Gb,B)
理想结果
R≈Gr≈Gb≈B≈0
15.2 RTSP 实时验证
推送 IQ
adb push gc2053_default_JX8006.json /oem/etc/iqfiles/
停止冲突
/oem/RkLunch-stop.sh
启动 RTSP
rkmedia_vi_venc_rtsp_test -a /oem/etc/iqfiles
重点观察
- 黑色是否发灰
- 是否偏色
- 暗部是否有彩噪
十六、参数速查总表
| 想做什么 | 改哪里 | 推荐值 |
|---|---|---|
| 黑场更黑 | 四通道整体 +Δ | 258~260 |
| 黑场更亮 | 四通道整体 -Δ | 252~254 |
| 修正暗部偏红 | R_Channel +Δ | +2~5 |
| 修正暗部偏蓝 | B_Channel +Δ | +2~5 |
| 修正暗部偏绿 | Gr/Gb +Δ | +2~5 |
| 高 ISO 补偿 | 高 ISO 单独调 | 实测 |
总结
BLC 的本质:
把 Sensor 的“假亮度”减掉
它决定:
- 黑场是否纯净
- 暗部是否偏色
- AWB 是否准确
- CCM 是否正常
真正项目里最重要的是:
稳定
准确
不要乱改
因此:
- 黑场发灰先查 Gamma
- 暗部偏色再查 BLC
- 必须用 RAW 暗场图验证
才是正确的 BLC 调试方式。
参考资料
- Rockchip RKAIQ Framework Documentation
- RKAIQ ISP21 BLC Calibration Guide
- GC2053 Datasheet
- RKMedia Developer Guide
- RKAIQ Source Code
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)