APP下载

一种快速的SVC多模式决策方法*

2010-06-11陆寄远朝红阳

电信科学 2010年7期
关键词:宏块分块向量

陆寄远 ,胡 彬 ,朝红阳

(1.中山大学 广州 510275;2.广东金融学院计算机系 广州 510521)

1 SVC存在的不足

H.264/AVC可伸缩视频编码(scalable video coding,SVC)是视频编码标准H.264继面向高清视频的修订版(H.264 FRExt)后的又一修订[1],SVC解决了一次编码满足各种不同再现能力终端需求问题。SVC码流的可伸缩性主要体现在时域、空域和质量三方面。图1是SVC应用的一个范例。

SVC引入了层(Layer)[1]这个概念区分不同分辨率和不同质量的视频信号,每层的图像都被分割为一个个宏块然后进行编码。因为层与层之间的图像仅在分辨率或质量上有不同,所以这些图像在内容上有着很强的相关性。SVC与常用的单层视频编码标准(如H.264)的区别是额外提供了不少提取层间相关性的编码工具[1]。SVC虽然可以很方便地适应不同带宽容量和计算能力的解码终端,但在编码端消耗了很多的计算资源,尤其在同时提供上述三方面的可伸缩性时,每个宏块可供选择的编码模式比以往的标准H.264或H.264 FRExt都要多得多,从而导致了模式决策计算变得复杂。使用穷举的方法遍历所有的模式,虽然可以找到最优的模式,但计算量非常庞大。

多模式决策是为每个宏块选择一种使拉格朗日代价函数值最小的模式。早期的视频编码标准只使用宏块作为运动补偿的对象,不存在多模式决策问题。现有的几大视频编码标准系列,如 H.26x/MPEG-x、AVS和 VC-1,都把运动补偿分块从单一宏块(即 16×16)扩展到了 4×4,如图 2(a)所示。16×16 宏块的模式可以是 16×16、16×8、8×16 或 8×8。如果宏块的模式是8×8,那么就需要为每一个8×8的分块指定一个子模式,该子模式可以是 8×8、8×4、4×8 或 4×4。每个分块都拥有各自的运动向量,以适应不同的运动情况。在细节繁琐、运动剧烈的部分,应该选择比较小的分块;反之,在图像比较平坦、变化比较单一的部分,则应当使用较大的分块。多模式技术的采纳虽然提高了运动补偿的性能,但是大幅增加了模式决策计算的复杂度,以支持4×4分块的视频编码器为例,使用全模式搜索[2]所需的计算量是单宏块的7倍。而SVC中层的引入大幅地增加了需要编码宏块的数目,更使模式决策的计算消耗进一步增加。

为了提高模式决策的速度,业界提出了不少快速模式决策算法,有针对帧内(Intra)多模式的优化[3,4]算法(这类算法主要根据像素的特征进行优化),也有针对帧间(Inter)多模式的优化算法。因为在视频编码中Inter模式占50%~90%的比例,所以对Inter和Skip多模式优化的效果会比单纯优化Intra模式更为明显。对于Inter模式的优化虽然与Intra模式的优化思路不同,但也有相互联系的地方。Inter的多模式预测的优化算法大致划分为以下3种:

·第一种是根据各宏块中的一些细节信息进行快速选择。参考文献[5]提出了一种基于宏块中图像的相似性和静止性快速选择Inter多模式的方法。

· 第二种方法延续了运动估计中的优化思路[6],设定了一些提前终止的条件。在许多快速算法中,选择运动向量时用到了提前终止条件(Early Termination)的方法。所谓提前终止条件是令符合这些条件的宏块在进行运动估计时跳过某些运动向量,节省运动估计时间。参考文献[7]对Early Termination面向多模式做了适当的更改。

·第三种方法根据时间或者空间上相邻宏块的模式信息对当前宏块的模式进行预测。参考文献[8]提出了一种新的Inter模式快速预测算法,该算法利用相邻块的信息寻找合适的Skip候选模式。该算法的思想虽然可以被扩展到SVC上使用,但由于只采用相邻信息预测,因此不可避免会有误差,而且该误差会一直传播扩散,因而必须另外配合误差纠正方法,才可以保证多模式决策的精度。

现有的这些快速多模式决策算法仅针对目前流行的单层码流视频编码标准,对于多路码流的视频编码标准,如SVC,目前仍欠缺专门的研究。直接把这些方法应用在SVC编码器上,虽然可以提高一定的运算速度,但由于缺少对层间冗余计算的优化,SVC模式决策的复杂度依然偏高。

