ISP pipeline之RAW域降噪
RAW域数据在转换到我们常见的JPEG图像的过程中,会经过很多次乘以gain值的放大操作,例如LSC gain,AWB gain,gamma等。因此,降噪是ISP pipeline中对成像画质影响非常大的一个步骤。今天我们来看一下RAW域降噪模块的基本原理。
RAW域降噪算法
RAW数据格式一般采用的是Bayer排列方式,即诸如RGGB这样的排列单元,因此,常见的去噪方式针对Bayer数据格式是不合适的,需要进行变换后才能进行处理。
一、RAW域去噪算法-----分通道进行
这里我们以中值滤波作为常见的滤波算法来加以解释,中值滤波的核心内容就是将滤波器里面所有像素值进行排序,然后用中间值替代当前像素点值。常用的中值滤波器kernel大小有3X3,5X5等。中值滤波算法的优点在于,实现简单,能够有效的消除椒盐噪声以及其他脉冲型噪声。缺点则是所有去噪算法所共有的,就是平滑模糊了图像的内容,会损失有些角点以及边缘的信息。
在用中值滤波算法对CFA DATA进行去噪时,需要将不同的颜色通道分开进行处理,这样是为了防止在平滑过程中将有用的颜色信息丢掉,比如说,由绿色信息包围的蓝色像素值与其相差很大时,此时就会被认为是噪声被处理掉,然而真实情况是,该区域的蓝色信息都是很大的。所以各通道单独处理的话是有利于保护颜色信息的。因此在处理过程中,是将RAW域数据分成4块R,GR,B,GB四个部分去噪完成后再重新恢复到Bayer数据格式。
但是,这种方法往往表现差,因为只考虑了灰度的大小,而重要的色彩相关性信息被忽视掉了。
二、RAW域去噪算法-----构造低分辨率图像
这种方法是利用RAW图像里面各颜色块的信息构造一幅低分辨率的RGB图像,这种方式虽然很好的利用了其颜色相关信息,但是不能够较好的保护空间域上的高频信息。
三、RAW域去噪算法-----BM3D(Block Matching 3-D filtering algorithm)算法
BM3D算法是通过限制图像块具有相同的颜色配置结构来达到处理RAW图像的目的。下面我们来简单介绍一下BM3D算法:
1.基础估计
1).逐块估计(Block-wise estimates)
分组(Grouping),找到所有与目前处理图像块相似的块,把它们堆在一起形成一个3维的数组(分组)。
联合硬阈值(Collaborative Hard-Thresholding).对已经组织好的分组进行3D变换,通过硬阈值3D变换系数达到减弱噪声的目的,然后通过3D反变换回去得到分组内图像块的去噪后估计,并返回到它们之前所在的位置。
2).聚集(Aggregation) 对所估计图像块重复遮盖的像素点进行加权平均,得到最终的像素值,也就是最后的基础估计结果。
2.最终估计
1).逐块估计(Block-wise estimates)
分组(Grouping),使用图像块匹配的方法,找到原噪声图像以及基础估计图像里面与目前处理图像块相似的所有块,形成两个3维数组(分组)。
联合维纳滤波(Collaborative wiener-filtering).对已经组织好的两个分组进行3D变换,将基础估计图像的能量频谱作为真实的能量频谱对噪声图像分组进行维纳滤波,然后通过3D反变换回去得到所有分组的图像块估计,并返回到它们之前所在的位置。
2).聚集(Aggregation)
对所有得到的估计图像块重复遮盖的像素点进行加权平均,得到最终的像素值,也就是最后的最终估计结果。
BM3D如何找到相似图像块组织3D分组:如下图所示,正方形所示为各个图像块,左上的分组所选取的图像块都具有角点(尖点)特征,其他分组类似。
BM3D如何在CFA中进行处理:如下图所示,左边的分组里面的图像块具有不同的彩色配置,即R,G,B的排列方式不是一致的,而右边具有相同的彩色配置,所以其对于处理CFA图像是非常合理的。
1,raw domain的噪声不是单纯的高斯噪声,而是与亮度、颜色都有关系的。
2,在raw domain进行一定程度的降噪,对于图像质量会有很大的提高,比如demosaic中的结构性噪声。
3,在raw domain设计降噪算法会稍微容易一些。在不同的亮度进行不同强度的降噪,或者把噪声归一化,有利于保护细节。
4,noise profile并不是单纯用在denoise这一个模块上,还以用在时域降噪,demosaic等模块上。
5,实际使用时并不一定要在raw domain降噪,很多ISP也都是以YUV domain降噪为主体的。