个人理解:BLC(BlackLevel Correction)简单来说就是对全黑状态下对各通道不为0值的矫正(全黑状态下各通道值应该为0)
那么,要了解Black Leve Correction,首先了解为什么会需要Black Leve Correction。
以下为黑电平产生原理和Sensor端矫正的原理:
Camera Sensor的工作原理为:接收光信号,再将光信号转换为模拟信号,再通过A/D转换成数字信号。
而A/D转换成数字信号的过程中,A/D转换器无法将过暗的信号给转换成数字信号,就会使得生成的图像的暗部的细节丢失。
再由于Black Level 的产生也和Sensor硬件电路有关,Sensor本身就会存在暗电流,暗电流再CMOS芯片通过光电二极管将光信号转换成模拟信号的时候,光电二极管受到温度、电压稳定性等因素的影响,导致全黑状态下的电平不一样为0,而信号的不稳定还会导致部分图像的偏色。
因此,Sensor生产时一般会在 AD转换之前的输入之前加上一个固定的偏移量,使输出的pixel value在5(非固定)~255之间,目的是为了让暗部的细节完全保留,当然同时也会损失一些亮部细节,由于对于图像来说,人们相比亮部区域更注重暗部区域的细节,人们也对暗部细节更加敏感,并且ISP后面会有很多增益模块(LSC、AWB、Gamma等),因此略微减少一些亮部细节对观感影响不大。
此次学习主要分析的是为ISP端的BLC,所以Sensor端的BLC就只做一个大概的了解。
以下是我在阅读和学习各大佬前辈的算法文章做出的总结。
这是最常用的ISP端BLC方法:固定值
固定值的ISP端的算法是通过一副黑帧RAW图,然后对RAW图进行操作。
其操作过程为:
- 对黑帧的RAW图进行采集,分为R,GR,GB,B四个通道值。
- 分别对四个通道值求平均值,得出