CN101562497A - 一种分级b帧的帧层速率控制方法及装置 - Google Patents

一种分级b帧的帧层速率控制方法及装置 Download PDF

Info

Publication number
CN101562497A
CN101562497A CNA2008100954033A CN200810095403A CN101562497A CN 101562497 A CN101562497 A CN 101562497A CN A2008100954033 A CNA2008100954033 A CN A2008100954033A CN 200810095403 A CN200810095403 A CN 200810095403A CN 101562497 A CN101562497 A CN 101562497A
Authority
CN
China
Prior art keywords
frame
bit number
target bit
mrow
frames
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.)
Withdrawn
Application number
CNA2008100954033A
Other languages
English (en)
Inventor
林四新
李明
常义林
高山
熊联欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNA2008100954033A priority Critical patent/CN101562497A/zh
Publication of CN101562497A publication Critical patent/CN101562497A/zh
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种分级B帧的帧层速率控制方法及装置,其为包含分级B帧的图像组的所有B帧中具有相同时间等级的B帧确定对应的同时间等级B帧的目标比特数;并根据所述同时间等级B帧的目标比特数对该同时间等级B帧包含的至少一个B帧进行帧层速率控制。可见,由于其采用了基于时间等级的分级B帧的速率控制策略,以将同一时间等级的B帧作为一个整体进行相应的速率控制,因而,通过该速率控制方案可以实现针对分级B帧的准确的速率控制,有效提高相应的编码性能。

Description

