利用缓存器控制的视频编码器和编码方法

文档序号:6419117阅读:312来源:国知局
专利名称:利用缓存器控制的视频编码器和编码方法
技术领域
本发明的背景本发明涉及视频数据的缓存,较具体地涉及采用推塞型数据流(push dataflow)方式向观众提供的视频数据的缓存。推塞型数据流是这样一种技术,其中诸如视频、文本和/或画面等信息数据是在不作互动的情况下广播给观众的(可能的例外是接收方事先建立了一个信息文档)。
在推塞型数据流通信方案中,为了限制视频解码器所需的存储量要求,需要有一个视频传输率(rate)缓存器模型。利用该缓存器模型,可以把视频编码器限制得能产生可以由解码器的预定缓存器存储量来解码的比特流。
活动图象专家组(MPEG)所公布的MPEG-4视频最终委员会草案(FCD)No.N2202目前没有规定能把存取单元大小(例如编码的“视频物体平面”(VOP)的大小)、解码时间、以及视频数据流的比特率与用于缓存相应数据的缓存器存储量相关联起来的视频传输率缓存器模型。该FCD在此引用作为参考。该FCD关于视频缓存检验器(VBV)的附录D对于上述信息只是讨论了一个空的位置保持器。MPEG-4系统FCD(N2201)定义了一个缓存器模型,该FCD也在此引用作为参考。但并没有以与视频数据相容的方式给出各种有关场的规范性(normative)定义。
给出一个与上述附录D兼容且能明确表述视频FCD和系统FCD的句法之间的关系的缓存器模型将是有益的。这样的缓存器模型应该能利用适当级别的缓存器管理技术容易而直接地实现对视频解码器所需存储量要求的限制,从而使得能成功地提供推塞型数据流。本发明即提供具有上述和其他优点的视频传输率缓冲器模型和管理技术。
本发明的概述根据本发明提供了一种方法和设备,使得例如视频等数据能够用推塞型数据流方式广播,而不会给解码器处的用于被推塞的数据的数据传输率缓冲器出现上溢(overflow)或下溢(underflow)。在编码器处,对传送给解码器的数据进行编码,以提供一个输出比特流。在编码器处模拟解码器的数据传输率缓冲器。该模拟被用来控制输出比特流,以防止解码器缓存器的上溢或下溢。例如,可以通过监视一个以相反于解码器缓存器的方式工作的互补编码器缓存器并将它逆转来提供模拟。公开了各种不同的技术来控制编码器处产生的数据量,使得数据被保持在解码器缓存器的限制范围内。这些技术包括,当编码器处的模拟表明解码器缓存器已经或者将要太满时,将减小量化水平以产生大的VOP或者在VOP尾端输出一些充填比特。当模拟表明解码器缓存器已经或者将要太空时,则编码器可以增大量化水平来产生较少的比特,或者延迟下一个VOP的产生,或者令一些高频系数变为零,来减少为每个VOP产生的比特数。
附图的简单说明

