一种面向HEVC的并行码率控制算法

2016-03-14 09:10陈辰灿滕国伟赵海武李国平王国中
电视技术 2016年1期

陈辰灿,滕国伟,赵海武,李国平,王国中

(上海大学 通信与信息工程学院,上海 200072)



一种面向HEVC的并行码率控制算法

陈辰灿,滕国伟,赵海武,李国平,王国中

(上海大学通信与信息工程学院,上海200072)

摘要:视频通信时通常带宽有限,为了能在规定的目标码率下获得尽可能高质量的解码图像,需要在视频编码时进行码率控制。目前针对HEVC的并行编码以及对应码率控制已成为研究热点,现有并行结构下的平均比特率控制算法受到帧间依赖性的约束,待编码帧无法及时获得与其并行编码帧的实际比特数,因此本文算法通过预测并行帧的实际比特数来进行码率控制,并在此基础提出了自适应调整帧层量化参数补偿值。仿真结果表明,相比已有算法,前者减少码率误差约为3.38%,后者可提高PSNR约为0.204dB同时减少约0.3%的码率误差。

关键词:视频编码;码率控制;平均比特率;实际比特数

随着视频采集与显示设备的快速升级,HD(HighResolution)与UHD(UltraHD)视频在人们的日常生活中变得越来越普遍。随着视频分辨率的增加,对视频的存储、传输和实时处理带来了巨大的挑战。现有的视频编码标准H.264/AVC已经难以满足对超过HD的更高分辨率视频的压缩需要[1]。因此,ITU-TVCEG和ISO/IECMPEG共同组建JCTVC,联合制定新一代视频编码标准(HighEfficiencyVideoCoding,HEVC)[2],目前该标准已定稿。

HEVC引入很多新特性,比如基于大尺寸四叉树块的分割结构和残差编码结构等,同时采用了并行编码结构,如最新的并行编码技术WPP(WavefrontParallelProcessing),其复杂度成本增长,因此实时编解码技术成为研究热点,其中码率控制尤为重要[3],简单将传统的码率控制方法应用到HEVC编码器中因难以满足并行处理框架特点而导致其精确度明显下降,因此研究并行的码率控制算法具有重要应用价值[4]。

1并行编码架构及码率控制分析

1.1HEVC并行编码架构

目前通用的编码器,如X265,通常采用具有参考依赖性的帧间和帧内混合并行编码架构。由于运动物体之间存在连续性,视频图像中的宏块搜索范围是有限的,所以只要待编码帧已经获得所需要的参考信息,则无需等待当前帧完成编码,待编码帧就可以并行进行编码[5]。如图1所示,假设输入序列为IBBPBBP,当编码I(0)时,P(3)无需等待I(0)编码完成,一旦P(3)获得了参考信息就能与I(0)并行地进行编码,同理B(1)、B(2)和P(6)也不需要等待I(0)与P(3)完成编码就能开始并行编码。同时每一帧都采用帧内的WPP并行编码方式,即只要当前CTU行上边的两块CTU已经处理完了,编码器就可以并行处理这新的一行CTU。

上述并行架构对码率控制过程带来影响,如图1所示,P(3)与I(0)并行编码,因此P(3)的码率控制在I(0)编码完成前就已经开始。假设现在X265能并行编码3帧图片,对于图1中的IBBPBBP序列,I(0)最先进行编码,P(3)则在I(0)第一次的码率控制参数更新后获得所需参考信息并开始编码,同理B(1)需要等待P(3)的第一次码率控制参数更新后才能获得所需要的参考信息并开始编码。而对于B(2),因为编码器只允许3帧进行并行的处理,此时它需要等待I(0)完成编码并进行其第二次码率控制参数更新后才能开始编码,但I(0)的第二次参数更新则必须等待与其并行编码的最后一帧,即B(1)的第一次参数更新之后才能进行,可见码率控制受到了并行结构依赖性的约束。

1.2并行架构下的ABR码率控制算法分析

码率控制模式分为单次编码(single-passcoding)和多次编码(multi-passcoding)两类[6]。多次编码虽然精确但是耗时较长,不适用于实时视频传输系统。单次编码仅需要借助已编码的参考帧信息而不需要其他未编码帧的信息来进行码率控制,编码速度快但偏差较大[7]。

平均比特率控制算法(ABR算法)是单次编码中最常用的算法。在非并行的架构下,码率控制的参数在每一帧完成编码后进行更新,而受到并行结构依赖性的约束,并行架构下的ABR算法在使用WPP编码时,对每帧的码控参数需进行两次更新:

