一种基于时域滤波的视频降噪的方法及装置

文档序号:212784 发布日期:2021-11-05 浏览:7次 >En<

阅读说明:本技术 一种基于时域滤波的视频降噪的方法及装置 (Video denoising method and device based on time domain filtering ) 是由 许桂森 于 2021-07-30 设计创作,主要内容包括:本申请公开了一种基于时域滤波的视频降噪的方法及装置,该方法包括:在对当前视频帧进行编码之前,采用运动估计算法,在参考帧中搜索与所述视频帧中的当前编码块对应的匹配块,并获得所述当前编码块与所述匹配块在亮度通道上的第一匹配误差;获取所述当前编码块与所述匹配块在色度通道上的第二匹配误差;若所述第一匹配误差大于第一预设值,则在对所述当前编码块进行亮度通道的滤波时,过滤掉该匹配块;若所述第二匹配误差大于第二预设值,则在对所述当前编码块进行色度通道的滤波时,过滤掉该匹配块。从而降低滤波的计算复杂度,提高处理速度。(The application discloses a video denoising method and device based on time domain filtering, wherein the method comprises the following steps: before encoding a current video frame, searching a matching block corresponding to a current coding block in the video frame in a reference frame by adopting a motion estimation algorithm, and obtaining a first matching error of the current coding block and the matching block on a brightness channel; acquiring a second matching error of the current coding block and the matching block on a chrominance channel; if the first matching error is larger than a first preset value, filtering the matching block when filtering a brightness channel of the current coding block; and if the second matching error is larger than a second preset value, filtering the matching block when filtering the chroma channel of the current coding block. Therefore, the calculation complexity of filtering is reduced, and the processing speed is increased.)

一种基于时域滤波的视频降噪的方法及装置

技术领域

本申请实施例涉及视频处理技术领域,尤其涉及一种基于时域滤波的视频降噪的方法及装置。

背景技术

噪声对视频图像的主观效果和视频编码的客观效率都会造成较大的影响,视频降噪一直是图像视频处理和计算机视觉研究的热点之一。图像视频去噪的直接目的是改善噪声污染的视频图像,解决实际图像由于噪声干扰而导致图像质量下降的问题。去噪可以有效地提高视频图像质量,增大信噪比,更好的体现原始视频所携带的信息。有效的去噪方法还会提高后续视频图像处理的质量,如目标分割、边缘提取、目标跟踪和识别等,也有利于提升视频的编码效率。

发明内容

本申请提供一种基于时域滤波的视频降噪的方法及装置,以提升视频的主观质量和编码效率。

第一方面,本申请实施例提供了一种基于时域滤波的视频降噪的方法,所述方法包括:

在对当前视频帧进行编码之前,采用运动估计算法,在参考帧中搜索与所述视频帧中的当前编码块对应的匹配块,并获得所述当前编码块与所述匹配块在亮度通道上的第一匹配误差;

获取所述当前编码块与所述匹配块在色度通道上的第二匹配误差;

若所述第一匹配误差大于第一预设值,则在对所述当前编码块进行亮度通道的滤波时,过滤掉该匹配块;

若所述第二匹配误差大于第二预设值,则在对所述当前编码块进行色度通道的滤波时,过滤掉该匹配块。

第二方面,本申请实施例还提供了一种基于时域滤波的视频降噪的方法,所述方法包括:

运动估计模块,用于在对当前视频帧进行编码之前,采用运动估计算法,在参考帧中搜索与所述视频帧中的当前编码块对应的匹配块,并获得所述当前编码块与所述匹配块在亮度通道上的第一匹配误差;

色度误差获取模块,用于获取所述当前编码块与所述匹配块在色度通道上的第二匹配误差;

匹配块过滤模块,用于若所述第一匹配误差大于第一预设值,则在对所述当前编码块进行亮度通道的滤波时,过滤掉该匹配块;若所述第二匹配误差大于第二预设值,则在对所述当前编码块进行色度通道的滤波时,过滤掉该匹配块。

第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面的方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面的方法。

本申请具有如下有益效果:

在本实施例中,在对当前视频帧进行编码之前,将运动估计与时域滤波相结合来实现对视频帧的降噪预处理,可以提高视频的主观质量和编码效率,进而提升用户的观看体验和节省传输带宽。具体的,将运动估计得到的匹配块与当前编码块分别计算在亮度通道上的第一匹配误差以及在色度通道上的第二匹配误差,然后分别根据第一匹配误差和第二匹配误差的大小选择亮度分量和色度分量的过滤是否对于跳过当前参考帧,即分别对第一匹配误差与第二匹配误差进行判断,若第一匹配误差大于第一预设值,则在对当前编码块进行亮度通道的滤波时,过滤掉该匹配块;若第二匹配误差大于第二预设值,则在对当前编码块进行色度通道的滤波时,过滤掉该匹配块,从而降低滤波的计算复杂度,提高处理速度。

