一种新的快速高效自适应码率控制方法

文档序号:7686274阅读:167来源:国知局
专利名称:一种新的快速高效自适应码率控制方法
技术领域
本发明涉及视频压缩中的码率控制领域,特别涉及一种基于相关性的自适应新码率控制方法。

背景技术
H.264是由联合视频组(Joint Video Team,JVT)近年来致力开发研究的最新视频压缩国际标准。该标准为广播、存储设备、对话服务以及无线网络等方面的视频技术提供了技术支持,该和以往的标准相比,例如H.263,H.263+,H.263++和MPEG-4,在视频编码效率取得了很大的提高,相同视频质量下,H.264不仅比H.263和MPEG-4节约了50%的码率,而且对网络传输具有更好的支持功能。随着通信和视频技术的发展,视频信号的传输受到了越来越多的资源限制,对视频压缩和通信而言,主要的限制在于有限的通信带宽和存储空间,而这些决定了视频信号的输出码率。因此码率控制在视频通信中起着至关重要的作用。
码率控制的最终目的是为了在有限的缓冲区容量和信道带宽下传输高质量的视频序列。对一些实时的视频通信服务而言,如视频会议,视频手机,这些系统资源常常非常有限,在这种情况下,码率控制的要求很高,一方面需要满足低的传输时延要求,另一方面又要保证缓冲区中数据的容量不能上溢或下溢,保持在通信过程中缓冲区中数据占有量保持比较恒定。因此就需要精确的码率控制方法。但是在地码率通信时,很多现有的码率控制策略,如MPEG2 TM5、H.263 TMN8、MPEG4 VM8均无法适用。
H.264编码标准采用了李政国提出的JVT-G012码率控制方法。该方法利用线性预测来预测当前宏块的MAD,然后再使用MPEG-2中的二次模型(R-D预测模型)来计算量化等级。在JVT-G012标准中提出,码率控制分为GOP层码率控制,帧层码率控制以及宏块层码率控制。我们可在各层建立不同的模型即算法,通过层层地控制以实现高精度的码率控制方法。
视频压缩主要是利用了视频信号之间的相关性,视频压缩采用了各种预测技术来降低视频信号间的冗余,例如,帧内预测技术,帧间预测技术。码率方法也在一定程度上利用了视频信号之间的相关性,其利用这些相关性来进码率控制参数的预测及量化等级的预测。但是,不同的帧之间的相关性不同,若用相关性小的数据进行码率控制模型参数计算以及量化等级的预测,可能导致得到的结果不准确。视频帧与帧之间相关性随着时间间隔的增加,其不断降低,而对每一帧内的宏块,处于不同时空位置的宏块之间相关性也不相同。但G012标准中对这些情况并没有作详细的区分,是其码率控制模型精度不够的一个主要原因,并且需要采用较多的数据进行计算,在JM8.6版本中需要20组数据,虽然采用的数据量多可以在一定程度上保持码率控制的精度,但是当视频序列发生激烈变化或场景切换时,模型中的参数很难跟上其变化,从而使得量化等级也很难跟上其变化,这时,采用过多的过时数据来进行模型计算反而引起模型精度的下降。此外,在计算量化参数(QP)时,需用对MAD模型及RD模型中的参数进行预测,其预测方法涉及到解超维方程组,其算法较复杂。