一种分级B帧的帧层速率控制方法及装置
技术领域
本发明涉及编码技术领域,尤其涉及一种分级B帧的帧层速率控制技术。
背景技术
为了在信道带宽和传输时延有限制的情况下有效传输视频数据,以保证网络视频业务的播放质量,通常需要对视频编码进行速率控制。速率控制是指通过适当设置一系列编码参数,使得视频编码后的比特率较准确的达到所希望得到的速率。以实现根据信道限制调整视频编码器的输出比特率,以及可以在给定的速率限制下使得编码失真达到最小。
目前,在编码过程中,采用了计算复杂度较低的闭环分级B帧编码器进行编码操作。以分级B帧的二重分级编码结构为例,相应的分级B帧的二重分级编码结构如图1所示,分级B帧具有不同的时间等级,不同的时间等级是指B帧的参考帧与当前B帧的时间距离不同。在分级B帧编码结构中,将I帧或P帧作为关键帧,且当前关键帧及其与前一个关键帧之间的所有B帧组成一个GOP(图像组)。
目前可以采用相应的的速率控制模式实现针对分级B帧的速率控制,相应的实现针对分级B帧的速率控制的过程包括:
(1)计算分级B帧的时间等级总数Hlevels,例如,若相邻关键帧之间插入的B帧数为3,则使用全二重分级编码结构时的时间等级总数为2。
(2)计算B帧的编码顺序Border,例如,解码顺序为I0、b1、B2、b3、P4的五帧(大写字母B表示该B帧用作参考帧,小写字母b表示该B帧不用作参考帧),其编码顺序为I0、P4、B2、b1、b3,b1和b3的时间等级序号为0,按照编码顺序各B帧的Border值依次为0、1、2。
(3)计算分级B帧的量化参数QP,即量化器的量化步长的索引序号;
假设当前B帧所在GOP中的关键帧的QP为QP2,前一个GOP中的关键帧的QP为QP1,则分级B帧的QP为:
Q B ~ B order = QP prev B order = 0 QP prev + [ H levels - L ( B order ) ] else ;
其中,QPprev=max(QP1,QP2),L(n)表示编码顺序序号为n的B帧的时间等级序号。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
在上述方案中,针对分级B帧的QP使用的是根据前后关键帧的QP的最大值和B帧的时间等级序号计算得到当前B帧的QP,因而,分级B帧结构中插入B帧数数量较多的情况,P帧之间的时间相关性较差,使得无法针对分级B帧实现准确的速率控制。
发明内容
本发明的实施例提供了一种分级B帧的帧层速率控制方法及装置,以实现准确可靠的针对分级B帧的速率控制。
一种分级B帧的帧层速率控制方法,包括:
为包含分级B帧的图像组的所有B帧中具有相同时间等级的B帧确定对应的同时间等级B帧的目标比特数;
根据所述同时间等级B帧的目标比特数对该同时间等级B帧包含的至少一个B帧进行帧层速率控制。
一种分级B帧的帧层速率控制装置,包括:
目标比特数确定单元,用于为包含分级B帧的图像组的所有B帧中具有相同时间等级的B帧确定对应的同时间等级B帧的目标比特数;
速率控制单元,用于根据所述目标比特数确定单元确定的同时间等级B帧的目标比特数对该同时间等级B帧包含的至少一个B帧进行帧层速率控制。
由上述本发明的实施例提供的技术方案可以看出,由于其采用了基于时间等级的分级B帧的速率控制策略,以将同一时间等级的B帧作为一个整体进行相应的速率控制,因而,通过该速率控制方案可以实现针对分级B帧的准确的速率控制,有效提高相应的编码性能。
附图说明
图1为现有技术中分级B帧的二重分级编码结构示意图;
图2为本发明实施例提供的分级B帧的速率控制过程示意图;
图3为本发明实施例提供的装置的结构示意图。
具体实施方式
在编码过程中,不同时间等级B帧对于GOP(图像组)以及整个序列的编码质量的影响不同,例如,低时间等级上的B帧对整个GOP编码质量的影响大于高时间等级上的B帧。为此,本发明实施例引入基于时间等级层的分级B帧的速率控制策略,以将同一个时间等级B帧作为一个整体进行控制,实现相应的时间等级层速率控制操作,提高编码性能。
相应的可以为包含分级B帧的图像组的所有B帧中具有相同时间等级的B帧确定对应的同时间等级B帧的目标比特数(即对该同时间等级B帧进行编码过程中可以使用的编码比特数);并根据相应的同时间等级B帧的目标比特数对该同时间等级B帧包含的至少一个B帧进行相应的帧层速率控制。
确定同时间等级B帧的目标比特数的过程可以为在根据信道带宽和缓冲区的状态计算当前图像组的目标比特数后,根据前一个图像组中各个不同时间等级的B帧的编码复杂程度及当前图像组的目标比特数计算当前图像组中的各个不同时间等级的B帧的目标比特数。
进一步地,由于不同时间等级B帧的编码率失真性能要求也各不相同,在同编码质量的要求下,低时间等级B帧与其前向、后向参考帧之间的时间间隔要大于高时间等级B帧,因而低时间等级B帧编码过程中需要更多的编码比特数;即传输低时间等级B帧的编码比特可能需要大于一个帧间隔的时长,而传输高时间等级B帧的编码比特可能需要少于一个帧间隔的时长;因而,可以在计算帧层目标比特数的过程中引入目标比特数加权因子,以便于在计算该B帧的目标比特数的过程中可以根据已编码GOP中各时间等级的实际编码情况,充分考虑各时间等级B帧编码比特数之间的差异计算各时间等级B帧的目标比特数,从而进一步提高相应的速率控制的性能。
在引入目标比特数加权因子后,相应的计算B帧的目标比特数的方式进一步可以包括以下过程:
(1)根据当前B帧所在时间等级的可用目标比特数、前一个图像组中各时间等级B帧的编码比特数及序列中各时间等级B帧的已编码比特数计算目标比特数加权因子;并根据该目标比特数加权因子、信道带宽及虚拟缓冲区的状态计算第一帧层目标比特数;以及,根据当前B帧所在时间等级的可用目标比特数计算第二帧层目标比特数;
(2)再将所述第一帧层目标比特数和所述第二帧层目标比特数的加权和作为该B帧的目标比特数。
本发明实施例中,进行帧层速率控制的过程具体可以包括:根据当前B帧在编码过程中的编码比特数,以及当前B帧所在时间等级中的可用目标比特数与缓冲区的状态(缓冲区的充满程度或缓冲区中的可用空间等)计算该B帧的目标比特数,其中,所述当前B帧所在时间等级中的可用目标比特数为根据该时间等级的B帧的目标比特数及相应图像组中已经编码的B帧使用的比特数确定;并根据该B帧的目标比特数计算B帧的量化索引参数,并根据该量化索引参数实现对该B帧的速率控制。
本发明实施例中,还可以引入相应的自适应量化索引参数调整策略,以便于能够根据B帧所在的时间等级、时间等级层目标比特数的使用情况及GOP层目标比特数的使用情况,限制量化索引参数的波动范围,进一步调整当前B帧对可用比特的使用,进而改善速率控制的准确性。
具体地,调整量化索引参数的方式包括:若确定所述量化索引参数大于预定的上限值,则将量化索引参数设置为该预定的上限值,若确定所述量化索引参数小于预定的下限值,则将量化索引参数设置为该预定的下限值,若确定所述量化索引参数不大于预定的上限值且不小于预定的下限值,则保持量化索引参数不变。
上述限制帧层QP的波动范围的自适应QP调整策略通过对帧层QP的进一步调整,使实际编码比特数更加接近于目标比特数,同时保证对整体编码质量影响较大的关键帧以及低时间等级B帧的编码质量。
在上述量化索引参数调整过程中,涉及的预定的上限值及预定的下限值可以为基于B帧的关键帧的量化索引参数或前一时间等级中的B帧的量化索引参数确定,或者,也可以为通过其他方式确定。
在采用上述实施例进行B帧的速率控制过程中,在完成当前时间等级包含的所有B帧的编码操作后,还可以将当前时间等级剩余的可用目标比特数分配给其他未编码的时间等级,以便于准确地对其他时间等级的B帧进行有效的速率控制处理。
本发明实施例可以应用于各种使用分级B帧预测结构的视频编码器中。下面将基于主流视频编码标准H.264/AVC的参考测试模型JM10.2,对本发明实施例的具体实现过程进行描述。
在本发明实施例提供的速率控制方案中,首先,需要根据目标比特速率、虚拟缓冲区充满程度和前帧的编码信息确定GOP的目标比特速率和起始QP;然后,再根据前一个GOP中各时间等级的编码复杂度,计算当前GOP中各时间等级的目标比特数;最后,便可以根据GOP层目标比特数、时间等级层目标比特数、目标比特速率、虚拟缓冲区的状态、先前编码帧的统计信息等因素计算当前B帧的帧层目标比特数,使用各时间等级的二次模型计算B帧的帧层QP,并在编码后更新速率控制过程中所使用的统计参数和二次模型、MAD(最小平均差)线性预测模型的参数。
本发明实施例提供的分级B帧帧层速率控制的实现流程如图2所示,具体可以包括以下处理过程:
(一)GOP层速率控制的处理过程
相应的GOP层速率控制的目的是根据目标比特速率和虚拟缓冲区的充满程度,为当前GOP计算目标比特数,并结合已有的编码信息确定当前GOP的起始QP,即关键帧的QP。
步骤1,根据信道带宽和虚拟缓冲区的状态计算GOP的目标比特数(即在编码该GOP层可以使用的编码比特数),具体的计算方式如下:
T GOP ( i , 0 ) = C F · N GOP + ( TBF GOP - B ( i , 0 ) ) - - - ( 1 )
其中,TGOP(i,0)表示编码第i个GOP的第一帧(即关键帧)之前GOP的剩余可用目标比特数,即为第i个GOP的目标比特数;C表示所设定的目标比特速率;F表示编码帧率;NGOP表示GOP的长度,即GOP中所包含的帧数;TBFGOP表示GOP层虚拟缓冲区的目标缓冲区充满程度;B(i,0)表示编码第i个GOP的第0帧之前虚拟缓冲区的充满程度,即第(i-1)个GOP中第(NGOP-1)帧编码结束后虚拟缓冲区的充满程度。
步骤2,根据前一个GOP中除最高时间等级B帧外其他帧的QP计算当前GOP中关键帧的QP;
进一步地,将序列首帧作为一个特殊的GOP,其GOP序号为0,称为第0个GOP;第0个GOP和第1个GOP中的关键帧使用配置文件中设定的速率控制起始QP,记为QP0,QP0可以是预先设定的值,也可以根据目标比特速率和视频内容确定。对于其它的GOP,则使用前一个GOP中除最高时间等级B帧之外所有帧(包括关键帧)的QP的平均值作为当前GOP的起始QP;其中,去除最高时间等级B帧的原因为最高时间等级B帧中大量使用到skip(跳过模式)模式;对于某个QP,若MB(宏块)选择skip作为其最佳编码模式,则该MB的实际编码比特数与编码失真将不再由QP的值确定。而且,在引入了时间等级层速率控制的概念后,最高时间等级的目标比特数会被其它低时间等级所使用,最高时间等级上的B帧的QP值通常较大。
具体地,在计算GOP的起始QP的过程中,不使用最高时间等级B帧的QP,相应的计算公式如下:
QP ( i , 0 ) = 1 N GOP - N TL ( TL MAX ) · Σ j = 0 N GOP - N TL ( TL max ) - 1 QP ( i - 1 , j ) , i ≥ 2 - - - ( 2 )
其中,QP(i,0)表示第i个GOP中第0帧的QP,即关键帧的QP;NTL(k)表示GOP中(第0个GOP除外)第k个时间等级上所包含的B帧数;TLMAX表示GOP中B帧的时间等级总数。
在GOP中,将关键帧所在的时间等级记为时间等级0;按照编码顺序,第一个B帧所在的时间等级记为时间等级1,然后依次类推。时间等级序号为k的时间等级上包含的B帧数可用下式计算:
NTL(k)=2k-1,k=1,2,...,TLMAX                  (3)
通过上述步骤1、2便可以计算获得相应的GOP层的目标比特数,以及当前GOP中关键帧的QP。
(二)时间等级层速率控制
由于不同时间等级上的B帧的率失真性能不同,因而需要采用相应的时间等级层速率控制,以将GOP中同时间等级上的B帧作为一个整体进行目标比特分配;即通过时间等级层速率控制可以为GOP中各时间等级确定相应的目标比特速率,以实现相应的分时间等级的目标比特速率控制。
步骤3,将GOP中同时间等级上的B帧作为一个整体,根据前一个GOP中的各时间等级的编码复杂度,以及步骤1计算确定的GOP层的目标比特数,计算当前GOP中各时间等级的目标比特数(即时间等级层的目标比特数,或者称为在对时间等级层进行编码过程中可以使用的编码比特数);
在GOP中的关键帧编码结束后,首先,通过下式计算确定GOP层的剩余可用目标比特数为:
TGOP(i,1)=TGOP(i,0)-Bits(i,0)               (4)
其中,Bits(i,j)表示第i个GOP中第j帧的实际编码比特数;
之后,再根据前一个GOP中各时间等级的编码复杂度,计算当前GOP中各时间等级的目标比特数为:
T TL ( i , k , 0 ) = X TL ( i - 1 , k ) Σ m = 1 TL MAX X TL ( i - 1 , m ) · T GOP ( i , 1 ) - - - ( 5 )
其中,TTL(i,k,0)表示编码第i个GOP中序号为k的时间等级上的第0帧时,该时间等级层的剩余可用目标比特数;XTL(i,k)表示第i个GOP中序号为k的时间等级的编码复杂度,其值使用下式计算:
X TL ( i , k ) = Σ l = 0 N TL ( k ) - 1 X Frame ( i , k , l ) = Σ l = 0 N TL ( k ) - 1 ( Q step ( i , k , l ) · Bits ( i , k , l ) ) - - - ( 6 )
其中,XFrame(i,k,l)表示第i个GOP中序号为k的时间等级中的第I帧的编码复杂度,其值等于该帧所使用的量化步长Qstep(i,k,l)与该帧的实际编码比特数Bits(i,k,l)的乘积。而且,第i个GOP中的第j帧(使用fn(i,j)表示),同时也是第i个GOP中序号为k的时间等级中的第I帧(使用fn(i,k,l)表示)。
对于第一个GOP,其前一个GOP(即第0个GOP)中仅包含一个帧,故不能获得各时间等级的编码复杂度信息。因此,使用各时间等级编码复杂度的初始值X′(1,k)代替式(5)中的XTL(1,k)计算各时间等级层目标比特数。
通过上述步骤3的处理便可以计算获得相应的当前GOP中各时间等级的目标比特数。
(三)帧层速率控制
本发明实施例中的帧层速率控制可以包括编码前处理和编码后处理两个阶段进行,相应的编码前处理的任务是计算帧层目标比特数,并使用二次模型计算帧层QP;编码后处理的任务是根据当前帧的实际编码数据,更新速率控制过程中统计量以及二次模型、MAD线性预测模型的模型参数。
下面将分别对帧层速率控制过程中的两阶段的处理进行描述。
1、编码前处理过程
假设当前编码帧是第i个GOP中的第j帧,同时也可以标记为第i个GOP中序号为k的时间等级上的第I帧。
首先,根据当前时间等级层的可分配比特数,目标比特速率、编码帧率和虚拟缓冲区的充满程度,计算序号为k的时间等级的帧层目标比特数(即第一帧层目标比特数TFrame1)为:
T ~ Frame ( i , j ) = μ ( i , k ) · C F + γ · ( TBF ( i , j ) - B ( i , j ) ) - - - ( 7 )
其中,μ(i,k)是第i个GOP中序号为k的时间等级的目标比特数加权因子;TBF(i,j)表示当前帧的目标缓冲区充满程度;γ为加权因子。
μ(i,k)的含义为传输该时间等级上B帧的实际编码比特数所需的平均帧间隔个数,相应的帧间隔是指按照播放顺序相邻两帧之间的间隔时长;
参照图2所示,在步骤4中,相应的μ(i,k)可根据当前帧中各时间等级的目标比特数、前一个GOP中各时间等级的实际编码比特数以及序列中已编码的各时间等级的实际编码比特数计算确定;具体可以为根据当前B帧所在时间等级对应的目标比特数及图像组中已经编码B帧使用的编码比特数确定当前B帧所在时间等级的剩余可用目标比特数,进而根据该当前B帧所在时间等级的剩余可用目标比特数,以及前一个GOP中各时间等级的B帧的实际编码比特数计算确定相应的μ(i,k);
该μ(i,k)参数可以反映各时间等级上B帧率失真性能的差异,使得通过式(7)引入μ(i,k)参数后,可以在帧层目标比特数的计算过程中反映出各时间等级B帧编码率失真性能的差异。导致各时间等级B帧编码率失真性能的差异的原因为各时间等级上B帧的编码比特数差异很大,即在同编码质量的情况下,低时间等级B帧的编码比特数要多于高时间等级B帧的编码比特数,使得传输低时间等级B帧的编码比特所需的时长可能大于一个帧间隔的时长,而传输高时间等级B帧的编码比特所需的时长可能小于一个帧间隔的时长。
进一步地,μ(i,k)的计算方方式可以包括:
对于第一个GOP,根据关键帧编码后GOP的剩余目标比特数计算各时间等级的目标比特数加权因子,如下式所示:
μ ( 1 , k ) = X ′ ( 1 , k ) Σ m = 1 TL MAX X ′ ( 1 , m ) · T GOP ( 1,0 ) - Bits ( 1,0 ) N TL ( k ) · ( C F ) - 1 - - - ( 8 )
其中,X′(1,k)表示为第一个GOP中各时间等级所设定的编码复杂度的初始值。
对于其他的GOP,计算时间等级的目标比特数加权因子的过程包括:
(1)根据关键帧编码结束后当前GOP的剩余目标比特数(即可用的目标比特数)计算
Figure A20081009540300152
也就是将GOP的剩余可用目标比特数作为GOP中未编码B帧的总的编码比特数的一个估计值,相应的计算式如下:
μ ~ ( i , k ) = X ( i - 1 , k ) Σ m = 1 TL MAX X ( 1 - 1 , m ) · T GOP ( i , 0 ) - Bits ( i , 0 ) N TL ( k ) · ( C F ) - 1 - - - ( 9 )
(2)根据前一个GOP中各时间等级的实际编码比特数计算
Figure A20081009540300162
也就是根据前后GOP之间的时间相关性,使用前帧的实际编码比特数来预测当前GOP中各时间等级的B帧实际编码比特数的平均值来预测当前GOP中同时间等级B帧的编码比特数,相应的计算式如下:
μ ^ ( i , k ) = Σ m = 0 N TL ( k ) - 1 Bits ( i - 1 , k , m ) N TL ( k ) · ( C F ) - 1 - - - ( 10 )
其中,Bits(i,k,l)表示第i个GOP中序号为k的时间等级上的第I帧的实际编码比特数。
(3)根据序列中各时间等级的实际编码比特数计算μ(i,k),即从整个序列来看,将各时间等级B帧的平均编码比特数作为当前GOP中同时间等级B帧的编码比特数的估计值,相应的计算式如下:
μ ‾ ( i , k ) = μ ‾ ( i - 1 , k ) · ( i - 2 ) + μ ^ ( i , k ) i - 1 · ( C F ) - 1 - - - ( 11 )
(4)计算时间等级加权因子的估计值μEstimate(i,k),即计算步骤(2)和步骤(3)的估计值的加权和,相应的计算式如下:
μ Estiamte ( i , k ) = a · μ ‾ ( i , k ) + ( 1 - a ) · μ ^ ( i , k ) - - - ( 12 )
其中,a是一个加权因子,其经验值可以但不限为0.35。
(5)计算时间等级的目标比特数加权因子μ(i,k);
具体是计算上述各步骤所确定的对当前GOP中的B帧的编码比特数的预测值的加权和,使得计算得到的B帧编码比特数的预测值综合考虑了各种可供参考的已有编码信息,相应的计算式如下:
μ ( i , k ) = b · μ ~ ( i , k ) + ( 1 - b ) · μ Estimate ( i , k ) - - - ( 13 )
其中,b是一个加权因子,其经验值可以但不限为0.25。
在(7)式中,还需要计算确定相应的虚拟缓冲区的目标缓冲区充满程度TBF(i,j),具体可以采用下式计算确定:
TBF ( i , j ) = TBL ( i , j - 1 ) - B ( i , 1 ) - TBF GOP N GOP - 1 - - - ( 14 )
通过式(13)和(14)计算获得的时间等级诉目标比特数加权因子μ(i,k)和虚拟缓冲区的目标缓冲区充满程度TBF(i,j),便可以计算获得相应的当前时间等级的帧层目标比特数。
步骤5,根据计算获得的目标比特数加权因子、信道带宽和虚拟缓冲区的状态(即虚拟缓冲区的目标缓冲区充满程度TBF(i,j)),通过式(7)计算确定相应的帧层目标比特数,即第一帧层目标比特数TFrame1
步骤6,根据当前B帧所在时间等级的剩余可用目标比特数确定的帧层目标比特数(即第二帧层目标比特数TFrame2),具体可以为:
T ^ Frame ( i , j ) = T ^ Frame ( i , k , l ) = T TL ( i , k , l ) N ~ TL ( i , k , l ) - - - ( 15 )
其中,
Figure A20081009540300173
Figure A20081009540300174
表示同一帧的帧层目标比特数;TTL(i,k,l)表示编码当前帧之前,时间等级层的剩余可用目标比特数;表示编码当前帧之前,该时间等级剩余待编码帧数。
需要说明的是,上述步骤4、5描述的处理过程与步骤6描述的处理过程的的执行顺序无先后限制,即可以以任意时序执行。
步骤7,根据之前计算获得的
Figure A20081009540300176
Figure A20081009540300177
进一步计算当前待编码B帧的帧层目标比特数TFrame(i,j);
具体地,该实际的帧层目标比特数TFrame(i,j)为
Figure A20081009540300178
Figure A20081009540300179
的加权和,即如下式所示:
T Frame ( i , j ) = β · T ^ Frame ( i , j ) + ( 1 - β ) · T ~ Frame ( i , j ) - - - ( 16 )
其中,β是一个加权因子。
其次,在计算得到了帧层目标比特速率之后,如图2所示,需要执行相应的步骤8,以便根据当前B帧所在时间等级的二次模型:
R i - H i MAD i = a 1 Q step + a 2 Q step 2 - - - ( 17 )
计算B帧的帧层QP,具体可以根据式(17)中的α1、α2计算确定QP,在计算该B帧的帧层QP的过程中需要获知运动预测后当前帧的预测差的MAD值以及头信息编码比特数Hi,其中Ri为预测比特数。其中,当前帧的MAD值可使用现有技术中的MAD线性预测模型,并根据当前时间等级层的前一个B帧(按照编码顺序)的实际MAD值计算确定;对于相应的头信息编码比特数则可以使用同时间等级前一个B帧的实际头信息开销作为当前B帧头信息开销的预测值,若当前B帧是GOP中其所在时间等级上的第一个B帧,则使用前一个GOP中同时间等级B帧头信息开销的平均值作为当前B帧头信息开销的预测值。
在该步骤8中,由于不同时间等级B帧的编码性能不同,因此对于不同时间等级使用参数不同的二次模型进行B帧的帧层QP的计算;即根据计算得到的目标比特数TFrame(i,j)、MAD和头信息开销,使用该时间等级对应的二次模型计算当前B帧的帧层QP。
本发明实施例中,在计算得到帧层QP之后,还可以执行图2中的步骤9,根据GOP及当前时间等级的目标比特数的使用情况,以及当前B帧所在的时间等级对计算确定的QP的取值范围进行限制调整,以保证相邻帧之间编码质量的平滑性,并且使得编码比特数接近于目标比特数。具体地,可以通过下式对相应的QP的取值范围进行:
clipQP ( QP , refQP , upper , lower )
= refQP + upper , QP > refQP + upper QP , refQP - lower &le; QP &le; refQP + upper refQP - lower , QP < refQP - lower - - - ( 18 )
其中,refQP为clipping过程中所使用的参考QP,根据当前比特预算的使用情况以及B帧所在的时间等级,refQP的取值可能是关键帧的QP、同GOP的前一个时间等级中第一个B的QP与最后一个B帧的QP中的最大值、或者同GOP的前一个时间等级中第一个B的QP与最后一个B帧的QP的加权和;upper为容许波动范围的上限值,lower为容许波动范围的下限值,相应的upper和lower的取值可以不同;该三个参数的取值可以根据B帧所在的时间等级、时间等级层目标比特数的使用情况和GOP层目标比特数的使用情况自适应地确定。
在处理过程中,如果计算得到的当前帧的目标比特数小于0,则说明当前时间等级层的目标比特数或当前GOP的目标比特数已经耗尽,此时根据refQP设定当前B帧的QP。相应的refQP的计算方式与clipping过程类似,即在考虑当前B帧所在的时间等级、时间等级层目标比特数的使用情况和GOP层目标比特数的使用情况的前提下限制QP的波动范围,例如,可以将帧层QP限制在范围[1,51]内。
2、编码后处理阶段
在编码后处理阶段中,参照图2中的步骤10所示,对当前帧进行编码,并根据当前帧的实际编码数据,更新速率控制过程中所使用的统计量(邪气缓冲区的充满程序)以及二次模型、MAD线性预测模型的模型参数,其中:
更新虚拟缓冲区的充满程度的方式如下式所示:
B ( i , j + 1 ) = B ( i , j ) + Bits ( i , j ) - C F - - - ( 19 )
相应的在二次模型更新过程中,滑动窗口中所包含的是与当前编码B帧同时间等级的已编码B帧的实际编码数据点(即可以通过相邻帧的MAD和比特数来预测当前帧的MAD和比特数),并且在不同时间等级的二次模型的更新过程中,使用各时间等级各自的滑动窗口进行编码数据点的选择。
相应的MAD线性预测模型更新过程中,所使用滑动窗口中包含不同时间等级B帧的实际编码数据点。
参照图2中的步骤11、12,在对当前B帧的编码操作结束后,还使用下式更新时间等级层的目标比特数和GOP层的目标比特数,分别可以为:
TTL(i,k,l+1)=TTL(i,k,l)-Bits(i,k,l)          (20)
TGOP(i,j+1)=TGOP(i,j)-Bits(i,j)                 (21)
若当前时间等级B帧已经全部完成编码,则重新计算GOP的剩余目标比特数,并使用与计算时间等级层目标比特数相同的方法,将当前时间等级层的剩余可用目标比特数在各时间等级之间重新进行分配。
步骤13,在完成步骤11、12的更新操作后,判断当前GOP中所有帧是否已经完成编码,若是,则继续执行步骤14,否则,重新执行步骤4,继续对当前GOP中的其他帧进行编码;
步骤14,判断序列中的所有GOP是否均已经完成编码操作,若是,则编码过程结束,否则,重新执行步骤1,继续对其他GOP中的各帧进行编码。
可见,通过上述处理过程,是在充分考虑分级B帧的编码特性(即在速率控制框架中添加时间等级层速率控制策略)的情况下,将GOP中同时间等级的B帧作为一个整体进行控制。而且,在确定帧层目标比特数时,还考虑不同时间等级B帧编码性能的差异,并且在QP的设定及波动范围的限定上考虑了B帧所在的时间等级以及时间等级层、GOP层可用目标比特数的状态等参考信息,从而进一步提高针对分级B帧的速率控制的性能。
本发明实施例还提供了一种分级B帧的帧层速率控制装置,其具体实现结构如图3所示,具体可以包括以下处理单元:
(1)目标比特数确定单元,用于为包含分级B帧的图像组的所有B帧中具有相同时间等级的B帧确定对应的同时间等级B帧的目标比特数;
进一步地,该目标比特数确定单元具体可以包括:
图像组目标比特数确定单元,用于根据信道带宽和缓冲区的状态计算当前图像组的目标比特数;
同时间等级目标比特数确定单元,用于根据前一个图像组中各个不同时间等级的B帧的编码复杂程度,以及所述图像组目标比特数确定单元计算获得的当前图像组的目标比特数,计算当前图像组中的各个不同时间等级的B帧的目标比特数;
相应的同时间等级B帧的目标比特数的具体计算方式前面已经有详细举例描述,故在此不再重复描述。
(2)速率控制单元,用于根据所述目标比特数确定单元确定的同时间等级B帧的目标比特数对该同时间等级B帧包含的至少一个B帧进行帧层速率控制,以实现相应的分级B帧的层层速率控制;
进一步地,该速率控制单元具体可以包括以下两单元:
B帧目标比特数确定单元,用于根据当前B帧在编码过程中的编码比特速率,以及当前B帧所在时间等级中的可用目标比特数与缓冲区的状态计算该B帧的目标比特数,所述当前B帧所在时间等级中的可用目标比特数为根据该时间等级的B帧的目标比特数及图像组中已经编码的B帧使用的比特数确定;
速率控制操作单元,用于根据所述B帧目标比特数确定单元确定的该B帧的目标比特数计算B帧的量化索引参数,并根据该量化索引参数实现对该B帧的速率控制。
可选地,上述速率控制单元中的B帧目标比特数确定单元具体可以包括第一帧层目标比特数确定单元、第二帧层目标比特数确定单元及B帧目标比特数计算单元,其中:
所述第一帧层目标比特数确定单元,用于根据当前B帧所在时间等级的可用目标比特数、前一个图像组中各时间等级B帧的编码比特数及序列中各时间等级B帧的已编码比特数计算目标比特数加权因子;并根据该目标比特数加权因子、信道带宽及虚拟缓冲区的状态计算第一帧层目标比特数;
所述第二帧层目标比特数确定单元,用于根据当前B帧所在时间等级的可用目标比特数计算第二帧层目标比特数;
所述B帧目标比特数计算单元,用于将所述第一帧层目标比特数确定单元确定的第一帧层目标比特数和所述第二帧层目标比特数确定单元确定的第二帧层目标比特数的加权和作为该B帧的目标比特数。
在该装置中,还可以包括量化索引参数调整单元,用于在确定所述速率控制操作单元获得的量化索引参数大于预定的上限值时,将量化索引参数设置为该预定的上限值,在确定所述量化索引参数小于预定的下限值时,将量化索引参数设置为该预定的下限值,在确定所述量化索引参数不大于预定的上限值且不小于预定的下限值时,保持量化索引参数不变。
进一步地,在该装置中还可以包括目标比特数更新单元,用于在完成当前时间等级包含的所有B帧的编码操作后,将当前时间等级B帧编码后剩余的可用目标比特数分配给其他未编码的时间等级。
综上所述,本发明实施例中,考虑了不同时间等级B帧编码性能的差异,并将各个相同时间等级上的B帧作为一个整体进行目标比特分配,以有效地反映不同时间等级B帧的不同编码特性以及关键帧和各时间等级B帧对整体编码性能的影响。
进一步地,本发明实施例中还可以在帧层目标比特数的计算过程中引入目标比特数加权因子μ(i,k),以便于在帧层目标比特分配过程中能够考虑到不同时间等级B帧的实际编码比特数所需要的时长各不相同的情况。
本发明实施例还综合考虑B帧所在的时间等级以及时间等级层、GOP层目标比特数的使用情况,限制QP的波动范围,即通过限制帧层QP的波动范围的自适应QP调整策略对计算获得的帧层QP的进一步调整,使实际编码比特数更加接近于目标比特数,同时保证对整体编码质量影响较大的关键帧以及低时间等级B帧的编码质量。
总之,本发明实施例提供的速率控制方案可以准确地适配目标比特速率,并保证了编码器的编码质量,提高编码性能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (13)

