一种基于云手机的视频流动态切换方法与流程

文档序号:25354802发布日期:2021-06-08 14:30阅读:113来源:国知局
一种基于云手机的视频流动态切换方法与流程
一种基于云手机的视频流动态切换方法
【技术领域】
1.本发明涉及视频流切换技术领域,具体涉及一种基于云手机的视频流动态切换方法。


背景技术:

2.由于在网络传输数据时网络带宽会出现大幅度的波动,仅仅依据网络的吞吐量进行码率决策存在着一定的片面性,如果在决策中不考虑缓存状态,很可能导致缓存区溢出和频繁的码率切换等一系列影响用户观看体验的情况发生。如何对基于云计算服务平台的视频流进行动态切换以整保证视频流顺畅已成为了亟需解决的技术问题。


技术实现要素:

3.本申请提供了一种基于云手机的视频流动态切换方法,以解决上述提到的一种或多种技术问题。本申请的动态切换方法将带宽状态和缓存状态作为进行动态切换的主要参数。首先由网络带宽估计单元根据已经下载完成的视频流数据片段的下载速率及当前视频缓存单元的容量来对当前的网络带宽进行评估,然后,由编码速率调整单元根据评估出的网络带宽和编码速率调整策略来选择视频流数据片段进行下载。本申请通过对网络情况进行评估分析,按照一定的转换关系换算出对应的编码速率进行动态调整以保证视频流顺畅,提升了用户体验。
4.本申请所采用的技术方案如下:
5.一种基于云手机的视频流动态切换方法,该方法应用于动态切换模块中,所述动态切换模块由网络带宽估计单元、编码速率调整单元以及视频缓存单元组成,该方法具体包括:
6.步骤1、网络带宽估计单元根据已经下载完成的视频流数据片段的下载速率并结合当前视频缓存单元的区域容量,对当前网络带宽进行评估以获得最终带宽评估值,并将所述最终带宽评估值发送给编码速率调整单元;
7.步骤2、编码速率调整单元根据所述最终带宽评估值和编码速率调整策略来选择相应的编码速率对视频流数据片段进行下载。
8.进一步的,所述网络带宽估计单元包括第一次带宽估计模块、带宽状态评价模块、缓存状态评价模块。
9.进一步的,在步骤1中,对当前网络带宽进行评估以获得最终带宽评估值,具体包括如下步骤:
10.步骤101、第一次带宽估计模块根据所述视频流数据片段的编码速率进行第一次网络带宽评估,获得第一次网络带宽评估值μ
s
,并将所述第一次网络带宽评估值发送给带宽状态评价模块;
11.步骤102,带宽状态评价模块根据获取的网络带宽抖动幅度值对所述第一次网络带宽评估值μ
s
进行第一次调整;
12.步骤103、缓存状态评价模块根据所述视频缓存单元的区域容量对第一次调整后的网络带宽评估值μ
s2
进行第二次调整;
13.步骤104、将所述最终带宽评估值发送给编码速率调整单元,由所述编码速率调整单元根据所述最终带宽评估值对编码速率进行调整。
14.进一步的,所述第一次网络带宽评估值μ
s
采用如下公式计算:
[0015][0016]
在上述公式中,w表示最新下载的视频流数据片段的个数,b
k

i
表示第k

i个视频流数据片段的编码速率,ω
i
表示视频流数据片段i的编码速率对应的权重值,ω
i
通过如下公式进行计算:
[0017][0018]
其中,ω为预设参数,ω等于0.4。
[0019]
进一步的,在步骤102中,对所述第一次网络带宽评估值μ
s
进行第一次调整,具体包括:
[0020]
步骤1021、计算所述w个视频流数据片段的编码速率的标准差δ,并根据所述标准差δ计算现实带宽的波动系数θ,所述波动系数θ的计算公式如下:
[0021]
θ=δ/μ
s
[0022]
其中,所述标准差δ采用的计算公式如下:
[0023][0024]
步骤1022、通过带宽调整系数ρ
v
对所述网络带宽估计单元评估出的带宽μ
s
进行第一次评估值调整,以获得第一次调整后的网络带宽评估值μ
s2
,所采用的计算公式如下:
[0025]
μ
s2
=ρ
v

s
[0026]
其中,ρ
v
为带宽调整系数,ρ
v
的计算公式如下:
[0027]
ρ
v
=ρ
v
+(1

ρ
v
)(1

min(θ,1))2[0028]
其中,ρ
v
表示ρ
v
的下限阈值,ρ
v
等于0.3。
[0029]
进一步的,在步骤103中,对第一次调整后的网络带宽评估值μ
s2
进行第二次调整,采用如下公式计算:
[0030]
μ
s3
=ρ
b

