一种基于HTTP自适应流的码率自适应方法与流程

文档序号:13590057阅读:230来源:国知局

本发明涉及多媒体通信领域,特别涉及一种http自适应流的码率自适应方法。



背景技术:

近年来,随着web平台的发展以及宽带连接的加快,http自适应流媒体已成为当今最经济、最流行的多媒体传输方式。它的主要思想是:在服务端将原始视频编码成多个码率版本并将每个码率版本切分为时间等长的视频段序列,客户端通过发送连续地http请求下载视频段。在下载各个视频段的过程中,通过切换码率来达到动态适应当前终端资源的目的。http自适应流媒体融合了rtsp流式技术以及http渐进下载技术的优势,在降低服务端技术复杂度的同时,有效地提升了用户的观影体验。

然而,众所周知:http协议基于tcp协议实现,而tcp协议的拥塞控制机制使可用带宽波动很大;其次,网络异构性(如wi-fi,4g,3g,2g等)使得视频终端经常在各个网络间进行切换,导致终端带宽资源急剧变化;此外,每个视频终端的资源参差不齐,同一质量的视频在资源较低的终端上播放时可能出现马赛克、停顿现象。所有这些问题都给http自适应流媒体流畅播放带来巨大挑战。

在此情况下,当前http自适应技术要么致力于提高码率质量,而忽略了码率切换的平滑性;又或者期望得到最平滑的码率切换,而未充分利用带宽资源,选取了较低质量的码率。



技术实现要素:

本发明的目的在于,为解决现有的http自适应技术存在码率切换的平滑性差,或未充分利用带宽资源而选取的码率质量低的技术问题,提供一种基于http自适应流的码率自适应方法,利用该方法进行码率切换能够实现在提供高质量视频码率的同时,尽可能保证码率的平滑切换,以改善用户体验。

为了达到上述目的,本发明提出的一种基于http自适应流的码率自适应方法,该方法包括以下步骤:

步骤1)下载初步选取的终端资源中的当前http视频段数据;

步骤2)检测并获得能够反映终端的当前带宽资源状态的信息;

步骤3)利用步骤2)中获得的信息,判断步骤1)中下载的当前http视频段数据与前一下载的http视频段数据的码率变化方向为增大或减小;

步骤4)根据步骤3)中判断获得的码率变化方向,并利用最小可觉差法判定当前http视频段数据的当前码率的安全变化范围;

步骤5)以步骤4)中获得的安全变化范围确定后一下载的http视频段数据的最终码率。

根据步骤5)根据选取的码率链接发http请求,下载下一段http视频段数据。

作为上述技术方案的进一步改进,所述的步骤2)中能够反映终端的当前带宽资源状态的信息包括终端当前时刻的估测带宽值;

所述终端当前时刻的估测带宽值的获得方法包括:

步骤101)采用等时间间隔对下载的当前http视频段数据进行抽样,并利用下述公式求得抽样带宽:

其中,s(k)表示第k-1个抽样时刻到第k个抽样时刻内下载的数据量,θ表示抽样时间间隔,ti(k)表示第i个视频段下载过程中第k个抽样带宽值;

步骤102)待当前http视频段数据下载完成后,获得抽样带宽序列:

tdi={ti(1),ti(2)…ti(k)…ti(m)|θ};

步骤103)采用指数平均方法对抽样带宽序列进行平滑处理,所述平滑处理的公式表示为:

其中,tiexp(k)表示第i段视频的第k个抽样值的指数平均值,i表示当前http视频段数据,取第i段抽样序列的最后一个指数平均值tiexp(m)作为终端当前时刻的估测带宽值。

作为上述技术方案的进一步改进,所述的步骤3)中判断获得码率变化方向的步骤为:

步骤201)选出小于终端当前时刻的估测带宽值的最大码率值;

步骤202)将最大码率值与前一下载的http视频段数据的码率值进行比较,若最大码率值小于前一下载的http视频段数据的码率值,则判定码率变化方向为减小;若最大码率值大于前一下载的http视频段数据的码率值,则判定码率变化方向为增大。

作为上述技术方案的进一步改进,所述步骤4)中利用最小可觉差法判定当前http视频段数据的当前码率的安全变化范围的公式表示为:

其中,rcur表示当前http视频段数据的当前码率,rchg_up表示码率变化方向为增大时当前码率的安全变化范围,rchg_down表示码率变化方向为减小时当前码率的安全变化范围,rlowth、rmidth和rhigth分别表示预设的最小码率阈值、中间码率阈值和最大码率阈值。

作为上述技术方案的进一步改进,所述的步骤5)中确定后一下载的http视频段数据的最终码率的步骤包括:当最大可变码率值在安全变化范围内时,选取该最大可变码率值作为码率最终变化值,当最大可变码率值不在安全变化范围内时,选取该安全变化范围的边界值作为码率最终变化值;所述的最大可变码率值为小于估测带宽值的最大码率值与前一下载的http视频段数据的码率之差的绝对值。

作为上述技术方案的进一步改进,所述的步骤2)中能够反映终端的当前带宽资源状态的信息还包括终端当前缓存值;

所述的终端当前缓存值采用下述计算公式进行估测:

bi=max((bi-1-di),0)+τ

其中,bi表示下载完第i段http视频段数据时缓存值,di表示下载第i段http视频段数据所用时间,τ表示视频段段长。

作为上述技术方案的进一步改进,所述的步骤5)中确定后一下载的http视频段数据的最终码率的步骤包括:分别预设最小缓存阈值bmin、中间缓存阈值bmid和最大缓存阈值bmax;

当码率变化方向为增大时,如果终端当前缓存值不大于中间缓存阈值bmid时,将保持当前http视频段数据的当前码率不变,码率最终变化值为零;如果终端当前缓存值大于中间缓存阈值bmid时,则进一步判断:当最大可变码率值在安全变化范围内时,选取该最大可变码率值作为码率最终变化值,当最大可变码率值不在安全变化范围内时,选取该安全变化范围的边界值作为码率最终变化值;

当码率变化方向为减小时,如果终端当前缓存值不大于最小缓存阈值bmin时,选取小于估测带宽值的最大码率值作为后一下载的http视频段数据的最终码率;如果终端当前缓存值介于最小缓存阈值bmin和最大缓存阈值bmax之间时,则进一步判断:当最大可变码率值在安全变化范围内时,选取比该最大可变码率值高一个等级的码率值作为码率最终变化值,当最大可变码率值不在安全变化范围内时,选取该安全变化范围的边界值作为码率最终变化值;如果终端当前缓存值大于最大缓存阈值bmax时,则进一步判断:当最大可变码率值在安全变化范围内时,将保持当前http视频段数据的当前码率不变,码率最终变化值为零,当最大可变码率值不在安全变化范围内时,选取比前一下载的http视频段数据的码率低一个等级的码率值作为后一下载的http视频段数据的最终码率。

本发明的一种基于http自适应流的码率自适应方法具有以下优点:

本方法通过对下载过程进行时间抽样,优化了http自适应流带宽估测方法,解决了分段较长时带宽估测不准的问题;且仅在应用层操作,实现更为简单。本方法具体通过最小可觉差设计码率安全变化范围,并以此为选取码率的基本原则,该方法兼具高码率和平滑码率特点,改善了用户的观影体验。

附图说明

图1是本发明中的一种基于http自适应流的码率自适应方法流程图。

图2是本发明实施例中基于最大可变码率值确定后一下载的http视频段数据的最终码率流程图。

图3是本发明实施例中基于终端当前缓存值和最大可变码率值共同确定后一下载的http视频段数据的最终码率流程图。

具体实施方式

下面结合附图和实施例对本发明所述的一种基于http自适应流的码率自适应方法进行详细说明。

如图1所示,为本发明提供的一种基于http自适应流的码率自适应方法流程图,该方法包括:

步骤1)下载初步选取的终端资源中的当前http视频段数据;

步骤2)检测并获得能够反映终端的当前带宽资源状态的信息;

步骤3)利用步骤2)中获得的信息,判断步骤1)中下载的当前http视频段数据与前一下载的http视频段数据的码率变化方向为增大或减小;

步骤4)根据步骤3)中判断获得的码率变化方向,并利用最小可觉差法判定当前http视频段数据的当前码率的安全变化范围;

步骤5)以步骤4)中获得的安全变化范围确定后一下载的http视频段数据的最终码率。

基于上述码率自适应方法,所述的步骤2)中能够反映终端的当前带宽资源状态的信息可包括:终端当前时刻的估测带宽值和终端当前缓存值。

检测终端当前时刻的估测带宽值包括以下步骤:

首先,对下载过程进行等时间间隔抽样,计算抽样带宽值,即采用下载数据量除以下载时间计算抽样带宽值;然后,通过抽样带宽序列估测当前时刻带宽,具体是通过指数平均方法对抽样带宽序列进行平滑,估测当前时刻带宽。

检测所述终端当前缓存值即计算缓存中含有多长时间的视频数据。当前缓存大小估测方法为:发送视频段请求时刻的缓存减去下载该视频段的时间间隔,若该值大于0,则再加上一个视频段段长;若该值小于等于0,则当前缓存为一个视频段段长。

所述的步骤3)中判断获得码率变化方向的步骤为:

首先,选出一个小于终端当前时刻的估测带宽值的最大码率值,然后判定该最大码率值与上一段下载的http视频段数据码率值的关系:若该最大码率值小于上一下载的视频段数据码率值,则判定码率变化方向为减小;反之,码率变化方向为增大。该最大码率值与上一段下载的http视频段数据码率值的差值的绝对值表示相邻两段间最大可变码率值。

所述步骤4)中利用最小可觉差法量化视频切换所引起的能被察觉的最小变化,其判定下一http视频段数据的码率安全变化范围的具体过程为:

当码率变化方向为增大时,各阶段码率安全变化范围为:

如果当前码率(rcur)小于最小码率阈值(rlowth)时,安全变化范围为100kbps;如果当前码率(rcur)不小于最小码率阈值(rlowth)且小于中间码率阈值(rmidth)时,安全变化范围为200kbps;如果当前码率(rcur)不小于中间码率阈值(rmidth)且小于最大码率阈值(rhigth)时,安全变化范围为400kbps;如果当前码率(rcur)不小于最大码率阈值(rhigth)时,安全变化范围为1400kbps。

当码率变化方向为减小时,各阶段码率安全变化范围为:

当rcur≤rlowth时,安全变化范围为100kbps;当rlowth<rcur≤rmidth时,安全变化范围为200kbps与rcur-rlowth的最小值;当rmidth<rcur<rhigth时,安全变化范围为200kbps与rcur-rmidth的最大值;当rcur≥rhigth时,安全变化范围为400kbps与rcur-rhigth的最大值。

如图2所示,根据上述最小可觉差法所确定的下一http视频段数据的码率安全变化范围,如果最终码率是以最大可变码率值作为选取条件,那么所述步骤5)选取最终码率的基本原则为尽可能选取安全变化范围内的码率作为码率最终变化值,即当最大可变码率值在安全变化范围内时,选取该最大可变码率值作为码率最终变化值;当最大可变码率值超出安全变化范围时,选取该安全变化范围的边界值作为码率最终变化值。

如图3所示,如果最终码率是以终端当前缓存值和最大可变码率值共同作为选取条件,那么所述的步骤5)中确定下一http视频段数据的最终码率的步骤包括:分别预设最小缓存阈值bmin、中间缓存阈值bmid和最大缓存阈值bmax;

当码率变化方向为增大时,需判定终端当前缓存值(bcur)与中间缓存阈值(bmid)之间的大小关系,具体比较过程包括:

当bcur≤bmid时,表示缓存并不充足,此时不管最大可变码率值是否超出安全变化范围,都保持当前http视频段数据的当前码率值不变,码率最终变化值为零;其他情况,按基本选取原则选取最终码率,即如果终端当前缓存值大于中间缓存阈值bmid时,则进一步判断:当最大可变码率值在安全变化范围内时,选取该最大可变码率值作为码率最终变化值,当最大可变码率值不在安全变化范围内时,选取该安全变化范围的边界值作为码率最终变化值。

当码率变化方向为减小时,需判定终端当前缓存值(bcur)所处状态,具体比较过程包括:

如果终端当前缓存值不大于最小缓存阈值(bmin)时,需选取一个小于估测带宽值的最大码率值作为下一http视频段数据的最终码率,以防止缓存下溢;如果终端当前缓存值大于最小缓存阈值(bmin)且不大于最大缓存阈值(bmax)时,表示缓存较为充足,可选取一个较为保守的码率,进一步判断:当最大可变码率在安全变化范围内时,选取比最大可变码率值高一个等级的码率值作为码率最终变化值;其他情况,按基本选取原则选取码率,即当最大可变码率值不在安全变化范围内时,选取该安全变化范围的边界值作为码率最终变化值。

