基于梯度的HEVC自适应码率控制算法研究

2016-06-24 05:53付文杰何小海熊淑华林宏伟卿粼波
电视技术 2016年4期
关键词:自适应梯度

付文杰,何小海,熊淑华,林宏伟,卿粼波

(四川大学 电子信息学院,四川 成都 610065)

基于梯度的HEVC自适应码率控制算法研究

付文杰,何小海,熊淑华,林宏伟,卿粼波

(四川大学电子信息学院,四川成都610065)

摘要:针对新一代视频编码标准HEVC中的码率控制问题,提出了一种基于梯度的自适应码率控制算法。算法的主要特点是自适应获取每个LCU的梯度来表示其复杂度,根据复杂度分配LCU层目标比特。同时,在分配帧层目标比特时利用缓冲区的状态信息,以使编码器输出的实际码率更符合给定的目标码率,并使缓冲区滞留的数据尽量少,即传输时延尽量小。实验结果表明,该算法与标准的HEVC码率控制提案K0103相比,缓冲区滞留数据量平均减少约39.31%,峰值信噪比平均提高约0.54 dB,同时实际码率与目标码率之间的码率偏差平均降低约0.39%。

关键词:HEVC;码率控制;自适应;梯度

1HEVC编码

随着技术的不断进步,视频分辨率逐渐提高,视频编解码标准也在不断更新,经过MPEG、H.264/AVC等视频编解码标准的发展与完善,新一代视频编解码标准(High Efficiency Video Coding,HEVC)诞生。HEVC与之前的标准相比,具有更加有效灵活的编解码方式[1],编码码率相对于H.264/AVC节约了50%左右。

虽然HEVC编码标准的数据压缩率相对于H.264/AVC标准更高,但是由于视频序列每帧的信息量略有差异,使得编码码率大小有波动。而在实际应用中,系统提供的带宽一般是固定且有限的。因此,码率控制问题应运而生。本文算法在标准的HEVC码率控制方法基础上进行改进,使每帧输出比特数尽量平稳,以保证在有限带宽下,实时传输编码码流,尽可能降低时延,同时避免缓冲区数据溢出。

HEVC标准码率控制过程分为两步[2],第一步是根据帧结构、纹理复杂度等参数进行目标比特分配;第二步是根据目标比特更新编码参数,进行编解码,最终得到实际比特。因此,目标比特分配直接影响实际比特分配,对于码率控制效果的优化具有重要意义。

在视频实时传输系统中,编解码器中都设有缓冲区以暂时存储数据,缓冲区滞留数据量的大小代表该系统时延大小。为了实时传输数据,尽可能降低时延,必须降低缓冲区滞留数据量。文献[2]在现有的R-λ模型基础上提出了一种基于缓冲区状态的码率控制算法,设置较小的缓冲区,利用缓冲区状态进行码率控制。文献[3]提出了一种基于梯度的帧内码率控制算法,通过建立帧内平均像素梯度值与目标比特之间的关系来达到码率控制的目的,另外还提出一种新的目标比特与QP(量化参数)之间的对应关系模型。文献[4]在H.264/AVC标准码率控制模型基础上进行改进,在宏块层与帧层之间增加了宏块行层,并在帧层比特分配的过程中使用了缓冲区状态反馈,使已编码帧的缓冲区状态对下一待编码帧的码率分配进行调节,减少了缓冲区滞留数据量,即降低了时延。

2HEVC标准码率控制模型介绍

目前,HEVC标准的码率控制过程分为三层:GOP(图像组)层、帧层和LCU(最大编码单元)层。码率控制模型经历了R-Q模型、R-ρ模型后,现在普遍使用的是模R-λ型。下面对码率控制过程及三种模型进行简要介绍。

2.1码率控制过程

GOP层的码率控制思想主要是利用提前设置的目标码率、序列帧率及GOP的大小等参数得到一个GOP的目标比特[5]

(1)

式中:Rtar表示配置文件设置的目标码率;f表示测试序列的帧率;Ncoded表示已编码帧数;Rcoded表示已编码比特数;sw表示平滑窗大小[6];NGOP表示GOP的大小。

帧层目标比特由TGOP、当前帧在GOP中所占权重等参数决定。其中,对于全I帧,GOP大小为1,帧层目标比特即GOP层目标比特,Tpic=TGOP。对于非全I帧,每帧目标比特的权重不同,具体权重在文献[7]中有详细介绍。模型如下[7]

(2)

式中:CodedGOP表示当前GOP已编码比特数;ω表示当前帧在GOP中所占权重。

LCU层目标比特取决于当前LCU的复杂度占其所在帧未编码LCU的复杂度的权重

(3)

式中:Bitheader表示包含GOP标志位、帧标志位等数据在内的编码数据头信息;CodedPic表示当前帧已编码比特数;ω表示每个LCU在当前帧中复杂度所占权重。

2.2码率控制模型

文献[3]介绍了最初始的码率控制R-Q模型,其核心思想是将码率R与量化参数Q之间建立一种二次关系,文献[8]中提出了一种该模型的改进模型。但是由于该模型存在很多缺点,如R-Q之间的“蛋鸡悖论”问题,该模型在HEVC中不予采纳。

文献[9]中建立了码率R与参数ρ间的一种线性关系,即R-ρ模型。然而,该模型并没有克服R-Q模型的缺点,因此实用性不强。

标准的HEVC码率控制算法采用的是R-λ模型。R-D关系为D(R)=Ce-kR,其中C和k是与源数据特性相关的参数。令λ为R-D曲线的斜率,得到R-λ模型如下[10]

(4)

R-λ模型克服了R-Q模型的若干缺点,参数λ在率失真优化(RDO)之前根据目标码率确定,调整λ的值就可以调整目标码率,而且比QP更精确等。因此,模型是目前最常用的码率控制模型,本文算法实验环境HEVC也是采用该模型。

3基于梯度的自适应码率控制算法

码率控制算法的目的在于利用图像信息尽可能精确地预测目标比特,从而更精确地更新编码参数,得到更准确的实际比特。而预测目标比特通常采用的是复杂度权重的方法,常见的复杂度表示方式有MAD、SATD以及Sobel算子等。文献[11]改进了H.264/AVC的帧内码率控制算法,该改进算法将梯度作为复杂度的表示方式应用到H.264/AVC的R-Q模型中,模型参数进行自适应更新,使码率控制性能得到提升。文献[12]在H.264/AVC框架中证明了利用当前宏块与参考帧同位置宏块之间的绝对误差和SAD在帧间编码中表示复杂度的有效性,间接证明了梯度表示复杂度的算法在帧间预测编码的适用性。

结合文献[11]和文献[12]中的核心思想,本文主要介绍一种改进的基于梯度的自适应码率控制算法。本文中的自适应概念主要是针对非I帧图像,分别获取当前帧每个LCU的帧内、帧间梯度,当前LCU的复杂度选择二者的较小值,以LCU复杂度占当前帧总复杂度的比例来分配每个LCU的目标比特。同时,除第一帧外,每帧进行目标比特分配时利用已编码帧缓冲区状态信息调节目标比特分配,减少缓冲区滞留数据量,从而降低时延。

3.1梯度表示方法

参考文献[11]中H.264/AVC宏块梯度的表示方法,建立HEVC帧内基于梯度的复杂度计算模型如下 [12]中介绍的帧间表示复杂度的方式,建立帧间基于梯度的复杂度模型如下

Gintra(i,j,k)=

(5)

式中:Ix,y,k表示第k帧坐标为(x,y)位置的像素亮度。HEVC中LCU的尺寸是64×64,本文算法为了降低计算复杂度,采用隔点采样的方式求解LCU梯度。

R(x,y)=If(x,y)-Ir(x,y)

(6)

式中:If(x,y)表示当前位置像素亮度;Ir(x,y)表示参考帧同位置像素亮度;R(x,y)即当前位置像素与参考帧同位置像素亮度之差;Ginter(i,j,k)为帧间梯度。

帧总梯度为当前帧所有LCU梯度的累加和

(7)

式中:对于LCU的梯度GLCU(i,j,k),若当前帧为I帧,则直接采用帧内梯度表示当前LCU的复杂度,若当前帧为非I帧,则获取当前LCU的帧间梯度和帧内梯度,取较小值作为当前LCU复杂度的度量。

3.2缓冲区状态及比特分配

本文算法重点改善了帧层和LCU层目标比特分配,而GOP层目标比特分配方式以及编码参数更新方式仍按照标准模型进行。

根据式(2)得到帧层目标比特(后面称为标准目标比特)后,设定缓冲区的大小为标准目标比特的1/3。对于除第一帧以外的帧,帧层目标比特的分配由所有已编码帧累加的缓冲区滞留数据量进行反馈调整,调整后的目标比特称为修正目标比特。缓冲区数据量计算方式为

(8)

式中:Bitsactual表示每个LCU实际编码比特;Bitssize表示与LCU尺寸成正比的固定比特,已编码帧的所有LCU的差值累加即当前帧的缓冲区状态。

缓冲区反馈调整的主要目的是使当前帧的目标比特更加精确,编码后得到更加精确的实际比特,从而使当前帧累加到缓冲区的数据对缓冲区数据量有所调整。缓冲区滞留数据量对帧层目标比特的具体调整方式为

(9)

根据式(9)得到的帧层修正目标比特进行LCU层的目标比特分配。遍历每个LCU,获取其帧内梯度,若为非I帧,则获取帧间梯度,取帧内帧间梯度的较小值作为当前LCU的梯度,以其梯度权重分配目标比特并进行编码参数更新。

3.3本文算法具体流程

综合前文所述,本文算法的核心思想是对复杂度表示方式及帧层目标比特分配进行改进。复杂度表示方式采用帧内帧间梯度中的较小值,帧层目标比特分配过程利用了缓冲区状态信息。具体算法流程如下,流程图如图1所示。

1)根据视频序列的目标码率、帧率、GOP大小分配GOP层和帧层的目标比特(若为第一帧,则采用标准目标比特,若不是第一帧,则采用修正目标比特)。

2)计算当前帧每个LCU的帧内梯度表示复杂度。

3)判断当前帧是否为I帧,若是,则直接采用帧内梯度表示复杂度,否则计算帧间梯度,取帧内帧间梯度的较小值作为当前LCU的复杂度。

4)根据当前帧每个LCU的复杂度占帧总复杂度的比例为每个LCU分配目标比特。

5)根据每个LCU尺寸占当前帧尺寸的比例分配标准目标比特,即固定带宽。

6)每个LCU的实际编码比特与固定带宽的差值进行累加,即为缓冲区滞留数据量。

7)下一帧进行目标比特分配时由所有的已编码帧累加的缓冲区滞留数据量进行调整,得到下一帧的修正目标比特。

图1 本文算法流程图

4实验结果及分析

为了与K0103提案比较实验效果,本文实验采用只包含K0103提案的HEVC标准HM10.0测试模型。配置文件使用encoder_lowdelay_P_main,文件中设置GOP的大小为4。选取8个不同分辨率的标准YUV视频序列的前200帧分别在量化参数QP为22,27,32的情况下进行测试。另外,为了证明本文算法对突变图像同样具有普适性,将4个具有不同纹理特性的大小为832×480的标准YUV序列分别取前30帧,拼接成一个120帧的拼接YUV序列,即表1中的pinjie832×480。

本文实验平台为CPU为intelcorei5 3470 3.2GHz及内存为4Gbyte的PC。为了客观地分析本文算法,将不使用码率控制的情况下得到的实际码率作为码率控制的目标码率,在使用码率控制情况下对标准K0103提案和本文改进算法进行对比实验。

表1给出的是9个YUV视频序列在不同QP下的实验数据。Δr表示的是标准算法和改进算法的实际码率分别与目标码率相比的码率偏差。ΔPSNR表示改进算法与标准算法之间峰值信噪比之差

(10)

ΔPSNR=PSNRProposed-PSNRHM10.0

(11)

由结果可知,本文改进算法与标准HM10.0相比,码率偏差平均约降低了0.39%,峰值信噪比平均提高了0.54dB。而且对于拼接序列,本文算法也具有绝对优势,充分证明了本文码率控制算法的普适性。

对于本文增加的缓冲区的概念,所有已编码帧的每个LCU实际比特与固定带宽之间的差值累加即当前帧的缓冲区滞留数据量。表2给出了9个视频序列前200帧平均缓冲区滞留数据量。表示改进算法与标准算法相比,平均每帧缓冲区数据量差值百分比。

(12)

由结果可知,本文改进算法与标准HM10.0相比,缓冲区滞留数据最低降低11.86%,最高降低81.84%,平均降低约39.31%。因此,本文算法在固定带宽情况下,缓冲区滞留数据量大幅度减少,在低延时固定带宽情况下有较好的应用前景。

图2、图3分别为序列RaceHorses_416×240_30在QP为22时和序列Johnny_1 280×720_60在QP为27时的缓冲区滞留数据量对比。由图中曲线可以看出,本文算法缓冲区滞留数据量与K0103相比有很大程度的减少,进一步论证了本文算法的优越性。

图2 RaceHorses QP=22缓冲区状态

图3 Johnny QP=27缓冲区状态

为了验证本文改进算法码率控制的平稳性效果,实验统计了改进算法与标准HM10.0算法每帧编码实际输出比特。图4、图5分别为序列RaceHorses_416×240_30在QP为22和序列Johnny_1 280×720_60在QP为27时每帧实际输出比特。由图中可以看出,本文改进算法与标准算法K0103相比,实际输出比特更加平稳,可以有效避免压缩码流在固定带宽传输情况下发生缓冲区上溢或者下溢。

表1改进算法与标准HM10.0码率及PSNR对比

序列名称QP目标码率/(bit·s-1)实际码率/(bit·s-1)Δr/%HM10.0改进HM10.0改进ΔPSNR/dBRaceHorses416×240224809456481670248222620.150.270.69272883536289144428921390.270.290.73321544036155151415478220.480.250.68BasketballPass416×240222210216222189822167840.520.290.53271157022116952411661861.080.790.50325969386047946004001.320.580.30BQMall832×480222685452626930770269015350.280.180.37271611265416184762161621230.450.310.68329419342949952294483320.850.310.74PartyScene832×480221842129618536174184501340.620.160.72279790100988188298565180.930.680.49325428650551185054737521.530.830.14Johnny1280×720221979156219907314198034340.580.060.29271105478411162875110902220.980.320.52326353335642807463879701.180.550.76FourPeople1280×720229037534915763491114101.330.820.99275118264516451251239450.910.110.40323094790311392631001450.620.170.27BasketballDrive1920×1080227113323871238634712858240.150.210.39272929825029397710293698920.340.240.73321510922415189728151453620.530.240.59BQTerrace1920×1080227527441175461088753311330.250.080.31272281362722912274228749880.430.270.41321092550110946234109356620.190.090.37pinjie832×480222761575027870870277913770.920.640.81271668155016864123168151731.090.800.803297972631006165098786402.690.830.34平均————0.770.380.54

5结论

本文的码率控制算法利用视频图像的纹理特性及帧间相似性,在进行LCU层目标比特分配时采用了自适应的帧内帧间梯度选择算法,利用梯度权重分配目标比特。在帧层目标比特分配时采用了缓冲区状态反馈,调整帧层目标比特分配,使实际输出比特更加精确。由实验结果可知,本文改进算法与K0103相比,码率偏差平均降低了约0.39%,峰值信噪比平均提高了约0.54dB,同时在固定带宽情况下,本文算法的缓冲区滞留数据量平均减少了约39.31%,同时实际传输比特更加平稳,可以有效避免缓冲区溢出。

[1]SULLIVANGJ,OHMJR,HANWJ,etal.Overviewofthehighefficiencyvideocoding(HEVC)standard[J].IEEEtransactionsoncircuitsandsystemsforvideotechnology,2012, 22(12): 1649-1668.

表2改进算法与标准HM10.0所需最大带宽及缓冲区滞留数据量对比

序列名称QPBufused/bitHM10.0改进Δbufused/%RaceHorses416×240222214894784634-64.57271743324987536-43.35321133919758803-33.08BasketballPass416×24022951508578078-39.2527563738384138-31.8632317375236169-25.59BQMall832×4802276637884497174-41.322759102513766256-36.283238198282562047-32.93PartyScene832×4802286232025905435-31.522753753454266216-20.633232431372857657-11.89Johnny1280×7202263797021523254-76.12273844618698039-81.843228466451155708-59.40FourPeople1280×7202237239951270604-65.882725462601864394-26.783216400161429376-12.84BasketballDrive1920×1080222656018214188638-46.5827137559108154489-40.723267220053866767-42.48BQTerrace1920×10802227563031165206900-40.0427112367248174444-27.253259085075207716-11.86pinjie832×4802268695413586887-47.792756834953583507-36.953239714032677698-32.58平均———-39.31

图4 RaceHorses QP=22每帧实际比特

图5 Johnny QP=27每帧实际比特

[2]YANGZZ,LIS,LUOZY,etal.LowdelayratecontrolforHEVC[C]//Proc. 2014IEEEInternationalSymposiumonBroadbandMultimediaSystemsandBroadcasting(BMSB).[S.l.]:IEEE, 2014:1-5.

[3]TIANL,ZHOUYM,CAOXJ.Anewrate-complexity-QPalgorithm(RCQA)forHEVCintra-pictureratecontrol[C]//Proc. 2014InternationalConferenceonComputing,NetworkingandCommunications(ICNC).[S.l.]:IEEE,2014:375-380.

[4]LEEYG,SONGBC.AnIntra-frameratecontrolalgorithmforultralowdelayH.264/advancedvideocoding(AVC)[J].IEEEtransactionsoncircuitsandsystemsforvideotechnology,2009,19(5):747-752.

[5]WANGMH,LIHL.Anefficientframe-contentbasedintraframeratecontrolforhighefficiencyvideocoding[J].IEEEtransactionsonsignalprocessingletters,2014,22(7):896-900.

[6]XUL,ZHAOD,JIX,etal.Window-levelratecontrolforsmoothpicturequalityandsmoothbufferoccupancy[J].IEEEtransactionsonimageprocessing,2011,20(3): 723-734.

[7]LIB,LIL,LIHQ.RatecontrolbyR-lambdamodelforHEVC[C]//Proc.JointCollaborativeTeamonVideoCoding(JCT-VC)ofITU-TSG16WP3andISO/IECJTC1/SC29/WG11,11thMeeting.Shanghai:IEEE,2012:29-34.

[8]LIZG,PANF,LIMKP,etal.AdaptivebasicunitlayerratecontrolforJVT[C]//Proc.JointVideoTeam(JVT)ofISO/IECMPEG&ITU-TVCEG,DocJVT-G012-r1, 7thMeetingPattayaII.Thailand:IEEE,2003:76-82.

[9]HEZ,KIMYK,MITRAS.Low-delayratecontrolforDCTvideocodingvia-domainsourcemodeling[J].IEEEtransactionsoncircuitsandsystemsforvideotechnology,2001,11(8):928-940.

[10]LIB,LIHQ,LIL,etal.λdomainratecontrolalgorithmforhighefficiencyvideocoding[J].IEEEtransactionsonimageprocessing,2014, 23(9): 3841-3854.

[11]JINGX,CHAULP,SIUWC.Framecomplexity-basedrate-quantizationmodelforH.264/AVCintraframeratecontrol[J].IEEEtransactionsonsignalprocessingletters,2008(15):373-376.

[12]WUD,PANF,LIMKP,etal.FastintermodedecisioninH.264/AVCvideocoding[J].IEEEtransactionsoncircuitsandsystemsforvideotechnology,2005,15(7):953-958.

付文杰,女,硕士生,主要研究方向为图像通信;

何小海,博士生导师,主要研究方向为图像处理、模式识别和图像通信;

熊淑华,女,硕士生导师,主要研究方向为多媒体通信;

林宏伟,博士生,主要研究方向为图像通信;

卿粼波,硕士生导师,主要研究方向为图像处理、嵌入式系统、机电一体化。

责任编辑:时雯

Adaptive rate control algorithm based on gradient for HEVC

FU Wenjie,HE Xiaohai,XIONG Shuhua,LIN Hongwei,QING Linbo

(CollegeofElectronicsandInformationEngineering,SichuanUniversity,Chengdu610065,China)

Abstract:Due to the problems such as rate control of the high efficiency video coding standard, an adaptive rate control algorithm based on gradient is proposed. In the algorithm, each LCU’s gradient is adaptively obtained to represen its complexity, and then target bits depending on the complexity of the LCU is allocated.At the same time,in order to make the actual bits of each frame as closely as possible to the target bits, the buffer status feedback is used to minimize the delayed buffer data . The experimental results show that compared with the rate control algorithm in HEVC standard, the delayed buffer data is reduced about 39.31%, the peak signal-noise ratio (PSNR) is increased about 0.54 dB, and the bitrate error is reduced about 0.39% on average.

Key words:HEVC; rate control; adaptive; gradient

中图分类号:TN919.81

文献标志码:A

DOI:10.16280/j.videoe.2016.04.001

基金项目:国家自然科学基金项目(61471248);四川省科技计划项目(2015JY0189);四川省教育厅2014年研究生教育改革创新项目(2014-教-034)

作者简介:

收稿日期:2015-11-23

文献引用格式:付文杰,何小海,熊淑华,等. 基于梯度的HEVC自适应码率控制算法研究[J].电视技术,2016,40(4):1-6.

FU W J,HE X H,XIONG S H,et al. Adaptive rate control algorithm based on gradient for HEVC [J].Video engineering,2016,40(4):1-6.

猜你喜欢
自适应梯度
一个带重启步的改进PRP型谱共轭梯度法
一个改进的WYL型三项共轭梯度法
随机加速梯度算法的回归学习收敛速度
强Wolfe线搜索下的修正PRP和HS共轭梯度法
一种自适应Dai-Liao共轭梯度法
一个具梯度项的p-Laplace 方程弱解的存在性
浅谈网络教育领域的自适应推送系统
以数据为中心的分布式系统自适应集成方法
自适应的智能搬运路径规划算法
Ka频段卫星通信自适应抗雨衰控制系统设计