具有压缩图像与视频的低启动时延的假想参考解码器的制作方法

文档序号:6492795阅读:133来源:国知局
专利名称:具有压缩图像与视频的低启动时延的假想参考解码器的制作方法
技术领域
本发明一般涉及图像和视频信号。更具体地,本发明涉及对图像与视频信号进行编码和压缩。
背景技术
在诸如MPEG-1、MEPG-2、MEPG-4、H.261、H.263以及新的H.264/MEPG-4第10部分的视频编码标准中,如果比特流遵守标准中包含的语法和语义规则,则确定其具有一致性。一套这样的规则在通过从编码器接收比特流的数学或假设模式的解码器时,采取连续流动的比特流形式。这种模式的解码器在一些标准中被称为假想参考解码器(hypotheticalreference decoder,“HRD”),或者在另外的标准中被称为视频缓冲校验器(video buffer verifier,“VBV”)。换句话说,HRD规定了视频信号编码器所生成的比特流的在给定标准下被认为具有一致性所必须遵守的规则。也可以说,HRD是标准化的装置,编码器必须根据其生成遵守特定规则或限制的比特流,而实际的解码器可以认为比特流已经遵守了这些规则并满足了这些限制。
HRD用于对压缩比特流中比特率随时间的变化设置限制。HRD也可可以用作实际的解码器设备或多路复用器的定时及缓冲模型。与HRD相关的是在标准中定义的语法元素和在诸如编码器、多路复用器、一致性分析器等各种产品的软硬件中包含的算法。
HRD是表示在压缩过程中如何控制比特率的装置。可以将HRD设计用于可变或恒定比特率工作,也可以用于低时延或可容忍时延的情况。如图1所示,HRD 100包括前置解码器缓冲器110(或VBV缓冲器),压缩比特流105以精确指定的到达与清除时限通过其流动。压缩比特流105包含由编码图像115和相关的辅助信息组成的序列,该序列根据指定的到达时间表流入前置解码器缓冲器110中。与给定的编码图像115相关的所有压缩比特在图像的指定清除时间被瞬时解码器从前置解码器缓冲器110中清除。如果缓冲器已变满而更多比特正在到来,则前置解码器缓冲器110就会溢出。如果图像清除时间发生在表现该图像的压缩比特全部到达之前,则前置解码器缓冲器110将会下溢。典型地,不同HRD之间的区别在于指定到达时间表与清除时间的装置以及认定前置解码器缓冲器110溢出与下溢的规则不相同。
符合诸如H.263和H.261的HRD一些现有标准已经被设计出来用于低时延工作。简单地说,这样的HRD在首次检查缓冲器而不是在比特流中传输的同时通过清除与图像有关的所有比特来工作。这些HRD不指定比特流何时到达前置解码器缓冲器。因此,这样的HRD不考虑准确地定时清除来自前置解码器缓冲器中的比特,而给设计用来显示精确定时图像的系统制造了困难。
诸如MPEG-2的其它HRD标准,能工作在可变比特率或恒定比特率模式下,并且还具有低时延模式。基于图像清除延迟是否在比特流中传送,MPEG-2HRD(被称为VBV)具有两种工作模式。在第一种工作模式或模式A中,在发送清除延迟时,基于图像大小、清除延迟和附加清除时间增量计算出每幅图像进入VBV缓冲器的到达速率。编码器可以使用模式A产生可变和恒定比特率的比特流。不过,模式A要承受这样的缺点为了作出关于给定比特流是否具有恒定比特率的判定,必须对整个比特流进行扫描。模式A还要承受序列开始处的不确定性的困扰,这一不确定性妨碍了对于初始比特率的判定。因此,从技术角度来说,模式A不考虑对比特流是不是恒定比特率(“CBR”)比特流的判定。
在其第二种工作模式或模式B(也被称为漏桶)中,与模式A不同,编码器并不发送清除延迟。在模式B中,到达速率是恒定的,除非前置解码器缓冲器已满,而在此情况下没有比特到达。因此,具有恒定到达率的模式B不会引入关于初始到达速率的不确定性。但是,模式B具有到达时间表,该表可以不受限制地对比特的真实产生进行模拟。模式B的这个不受限的方面可能在通过实际解码器时导致很大的时延,并限制了其作为实时多路复用器的控制器(guidance)的使用。在模式B中,压缩数据以缓冲器的峰值速率抵达VBV缓冲器直到缓冲器充满,在该点上数据停止。初始清除时间恰好是当缓冲器变满的准确时间点。随后的清除时间由固定帧或字段周期相对于第一个清除时间来进行延迟。
作为模式B可能引入长时延的假想例子,考虑在序列起始位置产生很小图像(即,用极少的比特压缩每幅图像)的长序列的编码器。为此目的举一个例子,考虑产生可以全部装入VBV缓冲器的1,000幅小图像。全部1,000幅图像将在短于缓冲器大小等效时间的时间内进入缓冲器,该时间典型地小于一秒。这些图像的最后一幅在缓冲器中逗留的时间将会比第一幅多999个图像周期或大约30秒。这要求编码器在发送第一幅图像之前产生相同时间量的延迟。然而,在实时广播应用中,在编码器处插入30秒的延迟通常是不可能的。而是在图像生成之后,编码器只能发送与小图像相关的比特。根据VBV模式,这会产生一连串的时间间隔,在这些时间间隔内VBV缓冲器没有充满,但是也没有比特进入。因此,实时编码器无法模仿VBV模式B的缓冲器到达定时。
在A和B两种模式中,清除时间都基于固定帧速率。除了一个将捕获的影片内容当作视频的特例外,这两种MPEG-2VBV模式中的任一种都不能处理可变帧速率。在此特例中,基于在该幅图像或其前面一幅图像的图像头部的比特字段的值,由一个字段周期来延迟特定图像的清除时间。
与VBV模式A中编码器既要防止缓冲器溢出又要防止其下溢相反,在模式B中,对缓冲器来说溢出是不可能的,因为一旦缓冲器充满,数据就停止进入。不过,在模式B中,编码器还要防止缓冲器下溢。
MPEG-2VBV还包括单独指定的低时延模式。在该低时延模式中,前置解码器缓冲器偶尔会下溢并且具有定义VBV如何恢复图像包括跳过图像的明确规则。因为存在多个工作模式,同时处理可变帧速率的特例的方法晦涩难懂,所以MPEG-2VBV过度复杂。此外,其也承受模式A中初始比特率不明确和模式B中非因果关系(non-causality)的困扰。
另外,尽管传统的HRD为了实现速率和视频质量控制以及在比特流开头部分的低启动时延而考虑使用HRD压缩数据缓冲器,但是如果不缩减缓冲器大小和/或改变编码器处的速率控制,并因此消耗比特来实现这种改变,则该比特流内其它随机接入点处的启动延迟就无法得到控制。
因此,存在对改良的假想参考解码器的需求,所述解码器能够处理与现有HRD相关的问题和缺陷。

发明内容
根据这里概括描述的本发明的目的,提供用于对图像及视频信号进行编码或者压缩的系统及方法。在本发明的一个方面,使用将图像序列中的每幅图像进行编码的方法,该方法包括如下步骤给图像分配前置解码器缓冲器清除时间;为该图像选择比特数,其中比特数的等效时间不大于基于该图像的前置解码器缓冲器的清除时间与该图像进入前置解码器缓冲器的最初到达时间的差值;并且压缩该图像以产生所述比特数。
在另一方面,本方法还包含下列步骤分配用于压缩当前图像的最初比特数以及用于压缩一幅或者多幅未来图像的一个或者多个比特数,其中所述未来图像在当前图像的前置解码器缓冲器清除时间内处于前置解码器缓冲器中;基于分配步骤中的比特数,在当前图像的缓冲器清除时间内,判定未来图像中的哪一幅会在前置解码器缓冲器中;如果需要防止前置解码器缓冲器溢出或下溢,则改变用于压缩当前图像的最初比特数,以分配用于压缩该图像的最终比特数;并使用所述最终比特数来压缩该图像。一方面,该方法还包含确定用于压缩图像最初比特数的上限和下限的步骤,其中所述最初比特数不大于该上限且所述最初比特数不小于该下限。
而另一方面,该方法还包含下列步骤确定用于压缩当前图像的最初比特数以及用于压缩一幅或者多幅未来图像的一个或多个比特数的第一极限,其中所述未来图像在当前图像的前置解码器缓冲器清除时间内位于前置解码器缓冲器中;并且使用最初比特数压缩该图像,其中所述比特数遵守第一极限。一方面,第一极限是上限,最初比特数不高于该上限或者可选地,第一极限是下限,最初比特数不低于该下限。另外,该方法可以包含如下步骤确定用于压缩当前图像的比特数的第二限制;其中第一限制是上限而第二极限是下限,最初比特数不高于该上限且最初比特数不低于该下限。
在其它方面,本发明的计算机软件程序、系统、设备能够执行上述方法中的一个或多个步骤。
进一步参考接下来的附图和说明书,本发明的这些和其它方面会变得明显。所有这些附加的系统、方法、特征和优点都包括在本说明书中,属于本发明的范围之内,并且受所附权利要求的保护。


在研究以下的详细描述和附图后,本发明的特点和优点对于本领域的普通技术人员来说,会变得更加明显,其中图1示意了假想参考解码器的方框图;图2A示意了音频/视频编码(“AVC”)比特流的视频编码层(VCL);图2B示意了AVC比特流的网络适配层;图3示意了HRD一致性校验器;图4根据本发明的一个实施例,描绘了图5A中的假想参考解码器的缓冲器充满程度曲线图,其中图像大小由图5B中给出;
图5A举例说明根据本发明的一个实施例的假想参考解码器的一组参数;以及图5B为了阐明图4中的曲线,举例说明图5A中假想参考解码器所使用的图像大小。
具体实施例方式
本发明的以下说明包含与本发明的实现有关的具体信息。本领域的技术人员将意识到,本发明可以用不同于本申请中专门讨论的方式来实现。此外,为了避免使本发明不明确,本发明的一些具体细节在此不作讨论。本申请不描述的所述具体细节都在本领域的普通技术人员所了解的范围内。本申请的附图及伴随其的详细说明仅用来示范本发明的实施例。为保持简明扼要,使用本发明原理的本发明的其它实施例在本申请中不作专门描述,本附图也不作专门图示。
I.HRD与缓冲校验器综述如上所述,HRD100代表对比特流的一套要求。这些限制必须由编码器执行,并且能够被解码器或多路复用器设定为真。根据图3所示的本发明的一个实施例,能将HRD校验系统300构想为可以通过检验比特流来校验比特流与以下阐述的要求是否一致。
下文中,术语比特流指的是所有形式的AVC流。如图2所示,遵守AVC HRD的比特流可以包括一层或两层。在AVC标准中被称为视频编码层(VCL)的第一层或较低层,是由对构成解码图像的像素值进行解码所需要的大多数信息组成的。每个压缩图像又包含着一组一个或多个片(slice),而每个片又包含代表一部分图像区的压缩数据。图2A示出包括压缩图像n 200、压缩图像n+1 201及压缩图像n+2 202的一部分VCL。图2A还示出压缩图像n的片分区204。AVC标准的第二层被称为网络适配层(NAL)。NAL由来自交叉了附加信息的VCL的压缩图像组成,所述附加信息例如应用到压缩图像的整个序列的序列层信息;只用于比特流中的下一个压缩图像的图像属性;以及其它辅助信息。在AVC中,VCL和NAL都被分割成不重叠的NAL单元。图2B示出由三个压缩图像201至203组成的NAL比特流的一部分,其中在其它NAL单元211到213中插入了附加信息。简而言之,VCL由包含采取片形式的压缩图像的NAL单元序列组成,而NAL由NAL单元序列组成,NAL单元中一些是VCLNAL单元,而一些则包含其它信息。VCL形式和NAL形式在下文中都称为比特流。
HRD可以应用于VCL或NAL或两者均可。此外,多路HRD可以应用于同一比特流的任意一种形式。每个HRD可以是恒定比特率或可变比特率HRD。这一不同在下文给出的比特流语法中标明。
在一个实施例中,HRD100使用两种时基。一种时基是90kHz时钟,该时钟在收到用于对HRD100进行初始化的缓冲周期消息后会工作短暂时间。第二种时基在参数中使用num_units_in_tick和time_scale语法,所述参数设置用来获得图像从缓冲器中清除之间的时间间隔,在一些情况下是图像到达前置解码器缓冲器110之间的时间间隔。
在以下说明中,tc=num_units_in_tick/time_scale是与第二个时钟相关的时钟节拍(lock tick),be[t]和te[b]是时间t的等效比特及比特b数量的等效时间,而变换因子为缓冲器到达的比特率。
A.前置解码器缓冲器的工作1.比特流到达定时最初,当前置解码器110为空时,第一幅传输图像的首个字节在最初到达时间tai(0)=0与特定VBV缓冲器相关的比特率R(R=400*bit_rate_value_xxx)开始进入前置解码器缓冲器110。此外,第一幅传输图像的最后一个比特在最终到达时间完成到达过程taf(0)=b(0)/R (D-1)这里的b(n)指的是第n个传输图像的比特大小,包括只有VCL字节或既有VCL字节也有NAL字节,这取决于HRD的工作模式。每幅图像的最终到达时间是最初到达时间和与该图像相关的比特进入前置解码器缓冲器110所需的时间之和
taf(n)=tai(n)+b(n)/R(D-2)对于每个连续的图像,图像n的最初到达时间是下一幅图像的tai(n-1)加上之前所有pre_dec_removal_delay时间,如公式D-3所示tai(n)=max{taf(n-1),te×Σi=1npre_dec_removal_dclay(n)}---(D-3)]]>当编码器生成的比特率低于与VBV缓冲器相关的比特率时,规则(D-3)可以使一些图像延迟进入前置解码器缓冲器110,产生没有数据进入的周期。
2.编码图像清除定时如果HRD100适合VCL数据,则与图像n相关的编码数据包括该图像的所有VCL数据。如果HRD100适合多路VCL/NAL数据,则与图像n相关的编码数据包括该图像的所有VCL数据加上图像n-1结束之后、图像n结束之前的所有NAL数据。对于第一幅图像以及在收到缓冲周期SEI消息之后第一批完成的所有图像来说,与该图像相关的编码数据在等于下式的清除时间内从VBV缓冲器中清除出去tr(0)=pdrd_xxx/90000 (D-4)其中,pdrd_xxx为缓冲周期SEI消息中前置解码器清除延迟。
在第一幅图像被清除以后,在后续的时间点上对前置解码器缓冲器110进行检验,每个时间点都以时钟节拍tc的整倍数从前一个时间点延迟,所述时钟节拍tc是图像速率的整倍数。图像n编码数据的清除时间tr(n)相对于图像n-1的编码数据清除进行延迟;其中所述延迟等于存在于图像层RBSP(Raw Byte Sequence Payload原始字节序列载荷)中pre_dec_removal_delay语法元素所指明的图像周期数。
tr(n)=tr(n-1)+tc×pre_dec_removal_delay(n) (D-5)接着,下一个传输的图像的编码数据从前置解码器缓冲器100中清除。如果图像n编码数据的数量b(n)很大,以至于在计算的清除时间内无法完成清除,则编码数据在由下式给出的延迟清除时间tr,1d(n,m*)内得到清除tr,d(n,m*)=tr(0)+tc×m*,(D-6)
其中m*要满足tr,d(n,m*-1)<taf(n)≤tr,ld(n,m*)。这是低时延工作的一个方面。所述延迟清除时间是最终到达时间taf(n)之后的下一个时间瞬间,所述最终到达时间由tc的整倍数相对于tr(0)进行延迟。
3.对编码比特流的一致性限制在本发明的一个实施例中,传输的或存储的比特流必须满足以下四个要求中的部分或全部才被认为具有一致性。第一,对于每幅图像来说,将不同缓冲周期作为解码开始点进行计算的清除时间tr(n)要与所用时钟的精确度相一致(90kHz时钟用于初始清除时间,而tc时钟用于随后的清除时间计算)。在一个实施例中,一致性可以解释为意味着同等性。通过根据使用以上等式D-3和D-5计算的到达及清除时间,来计算缓冲周期SEI消息的前置解码器清除延迟(pdrd_xxx),编码器就能够符合这一要求。在另一个实施例中,用缓冲周期SEI消息initial_pre_dec_removal_delay计算的清除延迟可以低于用图像层pre_dec_removal_delay计算的清除延迟。
第二,除了下文所述的独立的低时延模式图像,来自图像的所有比特都必须在该图像的计算清除时间tr(n)内位于前置解码器缓冲器110中。换句话说,图像的最终到达时间必须在该图像的清除时间之前taf(n)≤tr(n)。
第三,如果图像n的最终到达时间taf(n)超出了其计算清除时间tr(n),其大小要使得其能够从前置解码缓冲器110清除出来,而且在以上定义的tr,d(n,m*)内不会溢出。
第四,如果比特流符合CBR VBV缓冲器260,则在进入CBR VBV缓冲器260时数据必须连续地到达。这相当于确保了下式的成立taf(n-1)=tc×Σi=1npre_dec_removal_delay(i)]]>注意,作为D-3的结果,第一幅图像的到达时间tai(0)与其它任意第二幅图像的到达时间tai(n)之间的差值不小于第一幅图像之后第二幅图像(包括第二幅图像)之前所有图像的清除时延之和tc×Σi=1npre_dec_removal_delay(n).]]>清除延迟之和也恰好是两幅图像清除时间之差tr(n)-tr(0)。然而,其它实施例可以使用不同的差值测量方法,包括对限制加上或减去固定的偏移量。
B.校验器的工作符合上述HRD限制的比特流的一致性可以通过下述校验器来完成。图3示出了校验器300。比特流310须经序列消息过滤操作301的处理,该操作在指示出比特率、缓冲器大小的比特流中定位消息,并从该消息中提取比特率及缓冲器大小信息311及HRD配置信息318。比特流310还须经图像及缓冲器消息过滤操作302处理,该操作定位包含图像清除延迟信息312的消息并提取该信息。比特流310还须经图像大小计算操作303处理,该操作产生每幅压缩图像的大小(用比特数表示)313。信息311、312和313在到达与清除时间计算单元304内使用,以根据上述I.A.1及I.A.2部分为每幅压缩图像确定最初到达时间、最终到达时间及清除时间。对于每幅压缩图像,时间314、315和316根据I.A.3部分描述的限制,被用在限制检验器305内来指示一致性,所述限制在限制检验器305中得以实现取决于HRD配置信息318。
II.HRD说明本申请的以下部分通过提供关于本发明的资料丰富的说明,补充前一部分的规范性说明,其中包括描述HRD100操作及功能的解释性条文。
(一)限制到达时间漏桶(CAT-LB)模式本申请的HRD100是解码器的数学模型、解码器输入缓冲器以及通道。HRD100的特征在于,通道峰值速率R(比特/秒)、缓冲器大小B(比特)、初始解码器清除延迟T(秒),以及每幅图像的清除延迟。前三个参数(R、B、T)表示用于对比特流解码的资源级(传输能力、缓冲器容量及延迟)。
以上引用的“漏桶”是在将编码器和这样一种系统进行类比过程中产生的,所述系统将水分成不连续的几次倒入带有漏洞的木桶之中。从编码器缓冲器离开的比特相当于从桶中泄漏的水。典型地,解码器缓冲器有相反的状态,其中比特以恒定的速率流入并成块地清除。本申请中描述的漏桶可以称为限制到达时间漏桶(CAT-LB),因为第一幅图像之后的所有图像的到达时间都限制为必须在不早于该图像与第一幅图像在假想编码器中处理时间之差到达缓冲器输入端。例如,如果第二幅图像在第一幅图像编码之后恰好(七)7秒钟进行编码则要确保第二幅图像的比特不能在第一幅图像的比特开始到达之后的7秒之前开始到达。应该注意的是,该编码时间的差值作为图像清除延迟在比特流中发送。
1.CAT-LB HRD的工作前置解码器缓冲器110的容量是B比特。最初,前置解码器缓冲器110从空开始。与图像n相关的编码比特在前置缓冲器110中的持续时间的特征在于到达间隔{tai(n),taf(n)}及清除时间tr(n)。到达间隔的端点被称为最初到达时间和最终到达时间。当tai(0)=0时,前置解码器缓冲器110开始以速率R接收比特。根据与前置解码器缓冲器110相关的缓冲周期SEI消息的前置解码器清除延迟pdrd_xxx,通过下式可以计算出第一幅图像的清除时间tr(0)tr(0)=90,000×pdrd_xxx (D-7)后续图像(按传输顺序)的清除时间tr(1)、tr(2)、tr(3)……相对于tr(0)进行计算,其中图像周期tc由下式定义tc=num_units_in_tick/time_scale (D-8)应当注意的是,对序列来说,图像周期是以秒表示的最短可能图像间捕获间隔(inter-picture capture interval)。例如,如果time_scale=60,000且num_units_in_tick=1,001,则tc=1,001/60,000=16.68333...毫秒。
(D-9)在每幅图像的图像层RBSP中,都有pre_dec_removal_delay语法元素。该元素指示图像周期的数目,以在图像n-1清除之后延迟清除图像n。于是,清除时间简单表示为tr(n)=tr(n-1)+tc×pre_dec_removal_delay(n)(D-10)这一递归式还可以表示为tr(n)=tr(0)+tc×Σi=1n[pre_dec_removal_delay(m)]---(D-11)]]>由于因果关系限制,到达时间的计算较复杂。图像n的最初到达时间等于图像n-1的最终到达时间,除非该时间早于最早到达时间,最早到达时间由下式计算tai,ealiest(n)=tc×Σi=1n[pre_dec_removal_delay(m)]---(D-12)]]>其中b(n)是与图像n相关的比特数,图像到达间隔的持续时间恒等于以比特数计的图像大小的等效时间,在速率为R时taf(n)-tai(n)≡te[b(n)]=b(n)/R(D-13)图4示意了CAT-LB的缓冲器充满程度曲线图400的一部分,所述CAT-LB具有图5A中的表500给出的参数和图5B中表550的列551给出的图像大小。注意,表550列出了缓冲处理过程中很多有意义的时间值。在表550中,te为编码时间列552,其表示等于图像最早的可能最初到达时间的假想编码时间,tai为最初到达时间列553,taf是最终到达时间列554,tai-te为最初到达时间减去编码时间列555,tr是清除时间列556,tr-tai是清除时间减去最初到达时间列557,tr-te为清除时间减去编码时间列558。
参考图4,可以看出第一幅图像很大,接下来是恰好为缓冲器到达速率R的五(5)幅图像,所述五(5)幅图像后面跟随半速率的十二(12)幅图像、三倍速率的四(4)幅图像以及两倍速率的一(1)幅图像。以上图像之后,图4分别图解了具有30%和50%速率的图像的两个图段。另外,缓冲器充满程度曲线图400从十(10)秒到十八(18)秒的时间间隔说明了当比特率恒定且大小等于或小于速率R时HRD100的状况。如图所示,当到达比特率在一段时间内保持低于R,则充满程度曲线上较低点就不会变化。而且,在这样的图段,顶峰的充满程度与被图像消耗的峰值速率部分成比例。
从十八(18)秒到28秒之间的缓冲器充满程度曲线图300显示了在到达速率增加到R以上时的短暂影响。只要大图像开始退出前置解码器缓冲器110,图像离开前置解码器缓冲器110的比特率就会超过R,同时充满程度降低。这一过程在第三十二(32)秒点结束,此时大图像已经退出前置解码器缓冲器110,一连串的较小图像开始进入前置解码器缓冲器110。在缓冲器充满程度曲线图300从三十六(36)秒到四十三(43)秒之间的时间区间内,30%峰值速率图像正在进入和离开前置解码器缓冲器110。此外,在缓冲器充满程度曲线图300从四十三(43)秒到五十二(52)秒的时间区间,显示了50%峰值速率的图像进入前置解码器缓冲器110的同时,30%峰值速率图像正离开前置解码器缓冲器110。结果,缓冲器充满程度就出现上升。一旦50%峰值速率图像开始离开前置解码器缓冲器110,充满程度就会稳定在50%充满状态。应当注意的是,VBV缓冲器稳定在和短期平均比特率与到达比特率的比值成比例的充满程度上。
通常,缓冲器充满程度曲线图300的曲线用如下表达式给出BF(t)=Σn[I(taf(n)≤t<tr(n))×b(n)+I(tai(n)<t<taf(n))×be(t-tai(n))]---(D-14)]]>上述表达式使用了将与时间相关的逻辑断言作为变元的指示函数I(·),以将时刻t时完全处于前置解码器缓冲器110中的那些图像加起来,如果有的话,再加上当前正在进入前置解码器缓冲器110的适当的部分图像。如果x为真,则函数I(x)就是“1”,否则为“0”。
2.低时延工作通过为初始前置解码器清除延迟选择较低数值,可以实现低时延工作。这会使得真正的低时延通过缓冲器,因为在正常工作中,没有任何清除延迟(tr(n)-tai(n))能超过初始清除延迟tr(0)。例如,如果图像n的最大清除延迟在最初到达时间等于最早到达时间时发生,则最大清除延迟就由tr(n)-tai,earliest(n)给出。但是,tr(n)=tr(0)+tc×Σi=1n[pre_dec_removal_delay(m)]]]>(参见D-11)且tai,earliest(n)=tc×Σi=1n[pre_dec_removal_delay(m)]]]>(参见D-12)因此,tr(n)-tai,earliest(n)=tr(0) (D-15)换句话说,设定初始低时延会产生稳定状态的低时延情况。然而,在低时延工作中,能够对偶尔出现的大图像进行处理是十分有益的,所述大图像的尺寸太大以至于不能在其指示的清除时间内清除。例如,这类大图像在场景转换时就能出现。通常这会导致“下溢”的情况。当遇到大图像时,清除的规则就要放松,以避免出现下溢。该图像在由下式给出的延迟清除时间tr,1d(n,m*)内清除tr,1d(n,m*)=tr(0)+tc×m*,(D-16)其中,m*的取值应使得tr,1d(n,m*-1)<tai(n)+te[B(n)]≤tr,1d(n,m*)。注意,前置解码器缓冲器110必须足够大才能够容纳这类大图像而不溢出。在收到这类大图像后瞬间,下一幅图像的清除时间应使得立即恢复低时延工作,如果必要的话,编码器可以通过在大图像之后立即跳过若干图像来加速这一过程。在比特流中没有明确的信令时也可以实现这种低时延工作。
3.比特流限制不应当允许前置解码器缓冲器110下溢或溢出。而且,除了独立的大图像之外的所有图像在其计算的清除时间之前都应完全处于前置解码器缓冲器110中。独立的大图像允许迟于其计算的到达时间到达,但仍要遵守溢出限制。在CBR模式下,比特到达不能有间隙。
a.下溢如果每幅图像的最终到达时间先于其清除时间,则要满足对所有t都要求BF(t)≥0的下溢限制。
taf(n)≤tr(n) (D-17)下溢限制对图像n的大小产生上界。图像大小不可以大于从到达开始到清除时间的时间间隔的等效比特。
b(n)≤be[tr(n)-tai(n)] (D-18)由于最初到达时间tai(n)通常是前一幅图像的大小和清除延迟的函数,所以对b(n)的限制也会随着时间变化。
b.溢出只要缓冲器充满程度曲线BF(t)绝对不超过缓冲器大小B,就能避免溢出。溢出限制就是初始前置解码器清除延迟不能大于缓冲器大小的等效时间,tr(0)≤te(B),而且,在正常工作中,清除延迟不能超过初始清除延迟。为了避免独立的大图像溢出,由下式限制图像大小
b(n)≤be[B-tai(n)] (D-19)c.恒定比特率(CBR)工作如果为确保数据连续到达前置解码器缓冲器110的输入端而应用附加限制,则CAT-LB模型工作在恒定比特率模式。结果,平均速率等于缓冲器速率R。如果图像n的最终到达时间不早于图像n+1的最早最初到达时间,则能满足这种附加限制。这一时间限制对b(n)设置了下界。
taf(n)≥tai,earliest(n+1)=te×Σi=1n[pre_dec_removal_delay(m)]---(D-20)]]>4.速率控制考虑编码器可以使用速率控制作为限制比特流的比特率变化的装置,以便以目标比特率生成高质量的编码图像。速率控制算法可以将VBR或者CBR作为目标,或可选地,速率控制算法甚至可以使用VBR方案的高峰值速率和使用CBR方案的平均速率作为目标。还可以将多种VBR速率作为目标。
这部分内容主要讨论VBV对速率控制的影响。在VBR VBV中,缓冲器不能溢出或下溢,但到达速率中可以出现间隙。为了满足这些限制,编码器必须确保对于所有t,下列不等式保持为真对所有t,0≤BF(t)≤B。 (D-21)使用等式D-14,则D-21变为对所有t,0≤Σn[I(taf(n)≤t<tr(n)×b(n)+I(tai(n)<t<taf(n))×be(t-tai(n))]≤B.---(D-22)]]>缓冲器充满程度B(t)是分段非减的时间函数,每个非减区间都受两个连续清除时间的限制。因此,完全可以确保在区间端点即清除时间内的一致性。特别地,只要在区间起点处(刚好在清除图像之后)防止了下溢,则可以完全防止下溢。区间端点处的溢出刚好在图像清除之前受到同样的控制。因此,关键点是清除时间。在tr-(n)时,图像n及可能的直到图像m>n的一些附加图像都位于缓冲器中(最后一幅图像可能仅部分位于缓冲器中),并符合(contribute to)等式D-22。所有早于图像n的图像已被清除。在tr+(n),图像n已被清除。
相应地,在对图像n编码时,速率控制目标就是,通过将比特分配给图像n及随后的其它图像这种方式,以使得在tr-(n)避免溢出、在tr+(n)避免下溢。而且,只要b(n)足够小,以至于te[b(n)]≤tr(n)-tai(n),则tr-(n)时的溢出以及tr+(n)时的下溢都可以防止。这通常是非常高的限制,速率控制方法还能通过其分配过程进一步限制b(n)。
此外,遵守上述HRD限制的比特流可以通过下述视频压缩编码器的方式生成。为简短起见,视频压缩编码器中与HRD过程没有直接关系的部分在此不作详细阐述。在一个实施例中,作为第一步,要确定图像n的前置解码器缓冲器清除时间。需要注意的是,连续的前置解码器缓冲器到达时间之间的差通常是相应图像捕获时间差的函数,可能会因为捕获顺序及编码顺序的不同而进行一些修正。这些变化对于本领域的来说是公知的。现在,只要确定图像n的前置解码器缓冲器清除时间,同时知道图像n之前编码图像的所有压缩图像大小,就可以确定b(n)的上界,即te[b(n)]≤tr(n)-tai(n)。在一个实施例中,遵守限制的编码器通常只能通过使用量化参数的反馈或前馈控制来确保不会超过该界限。
然而,对于产生高质量视频的特定应用来说,确保不超出以上提到的界限可能不是完全的速率控制解决方案。例如,根据上述当前图像的不等式使用所有可用比特的贪心算法可能会导致一些在图像n之后瞬间捕获的图像被跳过(用零比特压缩)。在例如广播电视或DVD著作的特定应用中这是令人无法接受的。
为了提供更好的改进方法,编码器可以通过某种方式为未来图像估计或分配所需的比特数。在本文中,与图像n有关的未来图像是那些在图像n之后将要压缩的图像。在一些例子中的未来图像在图像n的捕获时间之前就已经被捕获,如MPEG-1、MPEG-2及MPEG-4中的B图像的情况。估计或分配的比特数可以用于代替等式D-22中的实际比特数。据此可以确定b(n)的目标值或上、下限。这样就可以得出b(n)改进的目标值或b(n)的上、下限,并且可以为紧随其后的图像留下比特。估计或分配过程应包括清除时间tr(n)内将驻留在前置解码器缓冲器中的所有未来图像。如等式(D-22)所示,这取决于为图像估计或分配的比特数。
如果估计和分配过程表明在tr(n)或接近tr(n)时缓冲器将溢出或下溢,就要采取动作减少估计中涉及的一些或所有图像的比特数,以便使得最后的数值或限制位于一致性范围内。通常,这要涉及更改编码过程中所用的量化参数并重新估计生成的比特数。一旦确定了b(n)的目标值或限制,编码器就必须生成满足所述数值或限制(速率控制编码)范围内的比特数。对专业人员而言有很多公知的方法可以进行这种评估或分配过程及后续的速率控制编码过程,有利地,这些方法中的任意一种都可以与本发明结合使用。例如,估计过程可以基于过去用于给图像编码的实际比特数。再比如,速率控制编码可以使用目标与限制的结合,而且为了实现更好的速率及质量控制,还可以将图像比特目标分配到当前图像区域中。
III HRD的示例性语法表1中显示的下列语法是用来表现部分序列级信息318的语法范例。在一个实施例中,它包含在time_scale和num_slice_groups之间称为参数集RBSP的AVC语法中。