s2
[0031]
其中,ρ
b
表示缓存调整系数,μ
s2
表示第一次调整后的网络带宽评估值,μ
s3
表示第二次调整后的最终带宽评估值;
[0032]
所述缓存调整系数ρ
b
采用如下公式计算:
[0033]
[0034]
在上述公式中,ρ
b
和分别为缓存调整系数ρ
b
的下限阈值和上限阈值,b
k
为在接收到第k个所述视频流数据片段之前所述视频缓存单元的区域容量,b
max
为所述视频缓存单元的区域容量的最大值,下限阈值为1.5,上限阈值ρ
b
为0.4。
[0035]
进一步的,在步骤2中,所述编码速率调整策略中包括如下两种调整策略:
[0036]
第一种调整策略,当下载的所述视频流数据片段的数量小于或等于φ时,调整策略进入快速启动阶段,编码速率调整单元下载最低质量等级的视频流数据片段;
[0037]
第二种调整策略,当下载的所述视频流数据片段的数量大于φ时,调整策略进入缓递进调整阶段,若所述视频缓存单元的区域容量大于所述编码速率上限阈值b
up
时,所述编码速率调整单元选择下载质量等级最高的视频流数据片段。
[0038]
进一步的,所述缓递进调整阶段的启动时机包括:第一种启动时机,若当前视频缓存单元的区域容量b
cur
大于所述编码速率上限阈值b
up
,并且最终带宽评估值μ
s3
大于当前编码速率值高一级的编码速率r
cur+1
,即满足条件μ
s3
>r
cur+1
&b
cur
[i]>b
up
时,编码速率调整单元选择比当前播放质量等级高一级的视频流数据片段进行平稳倒换,其中,所述比当前播放质量等级高一级的视频流数据片段具有当前编码速率值高一级的编码速率。
[0039]
进一步的,所述缓递进调整阶段的启动时机包括:第二种启动时机,若视频缓存单元的区域容量b
cur
小于所述编码速率下限阈值b
down
,并且最终带宽评估值μ
s3
小于当前编码速率值r
cur
,即满足条件μ
s3
<r
cur
&b
cur
[i]<b
down
时,编码速率调整单元选择比当前播放质量等级低一级的视频流数据片段进行平稳倒换,其中,所述比当前播放质量等级低一级的视频流数据片段具有当前编码速率值低一级的编码速率。
[0040]
进一步的,第三种启动时机,适用于出现带宽骤降或者剧烈向下波动的情况,编码速率调整单元需要启动针对视频缓存单元的保护策略;
[0041]
若下载完上一个视频流数据片段后所述视频缓存单元的区域容量的减少量大于带宽骤降阈值时,或者若所述视频缓存单元的区域容量小于所述视频缓存单元的区域容量的最小值b
min
时,即满足如下条件时,选择视频流数据片段的最低编码速率r
min
以确保视频流数据片段的播放流畅;
[0042][0043]
在上述条件中,b
cur
[i

1]为正在下载第i

