一种视频去噪方法和装置、计算机可读存储介质与流程

文档序号:23797723发布日期:2021-02-02 11:09阅读:119来源:国知局
一种视频去噪方法和装置、计算机可读存储介质与流程

[0001]
本发明实施例涉及但不限于视频处理技术领域,尤指一种视频去噪方法和装置、计算机可读存储介质。


背景技术:

[0002]
图像去噪一直是图像处理领域非常重要的一个方向,特别近年来,手机拍照的流行,摄影技术已经发生了翻天覆地的变化,从最开始的专业数码单镜反光相机,变成了更简单的智能手机上的傻瓜相机。由于光圈和传感器的大小的限制,智能手机会比单反产生更多的噪声,导致接收到的图像或视频与原始的图像或视频相比分辨力降低,不仅影响视觉效果,对于需要从中获取或识别运动目标的图像或视频,更是影响了获取或识别工作的准确性,因此需要更好的去噪算法来实现图像质量的提升。目前传统的自适应去噪算法,都是通过对噪声强度的估计,然后动态调节去噪相关的参数,从而达到既没有噪声残留又尽可能地保留图像细节的效果,但是,目前的自适应去噪算法存在对当前帧图像噪声强度估计准确率低的问题;
[0003]
现有的噪声估计算法主要有以下两类:
[0004]
第一类:针对当前图像帧进行噪声强度估计;
[0005]
具体步骤如下:1)将待估计图像或者视频帧图像划分成大小一致的子图像块;2)对得到的子图像块分别进行方差计算,得到各个子图像块的方差值;3)根据各个子图像块的方差值,选取一定比例的较小的方差进行噪声强度估计,进而得到当前图像帧的噪声强度,这种算法对于细节比较丰富的图像,误差比较大,容易将细节当做为噪声。
[0006]
第二类:针对当前帧与前一帧进行噪声强度估计;
[0007]
具体步骤如下:1)将待估计视频当前帧图像与前一帧图像,划分成大小一致的一一对应的子图像块;2)对得到的一一对应的子图像块分别进行差值计算,得到各个子图像块的方差值;3)根据各个子图像块的方差值,选取一定比例的较小的方差进行噪声强度估计,进而得到当前图像帧的噪声强度,这种算法在视频前后帧亮度有变化或者前后帧有大规模运动的时候,容易发生误判。
[0008]
当对图像帧噪声强度估计出现偏差时,不合理的去噪参数会导致图像一帧清晰,一帧模糊,或者一帧有噪声残留,一帧没有噪声残留的闪烁现象。
[0009]
而对视频去噪效果比较优秀的传统算法,比如视频块匹配和三维过滤(video block-matching and 3d filtering,vbm3d),视频块匹配和四维过滤(video block-matching and 4d filtering,vbm4d)等,时间复杂度比较高,硬件资源代价比较高。此外,很多现有的去噪算法没有考虑亮度对噪声的影响,对一帧内的所有的像素点采用统一的去噪强度,这样的处理其实并不符合高斯噪声的特性。


技术实现要素:

[0010]
为了解决上述技术问题,本发明实施例提供了一种视频去噪方法和装置、计算机
可读存储介质,能够提高噪声强度估计的准确率。
[0011]
为了达到本发明目的,本发明实施例提供了一种视频去噪方法,包括:
[0012]
对输入视频帧序列进行子图像块划分,并计算各个子图像块的块方差;
[0013]
根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,根据计算出的平均方差确定当前视频帧的噪声强度,选择与所述噪声强度相匹配的滤波强度及噪声特征曲线;
[0014]
根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波。
[0015]
在一种示例性实施例中,所述计算各个子图像块的块方差,包括:
[0016]
计算所述各个子图像块的空域方差;
[0017]
计算所述当前视频帧中各个子图像块与所述当前视频帧的前一帧对应位置的子图像块之间的时域方差;
[0018]
选择空域方差和时域方差中的较小值作为所述子图像块的块方差。
[0019]
在一种示例性实施例中,所述根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,包括:
[0020]
将所述各个子图像块的块方差从小到大排序;
[0021]
对排序后的前n个子图像块的块方差进行累加,将所述累加的块方差和与n值的比值作为所述当前视频帧中所有子图像块的平均方差,其中,n为大于1的自然数。
[0022]
在一种示例性实施例中,所述根据计算出的平均方差确定当前视频帧的噪声强度,包括:
[0023]
如果所述计算出的平均方差小于预设方差值,记录所述当前视频帧的噪声强度为0;
[0024]
如果所述计算出的平均方差大于或等于预设方差值,将计算出的平均方差作为所述当前视频帧的噪声强度。
[0025]
在一种示例性实施例中,所述在选择与所述噪声强度相匹配的滤波强度及噪声特征曲线之前,所述方法还包括:
[0026]
计算所述当前视频帧及其之前的m帧视频帧的噪声强度的平均值,其中,m为大于1的自然数;
[0027]
将计算出的噪声强度的平均值作为所述当前视频帧平滑后的噪声强度。
[0028]
在一种示例性实施例中,所述滤波强度包括空域滤波强度和时域滤波强度;
[0029]
所述根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波,包括:
[0030]
根据空域滤波强度及所述噪声特征曲线,对所述当前视频帧进行空域滤波;
[0031]
根据所述当前视频帧及所述当前视频帧的前一帧视频帧估算每个子图像块的运动强度及运动矢量;
[0032]
根据估算出的运动强度得到当前视频帧中各个像素点的权重,根据估算出的运动矢量得到前一帧视频帧参与时域滤波的像素点的位置,将当前视频帧中的像素点与所述运动矢量指向的前一帧视频帧中的像素点进行加权平均滤波,得到滤波后的像素。
[0033]
在一种示例性实施例中,所述空域滤波的算法为块匹配和三维过滤bm3d去噪声算法,且在bm3d去噪声算法的维纳滤波操作中对维纳系数根据像素点的亮度值及噪声特征曲线,进行相应比例的缩放操作。
[0034]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的视频去噪方法的步骤。
[0035]
本发明实施例还提供了一种视频去噪装置,包括处理器及存储器,所述处理器及存储器通过电耦合进行连接,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的视频去噪方法的步骤。
[0036]
本发明实施例还提供了一种视频去噪装置,包括噪声统计模块、噪声估计模块和视频去噪模块,其中:
[0037]
噪声统计模块,用于对输入视频帧序列进行子图像块划分,并计算各个子图像块的块方差,将计算出的子图像块的块方差输出至噪声估计模块;
[0038]
噪声估计模块,用于根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,根据计算出的平均方差确定当前视频帧的噪声强度,选择与所述噪声强度相匹配的滤波强度及噪声特征曲线;
[0039]
视频去噪模块,用于根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波。
[0040]
与现有技术相比,本发明实施例提供的视频去噪方法和装置、计算机可读存储介质,包括对输入视频帧序列进行子图像块划分,并计算各个子图像块的块方差;根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,根据计算出的平均方差确定当前视频帧的噪声强度,选择与所述噪声强度相匹配的滤波强度及噪声特征曲线;根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波,有效地提高了噪声强度估计的准确率,根据预测出的噪声强度选择相匹配的滤波强度及噪声特征曲线,能有效地去除噪声,又能防止因为去噪强度过大导致图像细节丢失的问题,从而达到整体去噪效果最优的性能。
[0041]
本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
[0042]
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0043]
图1为本发明实施例的一种视频去噪方法的示例性流程示意图;
[0044]
图2为本发明实施例的一种先入先出队列对噪声强度进行平滑的原理示意图;
[0045]
图3为本发明实施例的一种视频去噪过程的示例性流程示意图;
[0046]
图4为本发明实施例的一种空域去噪过程的示例性流程示意图;
[0047]
图5为本发明实施例的一种基于运动补偿的运动矢量的计算原理示意图;
[0048]
图6为本发明实施例的一种运动强度与混合系数的映射关系示意图;
[0049]
图7为本发明实施例的一种视频去噪装置的示例性结构示意图。
具体实施方式
[0050]
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中
的特征可以相互任意组合。
[0051]
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0052]
如图1所示,本发明实施例提供了一种视频去噪方法,包括如下步骤:
[0053]
步骤101:对输入视频帧序列进行子图像块划分,并计算各个子图像块的块方差;
[0054]
在一种示例性实施例中,所述计算各个子图像块的块方差,包括:
[0055]
计算所述各个子图像块的空域方差;
[0056]
计算所述当前视频帧中各个子图像块与所述当前视频帧的前一帧对应位置的子图像块之间的时域方差;
[0057]
选择空域方差和时域方差中的较小值作为所述子图像块的块方差。
[0058]
在该实施例中,输入带有噪声的视频帧f_in(n)与其前一帧f_in(n-1),根据第一预设值将f_in(n)与f_in(n-1)划分为大小相同的子图像块,针对f_in(n)中的每个子图像块计算得到他们的空域方差δs,f_in(n)中的每个子图像块的像素值减去f_in(n-1)中对应位置的子图像块的像素值,得到f_in(n)中每个子图像块的时域方差δt,f_in(n)中每个子图像块最后的方差为它空域方差δs与时域方差δt中的较小值。
[0059]
步骤102:根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,根据计算出的平均方差确定当前视频帧的噪声强度,选择与所述噪声强度相匹配的滤波强度及噪声特征曲线;
[0060]
在一种示例性实施例中,所述根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,包括:
[0061]
将各个子图像块的块方差从小到大排序;
[0062]
对排序后的前n个子图像块的块方差进行累加,将所述累加的块方差和与n值的比值作为当前视频帧中所有子图像块的平均方差,其中,n为大于1的自然数。
[0063]
在该实施例中,所述前n个子图像块可以为当前视频帧中所有子图像块中的前n%个子图像块。例如,可以设置为排序后的子图像块中的前10%个子图像块。
[0064]
在一种示例性实施例中,所述根据计算出的平均方差确定当前视频帧的噪声强度,包括:
[0065]
如果计算出的平均方差小于预设方差值,记录所述当前视频帧的噪声强度为0;
[0066]
如果计算出的平均方差大于或等于预设方差值,将计算出的平均方差作为当前视频帧的噪声强度。
[0067]
在一种示例性实施例中,所述在选择与所述噪声强度相匹配的滤波强度及噪声特征曲线之前,所述方法还包括:
[0068]
计算当前视频帧及其之前的m帧视频帧的噪声强度的平均值,其中,m为大于1的自然数;
[0069]
将计算出的噪声强度的平均值作为当前视频帧平滑后的噪声强度。
[0070]
在一种示例性实施例中,所述滤波强度包括空域滤波强度和时域滤波强度。
[0071]
在该实施例中,得到f_in(n)中每个子图像块的方差值之后,把各个子图像块按照方差值从小到大排序,把前面第二预设值个子图像块的方差进行累加,根据累加的方差和
以及第二预设值的大小计算所有子图像块的平均方差,如果所有子图像块的平均方差小于第三预设值,则把0写入fifo中,否则把子图像块的平均方差写入先入先出队列(first input first output,fifo)中,如图2所示,fifo的深度可以为16,即存储最近16帧的噪声强度数据。把fifo中所有的数据求和平均后(average value),得到当前视频帧的平滑后的噪声强度(noise level),然后根据噪声强度的大小,选择与噪声强度相匹配的空域滤波强度(spatial denoise strength),时域滤波强度(temporal denoise strength),以及对应噪声特征曲线(noise curve)。
[0072]
步骤103:根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波。
[0073]
在一种示例性实施例中,所述步骤103具体包括:
[0074]
根据空域滤波强度及噪声特征曲线,对当前视频帧进行空域滤波;
[0075]
根据所述当前视频帧及所述当前视频帧的前一帧视频帧估算每个子图像块的运动强度及运动矢量;
[0076]
根据估算出的运动强度得到当前视频帧中各个像素点的权重,根据估算出的运动矢量得到前一帧视频帧参与时域滤波的像素点的位置,将当前视频帧中的像素点与所述运动矢量指向的前一帧视频帧中的像素点进行加权平均滤波,得到滤波后的像素。
[0077]
在一种示例性实施例中,所述空域滤波的算法为bm3d去噪声算法,且在bm3d去噪声算法的维纳滤波操作中对维纳系数根据像素点的亮度值及噪声特征曲线,进行相应比例的缩放操作。
[0078]
在该实施例中,如图3所示,所述步骤103具体包含五个相关操作:空域去噪(spatial denoise)、运动估计(motion estimate)、运动检测(moition detector)、混合系数映射(motion2α)及混合(blending),输入包括当前待滤波的视频帧f_in(n)、滤波后的前一帧视频帧f_out(n-1)以及步骤102输出的空域滤波强度系数、时域滤波强度系数、噪声特征曲线以及噪声强度。
[0079]
空域去噪操作:如图4所示,本申请的空域去噪操作可以采用bm3d的去噪声算法,但是本申请对该算法进行了改进,使得其算法更符合视频采集端引入的噪声的特性,本申请在维纳滤波(wiener filter)的操作中对维纳系数根据像素点的亮度值及其噪声特征曲线,进行一定比例的缩放操作。需要说明的是,本申请的空域去噪操作不一定非得是bm3d算法,引导滤波、双边滤波等滤波算法也都可以,只是处理出来效果比bm3d算法稍微差一些。
[0080]
运动估计操作:把当前待滤波的视频帧f_in(n),按照预设值进行分块操作,把当前视频帧的图像划分成一块块子图像块,子图像块可以重叠,然后针对每一个子图像块,对滤波后的前一帧视频帧f_out(n-1)中对应位置为中心的一定搜索范围内的所有子图像块进行最小均方误差(minimum squared error,mse)操作,将求得的最小的mse值对应的子图像块,设置成当前视频帧中当前子图像块对应的最佳匹配块,运动矢量设置为最佳匹配块在上一帧图像中的坐标减去当前子图像块的坐标值,如图5所示;
[0081]
运动检测操作:根据前述运动估计操作中,当前待滤波的视频帧中的每一个子图像块在前一帧图像中有一个与之相匹配的最佳匹配块,将每一个子图像块与它对应的最佳匹配块做绝对差的总和(sum of absolute difference,sad)操作,
[0082][0083]
各个子图像块的sad值当做它的运动强度值;
[0084]
混合系数映射操作:根据上述运动检测操作求出的运动强度值,根据图6所示进行映射,就可以得到混合系数α,图6中横坐标为运动强度值,纵坐标为混合系数值,其中,base_motion、blend_slope、top_motion为三个预设值,通过这三个预设值就可以把对应的映射关系给确定下来,这三个预设值要保证线段的斜率为负值,即运动越强,混合系数越小,不然会导致运动模糊,甚至拖影的产生;
[0085]
混合操作:根据混合系数映射操作中得到的混合系数α、运动估计操作中得到的运动矢量以及空域去噪操作中得到的空域滤波之后的图像,最后的输出图像就可以通过加权平均的方式来获得,具体的计算公式如下:
[0086]
f_in(n,i,j)=f_in_spa(n,i,j)*(1-α)+f_out(n-1,i+mvi,j+mvj)α
[0087]
其中i,j为待滤波像素点的二维坐标,mv为待滤波像素点的运动矢量,n为视频序列中第n帧。
[0088]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如下操作:
[0089]
对输入视频帧序列进行子图像块划分,并计算各个子图像块的块方差;
[0090]
根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,根据计算出的平均方差确定当前视频帧的噪声强度,选择与所述噪声强度相匹配的滤波强度及噪声特征曲线;
[0091]
根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波。
[0092]
在一种示例性实施例中,所述计算各个子图像块的块方差,包括:
[0093]
计算所述各个子图像块的空域方差;
[0094]
计算所述当前视频帧中各个子图像块与所述当前视频帧的前一帧对应位置的子图像块之间的时域方差;
[0095]
选择空域方差和时域方差中的较小值作为所述子图像块的块方差。
[0096]
在一种示例性实施例中,所述根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,包括:
[0097]
将所述各个子图像块的块方差从小到大排序;
[0098]
对排序后的前n个子图像块的块方差进行累加,将所述累加的块方差和与n值的比值作为所述当前视频帧中所有子图像块的平均方差,其中,n为大于1的自然数。
[0099]
在一种示例性实施例中,所述根据计算出的平均方差确定当前视频帧的噪声强度,包括:
[0100]
如果所述计算出的平均方差小于预设方差值,记录所述当前视频帧的噪声强度为0;
[0101]
如果所述计算出的平均方差大于或等于预设方差值,将计算出的平均方差作为所述当前视频帧的噪声强度。
[0102]
在一种示例性实施例中,所述在选择与所述噪声强度相匹配的滤波强度及噪声特征曲线之前,所述操作还包括:
[0103]
计算所述当前视频帧及其之前的m帧视频帧的噪声强度的平均值,其中,m为大于1的自然数;
[0104]
将计算出的噪声强度的平均值作为所述当前视频帧平滑后的噪声强度。
[0105]
在一种示例性实施例中,所述滤波强度包括空域滤波强度和时域滤波强度;
[0106]
所述根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波,包括:
[0107]
根据空域滤波强度及所述噪声特征曲线,对所述当前视频帧进行空域滤波;
[0108]
根据所述当前视频帧及所述当前视频帧的前一帧视频帧估算每个子图像块的运动强度及运动矢量;
[0109]
根据估算出的运动强度得到当前视频帧中各个像素点的权重,根据估算出的运动矢量得到前一帧视频帧参与时域滤波的像素点的位置,将当前视频帧中的像素点与所述运动矢量指向的前一帧视频帧中的像素点进行加权平均滤波,得到滤波后的像素。
[0110]
在一种示例性实施例中,所述空域滤波的算法为块匹配和三维过滤bm3d去噪声算法,且在bm3d去噪声算法的维纳滤波操作中对维纳系数根据像素点的亮度值及噪声特征曲线,进行相应比例的缩放操作。
[0111]
本发明实施例还提供了一种视频去噪装置,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如下操作:
[0112]
对输入视频帧序列进行子图像块划分,并计算各个子图像块的块方差;
[0113]
根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,根据计算出的平均方差确定当前视频帧的噪声强度,选择与所述噪声强度相匹配的滤波强度及噪声特征曲线;
[0114]
根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波。
[0115]
在一种示例性实施例中,所述计算各个子图像块的块方差,包括:
[0116]
计算所述各个子图像块的空域方差;
[0117]
计算所述当前视频帧中各个子图像块与所述当前视频帧的前一帧对应位置的子图像块之间的时域方差;
[0118]
选择空域方差和时域方差中的较小值作为所述子图像块的块方差。
[0119]
在一种示例性实施例中,所述根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,包括:
[0120]
将所述各个子图像块的块方差从小到大排序;
[0121]
对排序后的前n个子图像块的块方差进行累加,将所述累加的块方差和与n值的比值作为所述当前视频帧中所有子图像块的平均方差,其中,n为大于1的自然数。
[0122]
在一种示例性实施例中,所述根据计算出的平均方差确定当前视频帧的噪声强度,包括:
[0123]
如果所述计算出的平均方差小于预设方差值,记录所述当前视频帧的噪声强度为0;
[0124]
如果所述计算出的平均方差大于或等于预设方差值,将计算出的平均方差作为所述当前视频帧的噪声强度。
[0125]
在一种示例性实施例中,所述在选择与所述噪声强度相匹配的滤波强度及噪声特征曲线之前,所述操作还包括:
[0126]
计算所述当前视频帧及其之前的m帧视频帧的噪声强度的平均值,其中,m为大于1的自然数;
[0127]
将计算出的噪声强度的平均值作为所述当前视频帧平滑后的噪声强度。
[0128]
在一种示例性实施例中,所述滤波强度包括空域滤波强度和时域滤波强度;
[0129]
所述根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波,包括:
[0130]
根据空域滤波强度及所述噪声特征曲线,对所述当前视频帧进行空域滤波;
[0131]
根据所述当前视频帧及所述当前视频帧的前一帧视频帧估算每个子图像块的运动强度及运动矢量;
[0132]
根据估算出的运动强度得到当前视频帧中各个像素点的权重,根据估算出的运动矢量得到前一帧视频帧参与时域滤波的像素点的位置,将当前视频帧中的像素点与所述运动矢量指向的前一帧视频帧中的像素点进行加权平均滤波,得到滤波后的像素。
[0133]
在一种示例性实施例中,所述空域滤波的算法为块匹配和三维过滤bm3d去噪声算法,且在bm3d去噪声算法的维纳滤波操作中对维纳系数根据像素点的亮度值及噪声特征曲线,进行相应比例的缩放操作。
[0134]
如图7所示,本发明实施例还提供了一种视频去噪装置,包括噪声统计模块701、噪声估计模块702和视频去噪模块703,其中:
[0135]
噪声统计模块701,用于对输入视频帧序列进行子图像块划分,并计算各个子图像块的块方差,将计算出的子图像块的块方差输出至噪声估计模块702;
[0136]
噪声估计模块702,用于根据计算出的块方差计算当前视频帧中所有子图像块的平均方差,根据计算出的平均方差确定当前视频帧的噪声强度,选择与所述噪声强度相匹配的滤波强度及噪声特征曲线;
[0137]
视频去噪模块703,用于根据所述滤波强度及噪声特征曲线,对当前视频帧进行滤波。
[0138]
在一种示例性实施例中,所述计算各个子图像块的块方差,包括:
[0139]
计算所述各个子图像块的空域方差;
[0140]
计算所述当前视频帧中各个子图像块与所述当前视频帧的前一帧对应位置的子图像块之间的时域方差;
[0141]
选择空域方差和时域方差中的较小值作为所述子图像块的块方差。
[0142]
在一种示例性实施例中,所述将计算出的子图像块的块方差输出至噪声估计模块702,包括:
[0143]
将各个子图像块的块方差从小到大排序;
[0144]
对排序后的子图像块中前n个子图像块的块方差进行累加,把累加的块方差和与n值输出至噪声估计模块702,其中,n为大于1的自然数。
[0145]
在该实施例中,带有噪声的当前视频帧f_in(n)与其前一帧视频帧f_in(n-1)输入至噪声统计模块701,噪声统计模块701根据第一预设值将f_in(n)与f_in(n-1)划分为大小相同的子图像块,针对f_in(n)中的每个子块计算得到他们的空域的方差δs,f_in(n)中的每个子图像块的像素值减去f_in(n-1)中对应位置的子图像块像素值,得到f_in(n)中每个
块的时域方差δt,f_in(n)中每个子图像块最后的方差为它空域的方差δs与时域的方差δt中最小值,得到f_in(n)中每个子图像块的方差值之后,把各个子图像块按照方差值从小到大排序,根据第二预设值,把前面(第二预设值)个子图像块的方差进行累加,然后把累加的方差和,以及第二预设值的大小输出。
[0146]
在一种示例性实施例中,所述根据计算出的平均方差确定当前视频帧的噪声强度,包括:
[0147]
如果计算出的平均方差小于预设方差值,记录所述当前视频帧的噪声强度为0;
[0148]
如果计算出的平均方差大于或等于预设方差值,将计算出的平均方差作为当前视频帧的噪声强度。
[0149]
在一种示例性实施例中,所述在选择与所述噪声强度相匹配的滤波强度及噪声特征曲线之前,所述噪声估计模块702还用于:
[0150]
计算当前视频帧及其之前的m帧视频帧的噪声强度的平均值,其中,m为大于1的自然数;
[0151]
将计算出的噪声强度的平均值作为当前视频帧平滑后的噪声强度。
[0152]
在一种示例性实施例中,所述滤波强度包括空域滤波强度和时域滤波强度。
[0153]
如图2所示,噪声估计模块702接收到噪声统计模块701输出的方差和与子图像块数,计算每个子图像块的平均方差,如果子图像块的平均方差小于第三预设值,则把0写入fifo中,否则把子图像块的平均方差写入fifo中,fifo的深度可以为16,即存储最近16帧的噪声强度数据;
[0154]
把fifo中所有数据的求和平均后,得到当前视频帧的平滑后的噪声强度,然后根据噪声强度的大小,选择与噪声强度相匹配的空域滤波强度、时域滤波强度以及对应的噪声特征曲线。
[0155]
在一种示例性实施例中,所述视频去噪模块703具体用于:
[0156]
根据空域滤波强度及噪声特征曲线,对当前视频帧进行空域滤波;
[0157]
根据当前视频帧及其前一帧视频帧估算每个子图像块的运动强度及运动矢量;
[0158]
根据估算出的运动强度得到当前视频帧中各个像素点的权重,根据估算出的运动矢量得到前一帧视频帧参与时域滤波的像素点的位置,将当前视频帧中的像素点与所述运动矢量指向的前一帧视频帧中的像素点进行加权平均滤波,得到滤波后的像素。
[0159]
在一种示例性实施例中,所述空域滤波的算法可以为bm3d去噪声算法,且在bm3d去噪声算法的维纳滤波操作中对维纳系数根据像素点的亮度值及噪声特征曲线,进行相应比例的缩放操作。
[0160]
在该实施例中,如图3所示,视频去噪模块703的输入为:当前待滤波的视频帧f_in(n),滤波后的前一帧视频帧f_out(n-1),以及噪声估计模块702输出的空域滤波强度系数、时域滤波强度系数、噪声特征曲线以及噪声强度。视频去噪模块703中包含五个子模块:空域去噪子模块,运动估计子模块,运动检测子模块,混合系数映射子模块及混合子模块。其中,空域去噪子模块根据噪声估计模块702传过来的空域滤波强度以及噪声特征曲线,对f_in(n)进行空域滤波得到空域滤波后的图像f_in_spa(n);运动估计子模块根据输入的两帧图像,计算出f_in(n)中每个子图像块的运动矢量值;运动检测子模块基于块的方式对当前视频帧f_in(n)中所有的子图像块进行运动检测,得到每个子图像块的运动强度;空域滤波
之后的图像f_in_spa(n),运动估计子模块输出的运动矢量,运动检测子模块输出的运动强度信息,输出给时域滤波器(包括混合系数映射子模块及混合子模块)进行时域滤波,时域滤波器先根据运动强度信息得到参与时域滤波的各个像素点的权重,根据运动矢量信息得到前一帧参与时域滤波的像素点的位置,然后当前帧的像素与前一帧中运动矢量指向的像素进行加权平均滤波得到最后滤波的像素。各个模块具体的工作原理如下:
[0161]
空域去噪子模块:如图4所示,本申请的空域去噪子模块采用的是bm3d的去噪声算法,并对其算法进行了改进,使得其算法更符合视频采集端引入的噪声的特性,本申请在维纳滤波(wiener filter)的操作中对维纳系数根据像素点的亮度值及其噪声特征曲线,进行一定比例的缩放操作,需要说明的是,本申请的空域去噪子模块不一定非得使用bm3d算法,引导滤波、双边滤波等滤波算法都可以,只是处理出来效果稍微差一些;
[0162]
运动估计子模块:把当前待滤波的视频帧f_in(n),按照预设值进行分块操作,把f_in(n)的图像划分成一块块子图像块,子图像块可以重叠,然后针对每一个子图像块,对滤波后的前一帧视频帧f_out(n-1)中对应位置为中心的一定搜索范围内的所有子图像块进行mse操作,将求得的最小的mse值对应的子图像块,设置成当前视频帧中当前子图像块对应的最佳匹配块,运动矢量设置为最佳匹配块在上一帧图像中的坐标减去当前子图像块的坐标值,如图5所示;
[0163]
运动检测子模块:根据运动估计子模块计算出的当前待滤波的视频帧中的每一个子图像块在前一帧视频帧中有一个与之相匹配的最佳匹配块,将每一个子图像块与它对应的最佳匹配块做sad操作,
[0164][0165]
各个子图像块的sad值当做它的运动强度值;
[0166]
混合系数映射子模块:如图6所示,根据运动检测子模块计算出的运动强度值进行映射,就可以得到混合系数α,图6中横坐标为运动强度值,纵坐标为混合系数值,其中,base_motion,blend_slope,top_motion为三个预设值,通过这三个预设值就可以把对应的映射关系给确定下来,这三个预设值要保证线段的斜率为负值,即运动越强,混合系数越小,不然会导致运动模糊,甚至拖影的产生;
[0167]
混合子模块:根据混合系数映射子模块得到的混合系数α,运动估计子模块得到的运动矢量,以及空域去噪子模块得到的空域滤波之后的图像,最后的输出图像就可以通过加权平均的方式来获得,具体的计算公式如下:
[0168]
f_in(n,i,j)=f_in_spa(n,i,j)*(1-α)+f_out(n-1,i+mvi,j+mvj)α
[0169]
其中i,j为待滤波像素点的二维坐标,mv为待滤波像素点的运动矢量,n为视频序列中第n帧。
[0170]
本发明实施例提供的视频去噪方法和装置、计算机可读存储介质,通过将图像的噪声估计方法与视频图像去噪方法相结合联合去噪,解决了现有技术中对图像的噪声估计不准确,以及去噪性能与图像质量不能兼得的问题。本发明实施例提出的视频去噪方案包括三个模块:噪声统计模块701,噪声估计模块702以及视频去噪模块703。噪声统计模块701根据输入视频帧序列进行分块划分,统计出当前视频帧噪声强度相关的信息;噪声估计模
块702根据噪声统计模块701统计出来的噪声强度信息(主要是块方差信息),经过一定的预处理之后,选择实时调节的去噪相关的参数(包括空域去噪强度、时域去噪强度、噪声特性曲线以及噪声强度)并下发到视频去噪模块703;视频去噪模块703根据噪声估计模块702实时下发的去噪相关的参数,进行视频去噪。
[0171]
采用本申请所述的视频去噪方案,具有如下优点:
[0172]
(1)根据噪声统计特性来进行噪声强度估计,噪声强度估计有两种方式,一种是基于视频前后两帧的估计,另一种是针对当前视频帧的噪声估计,两种算法相互验证,准确率更高;
[0173]
(2)本申请计算出的噪声强度信息,做了一个(m+1)帧的平均,得到的噪声强度更平滑,不会出现噪声强度跳跃很大,导致的图像一帧清晰,一帧模糊,或者一帧有噪声残留,一帧没有噪声残留的闪烁现象;
[0174]
(3)本申请采用的是空域bm3d去噪算法、时域运动补偿以及运动强度检测相结合的算法,算法效果更好,复杂度又不算太高,在效果与复杂度之间取了一个比较好的平衡点;
[0175]
(4)根据噪声方差跟亮度成正比的原理,本申请巧妙地引入噪声特征曲线,根据噪声亮度动态调节去噪强度,从而达到了更好的去噪效果。
[0176]
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1