发明内容
本发明的是鉴于上述问题而完成的,主要目的提供一种基于相关性的快速高效自适应码率控制方法。这种方法具有很高的码率控制精度,所需用于计算的数据量大大降低,因此算法复杂度也得到很大程度上降低,此外,相比G012标准而言,本发明能更准确地控制输出码率变化,并取得更高质量的视频输出。本发明目的实现主要包括以下步骤 1)为该即将编码的视频序列(GOP)分配目标编码比特 编码一个GOP时对该GOP分配目标比特,计算公式如下 TG是为编码该GOP分配的目标比特,u信道输出码率,F为编码帧率,NGop为该GOP帧的数目,Bs为缓冲区最大容量,Bc为编码完上一GOP缓冲区占有容量。
2)为即将编码帧分配目标比特 编码第n帧前对该帧分配目标比特,计算公式如下 TF(n)是为编码第n帧分配的目标比特,R(0)编码第0帧(I帧,帧内编码帧实际的编码比特,R(1)编码第一帧(P帧)实际编码比特。
3)帧之间的相关性计算 在当前图像序列组中,如果编码完第i帧的平均绝对误差(MAD)为MADF(i),第i帧的实际编码比特为RF(i),第i-1帧的MAD为MADF(i-1),第i-1帧的实际编码比特为RF(i-1)则定义第i帧与第i-1帧之间的相关性系数计算公式为 其中RMF(i)=RF(i)/MADF(i) 第n-1帧与第i帧之间的相关性计算方法为 其中β为一固定常数。在计算过程中采用第推公式可大大降低乘法次数,公式如下 p(n-1,i)=p(n-1,i-1)·(1-β(1-λF(i))) 4)限定用于即将编码帧的帧层模型计算的数据 (41)预测即将编码帧与已编码帧之间的相关性 在编码第n帧前,需要预测该帧与已编码的各帧之间的相关性,为了降低计算量,算法让第n帧与第i帧之间的相关性大小等于第n-1帧与第i-1帧之间的相关性。
(42)限定用于即将编码帧的帧层模型计算的数据 当视频序列中第n帧与第i之间相关性低于η时,η为一固定常数,则第n帧量化参数(QP)的计算不使用第i帧的编码数据,此时让p(n,i)等于0,并且,不再使用比该帧时间上更远帧的数据进行计算,计算第n帧的QP时,最多可用M帧已编码帧的数据,其m满足 p(n,n-M)>η且p(n,n-M-1)≤η 为了降低计算量,在满足码率控制方法精度的前提下,限制所有用于计算的相关基本单元总数M不大于FMax,若总数大于FMax时,取相关性最大的FMax帧数据。
(43)剔除偏差大的编码帧的数据 在实际编码过程中,往往由于视频序列内容的变化,导致了某些帧编码的实际编码比特与所分配的目标编码比特之间有较大的差距,如果将这帧的数据代人后续帧的QP计算中,就很可能影响其计算的精度。因此在计算第n帧量化参数(QP)的时,不使用偏差大的编码帧的数据,第i帧数据的偏差大小判断方法为 error(i)=|TMF(i)-RMF(i)| TMF(i)=TF(i)/MADF(i) RMF(i)=RF(i)/MADF(i) 其中error(i)表示第i帧数据的偏差大小,TF(i)表示在编码第i帧时为其分配的目标比特,RF(i)为编码第i帧的实际编码比特,则是否使用第i帧数据的判断方法为
其中,UF(i)等于1表示使用第i帧的数据用于第n帧QP的计算,否则等于0则不用第i帧的数据。
5)预测即将编码帧编码后的MAD值 在计算第n帧的QP前,需要预测该帧编码后的MAD,在本发明中其MAD预测公式设计如下 其中 CF为修正MAD预测模型的修正参数,其计算公式如下 其中 6)计算即将编码帧的量化参数 在帧层,第n帧的量化参数(QP)计算公式如下 其中α1为固定常数,A1为修正项,其作用是使QP尽可能快地向最优解靠近,A2为趋势项,其作用是预测视频内容的变化趋势,使得QP的变化能很快适应上视频序列的趋势A1和A2计算公式为 因为 用泰勒级数展开下面公式有如下近似 因此可将QPF(n)的计算公式简化下面的形式 QSF(n)=B1+B2+B3+B4 其中 将求得的QSF(n)转化为QPF(n)便可得到第n帧的量化参数。
7)为即将编码宏块分配目标编码比特 在编码第n帧u行v列宏块前为该宏块分配目标编码比特,其公式为 Nr=H*(u-1)+v-1 其中Rremain(n,u,v)编码第m帧u行v列宏块时当前帧还剩下的比特,RM(n,u,v)为编码第m帧u行v列宏块实际的编码比特,Nr为当前帧中还未编码的宏块数目,TM(n,u,v)是为编码第m帧u行v列分配的目标比特。
8)宏块间相关性系数计算 一个宏块与其周围相邻的宏块有在同一帧中有水平相邻的宏块,垂直相邻的宏块,与上一帧之间有同位置相邻的宏块,第m帧u行v列宏块与它周围宏块的相关系数计算公式分别定义如下 其中RMM(m,u,v)=RMM(m,u,v)/MADM(m,u,v) 其中λR(m,u,v)表示第m帧的u行、v列的宏块与m帧的u行v-1列宏块之间的相关性系数,为水平相关系数;λL(m,u,v)表示第m帧的u行v列的宏块与m帧的u-1行v列宏块之间的相关系数,为垂直相关系数;λC(m,u,v)表示第m帧的u行v列的宏块与m-1帧的u行v列宏块之间的相关系数,为同位置相关系数。
9)限定可用于即将编码宏块计算的数据 (91)预测即将编码宏块与他与其周围宏块之间的相关性系数 编码第n帧r行l列的宏块前,首先需要预测该宏块与它周围已编码宏块之间的相关系数,该宏块与其相邻宏块之间的相关系数预测公式分别为 λR(n,r,l)=MAX(λR(n,r,l-1),λR(n,r-1,l),λR(n-1,r,l)) λL(n,r,l)=MAX(λL(n,r,l-1),λL(n,r-1,l),λL(n-1,r,l)) λC(n,r,l)=MAX(λC(n,r,l-1),λC(n,r-1,l),λC(n-1,r,l)) (92)限定用于计算即将编码宏块QP的数据量 设第n帧r行l列宏块与第m帧u行v列宏块之间的相关性为q(n,r,l,m,u,v),当视频序列中第n帧r行l列宏块与第m帧u行v列宏块相关性低于η时,则第n帧r行l列宏块量化参数(QP)的计算不使用第m帧u行v列宏块的编码数据,此时让q(n,r,l,m,u,v)等于0,并且,限制所有用于计算的相关宏块总数MM不大于MMax,若总数大于MMax时,取相关性最大的MMax个宏块。
为了找出与即将编码宏块相关性最大的前MMax个可用宏块,一般的方法是采用先在同一帧扫描离当前宏块最近的一行,在该行以离当前宏块最近的一个宏块为中心,先从该宏块开始自左向右扫描,然后再从当前宏块开始自右向左扫描,扫描完该帧,在扫描更远一帧上的宏块。这种方法可以得到一个较优的解。但是,为了找出更好的一组相关性更高地宏块,在本发明中采用如下算法 设在视频图像的水平方向阻碍因子为ΩX,垂直方向阻碍因子为ΩY,时间方向阻碍因子为ΩT,从当前第n帧r行l列宏块扫描到第m帧u行v列宏块共需克服的总阻碍因子为 Θ(n,v,l,m,u,v)=|n-m|·ΩT+|r-u|·ΩY+|l-v|·ΩX Θ(n,r,l,m,u,v)越小,往往对应的两宏块相关性越大,因此,按照阻碍因子大小顺序找出各个宏块,并计算其相关性可以得到一组更优的解。一般在视频序列编码过程中阻碍因子ΩX、ΩY和ΩT不发生改变,可以预先将计算宏块的次序作为一数组存放起来。
(93)预测即将编码宏块与已编码宏块之间的相关性 编码第n帧的r行l列的宏块前,需要预测该宏块与已编码的各宏块之间的相关性,在此,假设ΩY>ΩX>ΩT,那么扫描的顺序尽可能地按照阻碍因子小的方向扫描,按照这个规律第n帧h行l列与第m帧的u行v列的宏块之间的相关性计算公式为 其中μL,μR和μC为固定系数,用于控制在水平,垂直的数目以及控制不同帧之间相关宏块的数目。
在计算过程中,由于阻碍因子越小的宏块,它离即将编码宏块越近,因此可采取与帧层相关性计算类同的第推公式进行简化。
(94)剔除偏差大的编码帧的数据 在计算第n帧r行l列宏块量化参数(QP)的时,不使用偏差大的编码帧的数据,第m帧v行u列宏块数据的偏差大小判断方法为 errorM(m,u,v)=|TMM(m,u,v)-RMM(m,u,v)| TMM(m,u,v)=TMM(m,u,v)/MADM(m,u,v) RMM(m,u,v)=RMM(m,u,v)/MADM(m,u,v) 其中errorM(m,u,v)表示第m帧v行u列宏块数据的偏差大小,TM(m,v,u)表示在编码第n帧r行l列宏块时为其分配的目标比特,RM(m,v,u)为编码第m帧v行u列的实际编码比特,则是否使用第m帧v行u列数据的判断方法为
其中,UM(m,u,v)等于1表示使用第m帧v行u列宏块的数据用于第n帧r行l列宏块QP的计算,否则等于0则不用第m帧v行u列的数据。
10)预测即将编码宏块在编码后MAD值 在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值,在本发明中MAD的预测公式为 其中 CM为修正MAD预测模型的修正参数,其计算公式如下 在阻碍因子满足ΩY>ΩX>ΩT情况下 QM2=Q1+Q2+Q3+Q4+Q5 其中N为在时间上,已编码同位置宏块离当前宏块最远的距离,N值为一固定整数,若时间上距离比N更远的宏块则认为与当前宏块不相关,L为视频图像的水平宏块数目,H为视频图像垂直方向的宏块数目。
11)计算即将宏块的量化参数 在宏块层,第n帧的量化参数(QP)计算公式如下 其中α2为固定常数,D1为修正项,其作用是使QP尽可能快地向最优解靠近,D2为趋势项,A2为趋势项,其作用是预测视频内容的变化趋势,使得QP的变化能很快适应上视频序列的趋势D1和D2计算公式为 在阻碍因子满足ΩY>ΩX>ΩT情况下 因为在公式中有 用泰勒级数展开下面公式有如下近似 可将QSM(n,r,l)的计算公式简化为 QSM(n,r,l)=W1+W2+W3+W4 其中 计算得到第n帧r行l列宏块量化步长QSM(n,r,l)转化为量化参数QPM(n,r,l),根据QPF(n)对QPM(n,r,l)进行限制,限制公式如下 QPM(n,r,l)=MAX(QPF(n)-DuantQP,QPM(n,r,l)) QPM(n,r,l)=MIN(QPF(n)+DuantQP,QPM(n,r,l)) 其中DuantQP为一固定常数。
12)编码一个宏块 在编码第n帧的r行l列宏块时,编码器根据计算得到的QPM(n,r,l)编码该宏块。编码完该宏块后,编码器将输出编码该宏块的编码信息以及编码比特大小,其编码信息送入缓冲区,以待输出信道,编码比特的大小送到码率控制模块中,用于计算模型参数以及后续宏块和帧的量化参数的预测。
13)计算已编码宏块的MAD值 编码完第n帧的第r行l列的宏块后,该宏块的实际MAD值计算公式如下 其中

