一种流媒体传输的动态码率调节方法、装置及传输系统与流程

文档序号:13213483阅读:440来源:国知局
一种流媒体传输的动态码率调节方法、装置及传输系统与流程

本发明涉及一种通讯领域,特别是一种适用于流媒体传输的动态码率调节方法、装置及传输系统。



背景技术:

流媒体技术广泛应用于各种音视频即时通信场景。然而internet只提供尽力而为(best-effort)的服务,无法提供qos保证。流媒体数据在复杂的网络环境中传输,会产生延时,抖动和丢包,处理不当,会严重影响用户体验。

在流媒体传输环境中,当网络状况较差时,码率越高反而会导致用户体验差,因此需要降低码率,有助于抵消网络质量不佳所带来的负面影响。因此,如何针对流媒体传输时进行码率的动态调节,是急需解决的一个问题。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供了一种适用于流媒体传输的动态码率调节方法、装置及传输系统。

本发明通过以下的方案实现:一种流媒体传输的动态码率调节方法,包括以下步骤:

s1:根据不同码率划分成对应的多个网络带宽区间;

s2:计算当前周期码率所属的带宽区间的条件概率,并分别计算与非当前带宽区间的条件概率的比值;

s3:获取最大的条件概率比值,并与设定阈值进行比较;若大于设定的阈值,则切换至该带宽区间所对应的码率;若否,则不做切换。

作为本发明的进一步改进,所述步骤s1中,所述码率由低至高分别为:r1、r2、…rn,对应的网络带宽区间分别为:(﹣∞,b1),(b1,b2),…(bn,+∞)。

作为本发明的进一步改进,所述步骤s2中,不同码率所属的带宽区间的条件概率分别为:

(-∞,b1]:φ(b1,t)=p(b<b1,t);

(b1,b2]:φ(b2,t)-φ(b1,t)=p(b1<b<b2,t)=p(b<b2,t)-p(b<b1,t);

(bn,+∞):1-φ(bn,t)=1-p(b<bn,t);

所述其中,

p{j(t),rtt(t),l(t)}为当前网络性能参数的概率,

p{j(t),rtt(t),l(t)|b<b}为给定网络带宽要求下网络性能参数的条件概率,

p{b<b}表示带宽b小于b的概率;

j(t)表示抖动,rtt(t)表示rtt时长,l(t)表示丢包率;

所述p{j(t),rtt(t),l(t)}根据各自的先验分布计算得到。

