基于HEVC的LCU层码率控制算法改进

2016-06-08 06:05荣倩倩
计算机应用与软件 2016年5期
关键词:码率控制算法复杂度

荣倩倩 杨 静

(上海海事大学信息工程学院 上海 201306)



基于HEVC的LCU层码率控制算法改进

荣倩倩杨静

(上海海事大学信息工程学院上海 201306)

摘要针对HEVC(High Efficiency Video Coding)码率控制方案中LCU层利用平均绝对误差(MAD)对图像复杂度估计的不准确性和比特分配的不合理性,提出一种基于像素的线性加权的直方图差值(PHOD)的LCU层码率控制算法。该算法引入PHOD作为LCU层的图像相对复杂度度量手段,使得LCU层目标比特根据图像复杂度进行合理调整和准确分配。同时利用已编码帧码流控制的反馈信息进一步对量化参数和拉格朗日乘数调整,获得更精确的量化值和拉格朗日乘数。仿真结果表明,与参考算法比较,改进的算法对于不同运动情况的视频序列有良好的效果,能更加接近目标码率,图像帧间质量波动减小,最终获得较好的图像主观质量和PSNR。

关键词HEVC码率控制LCU层图像复杂度像素直方图差值

0引言

2012年10月,JCTVC颁布了新一代的视频编码标准——高效视频编码HEVC标准[1]。HEVC的目标很明确,就是在相同图像质量前提下,压缩比比H.264/AVC提高了一倍[2]。为了提高编码效率,HEVC采用了很多新型技术,比如引入了编码单元(CU)、预测单元(PU)和变换单元(TU)等一系列编码概念。一般,编码树单元(CTU)的大小为64×64,当图像进行分割时,根据局部纹理特性的不同,它可以按照四叉树方法划分成更小的CU,而每个CU又可以划分成若干个PU或TU[3]。

码率控制是视频编码器中一个非常重要的部分,尤其在各种多媒体流等实时应用中是必不可少的。码率控制的首要目的就是动态地调整编码参数控制输出码流的码率,在尽可能小的失真前提下更加有效地利用网络带宽,同时使输出的视频码流更加平稳。考虑到码率控制的重要性,以往的视频编码标准都有各自的码率控制方案,例如,MPEG-2采用了TM5,H.263应用了TMN8,MPEG-4采纳了VM8,H.264/AVC推荐了JVT-G012[4]。由于HEVC引入了新的技术和编码工具,所以原先的码率控制方案就不能直接应用在HEVC上。

2012年1月,JCTVC在第八次会议上确定了HEVC的第一个码率控制方案——JCTVC-H0213[5]。和H.264/AVC的码率控制算法一样,此算法采用了基于像素的URQ模型。H0213仅仅是H.264/AVC码率控制算法的一个继承。实验结果表明,尽管H0213方案能够较好地使实际分配的平均比特率和目标比特相匹配,但是所获得的重建视频质量很差,另外帧间存在着剧烈的码率波动,同时还需要复杂的模型参数更新过程,所以并不适应于HEVC[6]。考虑到拉格朗日乘数λ对比特率的分配起着重要的作用,Bin Li等提出了一种基于R-λ模型的码率控制算法,该算法把λ看作是每像素所用比特的函数,再根据λ与量化参数QP之间相应的关系计算出QP[7]。相比较JCTVC-H0213码率控制方案,该方案在性能方面有了很大的提升。但是,一方面,在这个方案中,帧层的QP和计算没有充分利用已编码帧码率控制的反馈信息;另一方面,在LCU层比特分配时每个LCU的权重是由MAD估计的,而当前LCU的MAD是由同一层已编码帧相同位置的LCU的MAD预测得到的,这种预测只考虑时间相关性而忽略了空间相关性[8]。另外,当视频序列存在局部运动剧烈或场景变换时,各帧之间的MAD波动较大,再采用这种方法进行预测就和实际相差很大。这样会导致当前LCU的比特分配出现较大的误差以至于输出图像的质量很差[9]。基于这两点,本文在LCU层提出了一种线性加权的基于像素亮度直方图PHOD的复杂度度量方法。此方法对视频序列的局部运动更加敏感,对图像单元块复杂度估计更加准确;并且利用已编码帧的码率控制情况来调整当前帧的QP和λ。