附图说明

图1是本申请实施例一提供的一种基于时域滤波的视频降噪的方法实施例的流程图;

图2是本申请实施例一提供的一种视频帧处理流程示意图;

图3是本申请实施例一提供的一种数据存储结构示意图;

图4是本申请实施例一提供的一种搜索起始点确定示意图;

图5是本申请实施例二提供的一种基于时域滤波的视频降噪的装置实施例的结构框图;

图6是本申请实施例三提供的一种电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

实施例一

图1为本申请实施例一提供的一种基于时域滤波的视频降噪的方法实施例的流程图,本实施例可以适用于所有对视频进行降噪的场景,能有效地降低视频中的高斯噪声。本实施例可以将基于时域滤波的视频降噪的方法称为ARNR(Alternate Reference NoiseReduction)方法。

本实施例可以应用于对视频帧进行编码之前的预处理过程,如图2的视频帧处理流程示意图所示,视频帧通过降噪预处理装置进行降噪以后,再送入视频编码器进行编码,输出视频码流。本实施例描述的是降噪预处理装置对视频帧进行预处理以达到降噪目的的过程。

在本实施例中,降噪预处理装置可以参考AV1参考软件libaom提出的时域滤波方法来对视频帧进行预处理。其中,AV1是一种新兴的开源、版权免费的视频压缩格式,AV1开发的主要目标是在当前的编解码器基础上获得可观的压缩率提升,同时确保解码的复杂性和硬件的实际可行性,但其在编解码器上对于视频图像的主观质量的提升程度有限。而本实施例将libaom提出的时域滤波方法应用于视频帧的预处理时,通过视频预处理对视频进行降噪,可以有效地提高视频图像的主观效果和压缩效率,从而改善视频画质和节省传输带宽。

如图1所示,本实施例可以包括如下步骤:

步骤110,在对当前视频帧进行编码之前,采用运动估计算法,在参考帧中搜索与所述视频帧中的当前编码块对应的匹配块,并获得所述当前编码块与所述匹配块在亮度通道上的第一匹配误差。

在该步骤中,对于当前需要处理的目标视频的每一个视频帧,在将视频帧输入至编码器进行编码之前,可以首先对视频帧进行降噪预处理。在降噪预处理的过程中,可以采用运动估计算法,在参考帧中搜索与当前视频帧中的当前编码块对应的匹配块,并以块为单位进行降噪预处理。

具体的,可以首先将当前视频帧划分成多个编码块(Coding Unit,简称CU),各编码块CU的尺寸可以为N*M,其中,N和M可以根据实际需求确定。然后遍历各编码块,针对当前遍历到的编码块(即curr_CU),可以在各参考帧中使用亮度分量的像素值、通过运动估计搜索与curr_CU最匹配的best_CU(即匹配块),并记录运动估计搜索过程中获得的运动矢量(Motion Vector,简称MV)。

在实际中,为了便于访问,可以将当前视频帧以及其多个参考帧(假设参考帧为K个)存储在同一数据存储结构中。其中,参考帧可以为当前视频帧前后相邻的若干视频帧。例如,如图3的数据存储结构示意图所示,在该数据存储结构中,参考帧可以为当前视频帧前后3帧视频帧,当前视频帧与多个参考帧可以按照时域顺序进行存储,并可以根据存储的位置确定当前视频帧与多个参考帧的存储索引值to_filter_idx,该存储索引值可以用于标识视频帧。

在确定当前编码块在参考帧中的匹配块以后,可以记录当前编码块与匹配块在亮度通道上的第一匹配误差。第一匹配误差可以为基于亮度分量的像素值、采用绝对品均误差函数(MAD)、绝对差值和(SAD)、归一化相关函数(NCFF)、均方误差函数(MSE)、最大误差最小函数(MME)、最大匹配像素(MPC)等计算的误差。第一匹配误差越大说明两者越不匹配,越小说明两者越相似。

在一种实施例中,步骤110中的采用运动估计算法,在参考帧中搜索与所述视频帧中的当前编码块对应的匹配块的步骤,进一步可以包括如下步骤:

步骤110-1,从参考帧中确定起始搜索点,并基于所述起始搜索点确定搜索块。

