专利名称:用于确定视频编码中跳跃模式的阈值的方法和装置的制作方法
技术领域:
本发明涉及用于对图像进行编码的一种方法和一种装置。具体地,所述方法和装置使确定是否使用跳跃模式对宏块进行编码变得容易。
背景技术:
已经针对例如VCD、DVD和视频会议的各种媒体产品开发出多种多媒体技术。多媒体标准是这些产品的核心技术。例如MPEG和H.26x的国际标准在实际应用中扮演了非常重要的角色。
视频压缩的目标是减小时间和空间维度的冗余。为了这个目的,已知标准通常使用混合编码。例如,运动估计(ME)减小了时间冗余,而空间预测、离散余弦转换(DCT)、量化和熵编码减小了空间冗余。
通常把视频序列中的帧分为多个16×16的宏块(MB)。对于MPEG-4部分10/AVC,可以把宏块进一步分为16×8、8×16、8×8、4×8、8×4和4×4的像素块。例如ME、DCT、量化和熵编码的多种算法应用于这些MB或块。在一些情况下,一些MB或块的残值非常小,从而能够在量化期间把它们全部量化为0。在编码期间,可以跳过这些MB。在减小编译码复杂性和数据速率时,MB或块的跳跃扮演了关键角色。问题是怎样尽可能有效地找到这些MB。
为了识别能够跳过的MB,一种已知的方法是计算来自MB的参数,并把这个参数与预定的阈值进行比较。然而,已知的用于确定该阈值的方法通过把量化与DCT相结合仅缩短了DCT领域的计算时间。这个步骤在ME之后完成。
发明内容
由于已知的算法把量化和DCT结合在一起而识别能够跳过的MB,所以这些算法仅缩短了针对DCT和量化的计算,但是没有缩短针对ME的计算。为了进一步减小计算复杂度,改进阈值预确定是有利的。这一点可以通过查找在ME之前能够应用的阈值而完成。但由于量化噪声,难以找到适于ME的良好阈值。
由于本发明把ME、DCT和量化结合到了一起,所以它不同于传统的用于确定跳跃MB或块的算法。因此,本发明不仅获得了传统算法的效果,而且还缩短了ME所用的时间,这是用于减小计算复杂度的非常有效的方法。另外,本发明增加了修改后的阈值以校正出错的预确定,以满足不同的品质要求。
本发明的一方面是以统计的方式分析量化误差的分布,然后产生并使用针对视频序列不同属性的不同阈值。有利地,这可以较早地(即进行更少的工作)确定能否跳过对MB的编码(包括运动估计、DCT和量化)的已知方法。
主要的思想是获得不同的值,优选地为绝对差之和(SAD)的值,它可以用作用于在MB级别上确定是否需要ME的阈值。然后,针对图像中每一个MB计算实际的SAD值(与先前的图像相比),如果实际的SAD值小于阈值,那么假定运动为0且可以跳过运动估计。此外,也可以跳过针对这个MB的DCT和量化。通常,仅考虑亮度MB(16×16像素)是足够的。
本发明使用原始的和重建版本的相同图像以收集统计信息,以确定用于决定是否跳过MB编码和发送的阈值。原始的和重建版本的图像在以下方面有所不同,即重建图像具有量化噪声失真。
根据本发明,可以通过如下所述的统计方法而获得阈值。
根据本发明一方面,一种用于确定阈值的方法,用于决定是否可以跳过视频编码中宏块级别上的运动估计、DCT和量化,所述方法包括步骤确定量化参数;在宏块级别上对图像进行量化和反量化,其中使用所述确定的量化参数,并获得重建图像;
计算图像与重建图像之间的差;计算当前图像与重建图像之间的差的平均值和标准差;使用所述平均值和标准差来计算阈值,以确定统计置信区间;以及存储与所述量化参数有关的阈值。
所述方法可以被进一步规定为根据SADThreshold,QP=mSAD+3σSAD来确定统计置信区间。
所述方法可以被进一步规定为根据mSAD=n*m0和σSAD=n*σ0而从图像宏块的平均值(m0)和标准差(σ0)来计算图像的平均值和标准差,其中n是每幅图像的宏块数。根据大数定律和中心极限原理,可以把m0当作宏块中所有像素的平均值。
所述方法可以被进一步规定为所述阈值对于亮度宏块有效,其中通过根据SADThreshold,QP,chrominance=c*SADThreshold,QP,luminance与常数因数进行相乘而计算色度宏块的阈值。
所述方法可以被进一步规定为所述常数因数实际上为0.7(或70%)。
所述方法可以被进一步规定为分开的阈值表用于序列中的不同运动数量,例如低运动、中等运动和高运动序列。
所述方法可以被进一步规定为选择的阈值表对于图像组(GOP)有效,并且为每一个GOP选择新的表。
根据本发明一方面,一种用于在宏块级别上对图像进行编码的方法,其中使用利用定义的量化参数的量化,所述方法包括步骤确定不同量化参数的各个阈值,其中通过对参考图像和重建图像之间的差进行统计分析而获得阈值;通过把当前图像的每一个宏块与先前图像中相应的宏块进行比较,为当前图像的每一个宏块计算差值;确定使用的量化参数;把所述差值与和所述确定的量化参数相对应的阈值进行比较,如果所述差值小于针对于所述确定的量化参数的阈值,那么跳过至少是宏块的运动估计/补偿。
根据本发明一方面,一种用于确定阈值的装置,用于决定是否可以跳过视频编码中宏块级别上的运动估计、DCT和量化,所述装置包括用于确定量化参数的设备;用于在宏块级别上对图像进行量化和反量化的设备,其中使用所述确定的量化参数,并获得重建图像;用于计算图像与重建图像之间的差的设备;用于计算当前图像与重建图像之间的差的平均值和标准差的设备;用于计算阈值的设备,使用所述平均值和标准差来计算阈值以确定统计置信区间;以及用于存储阈值的设备,所述阈值与所述量化参数有关,并可选择地还与运动数量(低/中等/高)的指示有关。
根据本发明的一方面,一种用于在宏块级别上对图像进行编码的装置,其中使用利用定义的量化参数的量化,所述装置包括用于确定不同量化参数的各个阈值的设备,其中通过对参考图像和重建图像之间的差进行统计分析而获得阈值;用于计算差值的设备,通过把当前图像的每一个宏块与先前图像中相应的宏块进行比较,为当前图像的每一个宏块计算差值;用于确定使用量化参数的设备;用于比较的设备,把所述差值与和所述确定的量化参数相对应的阈值进行比较;以及用于跳过所述宏块的运动估计(和编码)的设备,如果所述差值小于针对于所述确定的量化参数的阈值,那么跳过运动估计。跳过编码意味着可以产生并发送针对“跳过MB”的指示,而不需要执行运动补偿、DCT和量化。
本发明利用了中心极限原理,该原理声明受到多个较小且无关的随机效应影响的数据接近于正态分布。这个思想应用于量化误差。
在本发明的一个实施例中,执行下列步骤以获得阈值选择量化参数(QP);
把重建图像的MB(即经过量化的和反量化的)与原始图像的同一MB(不具有运动)进行比较;从MB的256个像素差中计算平均值(m0)和标准差(σ0);通过把每一个像素与原始图像中同一MB(不具有运动)的相应像素进行比较并把这些差相加,以计算MB的SAD(如果MB具有16×16像素,则对256个值求和);在MB级别上对图像的所有SAD计算平均值(mSAD)和标准差(σSAD)(通过把所有MB的m0和σ0相加而完成);以及针对不同的量化参数(QP)而重复先前所有步骤;mSAD和σSAD取决于所使用的QP而不同。
所获得的mSAD和σSAD的值可以用于调整阈值,从而取决于使用的QP而适应性地确定跳跃MB如果特殊的QP满足等式SADThreshold<mSAD+3σSAD,则可以跳过ME、DCT和量化。
因此,可以把获得的阈值(或mSAD和σSAD)和各个QP存储在表中,该表可以用于搜索针对给定的QP的阈值。
有利地,所获得的阈值可以用于来自多个图像的MB,例如GOP(图像组)中的图像。
本发明的一方面是怎样根据SAD而确定跳跃界限,即通过使用阈值和QP之间的非线性关系,并根据所使用的QP适应性地调整阈值。
从属权利要求、下文描述和附图中公开了本发明的有利实施例。
参考附图对本发明的典型实施例进行描述,其中图1示出了把具有不同量化参数的各种重建图像与参考图像进行比较;图2示出了当前帧与原始参考帧的余数(residue);图3示出了原始参考帧与重建参考帧的余数;图4示出了当前帧与重建参考帧的余数;以及图5示出了当前帧与重建参考帧的绝对余数;图6示出了根据本发明的用于确定阈值的流程图。
具体实施例方式
图1示出了一般的处理,其中使用不同的量化参数对各个当前图像fx,cur、fx+1,cur进行量化/反量化,获得了重建图像fx,rec、fx+1,rec并与参考图像fref进行比较。参考图像与当前图像之间的差是ξ1、ξ2,当前图像与重建图像之间的差是λ1、λ2,重建图像与参考图像之间的差是η1、η2。
首先给出对运动估计(ME)的分析。ME的目的是去除时间冗余。为了加快计算,绝对差之和(SAD)取代了平均绝对差(MAD)。本发明使用SAD的属性来减小计算量。
接下来给出对SAD阈值的分析。由于量化噪声,难以在ME中精确地找出最佳SAD。假定fcur(i,j)为当前帧、fref(i,j)为原始参考帧且frec(i,j)为重建参考帧(其中i、j是图像内的像素索引),定义ξij=fcur(i,j)-fref (i,j)且ηij=fref(i,j)-frec(i,j),并假定帧序列中(几乎)不存在运动(与光流原理的定义非常类似),ξ应当接近0(没有考虑对边界进行填充)。根据DCT和反DCT(IDCT)的定义,建立下式fref(x,y)=Σu=0M-1Σv=0N-1Cref(u,v)cos(2x+12Muπ)cos(2y+12Nvπ)]]>(等式1)frec(x,y)=Σu=0M-1Σv=0N-1Crec(u,v)cos(2x+12Muπ)cos(2y+12Nvπ)]]>(等式2)所以可以把η写为η(x,y)=Σu=0M-1Σv=0N-1(Cref(u,v)-Crec(u,v))cos(2x+12Muπ)cos(2y+12Nvπ)]]>(等式3)令e(u,v)=Cref(u,v)-Crec(u,v)。根据MPEG-4量化的属性,e(u,v)的分布是在间隔
上具有恒定概率密度的均匀分布,其中Q是量化参数。
η(x,y)是随机变量,m是该变量的平均值,且σ是该变量的标准差。假定λ=ξ+η作为随机变量之和,那么ξ理想上应当接近于0,即ξ=0。根据SAD(绝对差之和)的定义,发光宏块的SAD为
SAD=Σx=015Σy=015|λ(x,y)|]]>假定m0和σ0分别是|λ|的平均值和标准差,其中|λ|是重建参考帧与原始帧之间的差。因此,可以假定不同|λ|中的分布是统计无关的。
中心极限原理声明,受到多个较小且无关的随机效应影响的数据接近于正态分布,或如果变量之和具有确定的变化,则变量可以接近于正态分布。由于许多真实的处理产生了具有确定变化的分布,因而正态分布是普遍存在的。
由于中心极限原理声明了独立随机变量的采样平均值应当遵从正态分布,所以SAD应当遵从[256m0,16σ0]正态分布,平均值为256m0且标准差为16σ0。
mSAD=256m0σSAD=16σ0(等式4)其中mSAD和σSAD分别为SAD的平均值和标准差。
对于不同的量化参数,平均值256m0和标准差16σ0是不同的。
因此,能够使用数学统计中所谓的“置信区间”[mSAD-3σSAD,mSAD+3σSAD]>99% (等式5)这意味着MB中至少99%的SAD值处于置信区间[mSAD±3σSAD]内。根据这个属性,把阈值设定为SADThreshold=mSAD+3σSAD(等式6)其中mSAD和3σSAD来自等式4。
还能够针对帧中的每一个MB仅收集m0和σ0,并对它们求和以获得它们的平均值。另外,为了简化算法复杂度,以下做法足以满足要求仅收集与量化参数有关的阈值SADThreshold的信息,并把每一个SAD与SADThreshold进行比较而不是把每一个SAD与mSAD+3σSAD进行比较。可以预先产生与QP相对应的SADThreshold。作为本发明的一个实施例,可以使用与不同的QP相对应的不同的SADThreshold来建立表。可以在实验中观察若干(例如300)帧的统计属性,以预先获得SADThreshold表,这能够简化针对具有SADThreshold的特殊MB的SADMB的比较。
在一个实施例中,不需要针对每一个帧而执行上述步骤;可以针对GOP把上述步骤执行一次,特别是在能够假定所有的帧具有相同属性的情况下。另外,(至少)对于MPEG-4部分2来说,不仅能够跳过运动估计,而且还能跳过DCT和量化。
根据间隔估计原理和正态分布的属性,当来自原始帧和重建参考帧的两个发光MB分别精确地匹配时(即两个发光MB之间不存在运动),那么至少99%的SAD值处于等式5给出的置信区间[mSAD-3σSAD,mSAD+3σSAD]内。
实际中,绝对余数|fcur-frec|能够用于计算SAD。因此可以得出如果SAD小于等式6给出的阈值,那么两个发光MB精确匹配(即不需要运动估计)。
利用上文的定义,具有300帧且分辨率为352×288像素的标准低运动序列(“hall monitor”)用作典型序列,该典型序列用于估计结束SAD的阈值;把量化参数Q设置为4。
首先,计算当前帧fcur与原始参考帧fref之间的余数(fcur-fref)。对于总共300个帧来说,余数(fcur-fref)的最大平均值为0.0162且最大标准差为3.0494。图2示出了余数(fcur-fref)的分布。
其次,计算原始参考帧fref与重建参考帧frec之间的余数(fref-frec)。对于总共300个帧来说,余数(fref-frec)的最大平均值为-0.054且最大标准差为2.2735。图3示出了余数(fref-frec)的分布。
再次,计算当前帧fcur与重建参考帧frec之间的余数(fcur-frec)。对于总共300个帧来说,余数(fcur-frec)的最大平均值为-0.0378且最大标准差为3.2732。图4示出了余数(fcur-frec)的分布。
最后,计算当前帧fcur与重建参考帧frec之间的绝对余数|fcur-frec|。对于所有的帧来说,绝对余数|fcur-frec|的最大平均值为2.3192且最大标准差为2.3078。图5示出了绝对余数|fcur-frec|的分布。
根据等式4,当量化参数为4时,mSAD为593.7152且σSAD为36.9392。
对于MPEG-4编译码,表1中示出了针对低运动序列的不同SAD阈值,其中量化参数在1至32之间变化。可以导出针对不同序列的不同SAD阈值。针对不同的应用,例如低运动和高运动,可以找出映射到不同QP的不同阈值表。根据这些表,能够确定当前MB是否是跳跃MB。对于跳跃MB,可以终止当前ME并跳过运动补偿、DCT和量化。
下面的实施例描述了怎样对色度SAD的阈值进行校正。
在少数条件下,保真度恶化是可见的,而且表明其自身会随着色度而变化,然而亮度中不会出现失真。这是因为仅根据亮度值而预测跳跃块,而亮度值对于色度块来说可能是不精确的指示符。在本发明的一个实施例中,还可以针对色度而校正SAD的阈值。在这种情况下,首先计算色度的SAD,然后(原则上)使用上述方法以获得色度SAD的阈值。
还可以从亮度SAD的阈值中演绎出色度SAD的阈值。通常,可以使用因数0.7(这个值可以变化,例如增大或减小10%)。因此,把亮度SAD的阈值与0.7相乘,得到的结果是色度SAD的阈值。
典型地,对若干视频序列进行测试,其中这些视频序列在MPEG-4主简档处(没有B帧)具有从低运动至高运动而变化的属性。CPU频率为1.8GHz且存储器大小为256Mb。对分别具有低运动、中等运动和高运动的3个序列单独进行测试。把峰值信号噪声比(PSNR)和编码速度与传统编码进行比较。表4-5示出了针对PSNR的结果,表6-7示出了针对编码速度(每秒帧个数)的结果,其中不使用SAD阈值而对第一列进行测试,但是使用根据上述方法获得的表1-3的SAD阈值对第二列进行测试。
表1典型地,表1示出了针对可能的不同量化参数QP(QP的含义是索引)0至31而得到的低运动序列(“学生”)的亮度SAD阈值。
表2典型地,表2示出了针对可能的不同量化参数0至31而得到的中等运动序列(“工头”)的亮度SAD阈值。
表3典型地,表3示出了针对可能的不同量化参数0至31而得到的高运动序列(“足球”)的亮度SAD阈值。
表4表4示出了利用C工F分辨率的PSNR使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
表5
表5示出了利用D1分辨率的PSNR使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
表6表6示出了利用CIF分辨率的编码速度,使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
表7表7示出了利用D1分辨率的编码速度,使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
可以在对序列中的场景进行编码后产生这三个表1-3(在这里,场景的含义是具有相同属性的连续的帧序列;实际中,GOP可以用作场景)。在实际应用中,不需要对序列中的运动进行估计;可以通过先前“场景”的信息而获得表。但是在序列的开始部分,中等运动表通常可以用作阈值。它仅用于GOP距离,然后可以确定当前序列的活动性。
如示例中所示,本发明的有利效果是与不使用阈值相比,当使用阈值时PSNR通常更高,而且使用阈值的编码速度比不使用阈值的编码速度要快。这一点对于低运动序列来说尤其明显。
本发明的一个优点是缩短了计算时间,例如缩短了针对完整的MPEG-4/部分2结构的计算时间。
本发明的另一个优点是改进了客观和主观品质,尤其是针对低运动序列。
本发明可以应用于视频编解码,尤其是MPEG-4部分2的编译码,但是本发明也可以应用于MPEG-4/AVC编译码及其它。
权利要求
1.一种用于确定阈值的方法,用于决定在视频编码中是否可以跳过宏块级别上的运动估计、DCT和量化,所述方法包括步骤-确定量化参数;-在宏块级别上对图像(fx,cur)进行量化和反量化(λ1),其中使用所述确定的量化参数,并获得重建图像(fx,rec);-计算图像(fx,cur)与重建图像(fx,rec)之间的差;-计算当前图像与重建图像之间的差的平均值(mSAD)和标准差(σSAD);-使用平均值(mSAD)和标准差(σSAD)来计算阈值(SADThreshold,QP),以确定统计置信区间;以及-存储与所述量化参数有关的阈值(SADThreshold,QP)。
2.根据权利要求1所述的方法,其中根据SADThreshold,QP=mSAD+3σSAD来确定统计置信区间。
3.根据权利要求1或2所述的方法,其中根据mSAD=n*m0和σSAD=n*σ0而从图像宏块的平均值(m0)和标准差(σ0)计算图像的平均值(mSAD)和标准差(σSAD),其中n是每幅图像的宏块数。
4.根据权利要求1至3中任意一项所述的方法,其中所述阈值对于亮度宏块有效,而通过根据SADThreshold,QP,chrominance=c*SADThreshold,QP, luminance与常数因数进行相乘而计算色度宏块的阈值。
5.根据权利要求4所述的方法,其中所述常数因数为0.7±10%。
6.根据上述权利要求中任意一项所述的方法,其中分开的阈值表用于低运动、中等运动和高运动序列。
7.根据上述权利要求中任意一项所述的方法,其中为每一个GOP选择新的阈值表。
8.一种用于在宏块级别上对图像进行编码的方法,其中使用了利用定义的量化参数的量化,所述方法包括步骤-确定不同量化参数的各个阈值(SADThreshold,QP),其中通过对参考图像和重建图像之间的差进行统计分析而获得阈值;-通过把当前图像的每一个宏块与先前图像中相应的宏块进行比较,为当前图像的每一个宏块计算差值(SAD);-确定使用的量化参数(QP);-把差值(SAD)和与确定的量化参数(QP)相对应的阈值(SADThreshold, QP)进行比较;以及-如果所述差值(SAD)小于针对确定的量化参数的阈值(SADThreshold, QP),那么跳过宏块的运动估计和编码。
9.一种用于确定阈值的装置,用于决定在视频编码中是否可以跳过宏块级别上的运动估计、DCT和量化,所述装置包括-用于确定量化参数的设备;-用于在宏块级别上对图像(fx,cur)进行量化和反量化(λ1)的设备,其中使用所述确定的量化参数,并获得重建图像(fx,rec);-用于计算图像(fx,cur)与重建图像(fx,rec)之间的差(SAD)的设备;-用于计算当前图像与重建图像之间的差的平均值(mSAD)和标准差(σSAD)的设备;-用于计算阈值(SADThreshold,QP)的设备,其中使用平均值(mSAD)和标准差(σSAD)来计算阈值以确定统计置信区间;以及-用于存储与量化参数有关的阈值(SADThreshold,QP)的设备。
10.一种用于在宏块级别上对图像进行编码的装置,其中使用利用定义的量化参数的量化,所述装置包括-用于确定不同量化参数的各个阈值(SADThreshold,QP)的设备,其中通过对参考图像和重建图像之间的差进行统计分析而获得阈值;-用于计算差值(SAD)的设备,其中通过把当前图像的每一个宏块与先前图像中相应的宏块进行比较,为当前图像的每一个宏块计算差值;-用于确定使用的量化参数(QP)的设备;-用于比较的设备,所述设备把差值(SAD)和与确定的量化参数(QP)相对应的阈值(SADThreshold,QP)进行比较;以及-用于跳过宏块的运动估计和编码的设备,如果所述差值(SAD)小于针对确定的量化参数的阈值(SADThreshold,QP),则跳过宏块的运动估计和编码。
全文摘要
本发明提供了用于对图像进行编码的方法和装置。视频压缩的目的是减小时间和空间维度的冗余。在减小编译码复杂性和数据速率时,MB或块的跳跃扮演了关键角色。一种用于确定阈值的方法,用于决定是否可以跳过宏块级别上的运动估计、DCT和量化,所述方法包括步骤确定量化参数;在宏块级别上对图像(f
文档编号H04N7/30GK101056408SQ20071009677
公开日2007年10月17日 申请日期2007年4月12日 优先权日2006年4月13日
发明者朱立华, 尹鹏, 查尔斯·传铭·王 申请人:汤姆森许可贸易公司