快速高效应码率控制的优化方法

著录项
  • CN200810044612.5
  • 20080603
  • CN101287112
  • 20081015
  • 方春
  • 方春
  • H04N7/24(2006.01)I
  • H04N7/24(2006.01)I H04N7/26(2006.01)I H04N7/50(2006.01)I

  • 四川省乐山市市中区朱泗塘47号温州大厦13楼B2
  • 中国,CN,四川(51)
摘要
本发明涉及一种基于H.264/AVC的快速高效应码率控制的优化方法。本发明基于发明“一种新的快速高效自适应码率控制方法”的基础上,过对数据间的相关性值进行量化,对其码率控制模型进行优化和简化,在保证算法性能的基础上进一步地降低了算法复杂度。测试表明,本发明在使用很少数据量进行计算时,仍具有很高精度,本发明与G012标准相比,极大地降低了算法复杂度,并提高了码率控制精度,实际编码比特更接近于目标编码比特,平缓了缓冲区,使得仿真序列的跳帧数也大大降低,并且编码视频的PSNR值平均提高了0.5dB。
权利要求

1.有一种新的快速高效自适应码率控制的优化方法,其特征在于:本发明基 于发明“一种新的快速高效自适应码率控制方法”的基础上,过对数据间的相关性值进行 量化,使得码率控制中的大量乘法运算通过简单的移位操作便可实现高性能 的码率控制方案;采用了码率控制模型及其中的参数进行了简化,该方法主 要包括以下步骤:

(1)为即将编码帧分配目标比特;

(2)计算已编码帧间的相关性;

(3)对已编码帧间的相关性值进行量化;

(4)预测即将编码帧编码后的MAD值;

(5)计算即将编码帧量化参数;

(6)为即将编码的宏块分配目标编码比特;

(7)预测即将编码宏块与已编码宏块间的相关性;

(8)对宏块间的相关性值进行量化;

(9)预测即将编码宏块的MAD值;

(10)计算即将编码宏块的量化参数;

(11)编码一个宏块;

(12)若编码完当前帧转(11),否则转(6)编码下一宏块;

(13)若编码完当前GOP,判断是否视频序列已经变完,若编码完成,步骤 结束,如果没有编完则转(1)。

2.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所 述步骤(2)采用了下面的步骤:

步骤(21):计算即将编码帧与已编码帧之间的相关性

在当前图像序列组中,编码第i帧的平均绝对误差(MAD)为MAD F(i),编 码第i帧的实际编码比特为R F(i),第i-1帧的MAD为MAD F(i-1),第i-1帧的实 际编码比特为R F(i-1)则定义第i帧与第i-1帧之间的相关性系数计算公式为:

λ F ( i ) = MIN ( RM F ( i ) RM F ( i - 1 ) , RM F ( i - 1 ) RM F ( i ) )

其中RM F(i)=R F(i)/MAD F(i)

第n-1帧与第i帧之间的相关性计算方法为:

p ( n - 1 , i ) = Π j = i n - 1 λ F β ( j ) Π j = 1 n - 1 ( 1 - β ( 1 - λ F ( j ) ) )

其中β为一固定常数。

设第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所述基于相关性的自适应码率控制方法,其特征在于所 述步骤(3)和步骤(8)采用了下面的方法:

以对帧层相关性值的量化为例,说明本方法的特征,量化方法如下:

dp(n,i)=κ·Δ满足 κ · Δ - Δ 2 < p ( n , i ) κ · Δ + Δ 2

其中dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,Δ为量 化步长,其值在编码过程中固定为 D为一固定常数,量化方法中的κ为取 0到2 D的整数,这样任何数据与dp(n,i)相乘,都可以通过简单的数据移位和加 减法运算便可得到结果。

4.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所 述步骤(4)采用了下面的方法:

在计算第n帧的QP前,需要预测该帧编码后的MAD,在本发明中其MAD 预测公式设计如下:

MAD Fp ( n ) = 1 P F 1 ( Σ i = n - M n - 1 MAD F ( i ) · dp ( n , i ) )

其中 P F 1 = Σ i = n - M n - 1 dp ( n , i )

9.根据权利要求4所述基于相关性的自适应码率控制方法,其特征在于, 所述D取值范围为1到20之间。

5.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所 述步骤(5)采用了下面的方法:

在帧层,第n帧的量化步长(QS)计算公式如下:

QS F(n)=B 1+B 2

其中

B 1 = ( 1 - α 1 ) P F 1 · ( Σ i = n - M n - 1 QS F ( i ) · p ( n , i ) )

