APP下载

基于层次B帧预测结构的自适应图像组算法

2010-06-25吴仲谋梅顺良

电视技术 2010年1期
关键词:关键帧编码预测

吴仲谋,梅顺良

(清华大学 电子工程系,北京 100084)

1 引言

将待编码的视频图像序列看成一个整体,视频序列中每幅图像的内容在时间域上往往和前面或后面出现的图像序列有很大的相关性。要想使这段视频序列的编码效率逼近其高阶熵,视频序列的帧间预测方式设计成为很重要的因素。

帧间预测方式规定了图像序列的编解码顺序,定义了每幅图像在编解码过程中采用哪些参考图像作运动补偿。帧间预测方式主要包括两方面:参考图像的数目和预测结构。通过帧间预测方式的优化往往能较高地提高视频编码效率,但其是以增加编解码器的时延和缓存作为代价的。

在AVS标准中,参考图像的数目只有2帧,预测结构可以是IPP结构、IB…BP结构[1]。在H.264/AVC标准中,参考图像的数目最多可达到15帧,预测结构可以是IPP预测结构,IB…BP预测结构及层次 B帧(Hierarchical B)预测结构。

为了论述不同预测方式的编码性能,下面从两方面进行表述:

1)相同预测结构的前提下,参考图像数目的变化带来编码增益的变化。Thomas Wiegand等在文章[2]提到:在H.263平台上,相同预测结构前提下,例如IPP预测结构。对Foreman序列,采取多参考图像技术,在相同码率情况下,图像客观质量PSNR最多可以提高2 dB;对Mother-Daughter序列,采取多参考图像技术,在相同码率情况下,图像客观质量PSNR最多可以提高1.5 dB。

2)相同参考图像数目前提下,不同预测结构带来编码增益的变化。

在相同参考图像数目前提下,以参考图像为2帧为例,在H.264/AVC平台上,相对于IPP预测结构,IB…BP预测结构对大部分序列,相同码率情况下,其图像客观质量PSNR平均提高了1~2 dB左右。

在相同参考图像数目前提下,以参考图像为5帧为例,在H.264/AVC平台上,Heiko Schwarz在文章[3]提到:相对于IB…BP预测结构,层次B帧预测结构对大部分序列,相同码率情况下,其图像客观质量PSNR平均提高了1 dB左右。

为了进一步提高视频编码效率,笔者对层次B帧预测结构进行研究发现:针对不同运动特性的图像序列,选择不同图像组大小(GoP Size,采用符号SGoP)的层次 B帧预测结构对其进行编码,编码性能差异较大。因此对视频序列采取自适应图像组大小的层次B帧预测结构能够进一步提高视频压缩效率。基于此,提出了基于层次B帧预测结构的自适应图像组算法。

2 基于H.264的层次B帧预测结构

图1给出了4级层次B帧预测结构示意图。在层次B帧预测结构中,定义关键帧为:编码顺序在该幅图像之前的图像,解码显示顺序也在该幅图像之前,满足此特点的该幅图像即为关键帧。图1中的第0帧和第8帧为关键帧,关键帧可以采用帧内预测编码或前向帧间预测编码方式。定义时间上相邻的两个关键帧之间的图像序列为1个图像组(Group of Picture,GoP)。1个图像组中包含的图像帧数为GoP Size。按照此定义,图1所示的4级层次B帧预测结构的图像组大小为8。

图1 4级层次 B预测结构示意图

在层次B帧预测结构中,两个关键帧之间的B帧是分等级的。例如,在图1中,显示顺序第4帧的B1图像处于第1级;显示顺序第2帧,第6帧的B2图像处于第2级;显示顺序第1帧,第3帧,第5帧,第7帧的B3图像处于第3级。每个等级的B帧只能选择等级比其低并且在时间上与其相邻的图像作为其参考图像。图1中标示了不同等级的B帧参考与被参考的关系 (这里,图1中每个B帧的参考图像数目定义为2帧)。第1等级的B帧只能选择关键帧 (第0帧和第8帧)作为其参考图像;第2等级的B帧只能选择比其等级低的图像(如关键帧和第1等级的B帧)作为其参考图像。如此类推,可得不同等级B帧的参考关系。