1)当前帧的一半CTU行数完成编码后进行第一次的参数更新,如果当前帧不是并行的最后一帧,此时更新后的参数用于下一帧来确定QP值,如果当前帧为并行的最后一帧,则更新后的参数用于与其并行编码的最前一帧的第二次参数更新。

2)当前帧完成编码后等待与其并行的最后一帧完成第一次的参数更新后,当前帧进行第二次的参数更新,用于下一待编码帧的QP计算。由此可见当前帧计算QP的参数并不是由其前一编码帧得到,而是来自与其并行编码的最前面一帧。

该算法具有较好的实时性,但存在不足。溢出判断因子overflow是ABR算法中计算QP的重要参数,表示实际产生比特与目标比特的偏差程度,其计算公式为

overflow(i)=1.0+(total_bits(i-1)-

wanted_bits(i-1))/aur_buffer(i)

(1)

式中:total_bits(i-1)为到前一帧为止编码所产生的实际比特数之和;wanted_bits(i-1)为到前一帧为止累计的目标比特数之和;abr_buffer(i)为平均比特率缓冲区。并行编码时当前帧无法在码率控制开始之前获得其并行帧的实际比特数,因此到其前一帧为止编码所产生的实际比特数之和total_bits(i-1)也无法获得。在现有的ABR算法中只能利用与当前帧并行编码的最前一帧更新的total_bits来计算当前帧QP值,而忽略了与其并行的其他还未完成编码帧的实际比特,所以此时更新的total_bits并不准确。

文献[8]中根据已编码帧的实际比特和目标比特的差值和平均量化参数,对原算法在帧层获得的QP进行再次修正,不过其调整值是固定的,不能进行自适应的调节。本文算法根据实际输出比特和目标比特的差值和到当前帧为止所有帧的平均SATD值对QP的调整值进行修改,使得调整值根据帧内容自适应调节大小。

2改进的并行码率控制算法

2.1实际比特数预测算法

在并行ABR算法中,待编码帧无法及时获得与其并行的编码帧的实际比特来获得准确的total_bits(i-1)值,因此本文引入模糊复杂度概念来预测与当前帧并行帧的实际比特数pre_bits,利用得到的预测帧比特值在下一帧未开始编码前更新total_bits,并在当前帧编码完成后使用实际的比特数替换预测的比特数再次更新total_bits,从而克服码率控制对并行结构的依赖性来获得更加精准的帧层QP,减小输出的实际码率与目标码率的偏差。

帧的SATD可以反映生成码流的大小,本文在预测帧的实际比特时引入模糊复杂度cplx_blur,其值由SATD得到

cplx_sum(i)=0.5×cplx_sum(i-1)+SATD(i)

(2)

cplx_count(i)=0.5×cplx_count(i-1)+1

(3)

cplx_blur(i)=cplx_xum(i)/cplx_count(i)

(4)

式中:cplx_sum为累计复杂度;cplx_count为累计帧数。在ABR算法中使用cplx_blur计算QP,而QP决定了帧的实际比特,所以cplx_blur与帧的实际比特有着特定的关系。为有效利用模糊复杂度进行研究,在ABR的并行码率控制的条件下对分辨率为2 560×1 600的测试序列PeopleOnStreet前150帧中的I帧与P帧的实际比特进行统计,同时也对832×480的测试序列Keiba的前250帧中的I帧与P帧的实际比特进行统计,得到的结果如图2所示。

从图2中可以发现cplx_blur与帧的实际比特之间符合幂函数的拟合,在编码时可以使用预处理得到的SATD计算cplx_blur从而利用式(5)得到预测的帧实际比特数pre_bits

pre_bite=α×cplx_blurβ

(5)

式中:α、β为模型参数。

具体步骤为:

1) 当前帧在码率控制开始前利用SATD(i)计算累计复杂度cplx_sum(i),在得到累计复杂度的基础上利用公式4计算当前帧的模糊复杂度cplx_blur(i),然后利用到当前一帧为止编码所产生的预测实际比特数之和total_bits(i-1)计算当前帧的QP。

2) 当前帧的一半CTU行完成编码后进行第一次参数更新,此时利用公式5计算当前帧的预测比特pre_bits(i),然后对total_bits(i)进行更新用于第i+1帧的码率控制

total_bits(i)=total_bits(i-1)+pre_bits(i)

(6)

3) 当前帧完成编码后进行第二次的参数更新,此时对当前帧的total_bits(i)再次进行更新,利用当前帧编码产生的实际比特数real_bits(i)替换预测比特数pre_bits(i)