在实现时,为了减少搜索点数、降低算法的复杂度,同时提高匹配度,可以采用预测起始点的方法来从参考帧中确定起始搜索点,例如,通过利用相邻运动矢量的相关性来预测搜索起始点,是提高运动估计效率的有效手段。

在一种实施方式中,可以利用同一帧空间位置上的相邻块来预测当前块的运动矢量。示例性地,这些相邻块可以分别位于当前块的左方、上方、右上方、左上方。预测搜索起始点的方法可以包括:左块法(直接将当前块左边相邻块的运动矢量作为当前块的预测运动矢量)、均值法(将当前块的左方、上方、右上方、左上方的相邻块的运动矢量求平均值,得到当前块的预测运动矢量)、中值法(根据当前块的左方、上方、右上方、左上方的相邻块的运动矢量,用中值计算得到当前块的预测运动矢量)、SAD比较法(对当前块相邻的运动矢量进行比较,然后再根据他们的运动矢量来计算出当前块的SAD(Sum of AbsoluteDifference,绝对差值和),取最小的SAD对应的运动矢量作为当前块的预测运动矢量),该预测运动矢量所指向的对应位置就是搜索起始点。

在另一种实施例中,还可以利用时间相关性来预测当前块的运动矢量,则可用于起点预测的运动块可以包括前一帧上位置相同的块。具体的,可以获取当前编码块与前一参考帧对应的匹配块的第四匹配误差,若该第四匹配误差小于第四预设值,则获取当前编码块与前一参考帧对应的匹配块的运动矢量。然后以该运动矢量指向的位置作当前参考帧的起始搜索点。

例如,如图4所示,当前编码块(即图4中的待滤波块)在参考帧1中找到的匹配块为p’,对应的运动矢量为mv’,如果参考帧1的第四匹配误差小于第四预设值,即在参考帧1中搜索到的匹配块很相似。则在参考帧2进行运动估计时,可以将mv’对应的位置设置为参考帧2的搜索起始点。如图4所示,参考帧1和参考帧2的搜索范围是相同的,如虚线框所示,但是搜索起始点不同。

其中,与第一匹配误差类似,第四匹配误差可以为基于亮度分量的像素值、采用绝对品均误差函数(MAD)、绝对差值和(SAD)、归一化相关函数(NCFF)、均方误差函数(MSE)、最大误差最小函数(MME)、最大匹配像素(MPC)等计算的误差。第四匹配误差越大说明两者越不匹配,越小说明两者越相似。

确定搜索起始点以后,可以根据该搜索起始点、按照运动估计搜索算法在指定搜索范围内进行搜索,以确定对应的搜索块。其中,运动估计搜索算法可以包括但不限于:全搜索法FS、三步搜索法、新三步搜索法、四步搜索算法、菱形搜索法(钻石搜索法)、六边形搜索法等。

步骤110-2,确定当前编码块与所述搜索块的第三匹配误差。

与第四匹配误差相似,第三匹配误差也可以为基于亮度分量的像素值、采用绝对品均误差函数(MAD)、绝对差值和(SAD)、归一化相关函数(NCFF)、均方误差函数(MSE)、最大误差最小函数(MME)、最大匹配像素(MPC)等计算的误差。

步骤110-3,若所述第三匹配误差小于或等于第三预设值,则将当前搜索块作为当前编码块的匹配块,并跳出运动估计流程。

在该步骤中,如果第三匹配误差小于或等于第三预设值,则说明当前搜索块与当前编码块比较相似,则可以直接将当前搜索块作为当前编码块的匹配块,将当前第三匹配误差作为运动估计的误差,并提前终止运动估计的搜索过程,以降低搜索过程的计算复杂度和计算量。

步骤120,获取所述当前编码块与所述匹配块在色度通道上的第二匹配误差。

在确定当前编码块在参考帧中的匹配块以后,还可以计算当前编码块与匹配块在色度通道上的第二匹配误差。第二匹配误差可以为基于色度分量的像素值、采用绝对品均误差函数(MAD)、绝对差值和(SAD)、归一化相关函数(NCFF)、均方误差函数(MSE)、最大误差最小函数(MME)、最大匹配像素(MPC)等计算的误差。第二匹配误差越大说明两者越不匹配,越小说明两者越相似。

步骤130,若所述第一匹配误差大于第一预设值,则在对所述当前编码块进行亮度通道的滤波时,过滤掉该匹配块。