1、一种分级B帧的帧层速率控制方法,其特征在于,包括:
为包含分级B帧的图像组的所有B帧中具有相同时间等级的B帧确定对应的同时间等级B帧的目标比特数;
根据所述同时间等级B帧的目标比特数对该同时间等级B帧包含的至少一个B帧进行帧层速率控制。
2、根据权利要求1所述的方法,其特征在于,确定同时间等级B帧的目标比特数的过程包括:
根据信道带宽和缓冲区的状态计算当前图像组的目标比特数;
根据前一个图像组中各个不同时间等级的B帧的编码复杂程度,以及计算获得的当前图像组的目标比特数,计算当前图像组中的各个不同时间等级的B帧的目标比特数。
3、根据权利要求1或2所述的方法,其特征在于,所述进行帧层速率控制的过程包括:
根据当前B帧在编码过程中的编码比特速率,以及当前B帧所在时间等级中的可用目标比特数与缓冲区的状态计算该B帧的目标比特数,所述当前B帧所在时间等级中的可用目标比特数为根据该时间等级的B帧的目标比特数及图像组中已经编码的B帧使用的比特数确定;
根据该B帧的目标比特数计算B帧的量化索引参数,并根据该量化索引参数实现对该B帧的速率控制。
4、根据权利要求3所述的方法,其特征在于,所述计算该B帧的目标比特数的过程包括:
根据当前B帧所在时间等级的可用目标比特数、前一个图像组中各时间等级B帧的编码比特数及序列中各时间等级B帧的已编码比特数计算目标比特数加权因子;并根据该目标比特数加权因子、信道带宽及虚拟缓冲区的状态计算第一帧层目标比特数;
根据当前B帧所在时间等级的可用目标比特数计算第二帧层目标比特数;
将所述第一帧层目标比特数和所述第二帧层目标比特数的加权和作为该B帧的目标比特数。
5、根据权利要求3所述的方法,其特征在于,该方法还包括:
若确定所述量化索引参数大于预定的上限值,则将量化索引参数设置为该预定的上限值,若确定所述量化索引参数小于预定的下限值,则将量化索引参数设置为该预定的下限值,若确定所述量化索引参数不大于预定的上限值且不小于预定的下限值,则保持量化索引参数不变。
6、根据权利要求5所述的方法,其特征在于,所述的预定的上限值及预定的下限值为基于B帧的关键帧的量化索引参数或前一时间等级中的B帧的量化索引参数确定。
7、根据权利要求3所述的方法,其特征在于,该方法还包括:
在完成当前时间等级包含的所有B帧的编码操作后,将当前时间等级剩余的可用目标比特数分配给其他未编码的时间等级。
8、一种分级B帧的帧层速率控制装置,其特征在于,包括:
目标比特数确定单元,用于为包含分级B帧的图像组的所有B帧中具有相同时间等级的B帧确定对应的同时间等级B帧的目标比特数;
速率控制单元,用于根据所述目标比特数确定单元确定的同时间等级B帧的目标比特数对该同时间等级B帧包含的至少一个B帧进行帧层速率控制。
9、根据权利要求8所述的装置,其特征在于,所述的目标比特数确定单元包括:
图像组目标比特数确定单元,用于根据信道带宽和缓冲区的状态计算当前图像组的目标比特数;
同时间等级目标比特数确定单元,用于根据前一个图像组中各个不同时间等级的B帧的编码复杂程度,以及所述图像组目标比特数确定单元计算获得的当前图像组的目标比特数,计算当前图像组中的各个不同时间等级的B帧的目标比特数。
10、根据权利要求8或9所述的装置,其特征在于,所述的速率控制单元包括:
B帧目标比特数确定单元,用于根据当前B帧在编码过程中的编码比特速率,以及当前B帧所在时间等级中的可用目标比特数与缓冲区的状态计算该B帧的目标比特数,所述当前B帧所在时间等级中的可用目标比特数为根据该时间等级的B帧的目标比特数及图像组中已经编码的B帧使用的比特数确定;
速率控制操作单元,用于根据所述B帧目标比特数确定单元确定的该B帧的目标比特数计算B帧的量化索引参数,并根据该量化索引参数实现对该B帧的速率控制。
11、根据权利要求10所述的装置,其特征在于,所述的B帧目标比特数确定单元包括:
第一帧层目标比特数确定单元,用于根据当前B帧所在时间等级的可用目标比特数、前一个图像组中各时间等级B帧的编码比特数及序列中各时间等级B帧的已编码比特数计算目标比特数加权因子;并根据该目标比特数加权因子、信道带宽及虚拟缓冲区的状态计算第一帧层目标比特数;
第二帧层目标比特数确定单元,用于根据当前B帧所在时间等级的可用目标比特数计算第二帧层目标比特数;
B帧目标比特数计算单元,用于将所述第一帧层目标比特数确定单元确定的第一帧层目标比特数和所述第二帧层目标比特数确定单元确定的第二帧层目标比特数的加权和作为该B帧的目标比特数。
12、根据权利要求10所述的装置,其特征在于,该装置还包括:
量化索引参数调整单元,用于在确定所述速率控制操作单元获得的量化索引参数大于预定的上限值时,将量化索引参数设置为该预定的上限值,在确定所述量化索引参数小于预定的下限值时,将量化索引参数设置为该预定的下限值,在确定所述量化索引参数不大于预定的上限值且不小于预定的下限值时,保持量化索引参数不变。
13、根据权利要求10所述的装置,其特征在于,该装置还包括:
目标比特数更新单元,用于在完成当前时间等级包含的所有B帧的编码操作后,将当前时间等级B帧编码后剩余的可用目标比特数分配给其他未编码的时间等级。
CNA2008100954033A 2008-04-17 2008-04-17 一种分级b帧的帧层速率控制方法及装置 Withdrawn CN101562497A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008100954033A CN101562497A (zh) 2008-04-17 2008-04-17 一种分级b帧的帧层速率控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008100954033A CN101562497A (zh) 2008-04-17 2008-04-17 一种分级b帧的帧层速率控制方法及装置

Publications (1)

Publication Number Publication Date
CN101562497A true CN101562497A (zh) 2009-10-21

Family

ID=41221132

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008100954033A Withdrawn CN101562497A (zh) 2008-04-17 2008-04-17 一种分级b帧的帧层速率控制方法及装置

Country Status (1)

Country Link
CN (1) CN101562497A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102986211A (zh) * 2010-04-15 2013-03-20 德克萨斯仪器股份有限公司 视频编码中的速率控制
CN103533365A (zh) * 2012-07-04 2014-01-22 珠海扬智电子科技有限公司 比特率控制方法与比特率控制系统
CN107426575A (zh) * 2011-02-16 2017-12-01 太阳专利托管公司 影像编码方法、装置及影像解码方法、装置
CN113766232A (zh) * 2021-09-24 2021-12-07 百果园技术(新加坡)有限公司 一种编码、解码方法、装置、电子设备及存储介质
CN114726730A (zh) * 2022-02-15 2022-07-08 阿里巴巴(中国)有限公司 应用于cdn的拥塞控制方法、电子设备、介质及产品

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102986211A (zh) * 2010-04-15 2013-03-20 德克萨斯仪器股份有限公司 视频编码中的速率控制
CN102986211B (zh) * 2010-04-15 2017-06-13 德克萨斯仪器股份有限公司 视频编码中的速率控制
US11228772B2 (en) 2010-04-15 2022-01-18 Texas Instruments Incorporated Rate control in video coding
CN107426575A (zh) * 2011-02-16 2017-12-01 太阳专利托管公司 影像编码方法、装置及影像解码方法、装置
CN107426575B (zh) * 2011-02-16 2021-02-19 太阳专利托管公司 影像编码方法、装置及影像解码方法、装置
CN103533365A (zh) * 2012-07-04 2014-01-22 珠海扬智电子科技有限公司 比特率控制方法与比特率控制系统
CN103533365B (zh) * 2012-07-04 2016-12-21 珠海扬智电子科技有限公司 比特率控制方法与比特率控制系统
CN113766232A (zh) * 2021-09-24 2021-12-07 百果园技术(新加坡)有限公司 一种编码、解码方法、装置、电子设备及存储介质
CN113766232B (zh) * 2021-09-24 2024-06-07 百果园技术(新加坡)有限公司 一种编码、解码方法、装置、电子设备及存储介质
CN114726730A (zh) * 2022-02-15 2022-07-08 阿里巴巴(中国)有限公司 应用于cdn的拥塞控制方法、电子设备、介质及产品
CN114726730B (zh) * 2022-02-15 2023-12-29 阿里巴巴(中国)有限公司 应用于cdn的拥塞控制方法、电子设备、介质及产品