total_bits(i)=total_bit(i)-pre_bits(i)+real_bits(i)

(7)

算法流程如图3所示。

2.2帧层QP补偿算法

ABR算法中虽然每个CTU的QP根据其所包含CU的被参考程度的不同进行了相应的调整,在CTU层进行了码率控制,但是CU只是在帧层QP已经确定的情况下,对QP进行补偿。如果帧层的QP存在较大的偏差,即使进行了补偿也达不到精确码率控制的效果,因此帧层QP值越精确越好。在文献[8]中提出了帧层补偿算法,即在ABR算法中利用已编码帧的平均量化参数和实际比特和目标比特的差值,对原算法在帧层获得的QP进行再次修正,但是此算法在进行补偿时,QP补偿值是固定的,补偿不够精确,因此在利用本文的实际比特数预测算法基础上,对帧层补偿算法的QP补偿值进一步优化。

在帧层补偿算法中,其补偿值是一个固定值,在初始化后就不能修改,但是QP的调整值固定不变,那么对于不同复杂度的图像采用相同的补偿值是不够精确的。因此本文对QP的调整值进行动态的调整,引入实际输出比特和目标比特的差值diff_bits和到当前帧为止所有帧的平均SATD值avg_satd这两个因子。QP调整值大小由两个因素决定:实际输出比特和目标比特的差值diff_bits越大,QP的调整值就大;图像运动越剧烈或者复杂度越高,QP的调整值就大,反之则小。本文选择当前帧的diff_satd与avg_satd的商来衡量图像的复杂度(complexity_SATD)。由此可见,只有当实际输出比特和目标比特的差值diff_bits越大,同时图像的复杂度越高,QP的补偿值才越大。如果diff_bits较大,但是复杂度低的话,QP的调整值会受到复杂度的约束而变小。因此可利用式(10)来确定QP调整值的大小

(8)

(9)

(10)

式中:diff_satd是指当前帧的SATD与avg_satd的差值;wbits是指每帧分配的目标比特;real_bits是指到当前帧为止产生的总比特数;target_bits是指到当前帧为止的目标比特数;avg_qp是前面已编码帧的QP平均值;q为当前帧未进行修改的QP值。

3实验结果与分析

本文实验环境为4个InterCore3.3GHz核的Windows平台,采用了X265编码器的默认设置,使用同一视频序列的不同目标码率对本文算法的有效性进行验证。实验从ClassA,B,C,D,E中各取出一个序列,分别为:Traffic,Cactus,BasketballDrill,BQSquare,FourPeople,其中除Traffic总帧数为150帧,编码帧数设为150帧,其他序列编码帧数为250帧,其中目标码率使用HEVCCallforProposal(CAP)(ITU-T,etal.,2010)中规定的码率进行验证。

实验结果如表1~2所示,表1显示的是实际输出码率分别在实际比特数预测算法的作用下与原始算法作用下的结果,表2显示的在实际比特数预测算法的基础上使用帧层补偿算法在固定补偿值与自适应补偿值作用下的结果。表1的结果表明原来ABR算法的平均码率差别约为5.20%,而实际比特数预测算法的平均码率差别约为1.82%,平均码率误差减小了约为3.38%,而从图4~7中可以看出原ABR算法与实际比特数预测算法的平均PSNR曲线相重合,因此实际比特数预测算法在平均PSNR不变的情况下提高了码率控制的准确性;表2显示的是在实际比特数预测算法基础上使用帧层补偿算法的码控结果,其表明固定补偿值的帧层补偿算法的平均码率差别约为1.08%,而自适应补偿值的帧层补偿算法的差别约为0.78%,平均码率误差减小了约为0.3%,从图4~7中可以看出原自适应补偿值的帧层补偿算法平均PSNR略优于固定补偿值的帧层补偿算法,并且帧层补偿算法相比于原算法在平均PSNR上提高了约为0.20dB。因此在实际比特数预测算法基础上使用帧层补偿算法在提高码率控制精确度的同时提高了平均PSNR。

表1实际比特数预测算法的码率结果

4总结

