用于控制媒体流的传送比特率的装置和方法、存储介质与流程

文档序号:18081212发布日期:2019-07-06 10:05阅读:145来源:国知局
用于控制媒体流的传送比特率的装置和方法、存储介质与流程

本发明涉及用于在可变网络状况下管理媒体流的传送的方法和系统。



背景技术:

近年来,媒体内容在互联网上的实时流动已经成为越来越常见的应用。诸如互联网协议语音(voip)、点播tv、直播tv观看、视频会议、网络会议、视频电话的广泛的媒体应用以及很多其它应用都根据端到端的流媒体方案。与首先取得稍后播放的“下载的”媒体文件不同,流媒体应用需要媒体源来对媒体编码并且通过网络将其传送到接收器,该接收器必须对该媒体实时解码并播放。

由于通常由该媒体流经受的变化的网络状况,当媒体流通过网络传送时可能出现问题。例如,由于网络拥塞或由于2g/3g网络的有限的吞吐能力而造成的可用于媒体流的带宽的下降可能对流数据包的及时传送产生不利影响,并导致流的数据包的包丢失或逾期送达。对于voip端点之间的媒体流,这种问题可能影响voip呼叫的质量和可靠性。另一方面,每当带宽可用性高时,能够向最终用户提供最高的语音质量,用于最佳的最终用户体验。

需要一种管理并适应在具有可变属性的网络上的媒体传送以优化或提高在接收装置处接收的媒体流的质量的方法。



技术实现要素:

根据某个方面,提供有一种用于通过网络传送媒体流的装置,该装置包括:质量估计器,该质量估计器被构造成通过网络保持表示可用带宽的网络质量的测量(measure);配置管理器,该配置管理器被构造成使用该网络质量的测量来检测表示减小的可用带宽的网络质量的降低并且响应于检测所述降低,估计与该减小的可用带宽相对应的第一比特率;响应于估计该第一比特率,确定比该第一比特率低的第二比特率;以及收发器,该收发器被构造成以大致等于该第二比特率的传送比特率对媒体流进行第一时间段的传送,其中,配置管理器还被构造成造成传送比特率经过第二时间段从第二比特率增大为第一比特率。

第二比特率可以根据对降低的网络质量的测量来确定。

第一比特率和第二比特率可以根据多个预定义的传送配置来确定,各个传送配置与用于对媒体流的媒体编码的编解码器以及与用于传送包括媒体流的数据包的数据包大小相关联,各个传送配置对应于与其它传送配置相对应的比特率不同的比特率。

所述配置管理器可以被构造成通过从所述多个预定义的传送配置中选择与小于所述减小的可用带宽的最大比特率相对应的第一传送配置来估计所述第一比特率,所述第一传送配置对应于所述第一比特率。

所述配置管理器可以被构造成通过从所述多个预定义的传送配置中选择与小于所述第一比特率的比特率相对应的第二传送配置来确定所述第二比特率,所述第二传送配置对应于所述第二比特率。

该装置还可以包括编码器,还编码器被构造成:根据第一编解码器对媒体编码,以生成用于以第二比特率来传送媒体流的编码数据;以及根据第二不同的编解码器对媒体编码,以生成用于以第一比特率来传送媒体流的编码数据。

用于传送媒体流的传送比特率可以以第一速率从第二比特率增大到第一比特率,该第一速率根据第一比特率和第二比特率之间的大小差。

根据第二方面,提供有一种用于通过网络传送媒体流的方法,该方法包括以下步骤:保持指示通过网络保持表示可用带宽的网络质量的测量;使用该网络质量的测量来检测表示减小的可用带宽的网络质量的降低并且响应于检测到该降低,估计与该减小的可用带宽相对应的第一比特率;响应于估计该第一比特率,确定比该第一比特率低的第二比特率;以大致等于该第二比特率的传送比特率传送媒体流达第一时间段;以及使传送比特率经过第二时间段从第二比特率增大为第一比特率。

第二比特率可以根据降低的网络质量的测量来确定。

第一比特率和第二比特率可以根据多个预定义的传送配置来确定,各个传送配置与用于对媒体流的媒体编码的编解码器以及与用于传送包括媒体流的数据包的数据包大小相关联,各个传送配置对应于与其它传送配置相对应的比特率不同的比特率。

估计第一比特率的步骤可以包括从多个预定义的传送配置中选择与小于所述减小的可用带宽的最大比特率相对应的第一传送配置,该第一传送配置对应于第一比特率。

确定步骤可以包括从多个预定义的传送配置中选择与小于第一比特率的比特率相对应的第二传送配置,该第二传送配置对应于第二比特率。

