首页> 中国专利> 基于质量和速率信息对多媒体内容进行尺寸调整的方法和系统

基于质量和速率信息对多媒体内容进行尺寸调整的方法和系统

摘要

概括地说,本发明描述了用于在多个编码器模块和一个复用模块之间交换信息,以便组合来自这些编码器模块的数据段从而改善整体质量的技术。具体而言,这些编码器模块将它们各自的数据段与质量和速率信息进行关联,至少向复用模块发送与这些数据段相关的质量和速率信息。复用模块分析这些质量和速率信息,以便判断编码器模块期望添加在当前超帧中的这些数据段是否适合传输信道的可用带宽。如果复用模块确定多个数据段不适合可用带宽,那么复用模块根据从这些编码器模块接收的质量和速率信息,选择这些段中的一个或多个来进行尺寸调整。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-17

    未缴年费专利权终止 IPC(主分类):H04L27/26 授权公告日:20130116 终止日期:20190130 申请日:20080130

    专利权的终止

  • 2013-01-16

    授权

    授权

  • 2010-02-03

    实质审查的生效

    实质审查的生效

  • 2009-12-09

    公开

    公开

说明书

技术领域

概括地说,本发明涉及多媒体编码和解码,具体地说,本发明涉及调整多媒体尺寸以便实现高效的统计复用。

背景技术

诸如无线通信网络之类的数据网络必须在为单终端定制的业务和向大量终端提供的业务之间取得平衡。例如,向许多个具有有限资源的便携式设备(用户)分发多媒体内容是一个复杂的问题。因此,对于网络管理员、内容提供商和业务提供商来说,以快速和高效的方式分发内容和/或其它网络业务从而在网络设备上进行呈现是非常重要的。