1个视频流数据片段时当前视频缓存单元的区域容量;r
min
为视频流数据片段的最低编码速率;r是视频流数据片段的播放时长,r为0.6s;b
min
为所述视频缓存单元的区域容量的最小值。
[0044]
通过本申请实施例,可以获得如下技术效果:通过对网络情况进行评估分析,按照一定的转换关系换算出对应的编码速率进行动态调整以保证视频流顺畅,提升了用户体验。
【附图说明】
[0045]
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0046]
图1为云手机服务系统的组成结构示意图;
[0047]
图2为视频流动态切换方法的流程示意图。
【具体实施方式】
[0048]
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
[0049]
本发明的设备状态通知方法应用于云手机服务系统中,图1为云手机服务系统的组成结构示意图。该云手机服务系统包括用户终端1和云手机服务中心2,用户终端通过无线网络与云手机服务系统进行数据交互。
[0050]
云手机服务中心包括动态切换模块,所述动态切换模块由网络带宽估计单元、编码速率调整单元以及视频缓存单元组成。
[0051]
本申请的动态切换方法首先由网络带宽估计单元根据已经下载完成的视频流数据片段的下载速率及当前视频缓存单元的区域容量来对当前的网络带宽进行评估,然后,由编码速率调整单元根据评估出的网络带宽和编码速率调整策略来选择视频流数据片段进行下载。本申请通过对网络情况进行评估分析,按照一定的转换关系换算出对应的编码速率进行动态调整以保证视频流顺畅,提升了用户体验。
[0052]
图2为视频流动态切换方法的流程示意图。该视频流动态切换方法包括如下步骤:
[0053]
步骤1、网络带宽估计单元根据已经下载完成的视频流数据片段的下载速率并结合当前视频缓存单元的区域容量,对当前网络带宽进行评估以获得最终带宽评估值,并将所述最终带宽评估值发送给编码速率调整单元;
[0054]
步骤2、编码速率调整单元根据所述最终带宽评估值和编码速率调整策略来选择相应的编码速率对视频流数据片段进行下载。
[0055]
所述网络带宽估计单元包括第一次带宽估计模块、带宽状态评价模块、缓存状态评价模块。
[0056]
在步骤1中,对当前网络带宽进行评估以获得最终带宽评估值,具体包括如下步骤:
[0057]
步骤101、第一次带宽估计模块根据所述视频流数据片段的编码速率进行第一次网络带宽评估,获得第一次网络带宽评估值μ
s
,并将所述第一次网络带宽评估值发送给带宽状态评价模块;
[0058]
在第一次带宽估计模块中,预设滑动观察窗,所述滑动观察窗用于查看最新下载的w个视频流数据片段,针对最新下载的所述w个视频流数据片段,使用指数权重的方法为所述w个视频流数据片段各自的下载速率分别设置不同的权重值,所述w个视频流数据片段
中下载时间越新的该视频流数据片段的权重值越高,这样设置权重值的目的在于,能够保证网络带宽评估的结果更接近视频流数据片段下载过程中的网络实际带宽。
[0059]
假设k是前一个视频流数据片段的编号,则视频流数据片段k的下载速率对应的权重值为ω,视频流数据片段i(k

w<i≤k)的编码速率对应的权重值ω
i
等于ω(1

ω)
k

i
,对该权重值进行归一化处理。
[0060]
所述第一次网络带宽评估值μ
s
采用如下公式计算:
[0061][0062]
在上述公式中,w表示最新下载的视频流数据片段的个数,b
k

i
表示第k

i个视频流数据片段的编码速率,ω
i
表示视频流数据片段i的编码速率对应的权重值,ω
i
通过如下公式进行计算:
[0063][0064]
其中,ω为预设参数,并满足ω∈(0,1),ω取值越大则所评估出的带宽越接近视频流数据片段下载过程中的实际情况,但ω取值越大视频流数据片段的下载速率的切换也将变得越频繁,一定程度上影响了用户体验,因此对ω的取值需要综合考虑来确定,经过反复测试,当ω等于0.4时,能兼顾评估带宽的实际程度以及速率的切换频率,因此在本申请的技术方案中ω等于0.4;
[0065]
步骤102,带宽状态评价模块根据获取的网络带宽抖动幅度值对所述第一次网络带宽评估值μ
s
进行第一次调整;
[0066]
在视频流数据片段的传输过程中,如果出现带宽频繁波动的情况,则所述网络带宽估计单元评估出的第一次网络带宽评估值μ
s
可能会比实际的带宽要大,并由此引发视频缓存单元出现下溢的情况,以至于出现视频播放中断或者断断续续,严重影响了用户的视频观看体验。为了降低由于出现带宽频繁波动对视频播放效果带来的影响,带宽状态评价模块对所述第一次网络带宽评估值进行评价并进行带宽评估值的第一次调整;
[0067]
在步骤102中,对所述第一次网络带宽评估值μ
s
进行第一次调整,具体包括:
[0068]
步骤1021、计算所述w个视频流数据片段的编码速率的标准差δ,并根据所述标准差δ计算现实带宽的波动系数θ,所述波动系数θ的计算公式如下:
[0069]
θ=δ/μ
s
[0070]
其中,所述标准差δ采用的计算公式如下:
[0071][0072]
步骤1022、通过带宽调整系数ρ
v
对所述网络带宽估计单元评估出的带宽μ
s
进行第一次评估值调整,以获得第一次调整后的网络带宽评估值μ
s2
,所采用的计算公式如下:
[0073]
μ
s2
=ρ
v

s
[0074]
其中,ρ
v
为带宽调整系数,ρ
v
的计算公式如下:
[0075]
ρ
v
=ρ
v
+(1

ρ
v
)(1

min(θ,1))2[0076]
其中,ρ
v
表示ρ
v
的下限阈值,ρ
v
等于0.3;
[0077]
在上述计算公式中,带宽调整系数ρ
v
用于描述所述w个视频流数据片段的编码速率相对于带宽评估值μ
s
的波动幅度;当所述w个视频流数据片段的下载速率出现较轻微波动时,例如,在下载速率的平均值附近,即所述现实带宽的波动系数θ在预设的波动容忍阈值以内,现实带宽处于相对稳定状态,所述带宽调整系数ρ
v
的取值接近于1,通过上述公式对评估出的带宽μ
s
所做的调整幅度较小;相反地,当所述w个视频流数据片段的下载速率出现较大微波动时,即所述现实带宽的波动系数θ大于预设的波动容忍阈值,所述带宽调整系数ρ
v
接近所述ρ
v
的下限阈值ρ
v
,通过上述公式对评估出的带宽μ
s
所做的调整幅度较大,申请人经过反复测试,当ρ
v
的取值为0.3时,能够有效避免带宽剧烈波动来引发的缓存下溢的情况出现;
[0078]
步骤103、缓存状态评价模块根据所述视频缓存单元的区域容量对第一次调整后的网络带宽评估值μ
s2
进行第二次调整;
[0079]
缓存状态评价模块对所述视频缓存单元的容量进行评价,并根据评价结果对网络带宽评估值μ
s2
进行第二次调整,包括如下两种情况:1)当所述视频缓存单元的容量快达到下溢阈值时,对网络带宽评估值μ
s2
进行第二次调整以使其值变小,让其值变小从而能够选择低编码速率的视频流数据片段。在上述这种情况下,为了降低视频播放中断或者断断续续情况出现的概率,并对所述视频缓存单元中的缓冲区域快速写入数据以进行填充,需要让网络带宽评估值μ
s2
的值变小,从而能够选择低编码速率的视频流数据片段。2)当所述视频缓存单元的容量快达到上溢阈值时,对网络带宽评估值μ
s2
进行第二次调整以使其值变大,让其值变大从而能够选择高编码速率的视频流数据片段。在上述这种情况下,同样是为了降低视频播放中断或者断断续续情况出现的概率,需要对所述视频缓存单元中的缓冲区域快速写入数据以进行填充,需要调整评估出的带宽μ
s
,让其值变大从而能够选择高速率的视频流数据片段,同时还可以避免由于所述视频缓存单元的区域饱和而网络带宽无法的到充分利用。
[0080]
在步骤103中,对第一次调整后的网络带宽评估值μ
s2
进行第二次调整,采用如下公式计算:
[0081]
μ
s3
=ρ
b

s2
[0082]
其中,ρ
b
表示缓存调整系数,μ
s2
表示第一次调整后的网络带宽评估值,μ
s3
表示第二次调整后的最终带宽评估值,;
[0083]
所述缓存调整系数ρ
b
采用如下公式计算:
[0084][0085]
在上述公式中,ρ
b
和分别为缓存调整系数ρ
b
的下限阈值和上限阈值,b
k
为在接收到第k个所述视频流数据片段之前所述视频缓存单元的区域容量,b
max
为所述视频缓存单元的区域容量的最大值,下限阈值为1.5,上限阈值ρ
b
为0.4;
[0086]
步骤104、将所述最终带宽评估值发送给编码速率调整单元,由所述编码速率调整
单元根据所述最终带宽评估值对编码速率进行调整。
[0087]
编码速率调整单元,用于设置所述视频缓存单元的区域容量和调整策略;
[0088]
在编码速率调整单元中,将带宽估值作为编码速率选择的判断条件之一,与此同时,还将所述视频缓存单元的区域容量作为另外一个判断条件进行综合考虑,需要同时满足带宽估值和区域容量这两个条件时,调整策略设置单元才会启动进行编码速率调整,区域容量判断条件中用到了两个参数,分别为编码速率上限阈值b
up
和编码速率下限阈值b
down

