分布式DASH系统中服务节点选择、更新和码率自适应方法与流程

文档序号:15982115发布日期:2018-11-17 00:27阅读:218来源:国知局

本发明属于音视频传输技术领域,涉及一种服务节点选择、更新和码率自适应方法,具体涉及一种分布式dash系统中服务节点选择、更新与码率自适应方法。

背景技术

随着互联网和移动通信技术的飞速发展,音视频传输业务已经成为互联网上的主流业务,人们通过个人电脑以及移动智能终端可以随时随地获取视频资源。据cisco公司2017年3月发布的《思科视觉网络指数:全球移动数据流量预测更新(2016-2021白皮书)》指出,到2021年,全球超过四分之三(78%)的移动数据流量将是视频流量。基于http的动态自适应流媒体传输技术(dynamicadaptivestreamingoverhttp,以下简称dash)由于具有良好的防火墙穿透能力和nat转换能力,能够适应网络的动态性、终端的异质性,解决不同接入速度、不同终端设备的用户享受不同服务质量的问题,成为当今主流的商业视频服务提供商采用的主要技术。

dash是一种流化和http渐进式下载(progressivedownloaded)的混合分发方法,其基本原理是:同一视频/音频源文件被编码为不同质量级别的媒体副本,每个视频副本又被切分成小的片段(segment)。这些片段的描述信息存储在媒体表示描述文件(mpd)中。视频分段及mpd文件存储在web服务器中。当客户端观看视频时,向web服务器发送httpget请求,web服务器将此视频对应的mpd文件反馈给客户端。客户端解析mpd文件,获取不同质量视频段的描述信息,并根据播放设备能力和网络带宽的变化情况,由服务器或客户端动态选择合适码率的视频分段进行播放。这种方式,由于可以根据网络带宽变化,动态选择并调整媒体流的码率,极大地降低了播放过程中出现重缓冲的次数,提升了播放的流畅性,实现多媒体内容的无缝传送和平滑播放。因此码率自适应选择方法是dash系统的核心。

当前,多数研究主要集中在单服务器模式下客户端码率自适应选择方法的研究上,由客户端通过评估与单个web服务器的可用网络带宽或自身播放缓冲变化情况来确定视频分段码率并下载。然而,由于网络的动态性,单个服务节点失效或性能的下降,都会引起客户端接收视频质量的下降。而分布式dash系统较好地解决了单点失效或性能下降的问题。在分布式dash系统中,多个web服务器存储相同的视频内容,客户端可以从多个服务器中选择一个或同时向多个服务器发送请求并下载视频分段。相对于单服务器模式,多服务器模式能够提供更高的带宽、更好的链路多样性和可靠性,逐步成为当前媒体分发采用的一种主流方式,并逐渐得到内容分发网络(cdn)的支持。然而,在这种多服务器模式下,由于服务器之间带宽的异构性以及链路的动态性,如何从多个候选的web服务器中选择性能优良的服务器作为服务节点提供数据服务,并根据网络状态的变化,及时、动态调整数据请求的服务节点,以便保证用户观看视频体验质量(qoe),成为分布式dash系统亟待解决的一个关键问题。



技术实现要素:

为了解决上述技术问题,本发明提供了一种分布式dash传输系统服务节点选择、更新和码率自适应方法,解决了单服务器场景中由于单个服务节点性能下降或失效导致的用户体验质量下降的问题,提升了系统媒体传输的鲁棒性。

本发明所采用的技术方案是:一种分布式dash系统中服务节点选择、更新和码率自适应方法,所述分布式dash系统包括单个视频源端、一个入口服务器,若干web内容服务器和若干客户端;视频源端将视频编码成不同码率的副本并且切割成长度相等的分段,这些分段的描述信息存储在mpd文件中;所述mpd文件存储在入口服务器上,分段视频文件存储在web内容服务器上,所有的web内容服务器上存储相同的目标视频副本;

设同一视频编码为l个具有不同码率的副本,即目标视频副本,其副本码率分别为v1、v2、…、vk、vk+1、…、vl,其中v1<v2<…<vk<vk+1<…<vl。每个副本被分割成多个分段,每个分段时长为△;

设mpd文件中有可供选择的web内容服务器m个,分别为s1、s2、…、sm,记为集合s;

在整个媒体播放的过程中,客户端的缓冲区划分为三个部分,设定三个阈值,分别为初始缓冲区阈值binit,目标缓冲区阈值bref,最大缓冲区阈值bmax;设当前缓冲区大小为bcurr;