在该步骤中,如果当前编码块与某个参考帧中的匹配块在亮度通道上的第一匹配误差超过第一预设值,表示该匹配块与当前编码块的亮度差异很大,使用该匹配块进行亮度滤波不仅会增加复杂度还会对主观质量和客观编码性能造成负面影响,因此对于当前编码块的亮度分量不使用该匹配块帧进行滤波,从而节省后续亮度滤波过程的复杂度。

在一种实施例中,可以采用如下步骤对当前编码块进行亮度通道的滤波:

步骤130-1,将与当前编码块对应的、各参考帧中在亮度通道上未被过滤的匹配块作为目标匹配块。

在该步骤中,可以将第一匹配误差小于或等于第一预设值的匹配块,即未被过滤的匹配块作为目标匹配块。

步骤130-2,获取当前编码块在亮度通道上的噪声估计值。

在实现时,可以对当前视频帧进行帧级噪声估计,以确定每个视频帧分别在不同通道上的噪声估计值。其中,噪声估计值用于反映当前视频帧在不同通道上的帧级噪声强度,不同通道可以包括Y、U、V通道(其中,Y通道为亮度通道,U、V通道为色度通道)。当前视频帧分别在Y、U、V通道的帧级噪声程度可以表示为noise_level[Y]、noise_level[U]、noise_level[V]。当前编码块在亮度通道上的噪声估计值即为当前视频帧在亮度通道上的噪声估计值。

在一种实施例中,可以采用如下步骤确定当前视频帧在亮度通道上的噪声估计值(色度通道的处理过程相同):

步骤130-2-1,对当前视频帧进行边界检测,以确定非边界像素点。

在一种实现中,可以通过Sobel算子(索贝尔算子)对当前视频帧进行边界检测,以确定边界像素点和非边界像素点,并将边界像素点排除,保留非边界像素点,边界像素点不参与后续的噪声估计可以提高噪声估计的准确度。

步骤130-2-2,分别对各非边界像素点在亮度通道上的像素值进行卷积操作。

在一种实现中,可以采用拉普拉斯卷积核(laplace convolution kernel)对各非边界像素点在亮度通道上的像素值进行卷积操作。

例如,对于某个非边界像素点,可以获取其Y分量像素值,并采用拉普拉斯卷积核对该Y分量像素值进行卷积操作,得到该像素点在Y通道上的卷积结果。

步骤130-2-3,根据亮度通道上的卷积结果以及所述视频帧的大小,确定该视频帧在亮度通道上的噪声估计值。

在实现时,视频噪声可以被建模为零均值的高斯白噪声,则噪声估计值可以使用方差σ表示。在该步骤中,当对所有非边界像素点完成卷积操作以后,可以对所有非边界像素点在亮度通道的卷积结果进行汇总,并根据汇总结果进行方差计算得到亮度通道上的噪声估计值。

例如,可以采用如下公式计算亮度通道上的噪声估计值σ:

其中,I(x,y)表示(x,y)这个像素位置在亮度通道上的像素值,即Y分量像素值;N表示拉普拉斯卷积核;W、H分别表示当前视频帧的宽度和高度;π表示圆周率。

步骤130-3,根据所述亮度通道上的噪声估计值,确定与当前编码块的当前滤波像素点对应位置的、各目标匹配块中的目标匹配像素点在亮度通道上的滤波权重。

在对当前编码块的待滤波像素点在亮度通道上进行滤波前,可以参考各目标匹配像素点在亮度通道中的滤波权重。而各目标匹配像素点在亮度通道上的滤波权重又是与当前视频帧在亮度通道上的噪声估计值相关的。

在一种实施例中,步骤130-3进一步可以包括如下步骤:

步骤130-3-1,在各参考帧中以其目标匹配像素点为中心确定第一参考块,在当前视频帧中以当前待滤波像素点为中心确定第二参考块;确定所述第一参考块与所述第二参考块在亮度通道上的匹配误差,作为第五匹配误差。

在实际中,由于第一匹配误差(Block_error)描述的是curr_CU和best_CU的误差,当Block_error很小时,说明两个CU块非常匹配,但是无法精确描述具体某个待滤波像素点与目标匹配像素点的匹配程度,可能存在Block_error误差很小,但是best_CU中某些像素点与curr_CU的对应像素点之间的误差很大的情况,因此需要计算第五匹配误差window_error用于描述匹目标匹配像素点与待滤波像素点的匹配程度,其中,window_error越小表明两者越相似,window_error越大表明两者像素值差距越大。