为编码该宏块后重建的宏块内第b行c列的像素值,xn,r,l(b,c)为实际的像素值。
14)若编码完当前帧,转(15),否则转(7)编码下一宏块 15)计算已编码帧的MAD。
编码完第n帧后,该帧的实际MAD值计算公式如下 其中Fr(n,b,c)为编码该宏块后重建的帧内第b行c列的像素值,Fo(n,b,c)为实际的像素值。
16)若编码完当前GOP,判断是否视频序列已经变完,若编码完成,步骤结束,否则转(1) 关于本发明算法解化的一些说明 一个好的码率控制方案,需要具有较高的精度、高性能之外,算法复杂度也是衡量算法好坏的重要标准,这关系到该方案是否在有限的硬件资源下顺利地实现并投入市场。针对本发明而言,相比于G012标准,其平均算法复杂度有了一定的降低。为了进一步降低本发明的算法复杂度,可以在本方发明基础上作进一步地数学优化 1)参数设置的优化 针对模型中的参数β、α1、α2等,其参数的设置在要在一个合理的范围内,便可保证本发明性能,因此其参数的设置具有较大的灵活性。若将这些参数设置为一些特定数字,便可将参数的乘法操作变为简单地移位操作和加减法操作。
例如设置β=5,则β·A=A<<2+A。本文中的其他参数也可作类似处理。
2)公式合并的优化 本发明MAD计算模型和QP计算模型中具有大量的相同乘法项,因此可以将这些公共乘法项合并在一起来解化算法复杂度。
3)公式的解华 针对帧层QP计算公式 其中的添加A1项的目的是为了防止在出现预测偏差太大时能迅速恢复,如果去掉,本发明算法也能通过自适应调节来恢复,只是偏差可能会多持续一两帧。A2项的目的为了防止QP码率控制模型能和好地适应视频的变化趋势,当然,从下面公式可以看出,增加α1的值也可以提高码率控制模型的敏感性,不过同时会降低其稳定性,A2项的加入就可以保证码率控制模型的稳定,同时在视频内容发生变化时能更好地适应变化地趋势。因此,去掉A2项,只要α1的值设置合理,其码率控制模型的精度仍然很好。
针对宏块层QP计算公式,也可作类似地取舍。



