OpenISP 模块拆解 · 第2讲:黑电平补偿 (BLC)

OpenISP 模块拆解 · 第2讲:黑电平补偿 (BLC)

模块作用

BLC 是黑电平补偿模块,位于 DPC 后面。它修正传感器在无光照时仍然存在的基础读数偏置,让真正的黑接近数字零点或目标黑位。

黑电平如果不准,暗部会发灰或偏色,AWB、CCM、Gamma 都会在错误基线上继续放大问题。

openISP 实现

源码类名为 BLC(img, parameter, bayer_pattern, clip)parameter 包含:

text 复制代码
[bl_r, bl_gr, bl_gb, bl_b, alpha, beta]

代码支持 rggb/bggr/gbrg/grbg 四种 Bayer pattern。以 rggb 为例:

text 复制代码
R  Gr
Gb B

切片如下:

python 复制代码
r  = img[::2, ::2]
gr = img[::2, 1::2]
gb = img[1::2, ::2]
b  = img[1::2, 1::2]

核心公式

openISP 用加法表达通道偏置:

text 复制代码
R  = R  + bl_r
B  = B  + bl_b
Gr = Gr + bl_gr + alpha * R / 256
Gb = Gb + bl_gb + beta  * B / 256

真实 ISP 中常见形式是减去黑电平,openISP 的默认配置为 0,更像给各通道加可配置 offset。alpha/beta 是额外的固定点交叉补偿项。

参数说明

参数 含义
bl_r R 通道黑电平或偏置补偿
bl_gr Gr 通道黑电平或偏置补偿
bl_gb Gb 通道黑电平或偏置补偿
bl_b B 通道黑电平或偏置补偿
alpha R 对 Gr 的补偿系数
beta B 对 Gb 的补偿系数
clip RAW 输出上限

学习重点

  • Gr 和 Gb 应该分开处理,因为它们在传感器上的位置不同,响应可能不一致。
  • BLC 错误会直接影响白平衡估计和颜色矩阵结果。
  • BLC 一般依赖 optical black 区域、传感器标定或温度补偿。

面试问答

Q1: 为什么 BLC 要在 AWB 前?

AWB 依赖通道强度比例。如果黑电平偏置还没去掉,尤其在暗部,R/G/B 比例会被错误基线扭曲,AWB gain 会估错或放大色偏。

Q2: 黑电平过高或过低有什么现象?

黑电平补偿不足时暗部发灰、对比低。补偿过度时暗部被压死,阴影细节丢失,还可能出现暗部偏色。

Q3: 为什么 Gr/Gb 要分开?

Bayer 中有两个绿色位置,它们处在不同像素行列,受工艺、微透镜、读出路径影响可能不同。分开处理可以修正 green imbalance,减少棋盘感或绿色纹理。

Q4: BLC 和 offset correction 是一回事吗?

广义上接近。BLC 主要修正黑位基线,offset correction 可以泛指任意通道偏移修正。ISP 语境里 BLC 更特指 RAW 黑电平。

Q5: BLC 标定通常怎么做?

常用暗场图或 optical black 像素,统计各通道在无光条件下的平均值或中位数,再生成随 gain、曝光、温度变化的黑电平表。

相关推荐
北山有鸟5 天前
解决香橙派没有适配ov13855的3A算法
linux·c++·相机·isp
岁月蹉跎的一杯酒6 天前
【RKAIQ ISP21】RK3568 平台 SHARP_V3 锐化增强模块详解(GC2053 实战)
isp
岁月蹉跎的一杯酒6 天前
【RKAIQ ISP21】RK3568 平台 BAYERNR_V2 Bayer 域降噪模块详解(GC2053 实战)
isp
岁月蹉跎的一杯酒6 天前
【RKAIQ ISP21】RK3568 平台 LUT3D_CALIB 三维颜色查找表模块详解(GC2053 实战)
isp
岁月蹉跎的一杯酒6 天前
【RKAIQ ISP21】RK3568 平台 CCM_CALIB 颜色校正矩阵模块参数详解(GC2053 实战)
isp
岁月蹉跎的一杯酒7 天前
【RKAIQ ISP21】RK3568 平台 DPCC 坏点校正模块参数详解(GC2053 实战)
isp
ballball~~2 个月前
ISP-Tone Mapping
图像处理·算法·isp
ballball~~2 个月前
ISP-Gamma
图像处理·算法·isp
庄周迷蝴蝶2 个月前
什么是Hue?
isp