表1下表2给出了剩余序列级信息318和序列级信息311的语法范例。


表2接下来的表3给出了与HRD100共同使用的图像清除延迟信息312的语法范例,其中的HRD语法在rbsp_trailing_bits()语法单元之前插入。

表3此外,下面解释上述HRD语法单元范例性语义。如果nal_hrd_in_dicator==“1”,则多路复用的NAL和VCL比特流遵守以上指定的HRD语法。在这种情况下,HRD参数遵循参数集语法中的nal_hrd_indicator。如果nal_hrd_indicator==“0”,则不保证多路复用的NAL和VCL比特流符合HRD。如果vcl_hrd_indicator==“1”,则VCL比特流符合上面指定的HRD。在这种情况下,HRD参数遵循参数集语法中的vcl_hrd_indicator。如果vcl_hrd_indicator==“0”,则不保证VCL比特流符合HRD。
如果恒定比特率VBV指示符vbvi_cbr==“0”,则该比特流不符合CBR-VBV缓冲器,而vbvi_cbr==“1”则意味着该比特流符合CBR-VBV缓冲器,并且CBR-VBV缓冲参数遵循所述语法。可变比特率VBV指示符vbvi_vbr指明了该比特流符合的VBR VBV缓冲器的数目,并允许vbvi_vbr==“0”。在一个实施例中,当HRD配置信息指示低延迟工作时,vbvi_cbr与vbvi_vbr之和必须不大于一,即只支持一个VBV缓冲器。
采用通用VLC被编码的正整数Dre_dec_removal_delay指示了在将与前一幅图像相关的编码数据从HRD前置解码器缓冲器110中清除后,在将与该图像相关的编码数据从缓冲器中清除之前还要等待多少时钟节拍。这个数值也用于计算如上定义的比特到达前置解码器缓冲器的最早可能时间。
下面的表4给出了与HRD100共同使用的、图像清除延迟信息312的范例性缓冲周期消息语法。。


