用于自适应媒体服务的多种描述提示和交换的制作方法

文档序号:7604628阅读:161来源:国知局
专利名称:用于自适应媒体服务的多种描述提示和交换的制作方法
背景技术
媒体压缩和传送为多媒体通信提供了不可缺少的形式。存在多种应用,包括数字TV、视频点播、视频电子邮件、视频电话、视频会议以及富媒体(rich media)电子教学。这些应用最显著的例证就是基于IP的万维网和无线通信服务。由于通过电缆和数字用户环路调制解调器可以获得更高的接入带宽,通过大规模地部署IP多点传送降低了服务器和网络的负荷,并且增加了骨干带宽,因此可以预见,在不久的将来,富媒体通信将发展更快并且分布更广。
遗憾的是,与可以为连接提供有保证的服务质量(“QoS”)的诸如ISDN之类的更传统的网络不同,基于IP的因特网和无线网络都是相对不可靠的。目前,因特网和无线网络不提供QoS保证。由于技术和经济的限制,对所有富媒体流全部进行QoS保证传输是不可能的,并且可能这样持续相当长的时间。不可避免的分组丢失、比特错误、突发错误、延迟以及抖动使通过该有损网络(lossy network)进行富媒体的有效传输成为一个挑战性的任务。这些网络特性影响压缩比特流的传输,改变端到端质量的性质,并且基本上都要求更新富媒体传送系统的设计。
因此,希望媒体服务器能够使内容适应当前的条件。自适应的媒体服务是本发明的焦点。例如,如果客户要求通过有损无线信道逐步地传送视频序列,则媒体服务器应当使流式传输的内容同时适应变化的分组丢失率和可用的信道速率。这种自适应将产生较好的用户经验。尤其希望该自适应不再要求媒体服务器具有巨大的处理能力,这就是典型的在线代码交换技术的情况。

发明内容
用于自适应媒体服务的多种描述提示和交换的系统和方法解决了现有技术的这些和其他缺点以及不利方面。
该系统包括用于通过创建多个表示来调节数据的调节单元,响应于该调节单元的用于封装多个调节后的数据表示的封装单元,响应于该封装装置的用于监视至少一个当前的流条件并根据所监视的至少一个当前的流条件选择最合适的封装调节后的数据表示的媒体服务器,以及响应于该媒体服务器的用于对所选择的封装调节后的数据表示进行流式传输(streaming)的通信网络。
相应的方法包括通过创建多个表示来调节数据,封装多个调节后的数据表示,监视至少一个当前的流条件,根据所监视的至少一个当前的流条件选择最合适的封装调节后的数据表示,以及对所选择的封装调节后的数据表示进行流式传输。
根据以下可结合附图对示例性实施例的描述,本发明的这些和其他方面、特征和优点将变得显而易见。


