APP下载

基于图像亮度差加权估算的视频码率控制算法

2012-08-01胡伟刚丰洪才

关键词:码率比特编码

胡伟刚,丰洪才,龚 永,张 赤,金 凯

(1.武汉工业学院数学与计算机学院,湖北 武汉 430023;2.北部湾职业技术学校机电学部,广西 钦州 535000;3.武汉工业学院网络中心,湖北 武汉 430023)

码率控制(rate control,RC)作为视频编码的重要组成部分,其主要任务在于有效地控制视频编码器的输出码流,以便在解码端尽可能获得最优的视频解码质量,因此视频码率控制一直是视频编码中的研究热点。国内外专家提出了许多相应的码率控制方案,其中比较经典的方案有MPEG-2的TM5、MPEG-4的 VM8和 H.263的TMN8算法等。

H.264是目前使用最普遍的视频编码国际标准,与以前的视频压缩标准相比,H.264标准可以实现高质量、低比特率的编码。相对应的码率控制方案有 JVT-F086 和 JVT-G012[1]等,其中JVT-F086是在TM5算法基础上改进得来,JVT-G012在H.264码率控制方面效果非常理想。然而JVT-G012的不足之处在于当视频序列快速运动或场景变换时,各帧之间的平均绝对误差(mean absolute difference,MAD)波动很大,G012采用线性MAD预测模型所得到的MAD与实际值相差很大,在不规则帧数据参与预测模型的参数更新后,会引起该模型的失效;此外该算法在处理P帧的基本单元比特分配时,平均分配给所有未编码的基本单元,而没有考虑到各个基本单元复杂度的大小,容易造成帧内图像的波动。KIM等[2]采用帧复杂度来预测MAD,使得每帧的比特分配与帧率和帧复杂度有关;侯晨娟等[3]通过相邻宏块的相关性预测的方法来预测MAD;实验表明,他们的方法都在预测精度方面取得很好的效果,但是都是靠一定的算法复杂度来换得的。袁武等[4]采用线性模型和二次模型的位比特分配方案,改进了率失真建模的有效性。当图像内容变换较大时,G012算法的分配方案会导致估算的目标比特数与实际输出之间误差很大,甚至使图像质量发生剧烈波动,相邻两帧图像之间的剧烈波动会严重影响视频的主观质量[5]。为了有效解决这个问题,笔者提出了基于亮度梯度加权的码率控制算法,较好地解决了由于图像剧烈波动而造成的视频编解码质量下降的问题。

1 JVT-G012算法及改进

1.1 传统的G012算法

G012标准中,码率控制方案将视频分成3层,即GOP(group of pictures)层、帧层和BU层。

由于H.264标准草案中编码码流及解码方法占据了主要地位,因此对码率控制并没有很好地研究。在H.264中,将QP同时用于码率控制算法和率失真优化(rate-distortion optimization,RDO)[6],如图1 所示。

图1 宏块级编码流程图

从图1可以看出,当要执行码率控制时,为了对当前宏块进行RDO,必须先得到其QP值,而宏块的QP需要当前宏块的MAD值才能求出,然而当前宏块的MAD只能通过对当前宏块RDO后才能得出,这就形成了典型的蛋鸡悖论。

G012算法采用预测MAD值的方法来解决上述问题,它利用一个线性模型来预测当前帧中基本单元的MAD值,其参考量是前一帧中对应位置基本单元的MAD值。假设当前帧基本单元的MAD值为MADcb,而前一帧中相应位置基本单元的MAD值为MADpb,那么该线性预测模型可表示如下:

其中:a1和a2为该预测模型中的两个参数,其初始值分别设为1和0,当每个基本单元的编码结束后,a1和a2的值也会得到相应的更新。

根据基本单元的概念和基于MAD的线性预测模型,G012算法的具体步骤如下:

(1)计算当前帧的目标位数;

(2)平均分配剩余位数给当前帧中未编码的基本单元;

(3)根据前一帧参考位置基本单元的实际MAD值,利用基于MAD值的线性预测模型预测当前帧中当前基本单元的MAD值;

(4)利用二元R-D模型[7-8]计算相应的参数值;

(5)利用从步骤(4)得出的参数值,实现当前基本单元中每个宏块(macro block,MB)的RDO[9-10]。

1.2 MAD预测模型的改进

由于G012码率控制算法中的MAD预测方案在处理一些场景变化较快的视频序列时,预测得到的MAD与实际MAD值相差很大,笔者提出一种基于图像亮度差的加权预算方法,基本思路是首先计算当前编码帧与前一帧的亮度梯度值作为权值,然后通过式(2)共同预测MAD值:

式中:ρ为当前GOP中第i个P帧第j个BU第k个宏块与前一帧相同位置宏块的亮度梯度值;y(i,j,k)为当前位置的亮度值;MADcbnews为当前基本单元的MAD值;MADpbnews为前一帧相应位置的MAD值;Nmbunit的定义将于下文详述。其中ρ体现了当前BU层在相邻两帧间的亮度变化程度,变化越大,说明帧间的差异越大。

2 基于PSNR的BU层分配算法

假设一帧图像由Nmbpic个宏块组成,一个基本单元是一组连续的 Nmbunit个宏块,其中 Nmbunit是Nmbpic的一部分,一帧中基本单元的总数为Nunit,于是有:

基本单元可以是一个宏块,一片(slice),一场(field)或一帧。例如:考虑一个QCIF大小的视频序列,Nmbpic为99,由图像结构可知,Nmbunit可以为1,3,9,11,33 或 99,则对应的 Nunit分别为 99,33,11,9,3 或 1。

