本发明属于无线网络下流媒体自适应传输领域,具体涉及一种流媒体自适应传输算法。
背景技术:
随着互联网以及各个智能终端的快速发展,人们对于视频音频等多媒体信息的需求日益增多,这给多媒体服务供应商提出了巨大的挑战。因此流媒体技术应运而生,然而由于网络的不稳定性以及各个智能终端的异构性,使得流媒体技术产生适配和兼容性差等问题。
为了建立一个可以通用的标准,从2009年动态图像专家组(MPEG)开始进行研究,综合提出了几十个通用的协议方案,并与第三代合作伙伴计划(3GPP)联合提出了基于HTTP的动态流媒体(DASH)传输协议,该协议规定了媒体描述文件(MPD)及媒体文件的格式,并于2011年底正式被批准为ISO标准,即ISO/IEC 23009-1。MPEG-DASH是基于HTTP实现的。HTTP协议相较RTP/RTSP,成本更低,实现简单,且比RTP/RTSP应用更广泛,并可以很好的克服防火墙和网络的拦截,可靠性强。目前,该协议已经在Netflix,Youtube等国外的互联网站应用。
目前有很多基于MPEG-DASH的流媒体自适应传输系统的研究,其主要结构分为服务器和客户端。在视频传输前,在服务器端视频资源会以相同的时间间隔被切割成不同的视频切片,并被以不同的比特率进行了编码,最终生成一个基于二进制可扩展标记语言(XML)格式的媒体描述文件,它包含了视频段的比特率、分辨率、时间间隔等相应的视频属性信息。客户端是基于MPEG-DASH的自适应算法的驱动端,客户端根据当前的网络状况、自身硬件的处理能力以及缓存等相关参数根据媒体描述文件所提供的统一资源定位符(URL)自适应的选择适应于当前网络状况的下的视频资源进行申请和下载。目前的自适应算法主要分为两类,基于缓存的自适应算法以及基于吞吐量的自适应算法。其中基于吞吐量的自适应算法由于仅考虑网络的带宽而忽略缓存对于用户的影响,因此容易造成客户端的缓存溢出;基于缓存的自适应算法保证了缓存的安全状态,但容易造成申请视频质量的波动。因此缓存和吞吐量的平衡是基于MPEG-DASH的流媒体自适应算法设计的关键。
ITB是一种基于即时吞吐量的MPEG-DASH自适应算法,该算法将前一个视频切片下载期间的网络平均吞吐量作为下一个视频切片下载的估计吞吐量,并选择小于估计吞吐量的最大视频质量的视频切片。
技术实现要素:
本发明所解决的技术问题是:改进现有的ITB控制算法,提供一种无线网络环境下适用的由客户端驱动的流媒体自适应传输算法,在保证带宽利用率较高的前提下,保住缓存处于安全状态的同时最大化用户体验质量。本发明的技术方案如下:
一种基于PI控制流媒体的自适应传输算法,包括以下步骤:
步骤1:媒体描述文件的生成:在视频传输前,服务器将同一个视频资源进行不同比特率编码,并以相同的时间间隔切割成不同的视频切片,然后将视频切片的比特率、时间间隔以及服务器端存储位置的属性信息汇总,并生成媒体描述文件;
步骤2:媒体描述文件预下载:客户端进行视频传输前,预先下载媒体描述文件,并进行解析得到服务器端视频的存储信息;
步骤3:初始缓存:客户端在视频播放前,缓存两个视频质量最低的视频切片,当视频开始播放时,先向服务器申请最低质量视频,以使初始延时最短;
步骤4:计算估计吞吐量:根据切片下载速度,计算网络即时吞吐量,并将计算得到的网络即时吞吐量作为下一个视频切片下载的网络估计吞吐量Te;
步骤5:计算缓存中视频余量:根据申请视频比特率,网络吞吐量及前一切片下载完成时缓存中视频余量,计算当前缓存中视频余量b;
步骤6:在视频初始播放时,当缓存小于目标缓存时,跳至步骤7,进入快速启动阶段;当缓存到达目标缓存时,跳至步骤8,进入自适应传输阶段;
步骤7:快速启动阶段:此阶段采用基于即时吞吐量的自适应算法,即采用步骤4计算得到估计吞吐量作为下一个切片比特率选择标准,并选择比特率最接近该比特率选择标准的视频切片进行传输,当缓存未达到目标缓存时重复步骤4~6;
步骤8:自适应传输阶段:采用基于PI控制的自适应传输框架,将缓存相对于目标缓存的偏移量作为误差反馈信息,引入动态控制因子非线性的将PI控制器和ITB控制器进行结合;
步骤9:计算缓存偏移量:设置目标缓存,将步骤5计算得到的当前缓存中视频余量b同目标缓存bopt对比,并计算两者的差值作为缓存偏移量boffset:
boffset=b-bopt
步骤10:PI控制计算:将步骤9计算得到的缓存偏移量boffset作为PI控制器的输入,进入PI控制器的计算单元,输出控制变量;
步骤11:计算动态控制因子δ:首先设置缓存安全区间btar∈[blow,bhigh],blow bhigh分别表示缓存安全区间的上限和下限,采用动态控制因子δ动态非线性的控制PI控制器和基于即时吞吐量控制器的控制程度,根据步骤9计算得到的缓存偏移量和步骤5计算得到的缓存中视频余量b,计算动态控制因子δ计算公式如下:
步骤12:计算比特率选择标准结合步骤4得到的下一个切片的网络估计吞吐量Te和PI控制输出的控制变量u,通过动态控制因子δ非线性的将两者进行结合,计算并最终得到比特率选择标准即建立PI控制器和基于即时吞吐量控制器的动态转换关系:
1)当δ=1时,此时比特率选择标准完全由PI控制器控制;
2)当δ=0,此时比特率选择标准完全由基于即时吞吐量控制器控制;
3)当0<δ<1,此时动态因子δ动态的控制PI控制以及基于即时吞吐量控制器的控制程度,并输出比特率选择标准;
步骤13:比特率选择:根据比特率选择标准决定最终下一切片视频质量等级,根据视频延时指示参数决定下一视频切片申请发起时间;
步骤14:视频下载:根据步骤13所做决策向服务器申请下一个视频切片,等待,直到本视频切片下载完成;
步骤15:重复步骤4~14,直到下载完成本视频所有切片。
本发明通过引入因子δ,通过动态控制PI控制器和ITB控制器的控制程度,非线性的将PI控制器和ITB控制器进行结合,并最终保证:
1)当网络带宽发生波动时,选择的视频质量可以紧跟网络变化,以防止缓存溢出造成的视频播放停滞或带宽利用率低等问题。
2)在当前网络带宽环境下,为用户提供尽可能高的视频质量,为用户提供更好的知觉质量体验。
3)在网络带宽发生波动时,尽量维持选择视频质量稳定,以防止视频质量频繁波动给用户带来疲惫感。
附图说明
图1为基于DASH传输系统框架
图2为基于DASH的自适应传输机制。
图3为本发明具体实施方案的实现框图
图4本发明中两种控制器的动态转换关系
图5控制因子δ与缓存的关系图
图6为本发明具体实现的流程图
具体实施方案
为使本发明的目的技术方案和优点更加清楚,下面结合附图和具体实施方案,对本发明进行进一步的详细描述。
步骤1:媒体描述文件的生成。在视频自适应传输前,服务器进行比特流的资源预备,如图1所示的系统框架,摄像机进行视频捕捉后,服务器会对捕捉到的视频进行不同比特率的编码,并编码成L等级比特率播放版本(v1,v2,…,vL),并以相同的时间间隔(2秒)将每个比特率等级的视频切割成N个视频切片,最终服务器将视频切片的比特率、时间间隔以及URL等属性信息汇总并生成媒体描述文件中。
步骤2:媒体描述文件预下载。图2为基于DASH的自适应传输机制,客户端预先向服务器发送HTTP GET请求下载媒体描述文件。并通过解析媒体描述文件获知服务器端视频切片的比特率、时间间隔以及服务器各视频切片的存储位置等属性信息。
步骤3:初始缓存。视频播放器,为使缓存区非空,客户端将缓存两个视频质量最低的视频切片,以降低延时。当视频正式开始播放时,由于网络环境未知,客户端先向服务器申请最低质量视频,以防止视频初始播放发生播放中断。
步骤4:计算估计吞吐量。如图1所示的系统框架,设从申请到第i个视频切片下载完成所需时间t,申请视频流的比特率为v,每段视频切片播放时长为τ,则下载第i个视频切片期间网络吞吐量表示为:Ti(i)=v×τ/t。使用该吞吐量作为进行下一个视频切片下载时的估计吞吐量,即Te(i+1)=Ti(i)。
步骤5:计算缓存中视频余量。设前一个视频切片下载完成时的缓存余量为b(i-1),根据步骤4得到的t和τ,则当前缓存计算方式为:b(i)=b(i-1)+τ-t
步骤6:设置目标缓存bopt,在视频初始播放时,当缓存小于目标缓存时,跳至步骤7,进入快速启动阶段;当缓存到达目标缓存时,跳至步骤8,正式进入自适应传输阶段。
步骤7:快速启动阶段。此阶段采用基于即时吞吐量的自适应算法,即采用步骤4计算得到估计吞吐量作为下一个切片比特率选择标准,即Te(i+1)=Ti(i)。选择比特率最接近该比特率选择标准的视频切片进行传输。当缓存未达到目标缓存bopt时重复步骤4~6。
步骤8:自适应传输阶段。如图3,设计一种改进的基于PI控制的自适应传输框架,其中PI控制器采用P(比例)控制器和I(积分)控制器,缓存相对于目标缓存的偏移量作为误差反馈信号,设置P控制器的比例系数Kp=0.1和I控制器的积分时间常数Kl=0.01。引入动态控制因子非线性的将PI控制器和基于即时吞吐量(ITB)控制器进行结合
步骤9:计算缓存的偏移量boffset。将目标缓存设置为bopt,将步骤5计算得到的缓存余量同目标缓存bopt对比,并计算两者的差值作为缓存偏移量boffset=b-bopt。
步骤10:PI控制器计算单元。将步骤9计算得到的缓存偏移量boffset作为PI控制器的输入,进入PI控制器的计算单元。PI控制器输出u(i):
步骤11:动态控制因子计算δ。设置缓存安全区间btar∈[blow,bhigh]。动态控制因子δ用来动态非线性的控制PI控制器和基于即时吞吐量控制器的控制程度。如图5所示的控制因子δ与缓存的关系图,当缓存不在安全区间时,δ=1;当缓存稳定在安全区间时,
步骤12:计算比特率选择标准。计算比特率选择标准通过PI控制器的输出、估计吞吐量Te以及动态控制因子δ,控制计算单元计算比特率选择标准,即如图4所示的两种控制器的动态转换关系,当δ=1时,此时比特率选择标准完全由PI控制器控制;当δ=0,此时比特率选择标准完全由基于即时吞吐量控制器控制;当0<δ<1,此时动态因子δ动态的控制PI控制以及基于即时吞吐量控制器的控制程度,输出比特率选择标准。
步骤13:比特率选择。根据比特率选择标准依据媒体描述文件的信息,选择比特率最接近的视频切片进行传输。
步骤14:视频下载。根据步骤13所选择的视频切片,通过媒体描述文件所提供的URL向服务器申请下载该视频切片,等待,直到该视频切片下载完成。
步骤15:重复步骤4~14,直到下载完成本视频所有切片。图6为本发明具体实现的流程图。
本发明采用以上技术方案,显示出以下优点:
(1)区别于传统的PI控制机制将缓存稳定在固定值,本发明通过引入动态因子根据缓存余量动态的控制PI和基于即时吞吐量的两种控制器的控制程度,使得缓存稳定在安全区间,同时保证视频比特率切片波动较小,视频切片更为平滑的切换,有助于提高用户体验质量
(2)采用本发明的方案,可以提供带宽利用率,在有限的网络带宽下,提供更大的视频质量的视频切片,以提高用户体验质量。