零块预判条件的确定方法及零块预先判定方法

文档序号:7598812阅读:263来源:国知局
专利名称:零块预判条件的确定方法及零块预先判定方法
技术领域
本发明涉及多媒体通信系统中的视频压缩编码技术,尤其涉及一种压缩编码过程中的零块预先判定方法。
背景技术
H.264压缩编码标准是目前最先进的视频压缩编码国际标准,其全称是国际电信联盟-电信标准化组织H.264标准(ITU-T H.264 Recommendation,International Telecommunication Union-Telecommunication H.264Recommendation),以下将其简称为H.264标准。H.264标准由ITU-T和国际标准化组织(ISO,International Organization for Standardization)/国际电工委员会(IEC,International Electrotechnical Commission)的运动图像专家组(MPEG,Moving Picture Experts Group)共同合作开发制定。该标准从1999年开始研制,由众多国家的设备厂商,软件开发商,电信运营商,大学和科研机构参加,汇集了当前世界上最先进的视频压缩编码技术,最终于2003年正式成为ITU-T的国际标准。
H.264相对于在先的H.263+、H.263++以及MPEG-4 Simple Profile等视频压缩编码标准技术,在性能和功能上都有了很大提高。其中在功能上增加了许多编码工具选项,使得可以适合更多的应用类型以及更加广阔的应用领域;在性能方面,在相同的编码码率(bit-rate)下,图像质量以峰值信号-噪声比值(PSNR,Peak Signal-to-Noise Ratio,简称峰值信噪比)作为参考,H.264标准比在先的H.263+/H.263++,MPEG-4Simple Profile标准提高了一倍,即PSNR增加了3dB;也就是说,在得到相同PSNR的情况下,H.642标准所需要的网络带宽相比H.263+/H.263++,MPEG-4Simple Profile标准所需的网络带宽降低了50%。
但是,H.264标准相对于在先技术标准在功能和性能方面都得到显著提升的同时,其付出的代价也是高昂的,其中H.264标准对视频图像进行压缩编解码处理的运算复杂度要比H.263/H.263+等标准的运算复杂度增加几倍,因此,H.264标准大规模普及应用的前提必须是开发多种处理效率较高的运算处理方法,以降低H.264标准编解码运算处理过程中的多个计算强度非常高的计算环节的运算复杂度,这样才能降低产品所需多媒体处理器的处理能力,从而降低成本;或者是多媒体处理器在给定的处理能力上支持更高的编码及解码能力,从而提高产品性能。
其中在H.264标准的编解码处理过程中存在多处运算复杂度较高的计算环节,比如帧间预测编码(Inter-frame prediction,简称Inter)、帧内预测编码(Intra-frame prediction,简称Intra)、熵编码(CABAC,Context-Adaptive BinaryArithmetic Coding)、1/4像素精度的运动估计(ME,Motion Estimation)和运动补偿(MC,Motion Compensation)、多参考帧预测(Multi-hypothesisprediction)等等。
尤其是在帧内预测编码处理和帧间预测编码处理方面,H.264标准相对于在先的H.263/H.263+等标准有了很大的处理策略变化。其中H.264标准在对视频图像进行编解码处理的过程中,对于视频图像当前帧中的每个宏块(Macro block,以下简称MB),允许使用多种预测模式对其进行预测处理。一般预测处理首先是进行帧间预测,然后再进行帧内预测,继而比较帧内预测和帧问预测的结果,选取编码效率最高的预测模式,这样就把帧内预测和帧间预测这两种预测技术有机地结合起来了,可以达到更高的预测效率和压缩效率。
其中,帧内预测是H.264标准独有的处理属性,对于视频图像编码过程,帧内预测能够最大限度地利用图像数据在空间上的相关性,从而提高压缩编码效率。在一般的视频图像压缩编码处理方式中,较为普遍采用的是帧间预测,而帧间预测利用的是视频图像序列之间在时间上的相关性;然而很多类型的视频图像其内部是存在很强的空间相关性的,因此H.264标准设计了帧内预测方式以充分利用视频图像内部存在的空间相关性,以进而提高压缩编码效率。
H.264标准中的帧内预测是指在编码过程中,对于视频图像中当前要编码的某一个区域(一般都是矩形的块),在视频图像中搜索与其最相近似的、且已经编码的块,用这个搜索到的最相近似的块来预测当前要编码的块,预测结果即是预测的残差。其中不同块之间的相近似性是采用绝对误差和(SAD,Sum of Absolute Differences)来度量的,即与当前要编码的块计算得到的最小SAD所对应的块作为最相近似的块。上述图像块可以是宏块MB(即16×16象素大小的块),也可以是比宏块MB更小的块,也就是说H.264标准中的帧内预测是在MB或者比MB更小尺度的块上进行的。
在视频图像压缩编码过程中,无论是帧间预测还是帧内预测,都是基于MB或者更小尺度的块(如16×8块,8×16块,8×8块,8×4块,4×8块,4×4块等)相对于参考图像块(即用于预测的图像块)来求取预测残差(Prediction Residue或者Prediction Difference),该预测残差结果是大小相同的一个图像块;然后将该预测残差图像块变换到变换系数域,然后对变换系数进行量化;最后再对量化后的变换系数进行Zigzag扫描和熵编码。由此可见,如果在对预测残差图像块进行变换和对变换后的变换系数进行量化的过程中引入优化处理方法,则对图像压缩编码处理效率会有很大程度的提高。
现有H.264标准中,在对预测残差图像块进行变换和对变换后的变换系数进行量化的过程引入优化处理方法主要从以下两方面来考虑(1)由于H.264整数变换方法是一种从离散余弦变换(DCT,DiscreteConsine Transform)方法近似导出的变换方法,即采用整数的商来近似DCT变换系数,从而消除浮点乘除运算,因此采用整数变换方式代替DCT方式,变换效率可以得到很大提高,并且能够将变换过程和量化过程结合成一个过程。同时由于H.264整数变换方式所处理的图像块尺度是4×4块,因此如果采用H.264整数变换,预测残差图像块大小不是4×4块,那么就需要把预测残差图像块划分成多个4×4块,然后分别对每个4×4块进行整数变换。
(2)预先判断出整数变换量化后的零块(所谓零块即是全零变换系数块的简称,即MB中的16个4×4块的变换系数全部为零的情况),对于变换和量化结果为零的预测残差图像块是对图像压缩编码没有任何影响的,所以可以直接省略对这些零块的变换和量化过程,从而提高了图像压缩编码的效率;而且由于当前块是和前帧(0,0)位置上的对应块之间直接求取预测残差的,因此如果预测残差图像块变换和量化结果为全零,则后面的运动搜索过程就可以避免了,从而可以节省每个图像块的运动搜索计算量,相应节省了整个帧间预测模式选择的计算量。
由此可见,如果能够根据一定条件以一定概率(这里允许有一定小比例的误判)预先判断一个预测残差图像块变换量化结果是否为零,即预先判断出整数变换后的零块,则可以避免大量零块的变换计算量和变换之前的预测模式选择过程中的部分计算量。所以在H.264标准中,零块的预先判断处理对于提高视频图像压缩编码效率是十分重要的。
上述变换量化后产生零块的原因主要是因为量化处理本质上是用一个量化参数(QP,Quantization Parameter)的指数形式因子来除变换结果,然后取整的过程,因此只要被除数足够小,除数足够大,就会得到零块。对各类视频图像大量的统计表明,在图像压缩编码过程中,零块是大量存在的(当然零块的多少不但要取决于图像本身属性,还要取决于QP的大小,即通常QP越大则产生零块越多),因此零块预先判定技术对H.264标准压缩编码效率的提高作用是相当大的。
具体而言,目前在H.264标准中,并没有完整的可实施的类似零块预先判定技术,但是由于H.264标准是从H.263标准继承发展而来的,因此这里把在H.263标准中适用的零块预判方法作简要叙述。
在H.263标准的某些实现中,可以采用的一种零块预先判定方法的具体实现过程如下根据DCT的数学性质来对每一个DCT系数进行零预先判定,由于根据DCT的定义X(k,l)=2NckclΣi=0N-1Σj=0N-1x(i,j)cos((2i+1)kπ2N)cos((2j+1)lπ2N)]]>其中 (1)上式中,N表示进行DCT的图像块大小,即DCT处理的图像块为N×N块;在H.263标准中,因为DCT处理的图像块为8×8块,因此N=8。
其中x(i,j)中的i=0,1,2,............,N-1,j=0,1,2................,N-1;x(i,j)表示8×8块中第i行,第j列处的数;i,j为空间域指标。
其中X(k,l)中的k=0,1,2,.........,N-1,l=0,1,2,............,N-1;X(k,l)表示DCT系数;k,l为变换域指标。
根据以上关系,可以推出如下关系|X(k,l)|≤14Σi=07Σj=07|x(i,j)|,]]>其中k=0,1,2,...,7,l=0,1,2,...,7 (2)上式用x(i,j)的绝对值表示出了对X(k,l)绝对值的一个上界估计,因此可以利用这个关系式,来给出H.263标准中8×8块DCT系数的零预判条件设Q表示H.263标准中的量化水平(Quantization Level),那么8×8块中每个DCT系数的量化结果是|X(k,l)|/2Q的整数商,即如果|X(k,l)|<2Q,则可以判定DCT系数X(k,l)的量化结果为0。
根据上述关系式(2),如果有14Σi=07Σj=07|x(i,j)|≤2Q]]>即
Σi=07Σj=07|x(i,j)|≤8Q---(3)]]>就可以判定DCT系数X(k,l)的量化结果为0;同时因为X(k,l)中的k=0,1,2,..........,7,l=0,1,2 ,.........,7,所以只要上述关系式(3)满足就可以预先判定整个8×8块x=x(0,0),x(0,1),.....,x(0,7)x(1,0),x(1,1),.......,x(1,7).........................x(7,0),x(7,1),.......,x(7,7)]]>的DCT系数量化结果为零块。
因为上述现有技术方案一般只是针对H.263标准而实现的,因此只适合于8×8块,如对于一个视频图像序列中的P帧(预测帧)或者B帧(后向预测帧)中的每一个MB(16×16块),在经过运动预测后,获得预测残差图像块也为16×16块,然后将该块分成4个8×8块,再对每个8×8块分别进行上述过程的零块预先判决处理,即可预先得到相应的零块。
显然,上述在H.263标准中适用的零块预先判定方法自身存在着如下的缺陷1)由于H.263标准采用的是DCT方式,而H.264标准采用的是4×4整数变换方式;同时由于H.263标准采用8×8块作为变换的单位图像块,而H.264标准采用4×4块作为变换的单位图像块,所以H.263标准中适用的零块预先判定方法不能很好的适用于H.264标准。
2)H.263标准中适用的零块预先判定方法也没有提出切实有效的可以避免预测模式选择中的运动搜索过程的解决方案。因为在H.263标准中,不存在H.264标准中的复杂预测模式选择,只存在帧间预测模式选择,因此,H.263标准中的零块预先判决能够节省的只是该图像块的DCT和后面的量化计算量,而对于DCT前面的运动搜索过程计算量节省很小。