[0089]
编码速率上限阈值b
up
的计算公式如下:
[0090][0091]
编码速率下限阈值b
down
的计算公式如下:
[0092][0093]
其中,r
k
为第k个视频流数据片段的质量等级所对应的编码速率;b
max
为所述视频缓存单元的区域容量的最大值;l为视频流数据片段的最高质量等级;r
l
为视频流数据片段的质量等级所对应的最高编码速率;r
cur
为当前编码速率值;r
cur+1
为当前编码速率值高一级的编码速率;
[0094]
所述编码速率上限阈值b
up
由当前视频流数据片段的编码速率来确定,仅当所述视频缓存单元的区域容量大于所述编码速率上限阈值b
up
时,所述编码速率调整单元才会选择下载质量等级最高的视频流数据片段;仅当所述视频缓存单元的区域容量小于所述编码速率下限阈值b
down
时,所述编码速率调整单元才会选择下载质量等级最低的视频流数据片段。
[0095]
在步骤2中,所述编码速率调整策略中包括如下两种调整策略:
[0096]
第一种调整策略,当下载的所述视频流数据片段的数量小于或等于φ时,调整策略进入快速启动阶段,编码速率调整单元下载最低质量等级的视频流数据片段;
[0097]
在这种调整策略下,若视频缓存单元的区域容量小于所述编码速率下限阈值b
down
时,所述编码速率调整单元才会选择下载质量等级最低的视频流数据片段。这种策略的目的是尽可能的控制启动时间、降低时延,并且通过尽快写入视频缓存单元以防止所述视频缓存单元的区域容量向下溢出。
[0098]
第二种调整策略,当下载的所述视频流数据片段的数量大于φ时,调整策略进入缓递进调整阶段,若所述视频缓存单元的区域容量大于所述编码速率上限阈值b
up
时,所述编码速率调整单元选择下载质量等级最高的视频流数据片段;
[0099]
在所述缓递进调整阶段的启动时机包括如下三种情况:
[0100]
第一种启动时机,若当前视频缓存单元的区域容量b
cur
大于所述编码速率上限阈值b
up
,并且最终带宽评估值μ
s3
大于当前编码速率值高一级的编码速率r
cur+1
,即满足条件μ
s3
>r
cur+1
&b
cur
[i]>b
up
时,编码速率调整单元选择比当前播放质量等级高一级的视频流数据片段进行平稳倒换,其中,所述比当前播放质量等级高一级的视频流数据片段具有当前编码速率值高一级的编码速率;
[0101]
第二种启动时机,若视频缓存单元的区域容量b
cur
小于所述编码速率下限阈值b
down
,并且最终带宽评估值μ
s3
小于当前编码速率值r
cur
,即满足条件μ
s3
<r
cur
&b
cur
[i]<b
down
时,编码速率调整单元选择比当前播放质量等级低一级的视频流数据片段进行平稳倒换,其中,所述比当前播放质量等级低一级的视频流数据片段具有当前编码速率值低一级的编码速率;
[0102]
第三种启动时机,适用于出现带宽骤降或者剧烈向下波动的情况,编码速率调整单元需要启动针对视频缓存单元的保护策略;
[0103]
若下载完上一个视频流数据片段后所述视频缓存单元的区域容量的减少量大于带宽骤降阈值时,或者若所述视频缓存单元的区域容量小于所述视频缓存单元的区域容量的最小值b
min
时,即满足如下条件时,选择视频流数据片段的最低编码速率r
min
以确保视频流数据片段的播放流畅;
[0104][0105]
在上述条件中,b
cur
[i

1]为正在下载第i

1个视频流数据片段时当前视频缓存单元的区域容量;r
min
为视频流数据片段的最低编码速率;r是视频流数据片段的播放时长,r为0.6s;b
min
为所述视频缓存单元的区域容量的最小值;
[0106]
b
cur
[i

1]

b
cur
[i]为下载前一个视频流数据片段后视频缓存单元所减少的可容纳视频流数据片段时长,如果减少的时长大于后面的带宽骤降阈值,则表明此时的实际带宽正在快速下降,需要选择视频流数据片段的编码速率最低r
min
才能尽可能的确保视频的流畅播放;b
cur
[i]<b
min
是指当视频缓存单元的容量比容量的最小值,例如9s还要小时,此时视频缓存单元的容量有短时间内被耗尽的可能,则需要选择视频流数据片段的编码速率最低r
min
,这样才能够确保视频的流畅播放,满足用户的体验。
[0107]
本申请提出的技术方案中的二次调整能够使带宽估值更接近实时带宽,通过建立区域容量阈值与编码码率调整策略之间的对应关系,使得动态调整切换更加稳定和顺畅,能够很好的保证用户的观看体验。
[0108]
在一些实施例中,计算机程序的部分或者全部可以经由rom而被载入和/或安装到设备上。当计算机程序加载并被执行时,可以执行上文描述的方法的一个或多个步骤。
[0109]
本发明中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。
[0110]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的
功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0111]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0112]
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
[0113]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1