表4下文说明HRD的图像清除延迟信息312的范例性缓冲周期消息语义。参数集ID指示包括序列级HRD属性的参数集。pdrd_cbr和pdrd_vbr[k]字段表示以90kHz时钟为单位的前置解码器缓冲器的前置解码器清除延迟。每个pdrd_xxx值代表与图像相关的编码数据(包括全部NAL数据)的第一个字节到达前置解码器缓冲器的时间和与该图片相关的编码数据的清除时间之间的延迟。pdrd_xxx字段用于和以上指定的VBV缓冲器结合使用。Pdrd_xxx禁止取零值。
IV.HRD的示例性实施例和优点小结如上所述,在本发明的一个方面,对每一幅图像传送前置解码器缓冲器清除时延,这由在缓冲周期SEI消息中的语法元素pdrd_xxx和图像层中pre_dec_removal_delay[n]来表示。在常规的假想参考解码器中,从前置解码器缓冲器中清除图像的清除时间是能清除图像的最早可能时间,或者是基于固定的帧速率来进行计算的清除时间---应遵循处理来自MPEG-2标准情况下固定帧速率的一个特定例外的规则。但是,根据本发明的一个实施例,在通过将前置解码器缓冲器延迟(每一幅图像都传输该延迟)增加到上一幅图像的清除时间而计算出的时间内,将每幅图像从前置解码器缓冲器中清除。
因此,本发明的HRD能处理任何资源产生的可变帧速率。例如在处理MPEG-2格式的视频上电影的时候,MPEG-2的HRD具有基于图像头部的repeat_first_field标记的特殊清除时间规则,这导致清除的延迟在两个字段和三个字段之间交替。另一方面,在视频会议的情况下,当场景变化的编码难度改变时,帧速率可以改变。以上两种情况以及其它一些情况能通过传输以上提及的本发明的HRD实施例中的精确清除延迟来处理。简而言之,本发明的这一实施例统一了多种可变帧速率应用,而传统的HRD是用非统一的方式来处理所述多种可变帧速率应用的。
本发明的另一方面基于相同的清除时间延迟,对进入前置解码器缓冲器时的比特到达的延迟定时,这导致了受限的漏桶模式。作为本发明的这一方面的另一优点,同一个HRD模式可以处理低时延和可容忍时延两种情况。根据本发明的这个方面,HRD可以工作在低时延或在可容忍时延模式而不用明确标识其工作模式,原因在于解码器能在很短的时间里判定比特流速率变化导致的实际最大延迟。低时延应用能够通过将pdrd_xxx设置成合适的低值来设置低初始清除延迟。可容忍时延应用可以把初始延迟的值设成足够小的值,这样即便缓冲器在该时段内接收峰值速率的数据,缓冲器也不会溢出。
另外,本发明的另一方面包括两个层面的一致性。与传统的HRD不同,在一个实施例中,本发明的HRD在VCL遵守HRD或NAL+VCL遵守HRD的比特流中或者两者都遵守HRD的比特流中能够标明。当比特流从一个网络环境到另一个网络环境要被重设目的地(repurpose)或进行代码转换时,本发明的这个方面的具有重要意义。
在另一个实施例中,本申请的HRD对速率控制算法运用了与HRD相关的限制作为与时间相关的不等式,而不是与图像大小相关的不等式。
以下是使用本发明中的一个或多个方面可以实现的若干优点实现灵活的可变的帧速率工作;使得HRD前置解码器缓冲器到达时间与实时编码器所产生的那些能够更严密的匹配,这简化了实时多路复用问题;比特流可独立校验,HRD适应漏桶方法而且和多漏桶方法相一致;在HRD中描述的到达时间延迟不必在流环境中实现;为VCL、NAL+VCL或两者规定了HRD参数;NAL+VCL HRD参数可以添加到具有VCL HRD的现有比特流中;能精确控制通过低时延HRD时延数量。
本发明的不同实施例在此不作讨论但是对于本领域的普通技术人员来说是显而易见的。例如,在缓冲周期消息和图像信息中有许多方法可以表示前置解码器清除延迟。还可以预见,用于表示语法元素的准确比特数或用于将语法元素转换成诸如比特率和缓冲器大小的物理量的公式,在不偏离开本发明的范围的情况下可以进行修改。此外,计算最早可能到达时间的确切规则可以修改以允许时间上的一次偏移。而且,尽管参照特定实施例来描述本发明,本领域的普通技术人员应当意识到在不偏离本发明的精神和范围的前提下可以在形式和细节方面作出修改。无论从哪一点来看,描述的示例性实施例都应当认为是说明性的而不是限制性的。还应该认识到,本发明不限于这里所描述的特定示例性实施例,而是在不脱离本发明范围的情况下,能够进行多种调整、修改和置换。
权利要求
1.一种在图像序列中对每幅图像进行编码的方法,所述方法包括如下步骤对所述图像分配前置解码器缓冲器清除时间;对所述图像选择比特数,其中所述比特数的等效时间不大于基于所述图像的所述前置解码器缓冲器清除时间与所述图像进入前置解码器缓冲器的最初到达时间的差值;以及压缩所述图像以产生所述比特数。
2.根据权利要求1的方法还包括如下步骤分配用于压缩所述图像的最初比特数以及用于压缩一幅或多幅未来图像的一个或多个比特数,其中所述未来图像在当前图像的所述前置解码器缓冲器清除时间内位于所述前置解码器缓冲器中;基于所述分配步骤中的所述比特数,确定所述未来图像中的哪一幅在所述图像的所述前置解码器缓冲器清除时间内将位于所述前置解码器缓冲器中;如果须要进行改变以防止前置解码器缓冲器的溢出或者下溢,则改变用于压缩所述图像的所述最初比特数以分配用于压缩所述图像的最终比特数;以及使用所述最终比特数压缩所述图像。
3.根据权利要求1的方法还包括如下步骤确定对用于压缩所述图像的比特数以及用于压缩一幅或多幅未来图像的一个或多个比特数的第一限制,其中所述未来图像在所述当前图像的所述前置解码器缓冲器清除时间内位于所述前置解码器缓冲器中;用最初比特数压缩所述图像,其中所述最初比特数符合所述第一限制。
4.根据权利要求3的方法,其中所述第一限制是上限,且所述最初比特数不大于所述上限。
5.根据权利要求3的方法,其中所述第一限制是下限,且所述最初比特数不低于所述下限。
6.根据权利要求3的方法还包括如下步骤对用于压缩当前图像的比特数确定第二限制;其中所述第一限制是上限,而所述第二限制是下限,并且其中所述最初比特数不高于所述上限,且所述最初比特数不低于所述下限。
7.根据权利要求2的方法还包括如下步骤对用于压缩所述图像的所述最初比特数确定上限和下限,其中所述最初比特数不高于所述上限,且所述最初比特数不低于所述下限。
8.一种对图像序列中的图像进行编码的编码器,所述编码器包括配置用于压缩所述图像以生成比特数的压缩器;其中所述编码器被配置以将前置解码器缓冲器清除时间分配给所述图像并为所述图像选择所述比特数;并且其中所述比特数的等效时间不大于基于所述图像的所述前置解码器缓冲器清除时间与所述图像进入前置解码器缓冲器的最初到达时间的差值。
9.根据权利要求8的编码器,其中所述编码器分配用于压缩所述图像的最初比特数以及用于压缩一幅或多幅未来图像的一个或多个比特数,其中,所述未来图像在所述当前图像的所述前置解码器缓冲器清除时间内位于所述前置解码器缓冲器中;其中所述编码器基于所述比特数确定所述未来图像中的哪一幅在所述图像的所述前置解码器缓冲器清除时间内将位于所述前置解码器缓冲器中;如果须要防止前置解码器缓冲器的溢出或者下溢,则所述编码器改变用于压缩所述图像的所述第一比特数以分配用于压缩所述图像的最终比特数;其中所述压缩器使用所述最终比特数压缩所述图像。
10.根据权利要求8的编码器,其中所述编码器对用于当前压缩所述图像的比特数以及用于压缩一个或多个未来图像的一个或多个比特数确定第一限制,其中所述未来图像在所述当前图像的所述前置解码器缓冲器清除时间内位于所述前置解码器缓冲器中;其中所述压缩器使用最初比特数压缩所述图像,其中所述最初比特数符合所述第一限制。
11.根据权利要求10的编码器,其中所述第一限制是上限且所述最初比特数不高于所述上限。
12.根据权利要求10的编码器,其中所述第一限制是下限,且所述最初比特数不低于所述下限。
13.根据权利要求10的编码器,其中所述编码器对用于压缩当前图像的比特数确定第二限制,并且其中所述第一限制是上限而所述第二限制是下限,并且其中所述最初比特数不高于所述上限且所述最初比特数不低于所述下限。
14.根据权利要求9的编码器,其中所述解码器对用于压缩所述图像的所述最初比特数确定上限和下限,其中所述最初比特数不高于所述上限且所述最初比特数不低于所述下限。
15.一种对图像序列中的每幅图像进行编码的计算机软件产品,所述计算机软件产品包括用于为所述图像分配前置解码器缓冲器清除时间的代码;用于为所述图像选择比特数的代码,其中所述比特数的等效时间不大于基于所述图像的所述前置解码器缓冲器清除时间与所述图像进入前置解码器缓冲器的最初到达时间的差值;用于压缩所述图像以产生所述比特数的代码。
16.根据权利要求15的计算机软件产品包括分配用于压缩所述图像的最初比特数以及用于压缩一幅或多幅未来图像的一个或多个比特数的代码,其中所述未来图像在所述当前图像的所述前置解码器缓冲器清除时间内位于所述前置解码器缓冲器中;用于基于所述比特数确定在所述图像的所述前置解码器缓冲器清除时间内所述未来图像中的哪一幅将位于所述前置解码器缓冲器中的代码;如果须要防止前置解码器缓冲器的溢出或者下溢,则改变用于压缩所述图像的所述最初比特数以分配用于压缩所述图像的最终比特数的代码;用于使用所述最终比特数来压缩所述图像的代码。
17.根据权利要求15的计算机软件产品包括对用于压缩所述图像的最初比特数以及用于压缩一幅或多幅未来图像的一个或多个比特数确定第一限制的代码,其中所述未来图像在所述前置解码器缓冲器清除时间内位于所述前置解码器缓冲器中;用于使用最初比特数来压缩所述图像的代码,其中所述最初比特数符合所述第一限制。
18.根据权利要求17的计算机软件产品,其中所述第一限制是上限,且所述最初比特数不高于所述上限。
19.根据权利要求17的计算机软件产品,其中所述第一限制是下限且所述最初比特数不低于所述下限。
20.根据权利要求17的计算机软件产品还包括对用于压缩当前图像的比特数确定第二限制的代码;其中所述第一限制是上限而所述第二限制是下限,其中所述最初比特数不高于所述上限且所述最初比特数不低于所述下限。
21.权利要求16的计算机软件产品还包括对用于压缩所述图像的所述最初比特数确定上限和下限的代码,其中所述最初比特数不高于所述上限且所述最初比特数不低于所述下限。
全文摘要
一方面,本发明提供了一种对图像进行编码的方法。该方法适用于图像序列中的每幅图像,其包括以下步骤为图像分配前置解码器缓冲器清除时间;对图像选择比特数,其中所述比特数的等效时间不大于基于该图像的前置解码器缓冲器清除时间与该图像进入前置解码器缓冲器的最初到达时间的差值;压缩该图像以产生所述比特数。该方法还包括如下步骤分配用于压缩该图像的最初比特数和用于压缩一幅或多幅未来图像的一个或多个比特数,其中所述未来图像在当前图像的前置解码器缓冲器清除时间内位于所述前置解码器缓冲器中。
文档编号G06K9/36GK1871854SQ200480025247
公开日2006年11月29日 申请日期2004年8月24日 优先权日2003年9月5日
发明者E·维希托, D·T·霍昂 申请人:康奈克森特系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1