用于包交换视频电话应用的有效视频包化方法

文档序号:7679180阅读:244来源:国知局

专利名称::用于包交换视频电话应用的有效视频包化方法
技术领域
:本发明涉及包交换视频电话应用中的视频包化。
背景技术
:视频片通常以再同步标记(RM)或片标头开始,所述再同步标记或片标头可由解码器用于在检测到错误时再建立同步。特定来说,RM大体上仅放置在宏区块(MB)边界处,且无法任意放置在视频帧内。因此,编码器难以调节视频片大小以使得一个或一个以上MB准确配合在给定包内。用于视频片对准的一种技术涉及片级速率控制以调节MB的量化步长从而调节片长度。遗憾的是,此技术显著增加了编码器设计的复杂性,且不一定准确。另一种技术涉及对片进行编码,直到其大小超过预定义长度,且随后在经编码视频的结尾与片的结尾之间添加填充字节。然而,此方法损害了带宽效率。传统方法在已产生的位的数目超过预定义大小时形成一个视频包。因此存在这样的问题有许多需要额外RTP/UDP/IP/PPP额外开销以用于传输的小视频包,同时提供对一个帧中最后几个字节视频数据的不必要的错误保护。即使可使用前瞻方法来估计多少位被留下,但传统方法仍无法完全避免小的包。对位流进行再编码将不解决问题。事实上,再编码需要多遍编码以找到配合预定义大小的最佳解决方案。另外,再编码对移动装置应用而言不易实施。视频包化已成为包交换(PS)视频应用中的一个难题,因为其涉及包化效率与错误弹性的折衷。发送一个视频包需要40个字节的额外开销,包含RTP/UDP/IP标头。如果包较小,那么额外开销与数据的比率将较高,且因此其在带宽方面是不足的。举例来说,如果用40字节视频数据发送一个包,那么额外开销是100%。在此情况下,非常需要一种视频编码器,用以产生具有足够量的数据的视频包以避免带宽方面的低效包化。在多数视频包化方案(下文称为"原始包化方法")中,预定义视频包大小通常被指定,且视频编码器将尝试产生具有大约此包大小的所有视频包。这样做的一种方法是检査已产生的视频数据是否超过预定义包大小。如果是,那么视频编码器将通过插入再同步标记(RM)而形成视频片。然而,原始包化方法无法保证所有视频包都将具有预定义大小。极为常见的是将在视频帧的结尾产生一些大小非常小的包。也就是说,原始包化方法无法提供有效的包化,因此在不必要地保护最后几个字节的同时常常浪费带宽。图1A展示使用原始包化方法的结果,所述原始包化方法使用120字节作为目标包大小。可容易地看出,原始包化方法产生许多小的包(为强调而以圆圈展示)。预定义视频包大小通常被指定且编码器检查已产生的视频数据是否超过预定义包大小。可使用一些启发式方法,例如检查编码是否达到最后M(例如,M=5)个MB。如果是,那么即使数据量已超过预定义视频包大小视频编码器也不产生视频包。因此,启发式方法对移动装置应用而言不易实施,且其也无法实现准确的包大小。图1B展示使用启发式包化方法的结果,所述启发式包化方法使用120字节作为目标包大小。可容易地看出,启发式方法产生许多小的包(为强调而以圆圈展示)。
发明内容鉴于上文,本发明的目的是解决有许多需要额外RTP/UDP/IP/PPP额外开销以用于传输的小视频包同时提供对一个帧中最后几个字节视频数据的不必要的错误保护的问题。本发明的目的是避免任何小的包以改进包化效率,同时提供相当的错误弹性。本发明的又一目的是减少包数目并改进带宽利用。本发明的又一目的是在用于基于WCDMA电路交换的视频电话(VT)的基于MPEG-4、H.263、H.264和/或H.223的包化中减少包数目并改进带宽利用。本发明的目的是将视频帧划分为(大致)相等大小的包以用于包交换(PS)视频电话(VT)应用。本发明的目的是准确估计在何处放置用于MPEG-4视频的再同步标记(RM)或用于H.263视频的片标头以避免任何小的包,其改进了包化效率同时提供了相当的错误弹性。鉴于以上目的,通过一种包交换视频电话装置实施本发明,所述装置包括编码器,其可操作以对视频序列进行编码以产生经编码视频数据,以及包交换视频汇编器,其可操作以通过基于估计的帧大小估计针对一帧应产生的包数目且在逐个包的基础上基于至少所述估计的帧大小和所述包数目来反复计算经更新包大小,而将所述经编码视频数据包化成动态调节的包,同时所述经编码视频数据被压縮到实际位流中。所述装置还包含传输器,其用于传输所述实际位流。所述包交换视频汇编器包含三阶段过程。第一阶段在模拟位流中包化或不包化经编13码宏区块的情况下估计所述估计的帧大小。第二阶段使用估计的帧大小、目标大小以及配置模式来确定包数目。第三阶段在宏区块在第一阶段中经编码时在所述位流的包化期间使用一个宏区块的前瞻,在逐个包或逐个片的基础上动态地更新包大小。本发明的另一方面是提供具有程序指令的程序代码,所述程序指令在由处理器执行后可操作以对视频序列进行编码以产生经编码视频数据。所述程序指令还可操作以基于估计的帧大小估计针对一帧应产生的包数目;以及在逐个包的基础上基于至少所述估计的帧大小和所述包数目来反复计算经更新包大小,同时所述经编码视频数据被压縮到实际位流中。本发明的又一方面是提供一种方法,其包括以下步骤对视频序列进行编码以产生经编码视频数据;以及通过基于估计的帧大小估计针对一帧应产生的包数目且在逐个包的基础上基于至少所述估计的帧大小和所述包数目来反复计算经更新包大小,而动态地调节所述经编码视频数据的包,同时所述经编码视频数据被压縮到实际位流中。本发明的再一方面是提供一种编码器,其包括宏区块编码模块,其可操作以对视频序列进行编码以产生具有宏区块的经编码视频数据;以及包交换视频汇编器,其可操作以通过在逐个片的基础上反复计算经更新包大小而将所述经编码视频数据包化为动态调节的包,同时所述经编码视频数据被压縮到实际位流中,所述经更新包大小随着根据固定初始目标帧大小得出的估计的帧大小以及估计的包数目而变。本发明的特征是首先基于(估计的)帧大小和初始固定目标包大小来估计针对一个帧应产生多少个包。随后计算新的目标包大小,其是在逐个帧的基础上执行。因此,替代于使用固定目标包大小,针对剩余的包动态地更新新的目标包大小。本发明的另一特征是,如果帧大小信息不可用,那么使用随着非零DCT系数数目而变的信息来估计帧大小。本发明的又一特征是,程序代码决定在何处放置再同步标记(RM),使得在模拟位流和/或实际位流中每一包的大小大致相等。所述方法还采用在对每一宏区块(MB)预编码或不预编码的情况下的一个MB的前瞻的方法。当结合附图阅读时,将更好地理解上述
发明内容以及以下具体实施方式。出于说明本发明的目的,图中展示目前优选的实施例。然而应了解,本发明不限于所展示的准确布置。在图中图1A说明使用120字节的目标包大小的原始包化方法的以字节计的视频包大小对包数目的图1B说明使用120字节的目标包大小的启发式包化方法的以字节计的视频包大小对包数目的图2说明根据本发明的包交换视频电话装置的大体方框图;图3说明根据本发明的包交换视频汇编器的大体方框图;图4A到4B说明根据本发明的帧大小估计(FSE)过程的流程图;图5说明根据本发明的包数目确定(NPD)过程的流程图;图6A到6B说明根据本发明的视频包化(VP)过程的流程图;图7说明根据本发明的替代包视频汇编器的大体方框图8说明根据本发明的替代帧大小估计(FSE)过程的流程图;图9A到9B说明根据本发明的替代视频包化(VP)过程的流程图IO说明根据本发明的又一替代包视频汇编器的大体方框图11说明根据本发明的又一替代帧大小估计(FSE)过程的流程图12说明根据本发明的替代包数目确定(NPD)过程的流程图13A到13B说明根据本发明的又一替代视频包化(VP)过程的流程图14A说明图3的帧大小估计器模块的大体方框图14B说明图7的帧大小估计器模块的大体方框图15A说明图3的包数目确定模块的大体方框图15B说明图IO的包数目确定模块的大体方框图16说明图3的视频包化模块的大体方框图17A说明使用卡冯(Carphone)序列和120字节的目标包大小的原始包化方法的以字节计的视频包大小对包数目的图17B说明在图3的实施例中使用卡冯序列的以字节计的视频包大小对包数目的图17C说明在图7的实施例中使用卡冯序列的以字节计的视频包大小对包数目的图;以及图17D说明在图10的实施例中使用卡冯序列的以字节计的视频包大小对包数目的图。具体实施例方式尽管本发明容许许多不同形式的实施例,但本说明书和附图仅揭示一些形式作为本15发明的使用的实例。不希望本发明限于如此描述的实施例,且将在所附权利要求书中指出本发明的范围。下文以对视频包化的具体应用来描述根据本发明的包交换视频电话装置的优选实施例。包交换视频电话装置可为手持型或移动装置,例如移动无线或蜂窝式电话。然而,所属领域的技术人员将了解,本发明也非常适用于其它类型的装置,包含具有包交换视频电话应用的计算装置。包交换视频电话应用可包含基于MPEG-4视频标准、H.263和H.264视频以及H.223的宽带码分多址(WCDMA)电路交换视频电话(VT)的包化。现在详细参看图式,其中始终使用相同标号指示相同元件,图2中展示根据本发明的大体上以IO指定的包交换视频电话装置的实施例。包交换视频电话装置IO包含视频输入12和编码器14,编码器14具有可操作以对捕获的视频图像和序列进行编码的编码引擎16。编码引擎16中嵌入有包交换视频汇编器30,其将经编码视频序列包化为位流。包交换视频汇编器30的输出耦合到传输器/接收器26以用于经由适于与基于MPEG-4视频标准、H.263和H.264视频以及H.223的WCDMA电路交换VT的包化兼容的包交换视频电话信号的通信媒体传送位流。通常,包交换视频汇编器30嵌入在编码引擎16中,在编码引擎16处在编码期间确定片。"在编码期间"在这里意味着编码引擎16针对一帧在宏区块(MB)编码模块18中对MB的数据(例如运动向量和经量化系数)进行编码,并将经编码MB数据置于位流中。因此,编码引擎16具有基于本发明产生具有预定义目标大小的视频片的能力,且是具有程序指令的处理器。包交换视频电话装置10还包含音频输入22,其为了简单起见而展示为耦合到编码引擎16的包交换视频汇编器30的输出信号和/或与其组合。此处的详细描述主要是针对视频包化方面或与基于MPEG-4视频标准、H.263和H.264视频以及H.223的WCDMA电路交换VT的包化兼容的包交换视频电话信号。现在参看图3,包交换视频汇编器30大体上包括帧大小估计模块40A、包数目确定模块50A以及视频包化模块60A,其经布置以基于包数目确定模块50A中的初始目标包大小而找出针对当前帧应产生多少包。然而,在不知道实际帧大小的情况下,无法确定应产生的包的数目。此外,包交换视频汇编器30经布置以在帧大小估计模块40A中估计帧大小。最终,视频包化模块60A采用估计的帧大小以及包数目确定两者来包化经编码视频序列。这两个模块(帧大小估计模块40A和包数目确定模块50A)对于使视频包化模块60A进行的视频包化稳健是重要的。在包数目确定模块50A已确定包数目之后,包交换16视频汇编器30在由视频包化模块60A实施的实际视频包化(VP)过程150(图6)中再计算目标帧大小。如图14A中可最好地看出,帧大小估计模块40A包含位流压縮器42、帧大小估计器44以及再同步标记插入器46。如图15A中可最好地看出,包数目确定模块50A包含包数目计算器52和目标包大小调节器54。目标包大小调节器54基于来自模块40A的帧大小估计器44的估计的帧大小计算新的目标包大小。包数目计算器52基于估计的帧大小、目标包大小以及配置模式确定包数目。视频包化模块60A包含位流压縮器62、再同步标记分配器64以及包大小调节器66。再同步标记分配器64插入再同步标记或片标头,使得每一包的大小大致相同或在一范围内。所述范围大体上在100字节与150字节之间。包大小调节器66动态地使用一个MB的前瞻来动态地更新目标包大小(经更新包大小)。在示范性实施例中,将添加到表示为MB[i+l]的下一(前瞻)MB的一部分的当前包大小的结果与经更新包大小进行比较。一旦所述结果大于经更新包大小,再同步标记分配器64便插入再同步标记且再计算经更新包大小。将MB压縮到位流中,直到经更新包大小小于当前包大小的结果和一个前瞻宏区块(MB[i+l])的一部分。其次,在知道将产生的包数目之后,在帧内分配再同步标记(RM),使得所述帧中的每一视频包的大小大致相同。这将需要在实际视频包化过程150期间的跟踪与更新过程。所述跟踪如之前所提到地跟踪已产生了多少字节。然而,额外步骤依据信息和算法的可用性而以字节或以NZC(非零系数的数目)前瞻又一个MB。所述更新过程根据帧大小(总NZC预算)和先前包的大小再计算目标视频大小(以字节或以NZC),使得视频包化可均匀地分配剩余包的大小。方法l包交换视频汇编器30大体上包含三个模块帧大小估计模块40A、包数目确定模块50A以及视频包化模块60A,其实施用于视频包化的三阶段过程以将字节均匀地分配到包中。帧大小估计模块40A接收初始目标包大小和来自编码引擎16的经编码数据。包数目确定模块50A也接收目标包大小和来自帧大小估计模块40A的估计的帧大小。帧大小估计模块40A还将估计的帧大小和MB大小数组发送到视频包化模块60A。包数目确定模块50A将包数目和以字节计的新的目标包大小发送到视频包化模块60A。现在参看图4A、4B、5和6A-6B,展示包交换视频汇编器30实施的三阶段过程。在阶段1中,帧大小估计模块40A执行帧大小估计(FSE)过程IOO。在阶段2中,包数目确定模块50A执行包数目确定过程130。在阶段3中,视频包化模块60A执行视频包化(VP)过程150。在阶段1中,如图4A-4B中可最好地看出,FSE过程100通过首先进行实际位流包化(步骤S108)来估计帧大小(步骤S114),以便确定应针对所述帧产生的包数目(图5,过程130中的步骤138)。此估计的帧大小(步骤S114)给出非常准确的帧大小,其与实际帧大小仅有几个字节的差异。通过此准确的帧大小估计,可针对所述帧可靠地产生阶段2中的包数目(步骤S138)。另外,在压縮位流(步骤S158)的同时,在阶段3的VP过程150中,将(大致)产生多少位的估计(步骤S160、162)且此信息可帮助视频包化再估计应使用的包大小(步骤S170)。更具体来说,现在将更详细地描述(阶段l)帧大小估计(FSE)过程100的细节。FSE过程IOO在步骤S101B假定以字节计的(给定)初始目标包大小,且针对每一MB的经编码数据(例如运动向量和经量化系数)已在S101A存储。步骤102初始化以下参数MB一大小—数组[MB总数]为零;当前_包—大小=0;且估计—帧—大小=0。步骤S102之后是步骤S104,其中将计数器i设定为0。步骤S104之后是步骤S106,其中做出计数器i是否小于MB总数的确定。如果确定是"是",那么FSE过程100首先使用来自编码引擎16的在步骤S101A针对每一MB的经编码数据在步骤S108进行MB[i]的实际位流包化。因此,产生模拟位流。步骤S108之后是步骤SllO,其中将MB大小数组[i]设定为等于MB[i]的位流的大小。步骤S110之后是步骤S112,其中将当前包大小计算为当前—包—大小+=MB—大小_数组[i]或当前—包—大小=当前_包—大小+MB—大小—数组[i]。大体上,所述公式针对每一MB[i]累加当前包大小,直到复位当前包大小。步骤S112之后是步骤S114,其中累加估计的帧大小。将步骤S114中计算估计的帧大小的公式定义为估计—帧—大小+=MB—大小—数组[i]或估计—帧—大小+=MB—大小—数组[i]+估计—帧—大小。步骤S114的此估计的帧大小给出非常准确的帧大小,其与获得的实际帧大小仅有几个字节的差异。通过此准确的帧大小估计,可在稍后详细地描述的(阶段2)包数目确定(NPD)过程130中针对所述帧可靠地产生包数目。另外,在(阶段3)中压縮位流的同时,将(大致)产生对多少位的估计且此信息可帮助视频包化再估计所使用的包大小。再次返回FSE过程100,步骤S114之后是步骤S116,其中做出当前片大小是否大于或等于(>=)目标包大小的确定。因此,重复步骤S106、S108、SllO、S112和S114,直到当前滑动大小大于或等于(>=)目标包大小或计数器i小于MB数目。(S101B的初始目标包大小是从编码引擎16发送。)在编码之前指定/界定初始目标包大小。也就是说,用户/应用程序可指定例如120字节的目标大小。初始目标包大小的使用使得FSE过程IOO在阶段1期间更准确。在阶段1中,再同步标记(RM)插入就是要使帧大小估计模块40A更准确,因为RM也包含若干位。而且,通过插入RM,编码过程将稍微改变,因为运动向量预测和空间预测将必须在跨越片边界时停止。阶段1中的片确定不是最终结果,而是关于阶段3中的视频分片将为如何以使帧大小估计更准确以用于汇编实际位流的大致概念(模拟)。返回到步骤S116,如果在步骤S116确定是"否",那么FSE过程IOO在步骤S122将计数器i更新一(1)并返回到步骤S106,其中通过将MB中的一者或一者以上压縮到位流中而针对MB累加估计的帧大小。否则,如果在步骤S116确定是"是"(片或包大小的结尾),那么FSE过程100将在步骤S118插入再同步标记(RM)或片标记。RM是在下一MB的开始处插入。步骤S118之后是步骤S120,其中将当前包大小设定为等于零(0)。步骤S120随后进行到步骤S122,其中将计数器i递增一(1)并返回到步骤S106(图4A)以重复包化。否则,在步骤S106如果确定是"否"(意味着没有更多MB),那么FSE过程100结束。现在参看图5,现在将描述包数目确定模块50A的(阶段2)包数目确定(NPD)过程130。给定步骤S131B处表示的以字节计的初始目标包大小,且在上文阶段l中计算出步骤S131C处表示的估计的帧大小。用户/应用程序在配置模式中设定步骤S131A处表示的配置。所述配置包含带宽有效模式和错误弹性模式。NPD过程130以步骤S132开始,其中做出配置是否等于(=)带宽有效模式的确定。如果步骤S132处的确定是"是",那么步骤SB2之后是步骤S134,其中将包数目定义为包—数目=FLOOR(估计—帧—大小/目标_包—大小);其中FLOOR函数与将运算()的结果向下舍入到下一整数相同。步骤S134之后是步骤S140,其中将新的目标包大小定义为19新—目标一包—大小=ROUND(估计—帧一大小/包_数目);其中ROUND函数舍入运算()的结果。另一方面,如果步骤S132处的确定是"否",那么步骤S132之后是步骤S136,其中做出配置是否是设定为错误弹性模式的确定。如果在步骤S136确定是"是",那么步骤S136之后是步骤S138,其中将包数目定义为包—数目=ROUND(估计—帧_大小/目标—包—大小)。步骤S138之后是步骤S140,其中如上文所述计算新的目标包大小。随后,NPD过程130结束。现在返回到图6A-6B,其中展示(阶段3)视频包化(VP)过程150。在VP过程150中,假定数据己由编码引擎16编码且作为针对每一MB的经编码数据发送。步骤S151E处表示的估计的帧大小以及MB大小数组S151C是从阶段1中的FSE过程100得出。包数目S151D和新的目标包大小S151A是针对所选择的配置模式在阶段2的NPD过程130中计算出。VP过程150以在步骤S152初始化以下参数开始当前—包一大小=0;经更新—包—大小=新_目标一包一大小;累加—帧一大小=0;且包—计数=0。步骤S152之后是步骤S154,其中将计数器i设定为零(0)。步骤S154之后是步骤S156,其中做出计数器i是否小于(<)MB数目的确定。如果步骤S156处确定是"是",那么步骤S156之后是步骤S158,其中将经编码数据压縮到实际位流中。步骤S158之后是步骤S160,其中将当前包大小定义为当前一包—大小+:来自上面的MB[i]的大小;或当前—包—大小=当前—包—大小+MB[i]的大小;且将步骤S162中的累加帧大小定义为累力口_帧—大小+二MB—大小—数组[i〗或累加—帧—大小=累加—帧—大小+MB—大小—数组[i]。步骤S162之后是步骤S164,其中做出是否(当前—包—大小+(MB—大小_数组[1+1]/2))>经更新—包—大小)的确定,其中MB—大小_数组[1+1]是表示为MB[i+l]的下一MB的大小。将当前包大小加上下一MB[i+l]的MB大小数组的大小的一部分的结果与经更新包大小进行比较。在示范性实施例中,MB大小数组的大小的所述部分是二分之一。如果步骤S164处的确定是"是",那么步骤S164之后是步骤S166,其中做出是否(包—计数<包_数目一1))的确定。如果步骤S164和S166处的确定中的任一者或两者是"否",那么步骤S164或S166之后是步骤S176,其中将计数器i递增l,且步骤S158处将下一MB[i]压縮到位流中继续进行,除非计数器i小于(<)MB总数(意味着没有更多MB)。如果步骤S164和S166处的确定两者都是"是",那么步骤S166之后是步骤S168,其中插入再同步标记(RM)或片标头。步骤S168之后是步骤S170,其中将包大小的更新(更新包大小)计算并定义为经更新—包—大小=(估计_帧—大小一累加_帧_大小)/(包—数目-包—计数一1)。步骤S170之后是步骤S172,其中将当前包大小设定为零(0),且在步骤S174将包计数递增l。步骤S174之后是步骤S176,其中将计数器i递增。步骤S176返回到步骤S156(图6A)。如果步骤S156处的确定是"否"(意味着没有更多MB),那么过程150结束。方法2当由于有限的计算能力而无法使用阶段1中的位流包化来估计帧大小时,使用第二方法。替代于进行通过阶段1中的位流包化,使用总非零系数的信息来在帧大小估计器模块40B中估计帧大小。由于每一MB的大小是未知的(与方法1中不同),因此第二方法跟踪针对每一MB产生多少非零系数(NZC)并使用此信息进行一个MB的前瞻。现在参看图7到14B,其中展示包交换视频汇编器30'的替代实施例。帧大小估计模块40B包含NZC数目计算器142和帧大小估计器144。NZC数目计算器142使用来自编码引擎16的经编码数据来跟踪产生了多少NZC。将初始目标包大小发送到包数目确定模块50B。将估计的帧大小从帧大小估计模块40B发送到包数目确定模块50B。此外,视频包化模块60B接收来自帧大小估计模块40B的计算出的MBNCZ数组。另一方面,包数目确定模块50B将包数目和以字节计的新目标包大小提供到视频包化模块60B。现在参看图8,其中展示由帧大小估计模块40B执行的(阶段1)帧大小估计(FSE)过程200。在FSE过程200中,假定或给定已由编码引擎16对视频输入序列进行编码。FSE过程200以初始化步骤S202开始,其中初始化以下参数MB—NCZ一数组[MB总数]为零总一帧—NZC二0;且估计—帧—大小=0;其中总帧NZC是为获得帧中的NZC总数而对每一MB的NZC的累加。基本上,其等于将所有MB一NZC一数组[i]相加。步骤S202之后是步骤S204,其中将参数a定义为a二(先前—帧_大小一先前—非_纹理—大小)/先前」总一帧一NZC。其中先前_帧—大小是从先前帧产生的实际大小,先前—总_帧—NZC是先前帧的总帧NZC,且先前一非一纹理一大小是先前帧的非纹理大小。更具体来说,首先在步骤S218和S271中使用来自步骤S214的用于当前帧的值。一旦当前帧完成且编码器移动到下一帧,就将来自步骤S214的此值用作下一帧的先前—总_帧—NZC。一旦当前帧完成,先前—非—纹理_大小的值就与图9A的步骤S262中的针对当前帧的累加非纹理大小相同。因此,在当前帧完成时,编码器移动到下一帧且来自步骤S262的值将用于先前—非—纹理—大小。大体上,a是纹理位的比率,所述纹理位是内容和非零系数(NZC)计数。a用于基于所述比率和非纹理位将与先前帧相同的假定而估计帧大小(估计—帧—大小)。如从下文提供的描述中将可见,将在步骤S214计算当前帧的总帧NZC。因此,可将当前帧的总帧NZC乘以a以形成结果。可将所述结果添加到先前已在步骤S262处累加的先前帧的非纹理位,以在步骤S218(下文描述)针对当前帧估计帧大小。步骤S204之后是步骤S206,其中将计数器i设定为零(0)。步骤S204之后是步骤S208,其中做出计数器i是否小于(<)MB总数的确定。如果确定是"是",那么步骤S208之后是步骤S210,其中计算MB[i]的非零系数(NZC)的数目。步骤S201A处表示的经编码MB是从编码引擎16提供。步骤S210之后是步骤S212,其中MB—NZC—数组[i]二MB[i]的NZC的数目。步骤S212之后是步骤S214,其中总—帧—NZC+-MB—NZC—数组[i]或总—帧—NZC=总—帧—NZC+MB—NZC—数组[i]。步骤S214之后是步骤S216,其中将计数器i递增1并返回到步骤S208,直到计数22器i大于MB。如果步骤S208处的确定是"否"(意味着没有更多MB),那么步骤S208之后是步骤S218,其中将估计的帧大小确定且定义为估计—帧_大小=a*总—帧—NZC+先前—非—纹理—大小。随后,FSE过程200结束。在方法2中,(阶段2)包数目确定(NPD)过程与图5中陈述的NPD过程130相同。然而,估计的帧大小是在图8的步骤S218处计算的估计的帧大小。现在参看(阶段3),现在将详细描述视频包化(VP)过程250。在步骤S251B提供针对每一MB的经编码数据。步骤S251C处的MBNZC数组和步骤S251E处的总帧NZC是从阶段1(图8)或帧大小估计模块40B提供。步骤S251D处的包数目和步骤S251A处的新的目标包大小是从阶段2(图5)或包数目确定模块50B提供。VP过程250以步骤S252开始,其中初始化以下参数当前—包_大小=0;经更新—包_大小=新—目标—包—大小;累加—帧—nzc=0;累加—非_纹理_大小=0;且包—计数二O。步骤S252之后是步骤S254,其中将计数器i设定为零(0)。步骤S254之后是步骤S256,其中做出计数器i是否小于(<)MB数目的确定。如果步骤S256处确定是"是",那么步骤S256之后是步骤S258(以虚线展示),其中将经编码数据压縮到位流中。以虚线展示步骤S258以指示包化可不由包交换视频汇编器30'执行而是在编码引擎16中执行。步骤S258之后是步骤S260,其中将当前包大小定义为当前—包—大小+=来自上面的MB[i]的大小;且将步骤S262中的累加非纹理大小定义为累加_非—纹理—大小+=^8[1]的非纹理的大小。步骤S262之后是步骤S264,其中将累加帧NZC定义为累力口—帧—NZC+^MBNZC数组[i]其中MBNZC数组[i]是在来自阶段1的步骤S251C处表示。步骤S264之后是步骤S266,其中做出是否(当前—包—大小+(MB—NZC—数组[i+l"8/2))>更新_包—大小)的确定。其中MB_NZC—数组[i+l]是表示为MB[i+l]的下一MB中NZC的数目。如果步骤S266处的确定是"是",那么步骤S266之后是步骤S268,其中做出是否(包—计数<包—数目一l))的确定。如果步骤S266和S268处的确定中的任一者或两者是"否",那么步骤S266或S268之后是步骤S280,其中将计数器i递增l,且步骤S258处将下一MB[i]压缩到位流中继续进行,除非计数器i小于(<)MB的总数(意味着没有更多MB)。如果步骤S266和S268处的确定两者都是"是",那么步骤S268之后是步骤S270,其中插入再同步标记(RM)或片标头。步骤S270之后是步骤S272,其中将剩余帧大小计算并定义为剩余_帧—大小=a*(总—帧—NZC—累力口—帧—NZC)+max(先前一非—纹理一大小一累加—非—纹理—大小),O));其中累加—非—纹理_大小是已在非纹理部分上产生并相应更新了多少字节的计数。有时累加非纹理大小可大于先前帧的非纹理计数(先前一非—纹理一大小)。从先前帧的非纹理计数或大小中减去累加非纹理大小产生负结果。当此条件发生时,例如通过使用max运算将结果设定为零(0)。步骤S272随后是步骤S274,其中将经更新包大小计算并定义为更新_包—大小=剩余—帧—大小/(包_数目一包—计数一1);步骤S274之后是步骤S276,其中将当前包大小设定为零(0),且在步骤S278将包计数递增l。步骤S278之后是步骤S280,其中将计数器i递增。步骤S280返回到步骤S256(图9A)。如果步骤S256处的确定是"否"(意味着没有更多MB),那么过程250结束。否则,重复以步骤S258处包化经编码数据开始的过程。方法3第三方法在编码引擎的编码过程期间执行视频包化。因此,第三方法需要决定在编码过程中间在何处即时形成视频包。当位流包化必须与编码过程一起进行时第三方法尤其合适。而且,当必须形成片但必须关闭帧内预测时其可用于H.263和H.264格式。在(阶段l)FSE过程300中,不像方法2中那样预先知道非零系数(NZC)数目。因此,FSE过程300在编码开始之前依赖于"所需总NZC"。而且,由于预先不知道每一MB的NZC,因此前瞻被关闭。在图10中,展示包视频汇编器30"的替代实施例。帧大小估计模块40C接收由编码引擎16中的速率控制器(未图示)提供的所需总帧NZC,所述速率控制器帧在编码之前决定帧大小。随后将帧大小转换为所需帧NZC。起初,此所需帧NZC用于引导编码过程产生具有相同NZC的帧。在本发明中我们进一步使用所述信息。帧大小估计模块40C确定估计的帧大小,所述估计的帧大小被发送到包数目确定模块50C。帧大小估计模块40C还确定总帧NZC,所述总帧NZC被发送到包数目确定模块50C和视频包化模块60C两者。包数目确定模块50C接收初始目标包大小并将目标包NZC和包数目输出到视频包化模块60C。现在参看图11,现在将描述(阶段1)帧大小估计(FSE)过程300。在步骤S301A提供参数所需总帧NZC。FSE过程300以步骤S302开始,其中将a计算为a=(先前—帧—大小一先前—非_纹理—大小)/先前—总—帧—NZC其中先前—帧一大小、先前—非_纹理—大小、先前_总—帧—NZC是针对先前帧确定。先前已描述参数a。步骤S302之后是步骤S304,其中做出是否所需—总—帧—NZC^使用最大QP的帧—NZC的确定,其中QP是MB的量化参数或量化步长。应注意,所需总帧NZC是引导编码引擎16中的编码过程的目标。为了产生所需总帧NZC,可改变每一MB的量化参数(QP)。然而,存在以下情形甚至当使用最大允许QP(例如MPEG4和H263中为31,且H264视频编码标准中为52)时,仍无法满足所需总帧NZC。实际上,将具有更多NZC。在此情况下,用于每一MB的QP将是最大值。因此,不使用所需总帧NZC。实际上,使用在编码标准中使用最大允许QP的总帧NZC。此信息通常通过进行帧分析而可用。再次返回到步骤S304,如果步骤S304处的确定是"是",那么步骤S304之后是步骤S306,其中将总帧NZC计算为总—帧—nzc=使用最大QP的帧一nzc。步骤S306之后是步骤S308,其中基于估计—帧_大小=a*所需一总J)贞一nzc+先前一非—纹理_大小来计算估计的帧大小。再次返回到步骤S304,如果步骤S304处的确定是"否",那么步骤S304之后是步骤S308,其中计算估计的帧大小。在步骤S308之后,过程300结束。展示由包数目确定模块50C(图15B)执行的(阶段2)包数目确定(NPD)过程330。给定步骤S331B处表示的以字节计的目标包大小,且在阶段l中在步骤S308处计算步骤S331C处表示的估计的帧大小。由配置模式设定步骤S331A处表示的配置。所述配置包含带宽有效模式和错误弹性模式。NPD过程330.以步骤S332开始,其中做出是否配置=带宽有效模式的确定。如果步骤S332处的确定是"是",那么步骤S332之后是步骤S334,其中将包数目定义为包一数目=FLOOR(估计—帧—大小/目标—包—大小)其中FLOOR函数与将运算()的结果向下舍入到下一整数相同。步骤S334之后是步骤S340,其中由目标包NZC调节器154计算目标包NZC且将其定义为目标—包—NZC=ROUND(总—帧—NZC/包—数目);其中ROUND函数将运算()的结果舍入。另一方面,如果步骤S332处的确定是"否",那么步骤S332之后是步骤S336,其中做出配置是否是设定为错误弹性模式的确定。如果步骤S336处确定是"是",那么步骤S336之后是步骤S338,其中由包数目计算器152计算包数目且将其定义为包—数目=ROUND(估计—帧—大小/目标—包—大小)。步骤S338之后是步骤S340,其中如先前所述计算目标包NZC。随后,NPD过程330结束。现在参看图13A和13B,现在将详细描述(阶段3)视频包化(VP)过程350。总帧NZC351B是从阶段1(图11)或帧大小估计模块40C提供。步骤S351C处的包数目和步骤S351A处的目标包NZC是从阶段2(图12)或包数目确定模块50C提供。VP过程350以步骤S352开始,其中初始化以下参数当前_包—NZC=0;更新_包—NZC=目标—包一NZC;累加—帧—NZC=0;且包计数=0。步骤S352之后是步骤S354,其中将计数器i设定为零(0)。步骤S354之后是步骤S356,其中做出计数器i是否小于(〈)MB数目的确定。如果步骤S356处的确定是"是",那么步骤S356之后是步骤S358(以虚线展示),其中由编码引擎16对MB[i]进行编码,且计算非零系数(NZC)数目。步骤S358之后是步骤S359(以虚线展示),其中由编码引擎16将MB[i]的经编码数据压縮到位流中。以虚线展示步骤358和359以指示所述编码和包化可不由包交换视频汇编器30"执行,而是在编码引擎16中执行。步骤S359之后是步骤S360,其中将累加帧NZC定义为累力口—帧—NZC+:MB[i]的NZC数目或累力口—帧—NZC+:累力口—帧—NZC+MB[i]的NZC数目。步骤S360之后是步骤S361,其中将当前包NZC计算为当前—包—NZC+二MB[i]的NZC数目或当前—包—NZC+=当前—包—NZC+MB[i]的NZC数目。步骤361之后是步骤S362,其中做出是否(当前—包一NZO更新一包一NZC)的确定。如果步骤S362处的确定是"是",那么步骤S362之后是步骤S364,其中做出是否(包—计数<包—数目一l)的确定。如果步骤S362和S364处的确定中的任一者或两者是"否",那么步骤S362或S364之后是步骤S376,其中将计数器i递增l,且过程返回到步骤S356,其中步骤S358处对下一MB[i]的编码以及对NZC系数的计算继续进行,除非计数器i小于(<)MB的总数(意味着没有更多MB)。如果步骤S362和S364处的确定两者都是"是",那么步骤S364之后是步骤S366,其中插入再同步标记(RM)或片标头。步骤S366之后是步骤S368,其中将剩余帧NZC计算并定义为剩余_帧—大小=帧—NZC—累加—帧—NZC。步骤S368之后是步骤S370,其中将经更新包NZC计算并定义为更新—包一NZC=剩余—帧—NZC/(包—数目一包—计数—1)。步骤S370之后是步骤S372,其中将当前包NZC设定为零(0),且在步骤S374将包计数递增l。步骤S374之后是步骤S376,其中将计数器i递增。步骤S376返回到步骤S356(图13A)。如果步骤S356处的确定是"否"(意味着没有更多MB),那么过程350结束。模拟结果图17A到17D中的图说明以原始方法(图17A)、方法1(图17B)、方法2(图17C)和方法3(图17D)使用卡冯(Carphone)序列的模拟结果。模拟结果说明方法1、2和3的有效性。原始方法在包大小超过预定义包大小时形成视频包。模拟结果展示产生许多小的包。一些小的包具有小于IO个字节的大小。因此,极大地浪费了带宽。通过方法I,模拟结果中的包大小大多数在120字节左右。变化是在100字节到150字节之间。这是因为帧大小通常不是120字节的倍数。举例来说,当帧大小是400字节时,最好具有3个133字节的包而不是3个120字节的包和一个40字节的包。以40字节的额外开销保护剩余的40字节并没有多大意义。通过方法2,由于使用NZC估计帧大小,因此其不如方法l准确。然而,准确度仍足够好,使得包大小分配非常类似于方法1。而且,通过方法2,减少了计算复杂性,同时提供带宽有效的包化。对于方法3,分配较宽,因为无法通过计算包大小来进行视频包化。决定是在NCZ域上进行。然而,即使通过方法3,当与原始方法相比时也减少了小的包的产生。下面针对模拟结果陈述表1,其展示每一方法产生的包数目。表1<table>tableseeoriginaldocumentpage28</column></row><table>所属领域的技术人员将了解,本文描述的三阶段过程和装置减少了包数目且改进了带宽利用。此外,所述三阶段过程将视频帧划分为(大致)相等大小的包并动态地更新包大小。已出于说明和描述的目的呈现了对本发明实施例的上述描述。不希望其为详尽的或将本发明限于所揭示的精确形式,且鉴于上文教示,修改和变化是可能的,或可从本发明的实践中获得。选择和描述实施例以便解释本发明的原理及其实践应用,以使所属领域的技术人员能够在各种实施例中且以适于预期特定用途的各种修改来利用本发明。希望本发明的范围由所附权利要求书及其等效物界定。附录伪码方法1份皮h斷丈V、仿:/"Target_Packet_SizeinbytesEncodeddataforeachMBsuchasmotionvectorsandquantizedcoefficients/n/力'a〃ze:MB—Size—Array[totalnumberofMB]tobezerocurrent_packet—size=0;estimated—frame—size=0;FrameS/zeEsf/maf/on/Vgo〃加m:For(i=0;i<totalnumberofMB;i++)PacktheencodeddataofMB[i]intobitstreamMB_Size_Arrayp]=thesizeofthebitstreamofMB卩]current_packet—size+=MB_Size—Array[i];estimated_frame_size+=MB_Size_Array[i];If(thecurrentslicesize>=Target_Packet—Size)InsertaResynchronizationMarkerorSliceheader;current—packet_size=0;}一一,皮2;包教^緣定G/V肌'Target—Packet_Sizeinbytesestimated_frame_sizefromStep1configuration(bandwidthefficientorerrorresilientmode)If(configuration==bandwidthefficientmode)number_of_packet=FL5dF(estimated_frame—size/target_packet—size);}_一Elseif(configuration==errorresilientmode)number—of—packet=ROUND(estimated_frame_size/target_packet_size);}一一new」arget—packet—size=ROU"FJD(estimatedjrame_size/number—of—packet);,皮3;裸廯包众29G/Ven..EncodeddataforeachMBestimated—frame_sizefromStep1MB_SizeJArrayfromStep1number—of—packetfromStep2new」arget_packet_sizefromStep2/"/'〃a//'ze:current_packet_size=0;updated_packet_size=new—target_packet_size;accumulated—frame_size=0;packet—count=0;For(i=0;i<totalnumberofMB;i++)PacktheencodeddataofMB[i]intobitstreamcurrent—packet_size+=sizeofMB[i]fromabove;accumulated_frame—size+=MB_Size_Array[i];(NOTE:fromStep1)If((current—packet—size+(MB—^ize_AirayU+1]/2))>updated_packet_size)&&(packet_count<number_of—packet-1)){_—InsertaResynchronizationMarkerorSliceheader;updated—packet_size=(estimated_frame_size-accumulated_frame_size)/(number—of—packet-packet—count-1);current_packet—size=0;packet_count+=1;}_伪码方法2,皮h齡Xv/、仿^EncodeddataforeachMBMB—NCZ—Array[totalnumberofMB]tobezerototaTjrarrTe—NZC=0;estimated—frame—size=0;alpha=(prev_frame—size-prev_non—texture—size)/prev_total_frame_NZC;FrameS/ze£sf/maf/'on/A/gor欣m:For(i=0;i<totalnumberofMB;i++)Calculatethenumberofnon-zerocoefficientforMB[i];MB—NZC—Array[i=theNZCofMB[卩;totaT」rame_NZC+=MB_NZC_Array[i];estimated—frame_size=alpha*total_frame_NZC+prev—non_texture_size;,皮2;包廳裙定G/V肌.target_packet_sizeinbytesestimated—frame—sizefromStep1configuration(bandwidthefficientorerrorresilientmode)If(configuration==bandwidthefficientmode)number—of_packet=FLOOR(estimated一frame—size/target_packet—size);}—_Elseif(configuration==errorresilientmode)number_of—packet=ROUKTD(estimated_frame_size/target_packet_size);}_new—target—packet_size=ROUND(estimated_frame—size/number_of—packet);,虔3:欲激包众G/V肌.EncodeddataforeachMBMB_NZC_ArrayfromStep1total_frame_nzcfromStep131number_of_packetfromStep2new—target_packet—sizefromStep2論'a〃ze:current_packet—size=0;updated_packet—size=new—target_packet_size;accumulatedjrame一nzc=0;accumulated_non_texture—size=0;packet_couirf=0;雨eoPac/ce〃z3"or//go/7/imzFor(j=0;i<totalnumberofMB;i++)PacktheencodeddataofMB[i]intobitstreamcurrent—packet_size+=sizeofMB[i]fromabove;accumulated—non_texture_size+=sizeofnon-textureofMB[i];accumulated—frame_NZC+=MB_NZC—Array[i];If((current_picket_iize+(MB—N5c—Aray[i+ir8/2))>updated—packet—size)&&(packet一count<number_of_packet-1)){一InsertaResynchronizationMarkerorSliceheader;remaining—fr8me_size=alpha*7total_frame_nzc-accumulated—frame_NZC)+max(prev_non—texture_size-accumulatedjion—texture—size),0));updated_packet—size=remaining_frame—size/(number_of_packet-packet—count-1);current_packet—size=0;packet_count+=1;}_伪码方法3desired_total_frame_nzc/n/'〃a//'ze:slph3=(prev—frame_size-prev—non—texture—size)/prev—total—frame_NZC;32lf(desired_total」rame_nzc<frame_nzcusingmaxQP){____total—frame—nzc=frame—nzcusingmaxQP;}———estimated—frame—size=alpha*desired_total_frame—nzc+prev_non_texture_size;包教^裙定G/V肌.target—packet—sizeinbytesestimated—frame_sizefromStep1total_frame_nzcfromStep1configuration(bandwidthefficientorerrorresilientmode)If(configuration==bandwidthefficientmode)number—of_packet=FLOOR(estimated_frame—size/target_packet_size);}——__Elseif(configuration==errorresilientmode)number—of_packet=ROU^b(estimated—frame_size/target_packet—size);}_target_packet—nzc=ROUND(total_frame_nzc/number_of_packet);份皮L裙凝包众G/V肌EncodeddataforeachMBtotal_frame—nzcfromStep1number—of_packetfromStep2target_packet_nzcfromStep2歸/'a〃ze:updated—packetjizc=target_packet_nzc;current—packet_nzc=0;accumulated_fr3me_nzc=0;packet—count=0;For(i二0;i<totalnumberofMB;i++)EncodeMB[i]andcalculatenumberofnon-zerocoefficients;PacktheencodeddataofMB[j]intobitstream;accumulated_frame_NZC+=numberofnzcofMB[i]fromabove;current_packet_nzc+=numberofnzcofMB卩];If((current_packet_nzc>updated_packet_nzc)&&(packet—count<number—of—packet-1)){一InsertaResynchronizationMarkerorSliceheader;remaining_frame—nzc=total_frame—nzc-accumulated—frame_NZC;updated—packet—nzc=remaining_frame_nzc/(number_of_packet-packet_count-1);current—packetjizc=0;packet—count+=1;权利要求1.一种包交换视频电话装置,其包括编码器,其可操作以对视频序列进行编码以产生经编码视频数据,以及包交换视频汇编器,其可操作以通过基于估计的帧大小估计将针对一帧产生的包数目且在逐个包的基础上基于至少所述估计的帧大小和所述包数目反复计算经更新包大小,而将所述经编码视频数据包化成动态调节的包,同时所述经编码视频数据被压缩到实际位流中;以及传输器,其用于传输所述实际位流。2.根据权利要求l所述的装置;其中所述包交换视频汇编器可操作以基于配置模式、所述估计的帧大小以及初始固定目标包大小而确定所述包数目;且基于所述包数目和所述估计的帧大小计算新的目标包大小。3.根据权利要求2所述的装置;其中所述包交换视频汇编器可操作以通过将所述经编码数据压縮到模拟位流中来估计所述估计的帧大小。4.根据权利要求3所述的装置;其中所述包交换视频汇编器可操作以通过在所述模拟位流中插入模拟再同步标记或模拟片标头来估计所述估计的帧大小。5.根据权利要求4所述的装置;其中所述包交换视频汇编器可操作以将所述经编码数据的当前宏区块压縮到所述实际位流中;在所述经编码视频数据中前瞻一个宏区块;评估代表所述当前包大小的大小的计数加上代表所述一个宏区块的大小的计数的预定部分的结果是否超过所述经更新包大小;以及当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么在所述一个宏区块之前插入实际再同步标记或实际片标头,并再计算所述经更新包大小。6.根据权利要求2所述的装置;其中所述包交换视频汇编器可操作以通过计算所述经编码视频数据的当前宏区块的非零系数(NZC)数目并累加所述帧中每一宏区块的所述NZC数目以形成总帧NZC来估计所述估计的帧大小。7.根据权利要求6所述的装置;其中所述包交换视频汇编器可操作以基于以下来估计所述估计的帧大小估计的帧大小=C^总帧NZC+先前非纹理大小其中将(X定义为a=(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;且所述先前总帧NZC是所述先前帧的所述总帧NZC。8.根据权利要求7所述的装置;其中所述包交换视频汇编器可操作以在将所述经编码数据的当前宏区块压缩到所述实际位流中之后前瞻一个宏区块;评估代表当前包大小的计数加上所述一个宏区块中所述NZC的计数乘以预定因数的结果是否大于所述经更新包大小;以及当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么在所述一个宏区块之前插入实际再同步标记或实际片标头并再计算所述经更新包大小。9.根据权利要求1所述的装置;其中所述包交换视频汇编器可操作以基于以下来估计所述估计的帧大小估计—帧—大小二o^所需总帧NZC+先前非纹理大小其中a二(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;所述先前总帧NZC是代表先前帧的总非零系数(NZC)的累加的计数;且所述所需总帧NZC是识别帧的总非零系数(NZC)的初始固定值。10.根据权利要求9所述的装置;其中所述包交换视频汇编器可操作以计算代表用于最大量化参数的帧的总非零系数(NZC)数目的总帧NZC值;以及基于所述总帧NZC值除以所述包数目的经舍入结果而计算代表目标包的非零系数(NZC)数目的目标包NZC值,所述包数目随配置模式而变。11.根据权利要求IO所述的装置;其中所述包交换视频汇编器可操作以在对当前宏区块进行编码,计算所述当前宏区块的非零系数(NZC)数目并将所述当前宏区块压縮到所述实际位流中之后,评估代表当前包的非零系数(NZC)的计数是否大于经更新包NZC值;以及当所述结果超过所述经更新包NZC值时且如果包计数小于所述包数目,那么在下一宏区块之前插入再同步标记或片标头,并再计算所述经更新包NZC值。12.—种具有程序指令的程序代码,所述程序指令在执行后可操作以对视频序列进行编码以产生经编码视频数据;基于估计的帧大小估计将针对一帧产生的包数目;以及在逐个包的基础上,基于至少所述估计的帧大小和所述包数目反复计算经更新包大小,同时所述经编码视频数据被压縮到实际位流中。13.根据权利要求12所述的程序代码;其中所述可操作以估计所述包数目的程序指令包含在执行后可操作以进行以下操作的程序指令确定配置模式以改变对所述包数目的计算;以及基于针对所述配置模式的所述包数目和所述估计的帧大小计算新的目标包大小。14.根据权利要求13所述的程序代码;其进一步包括可操作以通过将所述经编码数据压縮到模拟位流中来估计所述估计的帧大小的程序指令。15.根据权利要求14所述的程序代码;其中所述可操作以估计所述估计的帧大小的程序指令包含在执行后可操作以在所述模拟位流中插入模拟再同步标记或模拟片标头的程序指令。16.根据权利要求15所述的程序代码;其中所述程序指令进一步可操作以将所述经编码数据的当前宏区块压縮到所述实际位流中;在所述经编码视频数据中前瞻一个宏区块;评估代表所述当前包大小的大小的计数加上代表所述一个宏区块的大小的计数的预定部分的结果是否超过所述经更新包大小;以及当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么在所述一个宏区块之前插入实际再同步标记或实际片标头,并再计算所述经更新包大小。17.根据权利要求13所述的程序代码;其中所述程序指令进一步可操作以通过计算所述经编码视频数据的当前宏区块的非零系数(NZC)数目并累加所述帧中每一宏区块的所述NZC数目以形成总帧NZC来估计所述估计的帧大小。18.根据权利要求17所述的程序代码;其中所述可操作以估计所述估计的帧大小的程序指令包括在执行后可操作以基于以下来计算所述估计的帧大小的程序指令估计的帧大小=W总帧NZC+先前非纹理大小其中将a定义为a二(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;且所述先前总帧NZC是所述先前帧的所述总帧NZC。19.根据权利要求18所述的程序代码;其中所述程序指令进一步包含可操作以进行以下操作的程序指令在将所述经编码数据的当前宏区块压縮到所述实际位流中之后前瞻一个宏区块;评估代表当前包大小的计数加上所述一个宏区块中所述NZC的计数乘以预定因数的结果是否大于所述经更新包大小;以及当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么在所述一个宏区块之前插入实际再同步标记或实际片标头并再计算所述经更新包大小。20.根据权利要求12所述的程序代码;其中所述程序指令进一步包括在执行后可操作以基于以下来估计所述估计的帧大小的程序指令估计—帧—大小=a*所需总帧NZC+先前非纹理大小其中a二(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;所述先前总帧NZC是代表先前帧的总非零系数(NZC)的累加的计数;且所述所需总帧NZC是识别帧的总非零系数(NZC)的初始固定值。21.根据权利要求20所述的程序代码;其中所述程序指令进一步包括在执行后可操作以进行以下操作的程序指令计算代表用于最大量化参数的帧的总非零系数(NZC)数目的总帧NZC值;以及基于所述总帧NZC值除以所述包数目的经舍入结果而计算代表目标包的非零系数(NZC)数目的目标包NZC值,所述包数目随配置模式而变。22.根据权利要求21所述的程序代码;其中所述程序指令进一步包括在执行后可操作以进行以下操作的程序指令在对当前宏区块进行编码,计算所述当前宏区块的非零系数(NZC)数目并将所述当前宏区块压縮到所述实际位流中之后,评估代表当前包的非零系数(NZC)的计数是否大于经更新包NZC值;以及当结果超过所述经更新包NZC值且包计数小于所述包数目时,在下一宏区块之前插入再同步标记或片标头并再计算所述经更新包NZC值。23.根据权利要求21所述的程序代码;其中所述最大量化参数对于呈MPEG4视频编码标准格式或H263视频编码标准格式的所述经编码视频数据是31,且对于呈H264视频编码标准格式的所述经编码视频数据是52。24.—种包交换视频电话装置,其包括编码装置,其用于对视频序列进行编码以产生经编码视频数据;视频汇编装置,其用于通过基于估计的帧大小估计将针对一帧产生的包数目且在逐个包的基础上基于至少所述估计的帧大小和所述包数目反复计算经更新包大小而将所述经编码视频数据汇编成动态调节的包,同时所述经编码视频数据被压縮到实际位流中;以及传输装置,其用于传输所述实际位流。25.根据权利要求24所述的装置;其中所述视频汇编装置包含确定装置,其用于基于配置模式、所述估计的帧大小以及初始固定目标包大小而确定所述包数目;以及计算装置,其用于基于所述包数目和所述估计的帧大小计算新的目标包大小。26.根据权利要求25所述的装置;其中所述视频汇编装置包含估计装置,所述估计装置用于通过将所述经编码数据压缩到模拟位流中来估计所述估计的帧大小。27.根据权利要求26所述的装置;其中所述估计装置包含插入装置,所述插入装置用于在所述模拟位流中插入模拟再同步标记或模拟片标头。28.根据权利要求27所述的装置;其中所述视频汇编装置包含压缩装置,其用于将所述经编码数据的当前宏区块压縮到所述实际位流中;前瞻装置,其用于在所述经编码视频数据中前瞻一个宏区块;评估装置,其用于评估代表所述当前包大小的大小的计数加上代表所述一个宏区块的大小的计数的预定部分的结果是否超过所述经更新包大小;以及插入装置,其用于当所述结果超过所述经更新包大小时在所述一个宏区块之前插入实际再同步标记或实际片标头;以及再计算装置,其用于当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么再计算所述经更新包大小。29.根据权利要求25所述的装置;其中所述视频汇编装置包括估计装置,所述估计装置用于通过计算所述经编码视频数据的当前宏区块的非零系数(NZC)数目并累加所述帧中每一宏区块的所述NZC数目以形成总帧NZC来估计所述估计的帧大小。30.根据权利要求29所述的装置;其中所述用于估计所述估计的帧大小的估计装置基于以下来计算所述估计的帧大小估计的帧大小=W总帧NZC+先前非纹理大小其中将ct定义为a二(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;且所述先前总帧NZC是所述先前帧的所述总帧NZC。31.根据权利要求30所述的装置;其中所述视频汇编装置包括前瞻装置,其用于在将所述经编码数据的当前宏区块压缩到所述实际位流中之后前瞻一个宏区块;评估装置,其用于评估代表当前包大小的计数加上所述一个宏区块中所述NZC的计数乘以预定因数的结果是否大于所述经更新包大小;插入装置,其用于当所述结果超过所述经更新包大小时在所述一个宏区块之前插入实际再同步标记或实际片标头;以及再计算装置,其用于当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么再计算所述经更新包大小。32.根据权利要求31所述的装置;其中所述视频汇编装置包括估计装置,所述估计装置用于基于以下来估计所述估计的帧大小估计—帧_大小=W所需总帧NZC+先前非纹理大小其中a二(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;所述先前总帧NZC是代表先前帧的总非零系数(NZC)的累加的计数;且所述所需总帧NZC是识别帧的总非零系数(NZC)的初始固定值。33.根据权利要求24所述的装置;其中所述视频汇编装置包括计算装置,其用于计算代表用于最大量化参数的帧的总非零系数(NZC)数目的总帧NZC值;以及计算装置,其用于基于所述总帧NZC值除以所述包数目的经舍入结果而计算代表目标包的非零系数(NZC)数目的目标包NZC值,所述包数目随配置模式而变。34.根据权利要求33所述的装置;其中所述视频汇编装置包括评估装置,其用于在对当前宏区块进行编码,计算所述当前宏区块的非零系数(NZC)数目并将所述当前宏区块压缩到所述实际位流中之后评估代表当前包的非零系数(NZC)的计数是否大于经更新包NZC值;以及插入装置,其用于当所述结果超过所述经更新包NZC值时在下一宏区块之前插入再同步标记或片标头,以及再计算装置,其用于当所述结果超过所述经更新包NZC值时且如果包计数小于所述包数目,那么再计算所述经更新包NZC值。35.根据权利要求34所述的装置;其中所述最大量化参数对于呈MPEG4视频编码标准格式或H263视频编码标准格式的所述经编码视频数据是31,且对于呈H264视频编码标准格式的所述经编码视频数据是52。36.根据权利要求24所述的装置,其中所述装置包括具有图像捕捉能力的蜂窝式电话、无线电话、卫星电话或其它移动/无线通信装置中的一者。37.—种方法,其包括以下步骤对视频序列进行编码以产生经编码视频数据;以及通过基于估计的帧大小估计将针对一帧产生的包数目且在逐个包的基础上基于至少所述估计的帧大小和所述包数目反复计算经更新包大小而动态调节所述经编码视频数据的包,同时所述经编码视频数据被压縮到实际位流中。38.根据权利要求37所述的方法;其中所述动态调节步骤包括以下步骤基于配置模式、所述估计的帧大小以及初始固定目标包大小确定所述包数目;以及基于所述包数目和所述估计的帧大小计算新的目标包大小。39.根据权利要求38所述的方法;其中所述动态调节步骤包含通过将所述经编码数据压缩到模拟位流中来估计所述估计的帧大小。40.根据权利要求39所述的方法;其中所述用于估计所述帧大小的估计步骤包含以下步骤在所述模拟位流中插入模拟再同步标记或模拟片标头。41.根据权利要求40所述的方法;其中动态调节步骤包含以下步骤将所述经编码数据的当前宏区块压縮到所述实际位流中;在所述经编码视频数据中前瞻一个宏区块;评估代表所述当前包大小的大小的计数加上代表所述一个宏区块的大小的计数的预定部分的结果是否超过所述经更新包大小;以及当所述结果超过所述经更新包大小时在所述一个宏区块之前插入实际再同步标记或实际片标头,以及当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么再计算所述经更新包大小。42.根据权利要求38所述的方法;其中所述动态调节步骤包括以下步骤通过计算所述经编码视频数据的当前宏区块的非零系数(NZC)数目并累加所述帧中每一宏区块的所述NZC数目以形成总帧NZC来估计所述估计的帧大小。43.根据权利要求42所述的方法;其中所述用于估计所述估计的帧大小的估计步骤基于以下来计算所述估计的帧大小估计的帧大小=W总帧NZC+先前非纹理大小其中将ot定义为a=(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;且所述先前总帧NZC是所述先前帧的所述总帧NZC。44.根据权利要求43所述的方法;其中所述动态调节步骤包括以下步骤在将所述经编码数据的当前宏区块压縮到所述实际位流中之后前瞻一个宏区块;评估代表当前包大小的计数加上所述一个宏区块中所述NZC的计数乘以预定因数的结果是否大于所述经更新包大小;当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么在所述一个宏区块之前插入实际再同步标记或实际片标头;以及当所述结果超过所述经更新包大小时且如果包计数小于所述包数目,那么再计算所述经更新包大小。45.根据权利要求37所述的方法;其中所述动态调节步骤包括以下步骤基于以下来估计所述估计的帧大小估计—帧_大小=00*所需总帧NZC+先前非纹理大小其中a^(先前帧大小一先前非纹理大小)/先前总帧NZC,且其中所述先前非纹理大小是代表先前帧中的非纹理位的计数;所述先前帧大小是所述先前帧的实际帧大小;所述先前总帧NZC是代表先前帧的总非零系数(NZC)的累加的计数;且所述所需总帧NZC是识别帧的总非零系数(NZC)的初始固定值。46.根据权利要求45所述的方法;其中所述动态调节步骤包括以下步骤计算代表用于最大量化参数的帧的总非零系数(NZC)数目的总帧NZC值;以及基于所述总帧NZC值除以所述包数目的经舍入结果而计算代表目标包的非零系数(NZC)数目的目标包NZC值,所述包数目随配置模式而变。47.根据权利要求46所述的方法;其中所述动态调节步骤包括以下步骤在对当前宏区块进行编码,计算所述当前宏区块的非零系数(NZC)数目并将所述当前宏区块压缩到所述实际位流中之后,评估代表当前包的非零系数(NZC)的计数是否大于经更新包NZC值;当所述结果超过所述经更新包NZC值时且如果包计数小于所述包数目,那么在下一宏区块之前插入再同步标记或片标头;以及当所述结果超过所述经更新包NZC值时且如果包计数小于所述包数目,那么再计算所述经更新包NZC值。48.根据权利要求47所述的方法;其中所述最大量化参数对于呈MPEG4视频编码标准格式或H263视频编码标准格式的所述经编码视频数据是31,且对于呈H264视频编码标准格式的所述经编码视频数据是52。49.一种编码器,其包括宏区块编码模块,其可操作以对视频序列进行编码以产生具有宏区块的经编码视频数据;以及包交换视频汇编器,其可操作以通过在逐个片的基础上反复计算经更新包大小而将所述经编码视频数据包化为动态调节的包,同时所述经编码视频数据被压縮到实际位流中,所述经更新包大小随着从固定初始目标帧大小得出的估计的帧大小以及估计的包数目而变。50.根据权利要求49所述的编码器其中通过将所述经编码视频数据压縮到模拟位流中且插入模拟再同步标记或模拟片标记来计算所述估计的帧大小。全文摘要一种装置具有编码器和包交换视频汇编器,所述包交换视频汇编器首先基于估计的帧大小和初始固定目标包大小来估计针对一个帧应产生多少个包。随后,在逐个包或逐个片的基础上再计算经更新包大小。所述视频汇编器包含三阶段过程。第一阶段在编码或不编码视频序列的情况下估计所述帧大小,其中在所述第一阶段包含编码的情况下,将经编码数据压缩到模拟位流中。第二阶段使用目标包大小、估计的帧大小以及配置模式来估计包数目。第三阶段在对每一MB预编码的情况下使用一个MB的前瞻方法动态地更新包大小。在替代实施例中,当在所述第三阶段期间发生对当前宏区块的编码时,所述第三阶段关闭所述前瞻特征。文档编号H04N7/52GK101518092SQ200780035394公开日2009年8月26日申请日期2007年9月25日优先权日2006年9月26日发明者吉尔·奥尔森,李彦辑申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1