APP下载

基于线性模型的分级B帧比特分配改进算法

2013-01-31杨楷芳公衍超

电视技术 2013年17期
关键词:码率关键帧控制算法

彭 婷,杨楷芳,公衍超

(西北工业大学 电子信息学院,陕西 西安710129)

1 分级B帧结构

在当前社会,人们对各种视频应用的需求越来越高,诸如3D视频、高清视频的视频流信息越来越大。同时由于网络传输环境异构、时变且带宽有限,给视频信息的传输带来了巨大挑战。码率控制技术是保证视频信息有效传输的一项关键技术,其目的是在满足带宽限制的前提下尽量提高解码端视频的质量。

由于高效的编码性能,目前分级B帧结构得到越来越广泛的应用。分级B帧结构如图1所示。图像组(Group of Picture,GOP)大小为8,共有4个时间层。

图1 分级B帧编码结构

黑色表示时间0级,为关键帧,帧类型I帧或P帧。其他时间层帧都为B帧,箭头表示预测方向。因为低时间层帧要直接或间接被高时间层帧作为参考,所以分级B帧结构中不同时间层(Temporal Layer,TL)的帧具有不同的重要性,TL越小的帧其重要性越大。

目前有很多典型的码率控制算法,例如面向MPEG-2的TM5[1]、面 向MPEG-4的VM8[2]和 面 向H.263的TMN8[3],其原理都是通过预测不同层次的目标比特数和调用某种率失真模型来计算量化参数(Quantization Parameter,QP),实现码率控制。到了21世纪,H.264[4]的码率控制成为了国内外学者的研究热点。H.264的码率控制采用JVT-H017[5]提案所提算法,采用二阶R-QP模型来计算码率控制基本单元(Basic Unit,BU)的QP,用此QP编码当前BU实现码率控制。

但上述码率控制算法只针对P帧用复杂的模型分配目标比特,对于B帧只根据一些简单信息判断其QP在前一编码P帧QP基础上增减幅度的方式进行粗糙的码率控制。对于有B帧结构这些算法的码率控制性能很差。

针对分级B帧结构,提案JVT-W042[6]提出了相应的码率控制算法。对于P帧按式(1)分配目标比特

式中:Ti(j)表示P帧的目标比特数;β为0.5;和)分别为

式中:Ri(j)表示比特率;f是帧率;γ的值通常取为0.5或0.25;Si(j)表示当前缓冲区状态;Vi(j)表示目标缓冲区状态;i表示一个GOP中的帧数;j表示GOP数;NI,r,NP,r和表示时间l层待编码的I,P和B帧数。对不同类型帧进行目标比特分配,即

式中:ρB表示B帧分配的目标比特数比例,取固定值0.45;ρI表示I帧分配的目标比特数比例。

W042算法在对B帧分配目标比特数时,ρB取固定值,即对不同时间级B帧,在关键帧P帧的目标比特数基础上的分配比例相同,没有考虑时间级的影响。事实上在分级B帧结构中,时间层越低的帧被高时间层帧直接或间接作参考的次数越多,所以其对视频编码质量影响更大,应当分配更多的比特。分级B帧的预测结构使得一个GOP中的B帧与P帧的比特数之间存在很大的相关性,如果能利用这种相关性,建立准确反映B帧与P帧比特关系的模型,将大大提高码率控制性能。

文献[7-8]基于以上考虑提出相关算法,分别通过定义可分级因子与权重因子来决定不同时间级分配的比特数。但文献[7]参数过多且计算与更新过程很复杂,不适于实际应用;文献[8]算法相对于W042算法编码性能没有明显的改善;文献[9]提出不同B帧之间复杂度关系,但是没有对不同时间级B帧的比特数关系进行深入研究;文献[10]研究了不同时间级QP分配策略,但是没有应用码率控制。

2 改进算法

2.1 实验安排及分析

选择不同内容特性的序列“News”,“Paris”和“Mobile”作为实验序列。编码序列格式CIF,帧率30 f/s(帧/s),GOP大小为16,编码帧数120帧,采用提案JVT-P014[9]中提出的分级B帧结构量化参数分配方法配置各时间级B帧的QP,关键帧的QP值为21~36,步长为1。编码器采用H.264标准测试模型JM17.2[11]。在不同QP配置下分别编码实验序列,统计编码后各时间级B帧所用的平均比特数和关键帧的比特数。图2所示为News序列实验结果。

图2 News不同时间级B帧与关键帧之间比特数关系

由图2可知,不同时间级B帧的平均比特数与关键帧比特数呈良好的线性关系,线性拟合为

式中,Ti表示关键帧比特数。从式(5)可知,随着时间级的增大,斜率逐渐降低。这是因为编码设置中采用了JVT-P014提案的QP配置方法,随着时间级数的增大,分配的QP也增大,因此,高时间级的平均比特数较低时间级的平均比特数低。

不同时间级B帧的平均比特数与关键帧比特数最终可表示为