B 2 = α 1 P F 1 · MAD Fp ( n ) T F ( n ) ( Σ i = n - M n - 1 RM F ( i ) · QS F ( i ) · p ( n , i ) )

其中α 1为固定常数。将求得的QS F(n)转化为QP F(n)便可得到第n帧的量化 参数。

6.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所 述步骤(6)采用了下面的方法:

步骤(51):宏块间相关性系数计算

一个宏块与其周围相邻的宏块有在同一帧中水平相邻的宏块,垂直相邻的 宏块,与上一帧同位置相邻的宏块,第m帧u行v列宏块与它周围宏块的相关 系数计算公式分别定义如下:

λ R ( m , u , v ) = MIN ( RM M ( m , u , v - 1 ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m , u , v - 1 ) )

λ L ( m , u , v ) = MIN ( RM M ( m , u - 1 , v ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m , u - 1 , v ) )

λ C ( m , u , v ) = MIN ( RM M ( m - 1 , u , v ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m - 1 , u , v ) )

其中RM M(m,u,v)=RM M(m,u,v)/MAD M(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):预测即将编码宏块与已编码宏块之间的相关性

第n帧h行l列与第m帧的u行v列的宏块之间的相关性计算公式为:

q M ( n , r , l , m , u , v ) = ( Π z = m n λ C μ C ( z , r , l ) ) ( Π x = v l λ L μ L ( m , r , x ) ) ( Π y = u r λ R μ R ( m , y , v ) )