本文提出一种面向SVC的快速多模式决策方法,特别针对SVC的空间和质量两种可伸缩性给出了优化方法。首先,通过对SVC编码序列的分析,利用相邻分块模式间的相关性预测当前模式,确定模式搜索的起点;其次,为解决多模式预测方法中出现误差而损失率失真性能的问题,我们利用相邻运动向量的相异性决定是否拆分或合并当前分块进行细化搜索。

2 基于时空相关的快速多模式算法

下面介绍如何利用时间和空间相邻宏块的模式预测当前宏块的最优模式。使用该预测方法得到的预测模式与实际的最优模式有着非常高的相同概率。为了应对少数预测模式与最优模式不同的情况,本文利用运动向量的相异性对部分预测模式进行了调整,以确保本算法在提高速度之余,能保证良好的率失真性能。

2.1 利用SVC模式的相关性预测

根据参考文献[8]的研究可知,在视频序列中运动不剧烈和细节不复杂的区域一般使用大的分块模式编码,运动剧烈和细节比较复杂的区域一般使用小的分块模式。另外,物体及其运动都有一定程度的连续性。也就是说,一个运动剧烈或者细节复杂的物体必然连续地占据几个相邻的宏块,这些宏块在模式的选择上也都倾向于较小的分块模式,而一个运动平缓或细节简单的物体所占据的几个相邻宏块也趋向于选择比较大的分块模式。同样的结果也体现在时域相邻帧上,如果当前帧和前一帧的内容没有太大的跳跃,那么当前的宏块和前一帧相应位置的宏块很可能表示的是同一物体,它们在模式的选择上也会倾向于采用相同的模式。这些相邻宏块的相关性可以从H.264扩展到SVC中,用作预测当前宏块最优的模式。

此外,SVC与H.264的主要不同之处在于SVC额外提供了空域和质量上的可伸缩性,为此SVC引入了层。层的加入导致模式决策不仅要在原有的7种不同分块中实施,还需要在不同的层上完成,使多模式决策的计算复杂度随可伸缩分层的数目增长。SVC采用图像金字塔的方式对每帧图像编码,不同层间的内容大致一样,只存在细节上的差异[1],层间相同区域的模式有着很强的相关性。

为了研究SVC标准中模式的相关性,本文把宏块间的相邻关系分成三类,如图3所示。其中,第n帧中的当前宏块就是当前要进行模式决策的宏块。第一类的相邻关系是时域相邻,即在相邻两帧中相同位置的宏块;第二类是层间相邻,即在同一帧内相邻层中对应位置的宏块,由于各层的分辨率可以不相同,因此当前块有可能对应多个层间相邻块;第三类是层内相邻,因为SVC对层内宏块的编码顺序与单码流视频编码标准的编码顺序相同,采用光栅顺序编码,即从左到右,从上到下,层内相邻块通常指左上、上、右上和左4个方向的宏块。这三类相邻宏块的模式之间有着很高的相关性,有效地利用该相关性预测当前块的模式,可以大幅地节省模式决策的运算。

为了讨论视频序列中当前宏块的模式与上述的三类相邻宏块的模式之间的关系,需要做出以下两个假设来简化问题:一是当前编码宏块仅同上面的三类相邻宏块在模式分类上关联,宏块的模式是一个随机变量,具有一定的分布函数;二是参与统计的标准序列的数量足够多,足够逼近真实视频序列的实际分布。根据这两个假设,只要相邻模式的条件概率满足如下条件,就能够说明相邻模式预测是有效的。

其中,An代表当前宏块的模式分类是第n类,Bn代表在相邻宏块中模式分类为第n类,P(An)代表第n种模式出现的概率,P(An|Bn)代表当 Bn出现在相邻宏块时 An出现的概率。

本文采用标准的多模式决策方法对大量的标准视频序列进行统计。P(An)和 P(An|Bn)的关系如图 4(a)所示,其中横坐标表示不同宏块的模式,纵坐标表示不同模式出现的概率和条件概率。从图 4(a)可知,P(An|Bn)远大于P(An),这说明如果某一模式在其相邻宏块中已经出现,则该模式作为当期宏块最优模式的概率远比该模式单独出现的概率要高得多。