发明内容
本发明要解决的技术问题在于提出一种零块预判条件的确定方法及零块预先判定方法,以适合于H.264标准压缩编码过程中的零块预先判定处理,提高H.264标准中的压缩编码效率。
为解决上述问题,本发明提出了一种零块预判条件的确定方法,用于H.264压缩编码过程中零块预判条件的确定,包括步骤A.求取视频图像4×4块与前帧参考4×4块之间的预测残差图像块;B.求取所述预测残差图像块对应的绝对误差和;C.根据所述绝对误差和,利用整数变换理论表达式,求取所述预测残差图像块整数变换后的直流系数值的量化值;D.求取使所述直流系数值的量化值为零的充分条件作为零块预判决条件。其中步骤B中所述绝对误差和为 所述x(m,n)表示位移估值搜索后帧间预测残差图像块的各个元素值;步骤C中根据如下公式对所述预测残差图像块进行整数变换X4×4′=H·X4×4·HT=111121-1-21-1-111-22-1x(0,0)x(0,1)x(0,2)x(0,3)x(1,0)x(1,1)x(1,2)x(1,3)x(2,0)x(2,1)x(2,2)x(2,3)x(3,0)x(3,1)x(3,2)x(3,3)121111-1-21-1-121-21-1]]>式中X4×4为整数变换前的4×4块,X′4×4为整数变换后的4×4块,H是H.264整数变换矩阵,HT是H的转置矩阵;步骤C中所述预测残差图像块整数变换后的直流系数值为 该直流系数值的量化值为xq(0,0)=sign{Σn=03Σm=03x(m,n)[(|Σn=03Σm=03x(m,n)|A(QM,0,0)+f217+QE)>>(17+QE)]]]>式中xq(0,0)表示直流系数值的量化值,QM≡QPmod6,QE≡QP/6,QP为量化参数且QP∈
;函数sign(x)=-1,x<00,x=01,x>0;]]>f值由视频编码器选择;步骤D中使所述直流系数值的量化值为零的充分条件是|Σn=03Σm=03x(m,n)|<Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0).]]>其中所述A(QM,0,0)值由下列过程确定A(QM,i,j)=M(QM,r),其中i和j分别表示4×4块中元素的行、列坐标,其中0≤i,j≤3;r为i,j的函数 M为矩阵M=13107,5243,806611916,4660,749010082,4194,65549362,3647,58258192,3355,52437282,2893,4559;]]>由于A(QM,0,0)中(i,j)为(0,0),得到r=0,查询M矩阵中第QM行,第0列元素作为A(QM,0,0)的值。
相应地,本发明还提出了一种零块预先判定方法,用于H.264压缩编码过程中零块预先判定处理,包括步骤(1)确定预测残差图像块对应的绝对误差和SAD<(1-f)·217+QE/A(QM,0,0)]]>为零块预判条件;其中QM≡QP mod 6,QE≡QP/6,QP为量化参数且QP∈
,f值由视频编码器选择;(2)针对当前图像帧中的当前4×4块,找到前帧初始位置的参考4×4块,求取当前块和初始位置参考块之间的预测残差图像块对应的绝对误差和;(3)判断所述绝对误差和是否满足所述零块预判条件,如果是,将当前4×4块在当前图像帧中的位置信息记录在零块列表中;否则转至(4);
(4)针对该当前4×4块,在前帧完成运动搜索,找到前帧最优位置的参考4×4块,求取该当前块和最优位置参考块之间的预测残差图像块对应的绝对误差和(5)在对当前图像帧中的每个4×4块与前帧相应参考4×4块之间的预测残差图像块进行整数变换和量化过程中,分别判断每个4×4块的位置信息是否记录在所述零块列表中,对于位置信息记录在零块列表中的4×4块,对其与前帧相应参考块之间的预测残差图像块不进行整数变换和量化处理;对于位置信息未记录在零块列表中的4×4块,对其与前帧相应参考块之间的预测残差图像块进行整数变换和量化处理。
其中所述步骤(4)和(5)之间还包括步骤判断步骤(4)中所述绝对误差和是否满足所述零块预判条件,如果是,将该当前块在当前图像帧中的位置信息记录在零块列表中;否则不记录。
其中所述位置信息是指当前块在当前图像帧中的行、列坐标信息。
相应地,本发明提出的另一种零块预先判定方法,用于H.264压缩编码过程中零块预先判定处理,包括步骤(S1)确定预测残差图像块对应的绝对误差和SAD<(1-f)·217+QE/A(QM,0,0)]]>为零块预判条件;其中QM≡QPmod6,QE≡QP/6,QP为量化参数且QP∈
,f值由视频编码器选择;(S2)将当前图像帧在各种帧间预测模式下的当前块划分成4×4块;(S3)对于当前块划分出的每个4×4块,分别找到其在前帧初始位置的参考4×4块,分别求取每个4×4块和相应初始位置参考4×4块之间的预测残差图像块对应的绝对误差和;(S4)对于所述绝对误差和满足所述零块预判条件的4×4块,将其在当前图像帧中的位置信息记录在零块列表中,对于所述绝对误差和不满足所述零块预判条件的4×4块执行步骤(S5);(S5)针对绝对误差和不满足所述零块预判条件的每个4×4块,分别完成其在前帧的运动搜索,找到其在前帧最优位置的参考4×4块,分别求取每个4×4块和相应最优位置参考4×4块之间的预测残差图像块对应的绝对误差和;(S6)在对当前图像帧中的每个当前块与前帧相应参考块之间的预测残差图像块进行整数变换和量化过程中,判断当前块划分出的每个4×4块的位置信息是否都记录在零块列表中,如果是,对该当前块划分出的每个4×4块与前帧相应参考4×4块之间的预测残差图像块不进行整数变换和量化处理;否则对该当前块划分出的每个4×4块与前帧相应参考4×4块之间的预测残差图像块进行整数变换和量化处理。
其中所述步骤(S5)和(S6)之间还包括步骤对于步骤(S5)中绝对误差和满足所述零块预判条件的4×4块,将其在当前图像帧中的位置信息记录在零块列表中,对于绝对误差和不满足所述零块预判条件的4×4块不记录。
其中步骤(S2)中所述帧间预测模式包括Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4;所述步骤(S5)和(S6)之间还包括步骤判断帧间预测模式是否为Inter8×8,Inter4×8和Inter8×4,如果是,转至步骤(S6);否则分别对当前块划分出的每个4×4块与前帧相应参考块之间的预测残差图像块进行整数变换和量化处理。
本发明能够达到如下的有益效果1)本发明根据H.264标准中4×4整数变换的数学理论,推导确定的零块预判条件可以很好的适用于H.264标准中的4×4整数变换过程中的零块预先判定,其预判条件具有很好的判别精确度,能够较好的保证H.264视频图像的图像质量。
2)本发明根据确定的零块预判条件提出的零块预先判定方法可以适用于H.264标准中的任意帧间预测模式,只需将非Inter4×4预测模式下的单位图像块划分成4×4块进行处理,对于当前每个4×4块找到前帧初始位置的参考4×4块参考4×4块,计算当前块和初始块之间的预测残差图像块的绝对误差和SAD,在得到SAD满足预判条件的情况下,停止当前4×4块的运动搜索;在得到SAD不满足预判条件的情况下,继续当前4×4块的运动搜索,直至找到最优位置的参考块;对于SAD满足预判条件的4×4块,将其在当前帧中的位置信息记录在零块列表中,后续对于零块列表中记录的4×4块,对其与前帧相应参考块之间的预测残差图像块不进行整数变换和量化处理(对于非Inter4×4预测模式下的单位图像块划分出的所有4×4块的位置信息都要记录在零块列表中,才对当前块划分出的每个4×4块与前帧相应参考块之间的预测残差图像块不进行整数变换和量化处理),这样可以节省H.264标准中帧间预测模式选择和整数变换及量化的计算量,从而可以提高H.264标准中压缩编码的效率。