该方法还可以包括以下步骤:根据第一编解码器对媒体编码,以生成用于以第二比特率来传送媒体流的编码数据;根据不同的第二编解码器对媒体编码,以生成用于以第一比特率来传送媒体流的编码数据。

用于传送媒体流的传送比特率可以以第一速率从第二比特率增大到第一比特率,该第一速率根据第一比特率和第二比特率之间的量级差。

根据第三方面,提供有一种用于控制针对媒体流的传送比特率的装置,该装置包括:质量估计器,该质量估计器被构造成确定指示所述网络上的可用带宽的网络质量的测量;配置管理器,该配置管理器被构造成检测传送比特率在低于可用带宽的第一比特率和高于可用带宽的第二比特率之间的振荡;以及收发器,该收发器被构造成针对第一振荡周期以第一比特率传送达第一持续时间并且以第二比特率传送达第二持续时间,配置管理器还被构造成针对在第一振荡周期之后的第二振荡周期,造成第一持续时间相对于第二持续时间增加,使得与所述第一振荡周期相比,对于所述第二振荡周期,以所述第一比特率进行传送的时间的比例更大。

第一比特率和第二比特率可以根据多个预定义的传送配置来确定,各个传送配置与用于对媒体流的媒体编码的编解码器以及与用于传送包括媒体流的数据包的数据包大小相关联,各个传送配置对应于与其它传送配置相对应的比特率不同的比特率。

配置管理器可以被构造成从多个预定义的传送配置中选择与小于减小的可用带宽的最大比特率相对应的第一传送配置,该第一传送配置对应于第一比特率。

第二比特率可以对应于多个预定义的传送配置中的第二传送配置,该第二传送配置对应于比可用带宽大的最低比特率。

振荡周期可以是传送比特率从第一比特率变为第二比特率并返回至第一比特率的时间段。

网络质量的测量可以根据测量期望接收媒体流的数据包与接收到所述期望的数据包之间的时间。

网络质量的测量可以根据测量网络延迟时间,该延迟时间包括用来在第一装置处从第二装置接收第一数据包的时间以及用来在第二装置处从第一装置接收第二数据包的时间。

第二数据包可以包括对生成第一数据包时的时间的指示。

质量估计器可以通过确定网络上数据包丢失的测量、网络抖动的测量和/或突发丢失的测量来确定网络质量的测量。

配置管理器可以被构造成根据网络质量的测量来选择一个或更多个编解码器,并且收发器被构造成将识别所述选择的一个或更多个编解码器的信息发送到另一装置,以使所述另一装置通过网络来传送根据所述选择的一个或更多个编解码器中的一个编解码器编码的媒体流。

配置管理器可以被构造成根据网络质量的测量来确定纠错数据的量,所传送的媒体流包括确定的纠错数据。

媒体流可以是互联网协议语音流。

根据第四方面,提供有一种用于控制针对媒体流的传送比特率的方法,该方法包括以下步骤:确定指示网络上的可用带宽的网络质量的测量;检测传送比特率在低于可用带宽的第一比特率和高于可用带宽的第二比特率之间的振荡;针对第一振荡周期以第一比特率传送达第一持续时间并且以第二比特率传送达第二持续时间;以及针对在第一振荡周期之后的第二振荡周期,使第一持续时间相对于第二持续时间增加,使得与所述第一振荡周期相比,对于所述第二振荡周期,以所述第一比特率进行传送的时间的比例更大。

第一比特率和第二比特率可以从多个预定义的传送配置来确定,各个传送配置与用于编码针对媒体流的媒体的编解码器以及与用于传送包括媒体流的数据包的数据包大小相关联,各个传送配置对应于和与其它传送配置相对应的比特率不同的比特率。

该方法还可以包括步骤:从多个预定义的传送配置中选择与小于可用带宽的最大比特率相对应的第一传送配置,该第一传送配置对应于第一比特率。

第二比特率可以对应于多个预定义的传送配置中的第二传送配置,该第二传送配置对应于比可用带宽大的最低比特率。

振荡周期可以是传送比特率从第一比特率变为第二比特率并返回至第一比特率的时间段。

网络质量的测量可以根据测量期望接收媒体流的数据包与接收到所述期望的数据包之间的时间。

网络质量的测量可以根据测量网络延迟时间,该延迟时间包括用来在第一装置处从第二装置接收第一数据包的时间以及用来在第二装置处从第一装置接收第二数据包的时间。

第二数据包可以包括对生成第一数据包时的时间的指示。

确定所述测量的方法可以包括确定网络上数据包丢失的测量、网络抖动的测量和/或突发丢失的测量。