在确定了通过相邻宏块模式预测的有效性后,下面需解决的问题是要决定通过哪一个相邻宏块的模式对当前宏块的模式预测。图4(b)表示使用不同的相邻宏块模式预测当前宏块模式的准确程度,其中纵坐标表示不同类型的相邻宏块(具体的相邻形式可以参考图3),横坐标则表示不同类型的相邻宏块所能准确预测当前宏块模式的概率。从图4(b)可以看出,不同类型的相邻宏块预测的准确度是不同的。鉴于此,对不同类型的相邻宏块预测应设置不同的权重,权重的设定应与不同类型的相邻宏块和当前宏块模式一致的概率相关。相同可能性大的宏块模式相应的权重较大,而相同可能性小的宏块模式相应的权重也应该较小。根据不同的权重,按照从大到小的次序依次排列相邻宏块模式预测。当前宏块模式搜索从最有可能相邻块模式中开始。

2.2 利用运动向量的相异性预测

通过前面的讨论,我们发现仅依靠相邻宏块的模式信息预测当前宏块的模式会遇到以下两个问题:首先,某些宏块的相邻模式信息不一定存在,例如I帧后的第一个P帧并没有前一帧任何宏块模式信息可以用作参考;其次,相邻宏块的模式不一定能准确地预测当前宏块的模式。当误差出现时,如果继续使用错误的模式对后续宏块预测,那么该错误会被传播出去。对于第一个问题,本文采用对第一个P帧使用全模式搜索算法[2],保证了第一帧最终模式的正确性。其理由是如果第一帧模式选择错误,则会影响到以后全部P帧的模式决策。

对于第二个问题,可以归结为如何扩大模式搜索的范围或提前终止模式搜索。为了解决这一问题,本文提出使用相邻运动向量的相异性作为判断的依据,继而决定拆分还是合并当前分块的搜索。通过综合分析各种模式出现的特征,我们知道大的分块模式(如16×16)多数出现在静止或平坦的区域,这些分块模式多数出现在运动平缓的视频中。采用大分块模式的宏块,其内容不是纹理比较平坦,就

其中,MVc表示当前宏块的平均运动向量;n表示当前宏块有n个相关的运动向量,其中包括所有子分块的运动向量、帧间相邻运动向量、层间相邻运动向量和空域相邻运动向量;MVi则表示这n个与当前宏块相关的运动向量。当MVD为0时,表示当前运动向量与相邻运动向量是完全一致的。MVD的值越大,当前宏块趋向于使用更小的分块。

图2(b)显示了图2(a)中7种不同分块模式之间的合并和拆分关系,实线箭头表示合并搜索,虚线箭头表示拆分搜索。如果当前的模式是8×8,那么合并搜索就指搜索16×8和8×16这两种模式,而拆分搜索则指搜索8×4和4×8这两种模式。我们给定MVD两个阈值,分别是Th1和Th2。当MVD大于Th1,则表明使用相邻宏块的模式不能准确地预测当前宏块的模式,需要继续拆分当前分块的模式搜索。当MVD小于Th2时,则表明相邻的分块可以合并搜索。例如,通过§2.1的预测方法得到当前宏块最大可能的优化模式为8×16,那么就对该宏块两个8×16的分块进行运动估计,获取这两个分块的运动向量。有了这些运动向量后,就可以计算当前宏块的MVD。如果MVD>Th1,那么 8×8这种模式就很有可能比 8×16更适合;如果MVD

根据上面的分析,本文提出利用当前宏块运动向量的相异性决定是否继续模式搜索。

3 实验结果

为了验证本算法的有效性,本文使用SVC的测试模型(joint scalable video model 8.0,JSVM8)[2]进行实现。多个CIF和高清的视频序列,如Tempete、Mobile、Foreman、Football、Night、Crew、City 和 BigShips参与了测试,为了避免因为分析的数据与测试的数据重复造成过度适配问题,这些测试序列并不包含在§2.1中用作统计分析的序列集中。所有序列的编码帧率为30 f/s,编码结构为IPPP,均采用了高精度的率失真优化选项。本文不涉及对多参考帧的研究,所以仅使用了一个参考帧。而Th1和Th2分别根据经验选择了1.5和0.5。