( Π z = m n ( 1 - μ C ( 1 - λ C ( z , r , l ) ) ) ( Π x = v l ( 1 - μ L ( 1 - λ L ( m , r , x ) ) ) ( Π y = u r ( 1 - μ R ( 1 - λ R ( m , y , 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。

7.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所 述步骤(9)采用了下面的步骤:

在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值, 在本发明中MAD的预测公式为:

MAD Mp ( n , r , l ) = 1 Q M 1 ( Σ m = n - N n Σ u = 0 H Σ v = 0 L MAD M ( m , u , v ) · dq M ( n , r , l , m , u , v ) )

其中 Q M = Σ m = n - N n Σ u = 0 H Σ v = 0 L d q M ( n , r , l , m , u , v )

其中dq M(n,r,l,m,u,v)为第n帧h行l列宏块与第m帧的u行v列宏块计算 得到的相关性q M(n,r,l,m,u,v)经量化后的取值,N为在时间上,已编码同位置 宏块离当前宏块最远的距离,N值为一固定整数,若时间上距离比N更远的宏 块则认为与当前宏块不相关,L为视频图像的水平宏块数目,H为视频图像垂直 方向的宏块数目。

8.根据权利要求1所述基于相关性的自适应码率控制方法,其特征在于所 述步骤(8)采用了下面的方法:

在宏块层,第n帧的量化参数(QS)计算公式如下:

QS M(n,r,l)=W 1+W 2

其中

W 1 = ( 1 - α 2 ) Q M 1 · Σ m = n - N n Σ u = 0 H Σ v = 0 L QS M ( m , u , v ) · d q M ( n , r , l , m , u , v )

W 2 = α 2 · MAD Mp ( n , r , l ) Q M 1 · T M ( n , r , l ) ( Σ m = n - N n Σ u = 0 H Σ v = 0 L ( RM M ( m , u , v ) ) · QS M ( m , u , v ) · dq M ( n , r , l , m , u , v ) )

其中α 2为固定常数。计算得到第n帧r行l列宏块量化步长QS M(n,r,l)转化 为量化参数QP M(n,r,l),根据QP F(n)对QP M(n,r,l)进行限制,限制公式如下:

QP M(n,r,l)=MAX(QP F(n)-DuantQP,QP M(n,r,l))

QP M(n,r,l)=MIN(QP F(n)+DuantQP,QP M(n,r,l))

其中DuantQP为一固定常数。

说明书
技术领域

技术领域

本发明涉及视频压缩中的码率控制领域,特别涉及一种基于相关性的自适 应新码率控制方法和该方法的算法优化。

技术背景

H.264是由联合视频组(Joint Video Team,JVT)近年来致力开发研究的最新视 频压缩国际标准。该标准为广播、存储设备、对话服务以及无线网络等方面的 视频技术提供了技术支持,该和以往的标准相比,例如:H.263,H.263+,H.263++ 和MPEG-4,在视频编码效率取得了很大的提高,相同视频质量下,H.264不 仅比H.263和MPEG-4节约了50%的码率,而且对网络传输具有更好的支持功能。 随着通信和视频技术的发展,视频信号的传输受到了越来越多的资源限制,对 视频压缩和通信而言,主要的限制在于有限的通信带宽和存储空间,而这些决 定了视频信号的输出码率。因此码率控制在视频通信中起着至关重要的作用。

码率控制的最终目的是为了在有限的缓冲区容量和信道带宽下传输高质量 的视频序列。对一些实时的视频通信服务而言,如视频会议,视频手机,这些 系统资源常常非常有限,在这种情况下,码率控制的要求很高,一方面需要满 足低的传输时延要求,另一方面又要保证缓冲区中数据的容量不能上溢或下溢, 保持在通信过程中缓冲区中数据占有量保持比较恒定。因此就需要精确的码率 控制方法。但是在地码率通信时,很多现有地码率控制策略,如MPEG2TM5、 H.263TMN8、MPEG4VM8均无法适用。

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分配目标比特,计算公式如下

T G = u F · N Gop

B s = 0.1 × u F

TG是为编码该GOP分配的目标比特,u信道输出码率,F为编码帧率,NGop 为该GOP帧的数目,Bs为缓冲区最大容量,Bc为编码完上一GOP缓冲区占有容 量。在本发明中目标缓冲区容量设置为缓冲区容量大小的35%,为了满足低时延 通信的要求,缓冲区存储编码数据的所导致的时间延迟不超过0.1秒,并且当缓 冲区中容量的容量超过缓冲区大小的80%时进行跳帧,以降低缓冲区的容量。

2)为即将编码帧分配目标比特

第i帧分配的目标比特由下面几个因素决定的:目标缓冲区容量、帧率、可 用带宽、实际缓冲区占用量,其计算公式如下所示:

T ( i ) = u F + γ · ( α · B s - B c ( i , j ) )

其中γ是常数,没有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帧之间的相关性系数计算公式为:

λ F ( i ) = MIN ( RM F ( i ) RM F ( i - 1 ) , RM F ( i - 1 ) RM F ( i ) )

其中RMF(i)=RF(i)/MADF(i)

第n-1帧与第i帧之间的相关性计算方法为:

p ( n - 1 , i ) = Π j = i n - 1 λ F β ( j ) Π j = 1 n - 1 ( 1 - β ( 1 - λ F ( j ) ) )

其中β为一固定常数。在计算过程中采用第推公式可大大降低乘法次 数,公式如下:

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)≤η

4)对已编码帧间相关性值进行量化

量化方法如下:

dp(n,i)=κ·Δ满足 κ · Δ - Δ 2 < p ( n , i ) κ · Δ + Δ 2

其中dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,Δ为量
化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取
0到2D的整数,这样任何数据与dp(n,i)相乘,都可以通过简单的数据移位和加
减法运算便可得到结果。

5)预测即将编码帧编码后的MAD值

在计算第n帧的QP前,需要预测该帧编码后的MAD,在本发明中其MAD 预测公式设计如下:

MAD Fp ( n ) = 1 P F 1 ( Σ i = n - M n - 1 MAD F ( i ) · dp ( n , i ) )

其中 P F 1 = Σ i = n - M n - 1 dp ( n , i )

6)计算即将编码帧的量化参数

在帧层,第n帧的量化步长(QS)计算公式如下:

QSF(n)=B1+B2

其中

B 1 = ( 1 - α 1 ) P F 1 · ( Σ i = n - M n - 1 QS F ( i ) · p ( n , i ) )

B 2 = α 1 P F 1 · MAD Fp ( n ) T F ( n ) ( Σ i = n - M n - 1 RM F ( i ) · QS F ( i ) · p ( n , i ) )

其中α1为固定常数,将求得的QSF(n)转化为QPF(n)便可得到第n帧的量化 参数。

7)为即将编码宏块分配目标编码比特

在编码第n帧u行v列宏块前为该宏块分配目标编码比特,其公式为:

Rremain ( n , u , v ) = R F ( n ) - Σ i = 0 u - 1 Σ j = 0 L R M ( n , i , j ) - Σ j = 0 j - 1 R M ( n , u , j )

Nr=H*(u-1)+v-1

T M ( n , u , v ) = Rremain ( n , u , v ) N r

其中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列宏块与它周围宏 块的相关系数计算公式分别定义如下:

λ R ( m , u , v ) = MIN ( RM M ( m , u , v - 1 ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m , u , v - 1 ) )

λ L ( m , u , v ) = MIN ( RM M ( m , u - 1 , v ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m , u - 1 , v ) )

