ISP基础(03):拜尔域去噪BayerNR
1、去噪概述
去噪(Noise Removal),首先要认识噪声类型和形成,然后结合噪声特点,选择对应的去噪算法进行噪声滤除, 首先,噪声类型如下表:
噪声常见名称 | 分布类型 | 形成原因 | 属性 | 去噪方法 |
散粒噪声 | 泊松(possion)分布 | 环境亮度波动 | 加性 | BNR |
椒盐噪声 | 随机散点 | cmos/ccd工艺 | 加性 | DPC+BNR |
高斯噪声(实际为多种综合) | 高斯分布 | - | 加性 | BNR |
暗噪声 |
高斯 |
场效应管内热电流(温度相关) |
加性 |
BNR |
热噪声 | 高斯 | 电子布朗运动 | 加性 | BNR |
量化噪声 | 转换精度 | ADC工作原理 | 加性 | - |
乘性噪声 |
随机 | AMP、线缆传输 | 乘性 | Rgb NR |
固定模式噪声 | 随机(固定) | 阵列输出 | 加性 | 标定FPN去除 |
表中为camera sensor常见的噪声类型和对应去噪方法,图像去噪一般分为:BayerNR和RgbNR,RAW图像没经过Demosaic,保留了图像的最原始的颜色模型和纹理细节,而且数据量相对RGB较小,此时去噪方法考虑对颜色模型和细节的保留,去噪强度一般留有余地,原因:(1)去噪过强,demosaic后细节损失严重(2)后续RGB域处对比度、锐度等增强,同时会增强噪声需要RgbNR。这两方面因素都导致BNR强度不会过强。
2、BNR去噪算法
大部分能用在rgb域的去噪算法都可以用在Bayer域,去噪算法原理没有太大变化,一般Bayer去噪在各个通道单独处理,考虑颜色和纹理,有些算法会结合多通道的规律做优化。
常见算法分类
- 空域算法
均值滤波、中值滤波、高斯滤波、双边滤波、NLM
如使用高斯滤波去除高斯噪声,特点是可以对Sensor噪声模型进行标定,对sensor不同工作条件配置不同噪声滤除参数;
- 变换域算法
频域:低通滤波、高通滤波、带通滤波
Wavelet:基于小波系数阈值、基于系数相关性等
DCT(离散余弦)变换等
- 时域算法
一般为常规算法结合多帧匹配,前景和背景判断、动静判决
- 结合算法
类似BM3D去噪算,空域和Wavelet的结合
3、在pipeline的位置
ISP pipeline根据目的和应用各有差异,一般建议:BNR放在raw数据处理较前端,BLC之前。因为BLC保证了噪声信息的完整获取,否则负db的噪声将会被截断去噪难度加大。例如,高斯白噪声,其均值为0,采用高斯滤波就可以进行去噪。而如果噪声被截断,其均值变为了大于0的值,噪声分布也比较难以描述。