一种DCT域插值舍入误差补偿方法转让专利

申请号 : CN200810120837.4

文献号 : CN101365133B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王维东郑重张申汪少杰刘鹏史册姚庆栋

申请人 : 浙江大学

摘要 :

本发明公开了一种DCT域插值舍入误差补偿方法,该方法包括输入DCT域插值后的插值块;判断插值块的各像素的水平和垂直方向运动矢量的指向,将插值块分为水平插值块、垂直插值块和双向插值块;判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型;根据插值块的类型确定各个类型对应的DCT直流系数补偿值;分别对各个类型的插值块进行DCT直流系数补偿,补偿后的插值块与残差相加完成DCT域块重建五个步骤。本发明方法引入DCT域插值块的平滑性判决,给予DCT域平滑块和粗糙块不同的补偿值,抑制DCT域图像重建中的误差扩散现象,获得更好的DCT域双线性半像素插值舍入补偿效果,提高DCT域重建图像质量。

权利要求 :

1.一种DCT域插值舍入误差补偿方法,该方法包括以下五个步骤:

(1)输入DCT域插值后的插值块;

(2)判断DCT域插值后的插值块的各像素的水平和垂直方向运动矢量的指向,将插值块分为水平插值块、垂直插值块和双向插值块;

(3)判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型;

(4)在像素域解码器中统计各类型块舍入误差的比例,根据舍入误差的比例确定补偿值;

(5)分别对各个类型的插值块进行DCT直流系数补偿,补偿后的插值块与残差相加完成DCT域的块重建。

2.根据权利要求1所述的一种DCT域插值舍入误差补偿方法,其特征在于:所述的判断DCT域插值后的图像的插值块的各像素的水平和垂直方向运动矢量的指向,将插值块分为水平插值块、垂直插值块和双向插值块的方法如下:判断DCT域插值后的插值块的各像素的水平和垂直方向运动矢量的指向,若水平方向运动矢量指向半像素位置,垂直方向运动矢量指向整像素位置,由水平方向两个相邻像素插值得到的插值块为水平插值块;若垂直方向运动矢量指向半像素位置,水平方向运动矢量指向整像素位置,由垂直方向两个相邻像素插值得到的插值块为垂直插值块;若水平方向和垂直方向运动矢量均指向半像素位置,由四个相邻像素插值得到的插值块为双向插值块。

3.根据权利要求1所述的一种DCT域插值舍入误差补偿方法,其特征在于:所述的判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型的方法如下:定义水平粗糙度HR与垂直粗糙度VR,分别表示一个插值块所在区域水平方向与垂直方向上的粗糙程度,同时选择相对应的水平平滑阈值HST与垂直平滑阈值VST;若HR≤HST,判定为水平插值平滑块,若HR>HST,判定为水平插值粗糙块;若VR≤VST,判定为垂直插值平滑块,若VR>VST,判定为垂直插值粗糙块;若HR≤HST且VR≤VST,判定为双向插值双向平滑块,若HR≤HST且VR>VST,判定为双向插值水平平滑块,若HR>HST且VR≤VST,判定为双向插值垂直平滑块,若HR>HST且VR>VST,判定为双向插值粗糙块。

4.根据权利要求1所述的一种DCT域插值舍入误差补偿方法,其特征在于:所述的根据所判断的插值块的类型确定各个类型对应的DCT直流系数补偿值的方法如下:标记DCT域插值后的插值块的类型,设插值块大小为M×N;在像素域解码器中统计各类型块舍入误差的比例,根据舍入误差的比例确定补偿值;对于水平插值平滑块和垂直插值平滑块,设q0为舍入误差0所占比例,q1为舍入误差0.5所占比例,像素补偿值为0.5q1,DCT直流系数补偿值为对于三类双向插值平滑块,假设p0、p1、p2、p3分别为0、-0.25、0.5、0.25所占比例,像素补偿值为0.25(p1-p3)+0.5p2,DCT直流系数补偿值为水平插值粗糙块、垂直插值粗糙块的像素补偿值为0.25,DCT直流系数补偿值为双向插值粗糙块的像素补偿值为0.125,像素补偿值为