Similar Documents

Publication Publication Date Title
JP4390112B2 (ja) ビデオシーケンスのレートを制御する方法及び装置並びにビデオ符号化装置
KR100484148B1 (ko) 개선된 비트율 제어 방법과 그 장치
CN101895759B (zh) 一种h.264码率控制方法
CN1910934B (zh) 自适应速率控制编码器
JP2010512697A5 (zh)
US20110038557A1 (en) Method for Sending Compressed Data Representing a Digital Image and Corresponding Device
CN101010964A (zh) 在可分级视频编码中的使用帧速率上变换技术的方法与设备
CN103281530A (zh) 基于率失真优化的hevc码率控制方法
US20110075730A1 (en) Row Evaluation Rate Control
US8654840B2 (en) Rate control method of perceptual-based rate-distortion optimized bit allocation
CN101562497A (zh) 一种分级b帧的帧层速率控制方法及装置
CN107257464B (zh) 基于Sobel算子和线性回归的高清视频编码码率控制方法
CN112272299A (zh) 一种视频编码的方法、装置、设备和存储介质
CN102186084A (zh) 一种可伸缩视频编码的空间增强层码率控制实现方法
CN108040256A (zh) 一种基于h.265的码率控制方法、系统及装置
CN101252693A (zh) 基于图像直方图的码率控制方法
CA2524809A1 (en) Methods and apparatus for improving video quality in statistical multiplexing
CN102369732B (zh) 视频流传输
KR101069254B1 (ko) H.264를 위한 프레임 단위 비트율 제어 방법
EP1883246B1 (en) Video Encoder with Adaptive Frame Skipping
US20080152009A1 (en) Scaling the complexity of video encoding
CN103517067B (zh) 一种初始量化参数自适应调整方法及系统
KR100377190B1 (ko) 블록별 생성 비트스트림 크기에 따른 채널 오류 발생가능성 예측에 의한 인트라 갱신 블록 결정 기법을 이용한 영상 부호화 방법
CN114422783B (zh) 视频编码方法、电子设备及存储介质
CN103002286B (zh) 视频单元的复杂度生成方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C04 Withdrawal of patent application after publication (patent law 2001)
WW01 Invention patent application withdrawn after publication