内容传送/媒体分发系统可以将实时和非实时业务封装到传输帧中,并将该帧传递给网络上的设备。例如,通信网络可以使用正交频分复用(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的位置的信息。

狭槽(slot):在OFDM符号上分配给MLC的带宽的最小单位。

图1描绘了一种多媒体编码和解码系统100。系统100包括多媒体编码设备(例如,服务器104)、多媒体解码设备(例如,移动设备102)和数据网络106。为了说明起见,假设数据网络106使用OFDM技术与一个或多个便携式设备进行通信;但是,该复用器系统也适合于与其它传输技术一起使用,例如多种无线接入技术(例如,全球移动通信系统(GSM)、CDMA2000、宽带CDMA(W-CDMA)、CDMA 1xEV-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一起执行该激活进程,设备102现准备预订和接收来自服务器104的业务。虽然图1中描述的例子是围绕预订业务来进行描述的,但设备102也可以接收网络106上不需要预订的业务。

服务器104与实时媒体服务器(RTMS)126进行通信,后者包括或者能够存取包括一个或多个实时(RT)业务112的内容。服务器104还与非实时媒体服务器(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和/或ORT业务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包括全部耦接到数据总线208的处理逻辑202、存储器204和收发机逻辑206。服务器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包括在网络上向设备传送的一个或多个内容流。此外,RT216和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和尽力而为业务(没有示出)是否适合传输帧的可用带宽(相对于它们的传送需求而言)。在一个方面,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)执行时,提供本申请描述的复用系统的功能。例如,可以将指令从计算机可读介质(例如,软盘、CDROM、存储卡、闪存设备、RAM、ROM或与服务器200交互的任何其它类型存储器设备或计算机可读介质)装载到服务器200中。或者,也可以通过收发机逻辑206,将这些指令从与服务器200交互的外部设备或网络资源下载到服务器200中。当这些指令由处理逻辑202执行时,其提供如本申请所述复用系统的一个或多个方面。

因此,服务器200提供了一种复用系统,其高效地将与RT业务216和ORT业务218相关的流复用到传输帧中,以便向网络上的设备发射。

传输帧狭槽分配算法

下面的描述说明了用于复用系统的狭槽分配算法。该狭槽分配算法用于向与可用的RT和ORT业务相关的内容流分配传输帧中的狭槽。该分配算法用于获得高效的带宽利用,从而使接收设备省电。该分配算法可以由MUX逻辑210执行和/或控制。

为了说明起见,在下文中将此传输帧称为超帧。应当注意的是,超帧仅是一种实现方式,复用系统还适合于使用其它类型的传输帧实现方式。

例如,超帧可以包括用于带宽分配的数据符号部分。可以将超帧的数据符号部分划分成四个相同部分,其在下文称作为“帧”。在四个帧上均等地分配业务中要发射的数据(在一个方面,其是里德-所罗门(RS)块)。因此,在一个超帧上进行狭槽分配算法的操作是在一个帧上进行狭槽分配算法的操作的重复。因此,下面的描述中说明了在一个帧上的狭槽分配,但其等同地可适用于整个超帧。此外,本申请讨论的狭槽分配算法可以用于向所有类型的业务分配狭槽,这些业务包括但不限于:实时业务、非实时业务和IP数据播送。

信道分配

在一个或多个方面,媒体逻辑信道(MLC)携带相同业务的一个或多个流。因此,每一业务都可以具有一个或多个MLC,其中在OIS中描述了它们在帧中的位置。期望接收特定MLC的设备从OIS获得该MLC的位置。在OIS中使用以下信息来描述帧中MLC的位置。

-起始符号

-起始狭槽

-最低狭槽

-最高狭槽

-全部狭槽

图3示出了帧300的一个示例,其描绘了用于复用系统的MLC狭槽分配。帧300包括用于七个(7)狭槽中的每一个狭槽的“N”个OFDM符号。通常,MLC的狭槽分配是302所示的阴影区域。即,使用两个变量来描述狭槽分配:长度和高度。长度的单位是OFDM符号,高度的单位是狭槽。

分配形状

图4示出了帧400的例子,帧400包括用于复用系统的各种MLC分配形状。例如,MLC分配是通常由402、404、406和408所示的阴影区域。举一个例子,选择分配形状,以便可使用固定的有限数量的数据域,在帧400的OIS中描述它们。

分配的高度

图5示出了表500,表500描绘了针对选定的MLC分配,发射模式参数和最大狭槽高度值之间的关系。接收设备的Turbo解码器的峰值输出速率限制了可以在单一OFDM符号中解码的Turbo分组的数量。结果,可以约束MLC分配的高度。针对给定的发射模式,使用称作为最大狭槽高度(“maxSlotHeight”)的变量来表示MLC分配的最大狭槽高度。例如,从表500中可以观察到,发射模式四(4)支持具有最大狭槽高度三(3)的MLC分配,发射模式一(1)支持具有最大狭槽高度七(7)的MLC分配。

分配算法

在一个方面,将选定的业务的所有MLC组合在一起,使得它们的分配在帧中时间上相邻。这减少了接收设备需要“苏醒”来接收业务的不同MLC的次数。因此,降低或节约了接收设备的功耗。

针对接收设备的功耗,优选的是,MLC分配的高度是其最大狭槽高度。这使设备接收该MLC的可能“开启次数”最小化。但是,为了易于封装,为一个业务的所有组合的MLC分配相同的高度。因此,将“一个业务的最大狭槽高度”的概念规定为组合的用于该业务的所有MLC的最大狭槽高度参数中的最小值或最小值。对于本说明书的其余部分来说,业务的高度意味着该业务的所有MLC分配的共同高度。

图6示出了帧600的例子,其描绘了用于复用系统的不同MLC狭槽分配。将帧600划分成具有不同高度的块的MLC分配。举一个例子,块高度与业务可以采用的可能最大狭槽高度相对应。从图5所示的表500中,可以确定有四种可能的最大狭槽高度(即,3、4、6或7)。举一个例子,狭槽分配算法根据最大狭槽高度参数,用于将业务封装成不同的块分配。例如,分别由602、604、606和607示出了基于可能的最大狭槽高度(即,3、4、6或7)的分配。

分配算法的操作过程

下面描述了用于复用系统的示例性分配算法。MUX逻辑210可以进行操作,实现分配算法以便执行下面所述的功能。

该分配算法的输入如下:

1、针对一个帧,一个业务的每一信道具有的数据狭槽的数量。

2、一个业务的每一信道的最大狭槽高度,其由该信道的发射模式来确定。

该算法的输出如下:

1、指示是否可以封装的决策。如果封装是可以的,那么该算法给出MLC分配的位置。

2、如果封装是不可以的,那么狭槽分配算法请求尺寸调整控制器212对业务进行尺寸调整。在一个方面,尺寸调整控制器212决定对哪些业务进行尺寸调整和按什么速率进行调整。对尺寸调整控制器212的操作的描述在本文档的另一个部分中提供。

图7示出了用于提供在复用系统中使用的分配算法的示例性方法700。例如,方法700用于向一个或多个RT业务分配狭槽。在一个方面,MUX逻辑210用于提供如下所述的方法700的功能。

在模块702,进行测试,以判断与可用狭槽的数量相比,将所有RT业务复用到一个帧中所需要的全部狭槽数量是否较大。例如,MUX逻辑210进行这种判断。在一个方面,可用狭槽的数量具有“每一帧符号数量”(每帧符号数)七倍的值。如果所需要的狭槽数大于可用狭槽,那么该方法转到模块718。如果所需要的狭槽数小于或等于可用狭槽数,那么该方法转到模块704。

在模块718,确定了封装失败。例如,在一个方面,MUX逻辑210确定没有足够的可用狭槽来封装这些业务,随后,该方法在模块716结束。

在模块704,计算针对每一RT业务的最大狭槽高度参数。例如,在一个方面,MUX逻辑210用于执行这种计算。最大狭槽高度指示针对每一RT业务每一符号可允许的最大狭槽数。

在模块706,根据要复用的RT业务的最大狭槽高度参数,将它们分组成“三个块业务”(三块业务)、“四个块业务”(四块业务)、“六个块业务”(六块业务)和“七个块业务”(七块业务)。在一个方面,MUX逻辑210用于按照业务的狭槽需求来组合这些业务。

在模块708,将每一组中的RT业务按递减的数据狭槽数量进行排序。例如,按照所需要的数据狭槽从最大到最小,来排序这些RT业务。

在模块710,计算长度变量L7、L6、L4和L3。例如,七块业务的长度是“L7”,六块业务的长度是“L6”,四块业务的长度是“L4”,三块业务的长度是“L3”。例如,将所有七块业务的长度规定为:

L7=ceil(所有七块业务的全部数据狭槽/7)

其中,ceil(x)是大于x的最小整数。在一个方面,MUX逻辑210用于计算长度参数(L7、L6、L4和L3)。

在模块712,执行一个或多个不等式检验。例如,检验下列不等式以判断每一个不等式是成立还是不成立。

L7+L3+L6<=每帧符号数(1)

L7+L4+L6<=每帧符号数(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,其描绘了复用系统分配额外的四个块业务的方面的操作。例如,分配块包括三块1002、四块1004、六块1006和七块1008。这些分配块还包括reg2Blk 1010。帧1000描绘了方法900如何进行操作,以便向四块1004、三块1002和reg2Blk 1010分配块分配额外的四个块业务(四块业务)1012。在一个方面,方法900用于向图10中所示的帧1000分配RT业务。

再次参见图9,在模块908,处理四个块业务。例如,在一个方面,MUX逻辑210用于处理如下面通过图10中的帧1000所描述的四个块业务。

a、查找四块1004能够最多保持的四块业务,以满足上文通过方法800描述的第一不等式状况。随后,在没有额外四块业务的情况下更新四块1004。

b、将额外的四块业务移到三块1002和reg2Blk 1010。如图10所示,reg2Blk 1010是高度为1的块。

c、在移动额外的四块业务时,还检验四块1004自身中是否可以适合连续的业务。

d、仅当下列条件不等式成立时,才完成上述移动。

((L7+L3+L6)<=每帧OFDM符号数)&&

((L7+L4+L6)<=每帧OFDM符号数)&&

((L7+L4+Lreg2)<=每帧OFDM符号数)

在模块910,进行测试,以判断是否可以如上所述那样移动额外的四个块业务。如果不能够将额外的四块业务移动到三块1002或reg2Blk 1010,以满足模块908的条件不等式,那么方法转到模块914,在模块914,确定封装失败,该方法结束。如果可以移动额外的四块业务,那么该方法转到模块912。

在模块912,该方法进行最后操作。由于额外的四块业务能够成功地移动,所以该方法进行最后操作以完成狭槽分配。

应当注意的是,方法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,其描绘了复用系统分配额外的三个块业务的方面的操作。例如,分配块包括三块1202、四块1204、六块1206、reg2Blk1208和reg1Blk 1210。帧1200描绘了方法1100如何进行操作,以便向三块1202、reg1Blk 1210和reg2Blk 1208分配块分配额外的三个块业务(三块业务)1212。

再次参见图11,在模块1108,处理三个块业务(三块业务)。例如,在一个方面,MUX逻辑210用于如下处理三块业务。

a、查找三块1202能够最多保持的三块业务,以满足上文通过方法800描述的第一不等式状况。随后,在没有额外三块业务的情况下更新三块1202。

b、将额外的三块业务移到reg1Blk 1210和reg2Blk 1208。如图12所示,reg1Blk 1210是高度为3的块。

c、在移动时,还检验四块1202自身是否可以适合连续的业务。

d、仅当下列条件不等式成立时,才完成上述移动。

((L7+L3+L6)<=每帧OFDM符号数)&&

((L7+L4+Lreg1+L6)<=每帧OFDM符号数)&&

((L7+L4+Lreg2)<=每帧OFDM符号数)

在模块1110,进行测试,以判断是否可以移动额外的三个块业务。如果不能够将额外的三块业务移动到reg1Blk 1210或reg2Blk 1208,以满足模块1108的条件不等式,那么方法转到模块1112,在模块1112,确定封装失败,该方法结束。如果可以移动额外的三个块业务,那么该方法转到模块1114。

在模块1114,该方法进行最后操作。由于额外的三块业务能够成功地移动,所以该方法进行最后操作以完成狭槽分配。

应当注意的是,方法1100仅表示一种实现方式,可以对方法1100进行改变、增加、删除、组合或其它修改,这些也在本发明的保护范围之内。

图13示出了根据第四不等式状况来向RT业务分配狭槽以用于复用系统的示例性方法1300。当第一、第二和第三不等式状况不成立时,方法1300提供分配。在此情况下,可以将不等式状况的状态描述成(1F2F)。在一个方面,如下所述,MUX逻辑210用于提供方法1300的功能。

图14示出了一种帧1400,其描绘了复用系统分配额外的六个块业务的方面的操作。例如,帧1400包括三块1402、四块1404、reg2Blk 1406和六块1408分配块。帧1400描绘了如何分配额外的六个块业务(六块业务)1410。

再次参见图13,在模块1302,处理六个块业务。例如,在一个方面,MUX逻辑210用于如下处理六个块业务。

a、查找四块1404和六块1408能够最多保持的六块业务,以满足上文通过方法800描述的第一不等式状况。随后,在没有额外业务的情况下更新六块1408。

b、将额外的六块业务移到三块1402、四块1404和reg2Blk 1406。

c、在移动时,还检验六块1408自身是否可以适合连续的业务。

d、仅当下列条件不等式成立时,才完成上述移动。

((L7+L3+L6)<=每帧OFDM符号数)&&

((L7+L4+L6)<=每帧OFDM符号数)&&

((L7+L4+Lreg2)<=每帧OFDM符号数)

在模块1304,进行测试,以判断是否可以移动额外的六个块业务。如果不能够将额外的六个块业务移动到四块1404、三块1402或reg2Blk 1406,以满足模块1302的条件不等式,那么该方法转到模块1306,在模块1306,确定封装失败,该方法结束。如果可以移动额外的六个块业务,那么该方法转到模块1308。

在模块1308,该方法进行最后操作。由于额外的六块业务能够成功地移动,所以该方法进行最后操作以完成狭槽分配。

应当注意的是,方法1300仅表示一种实现方式,可以对方法1300进行改变、增加、删除、组合或其它修改,这些也在本发明的保护范围之内。

最后的操作

因此,从上面执行的操作中,可以获得关于每一个RT业务被分配了哪个块的信息。此外,针对一个帧,RT业务的每一信道所具有的数据狭槽的数量现在是已知的。这些信息足够用于获得每一信道分配的位置。在一个方面,可以在一个块的最大高度约束下,连续地向该块中的信道分配这些狭槽。

封装举例

图15示出了一种帧1500,其描绘了一种分配算法各方面的操作,以便将两个RT业务封装到用于复用系统的传输帧中。在该示例中,将这两个RT业务(即,业务A和B)封装到帧1500的四块区域中。为了说明起见,假设先前的操作已确定出这两个RT业务均在四块区域中。此外,还假设这两个RT业务均具有两个信道,即:信道1和2。此外,还假设每一信道的数据狭槽的数量如下所示:

业务A的信道1=9

业务A的信道2=9

业务B的信道1=8

业务B的信道2=7

如帧1500所示,根据下列参数将RT业务封装到四块区域中。

信道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

算法总结

在一个或多个方面,该分配算法提供将流到帧的高效封装,从而使接收设备的“苏醒”频率和“开启次数”最小化。例如,将业务的信道组合在一起减少了苏醒频率,同时按其最大狭槽高度发射业务减少了开启次数。

在一个方面,如果该算法提供的狭槽分配由于四种不等式状况中的一种而失败,该算法向用于控制如何对业务进行尺寸调整的尺寸调整控制器212发送指示。如果尺寸调整控制器212根据这些指示对业务调整了尺寸,那么就保证了封装解决方案。

图16示出了一种帧1600,其描绘了一种分配算法的一个方面的操作,以便通过将未用的狭槽分组在两个区域中的方式来封装RT业务。收集较小区域中的未用狭槽,确保这些狭槽由一些业务更好地使用,这些业务与输入给上述分配算法的业务相比,在优先级上更低。在一个方面,可以将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协商数据带宽,对于ORT业务,MUX 114可选地与NRTMS 128协商数据带宽。在一个方面,带宽协商涉及下面顺序的操作。

a、MUX 114向RTMS 126发送GetDataSize.Request(获得数据尺寸.请求)消息,以请求要在超帧中发送的RT业务的数据尺寸。

b、RTMS 126向MUX 114发送GetDataSize.Response(获得数据尺寸.响应)消息,后者指出要在超帧中发送的RT业务的数据尺寸。

c、MUX 114根据来自RTMS 126以及来自其它源的所有接收到的数据尺寸,来执行内容调度(分配)。

d、作为UpdateDataSize.Notification(更新数据尺寸.通知)消息的一部分,MUX 114向RTMS 126发送这些RT业务流数据的更新后的尺寸。

在一个方面,MUX 114用于提供内容调度功能,其包括上面描述的狭槽分配算法的方面。尺寸调整控制器116提供尺寸调整算法的方面。狭槽分配算法负责使分配给所有媒体业务的狭槽(速率)适合超帧。尽管全部分配的狭槽小于或等于超帧中全部可用的狭槽,某些系统限制(例如,设备上的Turbo解码器的峰值吞吐量限制了在单一OFDM符号中可以分配给特定媒体业务的狭槽的数量)也可能导致狭槽分配程序失败。此外,可以预期对无线链路资源占主要需求的实时业务分量是视频内容。该内容使用信源编码进行了压缩,其中信源编码导致了高变化比特速率流。最后,由于其它同时的媒体业务的需求,每一超帧可用于传输实时业务的容量可以变化。这些因素导致下列分配状况中的一种发生。

1、RT业务请求的所有数据的总和小于或等于可用的容量,故狭槽分配算法成功。

2、RT业务请求的所有数据的总和小于或等于可用的容量,但狭槽分配算法失败。

3、RT业务请求的所有数据的总和大于可用的容量。

分配状况2和3导致分配RT业务流所请求的数据量失败。在这些场景中,MUX 114调用尺寸调整控制器116来执行尺寸调整算法,以便对RT业务进行尺寸调整。下一部分说明用于实时业务的质量概念和尺寸调整算法的目标。

实时业务质量和尺寸调整算法目标

质量概念与实时流媒体业务中的视频流相关。实时业务的质量(Q)取决于分配给该业务流的比特速率(r),其可以由如下所示的质量函数来说明:

Q=f(r)(3)

在每一超帧,RTMS 126提供帮助MUX 114评估此函数的信息。在GetDataSize.Response(获得数据尺寸.响应)消息中向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业务中视频分量流(流)的速率分配。该算法首先以每一视频流请求的PLP数量(速率)为开始。该算法的每一次重复都涉及确定用于速率减小的候选业务。候选流是对速率减小最不敏感的一个流,该流与其它流相比,在质量上不承受令人不适宜的降低。在一个方面,图2中所示的尺寸调整控制器212提供了尺寸调整算法的功能。

在确定了候选流之后,降低分配给该流的速率。例如,可以将该速率降低与两个里德-所罗门编码块相对应的量。网络向所有业务分配速率,这些速率具有由与一个里德-所罗门块相对应的PLP的数量所规定的粒度。假设使用网络分层发射模式中的一种来发射具有基本视频分量和增强视频分量的视频流。此外,系统约束这两个视频分量中的数据相等。因此,选择两个里德-所罗门块作为速率减小的单位。但是,应当注意的是,对流的速率减少任意其它选定的量也在这些方面的范围之内。

常量

在复用系统的一些方面中使用下列恒定参数来提供尺寸调整功能。

rateReductionBnd

任意实时视频流的速率的分数减小的上限。该界限是关于该流请求的速率的。在一个方面,使用值0.5。

sysMin

流的质量的最小值。其用于防止已达到速率减小边界的流在速率上进一步减小。

payloadPLP

PLP的有效载荷,其大约为968比特。

算法输入

在复用系统的一些方面中使用下列输入来提供尺寸调整功能。

maxRTS OFDMSym

每一超帧可用于实时业务的OFDM符号的数量的容量。

numRTS

共享可用容量的实时业务的数量。

numVStreams

实时业务中视频分量流的总数。例如,VStream是描述每一实时视频分量流的结构列表。

_weight

保存该流的相对权重值。

requestedPLPs

保存该流请求的每一超帧的PLP数量。可以将请求的比特的原始数量估计成requestedPLPs*payloadPLP(968比特)

rsCodeParameterK

里德-所罗门(N,K)编码的参数K。

变量

在复用系统的一些方面中使用下列变量来提供尺寸调整功能。

reqPLPs[numVStreams]

由标识视频分量流的编号(0到numVStreams-1)索引的数组。该数组保存如VStream结构中的requestedPLPs成员所指示的,该流请求的每一超帧的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、对与reqPLPs[]中的单元相对应的数组assgnPLPs[]中的所有单元进行初始化。

c、初始化algorithmFlag=1,successFlag=0。

d、执行下列功能:

while algorithmFlag==1

    reducePLPs()

    如果 reduction>0

       调用狭槽分配算法

       如果狭槽分配算法成功

             algorithmFlag=0

             successFlag=1

       endif

   else

/* 这种状况表示在关于rateReductionBnd边界进行尺寸调整时失败*/

   endif

endwhile

下面的功能作为reducePLPs()程序的一部分来执行。

for i=0 to numVStreams

     tempPLPs[i]=assgnPLPs[i]

     tempPLPs[i]=tempPLPs[i]-2*PLPsPerRSBlk[i]

/*  对分配给一个流的PLP减少与两个里德-所罗门块相对应的量。在一个方面,从基本分量和增强分量中都去除一个RS块。该系统限制基本视频分量和增强视频分量中的数据相等。*/

iftempPLPs[i]/reqPLPs[i]>=rateReductionBnd

   effQuality[i]=f(tempPLPs[i]x payloadPLP)/weight[i]

else

   effQuality[i]=sysMin

   endif

endfor

/*  其中,f()是可以用于评估质量的任何适当的函数*/

e、识别如数组effQuality[]所给定的,具有最大有效质量的业务的索引。将索引参数设置为该值。

f、执行下列功能。

if effQuality[_index]==sysMin

/* 这种状况表示在关于rateReductionBnd边界的尺寸调整时失败*/

    reduction=-1

else

     reduction=2*PLPsPerRSBlkLindex]

     assgnPLPsLindex]=tempPLPsLindex]

