关键词RK3568 RKAIQ ISP21 BLC Black Level Correction 黑电平校正 IQ Tuning GC2053
适用平台: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 调试方式。


参考资料

  1. Rockchip RKAIQ Framework Documentation
  2. RKAIQ ISP21 BLC Calibration Guide
  3. GC2053 Datasheet
  4. RKMedia Developer Guide
  5. RKAIQ Source Code
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