该方法还可以包括以下步骤:根据网络质量的测量来选择一个或更多个编解码器;以及将标识所选择的一个或更多个编解码器的信息发送到另一装置,以使所述另一装置通过网络来传送根据所述选择的一个或更多个编解码器中的一个编解码器编码的媒体流。

该方法还可以包括步骤:根据网络质量的测量来确定纠错数据的量,所传送的媒体流包括确定的纠错数据。

媒体流可以是互联网协议语音流。

根据第五方面,提供有一种用于生成装置的机器可读代码。

根据第六方面,提供有一种在其上编码的用于生成该装置的非瞬时机器可读代码的机器可读存储介质。

根据第七方面,提供有一种用于实现该方法的机器可读代码。

根据第八方面,提供有一种在其上编码的用于实现该方法的非瞬时机器可读代码的机器可读存储介质。

附图说明

下文将参照附图以示例的方式来对本发明进行说明。在附图中:

图1示出了能够通过网络传送媒体流的装置的示意图;

图2示出了例示用于以优化比特率传送媒体的过程的流程图;

图2a示出了例示当可用带宽存在变化时随着时间的流逝传送比特率的变化的示例的图;

图3示出了例示用于控制传送比特率振荡的处理的流程图;

图3a示出了例示传送比特率的振荡控制的图;以及

图4描述了用于估计网络延迟的处理。

具体实施方式

呈现下面的描述使得本领域的任何技术人员能够制作并使用本发明,并且在特定应用的上下文中提供下面的描述。对所公开的实施方式的各种修改对于本领域技术人员来说将是显而易见的。

本文中定义的一般原理在不背离本发明的精神和范围的情况下可以适用于其它实施方式和应用。因此,本发明不旨在受限于示出的实施方式,而是符合与本文所公开的原理和特征相一致的最广范围。

图1描述了传送装置10,该传送装置10可以是能够生成基于数据包的数据的任何合适的装置,例如计算机、智能电话、ip电话机等等。传送装置10包括用于与诸如因特网或其它基于数据包的网络的通信网络12相连接的收发器11。传送装置10能够经由收发器11向通信网络12传送数据包和/或从通信网络12接收数据包。传送装置10包括用于对通过通信网络12待传送到接收装置20的媒体编码的编码器13。

传送装置10可以包括质量估计器14和配置管理器15,该质量估计器14能够估计网络12的质量,该配置管理器15能够确定用于通过网络12传送媒体的参数。配置管理器15能够根据对网络12的质量的估计来确定传送参数。如果网络12的条件或状态存在变化(例如带宽可用性的变化),其由质量估计来指示,则传送参数能够由配置管理器适用来提供针对网络12的新状态的优化流。

配置管理器15可以确定诸如用于对媒体编码和解码的编解码器的参数以及针对包括编码媒体的数据包的数据包大小的参数。配置管理器15可以在例如对话起动期间确定许多不同的配置并将其存储在表格中。如下面的示例配置表格中所示,各个配置可以具有关联的数据包大小、编解码器和编解码器模式(如果有的话)。

各个编解码器(及模式)可以具有与其相关联的编码率。同样,一般来说,与数据包封包相关联的开销随着数据包大小减小而增加,所以传送比特率能够通过使数据包大小不同而不同。因此,能够计算针对各个配置的传送比特率brn。配置可以以逐渐降低的比特率顺序进行排序。可以使用比下面的配置表格中示出的配置更多或更少的配置。

表1:配置表

在该表中,cn标识配置,psn是数据包大小,cdn是编解码器,cmn是编解码器模式并且brn是针对该配置的传送比特率。br10>br9>br8>…br1并且ps4>ps3>ps2>ps1。各个配置具有编解码器(以及编解码器模式,如果有的话)和数据包大小的不同组合,该不同组合得到不同的传送比特率。因此,当可用网络带宽变化时,能够选择合适的配置,以能够使用具有不大于可用带宽的最大比特率的配置。

质量估计器14能够例如以每100ms一次的速率周期性地确定网络的质量,以提供某些合适的示例。当如质量估计所指示的网络的质量(即,由网络提供的传送质量)存在降低时(其导致可用带宽的减小),配置管理器15利用不大于可用带宽的最高比特率brn(下文中称为“优化比特率”)来确定配置。然而,如果可用带宽存在显著减小,则配置管理器15并不立即使用该优化比特率。相反,配置管理器15确定低于该优化比特率的降低的比特率来使用。因此,当检测到可用带宽的显著减小时,配置管理器15将传送比特率从当前利用的比特率切换到降低的比特率,而不是切换到该优化比特率。可用带宽的显著减小例如可以被认为是造成配置管理器15将当前比特率变为比下一可用较低比特率低的比特率的任何减小。例如,如果当前以br10传送,如果优化比特率为br8或更低,则可用带宽的减小将被认为是显著的。