endif

因此,尺寸调整控制器212进行操作以便在复用系统的一些方面中提供上面功能,从而对业务进行尺寸调整。例如,减少RT业务的速率,以便如上所描述的分配算法的方面所提供的,使得向该业务分配超帧的可用狭槽。

不同于实时的业务(ORTS)

上面描述的狭槽分配算法的方面考虑了各种约束条件,确保针对OFDM符号中的业务而发送的多个Turbo分组可以由设备进行解码。对于RT业务来说,这种算法是优选的,这是由于在任何时间仅需要设备接收一个RT业务。但是,设备必须在一个超帧中接收多个ORT业务。如果使用相同的算法,那么与设备极限相比,针对由该设备预订的所有ORT业务,OFDM符号中的分组的全部数量变得较大。这称作为“Turbo分组冲突”。Turbo分组冲突导致ORT业务数据的丢失。丢失的数量通常依赖于用户的预订模式。因此,下面提供和描述针对ORT业务的狭槽分配算法的其它方面,其将完全消除Turbo分组冲突。

图17示出了一种用于复用系统的示例性帧1700,其被划分成RT业务区域和ORT业务区域。第一区域1702用于RT业务,第二区域1704用于ORT业务。将帧划分成这些区域能确保在RT和ORT业务之间没有Turbo分组冲突。RT 1702和ORT 1704区域之间的划分是一种“软”划分(即,根据每一超帧中可用的RT和ORT业务数据,这种划分随超帧不同而变化)。使用上文描述的狭槽分配算法和尺寸调整算法中的一种在RT业务区域1702中为RT业务分配狭槽。使用下面描述的一种ORT业务算法在ORT业务区域1704中为ORT业务分配狭槽。在一个或多个方面,还对ORT业务进行尺寸调整,以适应可用带宽。下面提供了应用于ORT业务的尺寸调整的更详细描述。

