本发明涉及视频编码的处理方法,具体的讲是视频编码参考块滤波方法。
背景技术:
数字图像和视频的压缩,需要在压缩过程中尽可能去除冗余信息。而视频压缩中,时域冗余量非常可观,因此尽可能消除时域冗余长久以来都是一个热门的研究课题。目前主流的编码器大都采用帧间预测技术,采用运动估值,运动补偿等方法减少时域冗余。帧间预测编码技术是最能获得良好编码结果的保障。
目前,主流的编码器都使用离散余弦变换(dct)作为一项关键技术对图像和图像间的残差进行变换压缩,编码器以规模较小的变换单元(transimitionunit,tu)为单位进行离散余弦变换(dct)、量化、熵编码。由于变换和编码是以块(block)为单位进行,因此相邻块之间的相关性被忽视。在预测和量化编码后,可能引入块与块之间边界不匹配的问题,造成边界不连贯。这不仅影响用户的主观感受、降低编码质量,同时也会削弱自身的参考性,客观上增加了后续图像的编码难度。一种能平滑图像,减少图像中不连贯现象以获得更优参考图像的滤波技术具有现实意义。
与此同时,量化与反量化的过程是视频图像编码失真的主要来源。从失真的来源上来讲,通常高频信息对失真敏感,低频分量对失真不那么敏感。若参考图像内容保证或增强低频分量信息,同时抑制高频分量的噪声信息,那么帧间参考的性能将获得提升。
不连贯的边界会产生块现象,具体而言就是重构图像时会出现伪边界。若对图像进行频域分解,可以检测出频域上的高频分量。重构图像被用于后续的信源图像作为参考。为了获得较好的参考图像,提升编码性能,需要一种能够自适应弱化或去除图像高频分量的方法,使图像纹理变平滑以达到改善参考图像质量的目的。
技术实现要素:
本发明提供了一种视频编码参考块滤波方法,以对图像纹理的进行平滑处理,弱化图像的高频分量,同时避免对本身质量和参考性很好的像素块进行过滤。
本发明的视频编码参考块滤波方法,包括:
a.在图像编码过程中,编码单元进行参考预测时,计算当前的参考像素块bref的纹理复杂度c,所述参考像素块bref的大小为m×n的矩阵,可以选择32×32像素以上大小的参考像素进行滤波,这样既能保证消除较小变换块之间的不连贯性,也能尽量避免过滤本身质量和参考性较好的像素块;α<纹理复杂度c<β,其中α和β分别为纹理复杂度下限和纹理复杂度上限,则执行下一步,否则结束滤波;通常α和β可以采用经验值,可以通过α=0.13×m×n和β=2.8×m×n计算得到,其中m、n为参考像素块bref的矩阵长和宽;
b.将参考像素块bref进行离散余弦变换得到变换系数矩阵iref,并分别计算参考像素块bref的横向频率分布强度和纵向频率分布强度,并通过所述的横向频率分布强度和纵向频率分布强度分别计算对应的横向滤波因子和纵向滤波因子;
c.建立与参考像素块bref相同大小的滤波模板u,滤波模版u的元素u(i,j)通过所述的横向滤波因子和纵向滤波因子计算得到,其中1≤i≤m,1≤j≤n;
d.将所述经离散余弦变换得到的变换系数矩阵iref与滤波模版u的矩阵相乘得到滤波后的系数矩阵,对其进行反离散余弦变换得到滤波后的参考像素块;
e.如果滤波后的参考像素块的平均绝对差(meanabsolutedifferences,简称mad)小于0且复杂度降低,则将滤波后的参考像素块回写至参考像素块bref中,反之则不对参考像素块bref滤波。平均绝对差(mad),一般用作匹配算法。显然,mad的值越小,表明比较两者越相似,其计算方式为:
具体的,步骤a中所述计算当前的参考像素块bref的纹理复杂度c为:
其中
具体的,步骤b中计算所述的横向频率分布强度为:
进一步的,步骤b中计算所述的横向滤波因子为:
其中a为预设下限,b为预设上限,val为输入变量。该截断函数可以将输入变量val限制在预设的范围[a,b]之间。
进一步的,所述计算滤波模版u的元素u(i,j)为:
其中α为滤波因子,scale为约束因子,可以为一经验常数,scale=max(m,n)。
本发明的视频编码参考块滤波方法,能够有效的对图像纹理的进行平滑处理,明显的提高了图像编码的性能,同时也避免了对本身质量和参考性很好的像素块进行过滤,实现了自适应改善参考图像质量的目的。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
附图说明
图1为本发明视频编码参考块滤波方法的流程图。
具体实施方式
如图1所示本发明的视频编码参考块滤波方法,包括:
a.在图像编码过程中,编码单元进行参考预测时,选择大小为m×n的参考像素块bref,可以选择32×32像素以上大小的参考像素进行滤波,这样既能保证消除较小变换块之间的不连贯性,也能尽量避免过滤本身质量和参考性较好的像素块。计算当前的参考像素块bref的纹理复杂度c:
计算经验值α和β,α=0.13×m×n和β=2.8×m×n,其中m、n为参考像素块bref的矩阵长和宽。如果纹理复杂度c满足[α<纹理复杂度c<β],说明当前的参考像素块bref可以进行滤波模板的建立,则执行下一步,否则结束滤波,因为对于纹理非常复杂的参考像素块,其本身有较大概率继承自之前的高清重构图像,对这类像素块进行滤波极可能导致纹理细节丢失严重,导致当前编码单元的编码质量降低并影响后续编码单元的参考性,故对这类参考像素块不进行滤波操作。而对于纹理非常简单的参考像素块,由于本发明的目的是是弱化或去除部分高频分量,使得更符合编码器,使参考块趋于平缓,更有利于参考。而纹理简单的参考像素块其自身纹理简单且趋于平缓,因此也同样不进行滤波操作。
b.将参考像素块bref进行离散余弦变换(dct)得到变换系数矩阵iref,并分别计算参考像素块bref的横向频率分布强度ch和纵向频率分布强度cv:
其中i(i,j)的值表示参考像素块bref中,由(i,j)的线性组合组成的频率组合的强度,fh表示该频率组合中的水平频率,fv表示该频率组合中的垂直频率,freq表示频率组合,
ch和cv分别表示了参考像素块bref的横向频率分布强度和纵向频率分布强度,数值越大说明在图像纹理在该方向的变化越剧烈。
再通过所述的横向频率分布强度和纵向频率分布强度分别计算对应的横向滤波因子和纵向滤波因子。由于视频序列之间的差异性,可能出现横、纵方向的频率强度分布差异巨大的参考像素块,为了避免滤波模版陷入极端情况,因此将滤波因子设定在一个合理的区间:
所述的横向滤波因子为:
所述的纵向滤波因子为:
上式中的clips为截断函数,计算为:
其中a为预设下限,b为预设上限,val为输入变量。该截断函数可以将输入变量val限制在预设的范围[a,b]之间。
c.建立与参考像素块bref相同大小的滤波模板u,通过所述的横向滤波因子和纵向滤波因子计算滤波模版u的元素u(i,j):
d.将所述经离散余弦变换得到的变换系数矩阵iref与滤波模版u的矩阵相乘得到滤波后的系数矩阵,对其进行反离散余弦变换(idct)得到滤波后的参考像素块;
e.计算平均绝对差(mad):