式中:k表示斜率;b为常数。

式(6)所示的线性模型充分考虑了不同时间层B帧的特性,若将此模型应用到分级B帧结构码率控制中,可以大大提高码率控制性能。

2.2 算法

提出的算法如图3所示,具体步骤如下。

图3 改进算法验证流程图

1)GOP层

计算当前GOP剩余总比特数和起始QP

式中:u(nj,1)是可用带宽;NGOP是GOP中所有帧的总数;Bc(nj,i)表示编码第i帧的实际缓冲区占用率。每编码完一帧,Tr更新一次。

初始QP按照式(8)计算

式中:QP0表示初始QP;bpp是每个像素的比特数;l1表示时间一级。

2)帧层

采用式(1)来计算P帧目标比特数;根据当前B帧的序号判断时间级数,根据线性模型(6)对不同时间级B帧分配目标比特数。

P、B帧最终分配的QP由二次R-Q模型来计算

式中:R表示分配给当前帧的目标比特数;c1,c2为模型参数;MADcb表示当前帧的预测MAD。

式中,MADpb表示前一帧实际MAD。

3)BU层

BU层码率控制步骤与帧层步骤一致。

3 算法性能验证

实验设置与2.1节实验基本一致。只是要开启码率控制,设定带宽分别为256 kbit/s,512 kbit/s,768 kbit/s,1 024 kbit/s,QP的设定由本文算法给定。模型参数使用预编码并通过最小二乘法计算得到。表1~表3为实验结果,其中JVT-W042采用默认的权重分配参数。

表1 News JVT-W042提案与改进算法性能对比

表2 Paris JVT-W042提案与改进算法性能对比

从表中数据可得,本文提出的基于分级B帧优先级的码率控制算法与JVT-W042相比,对于大部分内容特性序列,平均ΔPSNR提高了0.15 dB以上,具有优越的编码性能。

表3 Mobile JVT-W042提案与改进算法性能对比

4 总结

本文针对现有分级B帧码率控制算法比特分配算法中存在的问题,提出了一种改进的分级B帧优先级的码率控制算法,讨论了不同时间级的B帧分配的目标比特数与关键帧的比特数之间存在线性关系,建立不同时间级B帧比特数与关键帧比特数之间的线性模型,将线性模型应用到分级B帧的比特分配中,提高了基于分级B帧的码率控制算法的性能,本文算法与JVT-W042算法相比,在有效控制码率的同时,ΔPSNR平均提高0.15 dB。

[1]ISO-IEC/JTC1/SC29/WG11,MPEG-2 video test model,Version 5.0[S].1993.

[2]ITU-T/SG16/VCEG/Q15,Video codec,test model near-term,version 8.0[S].1997.

[3]ISO-IEC/JTC1/SC29/WG11,MPEG-4 video verification model,version 8.0,coding of moving pictures and associated audio[S].1999.

[4]毕厚杰,王健.新一代视频压缩编码标准——H.264/AVC[M].2版.北京:人民邮电出版社,2009.

[5]MA S,LI Z,WU F.Proposed draft of adaptive rate control[EB/OL].[2012-09-02].http://www.docin.com/p-34935775.html.

[6]LEONTARIS A,TOURAPIS A.Rate control reorganization in the joint model(JM)reference software[EB/OL].[2012-09-02].http://wftp3.itu.int/av-arch/jvt-site/2007_04_SanJose/JVT-W042.zip.

[7]XU L,GAO W.Rate control for hierarchical B-picture coding with scaling-factors[C]//Proc.ISCAS 2007.New Orleans,LA:IEEE Press,2007:49-52.

[8]YANG B,MEN A.Rate control for hierarchical B-frames in H.264/AVC[J].The Journal of China Universities of Posts and Telecommunications,2010,17(5):116-121

[9]姜益中,沈礼权,王向前,等.一种基于分层B帧架构的高效比特分配算法[J].电视技术,2012,36(1):6-9.

[10]韩公海,万帅,公衍超.一种低码率下视频分级B帧量化参数的分配方法[J].电视技术,2011,35(17):27-29.

[11]SCHWARZ H,MARPE D,WIEGAND T.JVT-P014,hierarchical B picture[S].2005.

[12]JVT.H.264/14496-10 AVC reference software[EB/OL].[2012-09-02].http://iphome.hhi.de/suehring/tml/download/old_jm/Jun.2009.

猜你喜欢

码率关键帧控制算法
一种基于HEVC 和AVC 改进的码率控制算法
自适应无监督聚类算法的运动图像关键帧跟踪
基于FPGA的多码率卷积编码器设计与实现
纺织机械手专利瞄准控制算法
基于状态机的视频码率自适应算法
基于ARM+FPGA的模块化同步控制算法研究
基于改进关键帧选择的RGB-D SLAM算法
基于相关系数的道路监控视频关键帧提取算法
基于聚散熵及运动目标检测的监控视频关键帧提取
多光谱图像压缩的联合码率分配—码率控制方法