在计算目标匹配像素点与待滤波像素点的window_error时,可以以目标匹配像素点为中心,在对应参考帧中取其周围指定步长的像素点组成B*C(例如,5*5)大小的第一参考块CU。类似地,以待滤波像素点为中心,在当前视频帧中取其周围指定步长的像素点组成B*C大小的第二参考块CU。然后根据第一参考块与第二参考块中各像素点的亮度分量像素值,计算第一参考块与第二参考块在亮度通道上的第五匹配误差window_error,即Ywindow_error。

步骤130-3-2,根据所述第一匹配误差以及所述第五匹配误差,确定所述目标匹配像素点在亮度通道上的综合匹配误差。

在得到目标匹配像素点在亮度通道上的第一匹配误差以及第五匹配误差以后,则可以将第一匹配误差与第五匹配误差进行融合,得到该目标匹配像素点在亮度通道上的综合匹配误差。

例如,可以采用如下公式确定某个目标匹配像素点在亮度通道上的综合匹配误差:

其中,window_error为目标匹配像素点在亮度通道上的第五匹配误差,block_error为目标匹配像素点在亮度通道上的第一匹配误差,combine_error为目标匹配像素点在亮度通道上的综合匹配误差,c1为大于0的常量,可取c1=10。

步骤130-3-3,根据所述亮度通道上的噪声估计值以及所述亮度通道上的综合匹配误差,确定所述目标匹配像素点在亮度通道上的滤波权重。

在一种实施例中,步骤130-3-3进一步可以包括如下步骤:

步骤130-3-3-1,采用幂函数对所述综合匹配误差进行缩放处理。

在使用原有的ARNR方法时,如果当前编码块与前后参考帧的目标匹配块之间的像素值差别较大,经过滤波融合之后会产生明显的块效应。为了减少块效应,本实施例可以通过预设幂函数对目标匹配块中的目标匹配像素点的综合匹配误差进行缩放处理,使得当综合匹配误差很小时滤波权重较大,当综合误差很大时通过幂函数的放大,滤波权重被调整为很小,从而避免像素值相差很大的匹配对编码块造成较大影响,从而减少块效应。

例如,可以采用如下公式对综合匹配误差进行缩放处理:

scale_error=c2×combine_error2

其中,scale_error为缩放后的综合匹配误差;c2为大于0的常量,用于调整误差缩放的程度。

步骤130-3-3-2,根据所述亮度通道上的噪声估计值确定在亮度通道上的滤波系数。

在一种实现中,可以采用如下公式确定亮度通道的滤波系数:

r=decay_control×(c3+log(noise_level[plane]+1.0))

其中,r为滤波系数;decay_control是与分辨率相关的常数系数,通常可以根据分辨率设置,例如,当视频帧的高度大于等于720时,可以设置decaycontrol=4,否则可以设置decaycontrol=3;c3为大于0的常量,例如可以设置c3=0.7;noise_level[plane]是指当前通道对应的噪声估计值,即noise_level[Y]。

步骤130-3-3-3,根据所述滤波系数以及缩放处理后的综合匹配误差,确定各目标匹配像素点在亮度通道上的滤波权重。

例如,可以采用如下公式确定某个目标匹配像素点在亮度通道上的滤波权重:

adjust_weight=scale×escaled_diff

其中,

其中,adjust_weight为滤波权重;scale是缩放常数;c4为大于0的常量,例如可以设置c4=2;q为大于0的常量,例如可以设置q=1.0;MIN_DIFF是小于0的常量,表示scaled_diff的最小值。

从上式可以看出,window_error和Block_error越大,滤波权重越小,即待滤波的CU与目标匹配CU之间差别越大,目标匹配CU对待滤波CU的影响越小;待滤波图像的noise_level[plane]越大,滤波权重越大,即待滤波图像噪声程度越大,滤波程度越大。

步骤130-4,根据各目标匹配块中的目标匹配像素点在亮度通道上的滤波权重,对当前待滤波像素点进行滤波,得到该待滤波像素点在亮度通道上的滤波像素值。

在一种实施例中,可以通过归一化处理的方法来确定待滤波像素点在亮度通道上的滤波像素值,则步骤130-4进一步可以包括如下步骤:

步骤130-4-1,计算同一待滤波像素点对应的不同目标匹配像素点在亮度通道上的滤波权重的总和,得到该待滤波像素点在亮度通道上的总滤波权重。

步骤130-4-2,将各目标匹配像素点在亮度通道上的滤波权重以及各目标匹配像素点在亮度通道上的像素值进行加权计算,获得各目标匹配像素点在亮度通道上的滤波像素值。

在该步骤中,针对每个目标匹配像素点,在得到该目标匹配像素点在亮度通道上的滤波权重以后,可以计算该目标匹配像素点在亮度通道上的滤波权重以及亮度分量像素值的加权值,得到该目标匹配像素点在亮度通道上的滤波像素值。