说明书 :

技术领域

本发明属于DCT域转码中的DCT域图像重建技术领域,尤其涉及一种DCT域插值舍入误差补偿方法。

背景技术

离散余弦变换(Discrete Cosine Transform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算,IDCT是逆离散余弦变换。DCT域转码不需要DCT及IDCT运算,计算复杂性较低,且能较好地保持图像质量,因而受到重视。进行DCT域转码首先需要在DCT域重建图像。DCT域图像重建结构如图2所示,基本原理是利用DCT变换的正交性,将所有线性的像素域运算例如运动补偿、插值等,转移到DCT域进行。但是非线性的像素域运算,例如运动补偿插值后的舍入和IDCT后的舍入,无法在DCT域找到相对应的运算,造成DCT域重建图像和标准重建图像之间存在误差。更为严重的是,由于采用运动补偿的视频编码算法具有递归特性,每个P帧的舍入误差都会传递到后续帧,误差沿着P帧不断扩散累积,造成重建图像质量不断下降。
现有DCT域双线性半像素插值舍入误差补偿方法由Ping-Hao Wu,Chen Chen与Homer H.Chen在论文Rounding Mismatch BetweenSpatial-Domain and Transform-Domain Video Codecs.IEEE Trans.CircuitsSyst.Video Technol.,vol.16,no.10,pp.1286-1293,Oct.2006.中提出,其基本原理是根据舍入误差的概率分布在DCT域补偿舍入误差的均值。运动补偿的最小单位是块,每个块有自己的运动矢量,即块中所有像素的运动矢量是一样的。带插值舍入误差补偿的DCT域图像重建结构如图3所示。
当运动矢量指向整像素位置时,不需要进行插值运算因此没有舍入误差。当运动矢量仅在水平或垂直一个方向上指向半像素位置时,如图4中的E、F点,插值公式为E=(A+B)/2,A、B均为整像素,则E的小数部分只可能是0或0.5。对E进行舍入运算时,不同的舍入操作将产生不同的舍入误差,例如四舍五入操作的舍入误差样本空间为{0,0.5},向下取整(取不大于该值的最大整数)操作的舍入误差样本空间为{0,-0.5},下文均以四舍五入为例说明。两种舍入误差以一定的概率出现,假设0出现概率为q0,0.5出现概率为q1,则舍入误差的数学期望值为0.5q1。在DCT域对每个像素补偿0.5q1能够更好地逼近像素域的舍入结果,同时实现方式很简单,即对大小为M×N的DCT块的直流系数补偿。
当运动矢量在水平垂直方向上均指向半像素位置时,如图4中的G点,插值公式为G=(A+B+C+D)/4。G的小数部分为{0,0.25,0.5,0.75},四舍五入操作的舍入误差为{0,-0.25,0.5,0.25}。假设0出现概率为p0,0.25出现概率为p1,0.5出现概率为p2,-0.25出现概率为p3,则像素补偿值为0.25(p1-p3)+0.5p2,相应的DCT直流系数补偿值为 [ 0.25 ( p 1 - p 3 ) + 0.5 p 2 ] MN
现有方法认为舍入误差服从离散均匀分布,q0=q1=0.5,p0=p1=p2=p3=0.25,由此得到单向插值块直流系数补偿值为,双向插值块直流系数补偿值为。
上述舍入误差分布规律成立的前提条件是相邻像素值奇偶性是独立随机的。视频场景中存在平滑区域,区域内的像素值变化平缓,相邻像素值相等的可能性很高,因此舍入误差为0的概率更大。如果一个视频序列中平滑区域所占比例较高,上述分布的前提假设就不能够成立。此时如果采用现有方法对插值块DCT直流系数进行补偿,将发生过度补偿的情况。

发明内容

本发明提供了一种DCT域插值舍入误差补偿方法,该方法引入DCT域插值块的平滑性判决,给予DCT域平滑块和粗糙块不同的补偿值。
一种DCT域插值舍入误差补偿方法包括五个步骤:(1)输入DCT域插值后的插值块;(2)判断DCT域插值后的插值块的各像素的水平和垂直方向运动矢量的指向,将插值块分为水平插值块、垂直插值块和双向插值块;(3)判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型;(4)根据所判断的插值块的类型确定各个类型对应的DCT直流系数补偿值;(5)分别对各个类型的插值块进行DCT直流系数补偿,补偿后的插值块与残差相加完成DCT域的块重建。
本发明所述的判断DCT域插值后图像的插值块的各像素的水平和垂直方向运动矢量的指向,将插值块分为水平插值块、垂直插值块和双向插值块的方法如下:
判断DCT域插值后的插值块的各像素的水平和垂直方向运动矢量的指向,若水平方向运动矢量指向半像素位置,垂直方向运动矢量指向整像素位置,由水平方向两个相邻像素插值得到的插值块为水平插值块;若垂直方向运动矢量指向半像素位置,水平方向运动矢量指向整像素位置,由垂直方向两个相邻像素插值得到的插值块为垂直插值块;若水平和垂直方向运动矢量均指向半像素位置,由四个相邻像素插值得到的插值块为双向插值块。
本发明所述的判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型的方法如下:
为了判断插值块的平滑性,本方法引入水平粗糙度HR与垂直粗糙度VR,分别表示一个插值块所在区域水平方向与垂直方向上的粗糙程度,水平粗糙度HR与垂直粗糙度VR可以由不同的方式定义,同时不同的定义方式选择不同的水平平滑阈值HST与垂直平滑阈值VST,平滑阈值的确定可以采用现有的多种技术方案。
对于水平插值块需要判断其在水平方向上的平滑性,如果HR≤HST,判定为水平插值平滑块,如果HR>HST,判定为水平插值粗糙块;对于垂直插值块需要判断其在垂直方向上的平滑性,如果VR≤VST,判定为垂直插值平滑块,如果VR>VST,判定为垂直插值粗糙块;对双向插值块需要同时判断其在水平与垂直方向上的平滑性,如果HR≤HST且VR≤VST,判定为双向插值双向平滑块,如果HR≤HST且VR>VST,判定为双向插值水平平滑块,如果HR>HST且VR≤VST,判定为双向插值垂直平滑块,如果HR>HST且VR>VST,判定为双向插值粗糙块。
随着HST和VST值增大,一个块被判定为平滑块的概率增大。若HST和VST值太大,则会将粗糙块误判为平滑块;若HST和VST值太小,则会产生漏判。因此HST和VST的取值必须限定在一定范围内,才能保证块类型判定的合理性。水平插值粗糙块与垂直插值粗糙块的舍入误差趋于平均分布,利用这一性质可以确定合理的平滑阈值。
本发明所述的根据所判断的插值块的类型确定各个类型对应的DCT直流系数补偿值的方法如下:
确定该组典型码流平滑阈值后,在DCT域图像重建结构中标记上述各类型块,设块大小为M×N。在像素域解码器中统计各类型块舍入误差的比例,根据舍入误差的比例确定补偿值。对于水平插值平滑块和垂直插值平滑块,设q0为舍入误差0所占比例,q1为舍入误差0.5所占比例,像素补偿值为0.5q1,DCT直流系数补偿值为;对于三类双向插值平滑块,假设p0、p1、p2、p3分别为0、-0.25、0.5、0.25所占比例,像素补偿值为0.25(p1-p3)+0.5p2,DCT直流系数补偿值为 [ 0.25 ( p 1 - p 3 ) + 0.5 p 2 ] MN ;水平插值粗糙块、垂直插值粗糙块、双向插值粗糙块仍按现有方法补偿,水平插值粗糙块、垂直插值粗糙块的像素补偿值为0.25,DCT直流系数补偿值为;双向插值粗糙块的像素补偿值为0.125,像素补偿值为。
本发明方法引入DCT域插值块的平滑性判决,给予DCT域平滑块和粗糙块不同的补偿值,抑制DCT域图像重建中的误差扩散现象,获得了更好的DCT域双线性半像素插值舍入补偿效果,提高DCT域重建图像质量。

附图说明

图1是本发明的技术方案流程图;
图2为不带插值舍入误差补偿的DCT域图像重建结构示意图;
图3为采用现有插值舍入误差补偿方法的DCT域图像重建结构示意图;
图4为半像素插值示意图;
图5为采用本发明DCT域插值舍入误差补偿方法的DCT域图像重建结构示意图;
图6为粗糙度定义示意图;
图7为像素域解码器、采用本发明DCT域插值舍入误差补偿的DCT域图像重建结构、采用现有DCT域插值舍入误差补偿的DCT域图像重建结构、不带插值舍入误差补偿的DCT域图像重建结构对mother_daughter序列的重建效果比较图。

具体实施方式

在DCT域重建图像的过程中,不进行运动补偿的块以及运动补偿时不进行插值的块不需要补偿舍入误差,而插值块在DCT域完成运动补偿插值后,需要补偿舍入误差。
下面结合附图对本发明一种DCT域插值舍入误差补偿方法的实施例进行详细说明。
如图1所示,一种DCT域插值舍入误差补偿方法包括五个步骤:(1)输入DCT域插值后的插值块;(2)判断DCT域插值后的插值块的各像素的水平和垂直方向运动矢量的指向,将插值块分为水平插值块、垂直插值块和双向插值块;(3)判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型;(4)根据所判断的插值块的类型确定各个类型对应的DCT直流系数补偿值;(5)分别对各个类型的插值块进行DCT直流系数补偿,补偿后的插值块与残差相加完成DCT域的块重建。
现具体介绍本方法的五个步骤:
1)输入DCT域插值后的插值块
2)判断DCT域插值后的插值块的各像素的水平和垂直方向运动矢量的指向,将插值块分为水平插值块、垂直插值块和双向插值块
判断DCT域插值后的图像的插值块的各像素的水平和垂直方向运动矢量的指向,若水平方向运动矢量指向半像素位置,垂直方向运动矢量指向整像素位置,由水平方向两个相邻像素插值得到的插值块为水平插值块;若垂直方向运动矢量指向半像素位置,水平方向运动矢量指向整像素位置,由垂直方向两个相邻像素插值得到的插值块为垂直插值块;若水平和垂直方向运动矢量均指向半像素位置,由四个相邻像素插值得到的插值块为双向插值块。如图4为半像素插值示意图,图中E为水平插值点,F为垂直插值点,G为双向插值点。
3)判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型
为了判断插值块的平滑性,本方法引入水平粗糙度HR与垂直粗糙度VR,分别表示一个插值块所在区域水平方向与垂直方向上的粗糙程度,水平粗糙度HR与垂直粗糙度VR可以由不同的方式定义,同时不同的定义方式选择不同的水平平滑阈值HST与垂直平滑阈值VST。
对于水平插值块需要判断其在水平方向上的平滑性,如果HR≤HST,判定为水平插值平滑块,如果HR>HST,判定为水平插值粗糙块;对于垂直插值块需要判断其在垂直方向上的平滑性,如果VR≤VST,判定为垂直插值平滑块,如果VR>VST,判定为垂直插值粗糙块;对双向插值块需要同时判断其在水平与垂直方向上的平滑性,如果HR≤HST且VR≤VST,判定为双向插值双向平滑块,如果HR≤HST且VR>VST,判定为双向插值水平平滑块,如果HR>HST且VR≤VST,判定为双向插值垂直平滑块,如果HR>HST且VR>VST,判定为双向插值粗糙块。
本方法中水平粗糙度HR与垂直粗糙度VR定义的方法有多种,实施例中将阐述三种定义方法。
取一个DCT域插值后的插值块为:
Z = z 0,0 K z 0 , n M O M z m , 0 L z m , n
其中Z表示一个矩阵,Zi,j表示矩阵中的一个元素,i表示水平位置,从左往右依次是0、1、2、3...,j表示垂直位置,从上往下依次是0、1、2、3...。第一种定义方法为 HR = Σ j = 1 n | z 0 , j | , 表示第一行中交流系数绝对值之和, VR = Σ i = 1 m | z i , 0 | , 表示第一列中交流系数绝对值之和;第二种定义方法为 HR = Σ i = 1 m Σ j = 1 n | z i , j | , 表示除第一行、第一列外的DCT系数绝对值之和, VR = Σ i = 1 m Σ j = 1 n | z i , j | , 表示除第一行、第一列外的DCT系数绝对值之和;第三种定义方法为 HR = Σ i = 0 m Σ j = 1 n | z i , j | , 表示除第一列外的DCT系数绝对值之和, VR = Σ i = 1 m Σ j = 0 n | z i , j | , 表示除第一行外的DCT系数绝对值之和。其中以上的m、n为正整数,示意图如图6所示。
随着HST和VST值增大,一个块被判定为平滑块的概率增大。若HST和VST值太大,则会将粗糙块误判为平滑块;若HST和VST值太小,则会产生漏判。因此HST和VST的取值必须限定在一定范围内,才能保证块类型判定的合理性。水平插值粗糙块与垂直插值粗糙块的舍入误差趋于平均分布,利用这一性质可以确定合理的平滑阈值。
在该实施例中采用如下的水平(垂直)平滑阈值的选择方法:
(1)选择一组典型的码流,利用统计的方法确定单个码流的水平(垂直)平滑阈值。
设定一组候选阈值,从0开始,以0.1为步进递增(0,0.1,0.2,0.3,...)。对每一个阈值,在DCT域图像重建结构中标记由此阈值判定的水平(垂直)插值粗糙块,然后在像素域解码器中统计这些块中舍入误差为0.5所占比例。每一个候选阈值对应一个比例,比例随着候选阈值的增大而增大,最后趋近于50%。从0开始统计,如果得到的比例小于48%则尝试下一个阈值,如果比例大于等于48%则确定当前候选阈值为水平(垂直)平滑阈值。
(2)选择该典型码流中的单个码流的水平(垂直)平滑阈值的最大的值作为方法中的水平(垂直)平滑阈值。
4)本发明所述的根据所判断的插值块的类型确定各个类型对应的DCT直流系数补偿值的方法如下:
本发明所述的根据所判断的插值块的类型确定各个类型对应的DCT直流系数补偿值的方法如下:
确定该组典型码流平滑阈值后,在DCT域图像重建结构中标记上述各类型块,设块大小为M×N。在像素域解码器中统计各类型块舍入误差的比例,根据舍入误差的比例确定补偿值。对于水平插值平滑块和垂直插值平滑块,设q0为舍入误差0所占比例,q1为舍入误差0.5所占比例,像素补偿值为0.5q1,DCT直流系数补偿值为对于三类双向插值平滑块,假设p0、p1、p2、p3分别为0、-0.25、0.5、0.25所占比例,像素补偿值为0.25(p1-p3)+0.5p2,DCT直流系数补偿值为 [ 0.25 ( p 1 - p 3 ) + 0.5 p 2 ] MN ; 水平插值粗糙块、垂直插值粗糙块、双向插值粗糙块仍按现有方法补偿,水平插值粗糙块、垂直插值粗糙块的像素补偿值为0.25,DCT直流系数补偿值为双向插值粗糙块的像素补偿值为0.125,像素补偿值为 0.125 MN .
5)分别对各个类型的插值块进行DCT直流系数补偿,补偿后的插值块与残差相加完成DCT域块重建。
采用块分类插值舍入误差补偿方法的DCT域图像重建结构如图5所示。在具体应用的过程中本发明可以采用不同的软件平台和测试序列进行实施,为了简单说明该方法的效果,下面选择了几个英文名的akiyo、carphone、coastguard、flower、foreman、mobile、mother_daughter、news、silence、tempete等具有代表性的视频序列作为示例性实施。
现以Xvid1.1.3为软件平台,分别实现了采用本发明方法的DCT域插值舍入误差补偿方法的DCT域图像重建、采用现有插值舍入误差补偿方法的DCT域图像重建以及不带补偿的DCT域图像重建。为了评价DCT域重建图像的质量,将其通过IDCT预算转换到像素域。视频序列码流由Xvid1.1.3编码器生成,原始序列是分辨率为352×288的CIF序列,码率设置为4Mb/s,画面组GOP长度为100帧,没有B帧。原始序列采用半像素精度运动补偿,而未采用全局运动补偿。采用本发明的DCT域插值舍入误差补偿方法中的水平粗糙度HR与垂直粗糙度VR均采用上述第一种定义方式,设定插值块大小为8×8,利用统计的方法确定水平粗糙阈值HST与垂直粗糙阈值VST。设定一组候选阈值,从0开始,以0.1为步进递增(0,0.1,0.2,0.3,...)。对每一个阈值,在DCT域图像重建结构中标记由此阈值判定的水平(垂直)插值粗糙块,然后在像素域解码器中统计这些块中舍入误差为0.5的所占比例。每一个候选阈值对应一个比例,比例随着候选阈值的增大而增大,最后趋近于50%。从0开始统计,如果得到的比例小于48%则尝试下一个阈值,如果比例大于等于48%则确定当前候选阈值为水平(垂直)平滑阈值。选择该典型码流中的单个码流的水平(垂直)平滑阈值的最大的值作为方法中的水平(垂直)平滑阈值。最后得到水平粗糙阈值HST与垂直粗糙阈值VST均为5。判断插值块的水平粗糙度和垂直粗糙度,确定插值块的类型,在DCT域图像重建结构中标记各类型平滑块,在像素域解码器中统计各类型平滑块的舍入误差比例。各类型平滑块的舍入误差比例及由此确定的补偿值如表1所示:
表1 像素补偿值和DCT直流系数补偿值

水平插值粗糙块、垂直插值粗糙块的像素补偿值为0.25,DCT直流系数补偿值为2;双向插值粗糙块的像素补偿值为0.125,像素补偿值为1。实验结果如表2所示,表中PSNR为峰值信噪比。
表2 重建视频序列峰值信噪比

从表2数据可以看出,对于场景信息比较丰富的coastguard、foreman、mobile、tempete等序列,现有方法能够补偿一定的舍入误差,本发明提出的块分类补偿方法通过对块类型的细分,获得比现有方法更好的重建图像质量。对于场景中存在大量平滑区域的akiyo、mother_daughter、news、silence、flower等序列,现有方法由于存在过度补偿问题,补偿后的重建图像与未补偿的重建图像相比,质量提高有限甚至有所下降。本发明提出的块分类补偿方法修正了现有方法的过度补偿问题,仍然能够有效补偿舍入误差,获得更好的重建图像质量。总体来看,相对现有补偿方法,块分类补偿方法能够使重建图像峰值信噪比平均提升约0.2dB。
如图7所示,由于在DCT域重建图像中误差是随着P帧不断扩散积累的,采用本发明方法DCT域插值舍入误差补偿方法能够更有效控制误差扩散积累速度,在GOP末段获得更好的重建图像质量。