根据下面的示例性附图,本发明讲述了一种用于自适应媒体服务的多种描述提示和交换的系统和方法,其中图1示出了用于根据本发明优选实施例的系统的示意框图;图2示出了用于根据图1的封装的流程图;图3示出了用于根据图1的对封装的给定元数据进行流式传输的流程图;图4示出了一组示意性的连续描述,其中每个描述都是即将由服务器传送的压缩存取单元,例如,从i-2到i+4的描述可以代表视频剪辑的视频帧;图5示出了每个存取单元具有一个描述的一组示意性的连续描述,其中无论所监视和/或计算的运行条件xc如何,媒体服务器都连续地发送这些描述,这可能使得对与|x-xc|成正比的幅度的感知能力发生退化;
图6示出了一组示意性的离散目标运行条件xci,诸如用于来自真实网络的真实流(Sure-Streaming);图7示出了一组示意性的连续描述,其中描述i由其特性p描述,并且其中所列的特性(例如类型、大小、失真、健壮性)仅仅是示例性的;图8示出了具有附加在每个描述上的元数据的一组示意性的连续描述,该元数据描述了该描述的特性;图9示出了一组示意性的连续描述,其中媒体服务器分析与所考虑的存取单元有关的所有描述的元数据,并且根据所监视和/或计算的运行条件判断传送哪个描述;以及图10示出了一组示意性的连续描述,其中Dki(.)表示MSE(Dik)(),并且考虑存取单元i+1,在描述2处计算由αi+12(k)表示的值Ni=3,其中k在
]>在时间i+1上具有最大失真并且由Di+12表示描述2。
具体实施例方式
本发明提供了一种用于自适应媒体服务的多种描述提示和交换的系统和方法。在下面的描述中,预先定义了以下术语存取单元存取单元是应用了本发明实施例的媒体单元,诸如视频序列中的视频图像或音轨中的音频帧。
描述描述是即将由服务器传送的压缩的存取单元。
描述特性与特定的描述相关的特性向量,该向量由“p”表示。该向量以依照本发明的特定实现或实施例的方式描述特定的描述。
运行条件服务器必须适应的实际条件向量,该向量由“xc”表示。
本发明的实施例将一条信息或“元数据”附加到每个单独的描述中。该元数据以依照描述选择算法的实现的方式体现了一个描述在描述特性方面的特征。媒体服务器分析与所考虑的存取单元有关的所有描述的元数据,并且根据所监视和/或计算的运行条件xc判断传送哪个描述。也就是说,不同的描述中不存在预先定义的轨道。作为替代,媒体服务器在每个时刻或存取单元的持续时间上拾取具有特性p的最合适的描述,使得|x(p)-xc|在预先设置的约束条件下最小。
如图1所示,参考标号101一般地表示本发明的系统的实施例。系统101包括用于接收数据的调节工具100、与调节工具100进行信号通信的封装工具200以及与封装工具200和因特网400进行信号通信的媒体服务器300。该调节工具100接收源数据并且将该源数据分成一系列数据单元(例如,将视频流分成一系列视频帧)。然后,给定一组期望的运行条件,该调节工具创建每个数据单元的多种版本,每个数据单元可能具有可变数量的版本,。
转向图2,参考标号201一般地表示用于根据图1的封装的流程图。初始化方框210将控制传递给计数器方框212,其接下来将控制传递给判决方框214。判决方框214检查计数器是否已经达到存取单元的数量,如果已经达到,则将控制传递给结束方框216。如果计数器还没有达到存取单元的数量,则判决方框214将控制传递给循环初始化方框218,其接下来将控制传递给功能方框220。在对应于由计数器方框212跟踪的时间的时间上,根据局部循环计数器,功能方框220检索描述的元数据,并且计算最大失真。内部循环计数器方框222从方框220接收控制,递增局部循环计数器,并且将控制传递给判决方框224。判决方框224检查局部循环计数器是否小于极限值,并且如果小于,则判决方框224将控制传递回控制功能方框220。
如果方框224确定局部循环计数器已经达到极限值,则将控制传递给循环初始化方框226。接下来,循环初始化方框226将控制传递给检索两个描述的功能方框228,检查先前计算的失真是否小于检索到的两个描述之间的失真,并且计算值α。功能方框228将控制传递给计数器方框230,其递增内部循环计数器,并且接下来将控制传递给判决方框232。判决方框232检查内部循环计数器是否小于极限值,并且如果小于,则判决方框232将控制传递回功能方框228。如果判决方框232发现内部循环计数器已经达到了极限值,则将控制传递给外部计数器方框234,其接下来将控制传递给判决方框236。方框236检查外部循环计数器是否小于极限值,并且如果小于,则方框236将控制传递给功能方框228。如果判决方框236确定外部循环计数器已经达到了极限值,则判决方框236将控制传递给写方框238。接下来,写方框238写入元数据α并且将控制传递回计数器方框212。
因此,封装工具200将不同的版本封装到诸如磁盘上的文件中,并且附加元数据,使得流服务器可以轻松地确定这些版本中最合适的轨道,以达到当前所监视的运行条件(即图1中的xc)。
现在转向图3,参考标号301一般地表示用于具有来自根据图1的封装的给定元数据的流式传输的流程图。这里,初始化方框310将控制传递给计数器方框312,其接下来将控制传递给判决方框314。判决方框314检查计数器是否小于存取单元的数量,如果不小于,则将控制传递给结束方框316。如果计数器仍然小于存取单元的数量,则将控制传递给功能方框318,以计算运行约束R。功能方框318将控制传递给检索方框320,以检索当前的极限值Ni,并且接下来将控制传递给功能方框322。功能方框322检索当前的α并且计算描述的Ni失真值。功能方框324从功能方框322接收控制,选择对应于当前的计数器时间值的描述用于流式传输,并且将控制传递回计数器方框312。
因此,流服务器300周期性地从系统400测量当前的运行条件xc,通过系统400,可以对所封装的数据进行传输。用户进入并且请求先前调节和封装的数据。因此,流服务器从所封装的数据中读取数据,在时间t上检索不同的版本和所附加的元数据,并且对于时间0和时间T之间的所有时间t,计算版本的最合适的子集,以在时间t上发送给定的xc(即所封装数据的结尾)。
如图4所示,参考标号401一般地表示一组示意性的连续描述。这里,例如,从i-2到i+4的描述可以表示视频剪辑的压缩视频帧。每个存取单元有且仅有一个描述,以创建媒体流的典型单独编码。例如,如果未压缩的视频剪辑包括100个帧或存取单元,则压缩该视频剪辑会使每个视频帧被压缩一次,从而使100个描述用于一个一一映射。然后,将包含这100个描述的文件加载到媒体服务器上。
转向图5,参考标号501一般地表示每个存取单元具有一个描述的一组示意性的连续描述。无论所监视和/或计算的运行条件xc如何,媒体服务器都连续地发送这些描述,这可能使得对与|x-xc|成正比的幅度的感知能力发生退化。
当请求重放(playback)时,媒体服务器发送描述。由于通过数字地压缩存取单元而产生描述,因此压缩参数(例如CODEC、比特率)直接影响描述的特性(例如大小、失真)。因此,一组连续的描述最佳地达到且仅达到一组运行条件xc。我们用x表示一组连续的描述所达到的运行条件。
不按顺序先转向图7,参考标号701一般地表示一组示意性的连续描述,其中用其特性p来对描述i进行描述。这里,所列出的特性(例如类型、大小、失真、健壮性)仅仅是示例性的。x相当依赖于编码特性p。只要x不同于xc,那么当媒体服务器在实际的运行条件xc下发送达到条件x的描述时,表现质量就会降低。由于IP网络“尽力而为”(best effort)的性质,因此一般情况下,x不同于xc。其他人已经认识到了这个问题,并且已经提出了不同的解决方案。
第一种解决方案是在通过网络实际发送每个唯一的描述前获取该描述,并且在其上执行一些处理(例如代码交换算法)。尽管这种解决方案提供了一种精细的可测量的特性(一种可以使|x-xc|尽可能小的特性),但它也引起大量的处理请求,并从而明显地降低了媒体服务器能够处理的并发流的数量。另一种解决方案为每个存取单元创建多个描述。本发明基于该范例。
现在转向图6,参考标号601一般地表示一组示意性的离散目标运行条件xci,诸如用于来自真实网络的真实流。存在依靠一组离散目标运行条件xi(例如来自真实网络的真实流)的实现。图6图解地描述了该思想。为每个存取单元创建多个(图中的四个)描述,使得描述的四个相异集合正好达到运行条件x1、x2、x3和x4。媒体服务器监视和/或计算运行条件xc,并且可以决定切换到描述xi的不同相异集合(图中i={0,1,2,3})。这种解决方案需要数量可忽略的额外的处理能力,但是自适应的精细程度直接影响到存储空间。
本发明的实施例结合了两方面的优点。也就是说,该实施例提供通用的结构,通过该结构,可以在可忽略对所需的处理能力的影响时获得精细的可测量度。
如将要一起描述的图8到图10所示,描述了优选实施例的操作,其中为特定的视频资源给出了一组描述D。δ表示恒定的帧间间隔。例如,每秒25帧的视频序列具有1/25秒的间隔δ。
如图8所示,参考标号801一般地表示一组示意性的连续描述。附加到每个描述的元数据用于对描述的特性进行描述。
如图9所示,参考标号901一般地表示一组示意性的连续描述,其中媒体服务器分析与所考虑的存取单元有关的所有描述的元数据,并且根据所监视和/或计算的运行条件决定传送哪个描述。
如图10所示,参考标号1001一般地表示一组示意性的连续描述,其中Dik(.)表示MSE(Dik)(),并且考虑存取单元i+1,在描述2处计算由αi+12(k)表示的值Ni=3,其中k在
]>其中在时间i+1上具有最大失真并且由Di+12表示描述2。
使Dij表示存取单元i的第j个描述,其中0<=j<Ni并且0<=i<A。例如,考虑图9。除了只有2个描述的存取单元i+2之外,所有存取单元都具有3个描述(即对于所有的i,Ni=3不同于(i+2)并且Ni+2=2)。在这个示例性实施例中,将运行约束向量定义为xc=[R(i)],其中R(i)是在时间i上可获得的信道速率。在本发明的替代的实施例中,运行约束向量可以包含更多元素。
该优选实施例的方法包括两部分首先,我们确定了描述特性,并且建议了一种方法以计算它们的值;接着,给定当前的运行约束条件,我们建议了一种用于媒体服务器的方法以有效地使用这些特性。
作为描述特性,将描述特性向量定义为p=[S,α],其中S是以字节表示的描述的大小,而α是可能取间隔[-1,1]内的离散值的加权因子,其中以源失真表示偏差。在该例子中,我们假设时间i上的描述的源失真可以清零,但不能超过时间i-1上的描述的失真的两倍。在替代的实施例中,描述特性向量可以包含更多元素。另外,这里以及下面的α的计算也仅仅是示例性的。
大小S的计算是直接的。α的计算(参见图10)如下用MSE(Dij)表示描述Dij的均方误差(MSE)。对于每个存取单元i,给定存取单元i-1的任何先前的描述0<=j<Ni-1,我们计算存取单元i的每个描述0<=j<Ni的MSE失真。对于所有0<=j<N0并且N-1=1,我们定义MSE(D-1j)=100。对于所有0<=j<N-1并且N-1=1,我们初始化MSE(D-1j)=100。然后,对于每个存取单元i,我们计算Ni×Ni-1的值。我们用MSE(Dij)(k)表示这些失真,其中k的范围从0到Ni-1。接下来,我们通过下面的公式计算参数αij(k)αij(k)=MSE(Dij)(k)/MSE(Di-1j)-1 (1)其中的k使得0<=k<Ni-1并且MSE(Di-1j)=maxk(MSE(Di-1j)(k))。
因此,用1+Ni×Ni-1的值完全地对描述进行描述,将该值存储为辅助信息(例如元数据)。
对于媒体服务器,考虑基于标准协议RTP/RTCP的流媒体。媒体服务器周期性地接收RTCP接收机报告信息,该信息包含连接所具有的分组丢失率和往返时间的评估。我们用rho和RTT分别表示分组丢失率和往返时间。我们用下面的公式计算R(i)R(i)=(1.3×MTU)/(RTT×sqrt(rho))(2)其中MTU是在连接上使用的分组的大小。在时间点i上的每个存取单元,媒体服务器知道在时间i-1上已经选择了该描述。我们用k表示该描述的索引。然后,媒体服务器用Dij=Di-1k(1+αik)计算Ni失真值Dij。最后媒体服务器在时间i上选择具有最小失真的描述k*,并使得大小Sik*小于或等于R(i)×δ。
因此,本发明覆盖了通过存取单元跳转的速率自适应,本发明的实施例为所有可跳转的存取单元创建额外的空描述(nulldescription)。本发明优选实施例的实现完全符合MPEG-4系列标准,从而可以直接应用于MP4客户播放器,诸如Quicktime 6.0、IBM JAVA播放器以及Real One。
根据这里的讲述,本领域的普通技术人员可以容易地确定本发明的这些和其他的特征和优点。应当理解,可以用硬件、软件、固件、专用处理器及其组合等不同形式来实现本发明讲述的内容。
可以用硬件和软件的结合来实现本发明讲述的内容。此外,在明确包含固件的程序存储单元中优选地实现软件。软件可以上载到包含任意合适结构的机器上并且由其实现。优选地,在具有诸如一个或多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)以及输入/输出(“I/O”)接口之类的硬件的计算机平台上实现该机器。该计算机平台也可以包括操作系统和微指令代码。这里所描述的各种处理和功能可以是微指令代码的一部分或软件的一部分,或者它们的任意组合,其可以由硬件来执行。另外,诸如附加数据存储单元之类的各种其他外设单元可以连接到该计算机平台。
应当进一步理解,因为附图所示的一些系统构成组件和方法优选地用软件来实现,所以根据对本发明进行编程实现的方式,系统组件或处理功能模块之间的实际连接可以不同。根据这里给出的讲述,本领域的普通技术人员能够想到本发明的这些和类似的实现或结构。
虽然已经在这里参照附图描述了说明性的实施例,但应当理解,本发明并不局限于那些具体的实施例,本领域的普通技术人员可以进行各种改变和修改,而不脱离本发明的范围或本质。所有这些改变和修改都将包括在所附权利要求所阐明的本发明的范围中。
权利要求
1.一种通过具有变化的流条件的通信网络来对数据进行流式传输的方法(101),所述方法包括通过创建多个表示来调节(100)数据;封装(200、201)所述多个调节后的数据表示;监视至少一个当前的流条件;根据所监视的至少一个当前的流条件来选择最合适的封装调节后的数据表示;以及对所选择的封装调节后的数据表示进行流式传输(301)。
2.根据权利要求1所述的方法,其中数据包括多个数据单元。
3.根据权利要求2所述的方法,其中多个数据单元是连续的。
4.根据权利要求2所述的方法,其中通过创建每个数据单元的多个表示来调节数据。
5.根据权利要求4所述的方法,其中对于给定的流条件的有限集合,通过预先计算不同数据单元中的轨道来封装调节后的数据表示。
6.根据权利要求5所述的方法,其中给定所监视的当前的流条件,所选择的最合适的封装调节后的数据表示对应于数据单元中最合适的轨道。
7.根据权利要求4所述的方法,其中给定当前的流条件,通过将元数据附加到每个数据单元来封装调节后的数据表示,使得流服务器能够以最小的代价来确定最合适的轨道。
8.根据权利要求7所述的方法,其中给定所监视的当前的流条件,所选择的最合适的封装调节后的数据表示对应于数据单元中最合适的轨道。
9.根据权利要求1所述的方法,其中所述数据包括视频流。
10.根据权利要求1所述的方法,其中所述通信网络包括数据网络。
11.根据权利要求1所述的方法,其中所述数据网络包括因特网。
12.根据权利要求1所述的方法,其中所述至少一个当前的流条件包括可用的数据信道带宽。
13.根据权利要求1所述的方法,其中所述至少一个当前的流条件包括所监视的数据分组丢失率。
14.根据权利要求1所述的方法,其中所述至少一个当前的流条件包括可用的流服务器输出带宽。
15.一种用于通过具有变化的流条件的通信网络来对数据进行流式传输的系统(101),该系统包括调节装置(100),用于通过创建多个表示来调节数据;封装装置(200),响应于调节装置,用于封装多个调节后的数据表示;监视装置(300),响应于封装装置,用于监视至少一个当前的流条件;选择装置(300),响应于监视装置,用于根据所监视的至少一个当前的流条件来选择最合适的被封装调节后的数据表示;流装置(400),响应于选择装置,用于对所选择的封装调节后的数据表示进行流式传输。
16.根据权利要求15所述的系统,其中所述调节装置包括调节单元;所述封装装置包括与调节单元进行信号通信的封装单元;所述监视装置包括与封装单元和通信网络进行信号通信的媒体服务器;所述选择装置包括与封装单元和通信网络进行信号通信的媒体服务器;以及所述的流装置至少包括媒体服务器和通信网络之一。
17.根据权利要求16所述的系统,其中对于给定的流条件的有限集合,封装单元预先计算不同数据单元中的轨道。
18.根据权利要求16所述的系统,其中给定当前的流条件,封装单元将元数据附加到多个数据单元中的每一个数据单元,使得流服务器能够以最小的代价来确定最合适的轨道。
19.一种机器(300)可读程序存储设备,实际包含机器可执行的程序指令,以执行程序步骤,用于通过具有变化的流条件的通信网络(400)来对数据进行流式传输,所述程序步骤包括通过创建多个表示来调节数据;封装(201)所述多个调节后的数据表示;监视至少一个当前的流条件;根据所监视的至少一个当前的流条件来选择最合适的封装调节后的数据表示;以及对所选择的封装调节后的数据表示进行流式传输(301)。
20.根据权利要求19所述的程序存储设备,其中所述至少一个当前的流条件包括至少一个可用的数据信道带宽、所监视的数据分组丢失率以及可用的流服务器输出带宽。
全文摘要
一种用于通过具有变化的流条件的通信网络(400)来对数据进行流式传输的系统(101)和方法(101、201、301),包括调节单元(100),用于通过创建多个表示来调节数据;封装单元(200),响应于该调节单元,用于封装(201)多个调节后的数据表示;媒体服务器(300),响应于该封装装置,用于监视至少一个当前的流条件,并且根据所监视的至少一个当前的流条件来选择最合适的封装调节后的数据表示;以及通信网络(400),响应于该媒体服务器,用于对所选择的封装调节后的数据表示进行流式传输(301)。
文档编号H04LGK101048768SQ200480002027
公开日2007年10月3日 申请日期2004年3月8日 优先权日2003年4月3日
发明者莉萨·阿米尼, 帕斯卡尔·弗罗萨, 奥利维尔·弗斯切尔, 彼得·韦斯特林克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1