λ C ( m , u , v ) = MIN ( RM M ( m - 1 , u , v ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m - 1 , 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帧h行l列与第m帧的u行v列的宏块之间的相关性计算公式为:

q M ( n , r , l , m , u , v ) = ( Π z = m n λ C μ C ( z , r , l ) ) ( Π x = v l λ L μ L ( m , r , x ) ) ( Π y = u r λ R μ R ( m , y , v ) )

( Π z = m n ( 1 - μ C ( 1 - λ C ( z , r , l ) ) ) ( Π x = v l ( 1 - μ L ( 1 - λ L ( m , r , x ) ) ) ( Π y = u r ( 1 - μ R ( 1 - λ R ( m , y , 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个宏块。

9)对宏块数据间的相关性值进行量化

量化方法与帧层相关性值量化方法相同。

10)预测即将编码宏块在编码后MAD值

在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值, 在本发明中MAD的预测公式为:

MAD Mp ( n , r , l ) = 1 Q M 1 ( Σ m = n - N n Σ u = 0 H Σ v = 0 L MAD M ( m , u , v ) · dq M ( n , r , l , m , u , v ) )

其中 Q M = Σ m = n - N n Σ u = 0 H Σ v = 0 L dq M ( n , r , l , m , u , v )

其中dqM(n,r,l,m,u,v)为第n帧h行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

其中

W 1 = ( 1 - α 2 ) Q M 1 · Σ m = n - N n Σ u = 0 H Σ v = 0 L QS M ( m , u , v ) · d q M ( n , r , l , m , u , v )

W 2 = α 2 · MAD Mp ( n , r , l ) Q M 1 · T M ( n , r , l ) ( Σ m = n - N n Σ u = 0 H Σ v = 0 L ( RM M ( m , u , v ) ) · QS M ( m , u , v ) · dq M ( n , r , l , m , u , v ) )

其中α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分配目标比特,计算公式如下

T G = u F · N Gop

B s = 0.1 × u F

TG是为编码该GOP分配的目标比特,u信道输出码率,F为编码帧率,NGop 为该GOP帧的数目,Bs为缓冲区最大容量,Bc为编码完上一GOP缓冲区占有容 量。在本发明中目标缓冲区容量设置为缓冲区容量大小的35%,为了满足低时延 通信的要求,缓冲区存储编码数据的所导致的时间延迟不超过0.1秒,并且当缓 冲区中容量的容量超过缓冲区大小的80%时进行跳帧,以降低缓冲区的容量。

2)为即将编码帧分配目标比特

第i帧分配的目标比特由下面几个因素决定的:目标缓冲区容量、帧率、可 用带宽、实际缓冲区占用量,其计算公式如下所示:

T ( i ) = u F + γ · ( α · B s - B c ( i , j ) )

其中γ是常数,没有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帧之间的相关性系数计算公式为:

λ F ( i ) = MIN ( RM F ( i ) RM F ( i - 1 ) , RM F ( i - 1 ) RM F ( i ) )

其中RMF(i)=RF(i)/MADF(i)

第n-1帧与第i帧之间的相关性计算方法为:

p ( n - 1 , i ) = Π j = i n - 1 λ F β ( j ) Π j = 1 n - 1 ( 1 - β ( 1 - λ F ( j ) ) )

其中β为一固定常数,为了简化运算,实例中β=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)=κ·Δ满足 κ · Δ - Δ 2 < p ( n , i ) κ · Δ + Δ 2

其中dp(n,i)为量化后得到的即将编码第n帧与第i帧的相关性大小,Δ为量
化步长,其值在编码过程中固定为D为一固定常数,量化方法中的κ为取
0到2D的整数,这样任何数据与dp(n,i)相乘,都可以通过简单的数据移位和加
减法运算便可得到结果。由于数据在计算机中的存储方式都是以二机制,因此
对二进制的数据向左移一位相等于数据值乘上2,右移一位相当于其值除以2。
基于这种思想。以D值为4为实例进一步说明量化后任何数据与dp(n,i)相乘进
行移位的方法。当D为4时,Δ为 <math> <mrow> <mfrac> <mn>1</mn> <msup> <mn>2</mn> <mn>4</mn> </msup> </mfrac> <mo>=</mo> <mfrac> <mn>1</mn> <mn>16</mn> </mfrac> <mo>,</mo> </mrow> </math> 此时通过量化后dp(n,i)的取值就为Δ
的κ倍,例如当κ=3时,任意一个数A与κ相乘,用移位和加法的方法,其结
果可表示为3·A=A<<1+A,其中A<<1表示A的二进制值向左移了1位。当
κ为其他数值时,也可用类似的方法进行计算,这样可以将公式中大量的乘除
法操作用简单的移位操作和加减法运算进行,从而大大降低了算法复杂度。

5)预测即将编码帧编码后的MAD值

在计算第n帧的QP前,需要预测该帧编码后的MAD,在本发明中其MAD 预测公式设计如下:

MAD Fp ( n ) = 1 P F 1 ( Σ i = n - M n - 1 MAD F ( i ) · dp ( n , i ) )

其中 P F 1 = Σ i = n - M n - 1 dp ( n , i )

6)计算即将编码帧的量化参数

在帧层,第n帧的量化步长(QS)计算公式如下:

QSF(n)=B1+B2

其中

B 1 = ( 1 - α 1 ) P F 1 · ( Σ i = n - M n - 1 QS F ( i ) · p ( n , i ) )

B 2 = α 1 P F 1 · MAD Fp ( n ) T F ( n ) ( Σ i = n - M n - 1 RM F ( i ) · QS F ( i ) · p ( n , i ) )

其中α1为固定常数,为了降低算法复杂度,实例中α1取值为0.5,这样可 以通过移位操作降低算法复杂度。将求得的QSF(n)转化为QPF(n)便可得到第n 帧的量化参数。

对于第一帧(I帧,帧内编码帧),其量化参数由初始化设定,考虑到I帧编 码往往产生大量编码比特,这样很容易出现缓冲区的上溢,因此,为了降低其 编码比特,在本发明中该帧的量化参数为初始化量化参数加上6。

7)为即将编码宏块分配目标编码比特

在编码第n帧u行v列宏块前为该宏块分配目标编码比特,其公式为:

Rremain ( n , u , v ) = R F ( n ) - Σ i = 0 u - 1 Σ j = 0 L R M ( n , i , j ) - Σ j = 0 j - 1 R M ( n , u , j )

Nr=H*(u-1)+v-1

T M ( n , u , v ) = Rremain ( n , u , v ) N r

其中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列宏块与它周围宏 块的相关系数计算公式分别定义如下:

λ R ( m , u , v ) = MIN ( RM M ( m , u , v - 1 ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m , u , v - 1 ) )

λ L ( m , u , v ) = MIN ( RM M ( m , u - 1 , v ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m , u - 1 , v ) )

λ C ( m , u , v ) = MIN ( RM M ( m - 1 , u , v ) RM M ( m , u , v ) , RM M ( m , u , v ) RM M ( m - 1 , 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帧h行l列与第m帧的u行v列的宏块之间的相关性计算公式为:

q M ( n , r , l , m , u , v ) = ( Π z = m n λ C μ C ( z , r , l ) ) ( Π x = v l λ L μ L ( m , r , x ) ) ( Π y = u r λ R μ R ( m , y , v ) )

( Π z = m n ( 1 - μ C ( 1 - λ C ( z , r , l ) ) ) ( Π x = v l ( 1 - μ L ( 1 - λ L ( m , r , x ) ) ) ( Π y = u r ( 1 - μ R ( 1 - λ R ( m , y , 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个宏块。

9)对宏块数据间的相关性值进行量化

量化方法与帧层相关性值量化方法相同。

10)预测即将编码宏块在编码后MAD值

在计算第n帧的r行l列宏块的量化参数前,需要预测该宏块编码后MAD值, 在本发明中MAD的预测公式为:

MAD Mp ( n , r , l ) = 1 Q M 1 ( Σ m = n - N n Σ u = 0 H Σ v = 0 L MAD M ( m , u , v ) · dq M ( n , r , l , m , u , v ) )

其中 Q M = Σ m = n - N n Σ u = 0 H Σ v = 0 L dq M ( n , r , l , m , u , v )

其中dqM(n,r,l,m,u,v)为第n帧h行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

其中

W 1 = ( 1 - α 2 ) Q M 1 · Σ m = n - N n Σ u = 0 H Σ v = 0 L QS M ( m , u , v ) · d q M ( n , r , l , m , u , v )

W 2 = α 2 · MAD Mp ( n , r , l ) Q M 1 · T M ( n , r , l ) ( Σ m = n - N n Σ u = 0 H Σ v = 0 L ( RM M ( m , u , v ) ) · QS M ( m , u , v ) · dq M ( n , r , l , m , u , v ) )

其中α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  仿真结果数据


本文发布于:2024-09-25 22:24:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/73016.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议