将客户端的播放过程定义为三种状态:播放启动状态、播放稳定状态和缓冲满状态,若当前缓冲区大小bcurr∈[0,bibit]时,则客户端处于播放启动状态;若当前缓冲区大小bcurr∈(binit,bref]时,则客户端处于播放稳定状态;若当前缓冲区大小bcurr∈(bref,bmax]时,则客户端处于缓冲满状态;

所述方法包括以下步骤:

步骤1:客户端和存储有mpd文件的入口服务器建立http连接,从该入口服务器上获取mpd文件,并解析该文件,获取web内容服务器url信息;

步骤2:mpd文件解析后,客户端进入播放启动状态,向所有web内容服务器发送httpget请求,下载视频分段;

步骤3:当缓冲区长度bref≥bcurr>binit时,进入播放稳定阶段,采用基于概率的服务器选择和码率选择方法选择服务的web内容服务器和目标视频码率;

步骤4:当前缓冲区bmax≥bcurr>bref,进入缓冲满状态,根据以下步骤分别选择服务的web内容服务器和目标视频码率:

步骤5:在视频播放的三个状态中,当客户端的调度模块向选中的web内容服务器sj发送请求下载目标码率为vi+1的数据分段请求时,相应地启动超时重传机制。

在发明充分考虑了播放启动阶段要求启动时延低、播放流畅的需求特点,在播放初始缓冲区为空,协助进行视频码率选择的有用信息不足的条件下,提出从所有候选web内容服务器请求下载第一个视频分段并根据可用网络带宽排序服务器节点,从具有最大可用带宽的web内容服务器处采用加性增加乘性降低的类tcp慢启动的码率选择方法,动态从分布式dash系统多个web内容服务节点处获取视频分段,即有效地利用了分布式dash系统中web内容服务节点多样性的特点,降低了播放启动时延的同时,减少了播放过程不必要重缓冲的次数。在播放的稳定阶段,本发明采用基于概率的服务节点和码率选择方法,在播放的公平性、平滑性和缓冲区大小变化平滑性之间找到了平衡。同时,引入随机因子的码率切换时机选择方法,有效地缓解了固定周期调度策略中多个视频流共享瓶颈带宽造成的带宽分配不公平的问题,提升了网络的带宽分配的公平性和客户端播放过程的平均视频速率。

附图说明

图1为本发明实施例中客户端播放缓冲区区间划分的示意图;

图2为本发明实施例中播放端模块组成示意图;

图3为本发明实施例中服务节点选择与码率自适应过程示意图;

图4为本发明实施例的系统结构组成示意图;

图5为本发明实施例的播放启动状态服务节点选择过程示意图;

图6为本发明实施例的播放启动状态码率自适应过程示意图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

本实施例提供的一种分布式dash系统中服务节点选择、更新和码率自适应方法,其中分布式dash系统包括单个视频源端、一个入口服务器,若干web内容服务器和若干客户端;视频源端将视频编码成不同码率的副本并且切割成长度相等的分段,这些分段的描述信息存储在mpd文件中;mpd文件存储在入口服务器上,分段视频文件存储在web内容服务器上,所有的web内容服务器上存储相同的目标视频副本;

设同一视频编码为l个具有不同码率的副本,即目标视频副本,其副本码率分别为v1、v2、…、vk、vk+1、…、vl,其中v1<v2<…<vk<vk+1<…<vl。每个副本被分割成多个分段,每个分段时长为△,本实施例△为2秒;

设mpd文件中有可供选择的web内容服务器m个,分别为s1、s2、…、sm,记为集合s;

在整个媒体播放的过程中,客户端的缓冲区划分为三个部分,设定三个阈值,分别为初始缓冲区阈值binit,目标缓冲区阈值bref,最大缓冲区阈值bmax;设当前缓冲区大小为bcurr;设缓冲区最小值为bmin,取值为0;

将客户端的播放过程定义为三种状态:播放启动状态、播放稳定状态和缓冲满状态,若当前缓冲区大小bcurr∈[0,binit]时,则客户端处于播放启动状态;若当前缓冲区大小bcurr∈(binit,bref]时,则客户端处于播放稳定状态;若当前缓冲区大小bcurr∈(bref,bmax]时,则客户端处于缓冲满状态;

在播放启动状态,采用加性增长乘性降低的码率选择策略贪婪地从可用网络带宽最大的服务节点处下载视频分段;在播放稳定状态,采用基于概率的服务节点选择策略,并采用质量感知的启发式码率自适应方法确定待下载的数据分段码率。在缓冲满状态,为了避免缓冲溢出,采用基于概率的服务节点选择方法选出概率大于一定预设值的web内容服务器作为服务节点,并引入随机因子确定数据请求的时机。

为了更清晰实现上述功能,本发明提出的分布式dash传输系统的客户端主要由网络监控模块、缓冲监控模块、服务选择模块、码率自适应模块和调度模块组成(如图2所示)。网络监控模块负责周期性地评估网络可用带宽,并将结果提交给码率自适应模块;缓冲监控模块周期性向调度模块汇报客户端缓冲区状态;服务选择模块,基于播放期限,决定哪些服务器接收哪些数据分段的请求;码率自适应模块根据网络监控模块和缓冲监控模块提供的网络和缓冲状态决定待下载的视频分段码率;调度模块根据网络状态信息、码率自适应模块确定的视频码率,从相应的服务器下载数据分段。

本发明充分考虑了播放启动状态下,要求启动时延低、播放流畅的需求特点,在播放初始缓冲区为空,协助进行视频码率选择的有用信息不足的条件下,提出从所有候选web内容服务器请求下载第一个视频分段,并根据可用网络带宽排序服务器节点,选出可用带宽最大的web内容服务器作为数据分段请求的服务节点,采用加性增加乘性降低的类tcp慢启动的码率选择方法,动态从分布式dash系统多个web内容服务节点处获取视频分段,即有效地利用了分布式dash系统中服务节点多样性的特点,降低了播放启动时延的同时,减少了播放过程不必要重缓冲的次数。在播放的稳定状态,本发明采用基于概率的服务节点和码率选择方法,在播放的公平性、平滑性和缓冲区大小变化平滑性之间找到了平衡。同时,引入随机因子的码率切换时机选择方法,有效地缓解了固定周期调度策略中多个视频流共享带宽造成的带宽分配不公平的问题,提升了网络的带宽分配的公平性和客户端播放过程的平均视频速率。

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

本实施例中,客户端的缓冲区划分为三个部分(如图1所示),设定三个阈值,分别为初始缓冲区阈值binit,设置其为整个缓冲区大小的20%,目标缓冲区阈值bref,设置其为缓冲区大小的80%,最大缓冲区阈值bmax,设置其为120秒。客户端与服务器的交互,经历了请求mpd文件、确定服务的web内容服务器和确定视频码率,并从选定的web内容服务器请求相应目标码率视频分段的过程;请见图3,依照本发明方法的一个具体实施例的过程包括以下步骤:

步骤1:客户端和存储有mpd文件的入口服务器建立http连接,从该入口服务器上获取mpd文件,并解析该文件,获取web内容服务器url信息;

步骤1.1:客户端与入口服务器之间通过tcp“三次握手过程”建立http连接;

当用户点击视频播放按钮时,客户端首先与入口服务器建立tcp连接。

步骤1.2:客户端向入口服务器发送httpget请求(如图4步骤(1)所示),请求获得待播放的视频文件的媒体描述表示mpd文件;

步骤1.3:客户端接收到入口服务器发送的mpd文件后,存储并进行解析,获取web内容服务器url信息;

入口服务器接收到客户端请求,将mpd文件副本以http响应方式发送给客户端(如图4步骤(2)所示)。客户端收到mpd文件副本,保存在本地并进行解析。其中,解析后得到目标视频码率为:v={100,150,200,250,300,400,500,700,900,1200,1500,2000,2500,3000,4000,5000,6000},码率的单位为kbit/s。整个视频时长5244秒(近似87分钟)。解析后的web内容服务器的地址请见下表1:

表1web内容服务器url地址

播放开始,进入启动状态;

步骤2:mpd文件解析后,客户端进入播放启动状态,向所有web内容服务器发送httpget请求,下载视频分段;

客户端进入播放启动状态,采用加性增长乘性降低的码率选择策略贪婪地从高可用带宽的web内容服务器下载视频分段,该步骤包括服务节点选择(如图5)和码率自适应(如图6)两个部分,其子步骤如下:

步骤2.1:客户端根据解析的mpd文件,获得所有web内容服务器的url地址,与这些web内容服务器建立http连接;

本实施例假定有9个web内容服务器;客户端初始化服务器列表s,s={s1,s2,s3,s4,s5,s6,s7,s8,s9},并初始化大小为9的缓冲数组用于存放从9个web内容服务器收到的视频或文件数据;

本实施例使用一个元素个数为9的一维数组array_t来存储从9个候选的web内容服务器下载的全部(或部分)第一个视频分段内容,用于计算各web内容服务器与客户端之间网络端到端的吞吐量。

步骤2.2:客户端从所有连接的web内容服务器处同时下载码率为v1的视频分段副本;

