用于基于质量和速率信息重新调整多媒体内容大小的方法和系统的制作方法

文档序号:7674896阅读:178来源:国知局
专利名称:用于基于质量和速率信息重新调整多媒体内容大小的方法和系统的制作方法
技术领域
本发明涉及多媒体编码与解码,且更特定来说,涉及多媒体大小的重新调整以用于有效统计多路复用。

背景技术
数据网络,例如无线通信网络,需要在针对单一终端定制的服务与向大量终端提供的服务之间折衷。举例来说,将多媒体内容分布给大量资源有限的便携式装置(订户)是一个复杂的问题。因此,网络管理者、内容零售商和服务提供者具有以快速且有效的方式分布内容和/或其它网络服务以在连网装置上呈现的方法是非常重要的。
内容传递/媒体分布系统可将实时与非实时服务包装于传输帧内且将所述帧传递到网络上的装置。举例来说,通信网络可利用正交频分多路复用(OFDM)以提供网络服务器与一个或一个以上移动装置之间的通信。此技术提供具有包装有待传递和在分布网络上传输的服务的数据槽的传输帧。


发明内容
大体上,本发明描述用于在多个编码器模块与一多路复用模块之间交换信息来以改进的质量组合来自编码器模块的数据区段的技术。明确地说,编码器模块使其各自数据区段与质量和速率信息(例如质量-速率曲线和/或质量-速率表)相关联。编码器模块将与数据区段相关联的至少质量和速率信息发送到多路复用模块。
多路复用模块分析至少质量和速率信息以确定编码器模块希望传输的数据区段是否适配于传输信道的可用带宽。如果多路复用模块确定多个数据区段不适配于可用带宽,那么多路复用模块基于从编码器模块接收的至少质量和速率信息而选择一个或一个以上区段重新调整大小。多路复用模块请求与选定数据区段相关联的编码器模块根据减小的位分配来重新调整数据区段大小。
在一个方面,一种组合数字多媒体数据流的方法包含接收与数字多媒体数据流相关联的多个数据区段的至少质量和速率信息,确定多个数据区段是否适配于可用带宽,当多个数据区段不适配于可用带宽时基于与多个数据区段相关联的至少质量和速率信息选择多个数据区段中的一者或一者以上重新调整大小,以及请求重新调整一个或一个以上选定数据区段中的每一者的大小以实现用于多个区段的可用带宽。质量和速率信息包含与多个数据区段相关联的质量-速率表,且其中质量-速率表中的每一者指示与相应数据区段相关联的至少一个或一个以上质量水平和数据区段在质量水平中的每一者时的大小。
在另一方面,一种用于组合数字多媒体数据流的设备包含数据收集模块,其接收与数字多媒体数据流相关联的多个数据区段的至少质量和速率信息;分配模块,其确定多个数据区段是否适配于可用带宽;以及选择模块,当多个数据区段不适配于可用带宽时,其基于与多个数据区段相关联的至少质量和速率信息选择多个数据区段中的一者或一者以上重新调整大小,并请求重新调整一个或一个以上选定数据区段中的每一者的大小以实现用于多个区段的可用带宽。质量和速率信息包含与多个数据区段相关联的质量-速率表,且其中质量-速率表中的每一者指示与相应数据区段相关联的至少一个或一个以上质量水平和数据区段在质量水平中的每一者时的大小。
在另一方面,一种用于组合数字多媒体数据流的设备包含用于接收与数字多媒体数据流相关联的多个数据区段的至少质量和速率信息的装置;用于确定多个数据区段是否适配于可用带宽的装置;用于当多个数据区段不适配于可用带宽时基于与多个数据区段相关联的至少质量和速率信息选择多个数据区段中的一者或一者以上重新调整大小的装置;以及用于请求重新调整一个或一个以上选定数据区段中的每一者的大小以实现用于多个区段的可用带宽的装置。质量和速率信息包含与多个数据区段相关联的质量-速率表,且其中质量-速率表中的每一者指示与相应数据区段相关联的至少一个或一个以上质量水平和数据区段在质量水平中的每一者时的大小。
在另一方面,一种用于处理数字视频数据的处理器适于接收与数字多媒体数据流相关联的多个数据区段的至少质量和速率信息,确定多个数据区段是否适配于可用带宽,当多个数据区段不适配于可用带宽时基于与多个数据区段相关联的至少质量和速率信息选择多个数据区段中的一者或一者以上重新调整大小,以及请求重新调整一个或一个以上选定数据区段中的每一者的大小以实现用于多个区段的可用带宽。质量和速率信息包含与多个数据区段相关联的质量-速率表,且其中质量-速率表中的每一者指示与相应数据区段相关联的至少一个或一个以上质量水平和数据区段在质量水平中的每一者时的大小。
本文所描述的技术可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述技术可整体或部分由计算机可读媒体来实现,所述计算机可读媒体包含指令,所述指令当由处理器执行时执行本文所描述的方法中的一者或一者以上。因此,本发明还涵盖用于处理数字视频数据的计算机程序产品,其包含计算机可读媒体,所述计算机可读媒体包含指令,所述指令促使至少一个计算机接收与数字多媒体数据流相关联的多个数据区段的至少质量和速率信息,确定多个数据区段是否适配于可用带宽,当多个数据区段不适配于可用带宽时基于与多个数据区段相关联的至少质量和速率信息选择多个数据区段中的一者或一者以上重新调整大小,以及请求重新调整一个或一个以上选定数据区段中的每一者的大小以实现用于多个区段的可用带宽。质量和速率信息包含与多个数据区段相关联的质量-速率表,且其中质量-速率表中的每一者指示与相应数据区段相关联的至少一个或一个以上质量水平和数据区段在所述质量水平中的每一者时的大小。
在又一方面,一种用于编码数字多媒体数据流的方法包含使所述流的数据区段与至少质量和速率信息相关联,以及发送与数据区段相关联的至少质量和速率信息用于多路复用处理。质量和速率信息包含与数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
在另一方面,一种用于编码数字多媒体数据流的设备包含内容分类模块,其使所述流的数据区段与至少质量和速率信息相关联;以及编码模块,其发送与所述数据区段相关联的至少质量和速率信息用于多路复用处理。质量和速率信息包含与数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
在另一方面,一种用于编码数字多媒体数据流的设备包含用于使所述流的数据区段与至少质量和速率信息相关联的装置,以及用于发送与数据区段相关联的至少质量和速率信息用于多路复用处理的装置。质量和速率信息包含与数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
在又一方面,一种用于处理数字视频数据的处理器适于使所述流的数据区段与至少质量和速率信息相关联,以及发送与数据区段相关联的至少质量和速率信息用于多路复用处理。质量和速率信息包含与数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
在另一方面,一种用于处理数字视频数据的计算机程序产品包含计算机可读媒体,所述计算机可读媒体包含促使至少一个计算机执行以下操作的指令使所述流的数据区段与至少质量和速率信息相关联,以及发送与数据区段相关联的至少质量和速率信息用于多路复用处理。质量和速率信息包含与数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
一个或一个以上方面的细节在附图与下文的描述中陈述。从描述内容与图式以及从权利要求书中将了解其它特征、目的和优势。



图1展示包含例示性多路复用系统的网络。
图2展示用于多路复用器系统中的例示性服务器。
图3展示用于多路复用系统中的说明MLC槽分配的例示性帧。
图4展示用于多路复用系统中的包含各种MLC分配形状的例示性帧。
图5展示说明传输模式参数与选定MLC分配的最大槽高度值之间的关系的表。
图6展示用于多路复用系统中的说明不同MLC槽分配的例示性帧。
图7展示提供用于多路复用系统中的例示性分配算法的方法。
图8展示用于多路复用系统中的基于第一不等式条件将槽分配到RT服务的例示性方法。
图9展示用于多路复用系统中的基于第二不等式条件将槽分配到RT服务的例示性方法。
图10展示说明例示性多路复用系统分配过量四区块服务的操作的帧。
图11展示用于多路复用系统中的基于第三不等式条件将槽分配到RT服务的例示性方法。
图12展示说明例示性多路复用系统分配过量三区块服务的操作的帧。
图13展示用于多路复用系统中的基于第四不等式条件将槽分配到RT服务的例示性方法。
图14展示说明例示性多路复用系统分配过量六区块服务的操作的帧。
图15展示说明用于多路复用系统中的将两个RT服务包装于传输帧中的例示性分配算法的操作的帧。
图16展示说明以使得未用槽被分组于两个区域中的方式包装RT服务的例示性分配算法的操作的帧。
图17展示用于多路复用系统中的被分成用于RT服务与ORT服务的区域的例示性帧。
图18展示其中ORT服务区域被分成不同高度区块的例示性帧。
图19展示用于多路复用系统中的将槽分配到ORT服务的例示性方法。
图20展示用于多路复用系统中的提供槽分配、重新调整大小和拥塞控制的例示性方法。
图21展示用于多路复用系统中的提供重新调整实时服务大小的例示性方法。
图22展示用于多路复用系统中的提供拥塞控制的例示性方法。
图23展示例示性多路复用系统。
图24是说明根据本文所描述的技术编码多媒体数据的例示性多媒体编码装置的框图。
图25是说明根据本文所描述的技术编码多媒体数据的例示性多媒体编码装置的框图。
图26是说明根据本发明的技术发挥作用的例示性编码器模块的框图。
图27是说明根据本发明的技术管理位分配的例示性多路复用模块的框图。
图28是说明根据本发明的技术编码多媒体数据的编码器模块的例示性操作的流程图。
图29是根据本发明的技术管理位分配的多路复用模块的例示性操作的流程图。
图30是说明多路复用模块使用与数据区段相关联的质量-速率表选择数据区段重新调整大小的例示性操作的流程图。

