摘要:为了进步JVT-H017码率操控提案中的根本单元层比特数分配办法在视频序列复杂度较高时分配的准确度,提出了一种视频复杂度自适应的根本单元层码率操控办法。运用DMAD参数来判别视频场景的复杂度,对JVT-H017的比特数分配办法进行了改善;一起提出了一种根本单元层编码的抱负状况,并以此抱负状况下的比特数耗费状况来对根本单元的比特数进行批改。仿真成果标明,该办法有用地进步了视频编码的峰值信噪比(PSNR),最大可进步0.49 dB,而且输出码率更挨近预订编码码率。
关键词:H.264;码率操控;猜测模型;视频复杂度
码率操控一直是H.264/AVC视频编码规范的研讨热门。由Li和Ma等人提出的JVT-H017提案在码率、图画质量和缓冲器占费用上达到了杰出平衡,已成为最干流的码率操控办法。JVT-H017运用待编码根本单元的MAD(均匀绝对差错)猜测模型的参数来猜测当时帧剩下一切根本单元的MAD,并依据所得成果为当时根本单元分配比特数。当视频复杂度较高时,根本单元的时空相关性都显着下降,此刻这种根本单元比特数分配办法会产生较大差错。
对此,许多学者提出了许多改善的码率操控办法。Jianpeng提出运用二维窗口来选取模型参数的历史数据点,但二维窗口一般数据点较少,准确度受到约束;Yang提出了空域的MAD猜测模型来添加MAD猜测的准确度,但核算复杂度比较高;Yin提出运用相邻已编码根本单元的MAD加权均匀值来核算当时根本单元的MAD,但没有准确运用根本单元空域时域的相关性;Jen-Yeu提出运用DMAD(Difference of MAD)改善JVT-H017的帧间比特数分配办法并将其应用到根本单元层,改善了高复杂度视频和场景改换时的编码质量。
文中在Jen-Yeu提出的根本单元层码率操控办法的基础上,对其复杂度参数进行了从头界说,进步了复杂度估量的准确性,一起运用抱负状况下的比特数耗费状况来对根本单元比特数猜测值进行批改。文中一切仿真均以官方验证软件JMl3.2为试验渠道。
1 JVT-H017根本单元层码率操控差错剖析
JM软件选用了JVT-H017算法中的根本单元方针比特数核算办法
其间,i标明当时帧的序号,j标明当时根本单元在当时帧中的序号,Ti(j)标明根本单元的方针比特数,PMAD标明根本单元MAD的线性猜测值,TRi(j)标明第i帧中第j个根本单元编码前该帧剩下比特数,Nunit标明当时帧的根本单元总数。
JVT-H017的比特数分配办法并没有充分考虑相邻帧的根本单元间的时刻和空间相关性,当视频内容改变速度比较快或产生场景改换时,根本单元之间的时空相关性变差,此刻运用当时根本单元j的线性猜测系数去猜测当时帧剩下根本单元的MAD而得到的PMADi(k){k=j+1,j+2…Nunit}会有较大的差错,而依据PMADi(k)核算的方针比特数的准确度也会有较大起伏下降,使得根本单元的比特数分配变得不准确。
2 依据DMAD的根本单元比特分配办法
在JVT-H017算法中,终究为待编码P帧分配的比特数f(i)由和
两部分组成
其间,是从当时GOP剩下比特数视点为待编码P帧分配的比特数,
是从编码码率和缓冲器占费用视点分配给待编码P帧的比特数。在JM13.2模型中,β设为常数0.5。
Jen-Yeu经过试验发现式(2)中的系数β与图画的时刻相关性有很大的联系,然后影响了帧间比特数分配和帧图画的编码信噪比,并依据此提出用DMAD(Difference of MAD)来判别视频序列的复杂度。第i帧第j个根本单元的DMAD为
DMAD(i,j)=|MAD(i,j)-MAD(i-1,j)| (3)
当DMAD值较大时,标明接连的两帧之间某一帧的猜测差错较大,此刻图画中极有可能有高速的物体运动或产生场景改换。
DMAD(i,j)被进一步归一化为用来替代式(2)中的权重系数β。因为H.264是以根本单元为根本单位进行编码的,所以式(2)被进一步改善并用来核算根本单元的方针比特数,如式(5)所示。
其间,f(i,j)标明第i帧第j个根本单元的方针比特数,Nunit为一帧中的根本单元总数。
但因为式(4)的分母选自帧内已编码根本单元的最大值,假如当时根本单元的DMAD仅仅部分最大,而其自身绝对值并不高,也会使获得比较大的值,然后被误判别为高复杂度,因而
并不能很好的反响不同视频序列间复杂度的差异。
对此,文中将复杂度从低到高摆放的akiyo,mother daughter,suzie,foreman,coastguard,mobile 6个序列(在常见码率下编码,6个序列的PSNR以约2.5~4 dB递减,标明6个序列的复杂度有比较显着的差异,能够反映不同视频序列编码的遍及状况)以24 kbits/s,48kbits/s和64 kbits/s的码率进行150帧编码,记载各序列每次编码时一切P帧根本单元的DMAD值。对同一序列在3种码率下编码的根本单元DMAD记载值进行一致排序并求取排序成果的中位数,该中位数代表了对应序列的根本单元的中等复杂度。求得6个序列编码成果的中位数的均匀值为0.18,它反映了不同视频序列编码时根本单元的中等复杂度的均值。
选取0.18作为判别基数,将改善为β(i,j)。
β(i,j)与视频复杂度成正相关,能够有用反映相邻帧间图画复杂度的改变状况和不同视频序列复杂度的差异。若DMAD(i,j)=0.18,则当时根本单元为具有中等复杂度的根本单元,此刻β(i,j)=0.5;当视频复杂度下降时,DMAD(i,j)减小,β(i,j)也会相应减小;反之亦然。而当DMAD挨近或大于0.36时,即以为视频复杂度很高,或产生场景改换,此刻β(i,j)取值为0.9。依据β(i,j),将式(5)改善为
在实践编码时,因为在编码前无法得到当时根本单元的DMAD,所以用当时根本单元的PMAD来核算其DMAD的近似值
DMAD(i,j)≈|PMD(i,j)-MAD(i-1,j)| (8)
3 抱负的比特数耗费状况
JVT-H017在帧内比特数耗费量超越帧猜测值后,选用简略添加量化参数的办法来削减后续根本单元的比特数耗费,但在此之前并无其它的比特数约束办法。因而提出一种视频编码的抱负条件,并用这种抱负条件下的比持数耗费状况来批改超越帧猜测值前根本单元的比特数分配。假定待编码帧的比特数猜测彻底准确,刚好等于该帧实践比特数耗费量,帧内各根本单元的MAD均持平,且耗费比特数相同,则该帧比特数耗费状况如图1所示。
图1中,Nunit是帧内根本单元总数,TRi(j)标明第i帧中第j个根本单元编码前该帧剩下比特数,设首根本单元的序号为1,那么易知TRi(1)即为当时帧比特数猜测值,TRi(1)/Nunit为上述抱负状况下一个根本单元所耗费的比特数(各根本单元耗费比特数相同)。
依据图1易知,第i帧中第j个根本单元编码完成后该帧耗费的总比特数的抱负值与实践值的差Di(j)可由式(9)标明。
其间,TAi(k)标明编码第i帧中第k个根本单元实践耗费的比特数。
当Di(j)0时,即以为该帧比特数耗费过多,此刻恰当添加量化参数(仿真中为添加1)以更强的操控后续根本单元的比特数耗费。
4 仿真成果与剖析
文中以H.264官方验证软件JM13.2作为试验渠道,对提出的根本单元层码率操控办法进行仿真。测验序列为QCIF格局,共编码150帧,首帧为I帧,其他为P帧,不考虑跳帧,帧率为15帧每秒,I帧和首P帧的初始量化步长的核算选用默许办法。分别对复杂度相差较大的akiyo,earphone,foreman和mobile序列进行编码测验。
表1所示为在24 kbits/s,48 kbits/s和64 kbits/s 3种编码码率下对上述序列进仃编码的成果。从表1可见,除了在24kbits/s码率下编码mobile 序列外,选用本文算法编码的均匀峰值信噪比均要高于JM软件和[6]中提出的算法,最大可比JM进步0.49dB,比[6]中的算法进步0,18dB。码率操控的成果也更为准确,JM13.2的实践码率与预订码率的均匀差错是0.37%,[6]中算法的码率均匀差错是0.32%,而本文算法的码率均匀差错是0.28%,可见本文算法更契合预订的码率要求。
为了验证算法在场景改换时的编码功能,在48 kbits/s码率下,用3种办法分别对carphone序列和akiyo序列的混合序列C55A55进行编码测验,混合序列在第55帧产生场景改换。编码成果如图2和图3所示。由图2可见,本文提出的办法在场景改换帧及后续帧均获得了更高的编码信噪比,进步了新场景的编码质量。
图3对3种码率操控办法在编码过程中的缓冲区状况进行了比照。从图3可见,文中办法比JM更挨近方针缓冲区占费用,而且在场景改换时有用下降了缓冲区占费用,在编码器缓冲区尺度有限的状况下,为新场景供给丁更多可用编码资源。
5 定论
文中提出了一种复杂度自适应的根本单元层码率操控算法。该算法运用DMAD参数来判别视频复杂度,对JVT-H017的比特数分配办法进行了改善,并运用抱负的根本单元层编码状况来对根本单元比特数分配进行批改。仿真标明,该办法在一般状况和场景改换时的编码质量均高于JM模型,均匀峰值信噪比最大可进步0.49 dB,实践编码码率更挨近预订要求。