图1是本发明零块预判条件的确定方法的主要实现原理流程图;图2是本发明零块预先判定方法在Inter4×4帧间预测模式下的实现原理流程图;图3是本发明零块预先判定方法在Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4帧间预测模式下的实现原理流程图。
具体实施例方式
首先,本发明零块预判条件的确定方法提出一种可以适用于H.264标准4×4整数变换的零块预判条件,对于提出的这个零块预判条件要有如下要求简单实用,判决精确度要高,零块误判率要低;而对于误判存在两种情况一种是把本来应该是零块的图像块,未判成零块(即漏判),这种误判使得编码效率提高程度受到影响;另外一种是把本来不是零块的图像块,误判为零块,这种误判会导致图像质量明显下降,因此应该要求提出的零块预判条件能够最大限度的避免这两种误判情况的出现。
下面结合各个附图对本发明零块预判条件的确定方法的具体实施方式
进行详细阐述。
因为在H.263等基于块的视频图像编码标准中,通常使用接近最佳K-L(Kahunen-Loeve,一种统计变换)进行图像变换,对于一个随机矢量(图像块即是一种随机矢量),通过该K-L变换,便可以进行“白化”(“白化”就是使其自相关矩阵变成对角矩阵);对于任意图像块来说,利用K-L变换,可以获得其最佳的近似表示。但是在实际应用中,因为K-L变换计算比较复杂,因此通常用离散余弦变换(DCT)来代替K-L变换,并理论证明在一定条件下(一般图像都满足),DCT是K-L变换的最优近似。但是利用DCT方式进行图像变换,其变换矩阵元素有些却是无理数,如果采用浮点运算就会引起变换和反变换之间的误差。因此H.263标准要求DCT变换和反变换都要有足够的精确度,来保证解码图像的恢复精度,并同时DCT变换和反变换的运算量也都比较大。由此H.264标准提出采用4×4整数变换来对图像块进行变换。
其中,在H.264标准中,对于4×4整数变换的定义如下X4×4′=H·X4×4·HT=111121-1-21-1-111-22-1x(0,0)x(0,1)x(0,2)x(0,3)x(1,0)x(1,1)x(1,2)x(1,3)x(2,0)x(2,1)x(2,2)x(2,3)x(3,0)x(3,1)x(3,2)x(3,3)121111-1-21-1-121-21-1---(4)]]>上式中X4×4(变换前系数块)和X′4×4(变换后系数块)分别表示帧间预测残差值变换前和变换后的系数矩阵,H是H.264标准中的整数变换矩阵,HT是H的转置矩阵。从上式可以看出,H.264标准中的4×4整数变换运算过程中没有乘法,只有加法和移位运算,避免了正反变换过程中浮点运算的精度匹配问题,降低了解码器的运算复杂度。此外,H.264标准中的4×4整数变换有利于使用单指令多数据流(SIMD,Single Instruction Multiple Data)技术来对算法进行并行处理的优化。
同时为了避免量化过程中的除法运算,H.264标准使用下面的量化公式对整数变换后的变换系数进行量化
Xq(i,j)=sign{XT(i,j)}[(|XT(i,j)|A(QM,i,j)+f217+QE)>>(17+QE)]---(5)]]>上式中,QM≡QP mod 6,QE≡QP/6,QP为量化参数且QP∈
,函数sign(x)=-1,x<00,x=01,x>0]]>其中i和j分别表示4×4块中某个元素的行、列坐标,其中0≤i,j≤3;xT(i,j)和Xq(i,j)分别表示整数变换系数量化前和量化后的值;A(QM,i,j)是H.264标准给出的量化变化因子,它的取值依赖于变换系数的空间位置;而参数㈠勺取值由视频编码器来进行选择,f的典型取值是[O,0.5],其作用是在截断处理(截断处理就是通常所说的四舍五入)时保持量化精度。
其中A(QM,i,j)=M(QM,r) (6)上式(6)中r是i,j的函数,定义如下 M是一个6×3的矩阵,定义如下M=13107,5243,806611916,4660,749010082,4194,65549362,3647,58258192,3355,52437282,2893,4559---(8)]]>因此根据(i,j)的值计算量化变换因子A(QM,i,j)的过程是首先根据式(7)计算r,然后根据式(6)查询式(8),得到M矩阵的第QM行,第r列元素作为量化变换因子A(QM,i,j)的值。
上述已经介绍了H.264标准中的4×4整数变换的标准变换过程和量化过程。请继续参阅图1,该图是本发明零块预判条件的确定方法的主要实现原理流程图;其主要实现过程如下步骤S10,求取视频图像4×4块与前帧参考4×4块之间的预测残差图像块;步骤S20,求取上述预测残差图像块对应的绝对误差和SAD,SAD=Σn=03Σm=03|x(m,n)|,]]>其中x(m,n)表示位移估值搜索后帧间预测残差图像块的各个元素值;步骤S30,根据步骤S20中求取的预测残差图像块对应的SAD,利用前述整数变换理论表达式,求取步骤S10中得到的预测残差图像块整数变换后的直流系数值XT(0,0),XT(0,0)=Σn=03Σm=03x(m,n);]]>然后继续求取该直流系数值XT(0,0)的量化值为Xq(0,0)=sign{Σn=03Σm=03x(m,n)}[(|Σn=03Σm=03x(m,n)|A(QM,0,0)+f217+QE)>>(17+QE)]]]>步骤S40,根据H.264标准中的整数变换性质,在4×4整数变换系数中,其直流系数值XT(0,0)的绝对值最大,这里假定如果变换系数量化前的值XT(i,j)的直流系数值XT(0,0)为0,则XT(i,j)中所有的交流系数值也均为零,即整个图像块的变换系数值为全零,该块即为零块。因此依据此原理,只要保证一个预测残差图像块的变换系数中直流系数值的量化值为零,就可以满足整个图像块量化结果为零。由前述式(5)可知,直流系数值XT(0,0)的量化值为零的充分条件是|Σn=03Σm=03x(m,n)|<(1-f)·217+QE/A(QM,0,0)---(9)]]>又由于|Σn=03Σm=03x(m,n)|<Σn=03Σm=03|x(m,n)|,]]>因此可以得到直流系数值XT(0,0)的量化值为零的充分条件为Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)---(10)]]>不等式(10)中不等号右边的量其实是一个阈值,可以用一个符号TZB来表示,ZB表示零块(Zero Block),即TZB=(1-f)·217+QE/A(QM,0,0)]]>上述不等式之间替换放大,条件加强,即如果式(9)是直流系数值XT(0,0)的量化值为零的充分条件,则式(10)也是其充分条件。
根据上述叙述原理,这里即可以将上述式(10)的判决条件作为H.264标准中整数变换的零块预判条件。
利用上述已经推导确定的用于H.264标准中整数变换的零块预判条件Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,,0,0)]]>本发明进而又提出了相应的零块预先判定方法,该方法针对于H.264标准中复杂的帧间预测模式选择过程,利用上述确定的零块预判条件,将零块判决处理环节提前(即不是仅在帧间预测都处理完成后,并在变换处理之前进行零块判决,而是要将零块判决过程提前到帧间预测模式选择过程当中去),这样就可以节省帧间预测模式选择过程的计算量,进一步提高H.264标准的压缩编码效率。
下面再结合各个附图对本发明零块预先判定方法的具体实施过程进行详细的阐述。
通过上述过程的推导,确定了在H.264标准中的零块预判条件为Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0),]]>可以看出,该不等式的左边项即为4×4预测残差图像块的绝对误差和SAD值。因此,对于H.264标准中的Inter4×4帧间预测模式,只需要计算4×4预测残差图像块的SAD,就可以进行零块预先判决了。在Inter4×4运动预测中,当前帧的当前4×4块首先从前帧对应位置的4×4参考块开始进行运动搜索,该位置叫做初始位置。如果在初始位置,当前4×4块和前帧初始位置的4×4参考块之间的预测残差图像块的SAD已经符合上述零块预判条件,那么即使初始位置的参考块不是运动预测的最优位置,也没有关系,因为相对于前帧最优位置的参考块,其SAD比相对于初始位置的参考块的SAD更小,所以如果相对于初始位置的参考块的SAD能够满足零块预判条件,则最优位置的参考块的SAD也一定满足零块预判条件,于是就可以确定当前4×4块相对于前帧最优位置的参考块之间的预测残差图像块量化后为全零块,而相对于前帧初始位置的参考块之间的预测残差图像块量化后也为全零块。既然相对于初始位置和最优位置都是全零块,对于压缩编码结果都无影响,因此就可以直接用前帧初始位置的4×4参考块来作为零块预判的基础,而不必一定要找到前帧最优位置的参考块。因此,只要相对于前帧初始位置的参考块计算出的SAD满足零块预判条件,就可以结束对当前4×4块的运动搜索了,不必要搜索到前帧最优位置的参考块,由此可以简化H.264标准的运动搜索过程。
请参阅图2,该图是本发明零块预先判定方法在Inter4×4帧间预测模式下的实现原理流程图;其主要实现过程如下步骤S100,按照上述过程确定预测残差图像块对应的绝对误差和SAD=Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)=TZB]]>为H.264整数变换过程中的零块预判条件;式中QM≡QPmod6,QE≡QP/6,QP为量化参数且QP∈
,f值由视频编码器选择,其他参数的确定参照上述描述;步骤S110,在Inter4×4帧间预测模式下,针对当前图像帧中的当前4×4块,找到前帧初始位置的参考4×4块;步骤S120,求取当前块和初始位置参考块之间的预测残差图像块对应的SAD0,0;步骤S130,判断步骤S120求得的SAD0,0是否满足零块预判条件SAD<TZB,如果是,执行步骤S140;否则执行步骤S150;
步骤S140,终止当前4×4块的运动搜索过程,将当前4×4块在当前图像帧中的位置信息记录在零块列表Lx,y中,其中x、y表示在当前帧中4×4块位置的行、列坐标,然后执行步骤S180;步骤S150,针对该当前4×4块,继续完成其在前帧的运动搜索过程,找到前帧最优位置的参考4×4块;步骤S160,求取该当前4×4块和最优位置参考块之间的预测残差图像块对应的SAD;步骤S170,判断步骤S160中求得的SAD是否满足所述零块预判条件SAD<TZB,如果是,转至执行步骤S140;否则不进行记录,继续执行步骤S180;步骤S180,在对当前图像帧中的每个4×4块与其前帧相应参考块之间的预测残差图像块进行整数变换和量化过程中,分别判断每个4×4块的位置信息是否记录在上述的零块列表Lx,y中,处理过程是对于位置信息记录在零块列表Lx,y中的4×4块,对其与前帧相应参考块之间的预测残差图像块不进行整数变换和量化处理,直接对该4×4块取全零值;对于位置信息未记录在零块列表Lx,y中的4×4块,对其与前帧相应参考块之间的预测残差图像块要进行整数变换和量化处理。
上述本发明零块预先判定方法针对H.264中的Inter4×4帧间预测模式下的零块预先判决算法可以大大减少4×4块运动搜索时SAD的计算次数,同时还减少了整数变换和量化的运算量,且对Inter4×4帧间预测模式的编码性能基本没有任何影响。
由于H.264标准支持不同大小和形状的编码块,因此可选的帧间预测模式除Inter 4×4帧间预测模式外,还包括以下帧间预测模式Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4。但是这些帧间预测模式的预测过程和Inter4×4帧间预测模式的预测过程是类似的,都存在前帧从一个初始位置出发进行搜索的过程,因此如果能够在初始位置上进行零块预先判决,都可以根据判决结果决定是否终止对当前块的搜索过程。由此,可以借助于上述Inter4×4帧间预测模式下的零块预先判定方法,把其他帧间预测模式下的大于4×4的块,分割成多个4×4块,然后对其中的每个4×4块,分别应用上述零块预判条件SAD=Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)=TZB]]>来进行判决。
请参阅图3,该图是本发明零块预先判定方法在Interl6×16、Interl6×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4帧间预测模式下的实现原理流程图;其主要实现过程如下步骤S200,确定预测残差图像块对应的绝对误差和SAD=Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0)=TZB]]>为H.264整数变换过程中的零块预判条件;式中QM≡QPmod6,QE≡QP/6,QP为量化参数且QP∈[O,51],f值由视频编码器选择,其他参数的确定参照上述描述;步骤S210,在上述非Inter4×4帧间预测模式下,将当前图像帧在各种帧间预测模式下的当前块一律划分成多个4×4块,这样就可以对不同帧间预测模式下的每个4×4块使用上述零块预判条件进行预先零判决;步骤S220,对于当前块划分出的每个4×4块,分别找到其在前帧初始位置的参考4×4块;步骤S230,分别求取每个4×4块和相应初始位置参考4×4块之间的预测残差图像块对应的SAD0,0;步骤S240,判断步骤S230中所求得的SAD0,0是否满足上述零块预判条件SAD<TZB,对于满足条件的4×4块执行步骤S250;对于不满足条件的4×4块执行步骤S260;步骤S250,对于满足条件的4×4块,将其在当前图像帧中的位置信息记录在零块列表Lx,y中,其中x、y表示在当前帧中4×4块位置的行、列坐标,然后执行步骤S290;步骤S260,针对SAD0,0不满足上述零块预判条件SAD<TZB的每个4×4块,分别完成其在前帧的运动搜索过程,以找到其在前帧最优位置的参考4×4块;步骤S270,分别求取每个4×4块和相应最优位置参考4×4块之间的预测残差图像块对应的SAD;步骤S280,判断步骤S270中所求得的SAD是否满足零块预判条件SAD<TZB,对于满足零块预判条件的4×4块,转至执行步骤S250;对于不满足零块预判条件的4×4块不进行记录,直接执行步骤S290;步骤S290,在对当前图像帧中的每个当前块与前帧相应参考块之间的预测残差图像块进行整数变换和量化过程中,判断当前块划分出的每个4×4块的位置信息是否都记录在零块列表Lx,y中,如果是,执行步骤S300;否则执行步骤S310;步骤S300,终止对当前块的运动搜索过程,对该当前块划分出的每个4×4块与其前帧相应参考块之间的预测残差图像块不再进行整数变换和量化处理,直接取为全零值;例如在Inter16×8帧间预测模式下,如果在该模式下每个当前16×8块划分出的8个4×4块均满足上述零块预判条件,则可以提前终止当前16×8块的运动搜索过程,即可以直接判决该16×8块为全零块。
步骤S310,对该当前块划分出的每个4×4块与其前帧相应参考块之间的预测残差图像块进行整数变换和量化处理。
这里,为了更近一步确保H.264图像的编码质量,在步骤S280和S290之间还要判断当前的帧间预测模式是否是Inter8×8,Inter4×8和Inter8×4,如果是,才执行步骤S290;否则还要分别对当前块划分出的每个4×4块与其前帧相应参考块之间的预测残差图像块进行整数变换和量化处理。
为了验证本发明方案的技术效果,下面使用三个典型的标准视频图像序列“foreman”(运动程度剧烈)、“news”(中等程度运动)、“claire”(运动程度较小)共300个图像帧进行测试,图像格式统一采用QCIF(Quarter CommonInterchange Format),Y∶U∶V是4∶2∶0;实验平台是Pentium IV、主频为2GHz的计算机,其中参数f的取值选为0.79。
下表1给出了在Inter4×4帧间预测模式下,使用不同的量化参数QP时,零块预先判定方法的实验结果。从该表可以看出,随着QP的增大,使用本发明方法后,全零4×4块最多可占80%以上,当然全零块所占比例还是与图像序列的内容和QP的取值相关的。另外采用本发明方案后,零块误判率非常低,这样对H.264标准的编码性能基本是没有影响的。
表1不同图像序列在Inter4×4帧间预测模式下的全零块所占百分比

