一种基于有限状态机的面向视频直播的码率自适应方法及装置转让专利

申请号 : CN201910218253.9

文献号 : CN109996087B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖晶陈俊奎卓泽宇陈宇廖良王中元

申请人 : 武汉大学

摘要 :

本发明公开了一种基于有限状态机的面向视频直播的码率自适应方法,包括带宽估计,利用卡勒曼滤波对历史观测数据进行预处理,帧间差分去噪以及根据概率统计和置信度确认来提高带宽估计准确度;缓冲区分级,对不同级别的带宽设置不同大小的安全缓冲阈值和危险缓冲阈值,并加入状态机的码率决策机制;时延控制,根据当前带宽以及选择码率得到未来缓存的变化趋势来动态调节决定播放器快慢播阈值的变量。本发明从带宽估计、缓冲区分级以及时延控制三个方面充分利用可用带宽,在保证视频质量最大化和低时延的同时,减少了视频的切换频率,提高了视频直播的平滑度,极大的提升了用户的观看体验,可以有效应用于网络视频直播等领域。

权利要求 :

1.一种基于有限状态机的面向视频直播的码率自适应方法,其特征在于,包括:步骤S1:记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;

步骤S2:对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定有限状态机的状态,再基于有限状态机的状态选择码率;

步骤S3:根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。

2.如权利要求1所述的方法,其特征在于,步骤S1具体包括:步骤S1.1:对原始数据进行卡尔曼滤波;

步骤S1.2:对进行卡尔曼滤波的n组数据,将相邻两帧图像包的大小和传输周期分别做差分,获得n-1个瞬时带宽点;

步骤S1.3:将步骤S1.2得到的n-1个瞬时带宽点以码率为界限分档并统计落在每个档次区间的概率以及均值带宽,分析带宽分布,并根据带宽分布以及置信度估计出过去一个预设决策周期内的带宽。

3.如权利要求2所述的方法,其特征在于,步骤S1.1具体包括:将传输周期作为卡尔曼滤波器的目标参量,其中预测模型可以表示成:Ti,i-1=Di/Ci-1+N(i)+Ei

其中,Di为当前传输数据帧的大小,Ci-1为表示前一数据帧计算得到的传输速率,Ei表示预测误差,N(i)为噪声,Ti,i-1为当前数据帧的传输周期预测值。

4.如权利要求2所述的方法,其特征在于,步骤S1.2具体包括:将每个图像帧的传输周期表示为如下形式:

T=Td+Tw

其中,Td表示下载时间,Tw表示帧间等待时间,利用图像帧大小和传输时间上的差分获得瞬时带宽点:bw=Ddelta/Tdelta

其中,Ddelta和Tdelta分别表示数据包大小和传输周期的差分,bw表示一个瞬时带宽点。

5.如权利要求2所述的方法,其特征在于,步骤S1.3具体包括:利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:其中,Pt为设定的概率阈值,ave为最大概率区间内的带宽均值,bw[n-1]为末端带宽估算点,当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,此时估计带宽取该区间的均值;否则,根据末端带宽估算点、对应区间以及概率阈值进行计算。

6.如权利要求1所述的方法,其特征在于,步骤S2具体包括:步骤S2.1:对步骤S1中估计出的过去一个预设决策周期内的带宽,以预设码率为界限划分为对应的级别;

步骤S2.2:结合本地缓存,对不同级别的带宽中设定对应的充足缓冲阈值b_h和危险缓冲阈值b_l;

步骤S2.3:根据充足缓冲阈值b_h、危险缓冲阈值b_l以及前后两次预设决策周期内本地缓冲变化量delta的正负,将当前系统划分为固定的状态,并根据划分的状态选择码率。

7.如权利要求1所述的方法,其特征在于,步骤S3具体包括:利用播放器快慢播的机制,选择对应的目标缓冲区值,通过快播来控制时延,表达如下:tar_buffer=1.5-0.25×(bw/bitrate) if buffer(i)>threshold其中,tar_buffer为目标缓冲值大小,bw表示当前决策带宽,bitrate表示当前决策码率,buffer(i)和threshold分别表示决策时刻缓冲大小以及缓冲阈值,缓冲阈值的设定取决于当前决策带宽级别,带宽越大阈值越小,bw/bitrate的值代表未来一个决策周期内缓冲的变化趋势。

8.一种基于有限状态机的面向视频直播的码率自适应装置,其特征在于,包括:带宽估计模块,用于记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;

码率选择模块,用于对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,再根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定有限状态机的状态,再基于有限状态机的状态选择码率;

时延控制模块,用于根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至7中任一项权利要求所述的方法。

10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项权利要求所述的方法。

说明书 :

一种基于有限状态机的面向视频直播的码率自适应方法及

装置

技术领域

[0001] 本发明涉及视频直播技术领域,具体涉及一种基于有限状态机的面向视频直播的码率自适应方法及装置。

背景技术

[0002] 近年来,随着互联网的发展,音视频的传输量占网络流量的比例与日俱增,特别是新兴直播行业的发展,使得用户感知体验质量(QoE)在互联网视频应用中发挥着关键作用。鉴于互联网视频传输的复杂性以及存在各种瓶颈,直播客户端视频播放器中的码率自适应逻辑对于提升用户体验至关重要。
[0003] 直播客户端码率自适应的目标是根据网络的变化提供尽可能高的QoE,在最大化视频质量和最小化重缓冲时间的同时要避免频繁的码率切换,最后要保证尽可能低的时延以更好地实现主播与观众间的交互。其中高视频质量、低重缓冲时间以及低时延之间是矛盾的,即高视频质量可能使缓冲区达到比较危险的程度从而导致重缓冲,重缓冲过程中又会使时延陡升,但是低时延则不可避免的需要保持低缓存。
[0004] 本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
[0005] 现有的码率自适应算法都是基于点播实现的,例如著名的BBA、MPC以及pensieve,都是一个点播的场景,即它的源端视频信息全部保存在CDN,而不考虑源端的动态变化,其次它们都不考虑端到端的时延,而在视频直播场景中有严格的时延约束,由此在视频直播系统中对码率自适应提出了更加严峻的挑战。
[0006] 由此可知,现有技术中的方法存在码率的切换频率较高和视频直播效果较差的技术问题。

发明内容

[0007] 有鉴于此,本发明提供了一种基于有限状态机的面向视频直播的码率自适应方法及装置,用以解决或者至少部分解决现有技术中的方法存在码率的切换频率较高和视频直播效果较差的技术问题。
[0008] 本发明第一方面提供了一种基于有限状态机的面向视频直播的码率自适应方法,包括:
[0009] 步骤S1:记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;
[0010] 步骤S2:对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率;
[0011] 步骤S3:根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
[0012] 在一种实施方式中,步骤S1具体包括:
[0013] 步骤S1.1:对原始数据进行卡尔曼滤波;
[0014] 步骤S1.2:对进行卡尔曼滤波的n组数据,将相邻两帧图像包的大小和传输周期分别做差分,获得n-1个瞬时带宽点;
[0015] 步骤S1.3:将步骤S1.2得到的n-1个瞬时带宽点以码率为界限分档并统计落在每个档次区间的概率以及均值带宽,分析带宽分布,并根据带宽分布以及置信度估计出过去一个预设决策周期内的带宽。
[0016] 在一种实施方式中,步骤S1.1具体包括:
[0017] 将传输周期作为卡尔曼滤波器的目标参量,其中预测模型可以表示成:
[0018] Ti,i-1=Di/Ci-1+N(i)+Ei
[0019] 其中,Di为当前传输数据帧的大小,Ci-1为表示前一数据帧计算得到的传输速率,Ei表示预测误差,N(i)为噪声,Ti,i-1为当前数据帧的传输周期预测值。
[0020] 在一种实施方式中,步骤S1.2具体包括:
[0021] 将每个图像帧的传输周期表示为如下形式:
[0022] T=Td+Tw
[0023] 其中,Td表示下载时间,Tw表示帧间等待时间,利用图像帧大小和传输时间上的差分获得瞬时带宽点:
[0024] bw=Ddelta/Tdelta
[0025] 其中,Ddelta和Tdelta分别表示数据包大小和传输周期的差分,bw表示一个瞬时带宽点。
[0026] 在一种实施方式中,步骤S1.3具体包括:
[0027] 利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:
[0028]
[0029] 其中,Pt为设定的概率阈值,ave为最大概率区间内的带宽均值,bw[n-1]为末端带宽估算点,当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,此时估计带宽取该区间的均值;否则,根据末端带宽估算点、对应区间以及概率阈值进行计算。
[0030] 在一种实施方式中,步骤S2具体包括:
[0031] 步骤S2.1:对步骤S1中估计出的过去一个预设决策周期内的带宽,以预设码率为界限划分为对应的级别;
[0032] 步骤S2.2:结合本地缓存,对不同级别的带宽中设定对应的充足缓冲阈值b_h和危险缓冲阈值b_l;
[0033] 步骤S2.3:根据充足缓冲阈值b_h、危险缓冲阈值b_l以及前后两次预设决策周期内本地缓冲变化量delta的正负,将当前系统划分为固定的状态,并根据划分的状态选择码率。
[0034] 在一种实施方式中,步骤S3具体包括:
[0035] 利用播放器快慢播的机制,选择对应的目标缓冲区值,通过快播来控制时延,表达如下:
[0036] tar_buffer=1.5-0.25×(bw/bitrate)if buffer(i)>threshold
[0037] 其中,tar_buffer为目标缓冲值大小,bw表示当前决策带宽,bitrate表示当前决策码率,buffer(i)和threshold分表表示决策时刻缓冲大小以及缓冲阈值,缓冲阈值的设定取决于当前决策带宽级别,带宽越大阈值越小,bw/bitrate的值代表未来一个决策周期内缓冲的变化趋势。
[0038] 基于同样的发明构思,本发明第二方面提供了一种基于有限状态机的面向视频直播的码率自适应装置,包括:
[0039] 带宽估计模块,用于记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;
[0040] 码率选择模块,用于对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,再根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率;
[0041] 时延控制模块,用于根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
[0042] 基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
[0043] 基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
[0044] 本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0045] 本发明提供的是一种基于有限状态机的面向视频直播的码率自适应方法,用于提高对网络可用带宽的利用效率以及动态调节码率以提升用户的直播观看体验。
[0046] 与现有技术相比,本发明从带宽估计、缓冲区分级以及时延控制三个层次,提出了面向当前新型网络直播领域码率自适应的方法,可以利用系统的历史观测值(原始数据)估计过去一个预设决策周期内带宽,通过分析过去一个预设决策周期内带宽的统计特性来判断下个决策期带宽的走势,然后进行缓冲区分级,利用有限状态机的机制选择码率,最后以当前估算带宽与选择码率的比值作为衡量未来一段时间内缓存变化速度的指标,从而进行时延控制。可以在最大化视频质量和最小化重缓冲时间的基础上,满足直播过程中低时延的要求,并利用有限状态机的码率决策机制减少了码率的切换频率,提高了视频的平滑度,改善了用户体验,可以应用于视频直播领域。

附图说明

[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0048] 图1为本发明实施例中一种基于有限状态机的面向视频直播的码率自适应方法的流程图;
[0049] 图2为本发明实施例中利用有限状态机机制选择码率的原理图;
[0050] 图3为本发明实施例中基于有限状态机的面向视频直播的码率自适应装置的结构框图;
[0051] 图4为本发明实施例中一种计算机可读存储介质的结构框图;
[0052] 图5为本发明实施例中计算机设备的结构图。

具体实施方式