从传送装置10传送的数据包可以在网络路径中在不同的点处排队。例如,如果数据包以比当前的网络状况所支持的带宽高的比特率传送,则排队可能发生。通过切换到降低的比特率而不是优化比特率,传送装置10能够在切换到优化带宽之前清除网络路径中的任何排队的数据包。这有助于减少在接收装置20处接收所传送的数据包的延迟。例如,数据包的排队可能由可用带宽的变化与检测到该变化之间的延迟引起,所以传送装置10会在该延迟期间以高于可用带宽的比特率来传送数据包。这会导致数据包的堆积以及数据包在诸如各种网络接口、接入点、enodeb等的网络路径中的各种点处排队。通过利用降低的比特率,能够在切换到优化比特率之前清除数据包的堆积。这使得传送的数据包以及时的方式到达接收装置20,这有利于诸如voip的实时的媒体流应用。

从优化比特率的比特率降低量可以根据可用带宽的减小量。一般来说,比特率降低量可以与可用带宽的减小成比例。能够使比特率降低量足够,以允许数据包堆积经过较短的时间段(例如,经过5到7秒优选6秒的时间段)清除。例如,如果过去使用配置c1传送流并且检测到可用带宽的相对较小的降低,针对其的优化比特率为br9,则配置管理器15可以在切换到c2来以优化比特率br9传送之前切换到c4(其具有br7的降低的比特率)达一段时间来清除任何数据包堆积。如果曾检测到可用带宽的大得多的降低(例如,在某些voip应用中>8kbps),则比特率可能需要在更大程度上减小,以清除数据包的相对较大的堆积。例如,如果优化比特率现在为br5(而不是br9),则配置管理器15可以切换到配置c10,该配置c10将较大程度上减小比特率来清除数据包的相对较大的堆积,然后切换到c6(这可以在快速的适应性步骤中完成)来以优化比特率br5传送。

在某些情况下,从优化配置的比特率降低可能不被应用。例如,如果可用带宽存在相对较小的降低(例如,如果仅下一最低配置是优化的),则配置管理器15可以不应用比特率降低并且可以立即切换到优化比特率。在另一示例中,如果在可用带宽的降低之后的优化比特率对应于最低的可用配置(例如,c10),则配置管理器15可以立即切换到该配置。

另选地或另外地,以降低的比特率传送的时间量可以与可用带宽的减小量成比例。例如,如果曾检测到可用带宽的较大降低,针对其的优化比特率为br5,则如上所述,配置管理器15可以切换到c8而不是c10,并且利用c8比来传送达比如果在切换到c6来以优化比特率br5传送之前以c10进行传送的时间段长的时间段。这还将清除较大的数据包堆积并且允许利用较高的质量配置,然而代价是较大的延迟。

在以降低的比特率进行传送达合适的时间量之后,配置管理器15可以快速地将传送比特率变为优化比特率。改变传送比特率的速率可以根据比特率从优化比特率降低的量。通常来说,比特率所减小的量越大,则比特率从降低的比特率向优化比特率增大的速率越大。例如,如果降低的比特率曾是br7并且优化比特率曾是br9,则配置管理器15可以经过时间量t从c4到c3到c2切换。然而,如果降低的比特率曾是br1并且优化比特率曾是br5,则配置管理器可以经过相同的时间段t从c10到c8到c6切换。因此,比特率增大的速率较大。然后,媒体流以针对新的网络状况的优化比特率来传送。

图2是描述用于(使用上述的配置表格示例)使媒体流的传送比特率适应具有变化状况的网络的示例性处理的流程图。图2a示出了当针对与图2相关地描述的示例在可用带宽(虚线)上存在变化时传送比特率的变化。x轴表示时间,其中x是时间量。该时间量可以是基于配置管理器15选择传送配置(其可以是新的或相同的配置)的经常程度的合适的时间量。

在步骤201,传送装置10使用配置c1通过网络传送媒体流。因此,媒体利用编解码器cd1(在模式cm1下)在编码器13处编码,并且经编码的媒体在封包器16处以ps1的数据包大小封包。如图2a中所示,数据包以传送比特率br10通过网络12传送。

在步骤202,质量估计器14确定网络12的质量(即,由网络12向传送装置10提供的传送质量),其能够指示通过网络12的可用带宽。

