CN101287112B - 一种自适应码率控制方法 - Google Patents
一种自适应码率控制方法 Download PDFInfo
- Publication number
- CN101287112B CN101287112B CN 200810044612 CN200810044612A CN101287112B CN 101287112 B CN101287112 B CN 101287112B CN 200810044612 CN200810044612 CN 200810044612 CN 200810044612 A CN200810044612 A CN 200810044612A CN 101287112 B CN101287112 B CN 101287112B
- Authority
- CN
- China
- Prior art keywords
- frame
- macro block
- row
- mad
- correlation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种基于H.264/AVC的快速高效应码率控制的优化方法。本发明基于发明“一种新的快速高效自适应码率控制方法”的基础上,通过对数据间的相关性值进行量化,对其码率控制模型进行优化和简化,在保证算法性能的基础上进一步地降低了算法复杂度。测试表明,本发明在使用很少数据量进行计算时,仍具有很高精度,本发明与G012标准相比,极大地降低了算法复杂度,并提高了码率控制精度,实际编码比特更接近于目标编码比特,平缓了缓冲区,使得仿真序列的跳帧数也大大降低,并且编码视频的PSNR值平均提高了0.5dB。
Description
技术领域
本发明涉及视频压缩中的码率控制领域,特别涉及一种基于相关性的自适应新码率控制方法和该方法的算法优化。
技术背景
H.264是由联合视频组(Joint Video Team,JVT)近年来致力开发研究的最新视频压缩国际标准。该标准为广播、存储设备、对话服务以及无线网络等方面的视频技术提供了技术支持,该和以往的标准相比,例如:H.263,H.263+,H.263++和MPEG-4,在视频编码效率取得了很大的提高,相同视频质量下,H.264不仅比H.263和MPEG-4节约了50%的码率,而且对网络传输具有更好的支持功能。随着通信和视频技术的发展,视频信号的传输受到了越来越多的资源限制,对视频压缩和通信而言,主要的限制在于有限的通信带宽和存储空间,而这些决定了视频信号的输出码率。因此码率控制在视频通信中起着至关重要的作用。
码率控制的最终目的是为了在有限的缓冲区容量和信道带宽下传输高质量的视频序列。对一些实时的视频通信服务而言,如视频会议,视频手机,这些系统资源常常非常有限,在这种情况下,码率控制的要求很高,一方面需要满足低的传输时延要求,另一方面又要保证缓冲区中数据的容量不能上溢或下溢,保持在通信过程中缓冲区中数据占有量保持比较恒定。因此就需要精确的码率控制方法。但是在地码率通信时,很多现有的码率控制策略,如MPEG2 TM5、H263 TMN8、MPEG4 VM8均无法适用。
H.264编码标准采用了Li Zheng Guo提出的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缓冲区占有容量。在本发明中目标缓冲区容量设置为缓冲区容量大小的35%,为了满足低时延通信的要求,缓冲区存储编码数据的所导致的时间延迟不超过0.1秒,并且当缓冲区中容量的容量超过缓冲区大小的80%时进行跳帧,以降低缓冲区的容量。
2)为即将编码帧分配目标比特
第i帧分配的目标比特由下面几个因素决定的:目标缓冲区容量、帧率、可用带宽、实际缓冲区占用量,其计算公式如下所示:
其中γ是常数,没有B帧它的情况下,其典型值是在为0.75,其它情况为0.25,本发明在没有B帧情况下进行实施的;α是常数,值为0.35。
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)))
在编码第n帧前,需要预测该帧与已编码的各帧之间的相关性,为了降低计算量,算法让第n帧与第i帧之间的相关性大小等于第n-1帧与第i-1帧之间的相关性。
当视频序列中第n帧与第i之间相关性低于η时,η为一固定常数,则第n帧量化参数(QP)的计算不使用第i帧的编码数据,此时让p(n,i)等于0,并且,不再使用比该帧时间上更远帧的数据进行计算,计算第n帧的QP时,最多可用M帧已编码帧的数据,其M满足:
p(n,n-M)>η且p(n,n-M-1)≤η
限制所有用于计算的帧的总数值M的取值范围在1到FMax之间,FMax为一固定常数,取相关性最大的FMax帧数据。
4)对已编码帧间相关性值进行量化
量化方法如下:
ap(n,i)=κ·Δ满足
其中dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,Δ为量化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取0到2D的整数,这样任何数据与dp(n,i)相乘,都可以通过简单的数据移位和加减法运算便可得到结果。
5)预测即将编码帧编码后的MAD值
在计算第n帧的QP前,需要预测该帧编码后的MAD,在本发明中其MAD预测公式设计如下:
其中
MADFp(n)为预测的第n帧平均绝对误差,MADF(i)为实际第i帧的平均绝对误差,dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,M为用于计算的帧的总数值。
6)计算即将编码帧的量化参数
在帧层,第n帧的量化步长QS计算公式如下:
QSF(n)=B1+B2
其中
其中QSF(i)第i帧的量化步长,α1为固定常数,dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,将求得的QSF(n)转化为QPF(n)便可得到第n帧的量化参数,M为用于计算的帧的总数值,TF(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)宏块间相关性计算
(81):计算编码宏块与其周围宏块的相关性系数
一个宏块与其周围相邻的宏块有在同一帧中有水平相邻的宏块,垂直相邻的宏块,与上一帧之间有同位置相邻的宏块,第m帧u行v列宏块与它周围宏块的相关系数计算公式分别定义如下:
其中RMM(m,u,v)=RM(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列宏块之间的相关系数,为同位置相关系数。RM(m,u,v)表示第m帧的u行、v列宏块的实际编码比特,MADM(m,u,v)表示第m帧的u行、v列宏块的实际编码平均绝对误差。
(82):预测即将编码宏块与他与其周围宏块之间的相关性系数
编码第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))
(83):预测即将编码宏块与已编码宏块之间的相关性
编码第n帧的r行l列的宏块前,需要预测该宏块与已编码的各宏块之间的相关性,第n帧r行l列与第m帧的u行v列的宏块之间的相关性计算公式为:
其中μL,μR和μC为固定系数,用于控制在水平,垂直的数目以及控制不同帧之间相关宏块的数目。当视频序列中第n帧r行l列宏块与第m帧u行v列宏块相关性低于一固定常数η时,则第n帧r行l列宏块量化参数(QP)的计算不使用第m帧u行v列宏块的编码数据,此时让q(n,r,l,m,u,v)等于0。
当视频序列中第n帧r行l列宏块与第m帧u行v列宏块相关性低于η时,则第n帧r行l列宏块量化参数(QP)的计算不使用第m帧u行v列宏块的编码数据,此时让qM(n,r,l,m,u,v)等于0,并且,限制所有用于计算的相关宏块总数MM不大于MMax,若总数大于MMax时,取相关性最大的MMax个宏块。
对宏块层相关性值的量化,量化方法如下:
dqM(n,r,l,m,u,v)=κ·Δ当
其中dqM(n,r,l,m,u,v)为量化后得到的即将编码第n帧r行l列宏块与第m帧u行v列宏块相关性的相关性大小,Δ为量化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取0到2D的整数。
9)对宏块数据间的相关性值进行量化
量化方法与帧层相关性值量化方法相同。
10)预测即将编码宏块在编码后MAD值
在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值,在本发明中MAD的预测公式为:
其中
其中dqM(n,r,l,m,u,v)为第n帧r行l列宏块与第m帧的u行v列宏块计算得到的相关性qM(n,r,l,m,u,v)经量化后的取值,N为在时间上,已编码同位置宏块离当前宏块最远的距离,N值为一固定整数,若时间上距离比N更远的宏块则认为与当前宏块不相关,L为视频图像的水平宏块数目,H为视频图像垂直方向的宏块数目,MADM(m,u,v)表示第m帧的u行、v列宏块的实际编码平均绝对误差。
11)计算即将编码宏块的量化参数
在宏块层,第n帧的量化参数(QS)计算公式如下:
QSM(n,r,l)=W1+W2
其中
其中α2为固定常数,计算得到第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)若编码完当前帧,转(2),否则转(7)编码下一宏块
14)若编码完当前GOP,判断是否视频序列已经变完,若编码完成,步骤结束,否则转(1)
附图说明
图1是本发明实施对一组视频序列进行码率控制的实例,其中白色块表示视频中的一个宏块,同时进行宏块层码率控制,灰色块表示视频中的一个宏块,其量化参数采用帧层码率控制计算得到的QP;
图2是视频编码系统框图;
图3是本发明方法实现过程的主要步骤流程图。
具体实施方式
以下结合附图进一步描述本发明实施的方法
根据码率控制的对象的不同,其可分为对视频序列(GOP)的码率控制,对视频帧的码率控制以及对宏块的码率控制,图1所示的是对一个GOP长度为N的QCIF大小的视频序列进行码率控制的实例,它结合了GOP层码率控制,帧层码率控制和宏块层码率控制。编码一个GOP前需要对该GOP进行码率控制,目的是为了让编码完该GOP产生的编码比特与期望的目标比特相同以使得缓冲区容量保持一个相对平稳,其所期望目标比特由信道输出码率和缓冲区容量决定。帧层码率控制是对视频的每一帧进行控制,它根据缓冲区容量和信道输出码率预先为每一帧分配一目标比特,目的是让编码完该帧后的实际编码比特接近目标比特以使得缓冲区容量保持平稳,在本实例中,帧层码率控制不对第0帧,I帧,和第一帧P帧进行码率控制,其编码使用的量化参数预先设定好,并且,由于编码I帧的实际编码比特大,容易导致缓冲区上溢,因此在本实例中,初始化的第一帧I帧QP比第一帧P帧大6。宏块层码率控制对帧中每一个宏块进行码率控制,目的是为了实现编码完该帧后总的编码比特尽可能地接近为该帧分配的目标比特,在本实例中,宏块层码率控制不对视频帧的第一个宏块进行码率控制,编码第一个宏块时,其量化参数为在该帧的帧层码率控制方法求得的量化参数。
图2所示是传统视频编码框图结构,输入编码器的视频信号是没有经过压缩的原始信号,根据码率控制的对象不同,可以是GOP信号,帧信号以及宏块信号。在图2中所示的编码器可以是视频编码芯片或者视频编码程序,它根据码率控制模块提供的量化等级对视频帧信号进行压缩编码,并将编码后的编码信号输入到缓冲区以待输出到信道,同时将编码比特的大小以及编码图像的平均绝对误差值(MAD)送到码率控制模块。在图2中所示的码率控制模块根据编码其送来的编码比特信息和MAD值,并结合缓冲区容量为编码器提供压缩编码所需要的量化等级。
1)为该即将编码的视频序列(GOP)分配目标编码比特编码一个GOP时对该GOP分配目标比特,计算公式如下
TG是为编码该GOP分配的目标比特,u信道输出码率,F为编码帧率,NGop为该GOP帧的数目,Bs为缓冲区最大容量,Bc为编码完上一GOP缓冲区占有容量。在本发明中目标缓冲区容量设置为缓冲区容量大小的35%,为了满足低时延通信的要求,缓冲区存储编码数据的所导致的时间延迟不超过0.1秒,并且当缓冲区中容量的容量超过缓冲区大小的80%时进行跳帧,以降低缓冲区的容量。
2)为即将编码帧分配目标比特
第i帧分配的目标比特由下面几个因素决定的:目标缓冲区容量、帧率、可用带宽、实际缓冲区占用量,其计算公式如下所示:
其中γ是常数,没有B帧它的情况下,其典型值是在为0.75,其它情况为0.25,本发明在没有B帧情况下进行实施的;α是常数,值为0.35。
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帧之间的相关性计算方法为:
其中β为一固定常数,为了简化运算,实例中β=1。在计算过程中采用第推公式可大大降低乘法次数,公式如下:
p(n-1,i)=p(n-1,i-1)·(1-β(1-λF(i)))
在编码第n帧前,需要预测该帧与已编码的各帧之间的相关性,为了降低计算量,算法让第n帧与第i帧之间的相关性大小等于第n-1帧与第i-1帧之间的相关性。
当视频序列中第n帧与第i之间相关性低于η时,η为一固定常数,在本实例中η取值0.5,则第n帧量化参数(QP)的计算不使用第i帧的编码数据,此时让p(n,i)等于0,并且,不再使用比该帧时间上更远帧的数据进行计算,计算第n帧的QP时,最多可用M帧已编码帧的数据,其M满足:
p(n,n-M)>η且p(n,n-M-1)≤η
在本实例中,M的最大值限制为4,即当相关性大于η帧数大于4时,取其前面相关性最大4帧的编码数据用于模型计算。
4)对已编码帧间相关性值进行量化
量化方法如下:
dp(n,i)=κ·Δ满足
其中dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,Δ为量化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取0到2D的整数,这样任何数据与dp(n,i)相乘,都可以通过简单的数据移位和加减法运算便可得到结果。由于数据在计算机中的存储方式都是以二机制,因此对二进制的数据向左移一位相等于数据值乘上2,右移一位相当于其值除以2。基于这种思想。以D值为4为实例进一步说明量化后任何数据与dp(n,i)相乘进行移位的方法。当D为4时,Δ为,此时通过量化后dp(n,i)的取值就为Δ的κ倍,例如当κ=3时,任意一个数A与κ相乘,用移位和加法的方法,其结果可表示为3·A=A<<1+A,其中A<<1表示A的二进制值向左移了1位。当κ为其他数值时,也可用类似的方法进行计算,这样可以将公式中大量的乘除法操作用简单的移位操作和加减法运算进行,从而大大降低了算法复杂度。
5)预测即将编码帧编码后的MAD值
在计算第n帧的QP前,需要预测该帧编码后的MAD,在本发明中其MAD预测公式设计如下:
其中
6)计算即将编码帧的量化参数
在帧层,第n帧的量化步长(QS)计算公式如下:
QSF(n)=B1+B2
其中
其中α1为固定常数,为了降低算法复杂度,实例中α1取值为0.5,这样可以通过移位操作降低算法复杂度。将求得的QSF(n)转化为QPF(n)便可得到第n帧的量化参数。
对于第一帧(I帧,帧内编码帧),其量化参数由初始化设定,考虑到I帧编码往往产生大量编码比特,这样很容易出现缓冲区的上溢,因此,为了降低其编码比特,在本发明中该帧的量化参数为初始化量化参数加上6。
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)宏块间相关性计算
(81):计算编码宏块与其周围宏块的相关性系数
一个宏块与其周围相邻的宏块有在同一帧中有水平相邻的宏块,垂直相邻的宏块,与上一帧之间有同位置相邻的宏块,第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列宏块之间的相关系数,为同位置相关系数。
(82):预测即将编码宏块与他与其周围宏块之间的相关性系数
编码第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))
(83):预测即将编码宏块与已编码宏块之间的相关性
编码第n帧的r行l列的宏块前,需要预测该宏块与已编码的各宏块之间的相关性,第n帧r行l列与第m帧的u行v列的宏块之间的相关性计算公式为:
其中μL,μR和μC为固定系数,用于控制在水平,垂直的数目以及控制不同帧之间相关宏块的数目。
当视频序列中第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个宏块。
对宏块层相关性值的量化,量化方法如下:
dqM(n,r,l,m,u,v)=κ·Δ当
其中dqM(n,r,l,m,u,v)为量化后得到的即将编码第n帧r行l列宏块与第m帧u行v列宏块相关性的相关性大小,Δ为量化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取0到2D的整数。
9)对宏块数据间的相关性值进行量化
量化方法与帧层相关性值量化方法相同。
10)预测即将编码宏块在编码后MAD值
在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值,在本发明中MAD的预测公式为:
其中
其中dqM(n,r,l,m,u,v)为第n帧r行l列宏块与第m帧的u行v列宏块计算得到的相关性qM(n,r,l,m,u,v)经量化后的取值,N为在时间上,已编码同位置宏块离当前宏块最远的距离,N值为一固定整数,若时间上距离比N更远的宏块则认为与当前宏块不相关,L为视频图像的水平宏块数目,H为视频图像垂直方向的宏块数目。
11)计算即将编码宏块的量化参数
在宏块层,第n帧的量化参数(QS)计算公式如下:
QSM(n,r,l)=W1+W2
其中
其中α2为固定常数,为了降低算法复杂度,实例中α2取值为0.25,这样可以通过移位操作降低算法复杂度。
计算得到第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为一固定常数。第一帧I帧内宏块的量化等级采用初始化的量化等级。
12)编码一个宏块
在编码第n帧的r行l列宏块时,编码器根据计算得到的QPM(n,r,l)编码该宏块。编码完该宏块后,编码器将输出编码该宏块的编码信息以及编码比特大小,其编码信息送入缓冲区,以待输出信道,编码比特的大小送到码率控制模块中,用于计算模型参数以及后续宏块和帧的量化参数的预测。
13)若编码完当前帧,转(2),否则转(7)编码下一宏块
14)若编码完当前GOP,判断是否视频序列已经变完,若编码完成,步骤结束,否则转(1)
为了说明本发明的算法性能,作了以下对比试验,将发明与JM8.6的码率标准作对比,仿真设置为:Hadamard变换,CABAC和RDO设置为打开模式,编码150帧,其中第一帧为I帧,其余全为P帧,帧率统一设置为20fps。由于本发明中的目标缓冲区容量设置为缓冲区大小的35%,这样每编码完一个GOP时,缓冲区的实际占有量将会在50%左右,为了体现实际的编码过程,在本发明仿真试验中,其初始化的缓冲区容量大小为缓冲区容量的35%。
从表1数据可以看出,本文算法与JM.86算法相比,在算法复杂度极大降低的情况下,本发明的算法精度仍然很高,PSNR提高了平均0.5dB左右,而实际编码比特比JM.86少,且更接近于目标比特,并能随目标码率的变化而变化,同时本发明很好地防止由于缓冲区上溢导致的跳帧现象,本发明提出的码率控制方法能够把让缓冲区的满度维持在一个适度的水平,保证了缓冲区既不上溢也不下溢,也保证了缓冲区中的数据占有量的相对稳定。
表1仿真结果数据
Claims (8)
1.一种自适应码率控制的方法,其特征在于:采用了码率控制模型,并计算了数据间的相关性,此外采用了一种对相关性值量化的方法;该码率控制方法主要包括以下步骤:
(1)为即将编码帧分配目标比特;
(2)计算已编码帧间的相关性;
(3)对已编码帧间的相关性值进行量化,量化方法如下:
dp(n,i)=κ·Δ当
其中dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,p(n,i)为第n帧与第i帧之间的相关性大小,Δ为量化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取0到2D的整数,这样任何数据与dp(n,i)相乘,都可以通过的数据移位和加减法运算便可得到结果;
(4)预测即将编码帧编码后的平均绝对误差MAD值;
(5)计算即将编码帧量化参数;
(6)为即将编码的宏块分配目标编码比特;
(7)预测即将编码宏块与已编码宏块间的相关性;
(8)对宏块间的相关性值进行量化,量化方法如下:
dqM(n,r,l,m,u,v)=κ·Δ当
其中dqM(n,r,l,m,u,v)为量化后得到的即将编码第n帧r行l列宏块与第m帧u行v列宏块相关性的相关性大小,qM(n,r,l,m,u,v)为第n帧r行l列与第m帧的u行v列的宏块之间的相关性大小,Δ为量化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取0到2D的整数;
(9)预测即将编码宏块的平均绝对误差MAD值;
(10)计算即将编码宏块的量化参数;
(11)编码一个宏块;
(12)若编码完当前帧转(1),否则转(6)编码下一宏块;
(13)若编码完当前视频序列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帧之间的相关性计算方法为:
其中β为一固定常数;
设第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帧数据。
3.根据权利要求1所述自适应码率控制的方法,其特征在于所述步骤(4)采用了下面的方法:
在计算第n帧的量化参数QP前,需要预测该帧编码后的平均绝对误差MAD,在本发明中平均绝对误差MAD预测公式设计如下:
其中
MADFp(n)为预测的第n帧平均绝对误差,MADF(i)为编码第i帧的平均绝对误差,dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,M为用于计算的帧的总数值。
4.根据权利要求1所述自适应码率控制的方法,其特征在于所述步骤(5)采用了下面的方法:
在帧层,第n帧的量化步长QS计算公式如下:
QSF(n)=B1+B2
其中
其中
RMF(i)=RF(i)/MADF(i)
其中QSF(i)第i帧的量化步长,α1为固定常数,dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,将求得的QSF(n)转化为QPF(n)便可得到第n帧的量化参数,M为用于计算的帧的总数值,TF(n)表示为第n帧分配的目标比特大小,编码第i帧的实际编码比特为RF(i),第i-1帧的平均绝对误差MAD为MADF(i-1),MADFp(n)为预测的第n帧平均绝对误差,MADF(i)为编码第i帧的平均绝对误差。
5.根据权利要求1所述自适应码率控制的方法,其特征在于所述步骤(6)采用了下面的方法:
步骤(61):宏块间相关性系数计算
一个宏块与其周围相邻的宏块有在同一帧中水平相邻的宏块,垂直相邻的宏块,与上一帧同位置相邻的宏块,第m帧u行v列宏块与它周围宏块的相关系数计算公式分别定义如下:
其中RMM(m,u,v)=RM(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列宏块之间的相关系数,为同位置相关系数,RM(m,u,v)表示第m帧的u行、v列宏块的实际编码比特,MADM(m,u,v)表示第m帧的u行、v列宏块的实际编码平均绝对误差;
步骤(62):预测即将编码宏块与他与其周围宏块之间的相关性系数
编码第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))
步骤(63):预测即将编码宏块与已编码宏块之间的相关性
第n帧r行l列与第m帧的u行v列的宏块之间的相关性计算公式为:
其中μL,μR和μC为固定系数,用于控制在水平,垂直的数目以及控制不同帧之间相关宏块的数目,当视频序列中第n帧r行l列宏块与第m帧u行v列宏块相关性低于一固定常数η时,则第n帧r行l列宏块量化参数QP的计算不使用第m帧u行v列宏块的编码数据,此时让qM(n,r,l,m,u,v)等于0。
6.根据权利要求1所述自适应码率控制的方法,其特征在于所述步骤(9)采用了下面的步骤:
在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值,在本发明中MAD的预测公式为:
其中
其中dqM(n,r,l,m,u,v)为第n帧r行l列宏块与第m帧的u行v列宏块计算得到的相关性qM(n,r,l,m,u,v)经量化后的取值,N为在时间上,已编码同位置宏块离当前宏块最远的距离,N值为一固定整数,若时间上距离比N更远的宏块则认为与当前宏块不相关,L为视频图像的水平宏块数目,H为视频图像垂直方向的宏块数目,MADM(m,u,v)表示第m帧的u行、v列宏块的实际编码平均绝对误差。
7.根据权利要求1所述自适应码率控制的方法,其特征在于所述步骤(8)采用了下面的方法:
在宏块层,第n帧r行l列的量化步长QS计算公式如下:
QSM(n,r,l)=W1+W2
其中
RMM(m,u,v)=RM(m,u,v)/MADM(m,u,v)
其中α2为一固定常数,QSM(m,u,v)表示第m帧的u行、v列宏块的量化步长,dqM(n,r,l,m,u,v)为第n帧r行l列宏块与第m帧的u行v列宏块计算得到的相关性qM(n,r,l,m,u,v)经量化后的取值,MADM(m,u,v)表示第m帧的u行、v列宏块的实际编码平均绝对误差,MADMp(n,r,l)表示预测的第n帧r行l列宏块编码平均绝对误差,TM(n,r,l)表示为第n帧r行l列宏块分配的目标编码比特,RM(m,u,v)表示第m帧的u行、v列宏块的实际编码比特,MADM(m,u,v)表示第m帧的u行、v列宏块的实际编码平均绝对误差,计算得到第n帧r行l列宏块量化步长QSM(n,r,l)转化为量化参数QPM(n,r,l),根据第n帧的量化参数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.根据权利要求1所述自适应码率控制的方法,其特征在于,所述D取值范围为1到20之间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810044612 CN101287112B (zh) | 2008-06-03 | 2008-06-03 | 一种自适应码率控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810044612 CN101287112B (zh) | 2008-06-03 | 2008-06-03 | 一种自适应码率控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101287112A CN101287112A (zh) | 2008-10-15 |
CN101287112B true CN101287112B (zh) | 2010-12-22 |
Family
ID=40059046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810044612 Expired - Fee Related CN101287112B (zh) | 2008-06-03 | 2008-06-03 | 一种自适应码率控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101287112B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010056315A1 (en) * | 2008-11-13 | 2010-05-20 | Thomson Licensing | Multiple thread video encoding using gop merging and bit allocation |
CN101877784B (zh) * | 2009-04-30 | 2013-04-03 | 上海华平软件技术有限公司 | 一种适用于实时应用的h.264码率控制方法 |
CN101930744B (zh) * | 2010-09-07 | 2012-06-06 | 北京航空航天大学 | 一种aac音频编码的握手协议方法 |
CN102457728B (zh) * | 2010-10-27 | 2013-12-25 | 杭州华三通信技术有限公司 | 一种视频图像编码方法和装置 |
CN102868883B (zh) * | 2012-06-26 | 2013-11-13 | 中国科学技术大学 | 一种视频编码的码率控制方法 |
CN104253995B (zh) * | 2013-06-26 | 2017-10-20 | 中国电信股份有限公司 | 自适应量化参数控制方法和装置 |
CN108012163B (zh) * | 2017-12-19 | 2020-08-18 | 希诺麦田技术(深圳)有限公司 | 视频编码的码率控制方法及装置 |
CN114727108A (zh) * | 2021-01-04 | 2022-07-08 | 北京金山云网络技术有限公司 | 量化因子调整方法、装置、电子设备及存储介质 |
CN113923454B (zh) * | 2021-09-06 | 2024-01-12 | 北京盛大博通文化发展有限公司 | 一种视频编码码率控制lcu层比特分配方法及存储介质 |
CN113505801B (zh) * | 2021-09-13 | 2021-11-30 | 拓小拓科技(天津)有限公司 | 一种用于超维计算的图像编码方法 |
-
2008
- 2008-06-03 CN CN 200810044612 patent/CN101287112B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101287112A (zh) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101287112B (zh) | 一种自适应码率控制方法 | |
CN101262603B (zh) | 一种自适应码率控制方法 | |
CN100463523C (zh) | 帧层速率控制的视讯编码方法和系统 | |
CN101188752A (zh) | 一种基于相关性的自适应码率控制方法 | |
CN101552917B (zh) | 一种视频压缩码率控制方法 | |
KR100319994B1 (ko) | 동화상부호화장치 | |
CN100481943C (zh) | 一种视频编码码率控制方法 | |
US20070071094A1 (en) | Video encoding method, apparatus, and program | |
CN100358364C (zh) | 基于h.264的精细颗粒可伸缩编码的码率控制方法 | |
CN105306939A (zh) | 用于对视频进行解码的方法和装置 | |
CN102186084A (zh) | 一种可伸缩视频编码的空间增强层码率控制实现方法 | |
CN103281530A (zh) | 基于率失真优化的hevc码率控制方法 | |
CN101877784B (zh) | 一种适用于实时应用的h.264码率控制方法 | |
KR100796857B1 (ko) | 동화상 부호화 방법 및 장치 | |
CN104038769A (zh) | 帧内编码的码率控制方法 | |
CN104954792A (zh) | 一种对p帧序列进行主观视频质量优化编码的方法及装置 | |
CN101888561B (zh) | 一种率失真优化动态调整的多视点视频传输差错控制方法 | |
US8588294B2 (en) | Statistical multiplexing using a plurality of two-pass encoders | |
CN100505874C (zh) | 一种视频编码速率控制的方法 | |
CN113286145A (zh) | 视频编码方法、装置和电子设备 | |
CN102271248B (zh) | 一种基于权重窗口模型的h.264/avc宏块级码率控制算法 | |
KR100713400B1 (ko) | 평균 히스토그램 오차 방식을 이용한 h.263/mpeg비디오 인코더 및 그 제어 방법 | |
CN101511026A (zh) | 一种基于场景的avs二次编码码率控制方法 | |
KR20070077955A (ko) | 인트라 예측 모드 결정 방법 및 장치 | |
Wu et al. | Rate control in video coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101222 Termination date: 20130603 |