例如,假设某个目标匹配像素点在亮度通道上的滤波权重为wc,i,j,k,其中,c表示通道索引值,c=0表示亮度Y,c=1表示色度U,c=2表示色度V;i,j表示像素位置;k表示当前目标匹配像素点所在的参考帧的帧索引值。则该匹配像素点在当前通道上的滤波像素值fc,i,j,k为:

fc,i,j,k=wc,i,j,k*I(x,y)

步骤130-4-3,计算同一待滤波像素点对应的不同目标匹配像素点在亮度通道上的滤波像素值的总和,得到该待滤波像素点在亮度通道上的总滤波像素值。

步骤130-4-4,计算所述总滤波像素值与所述总滤波权重的比值,获得该待滤波像素点在亮度通道上的滤波像素值。

即,可以通过如下公式确定待滤波像素点在亮度通道上的滤波像素值:

其中,为当前待滤波像素点对应的各个目标匹配像素点、在亮度通道上的滤波像素值的总和;为当前待滤波像素点对应的各个目标匹配像素点、在亮度通道上的滤波权重的总和。

需要说明的是,上述步骤120-步骤140的过程以CU为单位进行时域滤波处理,当当前CU处理完毕后,则遍历下一个未处理的CU,直到当前视频帧中的所有CU都处理完毕,则完成对当前视频帧在亮度通道上的降噪预处理过程。

步骤140,若所述第二匹配误差大于第二预设值,则在对所述当前编码块进行色度通道的滤波时,过滤掉该匹配块。

在该步骤中,如果当前编码块与某个参考帧中的匹配块在色度通道上的第二匹配误差超过第二预设值,表示该匹配块与当前编码块的色度差异很大,使用该匹配块进行色度滤波不仅会增加复杂度还会对主观质量和客观编码性能造成负面影响,因此对于当前编码块的色度分量不使用该匹配块帧进行滤波,从而节省后续色度滤波过程的复杂度。

对当前编码块进行色度通道的滤波的过程,可以参考步骤130中关于亮度滤波的过程,只需要将其中的亮度分量相关的信息,改成色度分量相关的信息即可,例如,将亮度分量像素值,改成色度分量像素值(分别是U、V像素值)。

但需要说明的是,原有的ARNR方法在计算色度U、V的window_error时,会使用对应位置的亮度的误差进行计算,即色度误差考虑了亮度误差的影响。因为ARNR方法中只使用亮度像素值进行运动估计,得到的最佳匹配块是亮度像素值的最佳匹配块,但是色度的像素值并不一定是最匹配的。由于ARNR方法中色度误差考虑了亮度误差后,会导致当色度块之间相差很大而亮度块很相似时(比如颜色闪烁变化的特效场景),会因为使用了亮度的信息导致色度误差偏小,从而滤波权重计算为较大值,最终导致色度的编码效率损失严重,并且可能对色度的主观质量造成显著影响。为了解决上述问题,本实施例独立计算亮度和色度的window_error,计算色度U、V的window_error只是使用U、V的误差值,不考虑亮度误差值,从而可以提升色度的主观质量并大幅提升色度的编码效率。

具体的,在一种实施例中,可以采用如下步骤对当前编码块进行色度通道的滤波(其中,色度通道包括U通道和V通道,本实施例分别对U通道和V通道进行滤波):

步骤140-1,将与当前编码块对应的、各参考帧中在色度通道上未被过滤的匹配块作为目标匹配块。

在该步骤中,可以将第二匹配误差小于或等于第二预设值的匹配块,即未被过滤的匹配块作为目标匹配块。

步骤140-2,获取当前编码块在色度通道上的噪声估计值。

在一种实施例中,可以采用如下步骤确定当前视频帧在色度通道上的噪声估计值:

步骤140-2-1,对当前视频帧进行边界检测,以确定非边界像素点。

步骤140-2-2,分别对各非边界像素点在色度通道上的像素值进行卷积操作。

步骤140-2-3,根据色度通道上的卷积结果以及所述视频帧的大小,确定该视频帧在色度通道上的噪声估计值。

步骤140-3,根据所述色度通道上的噪声估计值,确定与当前编码块的当前滤波像素点对应位置的、各目标匹配块中的目标匹配像素点在色度通道上的滤波权重。

在一种实施例中,步骤140-3进一步可以包括如下步骤:

步骤140-3-1,在各参考帧中以其目标匹配像素点为中心确定第一参考块,在当前视频帧中以当前待滤波像素点为中心确定第二参考块;确定所述第一参考块与所述第二参考块在色度通道上的匹配误差,作为第六匹配误差。

在实际中,由于第二匹配误差(Block_error)描述的是curr_CU和best_CU的误差,当Block_error很小时,说明两个CU块非常匹配,但是无法精确描述具体某个待滤波像素点与目标匹配像素点的匹配程度,可能存在Block_error误差很小,但是best_CU中某些像素点与curr_CU的对应像素点之间的误差很大的情况,因此需要计算第六匹配误差window_error用于描述匹目标匹配像素点与待滤波像素点的匹配程度。

在计算目标匹配像素点与待滤波像素点的window_error时,可以以目标匹配像素点为中心,在对应参考帧中取其周围指定步长的像素点组成B*C(例如,5*5)大小的第一参考块CU。类似地,以待滤波像素点为中心,在当前视频帧中取其周围指定步长的像素点组成B*C大小的第二参考块CU。然后根据第一参考块与第二参考块中各像素点的色度分量像素值,计算第一参考块与第二参考块在色度通道上的第六匹配误差window_error,即Uwindow_error或者V window_error。

步骤140-3-2,根据所述第二匹配误差以及所述第六匹配误差,确定所述目标匹配像素点在色度通道上的综合匹配误差。

步骤140-3-3,根据所述色度通道上的噪声估计值以及所述色度通道上的综合匹配误差,确定所述目标匹配像素点在色度通道上的滤波权重。

在一种实施例中,步骤140-3-3进一步可以包括如下步骤:

步骤140-3-3-1,采用幂函数对所述综合匹配误差进行缩放处理。

步骤140-3-3-2,根据所述色度通道上的噪声估计值确定在色度通道上的滤波系数。

步骤140-3-3-3,根据所述滤波系数以及缩放处理后的综合匹配误差,确定各目标匹配像素点在色度通道上的滤波权重。

步骤140-4,根据各目标匹配块中的目标匹配像素点在色度通道上的滤波权重,对当前待滤波像素点进行滤波,得到该待滤波像素点在色度通道上的滤波像素值。

在一种实施例中,可以通过归一化处理的方法来确定待滤波像素点在色度通道上的滤波像素值,则步骤140-4进一步可以包括如下步骤:

步骤140-4-1,计算同一待滤波像素点对应的不同目标匹配像素点在色度通道上的滤波权重的总和,得到该待滤波像素点在色度通道上的总滤波权重。

步骤140-4-2,将各目标匹配像素点在色度通道上的滤波权重以及各目标匹配像素点在色度通道上的像素值进行加权计算,获得各目标匹配像素点在色度通道上的滤波像素值。

步骤140-4-3,计算同一待滤波像素点对应的不同目标匹配像素点在色度通道上的滤波像素值的总和,得到该待滤波像素点在色度通道上的总滤波像素值。

步骤140-4-4,计算所述总滤波像素值与所述总滤波权重的比值,获得该待滤波像素点在色度通道上的滤波像素值。

在本实施例中,在对当前视频帧进行编码之前,将运动估计与时域滤波相结合来实现对视频帧的降噪预处理,可以提高视频的主观质量和编码效率,进而提升用户的观看体验和节省传输带宽。具体的,将运动估计得到的匹配块与当前编码块分别计算在亮度通道上的第一匹配误差以及在色度通道上的第二匹配误差,然后分别根据第一匹配误差和第二匹配误差的大小选择亮度分量和色度分量的过滤是否对于跳过当前参考帧,即分别对第一匹配误差与第二匹配误差进行判断,若第一匹配误差大于第一预设值,则在对当前编码块进行亮度通道的滤波时,过滤掉该匹配块;若第二匹配误差大于第二预设值,则在对当前编码块进行色度通道的滤波时,过滤掉该匹配块,从而降低滤波的计算复杂度,提高处理速度。

实施例二

图5为本申请实施例二提供的一种基于时域滤波的视频降噪的装置实施例的结构框图,可以包括如下模块:

运动估计模块210,用于在对当前视频帧进行编码之前,采用运动估计算法,在参考帧中搜索与所述视频帧中的当前编码块对应的匹配块,并获得所述当前编码块与所述匹配块在亮度通道上的第一匹配误差;

色度误差获取模块220,用于获取所述当前编码块与所述匹配块在色度通道上的第二匹配误差;

匹配块过滤模块230,用于若所述第一匹配误差大于第一预设值,则在对所述当前编码块进行亮度通道的滤波时,过滤掉该匹配块;若所述第二匹配误差大于第二预设值,则在对所述当前编码块进行色度通道的滤波时,过滤掉该匹配块。