现有并行架构下的平均码率控制算法存在不精确性,本文提出了两种改进方法:帧的实际比特数预测算法和自适应补偿值的帧层补偿算法,前者根据并行结构下ABR算法无法及时获得与其并行的编码帧的实际比特来更新实际比特数之和,提出通过模糊复杂度与实际帧实际比特数的幂函数关系预测并行帧的实际比特数,利用预测的实际比特数来更新实际比特数之和,使ABR算法在并行架构下的QP值更加精确;后者将帧层补偿算法的固定补偿值根据实际输出比特和目标比特的差值和到当前帧的平均SATD进行修改使其能够自动调节大小,使得补偿值更加合理。通过这两种方法作用使得输出码率更接近目标码率,同时提高编码客观质量。

表2帧层补偿算法的码率结果

参考文献:

[1]MAHSATP,COLIND,MARYAMA,etal.HEVC:thenewgoldstandardforvideocompression[J].IEEEconsumerelectronicsmagazine,2012,1(3):36-46.

[2]GARYJS,OHMJR,HANWJ,etal.OverviewofthehighefficiencyvideoCoding(HEVC)standard[J].IEEEtransactionsonsystemsforvideotechnology, 2012,22(12):1649-1668.

[3]陈杰.H.264视频编解码传输算法平台及码率控制研究[D].上海:上海交通大学,2007.

[4]HUQ,ZHANGX,GAOZ,etal.Analysisandoptimizationofx265encoder[C]//Proc.IEEEVisualCommunicationsandImageProcessingConference.Valletta:IEEEPress,2014:502-505.

[5]蒋骁辰,李国平.基于AVS+实时编码的多核并行视频编码算法[J].电子与信息学报,2014,36(4):810-816.

[6]LORENM,RAHULV.ImprovedratecontrolandmotionestimationforH.264encoder[C]//Proc.IEEEInternationalConferenceonImageProcessing.SanAntonio,TX:IEEEPress,2007:309-312.

[7]MEHDIS,MOHSENJ,MAHMOUDR.Anadaptiveratecontrolforfasterbitrateshapinginx264basedvideoconferencing[C]//Proc.IEEEInternationalSymposiumonBroadbandMultimediaSystemsandBroadcasting(BMSB).Shanghai:IEEEPress,2010:1-4.

[8]田一姝,沈强,刘延伟,等.X264的平均比特率控制算法优化[J].计算机应用,2013,33(3): 680-683.

陈辰灿(1989— ),硕士生,主研视频编解码技术;

滕国伟(1975— ),硕士生导师,主要研究方向为数字音视频编解码技术、智能视频分析等;

赵海武(1973— ),硕士生导师,主要研究方向为数字视频编解码、转码技术;

李国平(1974— ),硕士生导师,主要研究方向为数字音视频编解码技术、复用技术;

王国中(1962— ),博士生导师,主要研究方向为视频编解码与多媒体通信、图像处理等。

责任编辑:时雯

Parallelbit-ratecontrolalgorithmforHEVC

CHENChencan,TENGGuowei,ZHAOHaiwu,LIGuoping,WANGGuozhong

(School of Communication and Information Engineering, Shanghai University, Shanghai 200072,China)

Keywords:videocoding;ratecontrol;averagebit-rate;actualbits

Abstract:Duringthetransmissionprocessofvideocommunication,thenetworkbandwidthislimited,inordertoachievehighqualityofdecodedimageundertheconditionofagiventargetbitrate,aratecontrolregulationisrequiredinthevideocodec.TheparallelencodingandratecontrolforHEVChasbecomeadvancedresearchfocus.Theaveragebitratecontrolalgorithmsunderexistingparallelstructureisrestrainedbytheinter-dependent,sothecodingframecannottimelyobtaintheactualbitsofframeswhichareinparallelwithit.Therefore,inthispaper,itpredictstheactualbitsoftheframeforratecontrol.Onthisbasis,anewcompensationalgorithmisproposedintheframelayertoadjusttheQuantizationParameter(QP)ofthecurrentframe.Theresultsshowthatthefirstmethodreducestherateoferrorby3.38%,andthesecondoneimprovestheaveragePeakSignal-to-NoiseRatio(PSNR)of0.204dBandwith0.3%reductionoftherateoferrorsimutaneously.

中图分类号:TN919.8

文献标志码:A

DOI:10.16280/j.videoe.2016.01.002

基金项目:上海市自然科学基金项目(14ZR1415200);国家自然科学基金项目(61271212)

作者简介:

收稿日期:2015-08-10

文献引用格式:陈辰灿,滕国伟,赵海武,等. 一种面向HEVC的并行码率控制算法[J].电视技术,2016,40(1):7-12.

CHENCC,TENGGW,ZHAOHW,etal.Parallelbit-ratecontrolalgorithmforHEVC[J].Videoengineering,2016,40(1):7-12.