ISP尝试解决高Gain下暗部发紫问题

暗部发紫解决方案

在黑暗环境(iso 9000 ~ iso 25600下拍摄的图像出现紫色现象,sensor: imx586, 平台: SM8150, 仿真器版本: Qualcomm Spectra 380

左侧为原始图像, 右边为提亮后的图像, 可以看到明显紫色现象.

当增益大幅拉高时(gain 90 ~ gain 256), 灰度接近0的像素的噪点也会随之提升. BLC和ABF模块无法正确处理这些像素, 并且在经过AWB, Gamma, Color等所有增强阶段后, 会产生偏差.

下面的模拟显示了暗区去噪之前BPS与暗区去噪之后BPS的效果。

Pipeline 1: BLS → AWB → Denoise → Purple Bias Created

1 - linearization后的图像, R, G, B 噪声相同(噪声标准差具有类似的高斯形状) 2 - BLS后的图像: 小于BL值的像素设置为0
3 - AWB后的图像,红色和蓝色通道高斯比绿色通道的高斯大 4 - Denoise后的图像,产生了紫色偏差

Pipeline 2: Denoise → BLS → AWB → Purple Bias Not Created

1 - linearization后的图像, R, G, B 噪声相同(噪声标准差具有类似的高斯形状) 2 - Denoise后的图像,高斯STD明显减小
3 - BLS后的图像: 没有小于BL值的像素设置为 0 4 - AWB后的图像, 未产生紫色偏差

改进pedestal去除之前的暗区去噪, 唯一可用的模块是ABF, 因此除了修改其他ABF参数外, 启用ABF中的暗部去饱和功能并增加ABF的noise_std_lut的第一个值.

紫色问题经过验证可以部分改善, 但是如果想要完全去除紫色像素时, 细节被严重破坏, 图像显得比以前更绿, 因此只能在细节和紫色噪声之间找到平衡.

目前高通平台上Raw Domain去噪模块(ABF)还不能很好地处理此类问题. ABF可以通过更强的去噪来缓解紫色问题, 但同时细节也会丢失. 因此需要有更好的Raw Domain去噪算法, 一方面可以控制噪声, 另一方面可以尽可能保留细节.

还有第二套方案可供选择.

BLS模块: 目标手机拍摄几张黑图, 导入demux模块进行BLS calibrition, 得到一组BLS参数, 然后分别对RGGB四个通道分别增加一点BLS的值.

AWB模块: fine tune 3A中AWB的值

此方案的原因分析: 在极暗光环境下, BLS的calibrition的值本就容易估算错误, 而后经过AWB放大之后, 紫色会更加明显.