APP下载

基于视频并行编码的码率控制算法研究

2015-05-05吴晓光李国平王国中滕国伟赵海武

电视技术 2015年16期
关键词:宏块码率缓冲区

吴晓光,李国平,王国中,滕国伟,赵海武

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

基于视频并行编码的码率控制算法研究

吴晓光,李国平,王国中,滕国伟,赵海武

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

基于并行编码的特点,现有的基于串行编码的码率控制算法有其局限性,不能直接应用于并行编码。提出一种新的码率控制算法,在编码前将原始帧作为参考帧计算出各帧的SAD,然后利用已计算的SAD进行帧级比特分配和动态预测并行编码帧的比特,实现了并行编码的码率控制。通过测试基于串行编码的码率控制和提出的码率控制方案下PSNR和VBV情况,说明所提算法的可行性。

并行编码;码率控制;比特预测;比特分配

高清、超高清编码技术的出现,极大地提高了人们的视觉体验,因此得到了广泛应用。与此同时编码复杂度的增加和对实时性的要求为编码器的实现提出了极大的挑战。并行编码技术是解决高复杂度、实时编码的有效方法,因此成为国内外学者的研究热点。目前并行编码还处于研究阶段,没有一个公认的并行编码框架。针对图像的不同结构层次(GOP,Frame,Slice,Macroblock)有其对应的并行编码模式[1],但这些方法的并行化程度不够高。WPP[2]和Tiles[3]并行技术是HEVC针对并行编码所提出的,但此方法只适用于HEVC标准,同时存在码率分配难以处理的问题。文献[4]提出了一种视频并行编码框架,极大地提高了并行化程度,在PSNR下降0.01~0.12 dB的前提下,加速比可达到12[5]。因此,本文基于该编码框架实现并行编码的码率控制,其算法思想也可应用于其他的并行编码框架。

为确保编码产生的可变码流能够在有限带宽的信道顺利传输,需根据缓冲区情况对码率进行控制。传统经典的码率控制算法包括TM5,TMN8以及VM8等,还有一些基于上述码率控制的优化算法,以满足视频传输应用中的码率要求。上述各种码率控制方法针对不同的应用环境往往能有比较理想的效果,但这些码率控制算法都是基于串行编码框架。在视频并行编码中,由于并行编码有多帧数据同时进行编码,在编码当前帧时,其之前的多帧未能产生实际编码比特数,无法确定当前帧的缓冲区情况,因此需要对这些并行编码帧的比特开销进行预测。如果采用传统的码率控制方法,利用之前帧的信息来预测当前帧的比特,当并行编码帧数较多时,对并行编码帧比特开销的预测将会产生很大误差。基于这个特点,限制了传统码率控制算法的使用,因此并行编码的码率控制一直是困扰并行编码发展的难题。本文提出了一种新的码率控制算法以解决这个问题。

此外,H.264/AVC引入了率失真优化(RDO)技术,对宏块执行RDO,需要由码率控制才能确定的QP作为输入;对宏块执行码率控制,需要MAD作为输入,然而MAD只有在RDO运行后才能获得,形成了“蛋鸡悖论”问题。为解决这个问题, JVT-F086[6]提案采用两次编码的方式,但大大增加了编码的复杂度。JVT-G012[7]提案利用前一帧中相同位置基本单元的MAD值线性预测当前基本单元的MAD ,如果并行编码的码率控制也采取该方法,编码图像失真将会加大。本文提出的方法,在编码前将原始帧作为参考帧计算出各帧的绝对差值和(SAD),在码率控制过程中利用已计算的SAD作为输入确定QP,解决了悖论问题。同时由于SAD不是由预测得到,对并行编码帧比特开销的预测不会产生很大误差,因此使得提出的码率控制算法更加准确。实验结果表明,该算法在保证图像质量的基础上解决了并行编码码率控制的难题。

1 并行编码框架

1.1 传统编码框架

如图1所示,传统的视频编码框架在编码当前帧时需要将重建帧作为参考帧进行运动估计和运动补偿,它所构成的反馈回路极大地限制了编码的并行化程度。

图1 传统的视频编码框架

1.2 并行编码框架

本文所采用的并行编码框架如图2所示[4],针对原始序列,并行预处理模块在进行去平滑滤波、噪滤波等预处理的基础上,通过相关性参数的计算对序列进行场景检测和判断帧类型[4]。由于各帧之间相互独立,可以并行处理。

图2 并行视频编码框架

并行运动估计模块利用预处理模块中已经获得的各帧的帧类型,将原始帧作为参考帧通过整像素运动估计计算整像素运动矢量MV′,每帧运动估计结束后进入编码模块。这种并行运动估计极大地提高了整个编码框架的并行性,将编码最耗时的整像素运动估计并行处理,提高了编码效率。

并行编码模块中采用隔行编码的方式,每个场作为一个slice,各个场之间独立进行具有参考依赖性的帧间编码[8]。进行宏块模式选择后将MV′作为起点进行亚像素搜索,最终得到运动矢量MV。然后再经过运动补偿,变换量化以及熵编码得到码流。