在步骤203,如果检测到可用带宽的显著减小,则该处理前进到步骤204。如果可用带宽不存在显著的减小(例如,如果可用带宽没有变化或者增大),则该处理返回至步骤201并保持当前的配置,或者,如果可用并且被可用带宽允许的话,切换到具有较高比特率的配置。

在步骤204,确定针对可用带宽的优化比特率。例如,如果可用带宽对应于br5和br6(如图2a中从时间=2x继续的虚线所示)之间的比特率,则配置管理器15将br5确定为优化比特率,因为其是不大于可用带宽的最高可选择比特率。

在步骤205,配置管理器15确定小于优化比特率br5的比特率,从而选择降低的比特率。如图2a中所示,继续上述的示例,br1可以被选择为降低的比特率。

在步骤206,然后配置管理器15将配置从c1变为c10并且造成编码器13使用编解码器cd4对媒体编码并造成封包器16使用数据包大小ps4。然后数据包以传送比特br1通过网络12传送。如图2a中所示,传送比特率在时间=2x时从br10降低到br1。

在步骤207,在合适的时间量之后,配置管理器15通过造成编码器13使用编解码器cd2(在模式cm2)并且造成封包器16以ps2数据包大小对编码媒体封包而将传送装置10的配置从c10切换到c6(其对应于优化比特率br5)。如图2a中所示,传送比特率从br1到br5的增加可以通过从br1到br3(通过造成编码器13使用编解码器cd4并且造成封包器16以ps3数据包大小对编码媒体封包而将配置从c10切换到c8)再到br5增加的逐步方式来完成。以逐步方式增加传送比特率(而不是立即切换到优化比特率)提供用户在接收装置20处感觉到语音质量的平滑过渡。

在步骤208,如图2a中从时间4x继续所示,媒体流以优化比特率br5进行传送。

该处理本身可以利用质量估计的测量(例如,每100ms)周期性地重复,来通过返回至步骤202实时地持续适应可变的网络状况。

当可用带宽相对稳定时,可以存在能够使得传送装置10的传送比特率在高于可用带宽的比特率和低于可用带宽的比特率之间振荡。

例如,该振荡可以归因于对传送装置10可用的有限数量的传送比特率。例如,如果可用带宽对应于br5和br6之间的比特率,则配置管理器15将优化比特率设置为br5。然后,质量估计器14可以指示网络中可用的稍大的带宽,这能够造成配置管理器15将比特率增加为大于可用带宽的br6。然后,质量估计器可以向配置管理器15指示存在比br6稍小的可用带宽,所以配置管理器15将比特率降低回至br5。当可用带宽在br5和br6之间时,该振荡在该两个比特率之间持续。传送比特率的振荡还可以由于带宽测量的公差、带宽的短期变化等而出现。

图3是描述用于控制媒体流的传送比特率的振荡的示例性处理的流程图。图3a示出了传送比特率(实线)随着时间流逝的变化以及与可用带宽(虚线)相关的变化。

在步骤301,传送装置10例如使用配置c6通过网络传送媒体流。

在步骤302,质量估计器14确定网络12的质量(即,由网络12向传送装置10提供的传送质量),该质量能够指示通过网络12的可用带宽。

在步骤303,如果检测到质量测量的变化,则该处理处理前进到步骤304,在该步骤304根据该变化选择合适的配置。例如,如果存在可用带宽增加,则选择比先前配置高的传送比特率的新配置。如果存在可用带宽降低,则选择比先前配置低的传送比特率的新配置(例如,经由图2的步骤204至208)。然后,在步骤301利用新选择的配置传送媒体流。

如果在步骤303质量测量没有变化,则该处理前进至步骤307,其中保持当前的传送比特率。然后,在步骤301利用当前的传送比特率传送媒体流。

如上所述,当可用带宽对应于在两个传送比特率之间的比特率时,质量估计器可以指示在网络中存在较多或较少的带宽。由于步骤301到步骤302到步骤303到步骤304并返回至步骤301的循环,即使网络带宽没有实际变化,传送比特率的振荡也可能发生。在步骤305,配置管理器15检测传送比特率是否在两个比特率之间振荡。振荡周期是传送比特率从第一比特率变为第二比特率并返回至第一比特率的时间段。单一振荡周期或随着随后的相邻振荡周期从第一比特率变为第二比特率并返回至第一比特率的重复能够指示传送比特率正在振荡。在图3a中所示的示例中,当比特率在时间段t1期间从br5变为br6并返回至br5时,可以由配置管理器15检测振荡。

在步骤305,如果配置管理器15检测振荡正在发生,则该处理前进至步骤306,在该步骤306配置管理器15能够与以两个比特率中较高的比特率的持续时间相比增加传送装置10以较低的比特率传送的持续时间。对于各个振荡周期,配置管理器15能够相对于以较高比特率传送的持续时间增加以较低比特率传送的持续时间。

