一种媒体数据传输方法及装置与流程

文档序号:12479714阅读:309来源:国知局
一种媒体数据传输方法及装置与流程

本发明涉及网络技术领域,具体涉及一种媒体数据传输方法及装置。



背景技术:

近年来计算机网络的爆炸式发展,特别是大量多媒体实时业务的广泛应用,对传统的以传输控制协议(Transmission Control Protocol,TCP)为主的传输层协议提出了新的挑战。大部分多媒体应用对时延很敏感,但却具有一定的容错机制,能够容忍少量的报文丢失。此类应用要求传输协议开销小、响应快,并且不必保证传输完全可靠。此外,抖动也是对多媒体应用有较大影响的问题,而TCP拥塞控制使用的加性增加乘性减少(Additive IncreaseMultiplicative Decrease,AIMD)策略,会引起发送速率很大的抖动。目前多媒体实时应用多采用UDP协议来传输,但由于UDP协议缺乏拥塞控制机制,当基于TCP、UDP的应用共享网络带宽时,TCP流因具有拥塞退避机制而导致“饥饿”,而UDP将不公平地获得大量带宽,同时可能导致网络拥塞,影响Internet的鲁棒性,因此随着UDP协议的应用在Internet所占的比例的增加,其不足之处逐渐暴露。

针对这个问题,TCP友好速率控制算法(TCP Friendly Rate Control,TFRC)应运而生。TFRC是一种适合于多媒体传输,并具有拥塞退避机制,能够与TCP协议公平分享带宽的传输协议。在同等条件下,TFRC流具有与TCP流近似相同的吞吐量,因此,可以“公平地”与TCP共享网络带宽。另一方面,TFRC吞吐量变化稳定、抖动较小,因此更加适合电话、流媒体等对传输速率的平滑性要求较高的应用。

TFRC是一种基于接收端的机制,其基本思想是在接收端检测网络的拥塞信号丢包事件频率,并将信号反馈给发送端。而发送端利用以丢包事件频率为变量的吞吐率公式来调整发送速率,以适应网络拥塞的状况,同时保证协议的友好性和发送速率的平滑性。

现有基于TFRC的UDP网络传输框架通过检测丢包事件频率来估计网络可用带宽,其丢包事件频率计算方法将所有丢包事件都归咎于网络拥塞,但是在实际应用中,即使没有出现网络拥塞,流媒体数据的传输也不可能百分之百的精确完成。特别在移动网络条件下,链路多径衰弱、外源干扰、移动切换等原因,都有可能导致出现随机链路丢包,这样的丢包会导致TFRC协议盲目减小发送速率,影响传输协议的吞吐率。



技术实现要素:

本发明实施例公开了一种媒体数据传输方法及装置,可针对不同的丢包类型进行不同的流媒体数据传输方式调整,保证较高的数据吞吐率,提高流媒体数据的传输质量。

本发明实施例第一方面公开一种媒体数据传输方法,包括:

获取用于表示当前网络状态的网络参数;

根据所述网络参数确定当前网络的丢包类型,所述丢包类型包括拥塞丢包或者随机链路丢包;

基于所述丢包类型,调整当前网络流媒体数据的传输方式。

本发明实施例第二方面公开一种媒体数据传输装置,包括:

获取模块,用于获取用于表示当前网络状态的网络参数;

确定模块,用于根据所述网络参数确定当前网络的丢包类型,所述丢包类型包括拥塞丢包或者随机链路丢包;

调整模块,用于基于所述丢包类型,调整当前网络流媒体数据的传输方式。

本发明实施例中,获取用于表示当前网络状态的网络参数,根据网络参数确定当前网络的丢包类型,该丢包类型包括拥塞丢包或者随机链路丢包,基于该丢包类型,调整当前网络流媒体数据的传输方式,通过这种方式,可针对不同的丢包类型进行不同的流媒体数据传输方式调整,保证较高的数据吞吐率,提高流媒体数据的传输质量。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例公开的一种媒体数据传输方法的流程图;

图2是本发明实施例公开的一种拥塞丢包和随机链路丢包对比图;