当bcur>bmax时,缓存容易溢出,需采取更为保守的措施减小缓存,此时需要进一步判断:当最大可变码率值在安全变化范围内时,将保持当前http视频段数据的当前码率不变,码率最终变化值为零;当最大可变码率值超出安全变化范围时,选取比上一段下载的http视频段数据的码率低一个等级的码率值作为下一http视频段数据的最终码率。

实施例一

参考图1-3所示,利用上述码率自适应方法对http视频段数据进行操作的具体过程为:

步骤110,下载选取的http视频段数据。下载数据过程中将采用等时间间隔对下载过程抽样,并采用公式(1)求得抽样带宽。

其中,s(k)表示第k-1个抽样时刻到第k个抽样时刻内下载的数据量,θ表示抽样时间间隔,ti(k)表示第i个视频段数据下载过程中第k个抽样带宽值。当整个视频段下载完成,得到一个抽样带宽序列:

tdi={ti(1),ti(2)…ti(k)…ti(m)|θ}(2)

步骤120,检测并获得能够反映终端的当前带宽资源状态的信息。该信息包括但不仅限于终端当前时刻的估测带宽值、终端当前缓存值。

采用指数平均方法平滑抽样带宽序列,公式表示如下:

其中,tiexp(k)表示第i段视频段数据的第k个抽样值的指数平均值。

取第i段视频段数据抽样序列的最后一个指数平均值tiexp(m)作为当前时刻的估测带宽值。

终端当前缓存值是指终端缓存含有多长时间的视频未播放,采用如下公式估测该终端当前缓存值:

bi=max((bi-1-di),0)+τ(4)

其中,bi表示下载完第i段视频段数据时缓存值,di表示下载第i段视频段数据所用时间,τ表示视频段段长。

当请求第i段视频时,第i-1段视频的终端当前缓存值减去下载第i段视频数据所用时间,选取其差值与0的最大值,再加上一个视频段段长。若该差值小于0,则第i段视频的终端当前缓存值为一个视频段段长;若该差值大于0,则第i段视频的终端当前缓存值为其差值与一个视频段段长之和。

步骤130,判定当前码率的安全变化范围,采用最小可觉差设计不同码率等级的安全变化范围,表示如下:

其中,公式(5)代表码率变化方向为增大时当前码率的安全变化范围;公式(6)代表码率变化方向为减小时当前码率的安全变化范围。返回值rchg_up和rchg_down表示当前码率的安全变化范围。选择一部画面快速变化视频(足球比赛)的最小可觉差作参考,码率阈值rlowth,rmidth和rhigth分别可设置为700,1000和1500kbps。该阈值设置将适合所有画面变化比选择视频慢的视频。

步骤140,选取最终码率。其基本原则为尽可能选取当前码率安全变化范围内的码率作为码率最终变化值。

当选取最终码率需参考当前缓存资源时,可设置缓存阈值bmin,bmid和bmax分别为1.5,2以及6个段长,并根据下述判定条件确定最终码率:

当码率变化方向为增大时,如果终端当前缓存值不大于中间缓存阈值bmid,将保持上一段下载的http视频段数据码率值不变,来增大缓存;反之,如果终端当前缓存值大于中间缓存阈值bmid,则进一步判断:当最大可变码率值在安全变化范围内时,选取该最大可变码率值作为码率最终变化值,当最大可变码率值不在安全变化范围内时,选取该安全变化范围的边界值作为码率最终变化值。

当码率变化方向为减小时,需判断终端当前缓存值与最小缓存阈值bmin和最大缓存阈值bmax之间的关系:

如果终端当前缓存值不大于最小缓存阈值bmin时,需选取一个小于估测带宽值的最大码率值作为下一http视频段数据的最终码率,以防止缓存下溢。如果终端当前缓存值介于最小和最大缓存阈值之间时,则进一步判断:如果最大可变码率在安全变化范围内,选取比最大可变码率值高一个等级的码率值作为码率最终变化值,当最大可变码率值不在安全变化范围内时,选取该安全变化范围的边界值作为码率最终变化值;如果终端当前缓存值大于最大阈值bmax时,则进一步判断:如果最大可变码率在安全变化范围内,则保持原码率不变;如果最大可变码率超出安全变化范围,选取比上一段下载的视频段数据码率低一个等级的码率值作为最终码率。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

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