ORT业务狭槽分配

对于接收设备的功耗来说,优选的是,MLC分配的高度是其最大狭槽高度。这使接收该MLC的设备的可能“开启次数”最小化。但是,为了易于封装,分配一个业务的所有组合在一起的MLC具有相同的高度。因此,即使针对ORT业务来说,将“业务的最大狭槽高度”的概念定义成用于为该业务组合的所有MLC的最大狭槽高度参数中的最小值或最小量。对于本说明书的其余部分来说,业务的高度将意味着该业务的所有MLC分配的共同高度。

将一个业务的信道组合在一起

在一个方面,将一个业务的所有信道组合在一起,使得它们的分配在帧中在时间上相邻。这种方法减少了设备接收一个业务的不同信道而需要“苏醒”的次数,从而帮助该设备降低功耗。

将ORTS区域划分成块

图18示出了一种示例性帧1800,其中,将ORTS区域划分成不同高度的块。在一个方面,块高度与业务可以采用的可能最大狭槽高度相对应。从表500中可以观察到,有四种最大狭槽高度(即,3、4、6和7)。因此,帧1800示出了用于分配相关的业务的三块1802、四块1804、六块1806和七块1808区域。随后,ORT业务狭槽分配算法进行操作,以便根据最大狭槽高度将业务封装到不同的块中。