图1是本发明实施对一组视频序列进行码率控制的实例,其中白色块表示视频中的一个宏块,同时进行宏块层码率控制,灰色块表示视频中的一个宏块,其量化参数采用帧层码率控制计算得到的QP; 图2是视频编码系统框图; 图3是本发明方法实现过程的主要步骤流程图。

具体实施例方式 以下结合附图进一步描述本发明实施的方法 根据码率控制的对象的不同,其可分为对视频序列(GOP)的码率控制,对视频帧的码率控制以及对宏块的码率控制,图1所示的是对一个GOP长度为N的QCIF大小的视频序列进行码率控制的实例,它结合了GOP层码率控制,帧层码率控制和宏块层码率控制。编码一个GOP前需要对该GOP进行码率控制,目的是为了让编码完该GOP产生的编码比特与期望的目标比特相同以使得缓冲区容量保持一个相对平稳,其所期望目标比特由信道输出码率和缓冲区容量决定。帧层码率控制是对视频的每一帧进行控制,它根据缓冲区容量和信道输出码率预先为每一帧分配一目标比特,目的是让编码完该帧后的实际编码比特接近目标比特以使得缓冲区容量保持平稳,在本实例中,帧层码率控制不对第0帧,I帧,和第一帧P帧进行码率控制,其编码使用的量化参数预先设定好。宏块层码率控制对帧中每一个宏块进行码率控制,目的是为了实现编码完该帧后总的编码比特尽可能地接近为该帧分配的目标比特,在本实例中,宏块层码率控制不对视频帧的第一个宏块进行码率控制,编码第一个宏块时,其量化参数为在该帧的帧层码率控制方法求得的量化参数。
图2所示是传统视频编码框图结构,输入编码器的视频信号是没有经过压缩的原始信号,根据码率控制的对象不同,可以是GOP信号,帧信号以及宏块信号。在图2中所示的编码器可以是视频编码芯片或者视频编码程序,它根据码率控制模块提供的量化等级对视频帧信号进行压缩编码,并将编码后的编码信号输入到缓冲区以待输出到信道,同时将编码比特的大小以及编码图像的平均绝对误差值(MAD)送到码率控制模块。在图2中所示的码率控制模块根据编码其送来的编码比特信息和MAD值,并结合缓冲区容量为编码器提供压缩编码所需要的量化等级。
1)为该即将编码的视频序列(GOP)分配目标编码比特 编码一个GOP时对该GOP分配目标比特,计算公式如下 由于GOP的第一帧为I帧,为帧内编码帧,其量化等级采用初始设定的量化等级,并且第一个P帧也采用初始设定的量化等级。在后续的码率控制中,编码将从第2个P帧开始进行码率,即编码帧n为2开始。
2)为即将编码帧分配目标比特 编码第n帧前对该帧分配目标比特,计算公式如下 3)帧之间的相关性计算 由于视频帧之间存在很大的相关性,因此可以利用它们之间的相关性进行压缩编码,如果两帧之间的相关性较大,那么用帧间预测产生的误差往往很小既MAD会很小,反之,当视频序列发生变化时,其两帧之间的相关性降低,则MAD会增加。通过比较相邻两帧之间的相关性,可反映帧之间的相关性变化。
在当前图像序列组中,如果编码完第i帧的平均绝对误差(MAD)为MADF(i),第i帧的实际编码比特为RF(i),第i-1帧的MAD为MADF(i-1),第i-1帧的实际编码比特为RF(i-1)则定义第i帧与第i-1帧之间的相关性系数计算公式为 其中RMF(i)=RF(i)/MADF(i) 第n-1帧与第i帧之间的相关性计算方法为 在计算过程中采用第推公式来降低乘法次数,公式如下 p(n-1,i)=p(n-1,i-1)·(1-β(1-λF(i))) 4)限定用于即将编码帧的帧层模型计算的数据 (41)预测即将编码帧与已编码帧之间的相关性 在编码第n帧前,需要预测该帧与已编码的各帧之间的相关性,为了降低计算量,算法让第n帧与第i帧之间的相关性大小等于第n-1帧与第i-1帧之间的相关性。
(42)限定用于即将编码帧的帧层模型计算的数据 当视频序列中第n帧与第i之间相关性低于η时,η为一固定常数,则第n帧量化参数(QP)的计算不使用第i帧的编码数据,此时让p(n ,i)等于0,并且,不再使用比该帧时间上更远帧的数据进行计算,计算第n帧的QP时,最多可用M帧已编码帧的数据,其M满足 p(n,n-M)>η且p(n,n-M-1)≤η 为了降低计算量,在满足码率控制方法精度的前提下,限制所有用于计算的相关基本单元总数M不大于FMax,若总数大于FMax时,取相关性最大的FMax帧数据。
(43)剔除偏差大的编码帧的数据 判断第i帧数据的偏差大小方法为 error(i)=|TMF(i)-RMF(i)| TMF(i)=TF(i)/MADF(i) RMF(i)=RF(i)/MADF(i) 其中error(i)表示第i帧数据的偏差大小,TF(i)表示在编码第i帧时为其分配的目标比特,RF(i)为编码第i帧的实际编码比特,则是否使用第i帧数据的判断方法为
其中,UF(i)等于1表示使用第i帧的数据用于第n帧QP的计算,否则等于0则不用第i帧的数据。
5)预测即将编码帧编码后的MAD值 在计算第n帧的QP前,需要预测该帧编码后的MAD,预测公式设计如下 其中 CF为修正MAD预测模型的修正参数,其计算公式如下 其中 6)计算即将编码帧的量化参数 在帧层,第n帧的量化参数(QP)计算公式如下 其中α1为固定常数,A1为修正项,其作用是使QP尽可能快地向最优解靠近,A2为趋势项,其作用是预测视频内容的变化趋势,使得QP的变化能很快适应上视频序列的趋势A1和A2计算公式为 因为 用泰勒级数展开下面公式有如下近似 因此可将QPF(n)的计算公式简化下面的形式 QSF(n)=B1+B2+B3+B4 其中 将求得的QSF(n)转化为QPF(n)便可得到第n帧的量化参数。
7)为即将编码宏块分配目标编码比特 Nr=H*(u-1)+v-1 其中Rremain(n,u,v)编码第m帧u行v列宏块时当前帧还剩下的比特,RM(n,u,v)为编码第m帧u行v列宏块实际的编码比特,Nr为当前帧中还未编码的宏块数目,TM(n,u,v)是为编码第m帧u行v列分配的目标比特。
8)宏块间相关性系数计算 一个宏块与其周围相邻的宏块有在同一帧中有水平相邻的宏块,垂直相邻的宏块,与上一帧之间有同位置相邻的宏块,第m帧u行v列宏块与它周围宏块的相关系数计算公式分别定义如下 其中RMM(m,u,v)=RMM(m,u,v)/MADM(m,u,v) 其中λR(m,u,v)表示第m帧的u行、v列的宏块与m帧的u行v-1列宏块之间的相关性系数,为水平相关系数;λL(m,u,v)表示第m帧的u行v列的宏块与m帧的u-1行v列宏块之间的相关系数,为垂直相关系数;λC(m,u,v)表示第m帧的u行v列的宏块与m-1帧的u行v列宏块之间的相关系数,为同位置相关系数。
9)限定可用于即将编码宏块计算的数据 (91)预测即将编码宏块与他与其周围宏块之间的相关性系数 编码第n帧r行l列的宏块前,首先需要预测该宏块与它周围已编码宏块之间的相关系数,该宏块与其相邻宏块之间的相关系数预测公式分别为 λR(n,r,l)=MAX(λR(n,r,l-1),λR(n,r-1,l),λR(n-1,r,l)) λL(n,r,l)=MAX(λL(n,r,l-1),λL(n,r-1,l),λL(n-1,r,l)) λC(n,r,l)=MAX(λC(n,r,l-1),λC(n,r-1,l),λC(n-1,r,l)) (92)限定用于计算即将编码宏块QP的数据量 设第n帧r行l列宏块与第m帧u行v列宏块之间的相关性为q(n,r,l,m,u,v),当视频序列中第n帧r行l列宏块与第m帧u行v列宏块相关性低于η时,则第n帧r行l列宏块量化参数(QP)的计算不使用第m帧u行v列宏块的编码数据,此时让q(n,r,l,m,u,v)等于0,并且,限制所有用于计算的相关宏块总数MM不大于MMax,若总数大于MMax时,取相关性最大的MMax个宏块。
为了找出与即将编码宏块相关性最大的前MMax个可用宏块,一般的方法是采用先在同一帧扫描离当前宏块最近的一行,在该行以离当前宏块最近的一个宏块为中心,先从该宏块开始自左向右扫描,然后再从当前宏块开始自右向左扫描,扫描完该帧,在扫描更远一帧上的宏块。这种方法可以得到一个较优的解。但是,为了找出更好的一组相关性更高地宏块,预先通过设在视频图像的水平方向阻碍因子为ΩX,垂直方向阻碍因子为ΩY,时间方向阻碍因子为ΩT,求出一数计算宏块的次序。在此以ΩT=1,ΩX=2,ΩY=3为列说明计算宏块的次序。首先通过阻碍因子求出次序坐标,以圆点(0,0,0)开始,分别对应于(T,X,Y)方向根据公式Θ(0,0,0,m,u,v)=|m|·ΩT+|u|·ΩY+|v|·ΩX,依次计算次序坐标{m,u,v} 阻碍因子为1的坐标——{-1,0,0} 阻碍因子为2的坐标——{-2,0,0},{0,-1,0},{0,1,0}, 阻碍因子为3的坐标——{-3,0,0},{-1,1,0},{-1,-1,0},{0,0,1},{0,0,-1} …………………… 在编码第n帧r行l列宏块时,由于后续宏块还未进行编码,因此无法利用它们的编码数据,当m=0,y>0,x>0时,位于视频坐标{n+m,r+y,l+x}的宏块数据无法使用,则应将该坐标扣除。通过上面的方法,可以得到计算次序的坐标数组{{-1,0,0},{-2,0,0},{0,-1,0},{-3,0,0},{-1,1,0},{-1,-1,0},{0,0,-1}……}。根据次数组作为扫描宏块的次序。
(93)预测即将编码宏块与已编码宏块之间的相关性 编码第n帧的r行l列的宏块前,需要预测该宏块与已编码的各宏块之间的相关性,在此,假设ΩY>ΩX>ΩT,那么扫描的顺序尽可能地按照阻碍因子小的方向扫描,按照这个规律第n帧h行l列与第m帧的u行v列的宏块之间的相关性计算公式为 其中μL,μR和μC为固定系数,用于控制在水平,垂直的数目以及控制不同帧之间相关宏块的数目。
在计算过程中,由于阻碍因子越小的宏块,它离即将编码宏块越近,因此可采取与帧层相关性计算类同的第推公式进行简化,并且可在每此扫描到一个宏块就可以在此时计算其相关性,其相关性根据期邻近已计算相关性的宏块的相关性第推得到。
(94)剔除偏差大的编码帧的数据 在计算第n帧r行l列宏块量化参数(QP)的时,不使用偏差大的编码帧的数据,第m帧v行u列宏块数据的偏差大小判断方法为 errorM(m,u,v)=|TMM(m,u,v)-RMM(m,u,v)| TMM(m,u,v)=TMM(m,u,v)/MADM(m,u,v) RMM(m,u,v)=RMM(m,u,v)/MADM(m,u,v) 其中errorM(m,u,v)表示第m帧v行u列宏块数据的偏差大小,TM(m,v,u)表示在编码第n帧r行l列宏块时为其分配的目标比特,RM(m,v,u)为编码第m帧v行u列的实际编码比特,则是否使用第m帧v行u列数据的判断方法为
其中,UM(m,u,v)等于1表示使用第m帧v行u列宏块的数据用于第n帧r行l列宏块QP的计算,否则等于0则不用第m帧v行u列的数据。
10)预测即将编码宏块在编码后MAD值 在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值,在本发明中MAD的预测公式为 其中 CM为修正MAD预测模型的修正参数,其计算公式如下 在阻碍因子满足ΩY>ΩX>ΩT情况下 QM2=Q1+Q2+Q3+Q4+Q5 其中N为在时间上,已编码同位置宏块离当前宏块最远的距离,N值为一固定整数,若时间上距离比N更远的宏块则认为与当前宏块不相关,L为视频图像的水平宏块数目,H为视频图像垂直方向的宏块数目。
11)计算即将宏块的量化参数 在宏块层,第n帧的量化参数(QP)计算公式如下 其中α2为固定常数,D1为修正项,其作用是使QP尽可能快地向最优解靠近,D2为趋势项,A2为趋势项,其作用是预测视频内容的变化趋势,使得QP的变化能很快适应上视频序列的趋势D1和D2计算公式为 在阻碍因子满足ΩY>ΩX>ΩT情况下 因为在公式中有 用泰勒级数展开下面公式有如下近似 可将QSM(n,r,l)的计算公式简化为 QSM(n,r,l)=W1+W2+W3+W4 其中 计算得到第n帧r行l列宏块量化步长QSM(n,r,l)转化为量化参数QPM(n,r,l),根据QPF(n)对QPM(n,r,l)进行限制,限制公式如下 QPM(n,r,l)=MAX(QPF(n)-DuantQP,QPM(n,r,l)) QPM(n,r,l)=MIN(QPF(n)+DuantQP,QPM(n,r,l)) 其中DuantQP为一固定常数。
12)编码一个宏块 在编码第n帧的r行l列宏块时,编码器根据计算得到的QPM(n,r,l)编码该宏块。编码完该宏块后,编码器将输出编码该宏块的编码信息以及编码比特大小,其编码信息送入缓冲区,以待输出信道,编码比特的大小送到码率控制模块中,用于计算模型参数以及后续宏块和帧的量化参数的预测。
13)计算已编码宏块的MAD值 编码完第n帧的第r行l列的宏块后,该宏块的实际MAD值计算公式如下 14)若编码完当前帧,转(15),否则转(7)编码下一宏块 15)计算已编码帧的MAD。
编码完第n帧后,该帧的实际MAD值计算公式如下 16)若编码完当前GOP,判断是否视频序列已经变完,若编码完成,步骤结束,否则转(1) 为了说明本发明的算法性能,作了以下对比试验,将发明与JM8.6的码率标准作对比,仿真设置为Hadamard变换,CABAC和RDO设置为打开模式,编码150帧,其中第一帧为I帧,其余全为P帧。用不同类型的QCIF视频序列作测试“Foreman”,“News”,“Salesman”,“Carphone”,不同的CIF序列“Foreman”,“Container”。为了体现算法性能,在尽可能保证算法精度的情况下降低用于模型计算的数据量。在帧层码率控制模型中,设置FMAX为4,即在计算每帧的MAD以及QP时,最多可用的数据量是前面4帧已编码帧的数据,再宏块层,设置MMAX为3,即在计算每个宏块的MAD以及QP时,最多可用的数据量是其周围3个已编码宏块的数据,即只将同行上一块,同列上一块,上一帧同位置块三个宏块的数据代入宏块每次的码率控制中,在这种情况下,用于即将编码块码率控制模型计算的数据量只有相邻三个宏块的编码数据。在这种情况下,无需计算下列公式中的D1,D2。
这使的计算公式大大地简化了,同时其算法复杂度也极大地降低,当然,增加计算的数据量有利于算法精度,然而太多冗余量就会增加,有时过“旧”的数据用于计算反而会影响精度,而本发明仿真实例是在保证精度的情况下,用最少数据量计算,来体现本发明的优异性。从表1数据可以看出,在高中低码率通信中本文算法与JM.86算法相比,在算法复杂度极大降低的情况下,本发明的算法精度仍然很高,PSNR提高了平均0.43dB左右,而实际编码比特比JM.86少,且更接近于目标比特,并能随目标码率的变化而变化。同时本发明提出的码率控制方法能够把让缓冲区的满度维持在一个适度的水平,保证了缓冲区既不上溢也不下溢,也保证了缓冲区中的数据占有量的相对稳定。
表1仿真结果数据