相对于IB…BP预测结构,层次B帧预测结构由于充分利用了预测结构的灵活性大大提高了视频编码效率。但是,笔者注意到:对不同运动特性的图像序列,选择不同图像组大小的层次B帧预测结构对其进行编码,编码性能差异较大。表1给出具体实验数据。

表1 不同图像组大小(SGoP)的编码性能比较

表1中给出了常用码率情况下,测试序列对应不同图像组大小的层次B帧预测结构的编码性能。从表1可见,对序列Paris.cif和Mobile.cif采用图像组大小为32能取得较好的编码性能。序列Bus.cif采用图像组大小为8能取得较好的编码性能,序列Crew.cif采用图像组大小为4能取得较好的编码性能。其中,对序列Mobile.cif,采用图像组大小为32相对于图像组大小为4,编码性能要高0.4 dB。对序列Crew.cif,采用图像组大小为32相对于图像组大小为4,编码性能则低1 dB。

根据实际序列所具有的运动特性对应表1所给实验结果进行分析,可以得出:对运动变化比较剧烈或复杂的图像序列用较小的图像组大小会取得较好的编码性能,对运动变化比较缓慢的图像序列,用较大的图像组大小能取得较好的编码性能。

具体原因为:对一个运动变化比较剧烈的图像序列,当采取较大的图像组大小进行编码时,可能会出现以下2种情况:

1)由于运动矢量搜索范围的限制,对关键帧或等级较低的B帧,如图1所示的显示顺序第8帧(关键帧,采用P帧编码)或第4帧(第1等级的B帧),在编码过程中可能会采取不合适的运动矢量进行预测编码,这将影响该帧图像的编码性能。由于该帧的编码性能不好,将导致下一级的B帧图像预测编码效率降低。

2)由于运动矢量搜索范围的限制,对关键帧或等级较低的B帧,在编码过程可能会找不到合适的匹配块,这时可能会采取帧内预测模式对该图像块进行编码。这将影响该帧图像的编码性能。同样,由于该帧的编码性能不好,将导致下一级B帧图像编码效率降低。

在这种情况下,如果采取较小的图像组大小,由于当前编码图像和参考图像的时间距离不远,从而能够得到较高的编码效率。

因此,在对图像序列采取层次B帧预测结构进行编码时,采用符合序列特性的自适应图像组大小的技术可以进一步提高视频编码效率。在具体选择图像组大小时,本文通过实验观察发现,可以通过运动矢量的绝对值大小和帧内预测模式图像块的选取比例来判断选择相应的图像组大小。

下面给出基于H.264/AVC平台,层次B帧预测结构采取不同图像组大小编码时,关键帧P帧(例如,图1中图像组大小为8时的第8帧)的运动矢量绝对值均值和帧内预测模式图像块选择比例。表2的实验结果是在运动矢量搜索范围为[-96,96]时测试所得。

表2 不同图像组大小的参数值

从表2所列不同图像组大小的参数值和表1所列的不同图像组大小的编码性能对应关系可知:完全可以根据上述两个参数来对层次B帧预测结构的图像组大小进行自适应选择。

3 基于层次B帧预测结构的自适应图像组大小算法

对大量图像序列进行分析发现:视频序列的运动特性都具有一定的时间延续性。一般情况下,如果视频序列的运动特性都具有一定的时间延续性。一般情况下,如果视频序列前一个GoP运动比较缓慢,则紧接着的后一个GoP运动不会马上变得很快。因此,可以将前一个图像组大小作为后一个图像组大小的预测初始值。

在用自适应图像组大小的层次B帧预测结构编码时,首先要确定图像组大小的大小,确定了图像组大小之后,这个GoP之间的图像序列编码顺序和参考关系就能确定下来,从而可以完成这个GoP的编码。具体的编码步骤为:

1)用自适应图像组大小的层次B帧预测结构进行编码时,假设上一个图像组大小为2p,并已经编码。则有下一个图像组大小的预测值为2p,如图2所示,首先将距离上一个GoP的最后一个关键帧的帧间距离为2p的图像设置为关键帧,对其采取前向帧间预测编码(即P帧预测编码)。

图2 基于层次B帧预测的自适应图像组大小编码过程