图1是缓存器占用率(b(t)<B)对解码时间(t)的关系曲线图;以及图2是说明根据本发明的编码器和解码器设备的方框图。
本发明的详细说明MPEG-4视频缓存检验器(VBV)是一种算法,用于通过检测比特流加上传送率函数R(t)来检验推塞型数据流情况下所需的传输率缓冲器存储量小于所述的缓存器大小。如果一个视频比特流由多个视频物体(VO)组成,每个VO有一个或几个视频物体层(VOL),则数据传输率缓冲器模型将独立地应用于每个VOL(利用该VOL所特有的缓存器大小和传送率函数)。
本发明对被编码成I(帧内)、P(预测)和B(双向)VOP的组合的自然视频信号应用缓存器检验技术,它可以推广到覆盖全视频句法以及动画(sprite)和合成视频物体。根据本发明,视频编码器将控制其输出比特流使之符合一个视频缓存检验器(VBV)的要求。该VBV的定义如下1、VBV的大小由VOL头部中的场vbv-buffer_size(VBV缓存器大小)以16384个比特为单位来规定。vbv-buffer_size为0是禁止的。“B”的定义是16384×vbv-buffer_size,它是以比特为单位的VBV大小。注意,在这里所公开的实施例中,VBV缓存器的最大大小为4G比特。vbv-buffer_size的值仅在一个visual_object_sequence_end_code(视频物体序列结束码)之后才可改变。
2、编码器所“看到”的瞬时视频物体层信道比特率用Rvol(t)表示,其单位为bps(比特每秒)。如果VOL头部中存在bit_rate(比特率)场,则它定义了峰值比特率(单位为400bps,bit_rate为0是禁止的),以使Rvol(t)=400×bit_rate。注意,Rvol(t)仅计及当前VOL的视频句法(参见下面对di的定义)。如果该信道以串行时间复用方式包含了一些其他的VOL,或者如ISO/IEC14496-1那样以编码器所看到的总瞬时信道比特率R(t)来定义,则有 3、开始时VBV缓存器是空的。在找到第一个VOL头部之后,则在紧跟于该VOL头部后面的初始VOP解码之前,检查vbv_occupancy(VBV占用率)场以确定VBV缓存器的初始占用率,其单位为64比特。VBV缓存器中的第一个比特是包含了含有vbv_occupancy场的VOL头部的VOP(将在下面“4”中定义)的第一个比特。后继各VOL头部中后面的vbv_occupancy场与去除包含VOL头部的VOP之前的运行累积的缓存器占用率(bi+di,后面将有定义)之间的差值应该小于64比特。
4、定义di为第i个VOP的大小,单位为比特,其中i为VOP序号,按解码次序依次增加1。图1示出缓存器占用率(b(t)<B)对解码时间(t)的关系曲线,其中标出了参数di。较准确地说,di是视频句法比特的数目,其起始计数点可以是以下两种情况之一(1)前一视频物体、静止纹理(texture)物体、网孔(mesh)物体或脸部物体后的最后一个比特(排他的)(也要除去任何紧接在该比特后面的充填码字);或者(2)从视频物体序列开始码的第一个比特(包括其在内的)(对于视频比特流第一个VOP的情形)到当前VOP的最后一个比特(包括其在内的)(包括位于该VOP尾部的任何充填码),包括位于该VOP前面的视频物体头部、物体层头部和VOP的头部群。
注意,由于开始码的对准,编码VOP的大小(di)永远是8比特的倍数。
5、设ti(图1)是解码序号为i的VOP的解码时间。在时间ti,瞬间从传输率缓存器除去VOP i的所有比特(di)。这一“瞬间除去”性质是VBV缓存器模型与实际传输率缓存器的区别。
6、τi是VOP i的合成(composition)时间(或者,在非合成器解码器中,τi是提供(presentation)时间)。对于一个视频物体平面,τi的定义为VOP_time_increnment(VOP时间增量,其单位为一秒钟的l/vop time_increment_resolution(VOP时间增量分辨率))加上由module_time_base(模时间基)所规定的全部时间(秒数)的累积数。对于隔行扫描视频信号,一个VOP由两个场的各个行组成,τi是第一个场的合成时间。对于一个VOP,合成时间与解码时间之间的关系为
ti=τi-(((vop_coding_type=BVOP)|low_delay) 0:mi)其中low_delay在VOL不含B-VOP时为真(1)。如果存在B-VOP,则将延迟锚VOP的合成,直到已合成了所有相继的B-VOP。这一延迟时间为mi=τf-τp,其中f是VOPi的最近将来的锚VOP的序号,P是VOPi的当前(或最近过去)的锚VOP的序号。
下面的例子将说明,对于一个含有数目可变的连续B-VOP序列,如何来确定mi解码次序I0P1P2P3B4P5B6P7B8B9P10B11B12提供次序I0P1P2B4P3B6P5B8B9P7B11B12P13在该例子中,假定了VOP_time_increment=1,modulo_time_base=0。下标I为解码次序。
iτitimi0 0 0_1=_111 1 1_1=0 12 2 2_1=1 13 4 4_2=2 24 3 3 25 6 6_2=4 26 5 5 27 9 9_3=6 38 7 7 39 8 8 310 1212_3=9311 1010312 111137、定义bi为紧接着从传输率缓冲器中除去VOPi之后的缓存器占用率(单位比特)。图1中标出了参数bi。利用上述定义,可以用递推法来确定bi
b0=64×vbv_occupancy-d0bi+1=bi+∫titi+1Rvol(t)dt-di+1i≥0]]>8、传输率缓冲器模型要求VBV缓存器永远不会上溢或下溢,也即0≤bI以及bi+di≤B对于所有i利用真实值算法来计算bi,使得误差不会累积。
编码VOP的大小必须永远小于VBV缓存器的大小,也即di<B对于所有i。
对编码器的一个要求是它能产生既不会使解码器的VBV缓存器上溢又不会使之下溢的比特流。这意味着编码器必须知道解码器所“看到”的瞬时信道比特率Rvol,decoder(t)(其中“decoder”代表解码器)。如果在某一特定比特进入信道的时间t,编码器的比特率Rvol, encoder等于Rvol,decoder(t+L),则一个信道将具有恒定的延迟,其中该比特将在(t+L)时间被接收到,L是一个常数。对于恒定延迟信道,编码器可以利用在其本机估算的Rvol,decoder(t)来模拟VBV的占用率(其中“encoder”代表“编码器”),并据此来控制每个VOP的比特数di,从而防止上溢或下溢。
VBV模型假定了一恒定延迟信道。这使得编码器能利用Rvol, decoder(t)来产生既不会使缓存器上溢又不会使缓存器下溢的VOL比特流。注意,这里的Rvol(t)被定义为上述第“2”点中的Rvol,encoder(t)。
图2以简化方框图的形式示出了编码器和解码器。要编码的数据被输入给与编码器数据传输率缓冲器22相耦合的编码器处理器20。缓存器22以互补于解码器30的数据传输率缓冲器32的方式工作。通过监视数据传输率缓冲器22,编码器处理器20便能模拟解码器的数据传输率缓冲器32。
编码器处理器向一个发送机24提供输出比特流,发送机24通过一个通信信道26把该比特流发送给一个接收机28。接收机以普通方式把接收到的比特流提供给解码器30。解码器30对该比特流解码以提供所需的输出数据。
下面将说明,在非恒定延迟网络环境下如何来处理实时视频数据。这一处理只是一个假设的模型,它不是如何把MPEG-4比特流连接到非恒定延迟信道中去的一个要求或建议。如果该信道不具有恒定的延迟,以使得1、在网络接口和中间节点(例如ATM或IP网络中使用的开关或路由器)上存在未知、可变的逐个数据包的排队延迟;2、信息以带有时间标记的数据包的形式传送;以及3、数据包的最小信道等待时间(latency)与最大信道等候时间之间的差值是有界限的(例如通过服务质量协商确定)。
那么,可以利用一个位于解码器前面的去跳变缓存器近似一个恒定延迟信道。该去跳变缓存器将保持每一个可变的等候时间的数据包,直到过去最大信道等候时间之后才把相应的数据包释放给编码器(根据数据包的时间标记确定保持的时间长度)。这样做之后,该信道将具有等于最大信道等候时间的恒定延迟。
句法修改本发明通过给VOL头部加上一个vbv_occupancy场(26比特)而修改了MPEG-4标准的句法。这个整数值是刚除去跟随在VOL头部后面的第一个VOP之前的VBV占用率,其单位为64比特。这个量的作用是为VBV缓存器的充满程度提供初始条件。
为了防止MPEG-4系统(ISO/IEC14496_1)与MPEG-4视频(ISO/IEC 14496_2)之间的信息重复,还为了能用一个作为独立实体的基础视频流来规定一个缓存器模型,加上了一个vbv_parameters(VBV参数)标志来控制在VOL头部中能包含VOP_rate_code(vop频率码)、bit_rate(比特率)、low_delay_vbv_size、和vbv_occupancy。如果在一个密封复用系统(encapsulating systemmuleiplex)中不存在等价的信息,则对于一个推塞型数据流视频比特流vbv_parameters的值将为“1”。句法中将保留vol_control_parameters比特,以控制在VOL头部中能包含chroma_format(色彩格式)和aspectratio_information(幅面比例的信息)这两个场。
当存在bit_rate和vbv_size场时,FCD COL句法包含潜在的开始码竞争问题(因为可能发生连续出现23个或更多个0比特的情况)。为了避免这一问题,加上了一些标记符比特(这些比特的值永远为“1”)。被这些标记符比特分开的各个场按如下定义bit_rate =(bit_rate_msbs<<12)|bit_rate_lsbs;vbv_size =(vbv_size_msbs<<10)|vbv_size_lsbs;vbv_occupancy =(vby_occupancy_msbs<<15)|vbv_occupancy_lsbs;
这样得到的句法如表1所示表1
关于表1的注释1、MPEG-4视频FCD中没有定义aspect_ratio_information和VOP_rate_code的编码。
2、为了使用带有推塞型数据流模型的编码比特流,一个规范性要求是,vbv_parameters必须设定为“1”,或者,如下面第4项所定义的等效信息必须被包含在系统层中。
3、如果提供了VOP_rate_code,则由VOP_time_increment所规定的合成时间与累积的modulo_time_base之间的差值必须是与VOP_rate_code相关的帧周期的精确整数倍。在该情形中,VOP_time_increment resolution的宽度必须增加一个比特,以准确地代表59.94HZ(即60000/1001HZ)。
与MPEG-4系统的关系下面公开的内容定义了MPEG-4系统(ISO/IEC 14496-1)基础流接口与视频解码器(或编码器)的术语、语意和句法之间的关系,使得系统解码器模型(SDM)能与视频缓存器检验器相一致。在此情形中,视频VBV缓存器和SDM解码器缓存器(DBr)有相同的语意。在一个集成的视频/系统解码器模型中,这两个缓存器是同一个缓存器。
1、一个自然视频存取单元是一个编码VOP。一个编码VOP的大小(di)和精确合成已在前面参考图1进行了定义。
2、用来确定物体时钟参考(OCR)、解码时间标记(DTS)和合成时间标记(CTS)的物体时间基(OTB)与用来确定VOP_time_increment和modulo_time_base的时间基是相同的。同步层(Sync Layer)的timestampResolution(时间标记分辨率)和OCRResolution(OCR分辨率)必须是VOP_time_increment_resolution的整数倍,这样才不会损失时间精度,使所有时间计算都能在整数算法中准确。
3、合成时间标记等于τi加上一个常数(K),即CTSi=ni×timeStampResolution+timeStampResolution×VOP_time_incrementiVOP_time_increment_resolution+K]]>其中ni是从初始VOL头部开始的累计modulo_time_base值。
4、从CTS确定解码时间标记的方法类似于从τi计算ti的方法,即DTSi=CTSi-(((vop_coding_type==BVOP)||low_delay) 0:
mi)这个公式确定了解码是瞬时的,而且只有DTS与CTS之间的差值反映了各个锚VOP的重新排序。注意,当low_delay为0时(当上述条件表达式为真时)DTS仅出现在锚VOP上。
5、这里将定义在此时编码器本机物体时间基的值与DTSi值之间的关系。假设含有一个VOP头部的存取单元的第一个比特在该VOL头部中规定的vbv_occupancy和时间OCRi的情况下被存储在VBV(或SDM DB)中,则vbv_occupancy=164∫OCRIDTSiRvol(t)dt]]>对于OCRResolution和timestamp Resolution的一个隐含要求是,vbv_occupancy的计算要精确到其最接近的整数。
6、如果系统层(SL)的RandomAccessPointFlag(随机存取点标志)设定为“1”,则表明开始于这个SL数据包的存取单元中存在有一个VOL头部。
7、bufferSizeDB(缓存器大小DB)的DecoderConfigDeseriptor(解码器构形描述符)的值等于2048×vbv_buffer_size。maxBitrate(最大比特率)场的值必须是400×bit_rate(比特率)。
下面将给出由vbv_information(VBV信息)比特所控制的VOL头部信息与MPEG-4系统层中规定的各种句法实体之间的对应关系。如果MPEG-4标准的两个部分重复了该信息,则不允许有任何不一致。
1、Vop_rate_code(VOP传输率码)由同步层compositionUnitDuration(合成单元持续时期)和timeScale(时间标尺)代表。其中time Scale必须是VOP_time_increment_resolution的整数倍。
2、bit_rate和vbv_size由DecoderConfigDescriptor中的maxBitrate和bufferSizw DB指明。
3、vbv_occupancy由前面定义的OCR与DTS之间的差值间接地指明。
4、low_delay由第一个I-VOP的DTS隐含性地规定。如果存在DTS(且不等于PTS),则low_delay=0,否则low_delay=1。
MPEG-4 VBV与MPEG-2 VBV之间的比较
MPEG-2和MPEG-4 VBV模型都规定了,传输率缓冲器不可以上溢或下溢,以及编码的画面(VOP)要瞬时地从缓存器去除。在这两个模型中,都规定了在紧接于一个编码的画面/VOP以包括在画面/VOP的前面的所有较高等级的句法。
MPEG-2视频具有恒定的帧周期(虽然比特流可以既含有帧画面又含有场画面,而且帧画面可以借助于repeat_first_field(重复第一场)标志来采用显式的2:3下拉)。用MPEG-4的语言来说,这样的帧率可能是合成器的输出(用MPEG-2的语言来说这是显示处理的输出,而MPEG-2并没有对此作出规范性的定义)。这个输出帧率加上MPEG-2的picture_structure(画面结构)和repeat_first_field标志精确地定义了解码处理与显示处理之间经过的相继解码画面(帧或场均可)之间的时间间隔。
一般,MPEG-2比特流包含B画面(我们假定MPEG-2的low_delay=0,对于low_delay=1的情况请参见下节)。这意味着各画面的编码次序与显示次序是不同的(因为一个B画面所使用的两个参考画面在编码次序上都必须位在该B画面的前面)。MPEG-2 VBV(以及MPEG-2系统T-STD)规定,B画面是在同一时间(瞬时)被解码和提供的,为了能做到这一点锚画面要被重新排序。这与前面定义合成时间t1中规定的重新排序模型是相同的。
如果由vop_time_increment和累计的modulo_time_increment所给出的MPEG-4VOP时间标记与序列MPEG-2画面的提供时间一致,则采用了所提议MPEG-4VBV缓存器模型的假设MPEG-4解码器将准确地模仿采用了MPEG-2 VBV缓存器模型的假设MPEG-2解码器。这里我们假定编码的画面/VOP都采用了这两个标准中的共同子组(帧结构的画面以及解码器上没有3:2的下拉,也即,repeat_first_field=0)。例如,如果MPEG-2序列以29.97Hz(NTSC中的画面传输率)编码,则由于MPEG-2中不允许画面跳越(当low_delay=0时),所以vop_time_increment_resolution必须为30000,并且按提供次序的各相继VOP之间的VOP_time_increment改变必须为1001。
类H.263缓存器模型在H.263中,不存在B-VOP,解码与提供之间也不存在合成单元的重新排序。
H.263的假设参考解码器(HRD)可以等价于MPEG-4 VBV。在类H.263缓存器模型中,VBV缓存器大小按下式计算vbv_buffer_size=A+BPPmaxKb×1024(比特),其中,(BPPmaxKb×1024)是经协商用于比特流的每个画面的最大比特数,以及A=4×Rmax/P,其中Rmax是连接期间最大视频比特率(每秒的比特数),P是画面频率,按共同中间格式(CIF)规定其等于29.97Hz,对应于vop_time_increment_resolution=3000和Δvop_time_increment=1001。
起初,VBV是空的。VBV按CIF间隔检查。如果发现缓存器中至少有了一个完整的编码VOP,则立即除去按比特流(或解码),次序来说是最早的VOP的所有数据。紧接着除去上述数据之后,缓存器占用率必须小于A。在该情形中,第(i+1)个编码画面的比特数di+1必须满足di+1≥bi+∫titi+1R(t)dt-A]]>bi是在紧接着从缓存器除去第i个编码画面之后的缓存器占用率;ti是从VBV缓存器除去第n个编码画面的时间;以及R(t)是时间t的视频比特率。
MPEG-4 VBV模型与H.263模型的重要区别是,编码器为比特流中的每个VOP规定了合成时间ti,这再次意味着编码器必须知道R(t)和A,解码器所“看到”的瞬时比特率。而且,如果假定是恒定延迟信道,那末上述这个假设是成立的。
low_delay=1时的MPEG-2模型与HRD有一些相似点。第一,不使用B画面,所以解码和提供的次序相同。第二,规定了一个画面周期(但不一定是29.97Hz),用来检查缓存器。如果下一个要解码的画面在下一个画面周期内还没有被完全接收到(这种画面叫做“大画面”),则在每个为画面周期整数倍的时间都要重新检查一次缓存器,直到编码画面完全存储到缓存器中。然后将瞬时地解码和显示该大画面。在大画面尚未完全接收到的那些画面周期内,解码器输出端将保持前一个图像。编码器仍然负责防止上溢和下溢,而大画面的各个MPEG-2 temporal_reference场与前面的这个场之间的差值就是大画面前面那个画面的显示持续时间(以帧周期位单位)。
延伸至完整视频句法覆盖完整的视频句法需要延伸到动画、静止纹理物体、网孔物体、和脸部物体。在此情形下VBV将支持visual buffer verifier(视频缓存器检验器)。
动画MPEG-4中规定了基本动画、低延迟动画、和可缩放动画。对于动画比特流的产生不存在概念上的问题。不过,为了充分利用解码器中较大的动画存储器,可以采用大的vbv_size。
静止纹理物体虽然不能直接合成一个静止纹理物体,但它是单个存取单元。静止纹理物体被用作后面解码器(例如网孔解码器)的输入。在推塞型数据流情形中,静止纹理物体没有缓存器参数或时间标记来控制该可视物体。可能必须给StillTextureObject(静止纹理物体)加上如下面表2所示的句法表2
time_stamp_fraction的比特数由不可能为零的time_stamp_fraction_bits规定。
网孔和脸部物体网孔视频物体的存取单元是网孔物体平面。脸部视频物体的存取单元是脸部物体平面。由于不需要重新排序,所以ti=τi。
这两种物体有一个共同的时间信息规范temporal_header()(时间头部())。当网孔/脸部物体是内部编码的时,temporal_header()可以任选地规定一个帧传输率和一个时间标记(一个IEC461时间码规定了小时数、分数、秒数和帧数),这里的时间标记规定了网络/脸部物体平面的合成时间。时间码的原点(00:00:00:00)必须与MPEG-4系统(ISO/IEC 14496 1)中对DTS和CTS所使用的时间原点相一致。物体平面之间的时间等于1+∑number_of_frames_to_skip(要跳越的帧数)乘以帧周期。这使得能从前一个内部的网孔/脸部物体的CTS构筑出一个绝对的CTS。
为了把缓存器模型应用于网孔/脸部物体的视频比特流,需要给MeshObject(网孔物体)和FaeeObject(脸部物体)加上由vbv_parameters(除了low_delay和VOP_rate_code之外)控制的VBV参数,如下面表3所示表3
传输率缓冲器的管理由于防止解码器VBV缓存器上溢或下溢是编码器的责任,所以编码器必须模拟解码器VBV缓存器。被模拟的解码器VBV缓存器不能太满或太空。
为了防止解码器VBV缓存器下溢,编码VOP的全部数据必须在它们的解码时间之前完全发送给解码器缓存器。假定第i个VOP的编码从时间tIe开始,而其解码时间为ti。则在第i个VOP被编码后,传送的数据量等于tIe时间的编码器缓存器饱满度(用ebIe表示)加上该VOP的编码大小(di)。这个数据量必须小于或等于从信道接收到的数据量ebie+di≤∫tietie+LRvol,decoder(t)dt,]]>
其中有解码时间ti=tie+L。对于恒定延迟信道,存在Rvol,decoder(t)=Rvol,encoder(t_L)(下标中的decoder和encoder分别代表解码器和编码器)。
所以,ebie+di≤∫tie-LtieRvol,encoder(t)dt]]>因此,编码器缓存器在时间tie的饱满度受下述上限的限制ebie≤∫tie-LtieRvol,encoder(t)dt-di=T2.]]>对于具有已知最小传送率Rvol,min这种类型的信道,可以把T2设定为∫tietie+LRvol,decoder(t)dt-di]]>的低限值,即设定T2=L·Rvol,min-di.
为了防止解码器缓存器的上溢,解码器缓存器的饱满度在紧接着的除去VOPi之前的时间ti必须小于解码器缓存器大小B。这个饱满度可以表示为tie时间的解码器缓存器饱满度bie加上从时间tie到达ti之间进入解码器VBV缓存器的比特数(∫tietie+LRvol,decoder(t)dt)]]>减去从时间tie到ti之间从解码器缓存器移出的比特数。由于VOPi前面的所有比特流数据都必须在能对VOPi解码之前被用完,所以移出的比特数等于在紧接着添加VOPi之前的tie时间的编码器缓存器占用率ebie与时间tie时的解码器缓存器占用率bie之和。由于VOPi还没有添加给编码器缓存器,所以上述最后两个量(ebie与bie)代表了VOPi之前的比特流数据。因此,解码器缓存器中的总比特受下式限制bie+∫tietie+LRvol,mdecoder(t)dt-(ebie+bie)<B]]>或者∫tietie+LRvol,decoder(t)dt-ebie<B.]]>因此,tie时间的encoder_buffer_fullenss(编码器缓存器饱满度)的下限受下式限制ebie>∫tietie+LRvol,decoder(t)dt-B=T1.]]>前面关于恒定延迟信道的论点在这里也适用。而且,对于具有已知最大传送率Rvol,max这种类型的信道,也可以把TI设定为∫tietie+LRvol,decoder(t)dt-B]]>的上限,也即设定TI=L·Rvol,max-B.ebie的上下限T2和T1将在数据传输率控制算法中受到检验,相应的校正行动是执行VOP的比特分配和调节编码单元(例如VOP或宏块等)的量化水平。
如果模拟的解码器VBV缓存器变得太满或太空,则编码器必须采取以下的校正行动1、如果模拟的解码器缓存器变得太满(即编码器的VBV缓存器太空),则编码器可以通过下述处理来进行校正(a)减小量化水平来产生大VOP,或者
(b)在VOP尾端输出一些充填比特。注意,产生较大的VOP将减小解码器VBV的占用率。
2、如果模拟的解码器VBV变得太空(即编码器的VBV缓存器太满),则编码器可以通过下述处理来进行校正(a)增大量化水平来产生较少的比特,或者(b)延迟产生下一个VOP(通常称作跳越VOP),或者,(c)通过令高频系数为零来减少所产生的比特数/VOP。
现在应该可以看到,本发明提供了一种用于在推塞数据流情况下限制视频解码器的存储器要求的视频缓存器模型。本发明的视频缓存器模型对视频编码器进行了约束。使之产生能用预定存储量的缓存器来解码的比特流。这样便有效地适应了各种推塞型数据流的应用。
权利要求
1.用于使推塞型数据流不会给在解码器的用于被推塞的数据的一个预定存储量的数据传输率缓冲器造成上溢或下溢的编码器设备,它包括一个能对要传送给一个解码器的数据进行编码的处理器,上述处理器将提供一个输出比特流;上述处理器模拟上述解码器的数据传输率缓冲器,并响应该模拟来控制上述输出比特流,以防止解码器缓存器的上溢或下溢。
2.根据权利要求1的编码器设备,其中上述推塞型数据包括含有帧内(I)、预测(P)和双向(B)视频物体平面(VOP)的视频数据。
3.根据权利要求2的编码器设备,其中上述处理器通过至少一个下述手段来控制上述输出比特流在不同的VOP之间分配若干比特;和调节构成上述VOP的编码单元的量化水平。
4.根据权利要求3的编码器设备,其中的解码器数据传输率缓冲器包括一个视频缓存检验器(VBV)缓存器。
5.根据权利要求4的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太满时,则将减小上述编码单元量化水平。
6.根据权利要求5的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则将增大上述编码单元的上述量化水平。
7.根据权利要求5的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则将延迟下一个VOP的产生。
8.根据权利要求5的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则将令上述编码器单元的高频系数为零,以减少为每个VOP产生的比特数。
9.根据权利要求4的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当判定解码器VBV缓存器已经或者将要太满时,则将在至少一个VOP的尾端添加一些充填比特。
10.根据权利要求9的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或将要太空时,则将增大上述编码单元的上述量化水平。
11.根据权利要求9的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或将要太空时,则将延迟下一个VOP的产生。
12.根据权利要求9的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或将要太空时,则将令上述编码单元的一些高频系数为零,以减少为每个VOP产生的比特数。
13.根据权利要求4的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或将要太空时,则将增大上述编码单元的上述量化水平。
14.根据权利要求4的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或将要太空时,则将延迟下一个VOP的产生。
15.根据权利要求4的编码器设备,其中上述处理器监视着模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则将令上述编码单元的高频系数为零,以减少为每个VOP产生的比特数。
16.根据权利要求1的编码器设备,其中上述处理器通过监视一个以互补于解码器缓存器的方式工作的上述编码器的数据传输率缓冲器来模拟解码器的数据传输率缓冲器。
17.根据权利要求16的编码器设备,其中上述编码器和解码器的数据传输率缓冲器包括视频缓存检验器(VBV)缓存器。
18.一种用于使推塞型数据流不会给在解码器的用于被推塞的数据的一个预定存储量的数据传输率缓冲器造成上溢或下溢的方法,该方法包括以下步骤对要传送给一个解码器的数据进行编码,上述编码步骤将提供一个输出比特流;模拟上述解码器的上述数据传输率缓冲器以及响应上述模拟步骤来控制上述输出比特流,以防止解码器缓存器的上溢或下溢。
19.根据权利要求18的方法,其中上述推塞型数据包括含有帧内(I)、预测(P)和双向(B)视频物体平面(VOP)的视频数据。
20.根据权利要求19的方法,其中上述输出比特流被至少下述一个手段控制在不同的VOP之间分配若干比特,和调节构成上述VOP的编码单元的量化水平。
21.根据权利要求20的方法,其中的解码器数据传输率缓冲器包括一个视频缓存检验器(VBV)缓存器。
22.根据权利要求21的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太满时,则减小上述编码单元的量化水平。
23.根据权利要求22的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则增大上述编码单元的量化水平。
24.根据权利要求22的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则延迟下一个VOP的产生。
25.根据权利要求22的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则令上述编码单元的一些高频系数为零,以减少为每个VOP产生的比特数。
26.根据权利要求21的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太满时,则在至少一个VOP的尾部添加一些充填比特。
27.根据权利要求26的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则增大上述编码单元的量化水平。
28.根据权利要求26的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则延迟下一个VOP的产生。
29.根据权利要求26的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则令上述编码单元的一些高频系数为零,以减少为每个VOP产生的比特数。
30.根据权利要求21的方法,它还包括以下步骤监视模拟的解码VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则增大上述编码单元的量化水平。
31.根据权利要求21的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则延迟下一个VOP的产生。
32.根据权利要求21的方法,它还包括以下步骤监视模拟的解码器VBV缓存器,并且当模拟表明解码器VBV缓存器已经或者将要太空时,则令上述编码单元的高频系数为零,以减少为每个VOP产生的比特数。
33.根据权利要求18的方法,其中上述模拟步骤通过监视一个以互补于解码器缓存器的方式工作的编码器数据传输率缓冲器来模拟解码器的数据传输率缓冲器。
全文摘要
提供了一种技术,用来使得准备用推塞型数据流方式广播的数据,例如视频数据,不会给解码器(30)的推塞数据数据传输率缓冲器(32)造成上溢或下溢。在编码器(20)处,对要传送给解码器(30)的数据进行编码,提供一个输出比特流。在编码器处,模拟(22)解码器的数据传输率缓冲器(32)。该模拟被用来控制输出比特流,以防止解码器缓存器(32)的上溢或下溢。例如,可以这样来提供模拟:监视并逆转一个以相反于解码器缓存器(32)的方式工作的互补式解码器缓存器(22)。为了把编码器产生的数据量控制得能使数据保持在解码器缓存器(32)的限制范围内,公开了各种不同的技术。
文档编号G06T9/00GK1315116SQ99809824
公开日2001年9月26日 申请日期1999年5月28日 优先权日1998年6月19日
发明者陈学敏, 罗伯特·O·艾弗瑞格 申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1