1.一种DASH传输系统两阶段客户端码率选择方法,其特征在于,将客户端的播放过程定义为两阶段:播放启动阶段、播放稳定阶段;
预设初始缓冲区阈值Binit、目标缓冲区阈值Bref、最大缓冲区阈值Bmax;若当前缓冲区大小Bcurr小于等于初始缓冲区阈值Binit,则客户端处于播放启动阶段;若当前缓冲区大小Bcurr大于初始缓冲区阈值Binit,则客户端处于播放稳定阶段;
在播放启动阶段采用类TCP慢启动的码率选择方法;在播放稳定阶段采用带宽估计与缓冲区大小反馈的码率选择方法,并引入随机因子的码率切换时间选择方法。
2.根据权利要求1所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,包括以下步骤:步骤S1、客户端和服务器端建立连接,并解析MPD文件;
步骤S2、MPD文件解析后,客户端进入播放启动阶段,采用类TCP慢启动方式,包括以下子步骤:步骤S2-1、客户端根据解析的MPD文件获得视频分段的URL所对应的目标视频码率,并以最小码率V1下载第一个视频分段;其中,目标视频码率包括V1、V2、…、Vk、Vk+1、…、Vn,且V1<V2<…<Vk<Vk+1<…<Vn;
步骤S2-2、计算下载完第一个视频分段的网络吞吐量T1;
步骤S2-3、启动下载视频分段计数器Count,设置其初值为0;
步骤S2-4、将当前缓冲区大小Bcurr与预设的初始缓冲区阈值Binit进行比较,若Bcurr≤Binit,则执行步骤S2-5;否则,执行步骤S3;
步骤S2-5、比较Ti与vi的大小,如果Ti≥4×vi,则计数器Count加1,否则,Count等于0;其中,Ti为下载完第i个视频分段的网络吞吐量,vi为下载第i个视频分段的速率;
步骤S2-6、若Count≥4,vi=Vk,则第i+1个视频分段的下载速率为vi+1=Vk+1,Count重置为0;否则,第i+1个视频分段的下载速率采用第i个视频分段的下载速率,即vi+1=vi=Vk;
步骤S2-7、客户端向服务器发送请求,请求码率为vi+1的第i+1个视频分段;
步骤S2-8、完成第i+1个视频分段的下载,并计算下载完第i+1个视频分段的网络吞吐量Ti+1;
步骤S2-9、迭代执行S2-4,直到Bcurr>Binit,执行步骤S3;
步骤S3、当缓冲区长度Bcurr>Binit时,进入播放稳定阶段,确定第i+1个视频分段的码率包括以下子步骤:步骤S3-1、根据Kaufman的自适应移动平均算法KAMA来评估下载完第i个视频分段后端到端的网络带宽 其中,Ci是下载完第i个视频分段后测量的网络带宽权值, 为下载完第i-1个视频分段后端到端的网络带宽;
步骤S3-2、根据当前缓冲区状态,确定调节因子A(i),A(i)=As(i)×At(i);其中,As(i)是下载第i个视频分段开始时刻当前缓冲区大小Bcurr与目标缓冲区阈值Breg的距离因子,At(i)是开始下载第i个视频分段时缓冲区大小的变化趋势因子;
步骤S3-3、调整第i个视频分段下载后估计的端到端网络带宽值,获得调节网络带宽步骤S3-4、播放稳定阶段的码率选择包含以下子步骤:步骤S3-4-1、将客户端当前缓冲区大小Bcurr与目标缓冲区阈值Breg进行比较,若Binit
步骤S3-4-1-2、如果Breg/2≤Bcurr,则执行以下操作:设置平滑计数器s_count,初值为0;
若 则vi+1=vi,s_count=0;
若 则s_count自增1,并将s_count与预设的抖动平滑参数m进行比较;如果s_count
步骤S3-5、根据码率切换时机选择方法,客户端向服务器发送视频分段下载请求的时机,请求码率为vi+1的第i+1个视频分段;码率切换时机选择包括以下子步骤:步骤S3-5-1、若Breg/2≤Bcurr≤Breg,则在下载完第i个视频分段,并确定第i+1个视频分段的下载速率vi+1后,立即向服务器发送下载第i+1个视频分段的请求,即ti+1(s)=ti(e);其中,ti+1(s)为第i+1个视频分段下载开始的时间,ti(e)是第i个视频分段下载完成的时间;
步骤S3-5-2、若Breg
3.根据权利要求2所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,步骤S1包括以下子步骤:S1-1、客户端与服务器之间通过TCP“三次握手过程”建立HTTP连接;
S1-2、客户端向web服务器发送HTTP Get请求,请求获得待播放的视频文件的MPD文件;
S1-3、客户端接收到web服务器发送的MPD文件后,存储并进行解析。
4.根据权利要求2所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,所述下载完第i个视频分段的网络吞吐量Ti是根据视频分段长度与视频分段实际下载时长的比值进行计算,计算公式为Ti=(Vi×Δ)/(ti(e)–ti(s));
其中,Vi是下载第i个视频分段采用的目标视频码率;Δ是视频分段的时长,一般用秒为单位;ti(s)是第i个视频分段下载开始的时间;ti(e)是第i个视频分段下载完成的时间。
5.根据权利要求2所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,所述步骤S3-1中端到端的网络带宽 是根据公式计算得到的;
其中,Ci=SSCi2,SSCi是平滑因子,SSCi=ER(i)×(Fastsc-Slowsc)+Slowsc,ER(i)为效率系数,ER(i)=|Direction(i)/Volatility(i)|,Direction(i)和Volatility(i)分别是下载完第i个视频分段后的价格方向和抖动性,Direction(i)=Ti-Ti-n,Ti为下载完第i个视频分段的网络吞吐量;Ti-n为在第
i个视频分段之前的第n个视频分段下载完成后计算的网络吞吐量;Fastsc是码率快速变化平均值,Slowsc是码率缓慢变化平均值,Fastsc=[1/(1+l)]l=2=0.667,Slowsc=[1/(1+l)]l=30=0.0645。
6.根据权利要求2所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,所述步骤S3-2中的调节因子A(i)=As(i)×At(i);
其中, 其中B(ti(s))是第i个数据分段开始下载时刻的缓冲区大小, B(ti-1(s))表示是第i-1个数据分段开始下载时刻的缓冲区大小;
p为调节参数,设置为0.1。
7.根据权利要求2所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,所述步骤S3-4-1-2中的抖动平滑参数m是根据第i个视频分段下载前后客户端缓冲区的变化大小来确定的,使用分段函数计算:
8.根据权利要求2所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,所述步骤S3-5-2中δ随机因子是通过公式δ=β×(Bcurr-Breg)计算,β是(0,1)之间的一个随机数。