发明内容
由于已知的算法把量化和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示出了一般的处理,其中使用不同的量化参数对各个当前图像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)的定义,建立下式:
(等式1)
(等式2)
所以可以把η写为:
(等式3)
令e(u,v)=Cref(u,v)-Crec(u,v)。根据MPEG-4量化的属性,e(u,v)的分布是在间隔[0,Q-1]上具有恒定概率密度的均匀分布,其中Q是量化参数。
η(x,y)是随机变量,m是该变量的平均值,且σ是该变量的标准差。假定λ=ξ+η作为随机变量之和,那么ξ理想上应当接近于0,即ξ=0。根据SAD(绝对差之和)的定义,发光宏块的SAD为:
假定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阈值对第二列进行测试。
QP |
亮度SAD的阈值(低运动) |
0-9 |
0,700,663,695,704,746,777,826,863,915 |
10-19 |
953,997,1040,1083,1123,1168,1206,1250,1280,1330 |
20-29 |
1372,1413,1455,1495,1528,1574,1608,1642,1671,1713 |
30-31 |
1746,1787 |
表1
典型地,表1示出了针对可能的不同量化参数QP(QP的含义是索引)0至31而得到的低运动序列(“学生”)的亮度SAD阈值。
0-9 |
0,656,603,643,647,721,735,768,787,812 |
10-19 |
823,890,913,947,962,979,1042,1107,1174,1206 |
20-29 |
1276,1285,1317,1362,1404,1436,1476,1531,1576,1603 |
30-31 |
1672,1726 |
表2
典型地,表2示出了针对可能的不同量化参数0至31而得到的中等运动序列(“工头”)的亮度SAD阈值。
QP |
亮度SAD的阈值(高运动) |
0-9 |
0,502,453,497,556,639,694,735,749,769 |
10-19 |
783,812,823,839,863,895,905,915,972,1013 |
20-29 |
1076,1120,1186,1237,1283,1306,1378,1393,1483,1538 |
30-31 |
1594,1683 |
表3
典型地,表3示出了针对可能的不同量化参数0至31而得到的高运动序列(“足球”)的亮度SAD阈值。
|
300kbits |
500kbits |
800kbits |
高运动(“足球”) |
30.048 |
30.049 |
31.932 |
31.932 |
32.843 |
32.839 |
中等运动(“工头”) |
33.124 |
32.125 |
34.588 |
34.586 |
35.144 |
35.141 |
低运动(“学生”) |
37.623 |
37.672 |
38.412 |
38.508 |
38.761 |
38.837 |
表4
表4示出了利用C工F分辨率的PSNR:使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
|
800kbits |
1000kbits |
1500kbits |
高运动(“Akaya”) |
33.925 |
33.919 |
34.272 |
34.268 |
34.642 |
34.641 |
中等运动(“Harp”) |
35.412 |
35.417 |
35.871 |
35.874 |
36.098 |
36.100 |
低运动(“Phone”) |
36.233 |
36.241 |
36.432 |
36.501 |
36.872 |
36.874 |
表5
表5示出了利用D1分辨率的PSNR:使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
|
300kbits |
500kbits |
800kbits |
足球 |
221 |
304 |
201 |
300 |
197 |
293 |
工头 |
254 |
407 |
267 |
392 |
246 |
386 |
学生 |
356 |
600 |
347 |
596 |
341 |
576 |
表6
表6示出了利用CIF分辨率的编码速度,使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
|
800kbits |
1000kbits |
1500kbits |
Akaya |
95 |
143 |
89 |
140 |
88 |
136 |
Harp |
106 |
164 |
98 |
149 |
94 |
147 |
Phone |
112 |
167 |
110 |
155 |
107 |
143 |
表7
表7示出了利用D1分辨率的编码速度,使用阈值进行编码(第一列)和不使用阈值进行编码(第二列)。
可以在对序列中的场景进行编码后产生这三个表1-3(在这里,场景的含义是具有相同属性的连续的帧序列;实际中,GOP可以用作场景)。在实际应用中,不需要对序列中的运动进行估计;可以通过先前“场景”的信息而获得表。但是在序列的开始部分,中等运动表通常可以用作阈值。它仅用于GOP距离,然后可以确定当前序列的活动性。
如示例中所示,本发明的有利效果是:与不使用阈值相比,当使用阈值时PSNR通常更高,而且使用阈值的编码速度比不使用阈值的编码速度要快。这一点对于低运动序列来说尤其明显。
本发明的一个优点是缩短了计算时间,例如缩短了针对完整的MPEG-4/部分2结构的计算时间。
本发明的另一个优点是改进了客观和主观品质,尤其是针对低运动序列。
本发明可以应用于视频编解码,尤其是MPEG-4部分2的编译码,但是本发明也可以应用于MPEG-4/AVC编译码及其它。