2 传统码率控制的局限性

传统的串行视频编码码率控制在编码当前帧之前, 需要更新当前缓存区内的比特数

(1)

(2)

3 并行视频编码框架下的码率控制

在整像素并行运动估计模块计算当前并行编码各帧的SAD。在进行码率控制时,利用已计算的SAD作为输入来确定QP,再由确定的QP进行编码,解决了“蛋鸡悖论”;同时利用已计算的SAD对并行编码各帧的比特进行动态预测,解决了传统码率控制的局限性。

其中SAD的计算如式(3)所示

(3)

式中:A代表像素区域;Sk[x,y]为视频图像在[x,y]位置的像素值;Pk[x,y]为根据事先设定方法及参考图像对Sk[x,y]的预测值。

3.1 帧级比特分配

我们可以根据在并行运动估计中得到的当前帧的SAD来进行帧级目标比特分配。如式(4)所示

(4)

式中:Ti为第i帧分配的目标比特数;SADi为第i帧的SAD值;SADgroup为一组帧数固定的图像的总SAD值,它是一个不断更新的数值,每编完一帧就从SADgroup中减去该帧的SAD值,开始编码下一帧时加上该帧的SAD,从而保持这组图像的帧数恒定;bitgroup为对应这组图像的剩余目标比特数。

3.2 动态预测帧比特数模型

对并行编码各帧的编码比特数的动态更新,创建模型如式(5)所示

(5)

式中:Bits为当前单元的预测比特数;SAD和QP分别表示当前单元的SAD值(已在并行运动估计模块计算得出)和QP值。coeff为一个复杂度系数,其值如式(6)所示

(6)

式中:QP′和SAD′分别表示前一宏块行的平均QP值和SAD值;bits表示前一宏块行实际的编码比特数;count为更新次数。count和coeff使用衰减系数进行更新。如式(7)和式(8)所示

count″=count′×decay+1

(7)

coeff″=coeff′×decay+coeff

(8)

式中:count″和coeff″表示更新后的值;count′和coeff′表示更新前的值;decay为衰减因子。coeff如式(6)计算。

3.3 动态更新缓冲区参数

并行编码的各帧编码结束后都将进入同一缓冲区,为及时了解缓冲区情况,避免缓冲区上溢或者下溢,需动态更新并行编码各帧的缓冲区参数,如图3所示。

1)每帧编完一行宏块都将根据式(6)更新其coeff,然后根据coeff以及剩余宏块行的SAD和QP按式(5)计算并预测当前帧剩余部分的比特。

2)并行编码的各帧每编码一行宏块都将执行上述步骤1),由当前帧已编码的比特数和步骤1)预测的剩余比特数,作为当前帧的预测比特数,然后根据式(2)更新当前帧的缓冲区参数。并行编码帧缓冲区参数的动态更新如图3所示。

图3 并行编码帧缓冲区参数动态更新示意图

3.4 并行码率控制算法流程

并行码率控制算法具体步骤如下:

1)根据获得的整帧目标比特数Ti,以及当前帧的SAD,由式(5)可以得到当前帧的初始QP值。

2)在并行编码的各帧,每编码一行宏块之后,按照式(6)~(8)进行coeff更新,然后根据coeff以及SAD和QP按式(5)计算并预测当前帧剩余部分的比特。

3)由当前帧已编码的比特数和步骤2)预测的剩余比特数,作为当前帧的预测比特,根据当前帧预测值与目标分配比特的差,同时考虑当前帧的缓冲区情况调整QP值,得到下一行的QP值。

4)根据当前帧更新后的coeff和调整后的QP值,重新预测当前帧的比特数,按照式(2)更新所有正在并行编码帧的缓冲区。

5)对于并行编码的各帧,循环计算步骤2)~4)。

4 实验结果与分析

为了验证所提出的码率控制算法可行性,本文采用广电总局广播科学规划院6个1 920×1 080的高清序列作为测试序列:volleyball,dial,parterre,basketball,leaf,birdcage。并行编码的多线程条件为:总线程数24,帧间线程数12。本文算法在加速比可达到12的前提下,通过测试基于串行编码的码率控制和本文提出的基于并行编码的码率控制两种条件下PSNR和VBV缓冲区情况,证明所提出算法的可行性。在下面试验中,串行条件是基于串行编码的码率控制方法,并行条件是本文提出的基于并行编码的码率控制方法。

4.1PSNR对比

本文对6个高清序列进行测试,设置运动估计参数为ME2,亚像素搜索参数为2,比特率为12 000 kbit/s。首先给出6个序列在串行和并行码率控制下的平均PSNR数值,如表1所示。

表1 串行和并行条件下测试序列的平均PSNR

dB

条件parterredialvolleyballbasketballleafbirdcage串行248891624799933240697324019424908443243006并行248906424799123240461324002124827293242139

从表1可以看出,并行条件下的平均PSNR与串行条件下的比较,性能下降在0.01~0.12 dB,属于可以接受的范围,说明本文算法在并行编码多帧时没有扩大误差,图像质量仍在理想范围内。