图3是本发明实施例提供的一种丢包对抗方案框架图;

图4是本发明实施例公开的一种媒体数据传输装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种媒体数据传输方法及装置可以应用于基于TFRC的UDP网络传输框架中,TFRC是一种基于接收端的机制,其基本思想是在接收端检测网络的拥塞信号丢包事件频率,并将信号反馈给发送端。而发送端利用以丢包事件频率和往返时延及重传超时时间为变量的吞吐率公式来调整发送速率,以适应网络拥塞的状况,同时保证协议的友好性和发送速率的平滑性。协议使用的吞吐量方程如下:

<mrow> <mi>T</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>R</mi> <mi>T</mi> <mi>T</mi> <mo>&times;</mo> <msqrt> <mfrac> <mrow> <mn>2</mn> <mi>p</mi> </mrow> <mn>3</mn> </mfrac> </msqrt> <mo>+</mo> <mi>R</mi> <mi>T</mi> <mi>O</mi> <mi>min</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>3</mn> <msqrt> <mfrac> <mrow> <mn>3</mn> <mi>p</mi> </mrow> <mn>8</mn> </mfrac> </msqrt> <mo>)</mo> </mrow> <mi>p</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mn>32</mn> <msup> <mi>p</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,RTT为往返时延,RTO为重传超时时间,p为丢包事件频率。在计算发送速率前,必须首先得到以上参数。其中,由于接收端并不对每个收到的数据包发送应答,因此丢包事件频率必须由接收端统计。而RTT和RTO既可以在发送端测量也可以在接收端测量。目前TFRC协议的实现是由发送端测量RTT和RTO,接收端统计丢包事件频率并反馈给发送端,发送端根据以上参数计算合理的发送速率。

现有的TFRC协议是基于一个基本假设,那就是所有丢包事件都由网络拥塞造成的路由排队造成。但在实际应用,特别是无线移动网络环境下,受限于网络服务提供商和信道质量,许多丢包与网络拥塞没有直接关系,而这种非拥塞丢包可以使用重传或者冗余编码等策略进行补救。但是在这种环境下,TFRC算法中计算出来的丢包事件频率会非常大,从而导致发送速率迅速下降,严重影响流媒体网络传输吞吐率,进而破坏产品体验。

针对这个问题,本发明实施例提出了一种针对TFRC流媒体传输协议的随机链路丢包以及拥塞丢包检测策略。通过这个方法,我们可以在TFRC的丢包事件频率计算环节剔除随机链路丢包,只留下由网络拥塞造成的丢包进行计算。从而排除不必要的环境干扰,有效提升流媒体系统在高丢包环境下的传输能力。并且在检测到是随机链路丢包时,进一步采取对应的补救措施进行补救,提高网络吞吐率。

请参阅图1,图1是本发明实施例公开的一种媒体数据传输方法的流程图。如图1所示,该方法可以包括以下步骤。

S100、获取用于表示当前网络状态的网络参数;

本发明实施例中,发送设备获取用于表示当前网络状态的网络参数,以确定当前网络丢包是随机链路丢包或者拥塞丢包,对于不是拥塞丢包导致的丢包事件,予以剔除,不用于丢包事件频率计算,从而不会盲目减少发送设备的发送速率。

可选的,所述网络参数包括当前网络时延参数、当前网络丢包率变化趋势参数以及当前网络丢包率参数中的至少一种。依据香农定理,信源的发送速率必须小于或等于信道容量。因此,当信源带宽远大于链路带宽形成带宽瓶颈时,路由器处理数据包时在瓶颈网络节点排队等待,造成网络拥塞。网络出现拥塞一般表现为数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”,直观反应为发送设备到接收设备往返时延和丢包率上升。而往返时延和丢包率的上升幅度和速率又取决于瓶颈链路带宽、路由队列平均长度、路由丢包策略及网络结构等因素,没有一个固定的模式。