1提出的改进算法

1.1LCU层复杂度的度量方法

针对K0103码率控制算法中LCU层复杂度计算存在的不足,本文根据HEVC特有的编码特征提出了一种线性加权的基于像素亮度信息的复杂性衡量方法PHOD。它不仅能够有效区分不同复杂度的LCU,而且和LCU的实际复杂度有很强的线性关系。这种方法能根据基本单元的编码复杂度,合理地对LCU层进行比特分配。PHOD是以像素为单元来计算亮度直方图差值,然后再对整个LCU求和,其表达式如下:

(1)式中,Npixels为LCU中像素个数,h(b,i,ln)为LCU中第b个像素原始亮度为i的像素点数,h(b,i,lm)为LCU中第b个像素预测亮度为i的像素点数,q为最大灰度级。与K0103相比,它可以适应不同复杂度的视频序列,使得低复杂度的LCU不为零,对高复杂度的LCU更加敏感。为了更加准确地估计LCU的复杂度,定义第n个LCU的PHOD相对复杂度度量因子PHODratio如下:

(2)

这里利用直接求平均的方法获得前n-1个LCU的PHOD平均值。对于帧中已编码LCU的纹理特性相似的情况,此方法效果很好。但是对于图像局部场景发生变化,导致局部复杂度幅度变化剧烈的情况,再运用这种方法效果就没那么理想了。因此,为了获得更加精确的PHODratio,本文采用加权求和的方法求PHOD的平均值WPHOD,其计算公式如下:

(3)

因此最终WPHODratio定义为:

(4)

1.2帧层量化参数QP和拉格朗日乘数λ的调整因子

Bin Li等在文献[10]中提出比特对于拉格朗日乘数λ的变化更加敏感,并且较小的λ值会导致图像有相对更高的图像质量,反之亦然。所以为了获得相对高质量平滑的图像,本文对量化参数QP和拉格朗日乘数λ同时进行调整。

由于I帧的QP由配置文件预先设置并且I帧和GOP中第一帧作为后面的参考帧,并没有参与比特分配,那么这两帧的QP和λ保持不变。

GOP中前一帧的实际编码比特和分配的目标比特的比值作为调整因子s,再根据s对当前帧的QP和λ进行调整,s由式(5)计算得到:

(5)

2法改进后的整体码率控制方案

2.1GOP层比特分配及帧层比特分配

在给定目标比特率Rtar和帧率f的情况下,文献[10]给出了GOP层的目标比特和当前帧分配的目标比特的计算公式,分别由式(6)和式(7)表示。

(6)

(7)

其中,Ncoded为已编码图像数,Rcoded为已编码帧消耗的比特数,NGOP为GOP中图像个数。这里采用滑动窗口SW机制,可以适应平滑场景切换的影响,其大小设置为40。CodedGOP是当前GOP中已编码比特数,ωCurrPic是当前帧的权重。

2.2LCU层比特分配

一般情况下,实际分配的比特大于目标比特,这样导致越靠近末尾的基本单元分到的比特会越小,针对这种情况本文提出一种新的LCU目标比特方法,即根据第一节中的相对复杂度度量因子WPHODratio对未编码LCU所获得平均比特数进行调整,使目标比特分配更加精确。那么LCU层比特分配伪代码如下:

If (WPHODratio<1.8)

else If (WPHODratio<2.1)

伪代码中,参数为实验所得的经验值,Tr表示未编码LCU的剩余比特数,Nr表示当前帧中未编码LCU数。用WPHODratio对LCU层目标比特进行调整,使得复杂度较大的LCU分配较多的目标比特数,反之亦然。相比较K0103码率控制算法,该方法更能使LCU层编码比特合理利用。