没有哪个块在其它块之上

在一个方面,在帧1800中排列这些块,使得在一个块上没有其它块。这确保了两个ORT业务不存在Turbo分组冲突。

ORT业务狭槽算法

在一个或多个方面,下列参数表示ORT业务狭槽分配算法的输入。

a、针对一个帧,业务的每一MLC具有的数据狭槽的数量。

b、业务的每一MLC的最大狭槽高度,其是由该MLC的发射模式确定的。

c、可用于ORT业务的符号总数(numAvaiIOrtsSymPerFrm)。

在一个或多个方面,下列参数表示来自ORT业务狭槽分配算法的输出。

a、关于是否可以封装的决定。

b、如果封装是成功的,则输出ORT业务占用的符号数(numOccuOrtsSymPerFrm)。

图19示出了一种用于复用系统的,向ORT业务分配狭槽的示例性方法1900。在一个方面,MUX逻辑210用于提供如下所述的方法1900的功能。

在模块1902,计算每一ORT业务的最大狭槽高度。在一个方面,MUX逻辑210执行这种计算。

在模块1904,根据每一业务的最大狭槽高度参数,将这些ORT业务组合到一些块中。例如,在一个方面,将这些业务组合到三块业务、四块业务、六块业务和七块业务。在一个方面,MUX逻辑210执行这种操作。