如图2所示,图中左、右图分别为拥塞丢包和随机链路丢包的表现,第一行为发送速率变化趋势图,第二行为往返时延(Round-Trip Time,RTT)变化趋势图,第三行为丢包率大小的变化趋势图。从图中可以看出拥塞丢包出现的时候往往伴随着较大的RTT和剧烈的丢包率变化,而随机链路丢包发生时,RTT和丢包率都相对而言较平稳。在本发明实施例中,使用上述当前网络RTT、当前网络丢包率变化趋势参数以及当前网络丢包率参数作为判断是否处于拥塞状态的依据。

S101、根据所述网络参数确定当前网络的丢包类型,所述丢包类型包括拥塞丢包或者随机链路丢包;

本发明实施例中,根据上述当前网络时延参数、当前网络丢包率变化趋势参数以及当前网络丢包率参数中的至少一种网络参数确定当前网络的丢包类型,该丢包类型包括拥塞丢包或者随机链路丢包,若为随机链路丢包,则不会将该丢包事件作为TFRC中丢包频率计算过程中。

可选的,若网络参数包括当前网络时延参数;

所述根据所述网络参数确定当前网络的丢包类型,包括:

若所述当前网络时延参数大于第一阈值,则确定当前网络的丢包类型为拥塞丢包;

若所述当前网络时延参数小于或者等于所述第一阈值,则确定当前网络的丢包类型为随机链路丢包。

本发明实施例中,网络时延参数可以包括单向时延或者RTT,这里以RTT为例进行说明,当RTT升高到第一阈值以上时,认为当前系统处于拥塞状态,即是当前网络的丢包类型为拥塞丢包,若RTT小于或者等于第一阈值,则确定当前网络丢包类型为随机链路丢包。

为了排除网络物理延时的干扰,系统在每一次传输中维护一个最小时延变量rtt_min,在每个数据包的确认(Acknowledgement,ACK)字符反馈到发送设备的时候,记录其RTT,若RTT小于rtt_min,则rtt_min=RTT。若当前RTT>rtt_min+δ,则认为当前网络处于拥塞状态。

阈值δ由网络瓶颈带宽、路由队列长度和数据包大小共同决定,设路由平均队列长度为L_q,带宽为bw,包大小为s,则RTT能够上升的最大幅度为rtt_inc=(L_q×s)/bw。一般而言,在出现拥塞的场景中,接收设备的接收速率recv_rate≈网络可用带宽bw,故RTT上升最大幅度为rtt_inc≈(L_q×s)/(recv_rate),以此可以设置阈值δ=(L_q×s)/(2recv_rate)。

在真实系统中,我们难以得知路由队列长度,可以保守估计队列长度为50,根据Bigo Live流媒体传输系统中的最大码率和平均包大小,我们设置δ=300ms作为一个保守的阈值,对RTT异常增大的行为进行判断。

可选的,若网络参数包括当前网络丢包率变化趋势参数;

所述根据所述网络参数确定当前网络的丢包类型,包括:

若当前网络丢包率变化趋势为上升趋势,则确定当前网络的丢包类型为拥塞丢包;

若当前网络丢包率变化趋势为下降趋势或者平稳趋势,则确定当前网络的丢包类型为随机链路丢包。

本发明实施例中,网络参数可以包括当前网络丢包率变化趋势参数,如图2所示,图2的第三行的图即是拥塞丢包和随机链路丢包的丢包率变化趋势图,如图所示,拥塞丢包的丢包率变化趋势图是剧烈变化,而随机链路丢包的丢包率变化趋势图是平稳变化。

具体可选的,系统维护近200ms或近20个数据包的丢包率信息,并实时检测其是否处于上升状态。若检测到丢包率处于上升状态,则认为当前网络处于拥塞状态,当前的丢包事件为拥塞丢包;若检测到丢包率处于平稳状态,则认为当前网络是随机链路丢包。为了排除丢包率抖动带来的影响,我们先对丢包率进行时域低通滤波,滤波方式为:

pktLoss=0.05×pktLoss_t+0.95×pktLoss

设pktLoss(n)=A×pktLoss(n-1)+w(n),其中pktLoss(n)为n时刻的pktLoss值,A为状态转移参量,w(n)为过程噪声,w(n)服从N(0,Q)的高斯分布。由此设计卡尔曼滤波器估计每一步中w(n)的值,当w(n)>阈值σ,认为pktLoss处于上升状态,判断为网络拥塞,即是拥塞丢包;反之若w(n)<-σ,则认为pktLoss处于下降过程,网络没有出现拥塞,丢包为随机链路丢包;若w(n)∈(-σ,σ),则可以认为pktLoss处于平稳状态,网络没有出现拥塞,丢包为随机链路丢包。需要说明的是,卡尔曼(Kalman)滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。

在不同的网络环境下,丢包率波动的幅度和速率也会有所不同,Kalman滤波器的阈值σ需要针对网络环境做自适应调整。调整策略可被归纳为“快升慢降”:若w(n)∈(-σ,σ),则σ以较慢的速度下降,否则σ以较快的速度上升。这样的处理方式是让滤波器在不同的网络环境下都能够有效检测出pktLoss的上升/下降过程。

可选的,若网络参数包括当前网络丢包率参数;

所述根据所述网络参数确定当前网络的丢包类型,包括:

若所述当前网络丢包率大于第二阈值,则确定当前网络丢包的丢包类型为拥塞丢包;

若所述当前网络丢包率小于或者等于所述第二阈值,则确定当前网络丢包的丢包类型为随机链路丢包。

本发明实施例中,对于流媒体网络传输系统而言,少量的随机链路丢包可以通过丢包重传或者冗余编码进行较好恢复,不会严重影响流媒体对端播放质量。但是在非常严重丢包的网络链路下,现有技术很难解决高丢包造成的丢帧、超时等问题。所以本发明实施例在实际的流媒体传输系统中没有办法,也没有必要保证极高丢包率下的传输效果。设丢包率阈值(即第二阈值)为θ_p,当检测到丢包率大小pktLoss>θ_p时,则有必要降低当前发送速率,这时候出现的丢包事件也被认为是拥塞丢包,被计入丢包事件频率计算。优选的,参考Bigo Live的重传和冗余编码策略,系统中θ_p设为50%。若当前网络丢包率大于该第二阈值时,则确定当前网络丢包为拥塞丢包,并被计入丢包事件频率计算,若当前网络丢包率小于或者等于该第二阈值时,则确定当前网络丢包为随机链路丢包。

需要说明的是,可以根据上述三种网络参数(当前网络时延参数、当前网络丢包率变化趋势参数以及当前网络丢包率参数)中至少一种确定丢包类型,比如可以根据其中一个网络参数进行确定丢包类型,也可以根据三个网络参数中的两两组合确定丢包类型,或者也可以根据三个网络参数确定丢包类型。

如图3所示,即是本发明实施例提供的一种丢包类型检测流程图,需要说明的是,图中的检测流程仅为其中一种检测流程,不构成对本发明的限定,如图所示,丢包事件检测模块首先检测RTT是否正常,即是检测RTT是否大于第一阈值,若大于丢包第一阈值,即是RTT表现不正常,则将丢包事件计入丢包事件频率计算模块进行丢包事件频率计算,从而调整发送速率;若RTT小于或者等于第一阈值,则判断丢包率是否平稳,若丢包率不平稳,则说明是拥塞丢包,将丢包事件计入丢包事件频率计算模块进行丢包事件频率计算,从而调整发送速率;若丢包频率平稳,则继续检测丢包率是否较低,若丢包率比较大,大于第二阈值,则将其确定为拥塞丢包,计入丢包事件频率计算模块进行丢包事件频率计算,从而调整发送速率;若丢包率比较小,则直接将其确定为随机链路丢包,丢弃丢包事件,并按照随机链路丢包进行后续处理。

S102,基于所述丢包类型,调整当前网络流媒体数据的传输方式。

可选的,基于不同的丢包类型,调整当前网络流媒体数据传输方式包括:

若所述丢包类型为拥塞丢包,则调整当前网络流媒体数据的发送速率;

若所述丢包类型为随机链路丢包,则采用冗余编码策略对当前网络流媒体数据进行编码。

本发明实施例中,若丢包类型为拥塞丢包,则根据TFRC协议的如下计算公式调整发送设备的发送速率。

<mrow> <mi>T</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>R</mi> <mi>T</mi> <mi>T</mi> <mo>&times;</mo> <msqrt> <mfrac> <mrow> <mn>2</mn> <mi>p</mi> </mrow> <mn>3</mn> </mfrac> </msqrt> <mo>+</mo> <mi>R</mi> <mi>T</mi> <mi>O</mi> <mi>min</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>3</mn> <msqrt> <mfrac> <mrow> <mn>3</mn> <mi>p</mi> </mrow> <mn>8</mn> </mfrac> </msqrt> <mo>)</mo> </mrow> <mi>p</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mn>32</mn> <msup> <mi>p</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

若丢包类型为随机链路丢包,则采用冗余编码策略对当前网络流媒体数据进行编码,从而减小因链路影响带来的丢包。

本发明实施例中,获取用于表示当前网络状态的网络参数,根据网络参数确定当前网络的丢包类型,该丢包类型包括拥塞丢包或者随机链路丢包,基于该丢包类型,调整当前网络流媒体数据的传输方式,通过这种方式,可针对不同的丢包类型进行不同的流媒体数据传输方式调整,保证较高的数据吞吐率,提高流媒体数据的传输质量。

请参阅图4,图4是本发明实施例公开的一种数据传输装置的结构图。

如图4所示,该数据传输装置包括:

获取模块100,用于获取用于表示当前网络状态的网络参数;

本发明实施例中,发送设备获取用于表示当前网络状态的网络参数,以确定当前网络丢包是随机链路丢包或者拥塞丢包,对于不是拥塞丢包导致的丢包事件,予以剔除,不用于丢包事件频率计算,从而不会盲目减少发送设备的发送速率。

可选的,所述网络参数包括当前网络时延参数、当前网络丢包率变化趋势参数以及当前网络丢包率参数中的至少一种。依据香农定理,信源的发送速率必须小于或等于信道容量。因此,当信源带宽远大于链路带宽形成带宽瓶颈时,路由器处理数据包时在瓶颈网络节点排队等待,造成网络拥塞。网络出现拥塞一般表现为数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”,直观反应为发送设备到接收设备往返时延和丢包率上升。而往返时延和丢包率的上升幅度和速率又取决于瓶颈链路带宽、路由队列平均长度、路由丢包策略及网络结构等因素,没有一个固定的模式。

如图2所示,图中左、右图分别为拥塞丢包和随机链路丢包的表现,第一行为发送速率变化趋势图,第二行为往返时延(Round-Trip Time,RTT)变化趋势图,第三行为丢包率大小的变化趋势图。从图中可以看出拥塞丢包出现的时候往往伴随着较大的RTT和剧烈的丢包率变化,而随机链路丢包发生时,RTT和丢包率都相对而言较平稳。在本发明实施例中,使用上述当前网络RTT、当前网络丢包率变化趋势参数以及当前网络丢包率参数作为判断是否处于拥塞状态的依据。

确定模块101,用于根据所述网络参数确定当前网络的丢包类型,所述丢包类型包括拥塞丢包或者随机链路丢包;

本发明实施例中,根据上述当前网络时延参数、当前网络丢包率变化趋势参数以及当前网络丢包率参数中的至少一种网络参数确定当前网络的丢包类型,该丢包类型包括拥塞丢包或者随机链路丢包,若为随机链路丢包,则不会将该丢包事件作为TFRC中丢包频率计算过程中。

可选的,所述网络参数包括当前网络时延参数;所述确定模块101具体用于:

若所述当前网络时延参数大于第一阈值,则确定当前网络的丢包类型为拥塞丢包;

若所述当前网络时延参数小于或者等于所述第一阈值,则确定当前网络的丢包类型为随机链路丢包。

本发明实施例中,网络时延参数可以包括单向时延或者RTT,这里以RTT为例进行说明,当RTT升高到第一阈值以上时,认为当前系统处于拥塞状态,即是当前网络的丢包类型为拥塞丢包,若RTT小于或者等于第一阈值,则确定当前网络丢包类型为随机链路丢包。

为了排除网络物理延时的干扰,系统在每一次传输中维护一个最小时延变量rtt_min,在每个数据包的确认(Acknowledgement,ACK)字符反馈到发送设备的时候,记录其RTT,若RTT小于rtt_min,则rtt_min=RTT。若当前RTT>rtt_min+δ,则认为当前网络处于拥塞状态。

阈值δ由网络瓶颈带宽、路由队列长度和数据包大小共同决定,设路由平均队列长度为L_q,带宽为bw,包大小为s,则RTT能够上升的最大幅度为rtt_inc=(L_q×s)/bw。一般而言,在出现拥塞的场景中,接收设备的接收速率recv_rate≈网络可用带宽bw,故RTT上升最大幅度为rtt_inc≈(L_q×s)/(recv_rate),以此可以设置阈值δ=(L_q×s)/(2recv_rate)。

在真实系统中,我们难以得知路由队列长度,可以保守估计队列长度为50,根据Bigo Live流媒体传输系统中的最大码率和平均包大小,我们设置δ=300ms作为一个保守的阈值,对RTT异常增大的行为进行判断。

可选的,所述网络参数包括当前网络丢包率变化趋势参数;所述确定模块101具体用于:

若当前网络丢包率变化趋势为上升趋势,则确定当前网络的丢包类型为拥塞丢包;

若当前网络丢包率变化趋势为下降趋势或者平稳趋势,则确定当前网络的丢包类型为随机链路丢包。

本发明实施例中,网络参数可以包括当前网络丢包率变化趋势参数,如图2所示,图2的第三行的图即是拥塞丢包和随机链路丢包的丢包率变化趋势图,如图所示,拥塞丢包的丢包率变化趋势图是剧烈变化,而随机链路丢包的丢包率变化趋势图是平稳变化。

具体可选的,系统维护近200ms或近20个数据包的丢包率信息,并实时检测其是否处于上升状态。若检测到丢包率处于上升状态,则认为当前网络处于拥塞状态,当前的丢包事件为拥塞丢包;若检测到丢包率处于平稳状态,则认为当前网络是随机链路丢包。为了排除丢包率抖动带来的影响,我们先对丢包率进行时域低通滤波,滤波方式为:

pktLoss=0.05×pktLoss_t+0.95×pktLoss

设pktLoss(n)=A×pktLoss(n-1)+w(n),其中pktLoss(n)为n时刻的pktLoss值,A为状态转移参量,w(n)为过程噪声,w(n)服从N(0,Q)的高斯分布。由此设计卡尔曼滤波器估计每一步中w(n)的值,当w(n)>阈值σ,认为pktLoss处于上升状态,判断为网络拥塞,即是拥塞丢包;反之若w(n)<-σ,则认为pktLoss处于下降过程,网络没有出现拥塞,丢包为随机链路丢包;若w(n)∈(-σ,σ),则可以认为pktLoss处于平稳状态,网络没有出现拥塞,丢包为随机链路丢包。需要说明的是,卡尔曼(Kalman)滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。

在不同的网络环境下,丢包率波动的幅度和速率也会有所不同,Kalman滤波器的阈值σ需要针对网络环境做自适应调整。调整策略可被归纳为“快升慢降”:若w(n)∈(-σ,σ),则σ以较慢的速度下降,否则σ以较快的速度上升。这样的处理方式是让滤波器在不同的网络环境下都能够有效检测出pktLoss的上升/下降过程。

可选的,所述网络参数包括当前网络丢包率参数;所述确定模块101具体用于:

若所述当前网络丢包率大于第二阈值,则确定当前网络丢包的丢包类型为拥塞丢包;

若所述当前网络丢包率小于或者等于所述第二阈值,则确定当前网络丢包的丢包类型为随机链路丢包。

本发明实施例中,对于流媒体网络传输系统而言,少量的随机链路丢包可以通过丢包重传或者冗余编码进行较好恢复,不会严重影响流媒体对端播放质量。但是在非常严重丢包的网络链路下,现有技术很难解决高丢包造成的丢帧、超时等问题。所以本发明实施例在实际的流媒体传输系统中没有办法,也没有必要保证极高丢包率下的传输效果。设丢包率阈值(即第二阈值)为θ_p,当检测到丢包率大小pktLoss>θ_p时,则有必要降低当前发送速率,这时候出现的丢包事件也被认为是拥塞丢包,被计入丢包事件频率计算。优选的,参考Bigo Live的重传和冗余编码策略,系统中θ_p设为50%。若当前网络丢包率大于该第二阈值时,则确定当前网络丢包为拥塞丢包,并被计入丢包事件频率计算,若当前网络丢包率小于或者等于该第二阈值时,则确定当前网络丢包为随机链路丢包。

需要说明的是,可以根据上述三种网络参数(当前网络时延参数、当前网络丢包率变化趋势参数以及当前网络丢包率参数)中至少一种确定丢包类型,比如可以根据其中一个网络参数进行确定丢包类型,也可以根据三个网络参数中的两两组合确定丢包类型,或者也可以根据三个网络参数确定丢包类型。

如图3所示,即是本发明实施例提供的一种丢包类型检测流程图,需要说明的是,图中的检测流程仅为其中一种检测流程,不构成对本发明的限定,如图所示,丢包事件检测模块首先检测RTT是否正常,即是检测RTT是否大于第一阈值,若大于丢包第一阈值,即是RTT表现不正常,则将丢包事件计入丢包事件频率计算模块进行丢包事件频率计算,从而调整发送速率;若RTT小于或者等于第一阈值,则判断丢包率是否平稳,若丢包率不平稳,则说明是拥塞丢包,将丢包事件计入丢包事件频率计算模块进行丢包事件频率计算,从而调整发送速率;若丢包频率平稳,则继续检测丢包率是否较低,若丢包率比较大,大于第二阈值,则将其确定为拥塞丢包,计入丢包事件频率计算模块进行丢包事件频率计算,从而调整发送速率;若丢包率比较小,则直接将其确定为随机链路丢包,丢弃丢包事件,并按照随机链路丢包进行后续处理。

调整模块102,用于基于所述丢包类型,调整当前网络流媒体数据的传输方式。

可选的,所述调整模块102具体用于:

若所述丢包类型为拥塞丢包,则调整当前网络流媒体数据的发送速率;

若所述丢包类型为随机链路丢包,则采用冗余编码策略对当前网络流媒体数据进行编码。

本发明实施例中,若丢包类型为拥塞丢包,则根据TFRC协议的如下计算公式调整发送设备的发送速率。

<mrow> <mi>T</mi> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>R</mi> <mi>T</mi> <mi>T</mi> <mo>&times;</mo> <msqrt> <mfrac> <mrow> <mn>2</mn> <mi>p</mi> </mrow> <mn>3</mn> </mfrac> </msqrt> <mo>+</mo> <mi>R</mi> <mi>T</mi> <mi>O</mi> <mi>min</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>,</mo> <mn>3</mn> <msqrt> <mfrac> <mrow> <mn>3</mn> <mi>p</mi> </mrow> <mn>8</mn> </mfrac> </msqrt> <mo>)</mo> </mrow> <mi>p</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mn>32</mn> <msup> <mi>p</mi> <mn>2</mn> </msup> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

若丢包类型为随机链路丢包,则采用冗余编码策略对当前网络流媒体数据进行编码,从而减小因链路影响带来的丢包。

本发明实施例中,获取用于表示当前网络状态的网络参数,根据网络参数确定当前网络的丢包类型,该丢包类型包括拥塞丢包或者随机链路丢包,基于该丢包类型,调整当前网络流媒体数据的传输方式,通过这种方式,可针对不同的丢包类型进行不同的流媒体数据传输方式调整,保证较高的数据吞吐率,提高流媒体数据的传输质量。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

以上对本发明实施例公开的一种客户端播放控制方法及客户端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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