作为本发明的进一步改进,当对p{j<j(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的抖动值jitter看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的j(t)可计算出p{j<j(t)|b<b};

当对p{rtt<rtt(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的时长rtt看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的rtt(t)可计算出p{rtt<rtt(t)|b<b};

当对p{l<l(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的丢包率l看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的l(t)可计算出p{l<l(t)|b<b}。

本发明还提供了一种流媒体传输的动态码率调节装置,其包括

划分模块,用于根据不同码率划分成对应的多个网络带宽区间;

计算模块,用于计算当前周期码率所属的带宽区间的条件概率,并分别计算与非当前带宽区间的条件概率的比值;

切换模块,用于获取最大的条件概率比值,并与设定阈值进行比较;若大于设定的阈值,则切换至该带宽区间所对应的码率;若否,则不做切换。

作为本发明的进一步改进,所述划分模块中,将所述码率由低至高分别为:r1、r2、…rn,对应的网络带宽区间分别为:(﹣∞,b1),(b1,b2),…(bn,+∞)。

作为本发明的进一步改进,所述计算模块中,计算不同码率所属的带宽区间的条件概率分别为:

(-∞,b1]:φ(b1,t)=p(b<b1,t);

(b1,b2]:φ(b2,t)-φ(b1,t)=p(b1<b<b2,t)=p(b<b2,t)-p(b<b1,t);

(bn,+∞):1-φ(bn,t)=1-p(b<bn,t);

所述其中,

p{j(t),rtt(t),l(t)}为当前网络性能参数的概率,

p{j(t),rtt(t),l(t)|b<b}为给定网络带宽要求下网络性能参数的条件概率,

p{b<b}表示带宽b小于b的概率;

j(t)表示抖动,rtt(t)表示rtt时长,l(t)表示丢包率;

所述p{j(t),rtt(t),l(t)}根据各自的先验分布计算得到。

作为本发明的进一步改进,当对p{j<j(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的抖动值jitter看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的j(t)可计算出p{j<j(t)|b<b};

当对p{rtt<rtt(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的时长rtt看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的rtt(t)可计算出p{rtt<rtt(t)|b<b};

当对p{l<l(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的丢包率l看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的l(t)可计算出p{l<l(t)|b<b}。

本发明还提供了一种流媒体传输系统,其包括第一客户端和第二客户端;

所述第一客户端包括第一网络下行质量评估模块、第一客户端网络控制交互模块、第一计算参数模块和第一网络收发模块;所述第一客户端网络控制交互模块包括所述适用于流媒体传输的动态码率调节装置;

所述第二客户端包括第二网络下行质量评估模块、第二客户端网络控制交互模块、第二计算参数模块和第二网络收发模块;所述第二客户端网络控制交互模块包括所述适用于流媒体传输的动态码率调节装置;

当第一客户端接收来自第二客户端的数据时,通过所述第一网络下行评估模块,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第一客户端网络交互控制模块,获取第二客户端的当前码率并向第二客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第二客户端接受并解析出第一客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改;

当第二客户端接收来自第一客户端的数据时,通过所述第二网络下行评估模块,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第二客户端网络交互控制模块,获取第一客户端的当前码率并向第一客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第一客户端接收并解析出第二客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改。

作为本发明的进一步改进,所述第一客户端网络交互控制模块通过端到端的透传协议向第二客户端发送应该修改的码率,所述透传协议每隔1/3t时长发送一次;

所述第二客户端网络交互控制模块通过端到端的透传协议向第一客户端发送应该修改的码率,所述透传协议每隔1/3t时长发送一次。

相比于现有技术,本发明提供的动态码率调节方法是一种能够自适应网络状况的实时流媒体传输机制,网络性能评估和码率调节策略是动态码率调节的两个重要模块,其表现直接影响到动态码率调节的效果。

同时,本发明实现简单,无需服务器参与,适用性广,能够有效确保不同网络传输环境下的即时通信质量。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1是端到端即时网络通信整体框图。

图2是本发明的流媒体传输的动态码率调节方法的步骤流程图。

图3是本发明的动态码率调节装置的模块框图。

图4本发明的流媒体传输系统框图。

具体实施方式

以下结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

请参阅图1,其为端到端即时网络通信整体框图。rtp数据流在网络传输过程中,会产生丢包、延时和抖动,当丢包、延时或抖动过大时,用户体验变差。因此,在本发明中通过网络交互控制模块对rtp数据流进行调节,可以改善流媒体传输质量,从而提升用户体验。针对现有技术的缺陷,本发明提供了一种适用于流媒体传输的动态码率调节方法、装置及传输系统,具体通过以下实施例进行介绍:

实施例1

首先,介绍本发明的流媒体传输的动态码率调节方法的基本流程。具体请参阅图2,其为本发明的流媒体传输的动态码率调节方法的步骤流程图。

本发明提供了一种流媒体传输的动态码率调节方法,包括以下步骤:

s1:根据不同码率划分成对应的多个网络带宽区间。

具体的,所述步骤s1中,所述码率由低至高分别为:r1、r2、…rn,对应的网络带宽区间分别为:(﹣∞,b1),(b1,b2),…(bn,+∞)。在实际应用中,可以根据码率进行带宽区间划分。

s2:计算当前周期码率所属的带宽区间的条件概率,并分别计算与非当前带宽区间的条件概率的比值。

具体的,所述步骤s2中,不同码率所属的带宽区间的条件概率分别为:

(-∞,b1]:φ(b1,t)=p(b<b1,t);

(b1,b2]:φ(b2,t)-φ(b1,t)=p(b1<b<b2,t)=p(b<b2,t)-p(b<b1,t);

(bn,+∞):1-φ(bn,t)=1-p(b<bn,t)。

所述其中,

p{j(t),rtt(t),l(t)}为当前网络性能参数的概率,

p{j(t),rtt(t),l(t)|b<b}为给定网络带宽要求下网络性能参数的条件概率,

p{b<b}表示带宽b小于b的概率;

j(t)表示抖动,rtt(t)表示rtt时长,l(t)表示丢包率;

所述p{j(t),rtt(t),l(t)}根据各自的先验分布计算得到。

以下具体介绍如何针对p{j(t),rtt(t),l(t)}的概率进行计算,具体如下:

第一、当对p{j<j(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的抖动值jitter看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的j(t)可计算出p{j<j(t)|b<b};

第二、同理,对p{rtt<rtt(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的时长rtt看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的rtt(t)可计算出p{rtt<rtt(t)|b<b};

第三、同理,对p{l<l(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的丢包率l看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的l(t)可计算出p{l<l(t)|b<b}。

s3:获取最大的条件概率比值,并与设定阈值进行比较;若大于设定的阈值,则切换至该带宽区间所对应的码率;若否,则不做切换。

以下通过一个具体例子,介绍本发明的流媒体传输的动态码率调节方法的原理:

本发明根据网络带宽估计值的大小实现动态码率调节。网络带宽估计采用的网络性能参数包括丢包率、抖动、rtt时长,其中,丢包率可以根据rtp包的包序计算得到,抖动可以根据rtp包的发包时间戳和收包时间计算得出,rtt时长则由包的往返时间获得。每隔周期t得到需要的网络性能参数后,计算出在该网络状况条件下不同网络带宽区间的条件概率,即得到码率的条件分布。如公式(1)所示:

φ(b,t)=p(b<b,t)=p{b<b|j(t),rtt(t),l(t)}(1)

其表示当前网络带宽b小鱼b(单位kps)的条件概率,j(t)表示抖动,rtt(t)表示rtt时长,l(t)为丢包率。

在本例子中,假设有高中低三种码率:rh,rm,rl,不同的码率传输需要提供不同的网络带宽,因此可以根据不同码率将网络带宽划分成不同的区间,如式(2):

rl:(-∞,b1];rm:(b1,b2];rh:(b2,+∞)(2)

由此可将不同带宽区间的条件概率表示如下:

(-∞,b1]:φ(b1,t)=p(b<b1,t)

(b1,b2]:φ(b2,t)-φ(b1,t)=p(b1<b<b2,t)=p(b<b2,t)-p(b<b1,t)

(b2,+∞):1-φ(b2,t)=1-p(b<b2,t)

其中,b1<b2。

条件概率如上述步骤s2中所述,这里就不赘述了。

记当前周期码率为rp,若当前周期的网络带宽估计区间为(b1,b2],则有rp=rm。在判断下一个周期需要对方修改的码率时,遵循如下步骤:

步骤一:计算当前网络带宽区间的条件概率分别与非当前网络带宽区间的条件概率的比值,用k表示:

步骤二:计算k1,k2的最大值kmax;

步骤三:若kmax=k1,则表示当前码率rp可能要切换到rl,需要进行阈值判断,不同码率之间的切换可以设置不同的阈值,若kmax>switch_threshod,则需要切换到对应的码率。

实施例2

另外同时参阅图3,其为本发明的动态码率调节装置的模块框图。为了实现上述的动态码率的调节方法,本发明还提供了一种流媒体传输的动态码率调节装置1,其包括划分模块11、计算模块12和切换模块13。

所述划分模块11,用于根据不同码率划分成对应的多个网络带宽区间。

具体的,在所述划分模块中,将所述码率由低至高分别为:r1、r2、…rn,对应的网络带宽区间分别为:(﹣∞,b1),(b1,b2),…(bn,+∞)。

所述计算模块12,用于计算当前周期码率所属的带宽区间的条件概率,并分别计算与非当前带宽区间的条件概率的比值。

具体的,在所述计算模块中,计算不同码率所属的带宽区间的条件概率分别为:

(-∞,b1]:φ(b1,t)=p(b<b1,t);

(b1,b2]:φ(b2,t)-φ(b1,t)=p(b1<b<b2,t)=p(b<b2,t)-p(b<b1,t);

(bn,+∞):1-φ(bn,t)=1-p(b<bn,t);

所述其中,

p{j(t),rtt(t),l(t)}为当前网络性能参数的概率,

p{j(t),rtt(t),l(t)|b<b}为给定网络带宽要求下网络性能参数的条件概率,

p{b<b}表示带宽b小于b的概率;

j(t)表示抖动,rtt(t)表示rtt时长,l(t)表示丢包率;

所述p{j(t),rtt(t),l(t)}根据各自的先验分布计算得到。

当对p{j<j(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的抖动值jitter看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的j(t)可计算出p{j<j(t)|b<b};

当对p{rtt<rtt(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的时长rtt看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的rtt(t)可计算出p{rtt<rtt(t)|b<b};

当对p{l<l(t)|b<b}进行计算时,具体为:

将满足某一带宽区间的丢包率l看成一个随机变量,x1,x2,…xn是随机变量的样本观察值,将其由大到小排序,排序后为x1,x2,…xn,设ki为小于xi+1的样本值出现的累计频次,n为样本容量,则可得到样本累计频率分布函数:

该累计分布函数即可作为满足某一带宽区间的抖动值的先验分布的估计,根据估计出的先验分布及当前周期的l(t)可计算出p{l<l(t)|b<b}。

所述切换模块13,用于获取最大的条件概率比值,并与设定阈值进行比较;若大于设定的阈值,则切换至该带宽区间所对应的码率;若否,则不做切换。

本实施例2中的动态码率调节装置的工作原理与过程与实施例1相同,故不赘述。

实施例3

本实施例中,将实施例2中的动态码率调节装置应用在现有的流媒体传输系统中,以解决现有技术在传输过程中的缺陷。具体请同时参阅图4,其为本发明的流媒体传输系统框图。本发明还提供了一种流媒体传输系统,其包括第一客户端2和第二客户端3。

所述第一客户端2包括第一网络下行质量评估模块21、第一客户端网络控制交互模块22、第一计算参数模块23和第一网络收发模块24;所述第一客户端网络控制交互模块22包括如实施例2中所述适用于流媒体传输的动态码率调节装置1。

所述第二客户端3包括第二网络下行质量评估模块31、第二客户端网络控制交互模块32、第二计算参数模块33和第二网络收发模块34。所述第二客户端网络控制交互模块32包括如实施例2中所述适用于流媒体传输的动态码率调节装置1。

本实施例3所采用的动态码率调节装置与实施例2中相同,故不赘述。以下简要介绍本实施例3中第一客户端和第二客户端的数据传输过程:

当第一客户端接2收来自第二客户端3的数据时,通过所述第一网络下行评估模块21,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第一客户端网络交互控制模块22,获取第二客户端3的当前码率并向第二客户端反馈应该修改的码率。根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第二客户端接受并解析出第一客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改。

同理,当第二客户端接3收来自第一客户端的数据时,通过所述第二网络下行评估模块31,对当前网络下行质量进行评估,得到所需要的网络性能参数,并通过第二客户端网络交互控制模块32,获取第一客户端2的当前码率并向第一客户端反馈应该修改的码率;根据当前下行网络的当前网络性能参数得到对方的当前码率,可计算得到对方应该修改的码率;所述第一客户端接收并解析出第二客户端需要修改的码率,判断该码率是否与当前实际码率一致,如果不一致,则进行修改。

进一步,所述第一客户端网络交互控制模块22通过端到端的透传协议向第二客户端3发送应该修改的码率,所述透传协议每隔1/3t时长发送一次。

所述第二客户端网络交互控制模块32通过端到端的透传协议向第一客户端2发送应该修改的码率,所述透传协议每隔1/3t时长发送一次。

相比于现有技术,本发明提供的动态码率调节方法是一种能够自适应网络状况的实时流媒体传输机制,网络性能评估和码率调节策略是动态码率调节的两个重要模块,其表现直接影响到动态码率调节的效果。

同时,本发明实现简单,无需服务器参与,适用性广,能够有效确保不同网络传输环境下的即时通信质量。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

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