CN109729437B - 流媒体自适应传输方法、终端和系统 - Google Patents
流媒体自适应传输方法、终端和系统 Download PDFInfo
- Publication number
- CN109729437B CN109729437B CN201711031851.2A CN201711031851A CN109729437B CN 109729437 B CN109729437 B CN 109729437B CN 201711031851 A CN201711031851 A CN 201711031851A CN 109729437 B CN109729437 B CN 109729437B
- Authority
- CN
- China
- Prior art keywords
- rate
- streaming media
- data packet
- media data
- qoe
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本公开提供了一种流媒体自适应传输方法、终端和系统。该方法包括:接收流媒体数据包,根据流媒体数据包预测网络状况,获得网络传输预测速率;根据流媒体数据包监测流媒体的业务QoE,并根据业务QoE获得预测的QoE可接受传输速率;以及获取播放器缓冲余量和终端CPU使用率,根据网络传输预测速率、QoE可接受传输速率、播放器缓冲余量和终端CPU使用率获得建议传输速率,并将该建议传输速率发送至媒体服务器;其中,媒体服务器基于建议传输速率实时改变编码器的编码码率,以使得流媒体数据包的输出速率不超过该建议传输速率。
Description
技术领域
本公开涉及互联网技术领域,特别涉及一种流媒体自适应传输方法、终端和系统。
背景技术
随着FTTH(Fiber To The Home,光纤直接到家庭)、FTTB(Fiber to TheBuilding,光纤到楼)光纤网络和4G+(第四代移动通信技术的优化技术)无线网络的高速发展和普及,以直播、点播为代表的HD(High Definition,高清)/UHD(Ultra HighDefinition,超高清)视频流媒体业务占据了超过一半的网络流量。HD/UHD视频流媒体具有大流量、持续性的网络特征,对网络波动极具敏感性,网络丢包时延、带宽抖动等都会对流媒体业务质量造成不同程度的损伤。因此,业内出现了诸如DASH(Dynamic AdaptiveStreaming over HTTP,基于超文本传输协议的动态自适应流媒体)、HLS(HTTP LiveStreaming,超文本传输协议实时流媒体)等流媒体自适应传输方案,用来抵抗网络波动造成的损伤。
上述流媒体自适应传输方案的目的是为了让媒体流尽可能地自适应于网络变化,是以网络为驱动的自适应传输方案。然而,当网络带宽持续短时波动时,上述方案会不断上下调整视频编码码率,导致视频质量发生短时频繁上下波动,这种视频画面清晰、模糊频繁切换的现象会严重影响到用户的业务感知。因此,这类方案并不能真正提升流媒体业务的业务质量,甚至可能损伤到用户对流媒体业务的主观感知QoE(Quality of Experience,体验质量)。
发明内容
本公开的发明人发现上述现有技术中存在问题,并因此针对所述问题中的至少一个问题提出了一种新的技术方案。
根据本公开实施例的一个方面,提供了一种流媒体自适应传输方法,包括:接收流媒体数据包,根据所述流媒体数据包预测网络状况,获得网络传输预测速率;根据所述流媒体数据包监测所述流媒体的业务体验质量QoE,并根据所述业务QoE获得预测的QoE可接受传输速率;以及获取播放器缓冲余量和终端CPU使用率,根据所述网络传输预测速率、所述QoE可接受传输速率、所述播放器缓冲余量和所述终端CPU使用率获得建议传输速率,并将所述建议传输速率发送至媒体服务器;其中,所述媒体服务器基于所述建议传输速率实时改变编码器的编码码率,以使得所述流媒体数据包的输出速率不超过所述建议传输速率。
可选地,根据所述网络传输预测速率、所述QoE可接受传输速率、所述播放器缓冲余量和所述终端CPU使用率获得建议传输速率的步骤包括:在所述网络传输预测速率大于或等于所述QoE可接受传输速率的情况下,确定所述网络传输预测速率为建议传输速率;在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量大于或等于缓冲余量阈值,并且所述终端CPU使用率小于或等于CPU使用率阈值,则确定所述QoE可接受传输速率为建议传输速率;在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量小于所述缓冲余量阈值,或者所述终端CPU使用率大于所述CPU使用率阈值,则确定所述网络传输预测速率为建议传输速率。
可选地,根据所述流媒体数据包预测网络状况,获得网络传输预测速率的步骤包括:根据所述流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态,所述变化状态包括:增加状态、减小状态和保持状态;统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算所述第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti),其中i为正整数;以及基于第ti时刻的网络传输预测速率所处的变化状态、所述平均网络传输速率R(ti)和第ti-1时刻的网络传输预测速率Bnet(ti-1)计算第ti时刻的网络传输预测速率Bnet(ti)。
可选地,计算第ti时刻的网络传输预测速率Bnet(ti)的公式为:
其中,α为增性系数,α>1,β为减性系数,0<β<1。
可选地,根据所述流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态的步骤包括:根据所述流媒体数据包的到达时间间隔和所述流媒体数据包的大小计算得到所述流媒体数据包到达时间间隔的加权值;根据相邻的流媒体数据包到达时间间隔的加权值计算得到流媒体数据包接收时延差值;根据所述流媒体数据包接收时延差值计算得到所述流媒体数据包接收时延差值的上界和下界;以及根据所述流媒体数据包接收时延差值以及所述上界和所述下界确定网络传输预测速率所处的变化状态。
可选地,根据所述流媒体数据包接收时延差值以及所述上界和所述下界确定网络传输预测速率所处的变化状态的步骤包括:在所述流媒体数据包接收时延差值大于所述上界的情况下,确定所述变化状态为减小状态;在所述流媒体数据包接收时延差值小于所述下界的情况下,确定所述变化状态为增加状态;在所述流媒体数据包接收时延差值小于或等于所述上界并且大于或等于所述下界的情况下,确定所述变化状态为保持状态。
可选地,计算所述流媒体数据包到达时间间隔的加权值的公式为:
其中,Jm为第m个流媒体数据包到达时间间隔的加权值,arrive_timem为第m个流媒体数据包的到达时间,arrive_timem-1为第m-1个流媒体数据包的到达时间,pack_sizem为第m个流媒体数据包的大小,m为正整数。
可选地,计算所述流媒体数据包接收时延差值Diffm的公式为
Diffm=|Jm-Jm-1|,
其中,Jm-1为第m-1个流媒体数据包到达时间间隔的加权值。
可选地,计算所述流媒体数据包接收时延差值的上界Diffup和下界Diffdw的公式分别为
Diffup=a1*mean(Diffm),
Diffdw=b1*mean(Diffm),
其中,mean(Diffm)为数据包接收时延差值Diffm的平均值,a1为上界系数,a1>1,b1为下界系数,0<b1<1;
其中,M为统计的数据包接收时延差值Diffm的数量,M为正整数。
可选地,根据所述流媒体数据包监测所述流媒体的业务体验质量QoE,并根据所述业务QoE获得预测的QoE可接受传输速率步骤包括:统计在第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti);对所述流媒体数据包进行解析,获取在所述第ti-1时刻至第ti时刻的时间段内所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti);根据所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)和终端可接受峰值信噪比阈值PSNRthres计算得到QoE可接受最小传输速率Bqoe_min(ti);以及根据所述平均网络传输速率R(ti)和所述QoE可接受最小传输速率Bqoe_min(ti)确定QoE可接受传输速率Bqoe(ti);其中,Bqoe(ti)=max(R(ti),Bqoe_min(ti))。
根据本公开实施例的另一个方面,提供了一种终端,包括:网络预测模块,用于接收流媒体数据包,根据所述流媒体数据包预测网络状况,获得网络传输预测速率;体验质量QoE监测模块,用于根据所述流媒体数据包监测所述流媒体的业务QoE,并根据所述业务QoE获得预测的QoE可接受传输速率;以及自适应调度模块,用于获取播放器缓冲余量和终端CPU使用率,根据所述网络传输预测速率、所述QoE可接受传输速率、所述播放器缓冲余量和所述终端CPU使用率获得建议传输速率,并将所述建议传输速率发送至媒体服务器;其中,所述媒体服务器基于所述建议传输速率实时改变编码器的编码码率,以使得所述流媒体数据包的输出速率不超过所述建议传输速率。
可选地,所述自适应调度模块用于在所述网络传输预测速率大于或等于所述QoE可接受传输速率的情况下,确定所述网络传输预测速率为建议传输速率;在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量大于或等于缓冲余量阈值,并且所述终端CPU使用率小于或等于CPU使用率阈值,则确定所述QoE可接受传输速率为建议传输速率;在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量小于所述缓冲余量阈值,或者所述终端CPU使用率大于所述CPU使用率阈值,则确定所述网络传输预测速率为建议传输速率。
可选地,所述网络预测模块用于根据所述流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态,所述变化状态包括:增加状态、减小状态和保持状态;统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算所述第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti),其中i为正整数;以及基于第ti时刻的网络传输预测速率所处的变化状态、所述平均网络传输速率R(ti)和第ti-1时刻的网络传输预测速率Bnet(ti-1)计算第ti时刻的网络传输预测速率Bnet(ti)。
可选地,所述网络预测模块计算第ti时刻的网络传输预测速率Bnet(ti)的公式为:
其中,α为增性系数,α>1,β为减性系数,0<β<1。
可选地,所述网络预测模块用于根据所述流媒体数据包的到达时间间隔和所述流媒体数据包的大小计算得到所述流媒体数据包到达时间间隔的加权值;根据相邻的流媒体数据包到达时间间隔的加权值计算得到流媒体数据包接收时延差值;根据所述流媒体数据包接收时延差值计算得到所述流媒体数据包接收时延差值的上界和下界;以及根据所述流媒体数据包接收时延差值以及所述上界和所述下界确定网络传输预测速率所处的变化状态。
可选地,所述网络预测模块用于在所述流媒体数据包接收时延差值大于所述上界的情况下,确定所述变化状态为减小状态;在所述流媒体数据包接收时延差值小于所述下界的情况下,确定所述变化状态为增加状态;在所述流媒体数据包接收时延差值小于或等于所述上界并且大于或等于所述下界的情况下,确定所述变化状态为保持状态。
可选地,所述网络预测模块计算所述流媒体数据包到达时间间隔的加权值的公式为:
其中,Jm为第m个流媒体数据包到达时间间隔的加权值,arrive_timem为第m个流媒体数据包的到达时间,arrive_timem-1为第m-1个流媒体数据包的到达时间,pack_sizem为第m个流媒体数据包的大小,m为正整数。
可选地,所述网络预测模块计算所述流媒体数据包接收时延差值Diffm的公式为
Diffm=|Jm-Jm-1|,
其中,Jm-1为第m-1个流媒体数据包到达时间间隔的加权值。
可选地,所述网络预测模块计算所述流媒体数据包接收时延差值的上界Diffup和下界Diffdw的公式分别为
Diffup=a1*mean(Diffm),
Diffdw=b1*mean(Diffm),
其中,mean(Diffm)为数据包接收时延差值Diffm的平均值,a1为上界系数,a1>1,b1为下界系数,0<b1<1;
其中,M为统计的数据包接收时延差值Diffm的数量,M为正整数。
可选地,所述QoE监测模块用于统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算在第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti);对所述流媒体数据包进行解析,获取在所述第ti-1时刻至第ti时刻的时间段内所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti);根据所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)和终端可接受峰值信噪比阈值PSNRthres计算得到QoE可接受最小传输速率Bqoe_min(ti);以及根据所述平均网络传输速率R(ti)和所述QoE可接受最小传输速率Bqoe_min(ti)确定QoE可接受传输速率Bqoe(ti);其中,Bqoe(ti)=max(R(ti),Bqoe_min(ti))。
根据本公开实施例的另一个方面,提供了一种流媒体自适应传输系统,包括:如前所述的终端以及媒体服务器;所述媒体服务器用于基于所述终端发送的建议传输速率,实时改变编码器的编码码率,以使得所述流媒体数据包的输出速率不超过所述建议传输速率。
根据本公开实施例的另一个方面,提供了一种终端,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至11任意一项所述的方法。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如前所述的方法的步骤。
本公开的上述实施例实现了一种以业务QoE为驱动的流媒体自适应传输方案,实时监控流媒体业务的QoE感知,综合网络状况,自适应调整流媒体的传输速率,从而提升用户的业务感知质量。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出根据本公开一些实施例的流媒体自适应传输方法的流程图。
图2是示出根据本公开另一些实施例的流媒体自适应传输方法的流程图。
图3是示意性地示出根据本公开一些实施例的终端的结构图。
图4是示意性地示出根据本公开一些实施例的流媒体自适应传输系统的结构图。
图5是示意性地示出本公开实施例的方法与现有技术的方法的测试结果对比图。
图6是示意性地示出根据本公开另一些实施例的终端的结构图。
图7是示意性地示出根据本公开另一些实施例的终端的结构图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本公开一些实施例的流媒体自适应传输方法的流程图。
在步骤S102,接收流媒体数据包,根据流媒体数据包预测网络状况,获得网络传输预测速率。例如,终端在接收流媒体数据包的过程中,以时间间隔T,周期性地预测网络状况,输出网络传输预测速率(也可以称为预测网络带宽)Bnet(ti)。
在一些实施例中,该步骤S102可以包括:根据流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态,该变化状态可以包括:增加状态(Increase)、减小状态(Decrease)和保持状态(Hold)。在该实施例中,可以将第ti时刻的网络传输预测速率所处的变化状态作为当前网络传输预测速率所处的变化状态。可以利用接收数据包的单路时延来预测当前网络传输预测速率的变化。
可选地,根据流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态的步骤可以包括:根据流媒体数据包的到达时间间隔和流媒体数据包的大小计算得到流媒体数据包到达时间间隔的加权值。例如,计算流媒体数据包到达时间间隔的加权值的公式可以为:
其中,Jm为第m个流媒体数据包到达时间间隔的加权值,arrive_timem为第m个流媒体数据包的到达时间,arrive_timem-1为第m-1个流媒体数据包的到达时间,pack_sizem为第m个流媒体数据包的大小,m为正整数。
可选地,根据流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态的步骤还可以包括:根据相邻的流媒体数据包到达时间间隔的加权值计算得到流媒体数据包接收时延差值(也可以称为加权数据包到达时间间隔差值)。例如,计算流媒体数据包接收时延差值Diffm的公式可以为
Diffm=|Jm-Jm-1|, (2)
其中,Jm-1为第m-1个流媒体数据包到达时间间隔的加权值。
可选地,根据流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态的步骤还可以包括:根据流媒体数据包接收时延差值计算得到流媒体数据包接收时延差值的上界和下界。例如计算流媒体数据包接收时延差值的上界Diffup和流媒体数据包接收时延差值的下界Diffdw的公式分别为
Diffup=a1*mean(Diffm), (3)
Diffdw=b1*mean(Diffm), (4)
其中,mean(Diffm)为数据包接收时延差值Diffm的平均值,a1为上界系数,a1>1,b1为下界系数,0<b1<1。a1和b1取值可以取决于应用者对网络速率预测的激进程度,例如a1=1.2,b1=0.8。
其中,M为统计的数据包接收时延差值Diffm的数量,M为正整数。
可选地,根据流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态的步骤还可以包括:根据流媒体数据包接收时延差值以及上界和下界确定网络传输预测速率所处的变化状态。
例如,在流媒体数据包接收时延差值Diffm大于上界Diffup(即Diffm>Diffup)的情况下,确定变化状态为减小状态;在流媒体数据包接收时延差值Diffm小于下界Diffdw(即Diffm<Diffdw)的情况下,确定变化状态为增加状态;在流媒体数据包接收时延差值小于或等于上界并且大于或等于下界(即Diffdw≤Diffm≤Diffup)的情况下,确定变化状态为保持状态。
在上述实施例中,在Diffm>Diffup的情况下,说明网络传输速率抖动比较严重,则需要减小网络传输速率,因此确定网络传输预测速率处于减小状态;在Diffm<Diffdw的情况下,说明网络传输速率非常稳定,在这样的情况下可以增加网络传输速率,因此确定网络传输预测速率处于增加状态;在Diffdw≤Diffm≤Diffup的情况下,说明网络传输速率处在一般稳定状态,既不需要减小网络传输速率也不需要增加网络传输速率,因此确定网络传输预测速率处于保持状态。
在一些实施例中,该步骤S102还可以包括:统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算该第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti),其中i为正整数。
其中,F(ti)为在第ti-1时刻至第ti时刻的时间段内所传输的媒体流数据包流量的总量。在该实施例中,可以将平均网络传输速率R(ti)作为上一个时间段ΔT(ΔT=ti-ti-1)内的平均网络传输速率。
在一些实施例中,该步骤S102还可以包括:基于第ti时刻的网络传输预测速率所处的变化状态、平均网络传输速率R(ti)和第ti-1时刻的网络传输速率Bnet(ti-1)计算第ti时刻的网络传输预测速率Bnet(ti)。这里,相对于Bnet(ti),Bnet(ti-1)是上一时刻(即第ti-1时刻)的已知的网络传输预测速率。
例如,计算第ti时刻的网络传输预测速率Bnet(ti)的公式可以为:
其中,α为增性系数,β为减性系数。这里,α和β这两个参数的取值取决于应用者对网络传输速率预测的激进程度。α作为增性系数,其取值范围例如可以为α>1;β作为减性系数,其取值范围例如可以为0<β<1。这两个参数取值越大,表示对网络预测越激进,反之越保守。实际应用中,α和β这两个参数需要根据实际需求进行大量训练调整来确定具体数值。不同的应用场景下,训练结果取值不同。例如,α=1.25,β=0.75。
在上述公式(7)中,max(Bnet(ti-1),(ti))表示取Bnet(ti-1)和R(ti)这两者中的较大者。需要说明的是,当i=1时,Bnet(t1)=max(Bnet(t0),(t1)),其中,Bnet(t0)是一个可已知的初始值。
在步骤S104,根据流媒体数据包监测流媒体的业务QoE,并根据该业务QoE获得预测的QoE可接受传输速率。例如,可以以时间间隔T,周期性地监测媒体流的业务质量QoE,并输出预测的QoE可接受传输速率。
可选地,该步骤S104可以包括:统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算在第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti)。在该实施例中,可以每隔时间ΔT(ΔT=ti-ti-1),统计该时间段内的平均网络传输速率R(ti)。这里计算平均网络传输速率R(ti)与前来描述相同或相似,这里不再赘述。
可选地,该步骤S104还可以包括:对流媒体数据包进行解析,获取在第ti-1时刻至第ti时刻的时间段内流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)。例如,媒体流的视频分辨率为w(ti)*h(ti),即为视频编码中每帧画面的尺寸。在该实施例中,可以通过拆包获取流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)。
可选地,该步骤S104还可以包括:根据流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)和终端可接受峰值信噪比阈值PSNRthres计算得到QoE可接受最小传输速率Bqoe_min(ti)。例如,可以通过以下公式计算QoE可接受最小传输速率Bqoe_min(ti):
其中,μ、θ和λ为经验系数。这三个经验系数μ、θ和λ可以通过对大量的测试视频进行训练得到。例如,针对4K视频训练后得到的系数分别为:μ=12,θ=12,λ=95.92。
在一些实施例中,用户终端可接受峰值信噪比PSNR(Peak Signal to NoiseRatio)为
即,PSNR大于或等于PSNRthres,在公示(9)中取等号即为公式(8),从而可以通过公式(8)来得到QoE可接受最小传输速率Bqoe_min(ti)。例如,PSNRthres可以设置为37,则可以计算获得为保证PSNR不小于37的QoE可接受最小传输速率Bqoe_min(ti)。
可选地,该步骤S104还可以包括:根据平均网络传输速率R(ti)和QoE可接受最小传输速率Bqoe_min(ti)确定QoE可接受传输速率Bqoe(ti)。
这里,Bqoe(ti)=max(R(ti),Bqoe_min(ti)), (10)该公式(10)表示取R(ti)和Bqoe_min(ti)这二者中的较大者作为Bqoe(ti)。
需要说明的是,QoE可接受传输速率Bqoe(ti)是一种为了满足流媒体的业务QoE而预测的终端能够接受的传输速率。该Bqoe(ti)是通过上述步骤S104来获得的可配置的传输速率。
在步骤S106,获取播放器缓冲余量和终端CPU(Central Processing Unit,中央处理单元)使用率,根据网络传输预测速率、QoE可接受传输速率、播放器缓冲余量和终端CPU使用率获得建议传输速率,并将该建议传输速率发送至媒体服务器。其中,该媒体服务器基于该建议传输速率,实时改变编码器的编码码率,以使得流媒体数据包的输出速率不超过该建议传输速率。
例如,可以通过读取播放器缓冲长度来获得播放器缓冲余量,可以通过获取终端参数来获得终端CPU使用率。例如,可以以时间间隔T,周期性地获取终端参数,终端参数可以包括播放器缓冲余量和终端CPU使用率,基于获得的Bnet(ti)和Bqoe(ti),根据流媒体业务类型(直播或点播),结合播放器缓冲余量和终端CPU使用率,输出最终建议传输速率Badv(ti),并发送至媒体服务器。
在一些实施例中,可以每隔时间ΔT分别获得网络传输预测速率Bnet(ti)和QoE可接受传输速率Bqoe(ti),并且可以结合终端性能、业务类型(直播或点播)等,根据如下规则输出最终的建议传输速率Badv(ti):
在上述实施例中,即当网络传输预测速率大于或等于QoE可接受传输速率时,输出Bnet(ti)作为最终的建议传输速率;若网络传输预测速率小于QoE可接受传输速率,则判断终端性能和播放器缓冲余量(buffer),若播放器缓冲余量buff(ti)超过缓冲余量阈值buffthres(例如,直播类型业务的缓冲阈值较小,点播类型业务的缓冲阈值较大)且终端CPU使用率cpu(ti)小于或等于CPU使用率阈值cputhres时,则将Bqoe(ti)作为最终的建议传输速率输出,否则将Bnet(ti)作为建议传输速率。
因此,在一些实施例中,该步骤S106可以包括:
在网络传输预测速率大于或等于QoE可接受传输速率的情况下,确定网络传输预测速率为建议传输速率;
在网络传输预测速率小于QoE可接受传输速率的情况下,若播放器缓冲余量大于或等于缓冲余量阈值,并且终端CPU使用率小于或等于CPU使用率阈值,则确定QoE可接受传输速率为建议传输速率;
在网络传输预测速率小于QoE可接受传输速率的情况下,若播放器缓冲余量小于缓冲余量阈值,或者终端CPU使用率大于CPU使用率阈值,则确定网络传输预测速率为建议传输速率。
上述调度算法的思想是,在网络传输预测速率大于QoE可接受传输速率的情况下,以网络传输预测速率作为最终建议传输速率输出给媒体服务器,提升下一时间段的业务质量。在网络传输预测速率小于QoE可接受传输速率额情况下,说明当前网络不足以维持当前的业务质量,此时可以判断播放器的缓冲余量是否大于或等于缓冲余量阈值(直播业务的缓冲余量阈值要小于点播业务的缓冲余量阈值)以及终端CPU使用率是否小于或等于CPU使用率阈值,若缓冲余量大于或等于缓冲余量阈值,且终端CPU使用率小于或等于CPU使用率阈值,则以QoE可接受传输速率作为最终的建议传输速率输出给媒体服务器,这种策略是当网络状况变差时,在保持流畅播放(buff(ti)≥buffthres&&cpu(ti)≤cputhres)的前提下,以牺牲一定缓冲余量和终端CPU使用率为代价,保障流媒体业务质量维持在用户可接受的级别。若播放器缓冲余量小于缓冲余量阈值,或者终端CPU使用率大于CPU使用率阈值,则只能通过降低传输速率来保障视频流畅播放。
至此,提供了根据本公开一些实施例的流媒体自适应传输方法。在该方法中,接收流媒体数据包,根据流媒体数据包预测网络状况,获得网络传输预测速率;根据流媒体数据包监测流媒体的业务体验质量QoE,并根据业务QoE获得预测的QoE可接受传输速率;以及获取播放器缓冲余量和终端CPU使用率,根据网络传输预测速率、QoE可接受传输速率、播放器缓冲余量和终端CPU使用率获得建议传输速率,并将该建议传输速率发送至媒体服务器;其中,该媒体服务器基于该建议传输速率,实时改变编码器的编码码率,以使得流媒体数据包的输出速率不超过该建议传输速率。本公开实施例的方法实现了一种以业务QoE为驱动的流媒体自适应传输方案,实时监控流媒体业务的QoE感知,综合网络状况,自适应调整流媒体的传输速率,从而提升用户的业务感知质量。
图2是示出根据本公开另一些实施例的流媒体自适应传输方法的流程图。
在步骤S202,终端接收流媒体数据包,根据流媒体数据包预测网络状况,获得网络传输预测速率。
在步骤S204,终端根据流媒体数据包监测流媒体的业务QoE,并根据该业务QoE获得预测的QoE可接受传输速率。
在步骤S206,终端获取播放器缓冲余量和终端CPU使用率,根据网络传输预测速率、QoE可接受传输速率、播放器缓冲余量和终端CPU使用率获得建议传输速率,并将该建议传输速率发送至媒体服务器。
在步骤S208,媒体服务器基于终端发送的建议传输速率,实时改变编码器的编码码率,以使得流媒体数据包的输出速率不超过该建议传输速率。即,媒体服务器根据接收到的建议传输速率,对视频源进行实时编码,确保流媒体输出速率不超过该建议传输速率。
例如,媒体服务器可以采用已有的编码技术(例如H264、HEVC(High EfficiencyVideo Coding,高效率视频编码)、VP8或VP9等)来实现动态编码,即以特定的编码码率对流媒体进行实时编码,并在编码过程中实时改变编码码率。
在上述实施例中,提供了根据本公开另一些实施例的基于QoE的流媒体自适应传输方法,该方法是一种自适应闭环方法。该方法以业务感知质量为驱动,通过网络预测模型、QoE监测模型,实时预测网络状况、监控流媒体业务感知质量,通过自适应调度模型,综合考虑网络质量、业务感知质量、终端性能、播放器缓冲等因素,实时调整流媒体编码码率和传输速率,达到提升用户业务感知的目的。
图3是示意性地示出根据本公开一些实施例的终端的结构图。该终端30可以实现流媒体的自适应传输。如图3所示,该终端30可以包括:网络预测模块302、QoE监测模块304和自适应调度模块306。
该网络预测模块302可以用于接收流媒体数据包,根据该流媒体数据包预测网络状况,获得网络传输预测速率。
该QoE监测模块304可以用于根据流媒体数据包监测流媒体的业务QoE,并根据该业务QoE获得预测的QoE可接受传输速率。
需要说明的是,该网络预测模块302和该QoE监测模块304可以分别从媒体服务器接收同一个流媒体数据包;也可以采用一个模块接收到流媒体数据包,将该流媒体数据包传输给另一个模块的方式,例如,网络预测模块302从媒体服务器接收到流媒体数据包,然后可以将该流媒体数据包传输给QoE监测模块304。因此,本公开的范围并不仅限于此。
该自适应调度模块306可以用于获取播放器缓冲余量和终端CPU使用率,根据网络传输预测速率、QoE可接受传输速率、播放器缓冲余量和终端CPU使用率获得建议传输速率,并将该建议传输速率发送至媒体服务器。其中,媒体服务器基于该建议传输速率实时改变编码器的编码码率,以使得流媒体数据包的输出速率不超过该建议传输速率。
在上述实施例的终端中,该终端包括网络预测模块、QoE监测模块和自适应调度模块。其中,网络预测模块对网络状况进行实时预测;QoE监测模块实时监测终端流媒体业务的业务感知质量;自适应调度模块基于上述两个模块输出的网络预测结果和业务QoE结果,并综合考虑播放器缓冲余量、终端CPU使用率,输出最终的建议传输速率并反馈给服务器端;服务器端根据收到的建议传输速率,实时改变编码器的编码码率,以使得流媒体数据包的输出速率不超过该建议传输速率。本公开上述实施例的终端能够尽可能地保证流媒体业务的业务感知质量,提升用户的主观感知。
在一些实施例中,自适应调度模块306可以用于在网络传输预测速率大于或等于QoE可接受传输速率的情况下,确定网络传输预测速率为建议传输速率;在网络传输预测速率小于QoE可接受传输速率的情况下,若播放器缓冲余量大于或等于缓冲余量阈值,并且终端CPU使用率小于或等于CPU使用率阈值,则确定QoE可接受传输速率为建议传输速率;在网络传输预测速率小于QoE可接受传输速率的情况下,若播放器缓冲余量小于缓冲余量阈值,或者终端CPU使用率大于CPU使用率阈值,则确定网络传输预测速率为建议传输速率。
在一些实施例中,网络预测模块302可以用于根据流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态,该变化状态包括:增加状态、减小状态和保持状态;统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti),其中i为正整数;以及基于第ti时刻的网络传输预测速率所处的变化状态、平均网络传输速率R(ti)和第ti-1时刻的网络传输预测速率Bnet(ti-1)计算第ti时刻的网络传输预测速率Bnet(ti)。
在一些实施例中,网络预测模块302计算第ti时刻的网络传输预测速率Bnet(ti)的公式为:
其中,α为增性系数,α>1,β为减性系数,0<β<1。
在一些实施例中,网络预测模块302可以用于根据流媒体数据包的到达时间间隔和流媒体数据包的大小计算得到流媒体数据包到达时间间隔的加权值;根据相邻的流媒体数据包到达时间间隔的加权值计算得到流媒体数据包接收时延差值;根据流媒体数据包接收时延差值计算得到流媒体数据包接收时延差值的上界和下界;以及根据流媒体数据包接收时延差值以及该上界和下界确定网络传输预测速率所处的变化状态。
在一些实施例中,网络预测模块302可以用于在流媒体数据包接收时延差值大于上界的情况下,确定变化状态为减小状态;在流媒体数据包接收时延差值小于下界的情况下,确定变化状态为增加状态;在流媒体数据包接收时延差值小于或等于上界并且大于或等于下界的情况下,确定变化状态为保持状态。
在一些实施例中,网络预测模块302计算流媒体数据包到达时间间隔的加权值的公式可以为:
其中,Jm为第m个流媒体数据包到达时间间隔的加权值,arrive_timem为第m个流媒体数据包的到达时间,arrive_timem-1为第m-1个流媒体数据包的到达时间,pack_sizem为第m个流媒体数据包的大小,m为正整数。
在一些实施例中,网络预测模块302计算流媒体数据包接收时延差值Diffm的公式可以为
Diffm=|Jm-Jm-1|,
其中,Jm-1为第m-1个流媒体数据包到达时间间隔的加权值。
在一些实施例中,网络预测模块302计算流媒体数据包接收时延差值的上界Diffup和下界Diffdw的公式分别可以为
Diffup=a1*mean(Diffm),
Diffdw=b1*mean(Diffm),
其中,mean(Diffm)为数据包接收时延差值Diffm的平均值,a1为上界系数,a1>1,b1为下界系数,0<b1<1。
其中,M为统计的数据包接收时延差值Diffm的数量,M为正整数。
在一些实施例中,QoE监测模块304可以用于统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算在第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti);对流媒体数据包进行解析,获取在第ti-1时刻至第ti时刻的时间段内流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti);根据流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)和终端可接受峰值信噪比阈值PSNRthres计算得到QoE可接受最小传输速率Bqoe_min(ti);以及根据平均网络传输速率R(ti)和QoE可接受最小传输速率Bqoe_min(ti)确定QoE可接受传输速率Bqoe(ti)。其中,Bqoe(ti)=max(R(ti),Bqoe_min(ti))。
在一些实施例中,QoE监测模块304可以通过以下公式计算QoE可接受最小传输速率Bqoe_min(ti):
其中,μ、θ和λ为经验系数。
在本公开实施例的终端中,网络预测模块对网络状况进行实时预测;QoE监测模块实时监测终端流媒体业务的业务感知质量;自适应调度模块基于上述两个模块输出的网络预测结果和业务QoE结果,并综合考虑缓存、终端实时性能,输出最终的建议传输速率并反馈给服务器端;服务器端根据收到的预测传输速率,实时调整视频的编码码率。从而能够有效保证视频流媒体业务的业务感知质量,提升用户的主观感知。并且考虑到直播、点播两类流媒体业务的业务特征差异性,自适应调度模块可以根据各自的业务特征,设定不同的缓存门限阈值,提升业务感知质量。
图4是示意性地示出根据本公开一些实施例的流媒体自适应传输系统的结构图。如图4所示,该系统可以包括:终端30和媒体服务器32。该媒体服务器32可以用于基于该终端30发送的建议传输速率Badv(ti),实时改变编码器324的编码码率,以使得流媒体数据包的输出速率不超过该建议传输速率。
如图4所示,该终端30可以包括网络预测模块302、QoE监测模块304和自适应调度模块306,前面已经详细描述,这里不再赘述。自适应调度模块306获取终端信息310,该终端信息310可以包括播放器缓冲余量和终端CPU使用率等。
自适应调度模块306将建议传输速率Badv(ti)发送到媒体服务器32。该媒体服务器32的速率接收模块(例如带宽自适应速率接收模块)322接收到该建议传输速率Badv(ti),并且将该建议传输速率Badv(ti)传输到编码器(例如媒体流自适应编码器)324。该编码器324实时改变编码码率,使得流媒体数据包的输出速率不超过(即小于或等于)该建议传输速率,从而向终端30发送流媒体数据包。
在该实施例中,终端的网络预测模块和QoE监测模块实时监听来自媒体服务器的流媒体数据包。网络预测模块预测出当前的网络状况,并发送网络传输预测速率给自适应调度模块;QoE监测模块预测出QoE可接受传输速率,并发送给自适应调度模块;自适应调度模块综合获得的网络传输预测速率和QoE可接受传输速率,以及从终端获取的CPU使用率和播放器缓冲余量,输出最终的建议传输速率。媒体服务器收到终端反馈的建议传输速率后,以该速率进行流媒体自适应编码,输出媒体流数据包给终端,从而实现了流媒体自适应传输的目的。
图5是示意性地示出本公开实施例的方法与现有技术的方法的测试结果对比图。其中,线A表示网络带宽(单位:kbps),线B表示现有技术方法的传输速率(单位:kbps),线C表示本公开实施例方法的传输速率(单位:kbps),线D表示现有技术的缓冲余量(单位:s),线E表示本公开实施例的缓冲余量(单位:s),线F表示缓冲余量阈值(单位:s),例如,该缓冲余量阈值=16s。
下面以一个具体的实施例描述图5的获得过程,并结合图5比较本公开实施例的方法和现有技术的方法。
参照图4,终端(例如移动终端)30通过WIFI路由器连接至媒体服务器32。通过网络模拟器可以对WIFI路由器进行带宽波动仿真,带宽波动情况见图5,主要包括带宽稳定不变、带宽短时持续上下小幅度波动、带宽骤降三种情况。
终端30首先采用本公开实施例的流媒体自适应传输方法,从媒体服务器32点播视频V(分辨率480P,帧率30fps,时长2分钟),同时网络模拟器按照图5所示的带宽图样对网络带宽进行调整。点播过程中收集流媒体实时传输速率、播放器缓存Buffer、接收到的视频流数据。
终端30接着采用现有技术的HLS传输方式,从媒体服务器32点播视频V(分辨率480P,帧率30fps,时长2分钟),同时网络模拟器按照图5所示的带宽图样对网络带宽进行调整。点播过程中收集流媒体实时传输速率、播放器缓存Buffer、接收到的视频流数据。
根据两次点播视频收集到的数据以及实际带宽的变化图样,得到图5。从图5可以看出:1)当带宽保持稳定时:本公开实施例的方法和现有技术都能够维持流媒体速率不变,并在较高的水准;2)当网络带宽剧烈波动时:现有技术的流媒体速率跟随带宽波动,视频质量频繁波动;而本公开实施例的方法在播放器Buffer>16s的前提下,维持原本速率,保障视频质量不下降;3)当网络带宽骤降时:现有技术传输速率跟随骤降,视频质量立即下降;本公开实施例的方法维持原本传输速率,维持视频质量不变,直到Buffer<16s时,降低传输速率,确保流畅播放(牺牲清晰度保障流畅度)。
将两次测试接收到的视频流和媒体服务器上的原始视频流进行计算,得到分别在本公开实施例的方法和现有技术方法下的流媒体业务的PSNR值:本公开实施例的方法的流媒体业务PSNR=36.7dB,现有技术的流媒体业务PSNR=35.1dB。可见在本实施例中,本公开实施例的方法下的平均流媒体业务质量要明显优于采用现有技术方法的流媒体业务。
与现有流媒体自适应传输方法相比,本公开实施例的流媒体自适应方法和系统的主要优势包括以下方面:
(I)本公开实施例的方法从业务感知质量出发对流媒体进行自适应传输。本公开实施例提出的QoE监测模块,能够实时监测流媒体业务质量,并预测出保障业务质量的传输速率。相比于以网络为驱动的自适应传输方法,本公开实施例的方法能够进一步提升流媒体业务的QoE。
(II)本公开实施例提出的自适应调度模块结合网络预测模块、QoE监测模块对传输速率进行自适应调度:i)一方面能够确保在网络质量变优时,及时提升传输速率,提升流媒体质量。ii)另一方面能够在网络变差时,并不立即降低传输速率,而是综合考虑网络带宽、当前流媒体业务质量、缓冲余量以及终端性能等多方面因素,在保持流畅播放的前提下,尽可能维持较高的传输速率,保证业务质量维持在用户满意级别。iii)本公开实施例的方法能够有效避免在现有技术下,由于带宽剧烈波动以及骤降情况下导致的用户体验的损伤。相比于现有技术,本公开实施例的方法能够尽可能地确保流媒体业务感知质量维持在较高的水平。
(III)本公开实施例方法实施部署简单,主要策略均是在终端侧完成,基本不需要对现有自适应流媒体服务器进行任何修改。
图6是示意性地示出根据本公开另一些实施例的终端的结构图。该终端包括存储器610和处理器620。其中:
存储器610可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图1所对应实施例中的指令。
处理器620耦接至存储器610,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器620用于执行存储器中存储的指令,从而实现基于业务QoE的流媒体自适应传输的目的。
在一个实施例中,还可以如图7所示,该终端700包括存储器710和处理器720。处理器720通过BUS总线730耦合至存储器710。该终端700还可以通过存储接口740连接至外部存储装置750以便调用外部数据,还可以通过网络接口760连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,从而实现基于业务QoE的流媒体自适应传输的目的。
在另一个实施例中,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1和/或图2所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (21)
1.一种流媒体自适应传输方法,包括:
接收流媒体数据包,根据所述流媒体数据包预测网络状况,获得网络传输预测速率;
根据所述流媒体数据包监测所述流媒体的业务体验质量QoE,并根据所述业务QoE获得预测的QoE可接受传输速率;以及
获取播放器缓冲余量和终端CPU使用率,根据所述网络传输预测速率、所述QoE可接受传输速率、所述播放器缓冲余量和所述终端CPU使用率获得建议传输速率,并将所述建议传输速率发送至媒体服务器;
其中,所述媒体服务器基于所述建议传输速率实时改变编码器的编码码率,以使得所述流媒体数据包的输出速率不超过所述建议传输速率;
根据所述流媒体数据包预测网络状况,获得网络传输预测速率的步骤包括:根据所述流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态,所述变化状态包括:增加状态、减小状态和保持状态;统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算所述第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti),其中i为正整数;以及基于第ti时刻的网络传输预测速率所处的变化状态、所述平均网络传输速率R(ti)和第ti-1时刻的网络传输预测速率Bnet(ti-1)计算第ti时刻的网络传输预测速率Bnet(ti);
根据所述流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态的步骤包括:根据所述流媒体数据包的到达时间间隔和所述流媒体数据包的大小计算得到所述流媒体数据包到达时间间隔的加权值;根据相邻的流媒体数据包到达时间间隔的加权值计算得到流媒体数据包接收时延差值;根据所述流媒体数据包接收时延差值计算得到所述流媒体数据包接收时延差值的上界和下界;以及根据所述流媒体数据包接收时延差值以及所述上界和所述下界确定网络传输预测速率所处的变化状态。
2.根据权利要求1所述的方法,其中,根据所述网络传输预测速率、所述QoE可接受传输速率、所述播放器缓冲余量和所述终端CPU使用率获得建议传输速率的步骤包括:
在所述网络传输预测速率大于或等于所述QoE可接受传输速率的情况下,确定所述网络传输预测速率为建议传输速率;
在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量大于或等于缓冲余量阈值,并且所述终端CPU使用率小于或等于CPU使用率阈值,则确定所述QoE可接受传输速率为建议传输速率;
在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量小于所述缓冲余量阈值,或者所述终端CPU使用率大于所述CPU使用率阈值,则确定所述网络传输预测速率为建议传输速率。
4.根据权利要求1所述的方法,其中,根据所述流媒体数据包接收时延差值以及所述上界和所述下界确定网络传输预测速率所处的变化状态的步骤包括:
在所述流媒体数据包接收时延差值大于所述上界的情况下,确定所述变化状态为减小状态;
在所述流媒体数据包接收时延差值小于所述下界的情况下,确定所述变化状态为增加状态;
在所述流媒体数据包接收时延差值小于或等于所述上界并且大于或等于所述下界的情况下,确定所述变化状态为保持状态。
6.根据权利要求5所述的方法,其中,计算所述流媒体数据包接收时延差值Diffm的公式为
Diffm=|Jm-Jm-1|,
其中,Jm-1为第m-1个流媒体数据包到达时间间隔的加权值。
8.根据权利要求1所述的方法,其中,根据所述流媒体数据包监测所述流媒体的业务体验质量QoE,并根据所述业务QoE获得预测的QoE可接受传输速率步骤包括:
统计在第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti);
对所述流媒体数据包进行解析,获取在所述第ti-1时刻至第ti时刻的时间段内所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti);
根据所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)和终端可接受峰值信噪比阈值PSNRthres计算得到QoE可接受最小传输速率Bqoe_min(ti);以及
根据所述平均网络传输速率R(ti)和所述QoE可接受最小传输速率Bqoe_min(ti)确定QoE可接受传输速率Bqoe(ti);
其中,Bqoe(ti)=max(R(ti),Bqoe_min(ti))。
10.一种终端,包括:
网络预测模块,用于接收流媒体数据包,根据所述流媒体数据包预测网络状况,获得网络传输预测速率;
体验质量QoE监测模块,用于根据所述流媒体数据包监测所述流媒体的业务QoE,并根据所述业务QoE获得预测的QoE可接受传输速率;以及
自适应调度模块,用于获取播放器缓冲余量和终端CPU使用率,根据所述网络传输预测速率、所述QoE可接受传输速率、所述播放器缓冲余量和所述终端CPU使用率获得建议传输速率,并将所述建议传输速率发送至媒体服务器;
其中,所述媒体服务器基于所述建议传输速率实时改变编码器的编码码率,以使得所述流媒体数据包的输出速率不超过所述建议传输速率;
所述网络预测模块用于根据所述流媒体数据包预测第ti时刻的网络传输预测速率所处的变化状态,所述变化状态包括:增加状态、减小状态和保持状态,统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算所述第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti),其中i为正整数,以及基于第ti时刻的网络传输预测速率所处的变化状态、所述平均网络传输速率R(ti)和第ti-1时刻的网络传输预测速率Bnet(ti-1)计算第ti时刻的网络传输预测速率Bnet(ti);
所述网络预测模块用于根据所述流媒体数据包的到达时间间隔和所述流媒体数据包的大小计算得到所述流媒体数据包到达时间间隔的加权值,根据相邻的流媒体数据包到达时间间隔的加权值计算得到流媒体数据包接收时延差值,根据所述流媒体数据包接收时延差值计算得到所述流媒体数据包接收时延差值的上界和下界,以及根据所述流媒体数据包接收时延差值以及所述上界和所述下界确定网络传输预测速率所处的变化状态。
11.根据权利要求10所述的终端,其中,
所述自适应调度模块用于在所述网络传输预测速率大于或等于所述QoE可接受传输速率的情况下,确定所述网络传输预测速率为建议传输速率;
在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量大于或等于缓冲余量阈值,并且所述终端CPU使用率小于或等于CPU使用率阈值,则确定所述QoE可接受传输速率为建议传输速率;
在所述网络传输预测速率小于所述QoE可接受传输速率的情况下,若所述播放器缓冲余量小于所述缓冲余量阈值,或者所述终端CPU使用率大于所述CPU使用率阈值,则确定所述网络传输预测速率为建议传输速率。
13.根据权利要求10所述的终端,其中,
所述网络预测模块用于在所述流媒体数据包接收时延差值大于所述上界的情况下,确定所述变化状态为减小状态;
在所述流媒体数据包接收时延差值小于所述下界的情况下,确定所述变化状态为增加状态;
在所述流媒体数据包接收时延差值小于或等于所述上界并且大于或等于所述下界的情况下,确定所述变化状态为保持状态。
15.根据权利要求14所述的终端,其中,所述网络预测模块计算所述流媒体数据包接收时延差值Diffm的公式为
Diffm=|Jm-Jm-1|,
其中,Jm-1为第m-1个流媒体数据包到达时间间隔的加权值。
17.根据权利要求10所述的终端,其中,
所述QoE监测模块用于统计第ti-1时刻至第ti时刻的时间段内接收到的流媒体数据包流量,并计算在第ti-1时刻至第ti时刻的时间段内的平均网络传输速率R(ti);
对所述流媒体数据包进行解析,获取在所述第ti-1时刻至第ti时刻的时间段内所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti);
根据所述流媒体的帧率fps(ti)、帧宽w(ti)和帧高h(ti)和终端可接受峰值信噪比阈值PSNRthres计算得到QoE可接受最小传输速率Bqoe_min(ti);以及
根据所述平均网络传输速率R(ti)和所述QoE可接受最小传输速率Bqoe_min(ti)确定QoE可接受传输速率Bqoe(ti);
其中,Bqoe(ti)=max(R(ti),Bqoe_min(ti))。
19.一种流媒体自适应传输系统,包括:如权利要求10至18任意一项所述的终端以及媒体服务器;
所述媒体服务器用于基于所述终端发送的建议传输速率,实时改变编码器的编码码率,以使得所述流媒体数据包的输出速率不超过所述建议传输速率。
20.一种终端,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至9任意一项所述的方法。
21.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至9任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031851.2A CN109729437B (zh) | 2017-10-30 | 2017-10-30 | 流媒体自适应传输方法、终端和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031851.2A CN109729437B (zh) | 2017-10-30 | 2017-10-30 | 流媒体自适应传输方法、终端和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109729437A CN109729437A (zh) | 2019-05-07 |
CN109729437B true CN109729437B (zh) | 2021-02-02 |
Family
ID=66291215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711031851.2A Active CN109729437B (zh) | 2017-10-30 | 2017-10-30 | 流媒体自适应传输方法、终端和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109729437B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113840161B (zh) * | 2020-06-23 | 2023-07-25 | 龙芯中科技术股份有限公司 | 流媒体传输方法、接收方法、装置、电子设备及储存介质 |
CN111954001A (zh) * | 2020-07-31 | 2020-11-17 | 西安万像电子科技有限公司 | 图像编码方法、装置、编码端设备及存储介质 |
CN113422751B (zh) * | 2020-08-27 | 2023-12-05 | 阿里巴巴集团控股有限公司 | 基于在线强化学习的流媒体处理方法、装置及电子设备 |
CN112291620A (zh) * | 2020-09-22 | 2021-01-29 | 北京邮电大学 | 视频播放方法、装置、电子设备及存储介质 |
CN112383791B (zh) * | 2020-11-12 | 2023-07-21 | 咪咕视讯科技有限公司 | 一种媒体数据处理方法、装置、电子设备和存储介质 |
CN113038543B (zh) * | 2021-02-26 | 2023-05-02 | 展讯通信(上海)有限公司 | 一种QoE值的调整方法及其装置 |
CN113852866B (zh) * | 2021-09-16 | 2022-08-02 | 珠海格力电器股份有限公司 | 媒体流的处理方法、装置及系统 |
CN114915804A (zh) * | 2022-04-26 | 2022-08-16 | 中航华东光电(上海)有限公司 | 一种基于自适应参数调整的视频数据传输方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103354618A (zh) * | 2013-06-24 | 2013-10-16 | 西安交通大学 | 一种基于hls的多场景流媒体自适应直播方法 |
CN103475951A (zh) * | 2013-08-20 | 2013-12-25 | 南京邮电大学 | 一种基于用户体验的实时视频传输速率自适应方法 |
CN105323604A (zh) * | 2015-10-29 | 2016-02-10 | 西安交通大学 | 一种QoE驱动的HTTP流媒体点播缓冲区控制方法 |
WO2016123497A1 (en) * | 2015-01-29 | 2016-08-04 | Vid Scale, Inc. | Bandwidth prediction and prefetching for enhancing the qoe of applications over wireless networks |
-
2017
- 2017-10-30 CN CN201711031851.2A patent/CN109729437B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103354618A (zh) * | 2013-06-24 | 2013-10-16 | 西安交通大学 | 一种基于hls的多场景流媒体自适应直播方法 |
CN103475951A (zh) * | 2013-08-20 | 2013-12-25 | 南京邮电大学 | 一种基于用户体验的实时视频传输速率自适应方法 |
WO2016123497A1 (en) * | 2015-01-29 | 2016-08-04 | Vid Scale, Inc. | Bandwidth prediction and prefetching for enhancing the qoe of applications over wireless networks |
CN105323604A (zh) * | 2015-10-29 | 2016-02-10 | 西安交通大学 | 一种QoE驱动的HTTP流媒体点播缓冲区控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109729437A (zh) | 2019-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109729437B (zh) | 流媒体自适应传输方法、终端和系统 | |
US11503307B2 (en) | System and method for automatic encoder adjustment based on transport data | |
EP3338455B1 (en) | System and method for managing segment delivery and bandwidth responsive to encoding complexity metrics | |
US20130304934A1 (en) | Methods and systems for controlling quality of a media session | |
US20140181266A1 (en) | System, streaming media optimizer and methods for use therewith | |
US20140233637A1 (en) | Managed degradation of a video stream | |
US20130290492A1 (en) | State management for video streaming quality of experience degradation control and recovery using a video quality metric | |
US20130286879A1 (en) | Video streaming quality of experience degradation control using a video quality metric | |
KR20110120836A (ko) | 디지털 콘텐트의 적응형 스트리밍 제어 | |
EP3338456A1 (en) | System and method for managing segment delivery and bandwidth responsive to encoding complexity metrics | |
KR100592547B1 (ko) | 스트리밍을 위한 패킷 스케줄링 방법 | |
AU2021200428B2 (en) | System and method for automatic encoder adjustment based on transport data | |
Siekkinen et al. | Optimized upload strategies for live scalable video transmission from mobile devices | |
WO2014066975A1 (en) | Methods and systems for controlling quality of a media session | |
WO2014209493A1 (en) | State management for video streaming quality of experience degradation control and recovery using a video quality metric | |
Nguyen et al. | An adaptive streaming method of 360 videos over HTTP/2 protocol | |
Al-Tamimi et al. | Dynamic resource allocation based on online traffic prediction for video streams | |
WO2015044104A1 (en) | Video traffic management | |
WO2014209495A1 (en) | Video streaming quality of experience recovery using a video quality metric | |
Zhang et al. | A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http | |
Li et al. | A joint optimization method of coding and transmission for conversational HD video service | |
EP3123730B1 (en) | Enhanced distortion signaling for mmt assets and isobmff with improved mmt qos descriptor having multiple qoe operating points | |
Chen et al. | Adaptive media playout assisted rate adaptation scheme for HTTP adaptive streaming over lte system | |
Kobayashi et al. | A real-time 4K HEVC multi-channel encoding system with content-aware bitrate control | |
Milani et al. | Improving quality-of-experience for multiple description video transmission in peer-to-peer networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |