计算机应用   2016, Vol. 36 Issue (11): 2993-2997,3005  DOI: 10.11772/j.issn.1001-9081.2016.11.2993
0

引用本文 

廖俊东, 刘立程, 郝禄国, 刘辉. H.265/HEVC中基于R-λ模型码率控制的优化算法[J]. 计算机应用, 2016, 36(11): 2993-2997,3005.DOI: 10.11772/j.issn.1001-9081.2016.11.2993.
LIAO Jundong, LIU Licheng, HAO Luguo, LIU Hui. Optimization algorithm based on R-λ model rate control in H.265/HEVC[J]. Journal of Computer Applications, 2016, 36(11): 2993-2997,3005. DOI: 10.11772/j.issn.1001-9081.2016.11.2993.

通信作者

廖俊东(1990-), 男, 重庆人, 硕士研究生, 主要研究方向:视频通信编码, liao_ljd@163.com

作者简介

刘立程(1972-), 男, 福建上杭人, 副教授, 博士, 主要研究方向:无线通信、数字信号处理;
郝禄国(1968-), 男, 河北霸县人, 讲师, 博士, 主要研究方向:多媒体通信、数字信号处理;
刘辉(1991-), 男, 广东韶关人, 硕士研究生, 主要研究方向:视频通信编码

文章历史

收稿日期:2016-05-05
修回日期:2016-06-23
H.265/HEVC中基于R-λ模型码率控制的优化算法
廖俊东, 刘立程, 郝禄国, 刘辉    
广东工业大学 信息工程学院, 广州 510006
摘要: 在H.265/HEVC基于R-λ模型码率控制算法中,为了提高最大编码单元(LCU)的比特分配的效果以及参数(αβ)更新的精度,提出一种码率控制优化算法。该算法主要是利用当前最大编码单元原始比特进行比特分配,以及利用编码失真度对参数(αβ)更新。实验结果表明,在恒定比特率情况下,相对于HM13.0码率控制算法三分量峰值信噪比(PSNR)增益至少提高0.76 dB,编码传输比特每帧消耗比特至少降低0.46%,编码时间至少减少0.54%。
关键词: H.265/HEVC    码率控制    R-λ模型    比特分配    参数更新    
Optimization algorithm based on R-λ model rate control in H.265/HEVC
LIAO Jundong, LIU Licheng, HAO Luguo, LIU Hui     
College of Information Engineering, Guangdong University of Technology, Guangzhou Guangdong 510006, China
Background: LIAO Jundong, born in 1990, M. S. candidate. His research interests include video communication coding
LIU Licheng, born in 1972, Ph. D., associate professor. His research interests include wireless communication, digital signal processing
HAO Luguo, born in 1968, Ph. D., lecturer. His research interests include multimedia communication, digital signal processing
LIU Hui, born in 1991, M. S. candidate. His research interests include video communication coding
Abstract: In order to improve the bit-allocation effect of the Largest Coding Unit (LCU) and the parameter-update precision (αβ), in the rate control algorithm of H.265/HEVC based R-λ model, an optimized rate control algorithm was proposed. By utilizing the existing encoding basic unit, bit allocation was carried out, and the parameters (α, β) were updated by using the coding distortion degree. The experimental result shows that in the constant bit rate case, compared to the HM13.0 rate control algorithm, three component PSNR gain improves at least 0.76 dB, the coding transmission bit reduces at least by 0.46%, and the coding time reduces at least by 0.54%.
Key words: H.265/HEVC (High Efficiency Video Coding)    rate control    R-λ model    bit allocation    parameter update    
0 引言

在视频通信中,视频压缩效率和编码视频质量,以及传输带宽与编码码率的适配性始终是研究者们最关注的问题。为了解决这一问题,在目前的主流视频编码标准H.264/AVC(Advanced Video Coding)[1]和最新的视频编码标准H.265/HEVC(High Efficiency Video Coding)[2]中,均采用了码率控制关键技术。码率控制技术一直是研究的热点,国内外研究者相继提出过多种关于码率控制的算法。在H.265/HEVC中,其中具有代表性的码率控制算法主要有基于R-Q模型的JCTVC-H0213[3]算法以及基于R-λ模型JCTVC-K0103[4]算法。基于R-λ模型码率控制算法[5]通过建立率失真优化模型得到拉格朗日因子(λ),利用拉格朗日因子求得量化参数(Quantization Parameter,QP)。此类算法相对于基于R-Q模型的码率控制算法,其码率控制效果更优,比特波动更小。但是仍存在不足:首先在对最大编码单元(Largest Coding Unit,LCU)层比特分配时利用均值绝对差(Mean Absolute Difference,MAD)的预测值进行分配,只能部分体现LCU残差的比特数,不能充分体现LCU非残差消耗比特数带来的效果,这会影响到LCU层比特分配的效果;接着在参数(αβ)更新过程中,通过已编码单元平均每像素目标比特和拉格朗日因子建立关系[6]进行更新参数,只能近似逼近当前编码单元的特征。针对这些不足,码率控制性能还有提升的空间。

本文提出一种基于最大编码单元的比特分配和模型参数(αβ)更新的码率控制优化算法。此算法充分利用当前编码单元的原始比特进行编码单元层的比特分配;通过编码单元的失真度和视频序列特性的相关参数对参数(αβ)进行更新。实验结果表明本文算法在码率控制精度与编码效率方面有较好效果。

1 基于R-λ模型码率控制算法

当前视频编码的码率控制算法主要分为两个部分:1) 根据目标码率为不同编码单元分配目标比特数;2) 根据RλλQP的关系模型确定不同编码单元的量化参数。图片层(Group Of Pictures, GOP)是码率控制算法需要处理的最大编码单元, 一个图片组包括多幅图片,一幅图片包含多个基本编码单元。

1.1 目标比特分配

1.1.1图片组层(GOP)比特分配算法

首先计算每幅图片的目标比特数[5]

$ Rat{e_{{\text{AvgPic}}}} = Rat{e_{{\text{tar}}}}/f $ (1)

其中:f为帧率,Ratetar为各编码图片的目标码率。

GOP级别的比特分配[5]为:

$ {T_{{\text{AvgPic}}}} = Rat{e_{{\text{AvgPic}}}} \cdot \left( {{N_{{\text{coded}}}} + SW} \right) - Rat{e_{{\text{coded}}}}/SW $ (2)
$ {T_{{\text{GOP}}}} = {T_{{\text{AvgPic}}}} \cdot {N_{{\text{GOP}}}} $ (3)

已编码图片的数量为Ncoded,这些图片消耗的比特数为Ratecoded,当前GOP中的图片数量为NGOPSW(Sliding Window)是平滑比特分配的滑动窗口的大小,通常设定为40,其中TAvgPic为每幅图像的平均目标比特数,TGOP为每个GOP分配目标比特数。

1.1.2 图片层目标比特分配

当前图片的目标比特率[5]为:

$ {T_{{\text{curPic}}}} = \frac{{{T_{{\text{GOP}}}} - Rat{e_{{\text{GOPcoded}}}}}}{{\sum\limits_{i = 1}^{{\text{Notcpics}}} {{\omega _i}} }} \cdot {\omega _{{\text{curpic}}}} $ (4)

当前GOP层已消耗比特数为RateGOPcodedωcurpic是GOP中每幅图像的比特分配权重,TGOP为当前GOP目标比特数; Notcpics为未编码图像数。

1.1.3 最大编码单元(LCU)层的比特分配

根据图片层比特分配得到当前每幅图片的目标比特数,接着为每幅图片的最大编码单元(LCU)层进行比特分配[5],公式如下:

$ {T_{curLC{U_i}}} = \frac{{{T_{{\text{curPic}}}} - {T_{{\text{headbits}}}} - Rat{e_{{\text{Piccoded}}}}}}{{\sum\limits_{i = 1}^N {Rati{o_i}} }} \cdot {\omega _{{\text{curLCU}}}} $ (5)

其中:TcurPic表示当前图片的目标比特,Theadbits表示该图片头信息比特数的预测值,RatePiccoded表示当前图片已编码的单元所用的实际比特总数,ωcurLCU为每个最大编码单元的比特分配权重。

比特分配权重的计算公式[5]如下:

$ {\omega _{{\text{LCU}}}} = MA{D_{{\text{LCU}}}}^2 $ (6)
$ MA{D_{{\text{LCU}}}} = \frac{1}{{{N_{{\text{pixels}}}}}}\sum\limits_i {\left| {pre{d_i}} \right.} - \left. {or{g_i}} \right| $ (7)

ωLCU是每个LCU的权重,根据根据之前编码的,在同一级别图片中处于同一位置的最大编码单元的预测均值绝对差(MAD)进行计算,Npixels表示该最大编码单元像素值,prediorgi分别表示该最大编码单元预测比特数与原始比特数。

1.2 量化参数确定

量化参数确定包括两个方面的内容:第一是通过比特分配得到的目标比特计算量化参数;第二确定量化参数后的参数更新。通过对视频编码率失真性能的分析,采用R-D双曲模型[7]能更好地体现H.265/HEVC视频码率与失真的关系[5]

$ D(R) = C{R^{ - K}} $ (8)

其中:CK是与视频内容有关的模型参数。拉格朗日因子(λ)定义为R-D率失真曲线切线斜率的绝对值, 利用式(8)和λ的定义可以得到推导式(9)[5]

$ \lambda = - \frac{{\partial D}}{{\partial R}} = CK \cdot {R^{ - K - 1}} = \alpha \cdot {R^\beta } $ (9)

其中α=CK, β=-K-1二者都是与视频内容有关的模型参数。

而在实际的图片层以及最大编码单元层中,考虑到比特分配得到的目标比特数Tcur以及对应编码单元的总的像素数Npixels,可计算出平均每像素目标比特数(bits per pixel, bpp),其值为bpp=Tcur/Npixels。通过bpp与对应编码单元的拉格朗日因子[5]计算公式为:

$ \lambda = \alpha \cdot bp{p^\beta } $ (10)

同时通过大量的实验表明量化参数和拉格朗日因子的自然对数存在一次线性关系[5]

$ QP = a{\text{ln}}\lambda + b $ (11)

通过实验的测试取定ab分别为4.200 5和13.712 2。通过式(10)确定朗格朗日因子λ,由式(11)确定量化参数。

为了能够使码率控制更加精确,需要对αβ实时进行更新。HM13.0中基于R-λ码率控制算法中采用式(12)、(13)的参数更新方法[5]

$ {\alpha _{{\text{new}}}} = {\alpha _{{\text{old}}}} + {\delta _\alpha } \cdot \left( {{\text{ln}}\lambda {}_{{\text{real}}} - {\text{ln}}{\lambda _{{\text{comp}}}}} \right) \cdot {\alpha _{{\text{old}}}} $ (12)
$ {\beta _{{\text{new}}}} = {\beta _{{\text{old}}}} + {\delta _\beta } \cdot \left( {{\text{ln}}{\lambda _{{\text{real}}}} - {\text{ln}}{\lambda _{{\text{comp}}}}} \right) \cdot {\text{ln}}bp{p_{{\text{real}}}} $ (13)

其中:αoldβoldλreal为编码单元层(图片层、LCU层)确定量化参数时使用的αβλ值,bppreal为编码单元层编码完成后可得实际编码比特数,αnewβnew为更新后的值,δaδβ分别设置为0.1和0.05。实际已编码的λ值通过式(14)求得:

$ {\lambda _{{\text{comp}}}}{\text{ = }}{\alpha _{{\text{old}}}} \cdot bpp_{{\text{real}}}^{{\beta _{{\text{old}}}}} $ (14)

1.3基于R-λ模型码率控制算法的总结与分析

H.265/HEVC中基于R-λ的码率控制算法在编码性能方面有所提高,但在某些模块存在可以改进优化的地方。在最大编码单元层(LCU)比特分配中,现行算法(如HM.13.0算法)在求解比特分配权重(ωLCU)用到的是当前图片处于相同编码层距离最近的最大编码单元对应位置均值绝对差(MAD)的平方[8],即通过时域预测得到。但MAD的预测值只能一定程度上表征最大编码单元残差所需要的比特数,无法体现基本单元的非残差部分消耗的比特数所带来的影响,这会导致最大编码单元层比特分配无法达到最优。同时在现行的码率控制算法的参数更新过程中,采用了最小均方误差(Least Mean Square,LMS)[9]的方法,即通过实际使用λreal与计算得到的λcomp之间的平方误差达到最小,并以此调整参数(αβ)值,其中λrealλcomp之间平方误差的计算法公式如下:

$ {R_e}^2 = {\left( {In{\lambda _{{\text{real}}}} - {\text{In}}{\lambda _{{\text{comp}}}}} \right)^2} $ (15)

在计算λcomp时使用了原来模型的参数αoldβold,其本身并不能反映当前序列的参数特征,因此以λrealλcomp之间的平方误差来更新αβ值,得到的更新模型只是近似于当前视频序列的特征。

2 基于R-λ模型码率控制优化算法 2.1 最大编码单元(LCU)层比特分配优化算法

H.265/HEVC中基于R-λ的码率控制算法中,利用时域预测得到的MAD,求解比特分配权重(ωLCU),进而进行最大编码单元层的比特分配(式(5)~式(7))。MAD只能部分体现最大编码单元残差所需要的比特数,无法体现基本单元的非残差部分消耗的比特数所带来的影响,这会导致最大编码单元层比特分配效果无法达到最优。本文提出一种通过最大编码单元的原始比特,求解比特分配比重,进而进行编码单元层的比特分配。具体的算法步骤如下:

第一步    通过R-λ率失真优化模型,建立当前最大编码单元的原始比特与当前编码单元拉格朗日因子的关系如下:

$ {R_{LC{U_i}}} = {\alpha '_{LC{U_i}}}{\lambda _{LC{U_i}}}^{{{\beta '}_{LC{U_i}}}} $ (16)

其中:RLCUi表示当前最大编码单元的原始比特,λLCUi为当前编码单元的拉格朗日因子,αLCUiβLCUi则是通过建立的R-λ率失真优化模型的式(9)推导得到:

$ {{\alpha '}_{LC{U_i}}} = {\left( {1/{\alpha _{LC{U_i}}}} \right)^{1/{\beta _{LC{U_i}}}}} $ (17)
$ {\beta '_{LC{U_i}}} = 1/{\beta _{LC{U_i}}} $ (18)

其中:αLCUiβLCUi分别表示与视频内容特性相关的当前编码单元的参数。

第二步    计算当前图片中每个最大编码单元原始比特占当前图片总的原始比特的比重φi,计算公式如下:

$ {\varphi _i} = {R_{LC{U_i}}}/\sum\limits_{i = 1}^N {{R_{LC{U_i}}}} $ (19)

其中:RLCUi为当前最大编码单元的原始比特,N表示当前图片中所包含总的最大编码单元数。

第三步    当前最大编码单元比特分配计算公式:

$ {T_{curLC{U_i}}} = \frac{{{T_{{\text{curPic}}}} - {T_{{\text{headbits}}}} - Rat{e_{{\text{Piccoded}}}}}}{{\sum\limits_{i = 1}^N {{\varphi _i}} }} \cdot {\varphi _i} $ (20)

其中:TcurPic表示当前图片的目标比特,Theadbits表示该图片头信息比特数的预测值,RatePiccoded表示当前图片已编码单元所用的实际比特总数,φi为每个编码单元对应的比特分配比重,N表示当前图片中所包含总的最大编码单元数。

2.2 参数(αβ)更新优化算法

由于参数(αβ)是与视频内容特性相关的模型参数,在编码过程当中对应每一幅图片或者是每一个最大编码单元其参数都不相同,所以在确定量化参数后需要对图片层以及最大编码单元层的参数进行更新。

在图片层以及最大编码单元层中,通过比特分配得到的平均每像素目标比特数(bpp)相对于编码后得到实际的平均每像素目标比特数(bppact)存在一定的偏差。根据式(10)可以得到当前已最大编码单元的拉格朗日因子为:

$ {\lambda _{{\text{old}}}} = {\alpha _{{\text{old}}}}bp{p^{{\beta _{{\text{old}}}}}} $ (21)

其中:αoldβold为当前已编码单元确定量化参数使用的参数。

由于相邻即将编码的编码单元需要更新的参数αnewβnew只与编码单元的内容特性相关,不会随着比特分配得到的目标比特发生改变。所以当λ在码率控制当中取值等于λold时,当前已编码单元实际的平均每像素目标比特数bppact根据式(10)同样满足式(22):

$ {\lambda _{{\text{old}}}} = {\alpha _{{\text{new}}}}bp{p_{{\text{act}}}}^{{\beta _{{\text{new}}}}} $ (22)

为了验证式(22)的合理性,将本文优化算法在H.265/HEVC参考软件HM13.0[10]中进行验证,选取了其中的6组数据进行计算分析。

表 1 λold数据统计分析表

其中,αnewβnew表示在实验中更新后的参数,bppact为当前编码单元实际的平均每像素目标比特数,λold为实验获取的αnewβnewbppact的数据,通过式(22)计算得到的当前已编码单元的拉格朗日因子的值,λold为实验编码得到的实际当前已编码单元的拉格朗日因子的值。λoldλold存在一定的数值差,是因为基于R-λ率失真优化模型在实际编码过程中,比特分配存在误差;同时在λold计算中,对实验中获得的αnewβnewbppact数据,进行了保留小数处理的效果。

通过已编码单元得到的实际平均每像素目标比特数bppact,由式(8)可得其视频编码过程中的实际编码失真计算公式如下:

$ D\left( {bp{p_{{\text{act}}}}} \right) = C \cdot bp{p_{{\text{act}}}}^{ - K} $ (23)

根据建立的R-λ率失真优化模型式(9)可以得到αnew=CK,βnew=-K-1。将其变形转化可以得到式(24)和式(25):

$ K = - {\beta _{{\text{new}}}} - 1 $ (24)
$ C = {\alpha _{{\text{new}}}}/K = {\alpha _{{\text{new}}}}/\left( { - {\beta _{{\text{new}}}} - 1} \right) $ (25)

CK模型参数计算式(22)和(23)代入实际编码失真计算式(23)可以得到关于实际编码失真与更新参数之间的计算式(26):

$ D\left( {bp{p_{act}}} \right) = \frac{{{\alpha _{{\text{new}}}}}}{{ - {\beta _{{\text{new}}}} - 1}}bp{p_{{\text{act}}}}^{1 + {\beta _{{\text{new}}}}} $ (26)

针对当前视频编码码率控制算法中参数更新过程,通过式(22)、(26)联立求解可以求得参数更新值βnew的关系式(27),将βnew的更新公式代入式(20)求得参数更新值αnew的关系式(28):

$ {\beta _{{\text{new}}}} = - \left[ {1 + \left( {{\lambda _{{\text{old}}}}bp{p_{{\text{act}}}}} \right)/D\left( {bp{p_{{\text{act}}}}} \right)} \right] $ (27)
$ \begin{gathered} {\lambda _{{\text{old}}}} = {\alpha _{{\text{new}}}}bp{p_{{\text{act}}}}^{{\beta _{{\text{new}}}}}{\text{ = }}{\alpha _{{\text{new}}}} \cdot \left( {1/bp{p_{act}}^{ - {\beta _{new}}}} \right) \Rightarrow \hfill \\ \;\;\;\;\;\;\;{\alpha _{{\text{new}}}} = {\lambda _{{\text{old}}}}bp{p_{{\text{act}}}}^{ - {\beta _{{\text{new}}}}} = {\lambda _{{\text{old}}}}bp{p_{{\text{act}}}}^{1 + {\lambda _{{\text{old}}}} \cdot bp{p_{{\text{act}}}}/D\left( {bp{p_{{\text{act}}}}} \right)} \hfill \\ \end{gathered} $ (28)

最终参数的更新公式就是式(27)和式(28)。其中D(bppact)为视频编码过程中的实际编码失真,λold为当前已编码单元的拉格朗日因子,bppact为当前已编码单元实际的平均每像素目标比特数。此码率控制优化算法参数更新过程充分运用了当前编码单元的信息参数,能最大限度提高码率控制精度。

3 算法性能测试与分析

码率控制算法的性能主要通过编码传输比特和编码输出峰值性噪比以及体现编码效率的编码时间进行有效的评估。本文的优化算法在H.265/HEVC参考软件HM13.0进行一系列的测试,在测试中选用了两种不同的编码配置文件,包括低延时类型LDMain和随机接入类型RAMain;在序列配置文件方面选用了5种不同的序列文件包括:BQMall、PartyScence、BQSquare、ChinaSpeed、BasketballDrill,不同的序列配置文件其分辨率也有所不同,其序列配置文件和编码配置文件均来自JCTVC公共测试条件(Common Test Conditions,CTC)[11]。不同的序列配置文件包含有不同的视频分辨率,在此统一设置编码帧数为200帧。同时在上述同等配置条件下,对HM13.0码率控制算法与本文提出的优化码率控制算法,在编码传输比特和峰值性噪比以及编码消耗时间等实验仿真结果进行有效对比。本文首先通过编码输出峰值性噪比进行对比,输出性噪比客观上体现了编码输出视频的质量好坏问题,输出性噪比越高,编码重建视频质量越好;后续的表涉及到编码输出比特和编码时间的对比。

表 2表 3给出了不同测试序列在本文研究的优化算法与H.265/HEVC现行的码率控制算法输出性噪比对比结果, 其中包括在低延时和随机接入两种不同编码配置文件下,五组不同分辨率序列配置文件下输出三分量性噪比的对比表。三分量(YUV)均值是通过编码200帧测试序列得其性噪比指标求平均所得到的,ΔPSNR[12]为三分量输出性噪比的增量,体现出编码重建图像的质量优劣情况,其值为正表示本文提出的优化算法相对于HM13.0码率控制算法有更好的编码重建视频质量。

表 2 低延时编码配置文件输出性噪比对比dB
表 3 随机接入编码配置文件输出性噪比对比dB

表 2表 3中输出性噪比数据可以看出,不管针对低延时编码配置文件还是随机接入编码配置文件,在不同的序列配置文件下,本文所提优化算法相对于HM13.0码率控制算法在Y分量、U分量、V分量输出性噪比都有至少0.897 3 dB、0.806 2 dB、0.767 2 dB的提高。针对不同的视频序列配置文件,本文优化算法相对于HM13.0码率控制算法,其输出三分量性噪比增量有所不同,这与视频序列的编码参数有关;针对低延时与随机接入两种编码配置文件,其三分量输出性噪比增量也有所不同,但差距不大。

本文除了对反映重建视频客观质量指标的输出性噪比进行对比,同时选用了编码输出比特和编码时间进行有效的对比。同输出性噪比一样选用在低延时和随机接入两种不同编码配置文件下,五组不同分辨率序列配置文件下编码输出比特与编码时间的对比表。编码比特与编码时间均是通过编码200帧测试序列得其编码比特与编码消耗时间求平均所得到的。编码传输比特比率(Rt)与编码时间比率(Ts)通过式(29)、(30)求得:

$ {R_t} = \left( {{R_b} - {R_a}} \right)/{R_b} \times 100\% $ (29)
$ {T_s} = \left( {{T_c} - {T_e}} \right)/{T_c} \times 100\% $ (30)

其中:RaRb分别为HM13.0码率控制算法与本文优化算法对应的编码传输比特;TeTc分别为HM13.0码率控制算法与本文优化算法对应的编码时间。编码输出比特能反映视频传输成本以及带宽的利用率等情况,Rt为负反映本文算法相对于HM13.0码率控制算法消耗较少的码率比特数;编码时间能体现编码效率的高低,Ts为负反映本文算法相对于HM13.0码率控制算法需要较少的编码时间,提高了编码效率。表 4表 5给出了HM13.0码率控制算法与本文算法在不同编码配置文件下编码输出比特和编码时间的对比结果。

表 4 低延时编码配置文件编码输出比特与编码时间对比
表 5 随机接入编码配置文件编码输出比特与编码时间对比

表 4表 5中的编码输出比特、编码时间数据可以看出,不管针对低延时编码配置文件还是随机接入编码配置文件,本文所提优化算法相对于HM13.0码率控制算法在编码输出比特和编码时间至少降低0.46%和减少0.54%。针对不同序列配置文件,本文优化算法相对于HM13.0码率控制算法的编码传输比特降低,编码时间减少的比率有较大的差距,这与视频序列本身的内容特性和编码参数相关。

本文选用了其中的两组编码配置文件对其输出指标以图形表示出来,以此具体细致地研究本文提出的优化算法与HM13.0码率控制算法在码率控制性能方面的差异。图 1~3分别选取了以随机接入(RAMain)为编码配置文件和以BQMall为序列配置文件的Y分量峰值性噪比、编码输出比特以及编码时间的对比图。

图 1 随机接入编码配置文件,BQMall序列Y分量峰值性噪比对比
图 2 随机接入编码文件,BQMall序列编码传输比特对比
图 3 随机接入编码文件,BQMall序列编码时间对比

图 4~6分别选取了以低延时(LDMain)为编码配置文件和以BQSquare为序列配置文件的Y分量峰值性噪比、编码输出比特以及编码时间的对比。整体来说,本文所提出的优化算法在码率控制效果、效率以及编码输出视频客观质量方面有所提高。

图 4 低延时编码文件,BQSquare序列Y分量峰值性噪比对比
图 5 低延时编码文件,BQMall序列编码传输比特对比
图 6 低延时编码文件,BQMall序列编码时间对比

通过对图 1图 4Y分量输出性噪比对比可以看出,针对不同的编码配置文件和序列配置文件,其输出性噪比存在不同。本文算法整体相对于HM13.0码率控制算法而言,其Y分量输出性噪比有较大的提高,尤其是通过图 1可以明显看出。通过图 2图 5的编码传输比特对比可以看出,不同模式下的编码配置文件和不同的序列配置文件,其编码传输比特存在较大不同,这与序列配置文件的分辨率以及内容特性有很大关系;同时图中由于纵坐标相邻间隔相差较大的原因,本文算法相对于现行算法差别不太明显,实质上每编码一帧图像消耗的比特平均都相差上百比特。通过图 3图 6编码时间对比可以看出,不同模式的编码配置文件,其编码时间存在很大差距。其中图 3出现几次编码时间较长的图片,可能是随机接入模式编码配置文件中插入Ⅰ帧图片的结果。Ⅰ帧图片在编码传输比特与编码时间都需要较高的指标,图 2也能说明问题。

通过上面的大量实验数据可以看出本文算法在编码时间、编码输出比特方面在一定程度上相对于HM13.0码率控制算法有所减少与降低,在编码输出性噪比方面有一定的提高。其中针对不同编码配置文件和序列配置文件编码传输比特至少降低0.46%,输出性噪比(PSNR)均值至少提高0.76 dB,编码时间至少减少了0.54%。所以本文提出的基于R-λ模型的码率控制优化算法,在码率控制实时控制效果和编码效率方面要优于现行H.265/HEVC基于R-λ模型的码率控制算法。

4 结语

在视频编码中,码率控制是编码过程中至关重要的一部分。本文提出了一种利用编码单元的原始比特进行该编码单元的比特分配以及考虑当前编码单元的内容特性与当前编码单元失真度实时对参数更新的码率控制算法。该算法在最大编码单元(LCU)比特分配中,利用当前编码单元的原始比特体现出的内容特性进行动态的比特分配;在参数更新过程中,通过当前已编码帧/最大编码单元的失真度与参数进行后续编码帧的参数更新,能实时利用当前视频序列的参数特征使得码率控制效果更突出。本文提出的码率控制优化算法相对于现行算法复杂度有所降低,易实现,可操作性高。就整个码率控制算法而言,在图片层/帧层的比特分配还有可继续提高的空间。

参考文献
[1] WIEGAND T, SULLIVAN G J, LUTHRA A. Overview of the H.264/AVC video coding standard[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2003, 13 (7) : 560-576. doi: 10.1109/TCSVT.2003.815165
[2] SULLIVAN G J, OHM J R, HAN W J, et al. Overview of the high efficiency video coding[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2012, 22 (12) : 1649-1668. doi: 10.1109/TCSVT.2012.2221191
[3] CHOI H, NAM J, YOO J. Rate control based on unified R-Q model for HEVC[C]//Proceedings of the 8th JCTVC Meeting. San Jose, California:ISO, 2012:1-10.
[4] LI B, LI H, LI L. JCTVC-K0103, Rate control by R-lambda model for HEVC[S].[S.l.]:ITU-T SG16 Contribution, 2012.
[5] LI B, LI H Q, LI L, et al. Rate control by R-lambda model for HEVC[C]//Proceedings of the 11th JCTVC Meeting. San Jose, California:ISO, 2012:1-9.
[6] 万帅, 杨付正. 新一代高效视频编码H新一代高效视频编码H.265/HEVC:原理、标准与实现[M]. 北京: 电子工业出版社, 2014 : 344 . ( WAN S, YANG F Z. Principles, Standards and Implementation of a New Generation of Highly Efficient Video Coding H.265/HEVC[M]. Beijing: Publishing House of Electronics Industry, 2014 : 344 . )
[7] 李斌.面向高性能视频编码标准的率失真优化技术研究[D].合肥:中国科学技术大学, 2013. ( LI B. Research on rate-distortion optimization techniques for HEVC standard[D]. Hefei:University of Science and Technology of China, 2013. ) http://cdmd.cnki.com.cn/article/cdmd-10358-1013189904.htm
[8] XIE J F, SONG L, XIE R. Temporal dependent bit allocation scheme for rate control in HEVC[C]//Proceedings of the 2015 IEEE Workshop on Signal Processing Systems. Piscataway, NJ:IEEE, 2015:978-984. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7344976
[9] WEN J T, FANG M Y, TANG M H, et al. R-lambda model based improved rate control for HEVC with pre-encoding[C]//Proceedings of the 2015 Data Compression Conference. Piscataway, NJ:IEEE, 2015:53-62. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7149262
[10] KIM I K, MCCANN K, SUGIMOTO K, et al. High Efficiency Video Coding (HEVC) test model 13(HM13) encoder description[C]//Proceedings of the 15th Joint Collaborative Team on Video Coding(JCT-VC) Meeting.[S.l.]:British Broadcasting Corporation, 2013:14-23.
[11] BOSSEN F. Common test conditions and software reference configurations[C]//Proceedings of the 12th Joint Collaborative Team on Video Coding(JCT-VC) Meeting.[S.l.]:International Core Journal of Scientific Research & Engineering Index, 2013:74-90.
[12] HJONTEGAARD G. Calculation of average PSNR differences between RD-curves[EB/OL].[2016-05-20]. http://wftp3.itu.int/av-arch/video-site/0104_Aus/VCEG-M33.Doc.