因为篇幅有限,表1只列出高质量(QP=20)和低质量(QP=28)两种情况下的部分测试结果。使用其他量化参数的结果也是相近的。从表1中的结果可知,无论是在低质量(QP=24)还是高质量(QP=16)情况下,本文算法在速度上都比JSVM中的标准算法有40%~70%的提升,这个速度的提升大部分都归结于相邻模式预测的准确性。相邻宏块的模式间有着很高的相关性,利用这一点大幅地减少了候选宏块模式的数目。不同的质量参数对本文算法基本上是没有影响的,这是因为本文算法采用的是运动向量作为判断是否拆分和合并的依据,而不是常用的残差值或拉格朗日代价函数。不同的质量参数对后两种指标的影响非常明显,因而难以采用固定的阈值以适应各种视频源信号。但质量参数对于运动向量的影响是有限的,所以十分适合作为判定的依据。此外,对于不同的分辨率(CIF和720P)情况,从表1中可以看出对于高清视频序列,本文的算法有着更大的速度提升。这是因为在高清视频序列中,多数宏块都是从属于视频中的某一个对象,模式的相关性更为集中,通过本文的方法能更准确地预测出当前的模式。而在低分辨率的视频中(如CIF),不少的宏块都跨越了多个对象,处于物体的边缘位置,通过相邻宏块对其预测的成效则较低。最后,根据表1我们可以知道信噪比(PSNR)和比特率的损失基本上可以忽略不计。在某些情况下,本算法甚至提高了PSNR(最高有0.022的增长)或减少了比特率(最多有2.29%的减少)。因此,本文方法在大幅地提升了模式决策速度的同时,对编码性能的影响几乎是微乎其微的。

为了进一步表明本算法在加快模式决策的同时,并没有降低SVC的编码性能,图5是使用本文算法和JSVM标准算法对Football和Foreman编码后的率失真曲线。Football和Foreman序列都包含了复杂的运动,在这两个序列上多模式对编码性能的提高起着重要的作用。从这两组曲线可以看出,与JSVM的全模式搜索算法相比,本文算法拥有着相同的率失真性能。无论是在低码率(<500 kbit/s)或者高码率(>1 000 kbit/s)情况下,采用本文提出的快速算法都能产生与JSVM标准算法相同的失真度,即信噪比。

表1 本文算法与JSVM算法的比较结果

根据上面的实验结果可以知道本文算法针对SVC模式决策算法的优化是十分有效的,其主要原因是本算法利用了相邻模式和相邻运动向量的相关性,最大限度地消除了JSVM中模式决策的冗余计算。

4 结束语

本文针对SVC的参考模型JSVM提出了一种快速的多模式决策算法。首先,本文利用SVC编码模式在时域、空域和层间的相关性,决定当前宏块的预测模式;其次,本文根据运动向量的相异性动态地决定是否拆分或合并当前的候选模式。根据在JSVM上的实验结果,本算法在不损失任何压缩效率的情况下,提高了2~3倍多模式决策的速度。

1 Heiko S,Detlev M,Thomas W.Overview of the scalable video coding extension of the H.264/AVC standard.IEEE Transactions on Circuits and Systems for Video Technology,2007,17(9):1103-1120

2 Julien R,Heiko S,Mathias W.Joint scalable video model JSVM-8,JVT-U202.doc.In:Joint Video Team (JVT)of ISO/IEC MPEG&ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6)21st Meeting,Hangzhou,China,2006

3 Jiaching W,Jingfa W,Jarferr Y,et al.A fast mode decision algorithm and its VLSI design for H.264/AVC intra-prediction.IEEE Transactions on Circuits and Systems for Video Technology,2007,17(10):1414-1422

4 Byeongdu L,Minyoung E,Yoonsik C.Fast mode decision for intra prediction in H.264/AVC encoder.In:IEEE International Conference on Image Processing,San Antonio,September 2007

5 Dajun W,Feng P,Kengpang L,Fast intermode decision in H.264/AVC video coding.IEEE Transactions on Circuits and Systems for Video Technology,2005,15(7):953-958

6 Nadeem K,Shahid M,Ahmad A.A variable block size motion estimation algorithm for real-time H.264 video encoding.Signal Processing-Image Communication,2006,21(4):306-315

7 Esam Q,Tiansheuan C.Fastvariable block size motion estimation by adaptive early termination.IEEE Transactions on Circuits and Systems for Video Technology,2006,16(8):1021-1026

8 Christos G,Mingyuan Y.Fast inter mode prediction for P slices in the H.264 video coding standard.IEEE Transactions on Broadcasting,2005,51(2):256-263

猜你喜欢

宏块分块向量
向量的分解
聚焦“向量与三角”创新题
分块矩阵在线性代数中的应用
反三角分块矩阵Drazin逆新的表示
向量垂直在解析几何中的应用
基于自适应中值滤波的分块压缩感知人脸识别
向量五种“变身” 玩转圆锥曲线
基于多分辨率半边的分块LOD模型无缝表达
基于选择特征宏块的快速视频稳像
基于宏块合并的H.264模式选择算法