在一种实施例中,所述运动估计模块210可以包括如下子模块:

起始搜索点确定子模块,用于从参考帧中确定起始搜索点,并基于所述起始搜索点确定搜索块;

匹配块确定子模块,用于确定当前编码块与所述搜索块的第三匹配误差,若所述第三匹配误差小于或等于第三预设值,则将当前搜索块作为当前编码块的匹配块,并跳出运动估计流程。

在一种实施例中,所述起始搜索点确定子模块具体用于:

获取当前编码块与前一参考帧对应的匹配块的第四匹配误差;

若所述第四匹配误差小于第四预设值,则获取当前编码块与前一参考帧对应的匹配块的运动矢量;

以所述运动矢量指向的位置作当前参考帧的起始搜索点。

在一种实施例中,所述装置还包括如下模块:

目标匹配块确定模块,用于将与当前编码块对应的、各参考帧中在亮度通道上未被过滤的匹配块作为目标匹配块;

噪声估计模块,用于获取当前编码块在亮度通道上的噪声估计值;

滤波权重确定模块,用于根据所述亮度通道上的噪声估计值,确定与当前编码块的当前滤波像素点对应位置的、各目标匹配块中的目标匹配像素点在亮度通道上的滤波权重;

亮度滤波模块,用于根据各目标匹配块中的目标匹配像素点在亮度通道上的滤波权重,对当前待滤波像素点进行滤波,得到该待滤波像素点在亮度通道上的滤波像素值。

在一种实施例中,所述滤波权重确定模块进一步可以包括如下子模块:

第一参考块确定子模块,用于在各参考帧中以其目标匹配像素点为中心确定第一参考块;

第二参考块确定子模块,用于在当前视频帧中以当前待滤波像素点为中心确定第二参考块;

参考块误差确定子模块,用于确定所述第一参考块与所述第二参考块在亮度通道上的匹配误差,作为第五匹配误差;

综合匹配误差确定子模块,用于根据所述第一匹配误差以及所述第五匹配误差,确定所述目标匹配像素点在亮度通道上的综合匹配误差;

亮度滤波权重确定子模块,用于根据所述亮度通道上的噪声估计值以及所述亮度通道上的综合匹配误差,确定所述目标匹配像素点在亮度通道上的滤波权重。

在一种实施例中,所述亮度滤波权重确定子模块进一步可以包括如下单元:

缩放处理单元,用于采用幂函数对所述综合匹配误差进行缩放处理;

滤波系数确定单元,用于根据所述亮度通道上的噪声估计值确定在亮度通道上的滤波系数;

亮度滤波权重确定单元,用于根据所述滤波系数以及缩放处理后的综合匹配误差,确定各目标匹配像素点在亮度通道上的滤波权重。

在一种实施例中,所述亮度滤波模块具体用于:

计算同一待滤波像素点对应的不同目标匹配像素点在亮度通道上的滤波权重的总和,得到该待滤波像素点在亮度通道上的总滤波权重;

将各目标匹配像素点在亮度通道上的滤波权重以及各目标匹配像素点在亮度通道上的像素值进行加权计算,获得各目标匹配像素点在亮度通道上的滤波像素值;

计算同一待滤波像素点对应的不同目标匹配像素点在亮度通道上的滤波像素值的总和,得到该待滤波像素点在亮度通道上的总滤波像素值;

计算所述总滤波像素值与所述总滤波权重的比值,获得该待滤波像素点在亮度通道上的滤波像素值。

需要说明的是,本申请实施例所提供的上述一种基于时域滤波的视频降噪的装置可执行本申请实施例一所提供的一种基于时域滤波的视频降噪的装置,具备执行方法相应的功能模块和有益效果。

实施例三

图6为本申请实施例三提供的一种电子设备的结构示意图,如图6所示,该电子设备包括处理器610、存储器620、输入装置630和输出装置640;电子设备中处理器610的数量可以是一个或多个,图6中以一个处理器610为例;电子设备中的处理器610、存储器620、输入装置630和输出装置640可以通过总线或其他方式连接,图6中以通过总线连接为例。

存储器620作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器610通过运行存储在存储器620中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的方法。

存储器620可主要包括存储程序区和存储数据区,其中,存储程序区

可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置630可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置640可包括显示屏等显示设备。

实施例四

本申请实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由服务器的处理器执行时用于执行实施例一中任一实施例中的方法。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种视频编码的方法、系统和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类