在模块1906,计算长度变量L7、L6、L4和L3。例如,L7=ceil(所有七块业务的全部狭槽/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业务分配狭槽。例如,在每一超帧,MUX 114都使用GetDataSize.Response(获得数据尺寸.响应)指令来从内容实体(例如,RTMS 126和NRTMS 128)获得各种流数据的量以及它们相对的优先级。使用该信息,执行针对高优先级和中间优先级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,使用numRTSymbols加1来执行RT业务狭槽分配。例如,MUX逻辑210使用增加的numRTSymbols值来针对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.Notification(更新数据尺寸.通知)消息来向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,在模块2118,该方法返回到图2000中的模块2020。

因此,方法2100用于提供在复用系统中使用的尺寸调整。应当注意的是,方法2100仅表示一种实现方式,可以对方法2100进行改变、增加、删除、组合或其它修改,这些也在本发明的保护范围之内。

图22示出了提供用于复用系统的拥塞控制的示例性方法2200。例如,方法2200适合于用作图2000中的模块2018。在一个方面,MUX 210用于提供下面所描述的功能。

在模块2202,为高优先级ORT业务分配狭槽。例如,MUX 210根据本申请描述的分配算法的方面来执行这种分配。

在模块2204,进行测试以判断在模块2202执行的分配是否成功。例如,MUX 210执行这种功能。如果分配成功,那么该方法转到模块2208。如果分配不成功,那么该方法转到模块2206。

在模块2206,按照它们等级的升序来分配高优先级ORT业务。例如,MUX 210根据本申请描述的分配算法的方面来执行这种分配。随后,方法2200在2218结束。

在模块2208,对所有可能的RT业务流减小选定的量,对这些流执行狭槽分配。例如,尺寸调整控制器212和MUX 210根据本申请描述的方面来执行这些操作。所选定的量是基于该系统已知的速率减小参数的。

在模块2210,进行测试以判断模块2208的RT业务狭槽分配是否成功。例如,MUX 210执行这种功能。如果分配成功,那么该方法转到模块2112。如果分配不成功,那么该方法转到模块2214。

在模块2212,按照等级的升序为中间优先级ORT业务分配狭槽。例如,MUX 210根据本申请描述的分配算法方面来执行这种分配。随后,方法2200在2218结束。

在模块2214,执行RT业务狭槽分配,其不包括仅次于最低的等级的业务。例如,MUX 210根据本申请描述的分配算法方面来执行这种分配。

在模块2216,进行测试以判断模块2214的分配是否成功。例如,MUX210执行这种功能。如果分配成功,那么该方法转到模块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发送质量和速率信息。例如,在从复用模块2406接收到请求之后,编码器模块2404可以经由控制信道发送质量和速率信息。复用模块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业务的相关传送需求来选择这些ORT业务,从而在编码器模块2404的实时业务和ORT业务之间分配带宽。同样,本申请的技术是在用于示例目的的实时业务背景中描述的。复用模块2406可以仍然根据上文描述的技术对ORT业务进行分析和进行尺寸调整。因此,在下面的图中描述的技术更适用于调整实时业务尺寸。

复用模块2406请求与所选定的数据段相关的编码器模块2404,以便根据减小的比特分配来对数字多媒体数据流进行尺寸调整。在一些情况中,当没有足够的带宽来发射业务时,复用模块2406可以请求编码器模块2404向下调整所选定的数据段的尺寸。在其它情况中,当有盈余的可用带宽时,复用模块2406可以请求编码器模块2404向上调整所选定的数据段的尺寸。复用模块2406可以经由控制信道向与所选定的段相关的编码器模块2404发送尺寸调整请求。尺寸调整请求可以针对所选定的数据段指定例如比特的尺寸。

与所选定的数据段相关的编码器模块2404接收与它们各自数据段相关的尺寸调整请求,对多媒体数据段进行尺寸调整。编码器模块2404可以以多利不同的方式来调整数据段的尺寸。与所选定的数据段相关的编码器模块2404可以调整一个或多个编码变量,以便减少数据段的尺寸,使其小于或等于尺寸调整请求中指定的最大尺寸。例如,编码器模块2404可以使用更高的量化参数(QP)来重新编码数据段。再举一个例子,编码器模块2404可以按减少的编码速率来重新编码数据段。替代地或另外地,编码器模块2404可以减少要编码的信息的量,因此减少数据段的尺寸。在一些情况中,编码器模块24040可以调整一个或多个编码变量,以便将数据段的尺寸增加到尺寸调整请求中所指定的尺寸。例如,编码器模块2404可以使用更低的QP来重新编码数据段或者按增加的编码速率来重新编码数据段。

当复用模块2406准备生成当前超帧时,复用模块2406收集编码后的数据段。例如,复用模块2406可以经由控制信道向编码器模块2404发送传送请求。响应上述请求,编码器模块2404向复用模块2406发送编码后的多媒体数据段。复用模块2406对多媒体数据流进行组合以形成超帧,向发射机2408发送该超帧,以便经由传输信道2402向一个或多个解码设备进行传输。按此方式,复用模块2406管理这些流中的比特分配,以便使所有数据段最高效地适合固定带宽的信道2402,并同时保持这多个数据流的最高整体质量。

多媒体编码设备2400中的组件是可适用于实现本申请所述技术的那些组件的示例。但是,如果期望的话,多媒体编码设备2400还可以包括其它组件。此外,不是必须将本发明的技术限制于图24那样的系统或者是广播系统。这些技术可以适用于任何多媒体编码环境中,在这些多媒体编码环境中,编码技术用于对多个多媒体数据流进行编码,以便在具有有限带宽的传输信道上进行传输。可以将所描绘的多媒体编码设备2400中的组件集成为编码器/解码器(CODEC)的一部分。可以在与编码器或CODEC不同的组件或芯片上形成发射机2408。

多媒体编码设备2400中的组件可以实现成一个或多个处理器、数字信号处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分离逻辑、软件、硬件、固件或其任意组合。此外,多媒体编码设备2400可以遵循诸如运动图象专家组(MPEG-4)、国际电信同盟标准化部门(ITU-T)(例如,H.263或H.264)之类的多媒体编码标准、或其它编码标准或其组合。具体而言,根据以下事实,即:复用模块2404进行决断所使用的质量和速率信息可以针对每一个编码器模块2404而独立地生成,所以与复用模块2406进行通信的每一个编码器模块2404可遵循不同的多媒体编码标准。

将不同的特征描述成模块,是旨在强调多媒体编码设备2400的不同功能方面,而不是意味着这些模块必须由分开的硬件或软件组件来实现。此外,可以将与一个或多个模块相关的功能集成在共同或分开的硬件或软件组件中。因此,不应将本发明限制于多媒体编码设备2400的例子。

图25是描绘另一种示例性多媒体编码设备2500的框图,多媒体编码设备2500在尝试使多个流更高效地适合超帧的过程中,管理这些流中间的比特分配,同时保持这多个流的最高整体质量。除了对选定的多媒体数据段进行尺寸调整由与选定的数据段相关的尺寸调整模块2502A-2502N(统称为“尺寸调整模块2502”)执行以外,多媒体编码设备2500与图24中的多媒体编码设备2400基本上相一致。

因此,将图24的编码器模块2404的功能划分成编码器模块2504和尺寸调整模块2502。换言之,编码器模块2504向复用模块2506提供与各数据段相关的质量和速率信息,以便用于:向这些数据段分配可用带宽;当分配失败时,选择这些数据段中的一个或多个来进行尺寸调整。尺寸调整模块2502从复用模块2506接收对数据段进行尺寸调整的请求,并根据从复用模块2506接收的尺寸调整请求来调整数据段的尺寸。

图26是描绘一种示例性编码器模块2600的框图,编码器模块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”的美国专利申请No.11/373,577[代理人案卷号为050253]中描述了适当的内容分类方法,其中以引用方式将上述申请的全部内容并入到本申请。例如,内容分类模块2604可以将运动信息(在x轴上)分类成“高”、“中”和“低”几类,将纹理(texture)信息(在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 MULTIMEDIAPROCESSING”的美国专利申请No.11/373,577[代理人案卷号为050253]中所描述的偏移,来调整传统的质量-速率曲线,其中以引用方式将上述申请的全部内容并入到本申请。

或者,编码器模块2600可以把与每一个内容曲线相关的目标质量级调整一定的偏移量。例如,可以将包括高运动、高纹理内容的数据段按相对于目标质量级稍微较低的质量来进行编码,但将包括低运动、低纹理内容的数据段按相对于目标质量级稍微较高的质量进行编码。由于每一内容种类具有其自己相对于整体目标质量级经过调整的质量级,所以编码器模块2600可以使每一内容种类的质量级归一化,以便衡量编码器模块2600的当前质量级。编码器模块2600可以根据下列的线性方程来实现此归一化:

Qnofm=Qr-Qk,(5)

其中,Qnorm是归一化的质量级,Qr是记录的质量级,Qk是针对曲线k在质量级中的调整偏移量。如果质量归一化不是线性函数,那么在质量归一化之后必须进行等级确定。

在本发明的另一个方面,内容分类模块2604可以将数据段与预先计算所得的质量-速率表进行关联,其中,这些质量-速率表指示与这些段相关的一个或多个质量级以及该段处于每一个质量级时的尺寸。为此,内容分类模块2604可以将数据段与一个质量-速率曲线进行关联,其中该质量-速率曲线与特定的一个质量-速率表中相对应。质量-速率曲线、调整的质量-速率曲线和预先计算所得的质量-速率表可以保持在存储器(没有示出)中,并在需要时由内容分类模块2604进行访问。

在一些情况中,编码器模块2600并不存储预先计算所得的质量-速率信息或者仅预先计算质量-速率信息的一部分。例如,质量-速率信息生成模块2606可以预先计算多个质量-速率曲线或调整的质量-速率曲线,以便用于内容分类。在共同待决且共同转让的2006年3月10日提交的、题目为“CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING”的美国专利申请No.11/373,577[代理人案卷号为050253]中描述了用于生成质量-速率曲线和内容分类曲线的一个示例性技术,其中以引用方式将上述申请的全部内容并入到本申请。

但是,质量-速率信息生成模块2606可以根据分类情况,以一个段接一个段的方式生成用于各数据段的质量-速率表。例如,质量-速率信息生成模块2606可以生成列出等级和尺寸对的表。这些等级与特定的质量级相对应。例如,每一个等级可以与质量度量中的一个特定下降量相对应。使用PSNR作为示例性的质量度量,每一个等级都与PSNR中的0.05dB下降量相对应。具体而言,等级0可以与尽力而为质量级相对应,等级1与最高质量级相对应,等级2与比前一质量级低0.05dB的质量级相对应等等。在一个方面,与最高质量(例如,等级1、2和3)相对应的等级事实上对应于与目标质量级相比更高的质量级。

如下面所进一步详细描述的,质量-速率信息生成模块2606可以使用质量-速率曲线中的相应一个来确定这些等级。在一个方面,质量-速率信息生成模块2606可以计算多种质量级和相应的等级,使用相应的质量-速率曲线来确定处于各质量级时各数据段的尺寸。在本发明的另一个方面,质量-速率信息生成模块2606计算编码器模块2600可以提供的数据段的尺寸,随后,计算这些尺寸中的每一个尺寸的质量级和相应的等级。例如,编码器模块2600可以将数据段的尺寸逐渐地减小固定的量(例如,传输信道的最小传输单位尺寸),使用下式来计算与每一个期望的尺寸相对应的等级:

等级=CEILING((Ak-S)/xk),(6)

其中,等级是针对期望的尺寸的相应等级值,Ak是针对第k个质量-速率曲线的调整的目标质量级,S是与期望的尺寸相对应的质量级(即,与期望的尺寸和第k个质量-速率曲线的交叉点相对应的质量级),xk是每一等级增加的质量下降量,CEILING(x)是输出大于或等于x的最小整数值的取整函数。

编码器模块2600向复用模块(2406、2506)至少发送与每一数据段相关的质量和速率信息,以便帮助复用模块(2406、2506)监控当前超帧的尺寸和确定要对数据段中的哪些进行尺寸调整。例如,编码器模块2600可以发送与要包括在当前超帧中的数据段相关的质量和速率信息。响应来自复用模块(2406、2506)的请求,编码器模块2600可以向复用模块(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-T H.264之类的多媒体编码标准、或其它编码标准。将不同的特征描述成模块,是旨在强调编码器模块2600的不同功能方面,而不是意味着这些模块必须由分开的硬件或软件组件来实现。此外,可以将与一个或多个模块相关的功能集成在共同或分开的硬件或软件组件中。因此,不应将本发明限制于编码器模块2600的例子。

图27是描绘一种示例性复用模块2700的框图,复用模块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包括选择模块2710,后者至少分析从编码器模块2404接收的质量和速率信息,以便选择要进行尺寸调整的一个或多个数据段。在选择模块2710选择向下进行尺寸调整的一个或多个数据段的情况中,选择模块2710可以根据上述分析,选择在采用相应减少的尺寸时对质量具有最少量影响的一个或多个数据段。一个数据段的质量(QV)取决于分配给该数据段的比特速率(r),其由下面的质量函数给出:

QV=kln(r),

其中,k是特定于该多媒体段的常量,其由编码器模块2404提供。

选择模块2710根据下式给出的优化问题,来尝试使所有数据段的整体质量最大化。

最大化>{QTotal=Σi=1nQVi=Σi=1nkiln(ri)}>

假定>Σi=1nri=R---(7)>

>QVi/QVi+1=wi/wi+1>其中i=1...(n-1)

>QViQV-mini>其中i=1...n

其中,n是数据段的总数,QTotal是所有数据段的整体质量,ki是与第i个数据段相关的常量,ri是与第i个数据段相关的比特速率,R是全部可用的带宽,QVi是与第i个数据段相关的质量,是与第i个数据段相关的最小质量,wi是与第i个数据段相关的优先级。

选择模块2710按以下方式来向数据段分配比特速率(并且,因此而分配尺寸),即:与这些数据段相关的最终质量与它们分配的优先级(如果有的话)成比例。可以通过使用拉格朗日乘法器方法和Kuhn Tucker(库恩塔克尔)条件来解决上述的优化问题。将优化问题转化为标准的形式(最大化和≤约束条件),可得到下式:

最大化>{QTotal=Σi=1nQVi=Σi=1nkiln(ri)}>

假定>Σi=1nri=R---(8)>

>QVi/QVi+1=wi/wi+1>其中i=1...(n-1)

>-QVi-QV-mini>其中i=1...n

如下定义拉格朗日函数:

>F(ri,λi,μi)=Σl=1nQVi-δ(Σi=1nri-R)-Σi=1n-1λi(QViwi+1-QVi+1wi)-Σi=1nμi(-QVi+QV-mini)>

>=Σi=1n(kiln(ri))-δ(Σi=1nri-R)-Σi=1n-1λi(wi+1kiln(ri)-wiki+1ln(ri+1))---(9)>

>+Σi=1nμi((kiln(ri))-QV-mini)>

其中,δ,λi(i=1...(n-1))和μi(i=1...n)是拉格朗日乘法器。

下面是一组Kuhn Tucker条件:

>dFdri=kiri-δ-λi(wi+1kiri)+μi(kiri)=0,i=1>

>dFdri=kiri-δ-λi-1(-wi-1kiri)-λi(wi+1kiri)+μi(kiri)=0,2i(n-1)>

>dFdri=kiri-δ-λi-1(-wi-1kiri)+μi(kiri)=0,i=n---(10)>

>dF=Σi=1nri-R=0---(11)>

>dFdλi=wi+1kiln(ri)-wiki+1ln(ri+1)=0,1i(n-1)---(12)>

>μi(kiln(ri)-QV-mini)=0,1in---(13)>

>-kiln(ri)-QV-mini,1in---(14)>

μi≥0            1≤i≤n    (15)

分配给实时视频流的期望比特速率应当满足式(10)-(15)。选择模块2710可以使用任意的标准非线性编程技术来求解这些方程组。

下面是调度两个数据段(即,n=2)的速率和下列参数值的示例:

>QV1=5ln(r1)>

>QV2=8ln(r2)>

>Qv-min1=25>

>QV-min2=25>

R=5000kpbs

w1=w2=1

根据上面的参数,选择模块2710将向第一多媒体段分配4800kbps的比特速率,向第二多媒体段分配200kbps的比特速率。在一秒数据段的情况中,第一数据段的最大尺寸是4800千比特,第二数据段的最大尺寸是200千比特。选择模块2710将质量和速率信息中指示的数据段的所估计尺寸与计算所得的最大尺寸进行比较,选择超过其相关的最大尺寸的任何数据段为要进行尺寸调整的段。

再举一个例子,复用模块14可以使用从编码器模块2404接收的质量-速率表,来选择要进行尺寸调整的一个或多个数据段。如上所述,在最初的带宽分配期间,分配模块2708使用与最高质量级相关的等级相对应的尺寸信息,来尝试分配带宽。当按选定等级的尺寸向数据段分配带宽不成功时,选择模块2710选择具有次高整体质量的等级组合用于这些数据段。下面的表1描绘了与流1-4相关的四个数据段相对应的质量-速率表的部分。具体而言,表1描绘了针对与流1-4相关的四个数据段的当前等级值、当前等级值时数据段的尺寸、下一等级值和下一等级值时数据段的尺寸。将通过参见表1来帮助描绘选择模块2710的选择过程。

表1

  流1  流2  流3  流4  当前等级  3  3  4  6  当前等级的字节尺寸  40,000  50,000  45,000  20,000  下一等级  5  6  5  8

  下一等级的字节尺寸  30,000  40,000  40,000  15,000

选择模块2710分析质量-速率表,以识别数据段中的一个或多个,这一个或多个数据段具有与最高质量级相关的下一等级。在表1描绘的情况中,具有最小值的下一等级与最高质量级相对应。参见表1,选择模块2710识别与流1和流3相关的段为具有最小的下一等级。如表1所示,与流1和流3相关的数据段均具有下一等级值5,而与流2和流4相关的数据段分别具有与较差质量级相对应的下一等级值6和8。以此方式,选择模块2710分析质量-速率表,以便识别具有与仅次于最佳的质量级相对应的后继质量级的一个或多个数据段。

选择模块2710至少选择所识别的数据段中的一个来进行尺寸调整。在所识别的数据段当中,选择模块2710可以选择具有与当前等级相关的最大尺寸的所识别数据段。参见表1,选择模块2710选择与流3相关的数据段,这是由于其当前尺寸是与40,000字节相对比的45,000字节。替代地,选择模块2710可以选择处于当前等级的段尺寸和处于下一等级的段尺寸之间具有最大差值的所识别数据段。再次参见表1,选择模块2710选择与流1相关的数据段,同与流3相关的段具有5,000字节的差值相比,与流1相关的数据段具有10,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-T H.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)。例如,当数据收集模块2806准备好将数据组合到超帧中时,其可以向编码器模块2404发送数据请求。数据收集模块2806接收响应此命令而编码的数据段(2914)。复用模块2800通过组合编码后多媒体数据段,来组装超帧(2916)。随后,复用模块2800可以向发射机2408发送此超帧以便进行发射(2918)。在一些情况中,复用模块2800可以缓存该超帧,直到发射机2408请求此超帧为止。

图30是描绘复用模块2800的示例性操作的流程图,复用模块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或者诸如红外线、无线和微波之类的无线技术包括在所述介质的定义中。如本申请所使用的,盘和碟包括压缩光碟(CD)、激光影碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘(disk)通常磁性地复制数据,而碟(disc)则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。

如本申请所公开的,计算机程序产品包括计算机可读介质以及与计算机可读介质相关的任何材料,其包括将计算机可读介质封装在其中的封装材料。与计算机程序产品的计算机可读介质相关的代码可以由计算机执行,例如,由诸如一个或多个数字信号处理器(DSP)、通用微处理器、ASIC、FPGA或其它等同的集成或分离逻辑电路之类的一个或多个处理器执行。在一些方面,本申请所述功能可以在用于编码和解码的专用软件模块或硬件模块中提供,或者并入到组合的CODEC中。

上面已经描绘了本申请的各个方面。这些和其它方面都落入所附权利要求的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号