【RKAIQ ISP21】RK3568 平台 BLC 黑电平校正模块参数详解(GC2053 实战)
关键词RK3568RKAIQISP21BLCBlack Level Correction黑电平校正IQ TuningGC2053适用平台RK3568 / RV1126 / RK3588ISP21 框架通用作者笔记本文基于gc2053_default_JX8006.json实战调试过程整理 文章目录前言一、BLC 是什么二、整体架构三、enable—— BLC 总开关四、ISO 13 档控制轴五、R/Gr/Gb/B_Channel—— 四通道黑电平核心六、当前 IQ 文件状态分析七、实战调试场景八、不同 Sensor 的典型 BLC 值九、BLC 的 4 个铁律十、BLC 与其他模块协同十一、板端验证流程十二、参数速查总表总结参考资料前言ablc_calib是 RKAIQ ISP21 框架中的BLCBlack 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_DataRK 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 原始黑电平是 64RK ISP 内部统一转成 12-bit所以64 × 4 256七、为什么 4 个通道分开Bayer 排列R Gr Gb BGr 与 Gb物理位置不同因此热噪声不同串扰不同电路布局不同所以必须独立标定八、当前 IQ 文件状态分析主 BLC 状态字段状态说明enable✅ 1已开启四通道值≈256正常高 ISO固定 256未单独标定当前通道差异ISO100通道当前值R256.125Gr256.125Gb256.125B256.25当前状态评价非常正常原因4 通道差异 0.5 LSB说明暗部不会明显偏色九、副 BLCBlc1TuningPara当前enable: 0一般不用副 BLC 主要用于HDR 合成LSC 后补偿特殊 ISP 流程普通 IPC保持关闭即可十、实战调试场景10.1 黑场发灰 ️现象拍黑色物体RGB ≈ (15,15,15)而不是(0,0,0)原因BLC 减得不够。修改方法例如256 → 260R_Channel: [260,260,260,...]⚠️ 注意优先检查Gamma 前几点因为90% 的“发灰” 其实是 Gamma 问题10.2 暗部偏紫/偏绿 原因4 通道 BLC 不平衡。诊断方法盖镜头盖抓 RAW看 4 通道平均值示例现象解决方案暗部发紫增加 R_Channel暗部发绿增加 Gr/Gb暗部发蓝增加 B_Channel10.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 值Sensor12-bit BLCGC2053256OV2718256IMX291240~260SC2335256AR0231168JX-SC8006256十二、BLC 的 4 个铁律1. 没必要不要改因为这是 Sensor 厂家标定值2. 必须用暗场图测不要凭肉眼调3. 先检查 Gamma因为暗部发灰 90% 是 Gamma4. 高温会漂移高端方案会做动态 OB 校准普通 IPC只用静态值十三、BLC 与其他模块协同数据流RAW(sensor) ↓ BLC ↓ LSC ↓ AWB ↓ CCM十四、为什么 BLC 很重要因为它是 ISP 最早的模块后续AWBCCMLSC全部依赖正确的黑电平BLC 偏 1LSB 会怎样影响后果AWB白点偏移CCM色相偏移暗部偏色十五、板端验证流程15.1 暗场测试最准确抓 RAWadb shell rkisp_demo --raw_dump /tmp/dark.raw分析 RAWimport numpy as np raw np.fromfile( dark.raw, dtypenp.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≈015.2 RTSP 实时验证推送 IQadb push gc2053_default_JX8006.json /oem/etc/iqfiles/停止冲突/oem/RkLunch-stop.sh启动 RTSPrkmedia_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 DocumentationRKAIQ ISP21 BLC Calibration GuideGC2053 DatasheetRKMedia Developer GuideRKAIQ Source Code