2.3实现目标比特分配

得到目标比特后,通过R-λ模型获得QP和λ,其计算如下:

λ=α·bppβ

(8)

QP=4.2005lnλ+13.7122

(9)

其中,α和β是模型参数,初始值分别为3.2003和-1.367。

根据第1节可知,s能够反映目标比特分配的准确性,所以根据s的不同取值,分别按照式(10)和式(11)对当前帧QP和λ进一步调整。

(10)

(11)

量化参数QP和拉格朗日乘数λ经调整后,可使得码率控制更加精确。

3实验结果与分析

本文在HEVC参考软件HM10.0[11]中验证所提出的码率控制算法的控制精度与编码性能,并且采用IPPP编码结构的LD配置文件。考虑到时间和空间因素,仿真所用的标准测试序列如表1所示。这些规格的标准测试序列包含了现在主要的应用[12]。目标码率设置为不采用码率控制算法时HM10.0的基准码率。将本算法的实验结果与K0103码率控制算法结果进行比较,仿真结果如表2和表3所示。

表1 测试序列的基本信息

表2 JCTVC-K0103算法和改进算法的Y-PSNR的标准差

表3 JCTVC-K0103算法和改进算法的码率控制仿真结果

续表3

由于视频序列的Y-PSNR标准差能够反映图像的平滑度,另外考虑到图像的纹理特性,测试序列BasketballPass局部运动剧烈、纹理复杂,Kimono纹理简单、运动较平缓,因此,我们选取这两个测试序列的Y-PSNR标准差。从表2的仿真数据可以看出,本算法的PSNR值的标准差比K0103算法明显降低,因此,本算法的视频序列更加平稳,从视觉角度来看,图像的主观质量提高。表3中的仿真数据表明与K0103算法相比,本算法更能精确地控制码率。另外,本算法的比特误差范围为0.000%~0.635%,而JCTVC-K0103的比特误差范围为0.019%~4.493%,所以本算法的码率更接近于目标码率。由此可见,从码率控制精度角度来看,所提出的算法有明显的优越性。此外,从表中还可以看出,本算法的PSNR平均比JCTVC-K0103大约提高了0.06 dB。因此,所提出算法在精确控制编码码率的同时,图像的平均整体质量略有提高。

图1和图2为Kimono和BasketballPass序列在QP=27情况下利用本算法与K0103算法得到的每帧图像PSNR的对比图。图1反映了对于图像纹理较简单和运动平缓的Kimono序列,本文提出的复杂度度量算法能够较好地反映序列的运动剧烈程度,准确地估计了局部运动剧烈的序列的复杂度,再加上本算法中编码参数的调整使得图像的整体质量更加平滑。从图2中可以看出,对于纹理复杂、存在快速运动的BasketballPass序列,本算法也有较好的效果,视频序列的平均PSNR得到了提高,并且平滑度增加,而K0103算法对序列的局部运动情况不敏感,对于PSNR值的急速下降没有进行有效的控制。

图1 Kimono测试序列在QP=27时的Y-PSNR对比图

图2 BasketballPass测试序列在QP=27时的Y-PSNR对比图

4结语

本文首先分析了HEVC的JCTVC-K0103码率控制算法,针对该算法中LCU层图像复杂度估计模型不够准确且QP和λ的计算没有充分利用已编码帧码率控制的反馈信息,分别提出了一种PHOD复杂度度量方法和根据前一帧的实际比特和目标比特的比值来调整当前帧QP和λ的方法。实验结果证明了提出的码率控制算法能够准确地估计图像的真实复杂度,充分利用了已编码帧码率控制的反馈信息,最终使得实际编码码率更接近目标码率,获得较高平滑的视频质量。

参考文献

[1] Bross B,Han W J,Sullivan G J,et al.High efficiency video coding (HEVC) text specification draft 9 (SoDIS)[C]//JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 11th Meeting,Shanghai,2012:1-292.