为了能更直观地分析每个序列在串行码率控制和并行码率控制条件下的率失真情况,笔者绘制在并行和串行码率控制方案下各个序列250帧的亮度分量编码率失真对比曲线图,如图4所示。

图4 测试序列在不同码率控制条件下的每帧PSNR

由上述测试序列每帧PSNR对比图可以看出,并行条件下每帧PSNR性能基本与串行条件下接近,符合实际应用的需求,解决了并行编码的码率控制的难题。

4.2VBV缓冲区占有度对比

对于并行编码系统下的码率控制方案,除了测试PSNR性能,还需要从VBV缓冲区的充溢程度来考察其性能。对6个不同高清序列每帧的VBV情况分别在串行和并行条件下进行测试,得到如图5所示6组对比曲线图。

由每帧VBV缓冲情况对比图可以看出,并行条件下VBV没有上溢和下溢,每帧VBV情况基本与串行条件下接近,说明对并行编码帧的比特预测相对准确,保证了码率控制的精确性。

5 结束语

本文首先分析传统码率控制方案应用于并行编码框架的局限性,然后研究了基于并行编码的码率控制方案,根据并行编码的特性,通过帧级比特分配和动态预测帧比特来进行并行码率控制。最后通过测试串行和并行条件下PSNR和VBV缓冲区来说明本文提出的算法解决了并行编码码率控制的难题。

图5 测试序列在不同码率控制条件下的每帧VBV缓冲情况

[1] GE S,TIAN X,CHEN Y K.Efficient multithreading implementation of H.264 encoder on Intel hyper-threading architectures[C]//Proc. 2003 Joint Conference of the Fourth International Conference.Singapore:IEEE Press,2003:469-473.

[2] CHING C, ALVAREZ-MESA M,JUURLINK B.Parallel scalability and efficiency of HEVC parallelization approaches[J]. IEEE Trans. Circuit and System for Video Technology,2012,22(12):1827-1838.

[3] FULDSETH A,HOROWITZ M,XU S L.Titles for managing computational complexity of video encoding and decoding[C]//Proc. Picture Coding Symposium(PCS).Krakow:IEEE Press,2012:382-392.

[4] JIANG Xiaochen,LI Guoping.A novel parallel video coding framework for AVS+ real time encoder[C]//Proc.Pacific-Rim Conference on Multimedia.Nanjing:Springer International Publishing,2013:170-179.

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

[6] MA Siwei,GAO Wen,LU Yan,et al.Proposed draft description of rate control on JVT standard[EB/OL].[2015-05-02]. http://ftp3.itu.ch/av-arch/jvt-site/2002_12_Awaji.

[7] LI Zhengguo,PAN Feng,LIM K P,et al.Adaptive basic unit layer rate control for JVT[EB/OL].[2015-04-14].http://wftp3.itu.int/av-arch/jvt-site/2003_03_Pattaya/JVT-G12r1.zip.

[8] 于俊清,李江,魏海涛.基于同构多核处理器的H264多粒度并行编码器[J].计算机学报,2009,32(6):1100-1109.

吴晓光(1990— ),硕士生,主研视频编解码技术;

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

王国中(1962— ),博士,教授,博士生导师,研究领域为视频编解码与多媒体通信、数字电视、视频云计算等。

责任编辑:时 雯

Research of Rate Control Algorithm Based on Parallel Video Coding

WU Xiaoguang,LI Guoping,WANG Guozhong,TENG Guowei,ZHAO Haiwu

(CollegeofCommunicationandInformationEngineering,ShanghaiUniversity,Shanghai200072,China)

Based on the characteristics of parallel video coding, traditional rate control algorithm can not be applied to parallel coding framework directly due to its limitation.In this paper, a rate control algorithm is proposed, in which theSADis calculated before video coding and the original frame is used as reference frame. Then the rate control algorithm is accomplished by using theSADto allocate frame-level bits and predict those frame bits which be coded simultaneously.Experimental results demonstrate the feasibility of the scheme by testingPSNRandVBVunder condition of serial and parallel rate control.

parallel coding;rate control;bit prediction;bit allocation

国家自然科学基金项目(61271212);上海市科委重点项目资助项目(12511502502)

TN919.8

A

10.16280/j.videoe.2015.16.021

2015-06-24

【本文献信息】吴晓光,李国平,王国中,等.基于视频并行编码的码率控制算法研究[J].电视技术,2015,39(16).

猜你喜欢

宏块码率缓冲区
一种基于HEVC 和AVC 改进的码率控制算法
基于FPGA的多码率卷积编码器设计与实现
基于运动估计与补偿的雷达拼图预测分析*
基于状态机的视频码率自适应算法
基于网络聚类与自适应概率的数据库缓冲区替换*
一类装配支线缓冲区配置的两阶段求解方法研究
基于选择特征宏块的快速视频稳像
关键链技术缓冲区的确定方法研究
初涉缓冲区
多光谱图像压缩的联合码率分配—码率控制方法