在步骤305,如果没有检测到振荡,则该处理经由步骤307返回至步骤301,其中利用当前配置传送媒体流。

在图3a中所示的示例中,传送比特率(实线)在br6和br5在可用带宽(虚线)上下振荡。对于各个振荡周期,配置管理器15增加用于以br5传送的持续时间。对于第一周期t1,用于以br5和br6传送的持续时间为x。然后配置管理器15检测到振荡在t1结束时发生。然后,与用于针对第二周期t2以br6传送的x相比,配置管理器15以例如至1.5x的量增加用于以br5传送的持续时间。因此,在该示例中,t2=1.25t1。如果周期t1、t2等被保持为相同的持续时间,即t2=t1,则针对周期t2,配置管理器15能够增加以br5传送的持续时间(例如至x+y)并且相应地减少以br6传送的持续时间(例如至x–y),其中y是某个持续时间,y<x。在这两种方法中,配置管理器15相对于先前周期t1针对下一周期t2增加较低的br5传送持续时间。

如图3a中所示,在时间段t3期间,进一步增加以br5传送持续时间。在t3期间,可用带宽增加,这由质量估计器14检测到。在时间段t3结束时,配置管理器15将用于比特率切换的时间段重置为初始的较短的值(例如至2x),以传送装置10能够适应于新的网络状况并且以较高的比特率传送。能够以逐步的方式(而不是立即切换到与可用带宽相对应的新的更高比特率)使传送比特率适应以提供用户在接收装置20处感觉到语音质量的平滑过渡。

通过适应以较低比特率传送花费的持续时间,传送装置10能够在可用带宽之内传送数据包,所以网络中的数据包丢失和/或堆积将较少。通过允许装置周期性地增加其传送比特率,振荡比率降低。通过不完全避免以这种方式的振荡,当存在较大的可用带宽时,该装置还能够适应于较高的传送比特率。

质量估计器14能够周期性地确定网络的质量。质量测量之间的时间被确定,使得如果以比可用带宽高的比特率传送,则传送的持续时间不长到导致网络路径发生显著恶化(通过导致数据包堆积)而是足够长以反映网络的实际状况。测量之间的持续时间优选为100ms。

配置切换之间的时间可以根据网络的状况。例如,如果质量估计指示网络状况是非常可变的,则配置的立即变化能够发生,使得通向接收装置20的网络路径不再进一步恶化。如果质量估计指示网络状况稳定,则配置可以在切换到下一较高的比特率配置之前被保持合适的时间量(例如,6秒)。

质量估计器14通过利用本领域已知的专门的测试方法可以直接测试可用带宽。另选地或另外地,质量估计器14通过使用与已经被用于在传送装置10和接收装置20之间传送媒体的数据包相关联的某些参数可以确定可用带宽的指示。例如,可以使用下列测量中的一种或组合来确定可用带宽的指示:

1)网络延迟。高的网络延迟值能够指示较大数量的数据包被积累在装置网络驱动器或网络中。网络延迟值指示数据包用来从传送装置10移动至接收装置20再返回的时间。如图4中所示,数据包40和41可以是用于传递媒体流的数据包并且由传送装置10和接收装置20传送,数据包40和41各自能够具有包含在其内的下列信息:本地数据包生成时间(lpgt)和/或远程数据包生成时间(rpgt)和数据包空闲时间(pit)。

当装置10和20通信时,例如在voip呼叫期间,针对该呼叫而传送的每个数据包可以包含lpgt信息,针对数据包40来说其为t0。当在装置20接收到数据包40时,测量接收的时刻(t1)并且当装置20发送下一数据包41时,在上一数据包40的接收时间和当前数据包41的传送时间(t2)之间经过的时间作为pit被并入到数据包41中。上次接收到的数据包40在装置10处的数据包生成时间(即,t0)被包括在数据包41中。装置10然后能够根据数据包41中的信息来估计网络延迟:

网络延迟=数据包接收到时间(t3)-rpgt-pit

网络延迟值可以受到多种因素的影响,诸如装置10和20之间的网络中的网络网关的数量。这些网关对网络延迟的影响通常可以是恒定的。为了将由网关引起的延迟计入在内,可以进行许多网络延迟测量(例如,75和125之间并且优选100左右),然后能够确定许多最小延迟值(例如,四个最小值)的平均值。所确定的平均值的一半能够被用来估计由网关引起的延迟。因此,对于接下来测量的网络延迟值,取半的平均值能够被用作从接下来测量到的网络延迟值中减去的固定值,以将由网关引起的延迟计入在内。