[2] 朱秀昌,李欣,陈杰.新一代视频编码标准——HEVC[J].南京邮电大学学报:自然科学版,2013,33(3):1-12.

[3] Gary J Sullivan,Jens-Rainer Ohm,Woo-Jin Han,et al.Overview of the high efficiency video coding (HEVC) standard[J].IEEE Transactions on Circuits and Systems for Video Technology,2012,12(22):1649-1668.

[4] 秦妮.HEVC视频编码码率控制技术研究[D].西安:西安电子科技大学,2013.

[5] Hyomin Choi,Junghak Nam,Jonghum Yoo,et al.Rate control based on unified RQ model for HEVC[C]//JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 8th Meeting,San Jose,2012:1-12.

[6] Si Junjun,Ma Siwei,Wang Shiqi,et al.Laplace distribution based CTU level rate control for HEVC[C]//IEEE Visual Communication and Image Processing(VCIP),Kuching,2013:1-6.

[7] Bin Li,Houqiang Li,Li Li,et al.Rate control by R-lambda model for HEVC[C]//JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 11th Meeting,Shanghai,2012:1-9.

[8] 吕振斌,王惠南.一种基于H.464基本单元层的码率控制算法[J].电视技术,2009,33(S1):45-47.

[9] 何建新,曹岳辉.一种新的面向H.264低比特流的码流控制方法[J].中国图象图形学报,2009,14(6):1119-1123.

[10] Bin Li,Dong Zhang,Houqian Li,et al.QP determination by lambda value[C]//JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 9th Meeting,Shanghai,2012:1-13.

[11] Bossen F,Flynn D,Suehring K.HEVC reference software HM10.0.[C]//JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 12th Meeting, Geneva,2012:1-13.

[12] Xiaochuan Liang,Qiang Wang,Yinhe Zhou,et al.A novel R-Q model based rate control scheme in HEVC[C]//Visual Communications and Image Processing (VCIP),Valletta,2013:1-6.

IMPROVING HEVC-BASED LCU LEVEL RATE CONTROL ALGORITHM

Rong QianqianYang Jing

(SchoolofInformationEngineering,ShanghaiMaritimeUniversity,Shanghai201306,China)

AbstractAiming at the inaccuracy in estimating image’s complexity by LCU level using mean absolute deviation (MAD) and the irrationality in bits allocation the HEVC rate control scheme has, we presented an LCU level rate control algorithm, which is based on linear weighted pixel histogram difference (PHOD). The algorithm introduces PHOD as the means of the relative complexity metric of images on LCU level, enables the target bits on LCU level to be adjusted reasonably and allocated accurately according to the complexity of images. At the same time, it utilises the feedback information of encoded frame code flow control to further adjust the quantitative parameters and Lagrange multipliers to obtain more accurate quantitative values and Lagrange multipliers. Simulation results indicated that: compared with the reference algorithm, the improved algorithm had good effect on video sequences in different moving situations, it could approach the target rate more, the fluctuation of image frames quality was reduced as well, and finally achieved a better subjective image quality and higher PSNR.

KeywordsHEVCRate controlLCU levelImage complexityPixel histogram difference

收稿日期:2014-12-09。国家自然科学基金项目(61404083)。荣倩倩,硕士生,主研领域:图像分析与视频处理。杨静,副教授。

中图分类号TP3

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.05.034

猜你喜欢
码率控制算法复杂度
一种基于HEVC 和AVC 改进的码率控制算法
基于FPGA的多码率卷积编码器设计与实现
一种低复杂度的惯性/GNSS矢量深组合方法
基于状态机的视频码率自适应算法
基于ARM+FPGA的模块化同步控制算法研究
求图上广探树的时间复杂度
某雷达导51 头中心控制软件圈复杂度分析与改进
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
出口技术复杂度研究回顾与评述
多光谱图像压缩的联合码率分配—码率控制方法