具体实施例方式 在本发明的一个或一个以上方面,提供一种多路复用系统,其经操作以将内容流多路复用到传输帧内以用于在数据网络上进行传输。举例来说,经多路复用的内容流包含用于传输到一装置的实时和/或非实时服务的特定配置、序列、混合和/或选择。所述系统尤其适用于无线网络环境中,但可用于任何类型的网络环境中,包括(但不限于)通信网络、公共网络(例如因特网)、专用网络(例如虚拟专用网络(VPN))、局域网、广域网、长途网络或任何其它类型的数据网络。
出于本描述的目的,多路复用系统的一个或一个以上方面在本文中参照利用正交频分多路复用(OFDM)来提供网络服务器与一个或一个以上移动装置之间的通信的通信网络来描述。举例来说,在OFDM系统中,超级帧被界定为包含时分多路复用(TDM)导频信号、频分多路复用(FDM)导频信号、额外开销信息符号(OIS)和数据符号。数据槽包括在一个OFDM符号时间内发生的数据符号的集合。作为一实例,数据槽可包括500个数据符号的集合。此外,在超级帧中的OFDM符号时间可载运多个数据槽,例如七个槽。
以下定义在本文中用于描述多路复用系统的一个或一个以上方面。
流服务的一元素,例如一服务可具有两个流—音频流和视频流。
服务可具有一个或一个以上流的媒体内容。
MLC用于数据或控制信息的媒体逻辑信道(“信道”)。
重新调整大小一程序,通过所述程序重新调整服务的大小以需要较小带宽用于传输。
额外开销信息符号(OIS) 在超级帧中载运关于各种MLC在超级帧中的位置的信息的符号。
槽在OFDM符号上分配到MLC的最小带宽单位。
图1说明多媒体编码与解码系统100。系统100包含多媒体编码装置(例如服务器104),多媒体解码装置(例如移动装置102)和数据网络106。出于本描述的目的,将假定数据网络106操作以使用OFDM技术与一个或一个以上便携式装置通信;然而,所述多路复用器系统同样适于使用其它传输技术,例如多种无线电接入技术中的任一者,例如全球移动通信系统(GSM)、CDMA2000、宽带CDMA(W-CDMA)、CDMA1xEV-DO,或经制定以帮助由各种IEEE 801.11x标准界定的无线连网的广泛的标准系列。
在一个方面,服务器104操作以向与网络106通信的一个或一个以上装置(例如移动装置102)提供服务。举例来说,所述装置可预订由服务器104提供的服务。服务器104经由通信链路108耦合到网络106。通信链路108包含任何适当的通信链路,例如操作以允许服务器104与网络106通信的有线和/或无线链路。网络106包含允许从服务器104将服务传递到与网络106通信的装置(例如装置102)的有线和/或无线网络的任何组合。
应注意,网络106可与在本发明的范围内的任何数目和/或类型的便携式装置通信。为了简单起见,在图1中说明单一多媒体解码装置18。举例来说,其它适用于所述多路复用器系统中的装置包括(但不限于)个人数字助理(PDA)、电子邮件装置、寻呼机、笔记本或膝上型计算机、台式计算机、数字音乐与视频装置(例如mp3播放器与那些以商标名“iPod”销售的装置)、无线电话(例如蜂窝式、基于卫星或地面的无线电话)。无线链路110包含基于OFDM技术的无线通信链路;然而,无线链路可包含操作以允许装置与网络106通信的任何适当的无线技术。
在图1中说明的装置102包含经由无线链路110与网络106通信的移动电话。在某些情况下,装置102参与允许装置102在网络106上预订以接收服务的启动过程。启动过程可由服务器104执行。然而,启动过程还可通过另一服务器、服务提供者、内容零售商或其它网络实体来执行。出于本描述的目的,将假定装置102通过服务器104执行启动过程且现准备预订并接收来自服务器104的服务。尽管在图1中所说明的实例依据预订服务而描述,但装置102可在网络106上接收无需预订的服务。
服务器104与实时媒体服务器(RTMS)126通信,实时媒体服务器(RTMS)126包含包括一个或一个以上实时(RT)服务112的内容或具有对其的存取权。服务器104还可与非实时媒体服务器(NRTMS)128通信,非实时媒体服务器(NRTMS)128包含一个或一个以上不同于实时(ORT)的或非实时(NRT)服务120或具有对其的存取权。举例来说,服务(112、120)包含包括新闻、体育、天气、金融信息、电影和/或应用、程序、指令码或任何其它类型的适当内容或服务的多媒体内容。因此,服务(112、120)可包含视频、音频或其它以任何适当格式格式化的信息。应注意,服务器104还可与包含RT和/或ORT服务或具有对其的存取权的一个或一个以上其它媒体服务器通信。服务(112、120)具有相关联的传递要求,其可包括(但不限于)带宽、质量和速率信息、优先权、等待时间、服务类型和/或任何其它类型的传递要求。
服务器104还包含多路复用器(MUX)114,其操作以基于传递要求有效地将所述服务(112、120)中的一者或一者以上多路复用到传输帧122内。服务器104在网络106上将所述传输帧传输到装置102,如路径118所示。MUX 114的更详细的描述在本文献的另一部分中提供。由于MUX 114的操作的缘故,服务(112、120)最佳地包装于传输帧122内以使得满足服务(112、120)的传递要求(带宽、优先权、等待时间、服务类型等),有效地利用传输帧122的传输带宽,且节省接收装置102处的功率。举例来说,通过有效地利用可用带宽,移动装置可在短时间间隔内接收经传输的服务,借此节省电池功率。
MUX 114可包含重新调整大小的控制器116,其操作以控制RT服务112和/或ORY服务120如何被重新调整大小。举例来说,如果待多路复用到传输帧122内的选定RT服务112将不适配于传输帧122的可用带宽,那么重新调整大小的控制器116操作以控制那些服务如何被重新调整大小(或重新编码)以减小其带宽要求。如将在本文中详细描述,重新调整大小的控制器116可分析与RT服务相关联的质量和速率信息以确定哪些RT服务将重新调整大小,且与RTMS 126通信以请求对选定RT服务的选定重新调整大小。重新调整大小的控制器116还以类似方式操作以与NRTMS 128通信来控制选定ORT服务120如何被重新调整大小。由于重新调整大小的控制器116的操作的缘故,经重新调整大小的RT与ORT服务将适配于传输帧122的可用带宽。重新调整大小的控制器116的更详细的描述在本文献的另一部分中提供。
装置102可包含解多路复用器(DE-MUX)逻辑124,其操作以解多路复用传输帧122以获得经传输的服务(112、120)。由于服务已被有效地多路复用到传输帧122,所以节省了网络带宽且装置102利用较少功率来接收经传输的服务。
因此,多路复用系统操作以执行以下功能中的一者或一者以上从而提供RT与ORT服务到传输帧中的有效多路复用。
1.接收一个或一个以上RT和/或ORT服务或获得对其的存取权以用于在网络上传输。
2.确定RT和/或ORT服务是否将适配于传输帧的可用带宽。
3.如果RT和/或ORT服务不适配于传输帧,那么重新调整一个或一个以上选定RT和/或ORT服务的大小以减小其带宽要求。
4.利用一分配算法来汇编传输帧与原始和/或经重新调整大小的RT服务,与原始和/或经重新调整大小的ORT服务以使所述帧被有效地包装。
5.在网络上将所述传输帧传输到一个或一个以上接收装置。
因此,多路复用系统操作以有效地将一个或一个以上RT和/或ORT服务多路复用和传输到数据网络上的装置。应注意,多路复用系统并不限于参看图1所描述的实施方案,且其它实施方案在本发明的范围内是可能的。
图2展示用于多路复用系统中的例示性服务器200。举例来说,服务器200可用作图1中的服务器104。服务器200包含处理逻辑202、存储器204和收发器逻辑206,其均耦合到数据总线208。服务器200还包含多路复用器(MUX)逻辑210和重新调整大小的控制器212,其也耦合到数据总线208。应注意,服务器200仅表示一个实施方案且其它实施方案可能在本发明的范围内。
处理逻辑202可包含CPU、处理器、门阵列、硬件逻辑、存储器元件、虚拟机、软件和/或硬件与软件的任何组合。因此,处理逻辑202通常包含执行机器可读指令和经由数据总线208控制服务器200的一个或一个以上其它功能元件的逻辑。
收发器逻辑206包含操作以允许服务器200经由通信信道214与远程装置或系统传输与接收数据和/或其它信息的硬件和/或软件。举例来说,通信信道214可包含任何适当类型的无线或有线通信链路或其组合以允许服务器200直接与其它服务器或与一个或一个以上数据网络和/或耦合到那些数据网络的装置进行通信。
存储器204包含允许服务器200存储信息参数的任何适当类型的存储装置或元件。举例来说,存储器204可包含任何类型的随机存取存储器(RAM)、快闪存储器、硬盘或任何其它类型的存储装置。
处理逻辑202可操作以经由收发器逻辑206与信道214与一个或一个以上内容提供者通信。处理逻辑202与RTMS通信以接收RT服务216且与NRTMS通信以接收ORT服务218。举例来说,RT服务216与ORT服务218包含待传递到网络上的装置的一个或一个以上内容流。此外,RT 216与ORT 218服务具有相关联的传递要求,其包括(但不限于)质量和速率信息、带宽、优先权、等待时间、服务类型和/或任何其它类型的传递要求。在本发明的一个方面,处理逻辑202接收与RT服务216相关联的至少质量和速率信息以帮助监控将包括于传输帧122内的RT服务216的大小并且选择所述RT服务216中的一者或一者以上重新调整大小。此外,如果处理逻辑202在传输帧中包括ORT服务218,那么处理逻辑202可接收与ORT服务218相关联的传递要求,例如优先权与等待时间信息,以监控将包括于传输帧122内的ORT服务的大小。
MUX逻辑210可包含CPU、处理器、门阵列、硬件逻辑、存储器元件、虚拟机、软件、固件和/或硬件、软件与固件的任何组合。MUX逻辑210操作以基于传递要求将所述RT服务216和/或ORT服务218中的一者或一者以上多路复用到传输帧中以使用收发器逻辑206与信道214传输到装置。举例来说,MUX逻辑210操作以确定选定ORT服务218、RT服务216和尽力式服务(Best Effort service)(未图示)是否将适配于传输帧的可用带宽(相对于其传递要求)。在一个方面,MUX逻辑210分析与RT服务216,ORT服务218和尽力式服务(未图示)相关联的传递要求以确定服务216、218是否将适配于传输帧的可用带宽。相对于RT服务216,举例来说,MUX逻辑210可分析与RT服务216中的每一者相关联的至少质量和速率信息来确定RT服务216是否适配于用于传输RT服务216的传输帧或传输帧的至少一部分的可用带宽。类似地,相对于ORT服务218,MUX逻辑210可分析其它传递要求,例如优先权与等待时间要求,来确定RT服务216是否适配传输帧的可用带宽。举例来说,尽力式服务包含需要被传输的任何类型的数据或信息。如果上述流将适配于可用带宽,那么MUX逻辑210操作以根据本文所述的一个或一个以上分配算法将其包装于传输帧内。
如果选定RT服务216和/或ORT服务218将不适配于传输帧,那么MUX逻辑210向重新调整大小的控制器212传输信号。重新调整大小的控制器212操作以控制那些服务如何被重新调整大小以适配于传输帧的可用带宽。在本发明的一个方面,重新调整大小的控制器212分析与所述服务相关联的传递要求以选择所述服务216、218中的一者或一者以上来重新调整大小。举例来说,重新调整大小的控制器212可分析与RT服务216相关联的至少质量和速率信息和与ORT服务218相关联的优先权与等待时间要求来选择待重新调整大小的服务。以此方式,重新调整大小的控制器212操作以确定特定服务减小其传输带宽要求所需的“重新调整大小”的程度。接着,重新调整大小的控制器212汇编传输到与所述服务相关联的媒体服务器的重新调整大小的请求。举例来说,重新调整大小的请求由收发器逻辑206使用通信链路214传输。接着,媒体服务器操作以根据本文所述的技术按照请求重新调整服务的大小。在重新调整服务的大小以减小其带宽要求后,MUX逻辑210能够有效地将原始服务和任何经重新调整大小的服务包装于传输帧内。由MUX逻辑210提供的分配算法的更详细的描述在本文献的另一部分中提供。
重新调整大小的控制器212可包含CPU、处理器、门阵列、硬件逻辑、存储器元件、虚拟机、软件和/或硬件与软件的任何组合。重新调整大小的控制器212操作以控制所述RT服务216与ORT服务218流中的一者或一者以上如何基于与所述服务相关联的传递要求被重新调整大小以使得那些流将适配于传输帧的可用带宽。因此,重新调整大小的控制器212操作以重新调整一个或一个以上服务的大小从而调整其相关联的传递要求。举例来说,当没有足够带宽来传输一服务时,所述服务可被下调大小使得其带宽要求减小,或当存在过量可用带宽时,上调大小使得其带宽要求增加。重新调整大小的控制器212可为MUX逻辑210的一部分。重新调整大小的控制器212的更详细的描述在本文献的另一部分中提供。
多路复用系统可包含具有存储于计算机可读媒体上的一个或一个以上程序指令(“指令”)的计算机程序,所述一个或一个以上程序指令当由至少一个处理器(例如处理逻辑202)执行时提供本文所述的多路复用系统的功能。举例来说,指令可从计算机可读媒体载入到服务器200内,计算机可读媒体例如软性磁盘、CDROM、存储卡、快闪存储器装置、RAM、ROM或介接到服务器200的任何其它类型的存储器装置或计算机可读媒体。或者,所述指令可经由收发器逻辑206从介接到服务器200的外部装置或网络资源下载到服务器200内。所述指令当由处理逻辑202执行时,提供如本文所述的多路复用系统的一个或一个以上方面。
因此,服务器200操作以提供多路复用系统来有效地将与RT服务216和ORT服务218相关联的流多路复用到传输帧中以传输到网络上的装置。
传输帧槽分配算法 下文的描述内容描述用于多路复用系统中的槽分配算法。槽分配算法可操作以将传输帧中的槽分配到与可用RT或ORT服务相关联的内容流。分配算法操作以实现有效的带宽利用且借此允许接收装置节省功率。分配算法可由MUX逻辑210和/或在MUX逻辑210的控制下执行。
出于本描述的目的,传输帧将在下文中被称作超级帧。应注意,超级帧仅是一个实施方案且多路复用系统适用于其它类型的传输帧实施方案。
超级帧可(例如)包含用于带宽分配的数据符号部分。超级帧的数据符号部分可被分成四个相等部分,其在下文中被称作“帧”。来自待传输的服务的数据(其在一方面在里德所罗门(Reed Solomon,RS)区块中)被均匀分布于四个帧上。因此,槽分配算法在超级帧上的操作是槽分配算法在帧上的操作的重复。因此,以下描述内容描述在帧上的槽分配,但同样适用于整个超级帧。此外,所讨论的槽分配算法可用于为所有类型的服务分配槽,所述服务包括(但不限于)实时服务、非实时服务和IP数据播报(datacast)。
信道分配 在一个或一个以上方面,媒体逻辑信道(MLC)载运一个或一个以上相同服务流。因此,每一服务可具有一个或一个以上MLC,其在帧中的位置描述于OIS中。希望接收特定MLC的装置从OIS获得所述MLC的位置。使用以下各项在OIS中描述MLC在帧中的位置。
-开始符号 -开始槽 -最低槽 -最高槽 -总槽 图3展示说明用于多路复用系统中的MLC槽分配的帧300的实例。帧300包含“N”个OFDM符号用于七个(7)槽中的每一者。MLC槽分配是在302处大体展示的阴影区。两个变量用于描述槽分配,即长度与高度。长度在OFDM符号中且高度在槽中。
分配形状 图4展示用于多路复用系统中的包含各种MLC分配形状的帧400的实例。举例来说,MLC分配是在402、404、406和408处大体展示的阴影区。在一实例中,选择分配形状使得其可使用固定有限数目的数据字段而描述于帧400的OIS中。
分配的高度 图5展示说明传输模式参数与选定MLC分配的最大槽高度值之间的关系的表500。涡轮码解码器(turbo decoder)在接收装置处的峰值输出速率限制可在单一OFDM符号中解码的涡轮码包的数目。因此,可约束MLC分配的高度。被称作最大槽高度的变量(“maxSlotHeight”)用于表示给定传输模式的MLC分配的最大槽高度。举例来说,从表500中可见,传输模式四(4)支持具有maxSlotHeight三(3)的MLC分配,且传输模式一(1)支持具有maxSlotHeight七(7)的MLC分配。
分配算法 在一方面,选定服务的所有MLC被分组在一起使得其分配在帧中时间上邻近。这减小接收装置需要“醒来”以接收服务的不同MLC的次数。因此,减少或节省了接收装置的功率消耗。
相对于接收装置的功率消耗,优选地MLC分配的高度为其maxSlotHeight。这使装置接收所述MLC的可能的“开启时间”最小化。然而,为了使包装简单,一服务的所有分组MLC以相同高度分配。因此,“服务的maxSlotHeight”的概念被定义为经分组用于所述服务的所有MLC的maxSlotHeight参数的最小值。在本描述的其余部分,服务的高度将意味着所述服务的所有MLC分配的共同高度。
图6展示用于多路复用系统中的说明不同MLC槽分配的帧600的实例。帧600被分成具有不同高度的区块的MLC分配。在一实例中,区块高度对应于一服务可采取的可能的maxSlotHeight。从图5所示的表500中可确定存在四种可能的maxSlotHeight(即,3、4、6或7)。在一实例中,槽分配算法操作以基于maxSlotHeight参数将服务包装于不同区块分配中。举例来说,基于可能的maxSlotHeight(即,3、4、6或7)的分配分别在602、604、606和607处展示。
分配算法操作 下文是用于多路复用系统中的例示性分配算法的描述。MUX逻辑210可操作以实施所述分配算法以执行下文所述的函数。
对于分配算法的输入如下。
1.服务的每一信道所具有的用于帧的数据槽的数目。
2.服务的每一信道的maxSlotHeight,其通过所述信道的传输模式确定。
算法的输出如下。
1.指示包装是否可能的决策。如果包装是可能的,那么算法给出MLC分配的位置。
2.如果包装是不可能的,那么槽分配算法向重新调整大小的控制器212请求重新调整服务的大小。在一方面,重新调整大小的控制器212决定对哪些服务重新调整大小和以什么速率重新调整大小。重新调整大小的控制器212的操作的描述在本文献的另一部分中提供。
图7展示用于多路复用系统中的提供分配算法的例示性方法700。举例来说,所述方法700操作以将槽分配到一个或一个以上RT服务。在一方面,MUX逻辑210操作以提供如下文所述的方法700的函数。
在框702处,执行一测试以确定所有RT服务所需以多路复用于一帧中的槽的总数是否大于可用槽的数目。举例来说,MUX逻辑210做出此确定。在一方面,可用槽的数目具有为“每帧的符号数目”(numOfdmSymbolsPerFrm)的七倍的值。如果所需槽的数目大于可用槽,那么方法进行到框718。如果所需槽的数目小于或等于可用槽的数目,那么方法进行到框704。
在框718处,确定包装失败。举例来说,在一方面,MUX逻辑210确定没有足够的可用槽来包装所述服务且所述方法接着结束于框716处。
在框704处,计算用于每一RT服务的maxSlotHeight参数。举例来说,在一方面,MUX逻辑210操作以执行此计算。maxSlotHeight指示对于每一RT服务可允许的每符号的槽的最大数目。
在框706处,待多路复用的RT服务基于其maxSlotHeight参数被分组为“三区块服务”(threeBlkSrvcs)、“四区块服务”(fourBlkSrvcs)、“六区块服务”(sixBlkSrvcs)和“七区块服务”(sevenBlkSrvcs)。在一方面,MUX逻辑210经操作通过其槽要求来分组服务。
在框708处,在每一组中的RT服务通过减小数据槽的数目而被分类。举例来说,RT服务相对于所需数据槽从最大到最小进行分类。
在框710处,计算长度变量L7、L6、L4和L3。举例来说,sevenBlkSrvcs的长度为“L7”,sixBlkSrvcs的长度为“L6”,fourBlkSrvcs的长度为“L4”,且threeBlkSrvcs的长度为“L3”。举例来说,所有sevenBlkSrvcs的长度被定义为 L7=ceil(所有sevenBlkSrvcs的总数据槽/7) 其中,ceil(x)是大于x的最小整数。在一方面,MUX逻辑210操作以计算长度参数(L7、L6、L4和L3)。
在框712处,执行一个或一个以上不等式检查。举例来说,检查以下不等式以确定每一者是真还是假。
L7+L3+L6<=numOfdmSymbolsPerFrm (1) L7+L4+L6<=numOfdmSymbolsPerFrm (2) 作为上述不等式的结果,确定四种不等式条件。第一不等式(1)具有在下文中被称作(1T,1F)的真与假结果。第二不等式(2)具有在下文中被称作(2T,2F)的真与假结果。因此,上述两个不等式提供用于根据多路复用系统的一个或一个以上方面分配槽的四种不等式条件(即,1T2T、1T2F、1F2T、1F2F)。
在框714处,基于四种不等式条件中的一者,将槽分配到RT服务。举例来说,在框712处执行的不等式检查的结果用于将槽分配到RT服务。四种条件中的每一者确定如在本文献的以下部分中所讨论的分配方法中描述的分配。
应注意,方法700仅表示一种实施方案且方法700的变化、添加、删除、组合或其它修改可能在本发明的范围内。
图8展示用于多路复用系统中的基于第一不等式条件将槽分配到RT服务的例示性方法800。举例来说,方法800提供与由(1T2T)描述的第一不等式条件相关联的槽分配。在一方面,MUX逻辑210操作以提供如下文所述的方法800的功能。
在框802处,执行一测试以确定第一不等式的状态是否为真(即1T)。如果第一不等式(1)的状态不为1T,那么方法进行到框804。如果第一不等式(1)的状态为1T,那么方法进行到框806。
在框804处,方法继续以测试第二不等式条件。举例来说,由于第一不等式(1)的状态不为1T,那么方法进行到方法900以测试第二不等式条件(1T2F)。
在框806处,执行一测试以确定第二不等式(2)的状态是否为真(即,2T)。如果第二不等式(2)的状态不为2T,那么方法进行到框804。如果第二不等式(2)的状态为2T,那么方法进行到框808。
在框808处,方法进行到最终操作。因为两种状态(1T2T)均存在,所以方法进行到最终操作(在下文中描述)以完成槽分配。
应注意,方法800仅表示一种实施方案且方法800的变化、添加、删除、组合或其它修改可能在本发明的范围内。
图9展示用于多路复用系统中的基于第二不等式条件将槽分配到RT服务的例示性方法900。举例来说,方法900提供与由(1T2F)描述的第二不等式条件相关联的槽分配。在一方面,MUX逻辑210操作以提供如下文所述的方法900的功能。
在框902处,执行一测试以确定第一不等式(1)的状态是否为真(即1T)。如果第一不等式(1)的状态不为1T,那么方法进行到框904。如果第一不等式(1)的状态为1T,那么方法进行到框906。
在框904处,方法继续以测试第三不等式条件。举例来说,由于第一不等式(1)的状态不为1T,那么方法进行到方法1100以测试第三不等式条件(1F2T)。
在框906处,执行一测试以确定第二不等式(2)的状态是否为假(即,2F)。如果第二不等式(2)的状态不为2F,那么方法进行到框904。如果第二不等式(2)的状态为2F,那么方法进行到框908,在框908处处理四区块服务。
图10展示说明多路复用系统的一方面的分配过量四区块服务的操作的帧1000。举例来说,分配区块包含threeBlk 1002、fourBlk 1004、sixBlk 1006和sevenBlk 1008。分配区块还包括reg2Blk 1010。帧1000说明方法900如何操作以将过量四区块服务(fourBlkSrvc)1012分配到fourblk 1004、threeblck 1002和reg2blk 1010分配区块。在一方面,方法900操作以将RT服务分配到图10所示的帧1000。
再次参看图9,在框908处,处理四区块服务。举例来说,在一方面,MUX逻辑210操作以如在下文中参照图10所示的帧1000所描述而处理四区块服务。
a.找到fourBlk 1004可保持的满足上文参照方法800所描述的第一不等式条件的至多fourBlkSrvc。接着在无过量fourBlkSrvcs的情况下更新fourBlk 1004。
b.将过量fourBlkSrvcs移动到threeBlk 1002与reg2Blk 1010。Reg2Blk 1010是如图10所示的高度为1的区块。
c.在移动过量fourBlkSrvcs时还检查相继服务是否可适配于fourBlk 1004自身。
d.仅在以下有条件不等式为真的情况下完成移动。
((L7+L3+L6)<=numOfdmSymbolsPerFrm)&& ((L7+L4+L6)<=numOfdmSymbolsPerFrm)&& ((L7+L4+Lreg2)<=numOfdmSymbolsPerFrm) 在框910处,执行一测试以确定是否过量四区块服务可如上文所述而移动。如果过量fourBlkSrvcs不可移动到threeBlk 1002或reg2Blk 1010以满足框908处的有条件不等式,那么方法进行到框914,在框914处确定包装失败且方法停止。如果可移动过量fourBlkSrvcs,那么方法进行到框912。
在框912处,方法进行到最终操作。因为过量fourBlkSrvcs能够成功地被移动,所以方法进行到最终操作以完成槽分配。
应注意,方法900仅表示一种实施方案且方法900的变化、添加、删除、组合或其它修改在本发明的范围内是可能的。
图11展示用于多路复用系统中的基于第三不等式条件将槽分配到RT服务的例示性方法1100。举例来说,方法1100提供当存在第三不等式条件(1F2T)时的分配。在一方面,MUX逻辑210操作以提供如下文所述的方法1100的功能。
在框1102处,执行一测试以确定第一不等式(1)的状态是否为假(即,1F)。如果第一不等式(1)的状态不为1F,那么方法进行到框1104。如果第一不等式(1)的状态为1F,那么方法进行到框1106。
在框1104处,方法继续以处理第四不等式条件。举例来说,由于第一不等式(1)的状态不为1F,因此方法进行到方法1300以处理第四不等式条件(1F2F)(现其必定存在,因为其为剩余的唯一条件)。
在框1106处,执行一测试以确定第二不等式(2)的状态是否为真(即,2T)。如果第二不等式(2)的状态不为2T,那么方法进行到框1104。如果第二不等式(2)的状态为2T,那么方法进行到框1108。
图12展示说明多路复用系统的一方面的分配过量三区块服务的操作的帧1200。举例来说,分配区块包含threeBlk 1202、fourBlk 1204、sixBlk 1206、reg2Blk 1208和reg1Blk1210。帧1200说明方法1100如何操作以将过量三区块服务(threeBlkSrvcs)1212分配到threeBlk 1202、reg1Blk 1210和reg2Blk1208分配区块。
再次参看图11,在框1108处,处理三区块服务(threeblkSrvcs)。举例来说,在一方面,MUX逻辑210操作以如下处理threeblkSrvcs。
a.找到threeBlk1202可保持的满足上文参照方法800所描述的第一不等式条件的至多threeBlkSrvc。接着在无过量threeBlkSrvcs的情况下更新threeBlk 1202。
b.将过量threeBlkSrvcs移动到reg1Blk 1210与reg2Blk 1208。Reg1Blk 1210是如图12所示的高度为3的区块。
c.在移动时,还检查相继服务是否可适配于threeBlk 1202自身。
d.仅在以下有条件不等式为真的情况下完成移动。
((L7+L3+L6)<=numOfdmSymbolsPerFrm)&& ((L7+L4+Lreg1+L6)<=numOfdmSymbolsPerFrm)&& ((L7+L4+Lreg2)<=numOfdmSymbolsPerFrm) 在框1110处,执行一测试以确定是否可移动过量三区块服务。如果过量threeBlkSrvcs不可移动到reg1Blk 1210或reg2Blk 1208以满足框1108处的有条件不等式,那么方法进行到框1112,在框1112处确定包装失败且方法停止。如果可移动过量三区块服务,那么方法进行到框1114。
在框1114处,方法进行到最终操作。因为过量threeBlkSrvcs能够成功地被移动,所以方法进行到最终操作以完成槽分配。
应注意,方法1100仅表示一种实施方案且方法1100的变化、添加、删除、组合或其它修改可能在本发明的范围内。
图13展示用于多路复用系统中的基于第四不等式条件将槽分配到RT服务的例示性方法1300。方法1300提供当第一、第二和第三不等式条件不存在时的分配。在此情况下,不等式的状态可被描述为(1F2F)。在一方面,MUX逻辑210操作以提供如下文所述的方法1300的功能。
图14展示说明多路复用系统的一方面的分配过量六区块服务的操作的帧1400。举例来说,帧1400包含threeBlk 1402、fourBlk 1404、reg2Blk 1406和sixBlk 1408分配区块。帧1400说明过量六区块服务(sixBlkSrvcs)1410如何被分配。
再次参看图13,在框1302处,处理六区块服务。举例来说,在一方面,MUX逻辑210操作以如下处理六区块服务。
a.找到fourBlk 1404和sixBlk 1408可保持的满足上文参照方法800所描述的第一不等式条件的至多sixBlkSrvc。接着在无过量服务的情况下更新sixBlk 1408。
b.将过量sixBlkSrvcs移动到threeBlk 1402、fourBlk 1404和reg2Blk 1406。
c.在移动时,还检查相继服务是否可适配于sixBlk 1408自身。
d.仅在以下有条件不等式为真的情况下完成移动。
((L7+L3+L6)<=numOfdmSymbolsPerFrm)&& ((L7+L4+L6)<=numOfdmSymbolsPerFrm)&& ((L7+L4+Lreg2)<=numOfdmSymbolsPerFrm) 在框1304处,执行一测试以确定是否可移动过量六区块服务。如果过量六区块服务不可移动到fourBlk 1404、threeBlk 1402或reg2Blk 1406以满足框1302处的有条件不等式,那么方法进行到框1306,在框1306处确定包装失败且方法停止。如果可移动过量六区块服务,那么方法进行到框1308。
在框1308处,方法进行到最终操作。因为过量sixBlkSrvcs能够成功地被移动,所以方法进行到最终操作以完成槽分配。
应注意,方法1300仅表示一种实施方案且方法1300的变化、添加、删除、组合或其它修改在本发明的范围内是可能的。
最终操作 因此,通过上文执行的操作,获得关于每一RT服务被分配到哪个区块的信息。此外,对于一帧,RT服务的每一信道具有的数据槽的数目现是已知的。此信息足以得到每一信道分配的位置。在一方面,所述槽可关于其最大高度约束而连续分配到一区块内的信道。
包装实例 图15展示帧1500,其说明用于多路复用系统中的分配算法的各方面的将两个RT服务包装到传输帧中的操作。在此实例中,两个RT服务,即服务A与B,被包装于帧1500的fourblk区域内。出于说明的目的,将假定先前操作已确定两个RT服务均在fourBlk区域中。将假定这些RT服务均具有两个信道,即1与2。将进一步假定用于每一信道的数据槽的数目如下。
服务A的信道1=9 服务A的信道2=9 服务B的信道1=8 服务B的信道2=7 如在帧1500中所说明,RT服务根据以下参数被包装于fourblk区域内。
信道1服务A(1502) 开始符号=5 开始槽=6 最低槽=4 最高槽=7 总槽=9 信道2服务A(1504) 开始符号=7 开始槽=7 最低槽=4 最高槽=7 总槽=9 信道1服务B(1506) 开始符号=10 开始槽=4 最低槽=4 最高槽=7 总槽=8 信道2服务B(1508) 开始符号=12 开始槽=4 最低槽=4 最高槽=7 总槽=7 算法概述 在一个或一个以上方面,分配算法提供流到帧中的有效包装,借此使接收装置的“醒来”频率与“开启时间”最小。举例来说,将服务的信道分组在一起减小醒来频率,同时以其maxSlotHeight传输服务缩短开启时间。
在一方面,如果通过算法提供的槽分配由于四个不等式条件中的一者而失败,那么算法将指示传递到控制服务如何被重新调整大小的重新调整大小的控制器212。如果重新调整大小的控制器212基于这些指示重新调整服务大小,那么保证包装方案。
图16展示说明分配算法的一方面的以使得未用槽被分组为两个区域的方式包装RT服务的操作的帧1600。在较少的区域中收集未用槽确保优先权低于输入到分配算法的服务的服务较好地利用这些槽。在一方面,ORT服务可包装于这些区域内。举例来说,在帧1600中,未用槽分组于区域1602与1604中。
重新调整实时服务大小的算法 在一个或一个以上方面,重新调整大小的控制器116操作以控制服务如何被重新调整大小以使得其可包装于帧内。举例来说,服务被重新调整大小以调整其相关联的传递要求。在一方面,一个或一个以上服务可被重新调整大小以减小相关联的带宽要求;然而,重新调整大小的控制器116操作以重新调整服务大小从而调整相关联的传递要求中的任一者。以下描述内容描述操作以重新调整RT服务中的分量流的大小的重新调整大小的算法。还提供引起重新调整RT服务大小的条件。在一方面,重新调整大小的控制器116操作以实施确定重新调整大小的参数的重新调整大小的算法。接着在重新调整大小的请求中,这些参数被传输到与RT服务相关联的RTMS。接着,RTMS操作以根据在重新调整大小的请求中的参数重新调整经识别的RT服务的大小。
还应注意,重新调整大小的控制器116还操作以重新调整任何ORT服务的大小。举例来说,重新调整大小的控制器116可操作以确定一个或一个以上ORT服务应如何被重新调整大小和与任何NRTMS通信以实施经确定的重新调整大小。因此,将调整与那些服务相关联的传递要求。举例来说,重新调整大小的控制器116可与NRTMS通信以减小ORT服务的带宽要求借此调整其传递要求。因此,在本文中参照重新调整RT服务大小所描述的方面同样也适用于ORT服务。
如图1所示,MUX 114从RTMS 126与NRTMS 128接收内容流数据和相关联的信令数据。每一超级帧,MUX 114与RTMS 126协商用于所有现用实时服务的数据带宽且视情况与NRTMS 128协商用于ORT服务的数据带宽。在一方面,带宽协商涉及以下操作序列。
a.MUX 114将GetDataSize.请求消息发送到RTMS 126以请求将在超级帧中发送RT服务的数据大小。
b.RTMS 126将规定将在超级帧中发送的RT服务的数据大小的GetDataSize.响应消息发送到MUX 114。
c.MUX 114基于从RTMS 126以及从其它源接收的所有数据大小执行内容调度(分配)。
d.MUX 114将RT服务流数据的更新的大小发送到RTMS 126作为UpdateDataSize.通知消息的一部分。
在一方面,MUX 114操作以提供包含上文所述的槽分配算法的各方面的内容调度功能。重新调整大小的控制器116提供重新调整大小算法的各方面。槽分配算法负责使分配到所有媒体服务的槽(速率)适配于超级帧。某些系统约束(例如,装置上的涡轮码解码器的峰值处理量限制在单一OFDM符号中可指派到特定媒体服务的槽的数目)可造成槽分配程序失败(尽管总的经指派的槽小于或等于超级帧中的总可用槽)。并且,期望支配对于空中链路资源的需求的实时服务分量为视频内容。此内容使用导致高度可变位速率流的源编码压缩。最终,可用于实时服务传输的每超级帧的容量可由于其它并行媒体服务的要求而不同。这些因素导致以下分配条件中的一者发生。
1.RT服务所请求的所有数据的总量小于或等于可用容量且槽分配算法成功。
2.RT服务所请求的所有数据的总量小于或等于可用容量但槽分配算法失败。
3.RT服务所请求的所有数据的总量大于可用容量。
分配条件2与3导致分配RT服务流所所请求的数据量失败。在这些情境中,MUX114调用重新调整大小的控制器116以执行重新调整大小的算法来重新调整RT服务大小。下一部分阐释实时服务的质量的概念和重新调整大小的算法的各方面的目标。
实时服务质量与重新调整大小算法目标 质量的概念与实时串流媒体服务内的视频流相关联。实时服务的质量(Q)随分配到服务流的位速率(r)变化且由表达为下式的质量函数模拟 Q=f(r) (3) 每一超级帧,RTMS 126提供帮助MUX 114评估此函数的信息。所述信息在GetDataSize.响应消息中发送到MUX 114。如在以下部分中所阐释,MUX 114使用此信息用于实时服务的质量评估以帮助重新调整大小的程序。还应注意,任何选定的质量测量或特征可由MUX 114用于质量评估目的。
重新调整大小算法将速率(以物理层包(PLP)为单位)指派到实时服务使得总分配速率小于或等于RT服务的可用容量,因此槽分配算法成功。因此,在一方面,对于RT服务的速率指派应使得RT服务视频流的质量函数根据下式与其权数成比例。
(Qi/Qj)=(Wi/Wj) (4) 其中Qi(Wi)与Qj(Wj)为任何RT服务i、j的质量函数(流权数)。质量函数使用上述等式(3)进行评估。与流相关联的权数值给出所述流在其它RT视频流中的相对重要度的量度。在一方面,MUX 114从预订与提供子系统获得这些流权数值,预订与提供子系统还可负责与分布网络相关联的服务规划与管理功能。
重新调整大小的算法 此部分阐释RT服务重新调整大小的算法的各方面。所述算法使用迭代方法在RT服务中会聚视频分量流(video component stream)(流(flow))的速率指派。所述算法始于每一视频流所请求的PLP的数目(速率)。所述算法的迭代中的每一者涉及识别候选服务来减小速率。候选流为与其它流相比对速率减小最不敏感且并不遭受质量的不利减小的流。在一方面,重新调整大小的算法的函数由图2所示的重新调整大小的控制器212提供。
在识别候选流之后,分配到所述流的速率减小。举例来说,速率可减小对应于两个里德所罗门码区块的量。网络以由对应于一个里德所罗门区块的PLP的数目界定的粒度将速率分配到所有服务。假定视频流使用具有基础与加强视频分量的网络分层传输模式中的一者传输。此外,系统约束在两个视频分量中的数据使其相等。因此,选择两个里德所罗门区块作为速率减小的单位。然而,应注意,将流的速率减小任何其它选定量在所述方面的范围内。
常数 以下常数参数用于多路复用系统的各方面中以提供重新调整大小的函数。
rateReductionBnd 任一实时视频流的速率中分数减小的上限。所述界限参考所述流所请求的速率。在一方面,使用值0.5。
sysMin 流的质量的最小值。其用于防止已到达速率减小界限的流进一步减小速率。
payloadPLP PLP的有效负载,其大约为968位。
算法输入 以下输入用于多路复用系统的各方面中以提供重新调整大小的函数。
maxRTSOFDMSym 可用于实时服务的每超级帧的OFDM符号的数目的容量。
numRTS 共享可用容量的实时服务的数目。
numVStreams 在实时服务中视频分量流的总数。举例来说,VStream为描述每一实时视频分量流的结构列表。
_weight 保持所述流的相对权数值。
requestedPLPs 保持所述流所请求的每超级帧的PLP的数目。可能评估所请求的位的大致数目为requestedPLPs x payloadPLP(968位)。
rsCodeParameterK 用于里德所罗门(N,K)码的参数K。
变量 以下变量用于多路复用系统的各方面中以提供重新调整大小的函数。
reqPLPs[numVStreams] 由一数字(0到numVStreams-1)指定的识别视频分量流的阵列。所述阵列保持如VStream结构的requestedPLP成员所指示的此流所请求的每超级帧的PLP的数目。
assgnPLPs[numVStreams] 由一数字(0到numVStreams-1)指定的识别视频分量流的阵列。所述阵列保持指派到此流的每超级帧的PLP的数目。
tempPLPs[numVStreams] 由一数字(0到numVStreams-1)指定的识别视频分量流的阵列。所述阵列保持指派到视频分量流的每超级帧的PLP的数目。这是算法在内部使用的临时变量。
weight[numVStreams] 由一数字(0到numVStreams-1)指定的识别视频分量流的阵列。所述阵列保持VStream结构的_weight成员所指示的相对权数值。
effQuality[numVStreams] 由一数字(0到numVStreams-1)指定的识别视频分量流的阵列。所述阵列保持实时服务流的经评估的质量。
PLPsPerRSBlk[numVStreams] 由一数字(0到numVStreams-1)指定的识别视频分量流的阵列。所述阵列保持VStream结构的rsCodeParameterK成员所指示的每里德所罗门码区块的数据PLP的数目。
算法输出 以下输出用于多路复用系统的各方面中以提供重新调整大小的函数。
successFlag 如果重新调整大小的算法成功会聚到满足所述约束的速率指派,那么将旗标设定为1。否则,successFlag设定为0。
由重新调整大小的算法调用的内部程序 以下是在多路复用系统的各方面中由重新调整大小算法调用的内部程序。
reducePLPs() 识别用于速率减小的视频流和减小分配到所述流的数据量的程序。此程序共享主例行程序所界定的变量空间。
由重新编码算法调用的外部算法 以下是在多路复用系统的各方面中由重新调整大小算法调用的外部程序。
slotAllocation 槽分配算法负责使分配到所有媒体服务的槽(速率)适配于超级帧。重新调整大小算法调用具有所需输入自变量(包括所有媒体服务的经分配的数据(速率))的槽分配算法。
算法 以下是用于多路复用系统的各方面中的重新调整大小算法的一方面的描述。在一方面,重新调整大小的控制器212实施重新调整大小算法并执行以下函数中的一者或一者以上。
a.使用VStream结构数据,填充阵列reqPLPs[]、qualitylndex[]、PLPsPerRSBlk[]和weight[]。
b.将阵列assgnPLPs[]的所有元素初始化为reqPLPs[]中的相应元素。
c.初始化algorithmFlag=1,和successFlag=0。
d.执行以下函数 while algorithm Flag==1reducePLPs()if reduction>0call slotAllocation Algorithmif slotAllocation Algorithm succeeds algorithmFlag=0 success Flag=1endifelse /*当考虑rateReductionBnd界限时,此条件表示重新调整大小失败。*/endif endwhile 作为reducePLPs()程序的一部分执行以下函数。 for i=0 to numVStreams tempPLPs[i]=assgnPLPs[i] tempPLPs[i]=tempPLPs[i]-2x PLPsPerRSBlk[i] /*分配到流的PLP减小对应于两个里德所罗门区块的量。在一方面,从基础与加强分量去除一个RS区块。所述系统约束基础与加强视频分量中的数据使其相等。*/ if tempPLPs[i]/reqPLPs[i]>=rateReductionBnd effQuality[i]=f(tempPLPs[i]x payloadPLP)/weight[i] else effQuality[i]=sysMin endif endfor /*其中f()为可用于评估质量的任何适当函数。*/ e.识别如阵列effQuality[]所给出的具有最大有效质量的服务的指数。设定_index参数为所述值。
f.执行以下函数。 if effQuality[_index]==sysMin /*当考虑rateReductionBnd界限时,此条件表示重新调整大小失败。*/ reduction=-1 else reduction=2 x PLPsPerRSBlkLindex] assgnPLPsLindex]=tempPLPsLindex] endif 因此,在多路复用系统的各方面中,重新调整大小的控制器212操作以提供上述函数来重新调整服务的大小。举例来说,减小RT服务的速率以允许所述服务被分配到如上文所述的分配算法的各方面所提供的超级帧的可用槽。
非实时服务(Other than Real Time Services,ORTS) 在上文描述了槽分配算法的各方面,其考虑各种约束并且确保OFDM符号中针对一服务发送的涡轮码包的数目可由一装置解码。由于需要所述装置在任何时间仅接收一个RT服务,因此,此算法优选地用于RT服务。然而,一装置可能在一超级帧中接收多个ORT服务。如果使用相同算法,那么在OFMD符号中由装置预订的所有ORT服务的包的总数可变得大于装置限度。这被称作“涡轮码包冲突”。涡轮码包冲突导致ORT服务数据的丢失。丢失的量值大体上取决于用户的预订方式。因此,在下文中提供并描述用于ORT服务的槽分配算法的额外方面,其将完全消除涡轮码包冲突。
图17展示用于多路复用系统中的被分成用于RT服务与ORT服务的区域的例示性帧1700。提供第一区域1702用于RT服务,且提供第二区域1704用于ORT服务。将帧分成这些区域将确保在RT与ORT服务之间无涡轮码包冲突。RT1702与ORT1704区域之间的分区为“软”分区(即,其视所述超级帧中的可用RT与ORT服务而定,在超级帧与超级帧之间变化)。RT服务为使用上文所述的槽分配算法与重新调整大小的算法中的一者分配于RT服务区域1702中的槽。ORT服务为使用下文所述的ORT服务算法中的一者分配于ORT服务区域1704中的槽。在一个或一个以上方面,还重新调整ORT服务大小以适配于可用带宽。在下文中提供适用于ORT服务的重新调整大小的更详细的描述。
ORT服务槽分配 相对于接收装置的功率消耗,优选地MLC分配的高度为其maxSlotHeight。这使装置接收所述MLC的可能“开启时间”最小。然而,为了便于包装,服务的所有分组MLC以相同高度分配。因此,即使对于ORT服务,“服务的maxSlotHeight”的概念被定义为针对所述服务分组的所有MLC的maxSlotHeight参数的最小值。在本描述内容的其余部分,服务的高度将意味着所述服务的所有MLC分配的共同高度。
服务的信道被分组在一起 在一方面,服务的所有信道被分组在一起使得其分配在帧中在时间上邻近。此方法减小装置需要“醒来”以接收服务的不同信道的次数,且因此这帮助装置减小功率消耗。
ORTS区域被分成区块 图18展示其中ORTS区域被分成不同高度的区块的例示性帧1800。在一方面,区块高度对应于服务可采取的可能的maxSlotHeight。从表500中可见,存在四个maxSlotHeight(即,3、4、6和7)。因此,帧1800展示用于分配相关联服务的threeBlk1802、fourBlk 1804、sixBlk 1806和sevenBlk 1808区域。接着ORT服务槽分配算法操作以基于maxSlotHeight将服务包装于不同区块内。
在一区块之上无另一区块 在一方面,在帧1800中排列区块使得在一区块之上无另一区块。这确保任何两个ORT服务均不具有涡轮码包冲突。
ORT服务槽算法 在一个或一个以上方面,以下参数表示到达ORT服务槽分配算法的输入。
a.一服务的每一MLC具有的用于一帧的数据槽的数目。
b.一服务的每一MLC的maxSlotHeight,其通过所述MLC的传输模式确定。
c.可用于ORT服务的符号总数(numAvaiIOrtsSymPerFrm)。
在一个或一个以上方面,以下参数表示来自ORT服务槽分配算法的输出。
a.关于包装是否可能的决策。
b.如果包装成功,由ORT服务占据的符号数目(numOccuOrtsSymPerFrm)。
图19展示用于多路复用系统中的将槽分配到ORT服务的例示性方法1900。在一方面,MUX逻辑210操作以如下文所述而提供方法1900的功能。
在框1902处,执行每一ORT服务的maxSlotHeight的计算。在一方面,MUX逻辑210执行此计算。
在框1904处,ORT服务基于每一服务的maxSlotHeight参数而分组于区块中。举例来说,在一方面,服务被分组于threeBlkSrvcs、fourBlkSrvcs、sixBlkSrvcs和sevenBlkSrvcs中。在一方面,MUX逻辑210执行此操作。
在框1906处,计算长度变量L7、L6、L4和L3。举例来说,L7=ceil(所有sevenBlkSrvcs的总槽/7),其中ceil(x)为大于x的最小整数。在一方面,MUX逻辑210执行此操作。
在框1908处,执行一测试以确定所需符号的数目是否大于可用符号的数目。举例来说,评估以下不等式。
(L7+L6+L4+L3<=numAvailOrtsSymbolsPerFrm) 在一方面,MUX逻辑210执行此操作。如果上述不等式为假,那么方法进行到框1910。如果上述不等式为真,那么方法进行到框1912。
在框1910处,确定包装失败且方法在框1914处结束。
在框1912处,包装成功且所占据的符号数目从以下等式确定 numOccuOrtsSymPerFrm=L7+L6+L4+L3 在一方面,MUX逻辑210执行此操作。一旦包装成功,就容易到达每一MLC分配的位置,因为每一服务所属的区块是已知的。
应注意,方法1900仅表示一种实施方案且方法1900的变化、添加、删除、组合或其它修改在本发明的范围内是可能的。
槽分配与重新调整大小算法之间的相互作用 在前述部分中,描述槽分配与重新调整大小的算法的各方面。以下部分提供用于多路复用系统的各方面中的这些算法的总体相互作用的描述。
图20展示用于多路复用系统中的提供槽分配、重新调整大小和拥塞控制的例示性方法2000。举例来说,服务器200操作以提供下文所述的功能。
在框2002处,对高与中优先权ORT服务进行槽分配。举例来说,每一超级帧,MUX114从内容实体(例如使用GetDataSize.响应指令的RTMS126与NRTMS128)得到各种流数据量及其相对优先权。使用此信息,执行对于高优先权与中优先权ORT的槽分配。举例来说,在一方面,MUX逻辑210操作以根据上述算法执行高与中优先权ORT服务的槽分配。
在框2004处,执行一测试以确定高与中优先权ORT服务槽分配是否成功。如果所述分配成功,那么方法进行到框2006。如果所述分配不成功,那么方法进行到框2018。
在框2018处,执行拥塞控制。由于高与中优先权ORT服务槽分配不成功,因此系统经历需要解决的拥塞。在一方面,MUX逻辑210执行参看图22所述的拥塞控制算法。在从拥塞控制返回后,方法在框2028处停止。
在框2006处,基于ORT服务槽分配的成功,计算可用于RT服务的符号数目且将迭代参数设置为零。举例来说,在一方面,MUX逻辑210执行这些函数。
在框2008处,执行RT服务的槽分配,其中其余符号在帧中。举例来说,上文所述的槽分配算法的各方面用于将槽分配到RT服务。
在框2010处,执行一测试以确定RT服务是否成功分配。如果所述分配不成功,那么方法进行到框2014。如果所述分配成功,那么方法进行到框2012。
在框2012处,可用符号的数目减小且迭代参数增加。举例来说,在一方面,MUX逻辑210执行这些函数。接着,方法进行到框2008以对RT服务进行槽分配。
在框2014处,执行一测试以确定迭代参数是否大于零。举例来说,在一方面,MUX逻辑210执行这些函数。如果迭代参数大于零,那么方法进行到框2016。如果迭代方法不大于零,那么方法进行到框2020。
在框2016处,使用numRTSymbol加一来执行RT服务槽分配。举例来说,MUX逻辑210使用增加的numRTSymbol值执行RT服务的槽分配。接着,方法进行到框2024。
在框2020处,重新调整选定RT服务大小。在一方面,重新调整大小算法用于重新调整一个或一个以上流的速率的大小使得RT服务槽分配可成功。举例来说,重新调整大小的控制器212操作以执行本文所述的重新调整大小算法中的一者。在从重新调整大小的算法返回后,方法进行到框2022。
在框2022处,执行一测试以确定重新调整RT服务的大小是否成功。举例来说,可能存在其中重新调整大小的算法不能实现具有可接受下限视频质量或下限重新调整大小比率的槽分配的情形。如果所述重新调整大小成功,那么方法进行到框2024。如果重新调整大小不成功,那么此情形意味着所述系统拥塞,且因此方法进行到框2018以执行拥塞控制。
在框2024处,低优先权ORT服务以递增的等级次序被进行槽分配。举例来说,MUX逻辑210执行此函数。
在框2026处,尽力式ORT服务或数据被进行槽分配。举例来说,MUX逻辑210执行此函数。接着方法2000在框2028处结束。
因此,在完成方法2000时,MUX 114具有关于可在当前超级帧中发送的各种流的精确数据大小的信息。此信息使用UpdateDataSize通知消息传达回到RTMS 126与ORTMS 128。
应注意,方法2000仅表示一种实施方案且方法2000的变化、添加、删除、组合或其它修改在本发明的范围内是可能的。
图21展示用于多路复用系统中的提供重新调整大小的例示性方法2100。举例来说,方法2100适合用作图2000中的框2020。在一方面,重新调整大小的控制器212操作以提供下文所述的功能。
在框2102处,评估所请求的槽的数目且计算参数n。在一方面,n表示请求用于服务的槽的数目与可用槽的数目之间的比率。举例来说,重新调整大小的控制212执行此计算。
在框2104处,评估待重新调整大小的流的质量。举例来说,在将用于每一流的MLC减小n个码区块之后,进行质量评估。举例来说,服务的质量(Q)随分配到服务流的位速率(r)变化且由上文表达的质量函数模拟。举例来说,重新调整大小的控制212执行此质量确定。
在框2106处,确定具有最大所得质量的流(候选者)。举例来说,重新调整大小的控制器212确定在框2104处执行码区块减小之后将产生的最高质量的流。
在框2108处,执行一测试以确定最高质量是否大于系统最低质量要求。举例来说,重新调整大小的控制器212确定此测试的结果。如果最高质量不大于系统最低质量要求,那么方法进行到框2116。如果最高质量大于系统最低质量要求,那么方法进行到框2110。
在框2110处,重新调整具有最高质量的流的大小且执行槽分配。举例来说,具有最高质量的流被减小n个码区块且执行槽分配。举例来说,重新调整大小的控制器212重新调整流的大小且请求MUX逻辑210执行槽分配。
在框2112处,执行一测试以确定槽分配是否成功。举例来说,重新调整大小的控制器212从MUX逻辑210接收指示在框2110处执行的槽分配是否成功的指示符。如果所述槽分配成功,那么方法进行到框2114。如果所述分配不成功,那么方法进行到框2102。
在框2114处,确定重新调整大小成功,且在框2116处,确定重新调整大小失败。举例来说,重新调整大小的控制器212做出这些确定。接着方法进行到框2118,其中所述方法返回到图2000中的框2020。
因此,方法2100操作以提供用于多路复用系统中的重新调整大小。应注意,方法2100仅表示一种实施方案且方法2100的变化、添加、删除、组合或其它修改在本发明的范围内是可能的。
图22展示用于多路复用系统中的提供拥塞控制的例示性方法2200。举例来说,方法2200适合用作图2000中的框2018。在一方面,MUX 210操作以提供下文所述的功能。
在框2202处,高优先权ORT服务被进行槽分配。举例来说,MUX 210根据本文所述的分配算法的各方面执行此分配。
在框2204处,执行一测试以确定在框2202处执行的分配是否成功。举例来说,MUX210执行此函数。如果所述分配成功,那么方法进行到框2208。如果所述分配不成功,那么方法进行到框2206。
在框2206处,以高优先权ORT服务的递增的等级次序进行高优先权ORT服务的分配。举例来说,MUX 210根据本文所述的分配算法的各方面执行此分配。接着方法2200在2218处结束。
在框2208处,所有可能的RT服务流减小选定的量且执行那些流的槽分配。举例来说,重新调整大小的控制器212与MUX 210根据本文所述的各方面执行这些操作。选定量基于系统已知的速率减小参数。
在框2210处,执行一测试以确定在框2208处的RT服务槽分配是否成功。举例来说,MUX 210执行此函数。如果所述分配成功,那么方法进行到框2112。如果所述分配不成功,那么方法进行到框2214。
在框2212处,中优先权ORT服务以递增的等级次序进行槽分配。举例来说,MUX210根据本文所述的分配算法的各方面执行此分配。接着方法2200在2218处结束。
在框2214处,执行RT服务槽分配,其排除次最低等级服务。举例来说,MUX 210根据本文所述的分配算法的各方面执行此分配。
在框2216处,执行一测试以确定在框2214处的分配是否成功。举例来说,MUX 210执行此函数。如果所述分配成功,那么方法进行到框2212。如果分配不成功,那么方法返回到框2214以排除另一服务且再次试图进行槽分配。
因此,方法2200操作以提供用于多路复用系统中的拥塞控制。应注意,方法2200仅表示一种实施方案且方法2200的变化、添加、删除、组合或其它修改在本发明的范围内是可能的。
图23展示例示性多路复用系统2300。多路复用系统2300包含用于接收数据的装置(2302)、用于确定带宽的装置(2304),用于分配数据的装置(2306)和用于重新调整数据大小的装置(2308)。在一方面,通过执行计算机程序以提供如本文所述的多路复用系统的方面的至少一个处理器提供所述装置(2302-2308)。
图24是说明另一例示性多媒体编码装置2400的框图,所述多媒体编码装置2400根据本文所述的技术编码多媒体数据。多媒体编码装置2400可形成用于广播多媒体数据的一个或一个以上信道的广播网络组件的一部分。多媒体编码装置2400可(例如)形成无线基站、服务器或用于将经编码的多媒体数据的一个或一个以上信道广播到一个或一个以上无线装置(例如移动装置102(图1))的任何基础结构节点的一部分。举例来说,多媒体编码装置2400可表示图1的服务器104。
多媒体编码装置2400编码包括一个或一个以上多媒体数据流的多个服务,组合所述经编码的流且经由传输信道2402将所述经组合的流传输到多媒体解码装置。在本发明的一个方面,多媒体编码装置2400编码、组合并传输一时间周期内接收的数据流的若干部分。作为一实例,多媒体编码装置2400可在每秒基础上对所述流进行操作。换句话说,多媒体编码装置2400编码多个流的一秒数据区段,组合一秒数据区段以形成数据超级帧并且经由传输器2408在传输信道2402上传输所述超级帧。如本文所使用,术语“超级帧”是指在一时间周期或窗口(例如一秒时间周期或窗口)内收集的一组数据区段。数据区段可包括一个或一个以上数据帧。尽管本发明的技术在一秒数据区段的情形中描述,但所述技术还可用于组合并且传输其它数据区段,例如在不同时间周期(其可以是或不是固定时间周期)内接收的数据区段,或用于组合并传输个别帧或数据帧的集合。换句话说,超级帧可被界定为涵盖比一秒周期长或短的时间间隔,或甚至为可变时间间隔。
传输信道2402可包含任何有线或无线媒体,或其组合。在一个方面,传输信道2402为固定带宽信道。在此情况下,多媒体编码装置2400可经由传输信道2402传输的数据的位的数目限制为固定带宽信道的大小。多媒体编码装置2400试图以目标质量水平输出数据流中的每一者。用于确定位速率的目标质量水平可预先选定、由用户选择、经由自动过程或需要来自用户或来自另一过程的输入的半自动过程选择,或由编码装置或系统基于预定标准动态地选择。目标质量水平可基于(例如)编码应用的类型或将接收多媒体数据的客户端装置的类型进行选择。如果以目标质量水平输出数据流中的每一者所必需的位数目超过传输信道2402上可用的位数目,那么多媒体编码装置2400根据本发明的技术管理所述流之间的位分配以试图保持多个流的最高总体质量。
如图24所示,多媒体编码装置2400包括编码器模块2404A-2404N(统称为“编码器模块2404”)、多路复用模块2406和传输器2408。编码器模块2404从一个或一个以上源接收数字多媒体数据流。编码器模块2404可(例如)从耦合到编码器模块2404的存储器或图像捕获装置接收多媒体数据流。多媒体数据流可包含待编码且作为广播传输的实况实时视频、音频或视频与音频流,或可包含待编码和作为广播或应需传输的预先记录且存储的视频、音频或视频与音频流。本发明的技术还可应用于非实时服务或实时服务与非实时服务的组合。换句话说,多媒体编码装置2400可包括产生ORT服务的一个或一个以上ORT模块。然而,为了简单起见,图24仅说明编码器模块2404。
编码器模块2404可使所接收的数据流与至少质量和速率信息相关联。如将更详细地描述,编码器模块2404可分析流的内容且使流与各自质量和速率信息(例如质量-速率曲线、内容分类曲线或质量-速率表)相关联。质量和速率信息(尤其)指示对于编码器模块2404希望包括于当前超级帧中的数据区段,数据区段在不同质量水平下的大小。编码器模块2404将与数据区段相关联的至少质量和速率信息发送到多路复用模块2406。编码器模块2404可经由控制信道将质量和速率信息发送到多路复用模块2406。举例来说,编码器模块2404可响应于从多路复用模块2406所接收的请求经由控制信道发送质量和速率信息。多路复用模块2406与编码器模块2404可使用多个不同通信协议进行通信。在一个方面,多路复用模块2406可使用利用消息传送层(MTL)作为下层传送机制的协议进行通信。
多路复用模块2406接收质量和速率信息。在某些情况下,多路复用模块2406还可接收传递要求,例如,与一个或一个以上ORT服务相关联的优先权与等待时间要求。多路复用模块2406分析一个或一个以上传递要求以确定编码器模块2404希望包括于当前超级帧中的数据区段是否适配于传输信道2402的可用带宽。多路复用模块2406可(例如)使用对应于多媒体编码装置2400的目标质量水平与和数据区段相关联的各自质量-速率曲线之间的交点的大小做出关于数据区段是否将适配于当前超级帧的初始确定。作为另一实例,多路复用模块2406可使用对应于与数据区段相关联的质量-速率表中所规定的最高质量水平的大小做出关于数据区段是否将适配于当前超级帧的初始确定。
为了确定数据区段是否适配于传输信道2402的可用带宽,多路复用模块2406可确定以对应于质量水平的选定一者的大小发送数据区段中的每一者所必需的传输信道资源的量,总计发送数据区段所必需的传输信道资源量的量,并将所有数据区段所需的传输信道资源的总量与可用传输信道资源的量进行比较以确定是否存在足够的传输信道资源来发送数据区段。在无线的情形中,传输信道资源可包含空中链路或空中接口资源。在一个方面实例中,多路复用模块2406可执行槽分配算法,例如上文所述的槽分配算法中的一者,以确定是否存在足够的传输信道资源。如上文更详细地描述,多路复用模块2406还可结合与编码器模块2404的数据区段相关联的质量和速率信息说明ORT服务的传递要求以确定是否所有服务/区段均适配于可用带宽。
如果多路复用模块2406确定多个数据区段并不适配于可用带宽,例如,槽分配算法失败或所必需的传输信道资源的总量超过可用传输信道资源,那么多路复用模块2406基于从编码器模块2404所接收的质量和速率信息选择所述区段中的一者或一者以上重新调整大小。多路复用模块2406试图选择在相应减小的大小下对质量具有最小量影响的数据区段重新调整大小。如将在下文中更详细地描述,多路复用模块2406分析质量和速率信息以确定减小分配到区段的位数目之后对所述数据区段中的每一者质量的影响,并且选择在减小的大小下具有最高质量水平的数据区段中的一者或一者以上。以此方式,多路复用模块可在编码器模块2404的实时服务之间仲裁。然而,在某些情况下,多路复用模块2406还可选择一个或一个以上ORT服务以基于其相关联传递要求重新调整大小,且因此在编码器模块2404的实时服务以及ORT服务之间分配带宽。再次,为了例示的目的,本文的技术在实时服务的情形中描述。多路复用模块2406仍可根据上文所述的技术分析ORT服务并且重新调整ORT服务的大小。因此,在下图中所述的技术较适用于重新调整实时服务的大小。
多路复用模块2406请求与选定数据区段相关联的编码器模块2404以根据减小的位分配来重新调整数字多媒体数据流大小。在某些情况下,在不存在足够带宽用于传输所述服务时,多路复用模块2406可请求编码器模块2404来下调选定数据区段的大小。在其它情况下,在存在过量可用带宽时多路复用模块2406可请求编码器模块2404来上调选定数据区段大小。多路复用模块2406可经由控制信道将重新调整大小的请求发送到与选定区段相关联的编码器模块2404。重新调整大小的请求可(例如以位为单位)规定选定数据区段的大小。
与选定数据区段相关联的编码器模块2404接收与其个别数据区段相关联的重新调整大小的请求并重新调整多媒体数据区段大小。编码器模块2404可以多种不同方式来重新调整数据区段大小。与选定数据区段相关联的编码器模块2404可调整一个或一个以上编码变量以减小数据区段的大小使其小于或等于在重新调整大小的请求中规定的最大大小。举例来说,编码器模块2404可使用较高的量化参数(QP)重新编码数据区段。作为另一实例,编码器模块2404可以减小的编码速率来对数据区段重新编码。作为替代或另外,编码器模块2404可减小待编码的信息量,因此减小数据区段的大小。在某些情况下,编码器模块2404可调整一个或一个以上编码变量以将数据区段的大小增加为在重新调整大小的请求中规定的大小。举例来说,编码器模块2404可使用较低的QP重新编码数据区段或以增加的编码速率重新编码数据区段。
当多路复用模块2406准备产生当前超级帧时,多路复用模块2406收集经编码的数据区段。多路复用模块2406可(例如)经由控制信道将传送请求发送到编码器模块2404。响应于所述请求,编码器模块2404将经编码的多媒体数据区段发送到多路复用模块2406。多路复用模块2406组合多媒体数据流以形成超级帧,且将超级帧发送到传输器2408以经由传输信道2402传输到一个或一个以上解码装置。以此方式,多路复用模块2406管理所述流之间的位分配以使所有数据区段最有效地适配于固定带宽信道2402,同时保持多个数据流的最高总体质量。
多媒体编码装置2400中的组件是那些适用于实施本文所述的技术的例示性组件。然而,如果需要,多媒体编码装置2400可包括许多其它组件。此外,本发明的技术不一定限于在类似于图24的系统的系统中或广播系统中使用。所述技术可应用于其中使用编码技术来编码多个多媒体数据流以便以有限的带宽在传输信道上传输的任何多媒体编码环境中。多媒体编码装置2400的所说明的组件可集成为编码器/解码器(CODEC)的一部分。传输器2408可形成于不同于编码器或CODEC的组件或晶片上。
在多媒体编码装置2400中的组件可实施为一个或一个以上处理器、数字信号处理器、专用集成电路(ASIC)、场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。另外,多媒体编码装置2400可符合例如移动图片专家组(MPEG-4),国际电信联盟标准部门(ITU-T)(例如H.263或H.264)的多媒体编码标准,或另一编码标准,或其组合。明确地说,与多路复用模块2406通信的编码器模块2404中的每一者可依据多路复用模块2404进行仲裁所使用的质量和速率信息对于编码器模块2404中的每一者可独立产生的事实而符合不同的多媒体编码标准。
将不同特征描绘为模块希望强调多媒体编码装置2400的不同功能方面且不一定暗示此类模块必须通过单独硬件或软件组件来实现。事实上,与一个或一个以上模块相关联的功能性可集成于共用或单独硬件或软件组件内。因此,本发明不应限于多媒体编码装置2400的实例。
图25是说明另一例示性多媒体编码装置2500的框图,所述多媒体编码装置2500管理在多个流之间的位分配以试图最有效地将流适配于超级帧,同时保持多个流的最高总体质量。多媒体编码装置2500大体上与图24的多媒体编码装置2400一致,但重新调整选定多媒体数据区段的大小由与选定数据区段相关联的重新调整大小的模块2502A-2502N(统称为“重新调整大小的模块2502”)来执行。
因此,图24的编码器模块2404的功能性在编码器模块2504与重新调整大小的模块2502之间划分。换句话说,编码器模块2504向多路复用模块2506提供与数据区段中的每一者相关联的质量和速率信息,以用于将可用带宽分配到数据区段且当分配失败时选择所述数据区段中的一者或一者以上重新调整大小。重新调整大小的模块2502从多路复用模块2506接收重新调整数据区段大小的请求并且根据从多路复用模块2506接收的重新调整大小的请求而重新调整数据区段的大小。
图26是根据本发明的技术作用的例示性编码器模块2600的框图。编码器模块2600可(例如)表示图24的编码装置2400的编码器模块2404中的任一者。编码器模块2600包括多路复用模块接口2602、内容分类模块2604、质量-速率信息模块2606和编码模块2602。编码模块2608进一步包括重新调整大小的模块2612。重新调整大小的模块2612可表示图1的重新调整大小的控制器116。
编码器模块2600从源接收一个或一个以上多媒体数据流。编码器模块2600可(例如)从耦合到编码器模块2600的存储器或图像捕获装置接收多媒体数据流。多媒体数据流可包含待编码且作为广播传输的实况实时视频、音频或视频与音频流,或可包含待编码和作为广播或应需传输的预先记录且存储的视频、音频或视频与音频流。本发明的技术还可应用于非实时服务或实时服务与非实时服务的组合。
如上文所述,编码器模块2600可试图与数据内容无关地维持数据流的恒定的感知质量度量。换句话说,编码器模块2600可试图以目标质量水平输出每一数据流。为了维持恒定或类似的感知质量水平,编码器模块2600可选择不同位速率用于具有不同内容的数据区段。为此目的,内容分类模块2604基于其内容对数据区段进行分类。内容分类模块2604可基于区段的数据的复杂性(例如,空间复杂性和/或时间复杂性)将数据区段进行分类。适当内容分类方法在2006年3月10日申请的题为“用于多媒体处理的内容分类(CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING)”的共同待决且共同让渡的第11/373,577号[代理人案号050253]美国专利申请案中描述,所述专利申请案的全部内容以引用的方式并入本文中。举例来说,内容分类模块2604可将运动信息分类为“高”、“中”和“低”的类别(在x轴上),且将纹理信息分类为“高”、“中”和“低”的类别(在y轴上)且内容分类在交点处表示。此分类可与(例如)特定质量-速率曲线相关联。
内容分类模块2604基于所述分类使数据区段与质量和速率信息相关联。在一个方面,内容分类模块2604使数据区段与各自质量-速率曲线相关联。质量-速率曲线模拟质量度量,例如随位速率变化的峰值信噪比(PSNR)。质量-速率曲线可(例如)使用以下形式的对数函数来模拟 Q=a*ln(R)+b, 其中Q为质量度量,R为位速率,且a和b为使用多个样本数据点计算的常数。编码器模块2600可维持表示具有不同内容的数据流的质量-速率特征的多个质量-速率曲线。作为一实例,编码器模块2600可维持与所述流的内容中运动与纹理的变动水平(例如,运动与纹理的变动水平)相关联的八个不同类别的质量-速率曲线。为了说明恒定PSNR不一定意味着恒定感知质量的事实,编码器模块2600可维持使用不同于PSNR的质量度量的质量-速率曲线,例如平均意见分数(MOS)。或者,编码器模块2600可调整质量-速率曲线以说明恒定PSNR不一定意味着恒定感知质量的事实。举例来说,编码器模块2600可通过如2006年3月10日申请的题为“用于多媒体处理的内容分类(CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING)”的共同待决且共同让渡的第11/373,577号[代理人案号050253]美国专利申请案中详细描述的偏移来调整传统质量-速率曲线,所述专利申请案的全部内容以引用的方式并入本文中。
或者,编码器模块2600可通过一偏移调整与每一内容曲线相关联的目标质量水平。包括高运动、高纹理内容的数据区段可(例如)以相对于目标质量水平略低的质量进行编码,而包括低运动、低纹理内容的数据区段可以相对于目标质量水平略高的质量进行编码。因为每一内容类别相对于总体目标质量水平具有其自身的经调整的质量水平,所以编码器模块2600可正规化每一内容类别的质量水平以在编码器模块2600处测量当前质量水平。编码器模块2600可根据以下线性等式来实现此正规化 Qnorm=Qr-Qk,(5) 其中Qnorm为正规化质量水平,Qr为经记录的质量水平,且Qk为曲线k的质量水平中的调整偏移。如果质量正规化不是线性函数,那么必须在质量正规化之后进行级别确定。
在本发明的另一方面,内容分类模块2604可使数据区段与预先计算的质量-速率表相关联,所述预先计算的质量-速率表表示与所述区段相关联的一个或一个以上质量水平以及所述区段在所述质量水平中的每一者下的大小。为此,内容分类模块2604可使数据区段与质量-速率曲线相关联,所述质量-速率曲线对应于所述质量-速率表中的特定一者。质量-速率曲线、经调整的质量-速率曲线和预先计算的质量-速率表可保存于存储器(未图示)中,且当需要时由内容分类模块2604存取。
在某些情况下,编码器模块2600并不存储预先计算的质量-速率信息或仅预先计算质量-速率信息的一部分。质量-速率信息产生模块2606可(例如)预先计算多个质量-速率曲线或经调整的质量-速率曲线用于内容分类。用于产生质量-速率曲线与内容分类曲线的一种例示性技术描述于2006年3月10日申请的题为“用于多媒体处理的内容分类(CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING)”的共同待决且共同让渡的第11/373,577号[代理人案号050253]美国专利申请案中,所述专利申请案的全部内容以引用的方式并入本文中。
然而,质量-速率信息产生模块2606可基于分类在逐区段的基础上产生用于数据区段中的每一者的质量-速率表。举例来说,质量-速率信息产生模块2606可产生列出等级与大小对的表。等级与特定质量水平对应。每一等级可(例如)与质量度量中的特定下降对应。使用PSNR作为例示性质量度量,所述等级中的每一者可对应于PSNR的0.05dB下降。明确地说,等级0可对应于尽力式质量水平,而等级1与最高质量水平对应,等级2与低于先前质量水平0.05dB的质量水平对应,等等。在一个方面,与最高质量对应的等级(例如,等级1、2和3)可实际上对应于大于目标质量水平的质量水平。
质量-速率信息产生模块2606可使用质量-速率曲线中的相应一者确定等级,如在下文中进一步详细描述。在一个方面,质量-速率信息产生模块2606可计算多个质量水平和相应等级,且使用相应质量-速率曲线确定每一数据区段在质量水平中的每一者下的大小。在本发明的另一方面,质量-速率信息产生模块2606可计算编码器模块2600可提供的数据区段的大小,且接着计算在那些大小中的每一者下的质量水平与相应等级。举例来说,编码器模块2600可渐增地将所述大小减小固定量,例如,传输信道的最小传输单位大小,且使用以下等式计算对应于所需大小中的每一者的等级 Rank=CEILING((Ak-S)/xk), (6) 其中RANK为所需大小的相应等级值,Ak为用于第k质量-速率曲线的经调整的目标质量水平,S为对应于所需大小的质量水平(即,对应于所需大小与第k质量-速率曲线的交点的质量水平),xk为每等级的渐增质量下降,且CEILING(x)为输出大于或等于x的最小整数值的天棚函数(ceiling function)。
编码器模块2600将与数据区段中的每一者相关联的至少质量和速率信息发送到多路复用模块(2406、2506)以帮助多路复用模块(2406、2506)监控当前超级帧的大小并且确定数据区段中的哪些将被重新调整大小。编码器模块2600可(例如)发送与待包括于当前超级帧中的数据区段相关联的质量和速率信息。编码器模块2600可响应于来自多路复用模块(2406、2506)的请求将至少质量和速率信息发送到多路复用模块(2406、2506)。编码器模块2600可(例如)发送与数据区段相关联的质量-速率曲线或质量-速率表。
如果与编码器模块2600相关联的数据区段中的任一者需要重新调整大小,那么多路复用模块(2406、2506)将重新调整大小的请求发送到编码器模块2600。响应于重新调整大小的请求,重新调整大小的模块2612重新调整多媒体数据区段大小。在一个实例中,重新调整大小的模块2612可增加数据区段的大小,即上调数据区段的大小。在另一实例中,重新调整大小的模块2612可减小数据区段的大小,即下调数据区段的大小。下调数据区段大小可造成数据区段的质量水平低于目标质量水平。然而,如果重新调整大小的数据区段的质量水平低于最低质量水平,那么重新调整大小的模块2612可仅将数据区段的大小重新调整为大于或等于最低质量水平的大小。来自多路复用模块(2406、2506)的重新调整大小的请求可包括数据区段的大小(例如,最大大小)且重新调整大小的模块2612可调整一个或一个以上编码变量以实现在重新编码的请求中规定的大小。重新调整大小的模块2612可(例如)在经调整的位速率下重新编码数据区段以重新调整数据区段大小,例如在减小的位速率下重新编码数据区段以将数据区段的大小重新调整为小于或等于在重新调整大小的请求中规定的最大大小。作为另一实例,重新调整大小的模块2612可使用经调整的量化参数来重新编码数据区段。
编码器模块2600从多路复用模块(2406、2506)接收发送待包括于当前超级帧内的经编码的数据区段的请求。响应于来自多路复用模块(2406、2506)的请求,编码器模块2600将经编码的数据区段发送到多路复用模块(2406、2506)。如上文所述,编码器模块2600在经配置的目标质量下发送并未选定进行重新调整大小的数据区段。然而,编码器模块2600以减小的质量发送经选定进行重新调整大小的数据区段。
编码器模块2600中的组件是那些适用于实施本文所述的技术的例示性组件。然而,如果需要,编码器模块2600可包括许多其它组件。在编码器模块2600中的组件可实施为一个或一个以上处理器、数字信号处理器、ASIC、FPGA、离散逻辑、软件、硬件、固件或其任何组合。此外,编码器模块2600可符合例如MPEG-4、ITU-T H.263、ITU-TH.264的多媒体编码标准或另一编码标准。将不同特征描绘为模块希望强调编码器模块2600的不同功能方面且不一定暗示此类模块必须通过单独的硬件或软件组件来实现。事实上,与一个或一个以上模块相关联的功能性可集成于共用或单独的硬件或软件组件内。因此,本发明不应限于编码器模块2600的实例。
图27是根据本发明的技术管理位分配的例示性多路复用模块2700的框图。明确地说,多路复用模块2700从各自编码器模块(例如编码器模块2404(图24))接收多个数据区段,且请求重新调整所述数据区段中的一者或一者以上的大小以确保发送数据区段所必需的空中链路资源并不超过可用的空中链路资源。多路复用模块2700可(例如)表示图24的多路复用模块2406,或图25的多路复用模块2506。多路复用模块2700包括编码器模块接口2702、数据收集模块2086和位管理模块2704。位管理模块2704进一步包括分配可用带宽的分配模块2708和当带宽分配不成功时确定将数据区段中的哪些数据区段重新调整大小的选择模块2710。
如上文所述,多路复用模块2700经由编码器模块接口2702从编码器模块2404接收经编码的数据区段,组合经编码的数据区段到超级帧内并且将所述超级帧传输到一个或一个以上解码装置,例如图1的移动装置102。尽管本发明的技术在一秒数据超级帧的情形中描述,但所述技术也可用于传输其它数据区段,例如在不同时间周期内接收的数据区段或个别数据帧。
位管理模块2704监控所产生的超级帧中的每一者的大小以确保发送超级帧所必需的传输信道资源(例如,空中链路资源)并不超过传输信道2402上的可用传输信道资源。为了帮助位管理模块2704监控超级帧的大小,数据收集模块2706从编码器模块2704中的每一者收集质量和速率信息。数据收集模块2706可(例如)将请求发送到编码器模块2404中的每一者,请求与编码器模块2404希望包括于当前超级帧中的每一数据区段相关联的传递要求,例如质量和速率信息。质量和速率信息指示数据区段的至少质量度量作为位速率或数据大小的函数。举例来说,数据收集模块2706可接收对应于模拟作为各自数据区段位速率函数的质量度量(例如PSNR)的区段的质量-速率曲线。在另一实例中,数据收集模块2706接收与数据区段相关联的质量-速率表。如上文所述,质量-速率表可指示与不同等级的每一者相关联的各种等级(或质量水平)与大小。因此,质量和速率信息(尤其)描述对于编码器模块2404希望在当前超级帧中传输的数据区段,所述数据区段在不同质量水平下的大小。
位管理模块2704分析至少质量和速率信息来确定多个数据区段是否适配于传输信道2402的可用带宽。除质量和速率信息外,位管理模块2704还可分析其它传递要求。举例来说,位管理模块2704可分析与ORT服务相关联的优先权与等待时间要求。位管理模块2704可包括试图在数据区段之间分配可用带宽的分配模块2708。分配模块2708可(例如)试图使用上文所述的分配算法中的一者来分配可用带宽。在其第一次试图分配可用带宽的过程中,分配模块2708可试图使用对应于目标质量水平与和所述数据区段相关联的各自质量-速率曲线之间的交点的大小来分配带宽。作为另一实例,多路复用模块2406可使用对应于与数据区段相关联的质量-速率表中所规定的最高质量水平的大小做出关于数据区段是否将适配于当前超级帧的初始确定。如果分配模块2708成功地在数据区段之间分配带宽,例如存在足够的传输信道资源且无过量传输信道资源来发送数据区段,那么无需重新调整大小。
然而,如果分配模块2708未能使用与目标质量水平或最佳质量水平相关联的大小信息成功地分配可用带宽,那么位管理模块2704选择所述数据区段中的一者或一者以上重新调整大小。举例来说,当存在不足的传输信道资源时,位管理模块2704可选择所述数据区段中的一者或一者以上重新调整大小。作为另一实例,当过量传输信道资源的量超过一阈值时,位管理模块2704可选择所述数据区段中的一者或一者以上重新调整大小。明确地说,位管理模块2704包括分析从编码器模块2404接收的至少质量和速率信息来选择一个或一个以上数据区段重新调整大小的选择模块2710。在选择模块2710选择一个或一个以上数据区段下调大小的情况下,选择模块2710可基于分析选择在相应减小的大小下对质量具有最小量影响的一个或一个以上数据区段。数据区段的质量(QV)是分配到数据区段的位速率(r)的函数且由以下质量函数给出 QV=kln(r) 其中k为多媒体区段特有的常数,且由编码器模块2404提供。
选择模块2710根据用以下公式表示的最佳化问题试图使所有数据区段的总体质量最大。
求最大值 已知及 其中i=1...(n-1)及其中i=1...n(7) 其中n为数据区段的总数,QTotal为所有数据区段的总体质量,ki为与第i个数据区段相关联的常数,ri为与第i个数据区段相关联的位速率,R为总可用带宽,QVi为与第i个数据区段相关联的质量,

