黑电平校正(BLC-Black Level Correction)

黑电平产生的原因

  • Sensor的电路本身会存在暗电流。
    暗电流(dark current),也称无照电流,指在没有光照射的状态下,在太阳电池、光敏二极管、光导电元件、光电管等的受光元件中流动的电流,一般由于载流子的扩散或者器件内部缺陷造成。 暗电流主要产生在CMOS芯片通过光电二极管将光信号转化成模拟信号的过程中,光电二极管受到温度,电压稳定性等因素的干扰,导致全黑状态下输出的电平并不一定稳定为0,而信号的不稳定会导致部分图像的偏色。人为将全黑状态的数值固定钳制在黑电平这个值,很大程度上是为了保证信号的稳定性,以保证全图图像效果表现一致。

  • sensor到ISP会有一个AD转换的过程,感光芯片感应到光线信号,进而转换为模拟信号,再通过A/D转换成数字信号。而AD芯片都会有一个灵敏度,当电压低于这个阈值的时候无法进行AD转换,从而导致暗态细节损失。所以芯片人为地给输出信号加一个固定的偏移量,使整体信号值放大,有效保留了电压值很小的暗部细节,当然也会损失部分亮度细节。因为人眼对暗部细节更加敏感,而对高亮区没那么敏感,所以增加一个常量牺牲人眼不敏感的亮区来保留更大暗区细节的操作是大众比较认可的。
    黑电平校正(BLC-Black Level Correction)_第1张图片

BLC校正

  • Sensor端

黑电平校正(BLC-Black Level Correction)_第2张图片
如图这个是某一sensor像素阵列的分布,这个sensor最大出图分辨率为3280*2464,也就有效像素区。然后下面灰色部分还有个有效OPB区,这个区域就是sensor就行OB区域。这两个部分最大的区别在于,有效像素区是可以正常曝光的,而OB区在工艺上让它不能接受光子,最简单的想法就是在感光表明涂一层黑色的不感光物质,这样就能通过OB区无光照是的值来校正有效像素去的值。最简单的操作就是对OB去的像素值去平均,然后每个像素值减去这个值完成校正。但是这部分OB区只存在于sensor的某个局部,所以并不能很好地代表这个sensor本身的BL,所以一般对质量要求比较高的情况下,都不会直接使用这个OB。

  • ISP端

    扣除固定值法:扣除固定值法就是每个通道扣除一个固定值。具体做法如下:

1.采集黑帧RAW图,将其分为Gr,Gb,R,B四个通道;

2.对四个通道求平均值(有的算法也用中位值或者别的方式);

3.后续图像每个通道都减去2中计算出的各个通道的校正值;

4.对Gr和Gb通道进行归一化,就是A’b’平移到AB后最大值就是B点的纵坐标,
  但是我们需要把这个值恢复到255使得恢复后的像素值范围依旧是0-255;
  G_in x 255 / (255-BL)

从gain的角度来看,如下图,随着gain的升高,BL的直方图会越来越宽。当gain较高的时候,如何选择一个合适BL值要根据具体的需求来设置,比如如果想保留更多暗部的细节就需要取较小的OB值,但是减少了也容易出现色偏。
黑电平校正(BLC-Black Level Correction)_第3张图片
ISO联动法:

1.初始化一个ISO值(其实就是AG和DG的组合),然后重复固定值中的做法,采集黑帧,标定出各个通道的校正值;
2.在初始化ISO的基础通过等差或者等比数列的方式增长ISO,然后重复1步骤求取各个通道的校正值;
3.将这个二维数据做成一个LUT,后续图像通过ISO值查找相应的校正值进行校正。不在LUT中的ISO值的参数可以通过插值的方式求得。

曲线拟合法
理想情况下,我们想象全黑下的整副图像的信号值都是一样的,都是64,我们在做BLC时只要把这个值扣掉就可以了。然而实际应用中并没有那么简单,Black Level受到很多因素的影响,比如增益,温度,PCB Layout等等。而且这种影响比较随机,不是想象中整体图像信号值的增加或减少,而有可能是左上角增大了,右下角减小了,或者左侧整体增大了,而右侧整体减少了,也就造成了整体画面的Black Level分布不均匀。如下图这种比较夸张的情况。
黑电平校正(BLC-Black Level Correction)_第4张图片
所以更准确的方式就是每个点都求出一个校正值对该点进行校正。但是现在一般像素值都很高,不可能把每个点的值都存下来,这样内存需求太大,所以就同过采样的方式。就是在黑帧中选择一些像素点求出该点的校正值,然后把坐标和校正值存在一个LUT中,后续其他的像素点的校正值就可一个通过坐标和这个LUT进性插值求得校正值,从而实现每个点的精准校正。

BL校正失效时可能出现偏色的情况

  • 当Black Level值扣除过少时,整体图像画面灰蒙蒙的,整画面对比度没有那么高,画面偏粉紫。
  • 当Black Level值扣除过多时,整体画面暗沉沉,动态范围变低细节损失多,黑色部分偏色无法通过白平衡纠正,画面偏绿。

参考博文:

技术科普丨黑电平:你真的懂“黑”吗?
ISP——BLC(Black Level Correction)

你可能感兴趣的:(ISP-Pipeline,isp)