权利要求
1.有一种新的快速高效自适应码率控制方法,其特征在于利用了视频帧及宏块之间的相关性,自适应地调整用于计算平均绝对误差(MAD)模型及RD模型的数据量;帧层控制和宏块层控制相结合策略,降低了视频帧内宏块量化等级的波动范围;建立新的帧层MAD模型和RD模型及其计算方法;建立新的宏块层MAD模型和RD模型,并依据宏块在时空上的相关性特点,利用其相关性,设计了新的MAD模型和RD模型计算方法,该方法主要包括以下步骤
(1)为即将编码帧分配目标比特;
(2)限定用于即将编码帧的帧层模型计算的数据;
(3)预测即将编码帧编码后的MAD值;
(4)计算即将编码帧量化参数;
(5)为即将编码的宏块分配目标编码比特;
(6)限定可用于即将编码宏块计算的数据;
(7)预测即将编码宏块的MAD值;
(8)计算即将编码宏块的量化参数;
(9)编码一个宏块;
(10)若编码完当前帧转(11),否则转(6)编码下一宏块;
(11)若编码完当前GOP,判断是否视频序列已经变完,若编码完成,步骤结束,如果没有编完则转(1)。
2.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所述步骤(2)采用了下面的步骤
步骤(21)计算即将编码帧与已编码帧之间的相关性
在当前图像序列组中,如果编码完第i帧的平均绝对误差(MAD)为MADF(i),第i帧的实际编码比特为RF(i),第i-1帧的MAD为MADF(i-1),第i-1帧的实际编码比特为RF(i-1)则定义第i帧与第i-1帧之间的相关性系数计算公式为
其中RMF(i)=RF(i)/MADF(i)
第n-1帧与第i帧之间的相关性计算方法为
其中β为一固定常数。
步骤(22)限定用于帧层模型计算的数据量
在编码第n帧前,需要预测该帧与已编码的各帧之间的相关性,为了降低计算量,算法让第n帧与第i帧之间的相关性大小等于第n-1帧与第i-1帧之间的相关性。
设第n帧与第i帧之间的相关性计算方法为p(n,i),当视频序列中第n帧与第i之间相关性低于η时,η为一固定常数,则第n帧量化参数(QP)的计算不使用第i帧的编码数据,此时让p(n,i)等于0,计算第n帧的QP时,最多可用M帧已编码帧的数据,其M满足
p(n,n-M)>η且p(n,n-M-1)≤η
为了降低计算量,限制所有用于计算的相关基本单元总数M不大于FMax,若总数大于FMax时,取相关性最大的FMax帧数据;
步骤(23)剔除偏差大的编码帧的数据
在计算第n帧量化参数(QP)的时,不使用偏差大的编码帧的数据,第i帧数据的偏差大小判断方法为
error(i)=|TMF(i)-RMF(i)|
TMF(i)=TF(i)/MADF(i)
RMF(i)=RF(i)/MADF(i)
其中error(i)表示第i帧数据的偏差大小,TF(i)表示在编码第i帧时为其分配的目标比特,RF(i)为编码第i帧的实际编码比特,则是否使用第i帧数据的判断方法为
其中,UF(i)等于1表示使用第i帧的数据用于第n帧QP的计算,否则等于0则不用第i帧的数据。
3.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所述步骤(3)采用了下面的步骤
在计算第n帧的QP前,需要预测该帧编码后的MAD,在本发明中其MAD预测公式设计如下
其中
CF为修正MAD预测模型的修正参数,其计算公式如下
其中
4.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所述步骤(4)采用了下面的方法
在帧层,第n帧的量化步长(QS)计算公式如下
其中α1为固定常数,A1为修正项,A2为趋势项,A1和A2计算公式为
因为
因此
可将QSF(n)的计算公式简化为
QSF(n)=B1+B2+B3+B4
其中
将求得的QSF(n)转化为QPF(n)便可得到第n帧的量化参数。
5.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所述步骤(6)采用了下面的方法
步骤(51)宏块间相关性系数计算
一个宏块与其周围相邻的宏块有在同一帧中有水平相邻的宏块,垂直相邻的宏块,与上一帧之间有同位置相邻的宏块,第m帧u行v列宏块与它周围宏块的相关系数计算公式分别定义如下
其中RMM(m,u,v)=RMM(m,u,v)/MADM(m,u,v)
其中λR(m,u,v)表示第m帧的u行、v列的宏块与m帧的u行v-1列宏块之间的相关性系数,为水平相关系数;λL(m,u,v)表示第m帧的u行v列的宏块与m帧的u-1行v列宏块之间的相关系数,为垂直相关系数;λC(m,u,v)表示第m帧的u行v列的宏块与m-1帧的u行v列宏块之间的相关系数,为同位置相关系数。
步骤(52)预测即将编码宏块与他与其周围宏块之间的相关性系数
编码第n帧r行l列的宏块前,首先需要预测该宏块与它周围已编码宏块之间的相关系数,该宏块与其相邻宏块之间的相关系数预测公式分别为
λR(n,r,l)=MAX(λR(n,r,l-1),λR(n,r-1,l),λR(n-1,r,l))
λL(n,r,l)=MAX(λL(n,r,l-1),λL(n,r-1,l),λL(n-1,r,l))
λC(n,r,l)=MAX(λC(n,r,l-1),λC(n,r-1,l),λC(n-1,r,l))
步骤(53)限定用于即将编码宏块QP计算的数据量
设第n帧r行l列宏块与第m帧u行v列宏块之间的相关性为q(n,r,l,m,u,v),当视频序列中第n帧r行l列宏块与第m帧u行v列宏块相关性低于η时,则第n帧r行l列宏块量化参数(QP)的计算不使用第m帧u行v列宏块的编码数据,此时让q(n,r,l,m,u,v)等于0,并且,限制所有用于计算的相关宏块总数MM不大于MMax,若总数大于MMax时,取相关性最大的MMax个宏块。
为了找出与即将编码宏块相关性最大的前MMax个可用宏块,一般的方法是采用先在同一帧扫描离当前宏块最近的一行,在该行以离当前宏块最近的一个宏块为中心,先从该宏块开始自左向右扫描,然后再从当前宏块开始自右向左扫描,扫描完该帧,在扫描更远一帧上的宏块。这种方法可以得到一个较优的解。但是,为了找出更好的一组相关性更高地宏块,在本发明中采用如下算法
设在视频图像的水平方向阻碍因子为ΩX,垂直方向阻碍因子为ΩY,时间方向阻碍因子为ΩT,从当前第n帧r行l列宏块扫描到第m帧u行v列宏块共需克服的总阻碍因子为
Θ(n,r,l,m,u,v)=|n-m|·ΩT+|r-u|·ΩY+|l-v|·ΩX
Θ(n,r,l,m,u,v)越小,往往对应的两宏块相关性越大,因此,按照阻碍因子大小顺序找出各个宏块,并计算其相关性可以得到一组更优的解。一般在视频序列编码过程中阻碍因子ΩX、ΩY和ΩT不发生改变,可以预先将计算宏块的次序作为一数组存放起来。
步骤(54)预测即将编码宏块与已编码宏块之间的相关性
在此,假设ΩY>ΩX>ΩT,那么扫描的顺序尽可能地按照阻碍因子小的方向扫描,按照这个规律第n帧h行l列与第m帧的u行v列的宏块之间的相关性计算公式为
其中μL,μR和μC为固定系数,用于控制在水平,垂直的数目以及控制不同帧之间相关宏块的数目。
步骤(55)剔除偏差大的编码帧的数据
在计算第n帧r行l列宏块量化参数(QP)的时,不使用偏差大的编码帧的数据,第m帧v行u列宏块数据的偏差大小判断方法为
errorM(m,u,v)=|TMM(m,u,v)-RMM(m,u,v)|
TMM(m,u,v)=TMM(m,u,v)/MADM(m,u,v)
RMM(m,u,v)=RMM(m,u,v)/MADM(m,u,v)
其中errorM(m,u,v)表示第m帧v行u列宏块数据的偏差大小,TM(m,v,u)表示在编码第n帧r行l列宏块时为其分配的目标比特,RM(m,v,u)为编码第m帧v行u列的实际编码比特,则是否使用第m帧v行u列数据的判断方法为
其中,UM(m,u,v)等于1表示使用第m帧v行u列宏块的数据用于第n帧r行l列宏块QP的计算,否则等于0则不用第m帧v行u列的数据。
6.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所述步骤(7)采用了下面的步骤
在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值,在本发明中MAD的预测公式为
其中
CM为修正MAD预测模型的修正参数,其计算公式如下
在阻碍因子满足ΩY>ΩX>ΩT情况下
QM2=Q1+Q2+Q3+Q4+Q5
其中N为在时间上,已编码同位置宏块离当前宏块最远的距离,N值为一固定整数,若时间上距离比N更远的宏块则认为与当前宏块不相关,L为视频图像的水平宏块数目,H为视频图像垂直方向的宏块数目。
7.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所述步骤(8)采用了下面的方法
在宏块层,第n帧的量化参数(QS)计算公式如下
其中α2为固定常数,D1为修正项,D2为趋势项,D1和D2计算公式为
在阻碍因子满足ΩY>ΩX>ΩT情况下
可将QSM(n,r,l)的计算公式简化为
QSM(n,r,l)=W1+W2+W3+W4
其中
计算得到第n帧r行l列宏块量化步长QSM(n,r,l)转化为量化参数QPM(n,r,l),根据QPF(n)对QPM(n,r,l)进行限制,限制公式如下
QPM(n,r,l)=MAX(QPF(n)-DuantQP,QPM(n,r,l))
QPM(n,r,l)=MIN(QPF(n)+DuantQP,QPM(n,r,l))
其中DuantQP为一固定常数。
8.根据权利要求4所述基于相关性的自适应码率控制方法,其特征在于,所述α1取值范围为-10到10之间FMax取值范围为1到20之间。
9.根据权利要求5所述基于相关性的自适应码率控制方法,其特征在于,所述MMax取值范围为1到50之间;μL,μR和μC取值范围在0-10之间;ΩX、ΩY和ΩC为自然数。
10.根据权利要求7所述基于相关性的自适应码率控制方法,其特征在于,所述α2取值范围为-10到10之间,所述DuantQP取值范围在1到5之间。
全文摘要
本发明涉及一种基于H.264/AVC的快速高效的新自适应码率控制方法。该方法利用视频帧或宏块之间的相关性,自适应地调整用于模型参数预测的数据量,使得模型计算的平均数据量大大降低,从而降低了计算复杂度。本发明码率控制方法采用帧层控制和宏块层控制结合,并在帧层和宏块层,分别建立了新的MAD模型和RD模型,测试表明,其模型即使在使用很少数据量进行计算时,仍具有很高精度,本发明与G012标准相比算法复杂度低,提高了码率控制精度,实际编码比特更接近于目标编码比特,平缓了缓冲区,并且编码视频的PSNR值平均提高了0.43dB,还降低了视频帧内的宏块量化等级的波动以及编码比特的波动。
文档编号H04N7/50GK101262603SQ20081004506
公开日2008年9月10日 申请日期2008年3月27日 优先权日2008年3月27日
发明者春 方 申请人:春 方
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1