客户端根据解析mpd文件所得的视频分段的目标视频码率,先以最小码率v1=v1=100kbit/s,向所有候选的web内容服务器发送数据下载的请求,下载第一个视频分段;并分别记录下载开始的时间,记为k为web内容服务器下标号;

httpget请求包括:period_id,adaptationset_id,representation_id,segment_absoluteuri等的信息。

步骤2.3:客户端同时接收到来自于多个web内容服务器的码率为v1的视频分段副本,并将下载的视频分段数据存储在数组array_t中;并记下视频分段下载完成的最短时间,用于计算各web内容服务器与客户端之间的网络可用带宽;

假设来自服务器sk的视频分段最先完成下载,下载时长为t1,k,则客户端计算与其连接的所有的web内容服务器之间的网络吞吐量其中,是客户端在t1,k的时间间隔内从服务器sj下载第一个视频分段部分数据的长度;从服务器sk最先完成第一个视频分段副本数据的下载,则其中,v1是第1个视频分段的码率;δ是视频分段的时长,是第1个视频分段从服务器sk下载开始的时间,是第1个视频分段从服务器sk下载完成的时间。

同时,当第一个数据分段下载后,客户端开始播放。

步骤2.4:客户端根据计算得到各web内容服务器的网络吞吐量,按照从大到小的顺序对web内容服务器进行排序,得到候选服务器队列sc;

步骤2.5:客户端从候选服务器队列中选出队头节点,即为网络吞吐量最大的web内容服务器,作为下一数据分段请求的服务节点snext;

步骤2.6:码率自适应模块确定下一个视频分段的码率;

假定刚下载完成的视频分段的码率为vi=vk,v1≤vk≤vl,候选服务器队列队首元素为服务器sa,a∈[1,m],则比较服务器sa评估的网络吞吐量与预设的下一视频分段i+1的码率的大小;

本实施例中,vi=v2=150kbit/s,

如果则下一视频分段i+1的码率本实施例中vi+1=200kbit/s;

否则本实施例中,如果则vi+1=v2=150kbit/s;

其中,服务器sa评估的网络吞吐量的计算方法为:

(1)对于有视频数据分段下载的服务器,记为源web内容服务器,采用指数带权移动平均的方法评估网络的吞吐量,其中ri,j表示下载完数据分段i后客户端与web内容服务器sj之间测量的网络吞吐量值,表示下载完分段i时的客户端与web内容服务器sj之间网络吞吐量评估值;这里,为了反映网络带宽的变化情况,使用如下公式计算:μ0是一个常数,μ是测量值和评估值之间的误差,这里,μ0取0.5;

(2)对于源web内容服务器,采用网络探测方法,客户端在向选中的web内容服务器请求下载数据分段的同时,向非源服务器发送页面访问请求,通过记录页面数据传输的时间和大小来计算非源服务器的网络可用带宽;假定页面大小为xkbits,发送get请求的开始时间为接收到整个页面数据的时刻为则当客户端下载完请求的非源服务器的页面文件数据时,计算该非源服务器的可用带宽ri,k表示客户端在从源服务器下载视频数据分段i时,测量的非源服务器sk的网络吞吐量;非源服务器sk评估的网络吞吐量时间因子β∈[0,1],tn表示第n次下载页面数据的开始时间;γ∈[1,10]的常数,本实施例设置为3;

步骤2.7:调度模块负责客户端向选中的web内容服务器snext发送数据请求,请求下载的目标视频数据分段的码率为vi+1;

步骤2.8:缓冲监控模块周期性监控缓冲占有情况,如果bcurr≤binit,则客户端依然处于播放启动阶段,则选择候选服务器队列sc队首元素作为下一轮数据分段请求的服务器,并转执行步骤2.6,确定下一分段的视频码率;否则,执行步骤3。

步骤3:当缓冲区长度bref≥bcurr>binit时,进入播放稳定阶段,采用基于概率的服务器选择和码率选择方法选择服务的web内容服务器和目标视频码率;

步骤3.1:对候选服务器队列中的服务节点网络吞吐量进行归一化操作,公式如下:

其中,对于源web内容服务器,表示从第j个服务器下载完第i个视频数据分段后的归一化可用带宽,其为从第j个服务器下载完第i个视频数据分段后计算得到的网络可用带宽评估值与队列中最大web内容服务器可用带宽评估值的比值;对于非源web内容服务器,表示从第j个服务器下载完某一可访问页面后的归一化可用带宽,其为从第j个服务器下载完页面文件后计算得到的网络可用带宽评估值与队列中最大web内容服务器可用带宽评估值的比值;

web内容服务器被选中的概率基于增强学习理论的软最大行为选择(softmaxactionselection)算法确定,其公式为:

其中,τ1表示决策因子,两个部分由softmaxactionselection算法决定;本实施例中τ1取0.2;

从候选服务器队列sc中随机选出概率最大的那个web内容服务器,作为数据分段请求服务器;

步骤3.2:已完成第i个视频分段的下载,使用如下公式确定第i+1个视频分段的码率vi+1;

vi+1被选中的概率计算公式为:

其中

qi表示从服务器sj下载完第i个视频数据分段后缓冲区大小,使用如下公式计算:

ni表示与第i个数据分段具有相同码率的连续视频分段的数量,nmin表示具有相同码率的连续视频分段最小数,nmax表示具有相同码率的连续视频分段最大数,ε为一个正数,ε≥1;本实施例中,nmiu,nmax分别取1和15,ε取1;vmin=v1,在本实例中,vmin=v1=100(kbps);vmax表示最大视频码率,即vmax=vl=6000(kbps);

这里vi+1在v={v1、v2、…、vk、vk+1、…、vn}中依次取值,计算其概率。

步骤3.3:选出概率值最大时对应的视频码率作为下一个视频分段的目标码率vi+1,调度模块向选出的web内容服务器发送下载码率为vi+1的视频分段请求;

步骤3.4:在播放稳定阶段,一个视频数据分段下载完成,判断缓冲区大小,如果bmax>bcurr>bref,则进入缓冲满状态,转步骤4;否则,回转执行步骤3,继续在播放稳定状态下,下载下一个视频分段。

步骤4:当前缓冲区bmax≥bcurr>bref,进入缓冲满状态,根据以下步骤分别选择服务的web内容服务器和目标视频码率:

步骤4.1:每次从候选服务器队列sc中,选择概率大于一定预设值μ的单个web内容服务器作为服务节点下载视频分段,服务节点选择概率基于增强学习理论中软最大行为选择(softmaxactionselection)算法计算如下:

其中,τ2表示决策因子,两个部分由softmaxactionselection算法决定;

本实施例中,预设的概率值μ取0.6,τ2取0.33;

步骤4.2:视频分段的码率由公式得到;表示从服务器sq处下载完第i个数据分段时,所选的发送视频分段数据的web内容服务器与客户之间的网络可用带宽;

本实施例中,从服务器sq处下载完第i个数据分段时,计算的服务器与客户之间的网络可用带宽则vi+1=v9=900kbps;

步骤4.3:在缓冲满状态,引入随机因子δ来确定数据分段调度的时机,从区间(bref-δ,bref+δ]中均匀随机选择一个数值,赋值给随机缓冲区大小randbufi;下载第i+1个视频分段的时刻ti+1(s)=ti(e)+bcurr-randbufi,δ为(0,1)之间的一个随机因子。

步骤5:在视频播放的三个状态中,当客户端的调度模块向选中的web内容服务器sj发送请求下载目标码率为vi+1的数据分段请求时,相应地启动超时重传机制。

步骤5.1:如果视频分段在两倍的预期下载时间内未完成下载,则执行步骤5.2;否则,如果客户端处于播放启动状态,则执行步骤2.6;

如果客户端处于播放稳定状态下,则执行步骤3;

如果客户端处于缓冲满状态,则根据步骤4.3确定下一视频分段调度的时机,然后执行步骤4.1;

预期的下载时间表示下载完分段i后估计的客户与服务器的网络吞吐量值;vi+1表示该视频分段对应的目标码率;

步骤5.2:根据不同的客户端状态,确定重传机制;

当客户端处于播放启动状态,则在sc服务器队列中,从剩下的web内容服务器中选出可用带宽最大的服务器作为队首节点,建立连接,发送下载数据分段i+1的请求;

当客户端处于播放稳定状态,则在sc服务器队列中,从剩下的服务器中选出概率最大的服务器,建立连接,发送下载数据分段i+1的请求;

当客户端处于缓冲满状态,则在sc服务器队列中,从剩下的服务器中随机选出概率大于某一阈值的服务器,建立连接,发送下载数据分段i+1的请求;

在重传的过程中,采用基于审判机制的服务节点更新方法。当客户端切换一个新的服务节点,与新的服务节点建立连接关系的同时,保持与原有服务节点的连接,同时向这两个web内容服务节点发送数据请求服务。当接收一定数量数据分段后,客户端断开网络吞吐量小的服务节点的连接,而继续从网络吞吐量大的服务节点处获取数据分段。

本发明通过提供一种分布式dash传输系统服务节点选择、更新和码率自适应方法,解决了单服务器场景中由于单个服务节点性能下降或失效导致的用户体验质量下降的问题,提升了系统媒体传输的鲁棒性。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

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