2)数据包接收间隙。数据包接收间隙能够指示持续的数据包流丢失或在网络中被卡住。这可能导致例如断开,如果数据包接收间隙值高,则语音通话中的间隙可能减小。每当数据包接收间隙较高时,为了维持语音通话,传送比特率能够被降低使得数据包能够到达接收装置20并且语音通话能够被维持。

在媒体流期间,接收装置20可以期望在某些时刻接收数据包作为流的一部分。例如,数据包可以包含应当在接收装置20处以某种次序和/或在某个时间播放的一部分媒体。在期望接收数据包和实际接收到该数据包之间经过的时间能够指示该数据包接收间隙。另选地,能够通过计数媒体播放器(该媒体播放器可以每隔一定间隔请求媒体数据包)在接收装置20处在实际接收媒体数据包之前请求用于播放媒体的数据包的次数来指示数据包接收间隙。

3)数据包丢失。该测量指示经过指定的时段在网络中数据包的丢失百分比。

4)网络抖动。该测量指示在接收连续数据包之间的时间的变化。该变化可以由网络拥塞、时间漂移、路由变化等造成。高的网络抖动值指示接收到较多个发生故障的数据包。

5)突发丢失。该测量指示在数据包的丢失和开始连续接收预定数目的良好数据包之间的时间段中的数据包的数目。

由质量估计器14确定的质量的测量可以利用上述测量1至5中的一种测量或任意组合。当将测量组合时,各个测量可以被不同地加权,来反映其在影响网络的质量方面的作用。例如,较高的网络延迟和数据包接收间隙值能够更加清楚地指示糟糕的网络状况,因此可以设有较高的权重。因此,当确定测量组合时对各个测量合适地进行加权能够提供对糟糕的网络状况的更快速更准确的反映,并且允许配置管理器15快速地调整媒体流的传送参数。

各个测量(或测量组合)的值能够提供网络的质量或能力的估计,而不提供明确的带宽估计。当网络状况变化时,值的变化能够提供带宽是增大还是减小的指示。根据值的变化,能够选择新的配置。例如,如果测量指示带宽已经增加(例如,由于针对上述测量1)至5)的各个测量或任意组合的所确定的值已经增加),则配置管理器15能够选择新的配置来使用其以高于当前配置的比特率传送。

由于测量1)至5)能够使用当前媒体流的性能来确定质量估计,因此测量能够针对当前网络状况提供当前利用的配置的合适性的指示。例如,如果当以br5传送时的测量指示网络有能力,则配置管理器15能够将传送比特率增加至br6。当以br6传送时,测量可以指示网络中有较少或者没有能力,因此配置管理器可以降回至br5。因此,通过使用上述测量1)至5)中的一种测量或任意组合,能够针对当前网络状况确定传送比特率的合适性。

所执行的各个测量的值可以被不同地进行量化来反映所测量的值在影响网络的质量方面的作用。例如,当提供针对网络延迟的值时,如果测量到较短的延迟时间,则零量化可以与该较短的延迟时间相关联地被应用于值,因为网络的状况被认为良好。然而,如果测量到长的延迟时间,其指示网络的状况已经变差,则较大的量化可以与该长的延迟时间相关联地被提供给该值,以提供较差网络状况的夸大的印象,这可以允许系统更快速地反应并适应较差的网络状况。

新配置的选择能够根据所测量的值。例如,如果传送装置10曾使用配置c6传送并且所测量的值相对较小,这表明网络良好并且存在一些较多的可用带宽,则配置管理器15可以选择配置c5来以稍高的比特率传送。如果所测量的值曾相对较大,这表明网络状况不好,并且配置管理器15可以根据该值恰当地选择配置。然后,下一质量测量值可以提供可用带宽是高于还是低于新比特率的指示,并且配置管理器又能够据此选择配置。因此,通过以这种方式周期性地确定网络的质量,能够持续地调整传送比特率。

配置管理器15可以根据所测量的网络质量来选择纠错方案,以备当传送媒体流时使用。配置管理器15可以选择诸如冗余方案(例如,rfc2198)、前向纠错(fec)、重叠时间戳校正(otr)等的纠错方案。合适方案的选择可以根据实现各个方案所需的带宽的量。通常来说,诸如rfc2198的冗余方案要求的带宽比fec小,而fec要求的带宽比ctr小。因此,配置管理器优先使用冗余方法,然后是fec然后是otr。如果冗余方案不受传送装置10或接收装置20的支持,则选择fec。如果冗余方案和fec都不受装置10和20的支持,则选择otr。

当实现纠错方案时,该方案能够根据网络质量的测量来配置。例如,冗余值(对于fec2198)或跨度(对于fec)能够根据网络质量的测量来配置。当测量指示糟糕的网络状况以及较多的数据包丢失时,冗余值和fec跨度能够与网络质量的丢失成比例地增加,这样能够有更大的机会在接收装置20恢复数据包。

接收装置20可以包括与传送装置10相同的特征和功能。装置10和20能够单独地或共同地确定质量测量。装置10和20还可以传送网络质量估计或网络参数来确定待用于媒体流的配置。装置10和20还可以单独地或共同地协商来确定待用于媒体流的编解码器和数据包大小。

另选地,接收装置20可以不包括与传送装置10相同的特征和功能。例如,接收装置20可以不包括质量估计器14或者可以不能解析所接收的网络质量估计。例如,在装置10和20之间的voip流的情况下,这可以导致当网络的质量变化时接收装置20不能够调整其传送比特率。然而,传送装置10的确包括质量估计器14并且因此能够估计网络质量。基于由传送装置10进行的质量估计,配置管理器能够选择具有适于当前估计的网络质量的传送比特率的一个或更多个编解码器。然后,传送装置10能够将指示这些选择的编解码器的信息发送到接收装置20,以使得接收装置20使用这些选择的编解码器中的一个编解码器。在初始呼叫建立期间或在呼叫期间的重新协商期间,传送装置10和接收装置20彼此发送受各个各自的装置支持的编解码器列表。传送装置10能够造成接收装置20基于网络质量使用从受支持的编解码器列表中选择的其中一个编解码器。因此,传送装置10能够造成接收装置20根据在传送装置10处进行的质量估计来调整其传送比特率。

在一个示例中,传送装置10和接收装置20可以是能够voip通信的装置。可以用于voip通信的示例性编解码器包括g722、g.711(alaw、μlaw)、amrwb(具有可变的模式和相应的比特率)、g.729ab、g.726-16、g.726-24、g.726-32、g.726-40、g.723.1(5.3)、amrnb(具有可变的模式和相应的比特率)。

根据本文所描述的示例配置的传送装置和接收装置能够被具体化为硬件、软件或硬件和软件的任何合适的组合。本文所描述的示例的传送装置和接收装置例如能够包括,用于在一个或更多个处理器(例如在cpu和/或gpu处)、和/或一个或更多个专用处理器(例如asic)、和/或适于编程以提供数据处理系统的功能性的一个或更多个可编程处理器(例如fpga)、和/或包括一个或更多个专用的、可编程的和通用处理功能的异构处理器处执行的软件。在本文所描述的示例中,传送装置和接收装置包括一个或更多个处理器和具有存储在其上的程序代码的一个或更多个存储器,数据处理器和存储器例如以组合的方式提供要求保护的数据处理系统和/或执行要求保护的方法。

本文所描述的数据处理单元(例如,编码器13、质量估计器14、配置管理器15、封包器16)不需要作为离散单元来提供并且表示能够(a)以任何方式进行组合、并且(b)其本身包括一个或更多个数据数据实体的功能。数据处理单元能够通过任何合适的硬件或软件功能,或者硬件和软件功能的组合来提供。

本文中所用的术语软件包括用于处理器(例如,cpu和/或gpu)的可执行的代码、固件、字节码、诸如c或opencl的程序语言代码、以及用于诸如fpga的可重构逻辑器件的模块。机器可读代码包括用于限定硬件的软件和代码,例如如可能在verilog或vhdl中生成的寄存器传送级(rtl)代码。

本文所描述的数据处理方法的任何一种或更多种能够通过一个或更多个物理处理单元来执行,该物理处理单元执行造成一个或多个这些单元进行数据处理方法的程序代码。各个物理处理单元可以是任何合适的处理器,例如cpu或gpu(或者其核心),或者固定的功能或可编程硬件。程序代码能够以非临时性的形式存储在诸如集成电路存储器、或光学或磁性存储器的机器可读介质中。机器可读介质可能包括多个存储器,例如片上存储器、计算机工作存储器和非易失性存储设备。

申请人在此公开了本文所描述的各个单独的特征以及这些特征中的两个或更多个的任意组合,在按照本领域技术人员的公知常识在这些特征或组合能够根据该说明书作为一个整体被执行的情况下,不论这些特征或其组合是否解决本文所公开的任何问题,并且不限于本发明要求保护的范围。申请人表明本发明的方面可以包含任何这种单独的特征或特征的组合。鉴于上述描述,在本发明的范围之内可以进行各种修改,这对于本领域技术人员来说是显而易见的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1