[0053] 本发明的目的在于:基于有限状态机的思想,根据系统环境中收集到的每帧图像大小、每帧图像传达时间、本地缓存大小以及当前端到端时延四个信息量分析得到当前的系统状态,在保证最大化视频质量以及低时延的同时减少码率的切换频率,提高视频直播的平滑度。
[0054] 为了达到上述目的或者技术效果,本发明的主要构思如下:
[0055] 提供一种基于有限状态机的面向视频直播的码率自适应方法,首先利用原始数据进行带宽估计,然后对估计初的带宽设置不同大小的安全缓冲阈值和危险缓冲阈值,并加入状态机的码率决策机制;最后根据当前带宽、选择码率得到未来缓存的变化趋势来动态调节决定播放器快慢播阈值的变量,从而进行时延控制。
[0056] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057] 实施例一
[0058] 当前新型视频直播领域对时延、实时性的要求给视频码率自适应传输提出了严峻挑战,很多优秀的码率自适应方法可以很好的应对一个点播的场景,然而它们对本地缓存的级别以及时延没有提出严格要求。本发明方法分带宽估计、缓冲区分级以及时延控制三步进行,并在缓冲区分级中加入状态机的码率决策机制以实现直播码率自适应,可以在保证最大化视频质量、低时延的同时减少码率切换频率,提高视频播放的平滑度。
[0059] 本发明实施例提出的基于有限状态机的面向网络视频直播的码率自适应方法的流程包括带宽估计、缓冲区分级以及时延控制三个主要步骤,系统的传输以每一帧图像数据为单位,并反馈每帧图像的传输状态,包括每帧图像的数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延。具体实现流程如下所示。
[0060] 本实施例提供了一种基于有限状态机的面向视频直播的码率自适应方法,请参见图1,该方法包括:
[0061] 首先执行步骤S1:记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延。
[0062] 具体来说,由于现有的码率自适应算法都是基于点播实现的,例如著名的BBA、MPC以及pensieve都是一个点播的场景,即它的源端视频信息全部保存在CDN,而不考虑源端的动态变化,其次它们都不考虑端到端的时延,而在视频直播场景中有严格的时延约束,由此在视频直播系统中对码率自适应提出了更加严峻的挑战。如何权衡视频质量、重缓冲时间、时延以及切换频率四项指标以达到尽可能高的QoE是本发明需要解决的问题。
[0063] 通过收集过去一个预设决策周期内的原始数据,然后利用历史观测值来估计过去一个预设决策周期内的带宽,
[0064] 然后执行步骤S2:对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率。
[0065] 具体来说,可以根据不同的带宽设置不同的充足缓冲阈值和危险缓冲阈值,将其作为判定当前缓冲大小的判定界限,例如,当当前缓冲大小大于充足缓冲阈值时,表示缓存足够。两次预设决策周期内缓冲的变化量,可以为正或者为负。
[0066] 再执行步骤S3:根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
[0067] 具体来说,快慢播阈值与目标缓冲值的大小有直接关系,当当前缓存大小大于快播阈值时进行快播,例如实际1秒播放1.05秒的视频,当当前缓存大小小于慢播阈值是进行慢播,即实际1秒只播放0.95秒的视频,其他情况正常播放,利用播放器快慢播的机制,可以选择合适的目标缓冲区值,从而控制时延。调节缓存是指确定目标缓冲值的大小。
[0068] 在一种实施方式中,步骤S1具体包括:
[0069] 步骤S1.1:对原始数据进行卡尔曼滤波;
[0070] 步骤S1.2:对进行卡尔曼滤波的n组数据,将相邻两帧图像包的大小和传输周期分别做差分,获得n-1个瞬时带宽点;
[0071] 步骤S1.3:将步骤S1.2得到的n-1个瞬时带宽点以码率为界限分档并统计落在每个档次区间的概率以及均值带宽,分析带宽分布,并根据带宽分布以及置信度估计出过去一个预设决策周期内的带宽。
[0072] 具体来说,步骤S1.1中,假设噪声服从高斯分布,预滤波可以处理延时瞬变的情况,从而可以得到较平滑的速率曲线。
[0073] 步骤S1.2中,将相邻两帧图像包的大小和传输周期分别做差分,可以去除传输周期中可能存在的等待时长,然后通过进行差分运算后的数据包大小和传输周期作比,可以得到更准确的n-1个瞬时带宽点,否则容易低估可用网络带宽。
[0074] 步骤S1.3中,通过分析过去一个预设决策周期内带宽的统计特性(即带宽数据的分布)可以判断下个决策期带宽的走势码率,自适应是根据对过去一个预设决策周期内网络的观测,对码率做出动态调整。
[0075] 在一种实施方式中,步骤S1.1具体包括:
[0076] 将传输周期作为卡尔曼滤波器的目标参量,其中预测模型可以表示成:
[0077] Ti,i-1=Di/Ci-1+N(i)+Ei
[0078] 其中,Di为当前传输数据帧的大小,Ci-1为表示前一数据帧计算得到的传输速率,Ei表示预测误差,N(i)为噪声,Ti,i-1为当前数据帧的传输周期预测值。
[0079] 在一种实施方式中,步骤S1.2具体包括:
[0080] 将每个图像帧的传输周期表示为如下形式:
[0081] T=Td+Tw
[0082] 其中,Td表示下载时间,Tw表示帧间等待时间,利用图像帧大小和传输时间上的差分获得瞬时带宽点:
[0083] bw=Ddelta/Tdelta
[0084] 其中,Ddelta和Tdelta分别表示数据包大小和传输周期的差分,bw表示一个瞬时带宽点。
[0085] 具体来说,瞬时带宽点指前面两个相邻数据差分作商得到的传输速率,瞬时带宽点即带宽估算点。后续的带宽决策(或者带宽估计)是根据前面n-1个瞬时带宽点的分布给出一个这段时间可信度最高的带宽,供码率决策参考。
[0086] 在一种实施方式中,步骤S1.3具体包括:
[0087] 利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:
[0088]
[0089] 其中,Pt为设定的概率阈值,ave为最大概率区间内的带宽均值,bw[n-1]为末端带宽估算点,当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,此时估计带宽取该区间的均值;否则,根据末端带宽估算点、对应区间以及概率阈值进行计算。
[0090] 具体来说,通过步骤S1.2仍然存在少量突变值或者错误估算值,则可以以预设码率为界限对估算带宽点分档(或者分级),利用概率统计和置信度确认,将带宽估算误差控制在一个合理的范围内,最后给出带宽决策(即估计出带宽)。当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,说明带宽变化平缓,则认为可靠,即置信度高,否则带宽变化剧烈,不可靠。根据末端带宽估算点、对应区间以及概率阈值进行计算,具体为:由于最后一个带宽点和未来决策期的带宽相关性更高,则给予末端带宽估算点更高的置信度,将概率阈值增大。
[0091] 在具体的实施过程中,概率阈值的推荐值为0.6~0.8,可以根据实际情况进行调整。
[0092] 在一种实施方式中,步骤S2具体包括:
[0093] 步骤S2.1:对步骤S1中估计出的过去一个预设决策周期内的带宽,以预设码率为界限划分为对应的级别;
[0094] 步骤S2.2:结合本地缓存,对不同级别的带宽中设定对应的充足缓冲阈值b_h和危险缓冲阈值b_l;
[0095] 步骤S2.3:根据充足缓冲阈值b_h、危险缓冲阈值b_l以及前后两次预设决策周期内本地缓冲变化量delta的正负,将当前系统划分为固定的状态,并根据划分的状态选择码率。
[0096] 具体来说,步骤S2.1中,预设码率是已知且固定的,由低到高对应于视频的标清、高清、超清等,可以根据实际应用来确定。以预设码率为参考是因为最终带宽决策的误差应尽可能在相邻两个码率的区间内,例如,有500kbps和800kbps两个码率,带宽估算在500-800kbps,则对后续的码率决策影响不大,大概率选择500kbps的码率而不会有卡顿的危险,而<800kbps与>800kbps的情况很可能就是两种不同的码率决策结果,这两种决策则可以通过本步骤中的充足缓冲阈值b_h和危险缓冲阈值b_l来进行判断,进而进行调整。
[0097] 对带宽的级别划分主要是对不同层次的带宽设置不同大小的充足缓冲阈值和危险缓冲阈值,使控制精度更高,如果使用同一个阈值标准,最终性能有所下降。通过对决策带宽以码率为界限分级,可以实现更准确的码率控制。
[0098] 步骤S2.2中,b_h以及b_l的推荐值分别为2.0s和0.8s。
[0099] 步骤S2.3中,利用状态机的机制,根据状态选择码率,可以避免因为网络的频繁变化而导致频繁的码率切换,即尽可能在保证平均视频质量不受影响以及低重缓冲时间和低时延的同时,减少码率切换频率,提高视频的平滑度。
[0100] 在具体的实施过程中,利用有限状态机机制选择码率的具体过程如图2所示,[0101] 系统可以分为总的4个状态。第一个表示缓存足够(首次超过b_h),并且带宽大于码率,缓存增大,此时选择高码率;第二个表示缓存足够(>b_l,但带宽小于码率,缓存减小,此时仍然保持高码率;第三个表示缓存不够(
[0102] 本发明采用有限状态机来对码率进行选择,目的是避免因网络的频繁变化导致码率的频繁切换,即把高码率收拢在一起,低码率也尽可能集中在一起,在相同的时间内,平均码率保持不变,但码率跳动更少了。
[0103] 在一种实施方式中,步骤S3具体包括:
[0104] 利用播放器快慢播的机制,选择对应的目标缓冲区值,通过快播来控制时延,表达如下:
[0105] tar_buffer=1.5-0.25×(bw/bitrate)if buffer(i)>threshold
[0106] 其中,tar_buffer为目标缓冲值大小,bw表示当前决策带宽,bitrate表示当前决策码率,buffer(i)和threshold分表表示决策时刻缓冲大小以及缓冲阈值,缓冲阈值的设定取决于当前决策带宽级别,带宽越大阈值越小,bw/bitrate的值代表未来一个决策周期内缓冲的变化趋势。
[0107] 具体来说,将充足缓冲阈值b_h和危险缓冲阈值b_l为当前缓冲判定界限,当带宽较小,缓存足够仍然可能保持高码率;当带宽较大,缓存较小,也会保持低码率。
[0108] 缓冲阈值区别于充足缓冲阈值还是危险缓冲阈值,缓冲阈值是用来决定目标缓冲值的选取,取值符合带宽越大,阈值越小的规律;而充足缓冲阈值b_h和危险缓冲阈值b_l是作为当前缓冲判定界限,用于与缓存变化量一起判断系统状态,用来决策码率不在码率控制内。
[0109] 快慢播阈值与目标缓冲值的大小有直接关系,作为优选,快播阈值为目标缓冲值大小,慢播阈值为目标缓冲值的2/3,当当前缓存大小大于快播阈值进行快播,即实际1秒播放1.05秒的视频,当当前缓存大小小于慢播阈值进行慢播,即实际1秒只播放0.95秒的视频,其他情况正常播放,利用播放器快慢播的机制,选择合适的目标缓冲区值,来控制时延。
[0110] 作为优选,当时延与本地缓存的差距较大,即CDN端累计数据较多时,本发明还可以加入如下保护措施:
[0111] tar_buffer=latency(i)-0.5if latency(i)-buffer(i)>1.2
[0112] 并且使码率:bitrate=0
[0113] 即,在累计缓存的同时快速减少时延,使缓存达到安全范围,避免卡顿以及解决卡顿时引起的时延突变。
[0114] 为了便于本领域普通技术人员理解和实施本发明,下面通过一个具体示例对本发明提供的码率自适应进行详细说明。
[0115] 具体实施时,可采用软件方式实现以上流程的自动运行,通过观测系统一段时间内的平均视频质量Bitrate、卡顿时间Rebuff、时延Latency以及切换频率Smooth,QoE可以由以下表达式给出:
[0116] QoE=QoE1+QoE2
[0117] QoE1=playtime×Bitrate-1.5×Rebuff-0.005×Latency
[0118] QoE2=-0.02×Smooth
[0119] 其中QoE1表示帧级别得分,QoE2为每组Gop得分,QoE表示总体得分。以下分别对强中弱三种网络进行10段24分钟视频测试如下,其中码率可选500kbps和1200bps,每0.5s一次决策,每1s视频一个I帧,遇到I帧才执行码率切换。
[0120] 通过执行步骤S1~S3所得的相关数据见表1,通过采用以上流程进行实验可知,本发明对不同的网络有着较强的鲁棒性。
[0121] 表1
[0122] 网络环境 QoE 平均时延(秒) 平均切换频率(次)强 122.4 1.2 270
中 111.8 1.2 331
弱 94.1 1.5 462
[0123] 与现有技术相比,本发明从带宽估计、缓冲区分级以及时延控制三个层次,提出了面向当前新型网络直播领域码率自适应的一种方法,在最大化视频质量和最小化重缓冲时间的基础上,满足了直播过程中低时延的要求,并利用有限状态机的码率决策机制减少了码率的切换频率,提高了视频的平滑度,改善了用户体验,可以应用于视频直播领域。
[0124] 基于同一发明构思,本申请还提供了与实施例一中基于有限状态机的面向视频直播的码率自适应方法对应的装置,详见实施例二。
[0125] 实施例二
[0126] 本实施例提供了一种基于有限状态机的面向视频直播的码率自适应装置,请参见图3,该装置包括:
[0127] 带宽估计模块201,用于记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;
[0128] 码率选择模块202,用于对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,再根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率;
[0129] 时延控制模块203,用于根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
[0130] 在一种实施方式中,带宽估计模块201具体用于执行下述步骤:
[0131] 步骤S1.1:对原始数据进行卡尔曼滤波;
[0132] 步骤S1.2:对进行卡尔曼滤波的n组数据,将相邻两帧图像包的大小和传输周期分别做差分,获得n-1个瞬时带宽点;
[0133] 步骤S1.3:将步骤S1.2得到的n-1个瞬时带宽点以码率为界限分档并统计落在每个档次区间的概率以及均值带宽,分析带宽分布,并根据带宽分布以及置信度估计出过去一个预设决策周期内的带宽。
[0134] 在一种实施方式中,带宽估计模块201,还用于:
[0135] 将传输周期作为卡尔曼滤波器的目标参量,其中预测模型可以表示成:
[0136] Ti,i-1=Di/Ci-1+N(i)+Ei
[0137] 其中,Di为当前传输数据帧的大小,Ci-1为表示前一数据帧计算得到的传输速率,Ei表示预测误差,N(i)为噪声,Ti,i-1为当前数据帧的传输周期预测值。
[0138] 在一种实施方式中,带宽估计模块201,还用于:
[0139] 将每个图像帧的传输周期表示为如下形式:
[0140] T=Td+Tw
[0141] 其中,Td表示下载时间,Tw表示帧间等待时间,利用图像帧大小和传输时间上的差分获得瞬时带宽点:
[0142] bw=Ddelta/Tdelta
[0143] 其中,Ddelta和Tdelta分别表示数据包大小和传输周期的差分,bw表示一个瞬时带宽点。
[0144] 在一种实施方式中,带宽估计模块201,还用于:
[0145] 利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:
[0146]
[0147] 其中,Pt为设定的概率阈值,ave为最大概率区间内的带宽均值,bw[n-1]为末端带宽估算点,当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,此时估计带宽取该区间的均值;否则,根据末端带宽估算点、对应区间以及概率阈值进行计算。
[0148] 在一种实施方式中,码率选择模块202,具体用于执行下述步骤:
[0149] 步骤S2.1:对步骤S1中估计出的过去一个预设决策周期内的带宽,以预设码率为界限划分为对应的级别;
[0150] 步骤S2.2:结合本地缓存,对不同级别的带宽中设定对应的充足缓冲阈值b_h和危险缓冲阈值b_l;
[0151] 步骤S2.3:根据充足缓冲阈值b_h、危险缓冲阈值b_l以及前后两次预设决策周期内本地缓冲变化量delta的正负,将当前系统划分为固定的状态,并根据划分的状态选择码率。
[0152] 在一种实施方式中,时延控制模块203,具体用于:
[0153] 利用播放器快慢播的机制,选择对应的目标缓冲区值,通过快播来控制时延,表达如下:
[0154] tar_buffer=1.5-0.25×(bw/bitrate)if buffer(i)>threshold
[0155] 其中,tar_buffer为目标缓冲值大小,bw表示当前决策带宽,bitrate表示当前决策码率,buffer(i)和threshold分表表示决策时刻缓冲大小以及缓冲阈值,缓冲阈值的设定取决于当前决策带宽级别,带宽越大阈值越小,bw/bitrate的值代表未来一个决策周期内缓冲的变化趋势。
[0156] 由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于有限状态机的面向视频直播的码率自适应方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
[0157] 实施例三
[0158] 请参见图4,基于同一发明构思,本申请还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。
[0159] 由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中基于有限状态机的面向视频直播的码率自适应方法所采用的可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
[0160] 实施例四
[0161] 基于同一发明构思,本申请还提供了一种计算机设备,请参见图5,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器402执行上述程序时实现实施例一中的方法。
[0162] 由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于有限状态机的面向视频直播的码率自适应方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
[0163] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0164] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0165] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0166] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。