为与第i个数据区段相关联的最低质量,且wi为与第i个数据区段相关联的优先权。
选择模块2710以使得与数据区段相关联的所得质量与其经指派的优先权(如果存在)成比例的方式将位速率且因此将大小指派到数据区段。上述最佳化问题可通过使用拉格朗日乘数与肯塔克条件(Kuhn Tucker Conditions)来求解。将最佳化问题转换为标准形式(最大化与≤约束)得到下式 求最大值 已知及 其中i=1...(n-1)及 其中i=1...n (8) 拉格朗日函数定义如下 其中δ,λi其中i=1...(n-1)及μi其中i=1...n为拉格朗日乘数。
以下是肯塔克条件组 μi≥0 1≤i≤n(15) 位速率到实时视频流的理想指派应满足等式(10)-(15)。选择模块2710可使用标准非线性编程技术中的任一者对这些等式组求解。
以下是用于两个数据区段(即,n=2)的速率的实例调度和跟随的参数值 R=5000kpbs w1=w2=1 根据上文的参数,选择模块2710将把4800kbp的位速率指派到第一多媒体区段且将200kbp的位速率指派到第二多媒体区段。在一秒数据区段的情况下,第一数据区段的最大大小为4800千位且第二数据区段的最大大小为200千位。选择模块2710将在质量和速率信息中表示的数据区段中的经评估的大小与经计算的最大大小进行比较并且选择超过其相关联最大大小的数据区段中的任一者作为待重新调整大小的区段。
在另一实例中,多路复用模块14可使用从编码器模块2404接收的质量-速率表来选择所述一个或一个以上数据区段重新调整大小。如上文所述,在初始带宽分配期间,分配模块2708试图使用对应于与最高质量水平相关联的等级的大小信息来分配带宽。当在选定等级的大小下将带宽分配到数据区段不成功时,选择模块2710选择具有次最高总体质量的数据区段的等级的组合。下文的表1说明对应于与流1-4相关联的四个数据区段的质量-速率表的一部分。明确地说,表1说明对于与流1-4相关联的四个数据区段,当前等级值、数据区段在当前等级下的大小、下一等级值和数据区段在下一等级下的大小。将使用对表1的参考来帮助说明选择模块2710的选择过程。
表1 选择模块2710分析质量-速率表来识别具有与最高质量水平相关联的下一等级的数据区段中的一者或一者以上。在表1中所说明的情况下,具有最小值的下一等级与最高质量水平对应。参看表1,选择模块2710识别与流1和流3相关联的区段具有最小下一等级。如表1中所说明,与流1和流3相关联的数据区段均具有下一等级值5,而与流2和流4相关联的数据区段分别具有下一等级值6与8(其对应于最差质量水平)。以此方式,选择模块2710分析质量-速率表以识别具有对应于次最佳质量水平的随后的质量水平的一个或一个以上数据区段。
选择模块2710选择经识别的数据区段中的至少一者重新调整大小。选择模块2710可从经识别的数据区段中选择具有与当前等级相关联的最大大小的经识别的数据区段。参看表1,选择模块2710选择与流3相关联的数据区段,因为其当前大小为45,000字节,与40,000字节相对。或者,选择模块2710可选择在当前等级下的区段大小与在下一等级下的区段大小之间具有最大差的经识别的数据区段。再次参看表1,选择模块2710选择与流1相关联的数据区段,其具有10,000字节的差,与和流3相关联的区段的5,000字节的差相对。
在选择模块2710选择所述数据区段中的一者或一者以上之后,分配模块2708试图使用与选定数据区段的减小的等级或质量相关联的大小来分配可用带宽。如果分配算法仍不成功,那么选择模块2710选择额外数据区段重新调整大小或选择相同的数据区段在更加减小的质量下重新调整大小。
在分配模块2708成功地在数据区段之间分配可用带宽之后,位管理模块2704请求重新调整选定数据区段中的每一者的大小以确保所有数据区段均适配于传输信道的可用带宽。位管理模块2704可(例如)将重新调整大小的请求发送到与选定多媒体数据区段相关联的编码器模块2404。位管理模块2704可规定数据区段的最大可接受大小。如上文详细描述,编码器模块2404基于在重新调整大小的请求中含有的信息重新编码数据。
分配模块2708与选择模块2710可执行数据区段的位分配且选择一个或一个以上数据区段以类似方式上调大小。举例来说,使用与选定数据区段相关联的质量-速率表,分配模块可初始试图使用对应于与目标质量水平相关联的等级的大小信息来分配带宽。当在对应于目标质量水平的大小下将带宽分配到数据区段不成功时,即,在此情况下,过量带宽的量超过一阈值,选择模块2710选择新的等级组合用于具有较好总体质量的数据区段。
明确地说,选择模块2710可分析质量-速率表来识别具有与次最高质量水平相关联的次最高等级的数据区段中的一者或一者以上。选择模块2710选择经识别的数据区段中的至少一者上调大小。选择模块2710可从识别的数据区段中选择具有对应于当前等级的最小大小的经识别的数据区段。或者,选择模块2710可选择在当前等级下的区段大小与在次最高等级下的区段大小之间具有最小差的经识别的数据区段。
在任一情况下,当准备将数据区段组合到超级帧中时,数据收集模块2706发送数据请求。数据收集模块2706响应于所述命令而接收经编码的数据区段。多路复用模块2700通过组合经编码的多媒体数据区段来汇编所述超级帧。接着,多路复用模块2700可将所述超级帧提供到传输器2408(图24)以供传输或缓冲所述超级帧直到传输器2408请求所述超级帧为止。
多媒体多路复用模块2700中的组件是那些适用于实施本文所述的技术的例示性组件。然而,如果需要,多路复用模块2700可包括许多其它组件。在多路复用模块2700中的组件可实施为一个或一个以上处理器、数字信号处理器、ASIC、FPGA、离散逻辑、软件、硬件、固件或其任何组合。此外,多路复用模块2700可符合例如MPEG-4、ITU-TH.263、ITU-T H.264的多媒体编码标准或另一编码标准。将不同特征描绘为模块希望强调多路复用模块2700的不同功能方面且不一定暗示此类模块必须通过单独的硬件或软件组件来实现。事实上,与一个或一个以上模块相关联的功能性可集成于共用或单独的硬件或软件组件内。因此,本发明不应限于多路复用模块2700的实例。
图28是说明根据本发明的技术编码多媒体数据的编码器模块(例如图26的编码器模块2600)的例示性操作的流程图。编码器模块2600从源接收一个或一个以上多媒体数据流(2800)。编码器模块2600可(例如)从耦合到编码器模块2404的存储器或图像捕获装置接收多媒体数据流。多媒体数据流可包含实况实时内容、非实时内容或实时内容与非实时内容的组合。
编码器模块2600基于数据区段的内容对数据区段进行分类(2802)。内容分类模块2604(图26)可(例如)基于区段的数据的复杂性(例如,空间复杂性和/或时间复杂性)对所接收的数据区段进行分类。
内容分类模块2604基于所述分类使数据区段与质量和速率信息相关联(2804)。作为一实例,内容分类模块2604可使数据区段与多个质量-速率曲线中的一者相关联。如上文所述,质量-速率曲线可预先计算且存储于存储器中。作为另一实例,内容分类模块2604可使数据区段与多个预先计算的质量-速率表中的一者相关联。
编码器模块2600可产生用于数据区段的额外质量和速率信息(2806)。举例来说,质量和速率信息产生模块2606可产生用于数据区段中的每一者的质量-速率表。如上文所述,质量-速率表表示与数据区段相关联的一个或一个以上质量水平和数据区段在质量水平中的每一者下的大小。作为一实例,质量和速率信息产生模块2606可使用与数据区段相关联的质量-速率曲线产生列出等级与大小对的表。
编码器模块2600将与数据区段相关联的质量和速率信息发送到多路复用模块(2808)。编码器模块2600可(例如)响应于来自多路复用模块的请求发送与数据区段相关联的质量和速率信息。编码器模块2600可(例如)发送与数据区段相关联的质量-速率曲线和/或质量-速率表。如上文详述,多路复用模块使用质量和速率信息来监控当前超级帧的大小并且帮助多路复用模块确定哪些数据区段需要重新调整大小。
如果与编码器模块2600相关联的数据区段中的任一者需要重新调整大小,那么编码器模块2600从多路复用模块接收重新调整大小的请求(2810)。来自多路复用模块的重新调整大小的请求可包括数据区段的大小(例如以位为单位的最大大小)。响应于重新调整大小的请求,重新调整大小的模块2612重新调整经编码的数据区段的大小以满足在重新调整大小的请求中规定的大小限制(2812)。在本发明的一个方面,重新调整大小的模块2612调整一个或一个以上编码变量以减小数据区段的大小。重新调整大小的模块2612可(例如)在减小的位速率下或使用经调整的(例如,较高的)量化参数来重新编码数据区段。作为替代或另外,重新调整大小的模块2612可调整待编码的信息量。举例来说,重新调整大小的模块2612可减小用于编码运动信息的位数目以减小数据区段的大小。在本发明的另一方面,重新调整大小的模块2612可调整一个或一个以上编码变量以增加数据区段的大小。重新调整大小的模块2612可(例如)在增加的位速率下或使用较低的量化参数来重新编码数据区段。
编码器模块2600从多路复用模块接收发送待包括于当前超级帧内的经编码数据区段内容的请求(2814)。响应于来自多路复用模块的请求,编码器模块2600将经编码数据区段内容发送到多路复用模块(2816)。如上文所述,编码器模块2600以初始大小发送并未选定以重新调整大小的数据区段并以减小的大小发送经选定以重新调整大小的数据区段。
图29是根据本发明的技术管理位分配的多路复用模块2800的例示性操作的流程图。数据收集模块2806向编码器模块2404中的每一者请求至少质量和速率信息(2900)。除质量和速率信息外,数据收集模块2806还可向编码器模块2404请求其它传递请求信息。另外,数据收集模块2806可请求与多路复用模块2800将包括于当前超级帧内的ORT服务相关联的一个或一个以上传递要求。数据收集模块2806接收与编码器模块2404中的每一者希望包括于当前超级帧中的数据区段相关联的至少质量和速率信息(2902)。如上文所述,质量和速率信息(尤其)表示数据区段的质量度量作为位速率或数据大小的函数。质量与速率信息可包括(例如)与数据区段相关联的质量-速率曲线或与数据区段相关联的质量-速率表。如上文所述,数据收集模块2806还可接收除数据区段的质量和速率信息外的传递要求以及与ORT服务相关联的一个或一个以上传递要求。
分配模块2808试图在数据区段之间分配可用带宽(2904)。分配模块2808可(例如)试图使用上文所述的分配算法中的一者来分配可用带宽。在其第一次试图分配可用带宽的过程中,分配模块2808可试图使用与数据区段的最佳所需质量相关联的大小来分配带宽。如果质量-速率信息包含质量-速率表,那么(例如)分配模块2808试图使用与等级值1相关联的大小来分配带宽。如果质量和速率信息包含质量-速率曲线,那么分配模块2808可试图使用对应于目标质量水平与质量-速率曲线中的每一者的交点的大小分配带宽。如上文详述,分配模块2808可另外在数据区段与ORT服务之间分配可用带宽。
分配模块2808确定可用带宽的分配是否成功(2906)。如果分配模块2808未成功分配带宽,那么选择模块2810基于与数据区段相关联的质量和速率信息选择数据区段中的至少一者重新调整大小(2908)。在一个方面,在不存在足够带宽传输服务时,选择模块2810可选择一个或一个以上数据区段下调大小。明确地说,选择模块2810选择在相应减小的大小下对质量具有最小量影响的一个或一个以上数据区段。举例来说,选择模块2810可识别具有对应于次最佳质量水平的接下来的等级的一个或一个以上数据区段。如果两个或两个以上数据区段具有相同的下一等级,那么选择模块2810可选择具有与当前等级相关联的最大大小的经识别的数据区段。或者,选择模块2810可选择在当前等级下的区段大小与在下一等级下的区段大小之间具有最大差的经识别的数据区段。在另一方面,当过量可用带宽的量超过一阈值时,选择模块2810可选择一个或一个以上数据区段上调大小。在某些情况下,选择模块2810还可选择一个或一个以上ORT服务重新调整大小。
分配模块2808再次试图使用选定数据区段的减小的大小来分配可用带宽。如果分配算法仍不成功,那么选择模块2810选择额外数据区段重新调整大小或选择相同的区段以更进一步减小的质量重新调整大小。
在分配模块2808在数据区段之间成功地分配可用带宽之后,多路复用模块2800请求重新调整选定数据区段中的每一者的大小以实现多个区段的可用带宽(2910)。多路复用模块2800可(例如)将重新调整大小的请求发送到与选定数据区段相关联的编码器模块2404中的每一者。重新调整大小的请求可规定数据区段的最大可接受大小或减小的位速率。如上文详细描述,编码器模块2404基于在重新调整大小的请求中含有的信息来重新调整数据大小。
数据收集模块2806向编码器模块2404请求数据区段的经编码的内容(2912)。当编码器模块2404准备将数据组合到超级帧中时,数据收集模块2806可(例如)将数据请求发送到编码器模块2404。数据收集模块2806响应于所述命令而接收经编码的数据区段(2914)。多路复用模块2800通过组合经编码的多媒体数据区段而汇编所述超级帧(2916)。接着,多路复用模块2800可将超级帧发送到传输器2408以用于传输(2918)。在某些情况下,多路复用模块2800可缓冲超级帧直到传输器2408请求所述超级帧为止。
图30是说明多路复用模块2800使用与数据区段相关联的质量-速率表选择数据区段重新调整大小的例示性操作的流程图。最初,选择模块2810确定是否存在任何其它可能的等级组合(3000)。选择模块2810可分析质量-速率表以确定是否存在任何不处于最差等级的数据区段。在上文所述的实例中,最差等级可对应于最高编号等级。如果不存在其它可能的等级组合,即,数据区段中的每一者处于其最差等级,那么选择模块2810开始选择要从超级帧中去除的一个或一个以上数据区段(3001)。选择模块2810可(例如)使用上文所述的拥塞控制算法来选择要从超级帧中去除的一个或一个以上区段。
如果存在其它可能的等级组合,那么选择模块2810识别具有对应于次最佳质量水平的接下来的等级的一个或一个以上数据区段(3002)。举例来说,当如上文所述产生质量-速率表时,选择模块2810可识别具有最小下一等级的数据区段。以此方式,选择模块2810分析质量-速率表以识别具有对应于次最佳质量水平的随后的质量水平的一个或一个以上流。
选择模块2810选择经识别的数据区段中的一者重新调整大小(3004)。如果仅一个数据区段具有最小下一等级值,那么多路复用模块2800选择所述区段。如果两个或两个以上数据区段具有相同的下一等级,那么选择模块2810可选择具有与当前等级相关联的最大大小的经识别的数据区段。或者,选择模块2810可选择在当前等级下的区段大小与在下一等级下的区段大小之间具有最大差的经识别的数据区段。
选择模块2810设定与选定数据区段相关联的等级为下一等级(3006)。在选择模块2810选择所述数据区段中的一者或一者以上之后,分配模块2808再次试图使用与选定数据区段的减小的等级相关联的大小来分配可用带宽。如果分配算法仍不成功,那么选择模块2810选择额外数据区段重新调整大小或选择相同的区段在更加减小的质量下以如上文所述类似的方式重新调整大小。
本文所述的技术可以硬件、软件、固件或其任何组合来实施。如果以硬件实施,那么所述技术可使用数字硬件、模拟硬件或其组合来实现。如果以软件实施,那么所述技术可至少部分通过计算机可读媒体上的一个或一个以上经存储或传输的指令或代码来实现。计算机可读媒体可包括计算机存储媒体、通信媒体或两者,且可包括帮助将计算机程序从一个位置传送到另一位置的任何媒体。存储媒体可为可通过计算机存取的任何可用媒体。
以实例而非限制的方式,所述计算机可读媒体可包含RAM(例如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、ROM、电可擦除可编程只读存储器(EEPROM)、EEPROM、快闪存储器、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或任何其它可用于载运或存储呈指令或数据结构的形式的所需程序代码且可通过计算机存取的有形媒体。
并且,任何连接适当地被称作计算机可读媒体。举例来说,如果软件使用同轴电缆、光纤电缆、双扭线、数字定户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输,那么同轴电缆、光纤电缆、双扭线、DSL或例如红外线、无线电和微波等无线技术包括于媒体的定义内。如本文所使用的磁盘(Disk)与光盘(Disc)包括紧密光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软性磁盘和蓝射线光盘,其中磁盘通常利用磁再生数据,而光盘利用光(例如利用激光)再生数据。上述内容的组合也应包括于计算机可读媒体的范围内。
如本文所揭示的计算机程序产品包括计算机可读媒体以及任何与计算机可读媒体相关联的材料,包括内部封装有计算机可读媒体的封装材料。与计算机程序产品的计算机可读媒体相关联的代码可由计算机执行,例如由一个或一个以上处理器(例如一个或一个以上数字信号处理器(DSP)、通用微处理器、ASIC、FPGA或其它等效集成或离散逻辑电路)执行。在某些方面,本文所述的功能性可提供于经配置以用于编码与解码的专用软件模块或硬件模块内或并入在组合的CODEC中。
本文已描述各种方面。这些与其它方面在所附权利要求书的范围内。
权利要求
1.一种组合数字多媒体数据流的方法,所述方法包含
接收与所述数字多媒体数据流相关联的多个数据区段的至少质量和速率信息,其中所述质量和速率信息包含与所述多个数据区段相关联的质量-速率表,且其中所述质量-速率表中的每一者指示与所述相应数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小;
确定所述多个数据区段是否适配于可用带宽;
当所述多个数据区段不适配于所述可用带宽时,至少基于与所述多个数据区段相关联的所述质量和速率信息选择所述多个数据区段中的一者或一者以上重新调整大小;以及
请求重新调整所述一个或一个以上选定数据区段中的每一者的大小以实现所述多个区段的所述可用带宽。
2.根据权利要求1所述的方法,其中确定所述多个数据区段是否适配于所述可用带宽进一步包含
确定以对应于所述质量水平中的选定一者的大小发送所述数据区段中的每一者所必需的传输信道资源的量;
合计发送所述数据区段所必需的传输信道资源的所述量;以及
将所有所述数据区段所需的传输信道资源的总量与可用传输信道资源的量进行比较以确定所述多个数据区段是否适配于所述可用带宽。
3.根据权利要求2所述的方法,其中选择所述多个区段中的一者或一者以上重新调整大小包含当发送所述数据区段所必需的所述传输资源的所述总量大于所述可用带宽量时,选择所述多个区段中的一者或一者以上下调大小。
4.根据权利要求2所述的方法,其中选择所述多个区段中的一者或一者以上重新调整大小包含当发送所述数据区段所必需的所述传输资源的所述总量小于所述可用带宽量时,选择所述多个区段中的一者或一者以上上调大小。
5.根据权利要求1所述的方法,其中选择所述多个数据区段中的一者或一者以上包含
当所述多个数据区段不适配于所述可用带宽时,分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段;
分析所述质量-速率表以确定所述经识别的数据区段在当前质量水平时的大小;
以及
选择所述经识别的数据区段中在所述当前质量水平时具有最大经评估大小的至少一者。
6.根据权利要求5所述的方法,其进一步包含
使用所述选定数据区段在所述随后质量水平时的所述大小确定所述多个数据区段是否适配于可用带宽;以及
当所述多个数据区段不适配于所述可用带宽时,基于与所述多个数据区段相关联的所述质量和速率信息选择一个或一个以上额外数据区段重新调整大小。
7.根据权利要求1所述的方法,其中选择所述多个数据区段中的一者或一者以上包含
当所述多个数据区段不适配于所述可用带宽时,分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段;
对于所述数据区段中的每一者,计算所述经识别的数据区段在当前质量水平时的大小与所述经识别的数据区段在所述随后质量水平时的大小之间的差;以及
选择所述经识别的数据区段中具有最大计算差的至少一者。
8.根据权利要求1所述的方法,其中选择所述数据区段中的一者或一者以上包含
分析与所述多个数据区段相关联的所述质量和速率信息;以及
基于所述分析选择在所述相应减小的大小下对质量具有最小量影响的所述一个或一个以上数据区段。
9.根据权利要求8所述的方法,其中选择在所述相应减小的大小下对质量具有最小量影响的一个或一个以上数据区段包含求一等式的最大值
求最大值
已知及
其中i=1...(n-1)及
其中i=1...n,
其中n是数据区段的总数,QTotal是所有所述数据区段的总体质量,ki是与第i数据区段相关联的常数,ri是与所述第i数据区段相关联的位速率,R是总可用位速率,QVi是与第i数据区段相关联的质量,
是与所述第i数据区段相关联的最低质量,且wi是与所述第i数据区段相关联的优先权。
10.根据权利要求1所述的方法,其中请求重新调整所述选定数据区段大小包含规定所述选定数据区段的至少最大大小。
11.根据权利要求1所述的方法,其进一步包含组合在一时间周期内所述数据区段的多媒体数据。
12.根据权利要求1所述的方法,其进一步包含
请求传送经选择用于重新调整大小的所述数据区段的经编码内容;
请求传送所述多个数据区段的其余数据区段的经编码内容;以及
响应于所述请求接收所述多个数据区段中的每一者的所述内容。
13.一种用于组合数字多媒体数据流的设备,所述设备包含
数据收集模块,其接收与所述数字多媒体数据流相关联的多个数据区段的至少质量和速率信息,其中所述质量和速率信息包含与所述多个数据区段相关联的质量-速率表,且其中所述质量-速率表中的每一者指示与所述相应数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小;
分配模块,其确定所述多个数据区段是否适配于可用带宽;以及
选择模块,当所述多个数据区段不适配于所述可用带宽时,其基于与所述多个数据区段相关联的至少所述质量和速率信息选择所述多个数据区段中的一者或一者以上重新调整大小,且请求重新调整所述一个或一个以上选定数据区段中的每一者的大小以实现所述多个区段的所述可用带宽。
14.根据权利要求13所述的设备,其中所述分配模块确定以对应于所述质量水平中的选定一者的大小发送所述数据区段中的每一者所必需的传输信道资源的量,合计发送所述数据区段所必需的传输信道资源的所述量,且将所有所述数据区段所需的传输信道资源的总量与可用传输信道资源的量进行比较以确定所述多个数据区段是否适配于所述可用带宽。
15.根据权利要求14所述的设备,其中当发送所述数据区段所必需的所述传输资源的所述总量大于所述可用带宽量时,所述选择模块选择所述多个区段中的一者或一者以上下调大小。
16.根据权利要求14所述的设备,其中当发送所述数据区段所必需的所述传输资源的所述总量小于所述可用带宽量时,所述选择模块选择所述多个区段中的一者或一者以上上调大小。
17.根据权利要求13所述的设备,其中当所述多个数据区段不适配于所述可用带宽时,所述选择模块分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段,分析所述质量-速率表以确定所述经识别的数据区段在当前质量水平时的大小,且选择所述经识别的数据区段中在所述当前质量水平时具有最大经评估大小的至少一者。
18.根据权利要求17所述的设备,其中
所述分配模块使用所述选定数据区段在所述随后质量水平时的所述大小确定所述多个数据区段是否适配于所述可用带宽;且
所述选择模块当所述多个数据区段不适配于所述可用带宽时,基于与所述多个数据区段相关联的所述质量和速率信息选择一个或一个以上额外数据区段重新调整大小。
19.根据权利要求13所述的设备,其中当所述多个数据区段不适配于所述可用带宽时,所述选择模块分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段,对于所述数据区段中的每一者,计算所述经识别的数据区段在当前质量水平时的大小与所述经识别的数据区段在所述随后质量水平时的大小之间的差,且选择所述经识别的数据区段中具有最大计算差的至少一者。
20.根据权利要求13所述的设备,其中所述选择模块分析与所述多个数据区段相关联的所述质量和速率信息,且基于所述分析选择在所述相应减小的大小下对质量具有最小量影响的所述一个或一个以上数据区段。
21.根据权利要求20所述的设备,其中所述选择通过求一等式的最大值来选择所述一个或一个以上区段
求最大值
已知及
其中i=1...(n-1)及
其中i=1...n,
其中n是数据区段的总数,QTotal是所有所述数据区段的总体质量,ki是与第i数据区段相关联的常数,ri是与所述第i数据区段相关联的位速率,R是总可用位速率,QVi是与第i数据区段相关联的质量,
是与所述第i数据区段相关联的最低质量,且wi是与所述第i数据区段相关联的优先权。
22.根据权利要求13所述的设备,其中当请求重新调整大小时所述选择模块规定所述选定数据区段的至少最大大小。
23.根据权利要求13所述的设备,其中所述数据区段包含一时间周期内的所述流的若干部分。
24.根据权利要求13所述的设备,其中所述数据收集模块请求传送经选择用于重新调整大小的所述数据区段的经编码内容,请求传送所述多个数据区段的其余数据区段的经编码内容,且响应于所述请求接收所述多个数据区段中的每一者的所述内容。
25.一种用于组合数字多媒体数据流的设备,所述设备包含
用于接收与所述数字多媒体数据流相关联的多个数据区段的至少质量和速率信息的装置,其中所述质量和速率信息包含与所述多个数据区段相关联的质量-速率表,且其中所述质量-速率表中的每一者指示与所述相应数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小;
用于确定所述多个数据区段是否适配于可用带宽的装置;
用于当所述多个数据区段不适配于所述可用带宽时基于与所述多个数据区段相关联的所述质量和速率信息选择所述多个数据区段中的一者或一者以上重新调整大小的装置;以及
用于请求重新调整所述一个或一个以上选定数据区段中的每一者的大小以实现所述多个区段的所述可用带宽的装置。
26.根据权利要求25所述的设备,其中所述确定装置确定以对应于所述质量水平中的选定一者的大小发送所述数据区段中的每一者所必需的传输信道资源的量,合计发送所述数据区段所必需的传输信道资源的所述量,且将所有所述数据区段所需的传输信道资源的总量与可用传输信道资源的量进行比较以确定所述多个数据区段是否适配于所述可用带宽。
27.根据权利要求26所述的设备,其中当发送所述数据区段所必需的所述传输资源的所述总量大于所述可用带宽量时,所述选择装置选择所述多个区段中的一者或一者以上下调大小。
28.根据权利要求26所述的设备,其中当发送所述数据区段所必需的所述传输资源的所述总量小于所述可用带宽量时,所述选择装置选择所述多个区段中的一者或一者以上上调大小。
29.根据权利要求25所述的设备,其中当所述多个数据区段不适配于所述可用带宽时,所述选择装置分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段,分析所述质量-速率表以确定所述经识别的数据区段在当前质量水平时的大小,且选择所述经识别的数据区段中在所述当前质量水平时具有最大经评估大小的至少一者。
30.根据权利要求25所述的设备,其中当所述多个数据区段不适配于所述可用带宽时,所述选择装置分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段,对于所述数据区段中的每一者,计算所述经识别的数据区段在当前质量水平时的大小与所述经识别的数据区段在所述随后质量水平时的大小之间的差,且选择所述经识别的数据区段中具有最大计算差的至少一者。
31.根据权利要求25所述的设备,其中所述选择装置分析与所述多个数据区段相关联的所述质量和速率信息,且通过求一等式的最大值来选择对质量具有最小量影响的所述一个或一个以上数据区段
求最大值
已知及
其中i=1...(n-1)及
其中i=1...n,
其中n是数据区段的总数,QTotal是所有所述数据区段的总体质量,ki是与第i数据区段相关联的常数,ri是与所述第i数据区段相关联的位速率,R是总可用位速率,QVi是与第i数据区段相关联的质量,
是与所述第i数据区段相关联的最低质量,且wi是与所述第i数据区段相关联的优先权。
32.一种用于处理数字视频数据的处理器,所述处理器适于
接收与所述数字多媒体数据流相关联的多个数据区段的至少质量和速率信息,其中所述质量和速率信息包含与所述多个数据区段相关联的质量-速率表,且其中所述质量-速率表中的每一者指示与所述相应数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小;
确定所述多个数据区段是否适配于可用带宽;
当所述多个数据区段不适配于所述可用带宽时,基于与所述多个数据区段相关联的所述质量和速率信息选择所述多个数据区段中的一者或一者以上重新调整大小;以及
请求重新调整所述一个或一个以上选定数据区段中的每一者的大小以实现所述多个流的所述可用带宽。
33.根据权利要求32所述的处理器,其中所述处理器适于
确定以对应于所述质量水平中的选定一者的大小发送所述数据区段中的每一者所必需的传输信道资源的量;
合计发送所述数据区段所必需的传输信道资源的所述量;以及
将所有所述数据区段所需的传输信道资源的总量与可用传输信道资源的量进行比较以确定所述多个数据区段是否适配于所述可用带宽。
34.根据权利要求33所述的处理器,其中当发送所述数据区段所必需的所述传输资源的所述总量大于所述可用带宽量时,所述处理器适于选择所述多个区段中的一者或一者以上下调大小。
35.根据权利要求33所述的处理器,其中当发送所述数据区段所必需的所述传输资源的所述总量小于所述可用带宽量时,所述处理器适于选择所述多个区段中的一者或一者以上上调大小。
36.根据权利要求32所述的处理器,其中所述处理器适于
当所述多个数据区段不适配于所述可用带宽时,分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段;
分析所述质量-速率表以确定所述经识别的数据区段在当前质量水平时的大小;以及
选择所述经识别的数据区段中在所述当前质量水平时具有最大经评估大小的至少一者。
37.根据权利要求36所述的处理器,其中所述处理器适于
使用所述选定数据区段在所述随后质量水平时的所述大小确定所述多个数据区段是否适配于可用带宽;以及
当所述多个数据区段不适配于所述可用带宽时,基于与所述多个数据区段相关联的所述质量和速率信息选择一个或一个以上额外数据区段重新调整大小。
38.根据权利要求32所述的处理器,其中所述处理器适于
当所述多个数据区段不适配于所述可用带宽时,分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段;
对于所述数据区段中的每一者,计算所述经识别的数据区段在当前质量水平时的大小与所述经识别的数据区段在所述随后质量水平时的大小之间的差;以及
选择所述经识别的数据区段中具有最大计算差的至少一者。
39.根据权利要求32所述的处理器,其中所述处理器适于
分析与所述多个数据区段相关联的所述质量和速率信息;以及
基于所述分析选择在所述相应减小的大小下对质量具有最小量影响的所述一个或一个以上数据区段。
40.根据权利要求39所述的处理器,其中所述处理器适于求一等式的最大值
求最大值
已知及
其中i=1...(n-1)及
其中i=1...n,
其中n是数据区段的总数,QTotal是所有所述数据区段的总体质量,ki是与第i数据区段相关联的常数,ri是与所述第i数据区段相关联的位速率,R是总可用位速率,QVi是与第i数据区段相关联的质量,
是与所述第i数据区段相关联的最低质量,且wi是与所述第i数据区段相关联的优先权。
41.根据权利要求32所述的处理器,其中所述处理器适于规定所述选定数据区段的至少最大大小。
42.根据权利要求32所述的处理器,其中所述处理器适于组合在一时间周期内所述数据区段的多媒体数据。
43.根据权利要求32所述的处理器,其中所述处理器适于
请求传送经选择用于重新调整大小的所述数据区段的经编码内容;
请求传送所述多个数据区段的其余数据区段的经编码内容;以及
响应于所述请求接收所述多个数据区段中的每一者的所述内容。
44.一种用于处理数字视频数据的计算机程序产品,其包含
计算机可读媒体,其包含促使至少一个计算机执行以下操作的指令
接收与所述数字多媒体数据流相关联的多个数据区段的至少质量和速率信息,其中所述质量和速率信息包含与所述多个数据区段相关联的质量-速率表,且其中所述质量-速率表中的每一者指示与所述相应数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小;
确定所述多个数据区段是否适配于可用带宽;
当所述多个数据区段不适配于所述可用带宽时,基于与所述多个数据区段相关联的所述质量和速率信息选择所述多个数据区段中的一者或一者以上重新调整大小;以及
请求重新调整所述一个或一个以上选定数据区段中的每一者的大小以实现所述多个流的所述可用带宽。
45.根据权利要求44所述的计算机程序产品,其中促使所述计算机确定所述多个数据区段是否适配于所述可用带宽的所述指令进一步包含促使所述计算机执行以下操作的指令
确定以对应于所述质量水平中的选定一者的大小发送所述数据区段中的每一者所必需的传输信道资源的量;
合计发送所述数据区段所必需的传输信道资源的所述量;以及
将所有所述数据区段所需的传输信道资源的总量与可用传输信道资源的量进行比较以确定所述多个数据区段是否适配于所述可用带宽。
46.根据权利要求45所述的计算机程序产品,其中促使所述计算机选择所述多个区段中的一者或一者以上重新调整大小的所述指令包含当发送所述数据区段所必需的所述传输资源的所述总量大于所述可用带宽量时促使所述计算机选择所述多个区段中的一者或一者以上下调大小的指令。
47.根据权利要求45所述的计算机程序产品,其中促使所述计算机选择所述多个区段中的一者或一者以上重新调整大小的所述指令包含当发送所述数据区段所必需的所述传输资源的所述总量小于所述可用带宽量时促使所述计算机选择所述多个区段中的一者或一者以上上调大小的指令。
48.根据权利要求44所述的计算机程序产品,其中促使所述计算机选择所述多个数据区段中的一者或一者以上的指令包含促使所述计算机执行以下操作的指令
当所述多个数据区段不适配于所述可用带宽时,分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段;
分析所述质量-速率表以确定所述经识别的数据区段在当前质量水平时的大小;以及
选择所述经识别的数据区段中在所述当前质量水平时具有最大经评估大小的至少一者。
49.根据权利要求48所述的计算机程序产品,其进一步包含促使所述计算机执行以下操作的指令
使用所述选定数据区段在所述随后质量水平时的所述大小确定所述多个数据区段是否适配于可用带宽;以及
当所述多个数据区段不适配于所述可用带宽时,基于与所述多个数据区段相关联的所述质量和速率信息选择一个或一个以上额外数据区段重新调整大小。
50.根据权利要求44所述的计算机程序产品,其中促使所述计算机选择所述多个数据区段中的一者或一者以上的指令包含促使所述计算机执行以下操作的指令
当所述多个数据区段不适配于所述可用带宽时,分析所述质量-速率表以识别具有对应于次最佳质量水平的随后质量水平的一个或一个以上数据区段;
对于所述数据区段中的每一者,计算所述经识别的数据区段在当前质量水平时的大小与所述经识别的数据区段在所述随后质量水平时的大小之间的差;以及
选择所述经识别的数据区段中具有最大计算差的至少一者。
51.根据权利要求44所述的计算机程序产品,其中促使所述计算机选择所述数据区段中的一者或一者以上的指令包含促使所述计算机执行以下操作的指令
分析与所述多个数据区段相关联的所述质量和速率信息;以及
基于所述分析选择在所述相应减小的大小下对质量具有最小量影响的所述一个或一个以上数据区段。
52.根据权利要求51所述的计算机程序产品,其中促使所述计算机选择在所述相应减小的大小下对质量具有最小量影响的一个或一个以上数据区段的指令包含促使所述计算机求一等式的最大值的指令
求最大值
已知及
其中i=1...(n-1)及
其中i=1...n,
其中n是数据区段的总数,QTotal是所有所述数据区段的总体质量,ki是与第i数据区段相关联的常数,ri是与所述第i数据区段相关联的位速率,R是总可用位速率,QVi是与第i数据区段相关联的质量,
是与所述第i数据区段相关联的最低质量,且wi是与所述第i数据区段相关联的优先权。
53.根据权利要求44所述的计算机程序产品,其中促使所述计算机请求重新调整所述选定数据区段大小的指令包含促使所述计算机规定所述选定数据区段的至少最大大小的指令。
54.根据权利要求44所述的计算机程序产品,其进一步包含促使所述计算机组合在一时间周期内所述数据区段的多媒体数据的指令。
55.根据权利要求44所述的计算机程序产品,其进一步包含促使所述计算机执行以下操作的指令
请求传送经选择用于重新调整大小的所述数据区段的经编码内容;
请求传送所述多个数据区段的其余数据区段的经编码内容;以及
响应于所述请求接收所述多个数据区段中的每一者的所述内容。
56.一种编码数字多媒体数据流的方法,所述方法包含
使所述流的数据区段与至少质量和速率信息相关联;以及
发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理,其中所述质量和速率信息包含与所述数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
57.根据权利要求56所述的方法,其进一步包含
分析所述数据区段的内容;
基于所述内容的所述分析,选择所述数据区段的多个质量-速率曲线中的一者;以及
使用所述选定质量-速率曲线产生与所述数据区段相关联的所述质量-速率表。
58.根据权利要求57所述的方法,其中产生所述质量-速率表包含
计算所述数据区段可被编码的大小;以及
使用所述选定质量-速率曲线确定与所述大小中的每一者相关联的质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量。
59.根据权利要求57所述的方法,其中产生所述质量-速率表包含
计算所述数据区段可被编码的多个质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量;以及
使用所述选定质量-速率曲线确定所述数据区段在所述质量水平中的每一者时的大小。
60.根据权利要求56所述的方法,其进一步包含
接收发送与所述数据区段相关联的至少所述质量和速率信息的请求;以及
响应于所述请求,发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理。
61.根据权利要求56所述的方法,其进一步包含
接收重新调整所述数据区段大小的请求;以及
响应于所述请求,重新调整所述数据区段大小。
62.根据权利要求61所述的方法,其进一步包含
接收传送所述经重新调整大小的数据区段的内容的请求;以及
响应于所述请求,发送所述经重新调整大小的数据区段的所述内容以用于多路复用处理。
63.一种用于编码数字多媒体数据流的设备,所述设备包含
内容分类模块,其使所述流的数据区段与至少质量和速率信息相关联;以及
编码模块,其发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理,其中所述质量和速率信息包含与所述数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
64.根据权利要求63所述的设备,其中
所述内容分类模块分析所述数据区段的内容,并基于所述内容的所述分析,选择所述数据区段的多个质量-速率曲线中的一者;且
所述设备进一步包含质量和速率信息产生模块,其使用所述选定质量-速率曲线产生与所述数据区段相关联的所述质量-速率表。
65.根据权利要求64所述的设备,其中所述质量和速率信息产生模块计算所述数据区段可被编码的大小,并使用所述选定质量-速率曲线确定与所述大小中的每一者相关联的质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量。
66.根据权利要求64所述的设备,其中所述质量和速率信息产生模块计算所述数据区段可被编码的多个质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量,并使用所述选定质量-速率曲线确定所述数据区段在所述质量水平中的每一者时的大小。
67.根据权利要求63所述的设备,其中所述编码模块接收发送与所述数据区段相关联的至少所述质量和速率信息的请求,并响应于所述请求,发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理。
68.根据权利要求63所述的设备,其进一步包含重新调整大小的模块,所述重新调整大小的模块接收重新调整所述数据区段大小的请求,并响应于所述请求,重新调整所述数据区段大小。
69.根据权利要求68所述的设备,其中所述编码模块接收传送所述经重新调整大小的数据区段的内容的请求,并响应于所述请求,发送所述经重新调整大小的数据区段的所述内容以用于多路复用处理。
70.一种用于编码数字多媒体数据流的设备,所述设备包含
用于使所述流的数据区段与至少质量和速率信息相关联的装置;以及
用于发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理的装置,其中所述质量和速率信息包含与所述数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
71.根据权利要求70所述的设备,其中
所述用于关联的装置分析所述数据区段的内容,并基于所述内容的所述分析,选择所述数据区段的多个质量-速率曲线中的一者;且
所述设备进一步包含用于使用所述选定质量-速率曲线产生与所述数据区段相关联的所述质量-速率表的装置。
72.根据权利要求71所述的设备,其中所述产生装置计算所述数据区段可被编码的大小,并使用所述选定质量-速率曲线确定与所述大小中的每一者相关联的质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量。
73.根据权利要求71所述的设备,其中所述产生装置计算所述数据区段可被编码的多个质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量,并使用所述选定质量-速率曲线确定所述数据区段在所述质量水平中的每一者时的大小。
74.根据权利要求70所述的设备,其进一步包含
用于接收发送与所述数据区段相关联的至少所述质量和速率信息的请求的装置;且
其中所述发送装置响应于所述请求发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理。
75.根据权利要求70所述的设备,其进一步包含
用于接收重新调整所述数据区段大小的请求的装置;
用于响应于所述请求重新调整所述数据区段大小的装置;且
其中所述发送装置发送所述经重新调整大小的数据区段的内容以用于多路复用处理。
76.一种用于处理数字视频数据的处理器,所述处理器适于
使所述流的数据区段与质量和速率信息相关联;以及
将与所述数据区段相关联的所述质量和速率信息发送到多路复用设备,其中所述质量和速率信息包含与所述数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
77.根据权利要求76所述的处理器,其中所述处理器适于
分析所述数据区段的内容;
基于所述内容的所述分析,选择所述数据区段的多个质量-速率曲线中的一者;以及
使用所述选定质量-速率曲线产生与所述数据区段相关联的所述质量-速率表。
78.根据权利要求77所述的处理器,其中所述处理器适于
计算所述数据区段可被编码的大小;以及
使用所述选定质量-速率曲线确定与所述大小中的每一者相关联的质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量。
79.根据权利要求77所述的处理器,其中所述处理器适于
计算所述数据区段可被编码的多个质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量;以及
使用所述选定质量-速率曲线确定所述数据区段在所述质量水平中的每一者时的大小。
80.根据权利要求76所述的处理器,其中所述处理器适于
接收发送与所述数据区段相关联的至少所述质量和速率信息的请求;以及
响应于所述请求,发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理。
81.根据权利要求76所述的处理器,其中所述处理器适于
接收重新调整所述数据区段大小的请求;以及
响应于所述请求,重新调整所述数据区段大小。
82.根据权利要求81所述的处理器,其中所述处理器适于
接收传送所述经重新调整大小的数据区段的内容的请求;以及
响应于所述请求,发送所述经重新调整大小的数据区段的所述内容以用于多路复用处理。
83.一种用于处理数字视频数据的计算机程序产品,其包含
计算机可读媒体,其包含促使至少一个计算机执行以下操作的指令
使所述流的数据区段与质量和速率信息相关联;以及
将与所述数据区段相关联的所述质量和速率信息发送到多路复用设备,其中所述质量和速率信息包含与所述数据区段相关联的质量-速率表,所述质量-速率表指示与所述数据区段相关联的至少一个或一个以上质量水平和所述数据区段在所述质量水平中的每一者时的大小。
84.根据权利要求83所述的计算机程序产品,其进一步包含促使所述计算机执行以下操作的指令
分析所述数据区段的内容;
基于所述内容的所述分析,选择所述数据区段的多个质量-速率曲线中的一者;以及
使用所述选定质量-速率曲线产生与所述数据区段相关联的所述质量-速率表。
85.根据权利要求84所述的计算机程序产品,其中促使所述计算机产生所述质量-速率表的指令包含促使所述计算机执行以下操作的指令
计算所述数据区段可被编码的大小;以及
使用所述选定质量-速率曲线确定与所述大小中的每一者相关联的质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量。
86.根据权利要求84所述的计算机程序产品,其中促使所述计算机产生所述质量-速率表的指令包含促使所述计算机执行以下操作的指令
计算所述数据区段可被编码的多个质量水平,其中所述质量水平中的每一者与相邻质量水平分开一质量增量;以及
使用所述选定质量-速率曲线确定所述数据区段在所述质量水平中的每一者时的大小。
87.根据权利要求83所述的计算机程序产品,其进一步包含促使所述计算机执行以下操作的指令
接收发送与所述数据区段相关联的至少所述质量和速率信息的请求;以及
响应于所述请求,发送与所述数据区段相关联的至少所述质量和速率信息以用于多路复用处理。
88.根据权利要求83所述的计算机程序产品,其进一步包含促使所述计算机执行以下操作的指令
接收重新调整所述数据区段大小的请求;以及
响应于所述请求,重新调整所述数据区段大小。
89.根据权利要求88所述的计算机程序产品,其进一步包含促使所述计算机执行以下操作的指令
接收传送所述经重新调整大小的数据区段的内容的请求;以及
响应于所述请求,发送所述经重新调整大小的数据区段的所述内容以用于多路复用处理。
全文摘要
大体上,本发明描述用于在多个编码器模块与一多路复用模块之间交换信息从而以改进的总体质量组合来自所述编码器模块的数据区段的技术。明确地说,所述编码器模块使其各自数据区段与质量和速率信息相关联且将与所述数据区段相关联的至少所述质量和速率信息发送到所述多路复用模块。所述多路复用模块分析所述质量和速率信息以确定编码器模块希望包括于当前超级帧中的所述数据区段是否适配于传输信道的可用带宽。如果所述多路复用模块确定所述多个数据区段不适配于所述可用带宽,那么所述多路复用模块基于从所述编码器模块接收的所述质量和速率信息选择所述区段中的一者或一者以上重新调整大小。
文档编号H04N7/50GK101371590SQ200780002894
公开日2009年2月18日 申请日期2007年1月31日 优先权日2006年1月31日
发明者德瓦尔施·沙阿, 比尼塔·古普塔, 斯科特·T·斯瓦泽伊, 罗伯特·S·戴利, 斯滕·约尔延·达尔, 萨迪·M·纳加拉杰, 维诺德·考希克, 塞拉菲姆·S·小劳卡斯, 维贾雅拉克希米·R·拉韦恩德拉恩, 布鲁斯·柯林斯 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1