2)统计该编码图像中采用帧内预测模式块的所占比例λIntraRatio和运动矢量绝对值的平均值Avg(|MV|)。

4)对参数λ按照如下方式进行判决

判决阈值 λ0,λ1,λ2,λ3可在实际编码中,根据具体的编码配置条件训练可得。根据参数λ所在的取值范围,可以对图像组大小进行选取。

5)确定更新的图像组大小之后,如果图像组大小与预测值相同,则可接着第一步继续操作。首先将已编码的关键帧码流直接输出,然后对这个GoP按照图像组大小为2p的层次B帧预测结构进行编码。

6)如果图像组大小与预测值不同,假设为2p-k。则将距离上一个GoP的最后一个关键帧的帧间距离为2p-k的图像设置为关键帧,然后对这个GoP按照图像组大小为2p-k的层次B帧预测结构进行编码。

7)重复步骤1)~6),可以完成整段图像序列的自适应图像组大小层次B帧预测编码。

4 实验结果

为了衡量所提出的基于层次 B帧结构的自适应图像组大小算法的编码性能,将该技术集成到参考软件JM14.2中。为了使测试序列中既包含运动变化比较快的视频片断也包含运动变化比较缓慢的视频片断 (这种情况在实际编码中经常出现),将几个视频序列进行连接,形成一个长序列。其中长序列1由序列Paris.cif(288帧,30 Hz),序列 Crew.cif (128 帧,30 Hz)和 Husky.cif (250帧,30 Hz)连接而成。长序列2由序列 Mobile.cif(288帧 ,30 Hz),Bus.cif(128 帧 ,30 Hz), Dancer.cif (228帧,30 Hz)连接而成。测试条件如表3所示。

表3 主要测试条件

与固与图像组大小的层次B帧预测结构相比,提出的基于层次B帧结构的自适应图像组大小预测编码技术的编码性能比较结果如表4所示[4]。

表4 基于层次 B帧结构的自适应图像组大小算法编码性能的改善效果

由表4可见,采用所提出的基于层次B帧结构的自适应图像组大小编码技术相对于固定图像组大小的层次B帧编码技术在编码性能上有明显的提高。针对序列1,自适应图像组大小编码技术相对于固定图像组大小为32的层次B帧编码技术编码增益为0.45 dB;针对序列2,自适应图像组大小编码技术相对于固定图像组大小为4的编码技术编码增益为0.60 dB。由此可见,采用笔者提出的自适应图像组大小编码技术能够取得很好的编码增益。

为了比较提出的基于层次B帧结构的自适应图像组大小编码技术与固定图像组大小为4,8,16或32时的层次B帧编码技术编码复杂度,本文针对长序列1在相同硬件运行环境下(服务器硬件配置:CPU 3.0 GHz,内存1.0 Gbyte),分别统计了上述几种算法的编码器编码时间,如表5所示。

表5 编码器编码时间比较

由表5可知,提出的基于层次B帧的自适应图像组大小算法相对于固定图像组大小的层次B帧算法,编码时间增加了5%~10%左右。

5 小结

本文提出了基于层次B帧预测结构的自适应图像组大小编码算法并给出了具体的编码过程和图像组大小的选取方法。相对于固定图像组大小的层次B帧预测编码技术,笔者提出的方法在编码时间增加了5%~10%的前提下,编码性能提高了0.60 dB左右。

[1]梁凡.AVS视频标准的技术特点[J].电视技术,2005(7):12-15.

[2]WIEGAND T,ZHANG Xiaozheng,GIROD B.Long term memory motion compensated prediction[J].IEEE Trans.Circuits and Systems for Video Technology,1999,9(1):70-84.

[3]SCHWARZ H,MARPE D,WIEGAND T.Hierarchical B pictures[R].[S.l.]:ISO/IEC JTC1 and ITU-T, JVT-P014,2005.

[4]BJONTEGAARD G.CalculationofaveragePSNR differences between RD-curves[R].Austin, TX, USA: ITU-T SG16/Q6,M33,2001.

猜你喜欢

关键帧编码预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
基于改进关键帧选择的RGB-D SLAM算法
不必预测未来,只需把握现在
基于相关系数的道路监控视频关键帧提取算法