由于G012算法在分配基本单元比特数时,采用了平均分配的方法,没有考虑到图像间的复杂度。由此笔者提出一种基于前一帧的峰值信噪比(peak signal to noise ratio,PSNR)分配方法。将PSNR作为衡量图像复杂度的一个参数,利用前一帧中各基本单元的PSNR值,估算当前帧各个基本单元的复杂度,再对当前帧相对应的基本单元分配比特数,具体算法描述如下:

(1)通过式(5)计算当前编码帧的前一帧图像的平均峰值信噪比PSNRav,其中PSNRki-1为第i-1帧第k个基本单元的PSNR值;

(2)通过式(6)计算 αi-1。αi-1为第 i-1帧图像内基本单元PSNR的一个波动系数,为第i-1帧第k个基本单元的PSNR值,即:

(3)计算各个基本单元所分配的比特数,根据步骤(1)所计算出的PSNRav值,计算当前基本单元所分配的比特数。当时,第k个基本单元就按照公式来分配比特数;当时,第 k个基本单元就按照公式来分配比特数;当时,第 k个基本单元就按照公式来分配比特数,其中为当前帧第k个基本单元分配的比特数。

结合亮度梯度加权预测MAD值以及基于PSNR的BU层比特分配方案,改进的码率控制流程如图2所示。

图2 帧级码率控制流程

3 实验结果及分析

在JVT的校验模型JM86上实现笔者提出的算法,并且与标准提案中的G012的码率控制算法进行对比。测试序列分别为视频场景变化速度不同的FOOTBALL和bridge-close的标准QCIF视频序列,序列结构为IPPP…,共编码100帧,帧率为30帧/s。FOOTBALL序列是一场球赛场面,场景变化比较快;bridge-close是对一座桥的描述场景,图像变化相对比较慢。笔者的算法与G012算法对比测试结果如表1所示。

表1 两种算法的测试结果

由表1测试结果可以看出,笔者算法对视频序列编码得到的平均PSNR比G012算法在Y、U、V分量上分别高出 2.16、1.50、1.40(FOOTBALL视频序列)、0.89、0.61、0.86(bridge-close 视频序列)。对bridge-close视频序列进行编码得到的平均PSNR比G012算法编码得到的高出0.79,而在场景变化较快的FOOTBALL视频序列中要高出1.69。PSNR作为评判视频客观质量的主要标准之一,从实验数据可以发现,使用笔者算法对视频进行编码码率控制,相比G012算法,可以获取到更好的视频质量。同时在测试序列中随机选取9帧编码数据进行对比分析(如图3所示),可以看出,笔者算法编码得到的PSNR普遍比G012算法要高,并且G012算法在场景变化较快的FOOTBALL视频序列中得到的PSNR波动较大,容易造成视频的剧烈波动,因此应用笔者算法在对场景变化较快的视频序列进行编码码率控制时,优势尤为突出。

图3 编码结果对比

4 结论

通过分析标准的 G012码率控制算法,对MAD线性预测模型进行改进,笔者设计了一种基于亮度的加权预测模型,充分利用了图像序列的时空相关性,提高了预测精度;在分配基本单元层比特数方面,提出了一种基于前一帧PSNR的分配方案,有效地避免了由于帧内图像复杂度不均引起的图像波动。由测试结果可以看出,在视频结构复杂以及快速变化时,改进算法的平均PSNR均大于G012算法,另外BU层的比特分配应用了笔者的算法后,编码后的PSNR值相比G012算法更高。

[1] LI Z G,PAN F,LIM K P,et al.Adaptive basic unit layer rate control for JVT,JVT-GOl2[C]//7thJVT Meeting,Pattaya II JVT-GOl2.Thailand:[s.n.],2003:7-14.

[2] KIM M J,HONG M C.Adaptive rate control in frame-layer for real-time H.264/AVC[C]//Proceedings of APCC.[S.l.]:[s.n.],2008:1-5.

[3] 侯晨娟,何小海.优化的H.264/AVC码率控制算法[J].计算机工程与应用,2009,45(24):159-161.

[4] 袁武,林守勋,牛振东,等.H.264.AVC码率控制优化算法[J].计算机学报,2008,31(2):329-339.

[5] 杨晓琴,季晓勇.基于H.264的码率控制[J].计算机工程与应用,2011,47(13):186-187.

[6] MOSES Y,ULLMAN S.Limitation of non-modelbase recognition schemes[C]//Proe ECCV-92.[S.l.]:Springer-Verlag,1992:820-828.

[7] LEE H J,CHIANG T H,CHANG Y Q.Scalable rate control for MPEG-4 video[J].IEEE Trans Circuit Syst Video Technology,2000(10):878-894.

[8] VETRO A,SUN H,WANG Y.MPEG-4 rate control for multiple video objects[J].IEEE Trans Circuit Syst Video Technology,1999(9):186-199.

[9] 马宏兴,张伶.H.264/AVC率失真优化技术综述[J].数字视频,2010,34(6):19-22.

[10] 葛晛晛,王宇.H.264/AVC率失真优化(RDO)策略研究[J].无线通信技术,2006,15(2):14-17.

猜你喜欢

码率比特编码
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
一种基于HEVC 和AVC 改进的码率控制算法
基于FPGA的多码率卷积编码器设计与实现
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
基于状态机的视频码率自适应算法
比特币还能投资吗
比特币分裂
比特币一年涨135%重回5530元