由表1可见,图像运动程度越剧烈,全零块所占比例越小(因为帧间预测的全零残差图像块代表前后帧对应块之间的变化非常小,这说明图像运动程度不大)。在视频图像中,除了动作电影视频外,其他视频图像运动量都是中等,甚至是偏低的,但即使是动作电影视频,其中真正大运动量的镜头也只是其中的一部分,而如一般的多媒体视频图像,如视频会议等,都是运动量比较低的视频图像。也就是说,对于一般的视频应用,视频图像序列中都有比较多的全零块存在。
下表2给出了将本发明零块预先判定方法应用于H.264标准的所有帧间预测模式的实验结果,该表比较了不使用零块预先判定和使用本发明零块预先判定方法后的编码性能,压缩效率和编码速度。
表2采用本发明方法后编码速度的提高效果


从表2可以看出,对于所有的帧间预测模式采用本发明方法后,与采用本发明方法前相比,编码速度最多可提高58.4%;另外,解码恢复图像的平均PSNR下降不到0.1dB,即从保持图像质量来说,几乎没有降低,而编码比特数还会略有减少(即压缩编码效率会略有提高)。
由此可见,采用本发明方法后,将使得H.264标准在实现过程中,编码速度会有比较大的提高,这将能够降低多媒体通信产品的成本,且提高多媒体通信产品的性能,从而提高了多媒体通信产品的市场竞争力。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种零块预判条件的确定方法,用于H.264压缩编码过程中零块预判条件的确定,其特征在于,包括步骤A.求取视频图像4×4块与前帧参考4×4块之间的预测残差图像块;B.求取所述预测残差图像块对应的绝对误差和;C.根据所述绝对误差和,利用整数变换理论表达式,求取所述预测残差图像块整数变换后的直流系数值的量化值;D.求取使所述直流系数值的量化值为零的充分条件作为零块预判决条件。
2.根据权利要求1所述的零块预判条件的确定方法,其特征在于,步骤B中所述绝对误差和为 所述x(m,n)表示位移估值搜索后帧间预测残差图像块的各个元素值;步骤C中根据如下公式对所述预测残差图像块进行整数变换X4×4′=H·X4×4·HT=111121-1-21-1-111-22-1x(0,0)x(0,1)x(0,2)x(0,3)x(1,0)x(1,1)x(1,2)x(1,3)x(2,0)x(2,1)x(2,2)x(2,3)x(3,0)x(3,1)x(3,2)x(3,3)121111-1-21-1-121-21-1]]>式中X4×4为整数变换前的4×4块,X4×4′为整数变换后的4×4块,H是H.264整数变换矩阵,HT是H的转置矩阵;步骤C中所述预测残差图像块整数变换后的直流系数值为 该直流系数值的量化值为xq(0,0)=sign{Σn=03Σm=03x(m,n)}[(|Σn=03Σm=03x(m,n)|A(QM,0,0)+f217+QE)>>(17+QE)]]]>式中xq(0,0)表示直流系数值的量化值,QM≡QP mod 6,QE≡QP/6,QP为量化参数且QP∈
;函数sign(x)=-1,x<00,x=01,x>0;]]>f值由视频编码器选择;步骤D中使所述直流系数值的量化值为零的充分条件是|Σn=03Σm=03x(m,n)|<Σn=03Σm=03|x(m,n)|<(1-f)·217+QE/A(QM,0,0).]]>
3.根据权利要求2所述的零块预判条件的确定方法,其特征在于,所述A(QM,0,0)值由下列过程确定A(QM,i,j)=M(QM,r),其中i和j分别表示4×4块中元素的行、列坐标,其中0≤i,j≤3;r为i,j的函数 M为矩阵M=13107,5243,806611916,4660,749010082,4194,65549362,3647,58528192,3355,52437282,2893,4559;]]>由于A(QM,0,0)中(i,j)为(0,0),得到r=0,查询M矩阵中第QM行,第0列元素作为A(QM,0,0)的值。
4.一种零块预先判定方法,用于H.264压缩编码过程中零块预先判定处理,其特征在于,包括步骤(1)确定预测残差图像块对应的绝对误差和SAD<(1-f)·217+QE/A(QM,0,0)为零块预判条件;其中QM≡QP mod 6,QE≡QP/6,QP为量化参数且QP∈
,f值由视频编码器选择;(2)针对当前图像帧中的当前4×4块,找到前帧初始位置的参考4×4块,求取当前块和初始位置参考块之间的预测残差图像块对应的绝对误差和;(3)判断所述绝对误差和是否满足所述零块预判条件,如果是,将当前4×4块在当前图像帧中的位置信息记录在零块列表中;否则转至(4);(4)针对该当前4×4块,在前帧完成运动搜索,找到前帧最优位置的参考4×4块,求取该当前块和最优位置参考块之间的预测残差图像块对应的绝对误差和;(5)在对当前图像帧中的每个4×4块与前帧相应参考4x4块之间的预测残差图像块进行整数变换和量化过程中,分别判断每个4×4块的位置信息是否记录在所述零块列表中,对于位置信息记录在零块列表中的4×4块,对其与前帧相应参考块之间的预测残差图像块不进行整数变换和量化处理;对于位置信息未记录在零块列表中的4×4块,对其与前帧相应参考块之间的预测残差图像块进行整数变换和量化处理。
5.根据权利要求4所述的零块预先判定方法,其特征在于,所述步骤(4)和(5)之间还包括步骤判断步骤(4)中所述绝对误差和是否满足所述零块预判条件,如果是,将该当前块在当前图像帧中的位置信息记录在零块列表中;否则不记录。
6.根据权利要求4或5所述的零块预先判定方法,其特征在于,步骤(1)中零块预判条件的建立过程包括步骤(11)求取视频图像4×4块与前帧参考4×4块之间的预测残差图像块;(12)求取所述预测残差图像块对应的绝对误差和;(13)根据所述绝对误差和,利用整数变换理论表达式,求取所述预测残差图像块整数变换后的直流系数值的量化值;(14)求取使所述直流系数值的量化值为零的充分条件作为零块预判决条件。
7.根据权利要求4或5所述的零块预先判定方法,其特征在于,所述位置信息是指当前块在当前图像帧中的行、列坐标信息。
8.一种零块预先判定方法,用于H.264压缩编码过程中零块预先判定处理,其特征在于,包括步骤(S1)确定预测残差图像块对应的绝对误差和SAD<(1-f)·217+QE/A(QM,0,0)为零块预判条件;其中QM≡QP mod 6,QE≡QP/6,QP为量化参数且QP∈
,f值由视频编码器选择;(S2)将当前图像帧在各种帧间预测模式下的当前块划分成4×4块;(S3)对于当前块划分出的每个4×4块,分别找到其在前帧初始位置的参考4×4块,分别求取每个4×4块和相应初始位置参考4×4块之间的预测残差图像块对应的绝对误差和;(S4)对于所述绝对误差和满足所述零块预判条件的4×4块,将其在当前图像帧中的位置信息记录在零块列表中,对于所述绝对误差和不满足所述零块预判条件的4×4块执行步骤(S5);(S5)针对绝对误差和不满足所述零块预判条件的每个4×4块,分别完成其在前帧的运动搜索,找到其在前帧最优位置的参考4×4块,分别求取每个4×4块和相应最优位置参考4×4块之间的预测残差图像块对应的绝对误差和;(S6)在对当前图像帧中的每个当前块与前帧相应参考块之间的预测残差图像块进行整数变换和量化过程中,判断当前块划分出的每个4×4块的位置信息是否都记录在零块列表中,如果是,对该当前块划分出的每个4×4块与前帧相应参考4×4块之间的预测残差图像块不进行整数变换和量化处理;否则对该当前块划分出的每个4×4块与前帧相应参考4×4块之间的预测残差图像块进行整数变换和量化处理。
9.根据权利要求8所述的零块预先判定方法,其特征在于,所述步骤(S5)和(S6)之间还包括步骤对于步骤(S5)中绝对误差和满足所述零块预判条件的4×4块,将其在当前图像帧中的位置信息记录在零块列表中,对于绝对误差和不满足所述零块预判条件的4×4块不记录。
10.根据权利要求8或9所述的零块预先判定方法,其特征在于,步骤(S1)中零块预判条件的建立过程包括(S11)求取视频图像4×4块与前帧参考4×4块之间的预测残差图像块;(S12)求取所述预测残差图像块对应的绝对误差和;(S13)根据所述绝对误差和,利用整数变换理论表达式,求取所述预测残差图像块整数变换后的直流系数值的量化值;(S14)求取使所述直流系数值的量化值为零的充分条件作为零块预判决条件。
11.根据权利要求8或9所述的零块预先判定方法,其特征在于,所述位置信息是指4×4块在当前图像帧中的行、列坐标信息。
12.根据权利要求8或9所述的零块预先判定方法,其特征在于,步骤(S2)中所述帧间预测模式包括Inter16×16、Inter16×8、Inter8×16、Inter8×8,Inter4×8和Inter8×4;所述步骤(S5)和(S6)之间还包括步骤判断帧间预测模式是否为Inter8×8,Inter4×8和Inter8×4,如果是,转至步骤(S6);否则分别对当前块划分出的每个4×4块与前帧相应参考块之间的预测残差图像块进行整数变换和量化处理。
全文摘要
本发明提出了一种零块预判条件的确定方法,包括求取视频图像4×4块与前帧参考4×4块之间的预测残差图像块;求取所述预测残差图像块对应的绝对误差和;根据所述绝对误差和,利用整数变换理论表达式,求取所述预测残差图像块整数变换后的直流系数值的量化值;求取使所述直流系数值的量化值为零的充分条件作为零块预判决条件。相应地,本发明还提出了一种零块预先判定方法。本发明适于H.264标准压缩编码过程中的零块预先判定处理,提高H.264标准中的压缩编码效率。
文档编号H04N7/32GK1770863SQ200410086869
公开日2006年5月10日 申请日期2004年11月2日 优先权日2004年11月2日
发明者罗忠, 宋彬, 常义林, 周宁兆 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1