ISP之图像去噪
噪声,是
Sensor成像过程中无法躲避的“破坏分子”,若不进行恰当处理,不仅会影响图像的质量,也会影响视觉感知等任务的精确度。因此,
ISP中的图像去噪模块便应运而生,对图像的最终质量产生了举足轻重的影响。
噪声的来源
噪声的来源
Sensor的输入是光子,输出的是数字信号,中间经过了光电转换、电子累积、电压量化的过程。而在这些过程中,有着各式各样的因素,这些因素在信号转换的过程中引入了噪声。举例来说,光电转换中,光子的量子特性会引入泊松噪声,电压读出时,会引入
CMOS电路的热噪声,电压量化中,也会引入
ADC的量化噪声。现有的
CMOS传感器无法避免地引入了这些噪声,因此需要去噪模块进行抑制。
图像去噪示意图
2DNR
2DNR即空域降噪,不涉及时域信息。传统的
2DNR包含空间域、变换域等一系列方法,可以在
ISP pipeline的
RAW域、
RGB域、
YUV域执行,方法与色域的选择取决于具体的噪声分布与图像质量需求。以下列举几个在
ISP芯片中较为常用的
2DNR方法:
NLM
NLM
Non-local mean首次提出利用图像的非局部自相似性进行去噪,其核心思想是利用图像中的相似块进行去噪,对每一个输入像素,在给定的
Search Window中执行相似度计算,得到像素权重,最终执行滤波。
NLM算法在性能与面积上达到了较好的平衡,因此许多厂商都会选择使用这一算法及其变种算法。
图2:NLM(RAW域),相似块(5 * 5)、滑窗(17 * 17)示意图
小波阈值
小波阈值算法隶属于变换域算法,小波变换是图像处理中经常采用的方法,选定合适的小波基与分解层数,可以定位到图像的不同频段,从而对不同频段的噪声进行针对性的处理。由于噪声主要分布在高频,小波阈值算法主要是对图像的高频分量执行阈值处理。
图3:小波阈值算法(2层)示意图
BM3D
BM3D结合了空间域与变换域算法的优点,分为初始估计与最终估计两个阶段,协同相似块匹配、
3D频域变换、阈值处理、维纳滤波等操作,最终聚合得到去噪图像。
BM3D算法在传统算法中有着很高的地位,其效果相比前面两种方法更好,但是由于它的算法复杂度高、硬件实现代价大,因此实际
ISP芯片中使用得反而没有那么多。
图4:BM3D算法示意图
3DNR
3DNR在
2DNR的基础上加入了时域信息,结合当前帧与历史帧的信息进行处理。由于信息量的增加,
3DNR算法能够取得比
2DNR算法更好的效果,在一些
2DNR难以发挥作用的场景,如暗光场景下,
3DNR的重要性更为显著。此处以一个较为简单的
3DNR算法为例,简要介绍其原理。
3DNR算法涉及运动估计,简单的,如示意图中的算法,采用帧差法来判断像素是否处于运动区域,复杂的,则可以利用光流等信息,来进一步优化
3DNR的效果。示意图中的算法还联合了噪声估计,将图像分区,低噪声、运动的区域,当前帧权重大,高噪声、静止的区域,历史帧权重大。考虑到
3DNR需要与
DDR进行交互,对高分辨率的场景而言,会占用很高的
DDR带宽,因此也会考虑对图像进行压缩后,再存入
DDR。当然,
3DNR虽好,但也可能存在运动噪声、鬼影、拖影等问题,需要结合性能与硬件开销进行
trade off,打磨出最符合需求的算法。
图5:一种3DNR算法示意图
结语
本文介绍了
ISP中的图像去噪模块,主要聚焦于图像去噪的传统算法,包含
2DNR、
3DNR模块。由于真实噪声的信号相关性以及
ISP本身引入的非线性,实际往往需要多色域的多个去噪模块进行联动配合,才能取得最好的效果。此外,
ai算法已经取得了远胜传统算法的去噪效果,
ISP芯片中也往往会优先考虑将
NR模块
ai化,关于图像去噪的
ai算法之后会继续介绍。