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

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

Info

Publication number
CN109996087B
CN109996087B CN201910218253.9A CN201910218253A CN109996087B CN 109996087 B CN109996087 B CN 109996087B CN 201910218253 A CN201910218253 A CN 201910218253A CN 109996087 B CN109996087 B CN 109996087B
Authority
CN
China
Prior art keywords
bandwidth
buffer
threshold
code rate
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910218253.9A
Other languages
English (en)
Other versions
CN109996087A (zh
Inventor
肖晶
陈俊奎
卓泽宇
陈宇
廖良
王中元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201910218253.9A priority Critical patent/CN109996087B/zh
Publication of CN109996087A publication Critical patent/CN109996087A/zh
Application granted granted Critical
Publication of CN109996087B publication Critical patent/CN109996087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

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

Description

一种基于有限状态机的面向视频直播的码率自适应方法及 装置
技术领域
本发明涉及视频直播技术领域,具体涉及一种基于有限状态机的面向视频直播的码率自适应方法及装置。
背景技术
近年来,随着互联网的发展,音视频的传输量占网络流量的比例与日俱增,特别是新兴直播行业的发展,使得用户感知体验质量(QoE)在互联网视频应用中发挥着关键作用。鉴于互联网视频传输的复杂性以及存在各种瓶颈,直播客户端视频播放器中的码率自适应逻辑对于提升用户体验至关重要。
直播客户端码率自适应的目标是根据网络的变化提供尽可能高的QoE,在最大化视频质量和最小化重缓冲时间的同时要避免频繁的码率切换,最后要保证尽可能低的时延以更好地实现主播与观众间的交互。其中高视频质量、低重缓冲时间以及低时延之间是矛盾的,即高视频质量可能使缓冲区达到比较危险的程度从而导致重缓冲,重缓冲过程中又会使时延陡升,但是低时延则不可避免的需要保持低缓存。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有的码率自适应算法都是基于点播实现的,例如著名的BBA、MPC以及pensieve,都是一个点播的场景,即它的源端视频信息全部保存在CDN,而不考虑源端的动态变化,其次它们都不考虑端到端的时延,而在视频直播场景中有严格的时延约束,由此在视频直播系统中对码率自适应提出了更加严峻的挑战。
由此可知,现有技术中的方法存在码率的切换频率较高和视频直播效果较差的技术问题。
发明内容
有鉴于此,本发明提供了一种基于有限状态机的面向视频直播的码率自适应方法及装置,用以解决或者至少部分解决现有技术中的方法存在码率的切换频率较高和视频直播效果较差的技术问题。
本发明第一方面提供了一种基于有限状态机的面向视频直播的码率自适应方法,包括:
步骤S1:记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;
步骤S2:对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率;
步骤S3:根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
在一种实施方式中,步骤S1具体包括:
步骤S1.1:对原始数据进行卡尔曼滤波;
步骤S1.2:对进行卡尔曼滤波的n组数据,将相邻两帧图像包的大小和传输周期分别做差分,获得n-1个瞬时带宽点;
步骤S1.3:将步骤S1.2得到的n-1个瞬时带宽点以码率为界限分档并统计落在每个档次区间的概率以及均值带宽,分析带宽分布,并根据带宽分布以及置信度估计出过去一个预设决策周期内的带宽。
在一种实施方式中,步骤S1.1具体包括:
将传输周期作为卡尔曼滤波器的目标参量,其中预测模型可以表示成:
Ti,i-1=Di/Ci-1+N(i)+Ei
其中,Di为当前传输数据帧的大小,Ci-1为表示前一数据帧计算得到的传输速率,Ei表示预测误差,N(i)为噪声,Ti,i-1为当前数据帧的传输周期预测值。
在一种实施方式中,步骤S1.2具体包括:
将每个图像帧的传输周期表示为如下形式:
T=Td+Tw
其中,Td表示下载时间,Tw表示帧间等待时间,利用图像帧大小和传输时间上的差分获得瞬时带宽点:
bw=Ddelta/Tdelta
其中,Ddelta和Tdelta分别表示数据包大小和传输周期的差分,bw表示一个瞬时带宽点。
在一种实施方式中,步骤S1.3具体包括:
利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:
Figure BDA0002002746160000031
其中,Pt为设定的概率阈值,ave为最大概率区间内的带宽均值,bw[n-1]为末端带宽估算点,当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,此时估计带宽取该区间的均值;否则,根据末端带宽估算点、对应区间以及概率阈值进行计算。
在一种实施方式中,步骤S2具体包括:
步骤S2.1:对步骤S1中估计出的过去一个预设决策周期内的带宽,以预设码率为界限划分为对应的级别;
步骤S2.2:结合本地缓存,对不同级别的带宽中设定对应的充足缓冲阈值b_h和危险缓冲阈值b_l;
步骤S2.3:根据充足缓冲阈值b_h、危险缓冲阈值b_l以及前后两次预设决策周期内本地缓冲变化量delta的正负,将当前系统划分为固定的状态,并根据划分的状态选择码率。
在一种实施方式中,步骤S3具体包括:
利用播放器快慢播的机制,选择对应的目标缓冲区值,通过快播来控制时延,表达如下:
tar_buffer=1.5-0.25×(bw/bitrate)if buffer(i)>threshold
其中,tar_buffer为目标缓冲值大小,bw表示当前决策带宽,bitrate表示当前决策码率,buffer(i)和threshold分表表示决策时刻缓冲大小以及缓冲阈值,缓冲阈值的设定取决于当前决策带宽级别,带宽越大阈值越小,bw/bitrate的值代表未来一个决策周期内缓冲的变化趋势。
基于同样的发明构思,本发明第二方面提供了一种基于有限状态机的面向视频直播的码率自适应装置,包括:
带宽估计模块,用于记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;
码率选择模块,用于对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,再根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率;
时延控制模块,用于根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的是一种基于有限状态机的面向视频直播的码率自适应方法,用于提高对网络可用带宽的利用效率以及动态调节码率以提升用户的直播观看体验。
与现有技术相比,本发明从带宽估计、缓冲区分级以及时延控制三个层次,提出了面向当前新型网络直播领域码率自适应的方法,可以利用系统的历史观测值(原始数据)估计过去一个预设决策周期内带宽,通过分析过去一个预设决策周期内带宽的统计特性来判断下个决策期带宽的走势,然后进行缓冲区分级,利用有限状态机的机制选择码率,最后以当前估算带宽与选择码率的比值作为衡量未来一段时间内缓存变化速度的指标,从而进行时延控制。可以在最大化视频质量和最小化重缓冲时间的基础上,满足直播过程中低时延的要求,并利用有限状态机的码率决策机制减少了码率的切换频率,提高了视频的平滑度,改善了用户体验,可以应用于视频直播领域。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于有限状态机的面向视频直播的码率自适应方法的流程图;
图2为本发明实施例中利用有限状态机机制选择码率的原理图;
图3为本发明实施例中基于有限状态机的面向视频直播的码率自适应装置的结构框图;
图4为本发明实施例中一种计算机可读存储介质的结构框图;
图5为本发明实施例中计算机设备的结构图。
具体实施方式
本发明的目的在于:基于有限状态机的思想,根据系统环境中收集到的每帧图像大小、每帧图像传达时间、本地缓存大小以及当前端到端时延四个信息量分析得到当前的系统状态,在保证最大化视频质量以及低时延的同时减少码率的切换频率,提高视频直播的平滑度。
为了达到上述目的或者技术效果,本发明的主要构思如下:
提供一种基于有限状态机的面向视频直播的码率自适应方法,首先利用原始数据进行带宽估计,然后对估计初的带宽设置不同大小的安全缓冲阈值和危险缓冲阈值,并加入状态机的码率决策机制;最后根据当前带宽、选择码率得到未来缓存的变化趋势来动态调节决定播放器快慢播阈值的变量,从而进行时延控制。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
当前新型视频直播领域对时延、实时性的要求给视频码率自适应传输提出了严峻挑战,很多优秀的码率自适应方法可以很好的应对一个点播的场景,然而它们对本地缓存的级别以及时延没有提出严格要求。本发明方法分带宽估计、缓冲区分级以及时延控制三步进行,并在缓冲区分级中加入状态机的码率决策机制以实现直播码率自适应,可以在保证最大化视频质量、低时延的同时减少码率切换频率,提高视频播放的平滑度。
本发明实施例提出的基于有限状态机的面向网络视频直播的码率自适应方法的流程包括带宽估计、缓冲区分级以及时延控制三个主要步骤,系统的传输以每一帧图像数据为单位,并反馈每帧图像的传输状态,包括每帧图像的数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延。具体实现流程如下所示。
本实施例提供了一种基于有限状态机的面向视频直播的码率自适应方法,请参见图1,该方法包括:
首先执行步骤S1:记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延。
具体来说,由于现有的码率自适应算法都是基于点播实现的,例如著名的BBA、MPC以及pensieve都是一个点播的场景,即它的源端视频信息全部保存在CDN,而不考虑源端的动态变化,其次它们都不考虑端到端的时延,而在视频直播场景中有严格的时延约束,由此在视频直播系统中对码率自适应提出了更加严峻的挑战。如何权衡视频质量、重缓冲时间、时延以及切换频率四项指标以达到尽可能高的QoE是本发明需要解决的问题。
通过收集过去一个预设决策周期内的原始数据,然后利用历史观测值来估计过去一个预设决策周期内的带宽,
然后执行步骤S2:对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率。
具体来说,可以根据不同的带宽设置不同的充足缓冲阈值和危险缓冲阈值,将其作为判定当前缓冲大小的判定界限,例如,当当前缓冲大小大于充足缓冲阈值时,表示缓存足够。两次预设决策周期内缓冲的变化量,可以为正或者为负。
再执行步骤S3:根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
具体来说,快慢播阈值与目标缓冲值的大小有直接关系,当当前缓存大小大于快播阈值时进行快播,例如实际1秒播放1.05秒的视频,当当前缓存大小小于慢播阈值是进行慢播,即实际1秒只播放0.95秒的视频,其他情况正常播放,利用播放器快慢播的机制,可以选择合适的目标缓冲区值,从而控制时延。调节缓存是指确定目标缓冲值的大小。
在一种实施方式中,步骤S1具体包括:
步骤S1.1:对原始数据进行卡尔曼滤波;
步骤S1.2:对进行卡尔曼滤波的n组数据,将相邻两帧图像包的大小和传输周期分别做差分,获得n-1个瞬时带宽点;
步骤S1.3:将步骤S1.2得到的n-1个瞬时带宽点以码率为界限分档并统计落在每个档次区间的概率以及均值带宽,分析带宽分布,并根据带宽分布以及置信度估计出过去一个预设决策周期内的带宽。
具体来说,步骤S1.1中,假设噪声服从高斯分布,预滤波可以处理延时瞬变的情况,从而可以得到较平滑的速率曲线。
步骤S1.2中,将相邻两帧图像包的大小和传输周期分别做差分,可以去除传输周期中可能存在的等待时长,然后通过进行差分运算后的数据包大小和传输周期作比,可以得到更准确的n-1个瞬时带宽点,否则容易低估可用网络带宽。
步骤S1.3中,通过分析过去一个预设决策周期内带宽的统计特性(即带宽数据的分布)可以判断下个决策期带宽的走势码率,自适应是根据对过去一个预设决策周期内网络的观测,对码率做出动态调整。
在一种实施方式中,步骤S1.1具体包括:
将传输周期作为卡尔曼滤波器的目标参量,其中预测模型可以表示成:
Ti,i-1=Di/Ci-1+N(i)+Ei
其中,Di为当前传输数据帧的大小,Ci-1为表示前一数据帧计算得到的传输速率,Ei表示预测误差,N(i)为噪声,Ti,i-1为当前数据帧的传输周期预测值。
在一种实施方式中,步骤S1.2具体包括:
将每个图像帧的传输周期表示为如下形式:
T=Td+Tw
其中,Td表示下载时间,Tw表示帧间等待时间,利用图像帧大小和传输时间上的差分获得瞬时带宽点:
bw=Ddelta/Tdelta
其中,Ddelta和Tdelta分别表示数据包大小和传输周期的差分,bw表示一个瞬时带宽点。
具体来说,瞬时带宽点指前面两个相邻数据差分作商得到的传输速率,瞬时带宽点即带宽估算点。后续的带宽决策(或者带宽估计)是根据前面n-1个瞬时带宽点的分布给出一个这段时间可信度最高的带宽,供码率决策参考。
在一种实施方式中,步骤S1.3具体包括:
利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:
Figure BDA0002002746160000081
其中,Pt为设定的概率阈值,ave为最大概率区间内的带宽均值,bw[n-1]为末端带宽估算点,当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,此时估计带宽取该区间的均值;否则,根据末端带宽估算点、对应区间以及概率阈值进行计算。
具体来说,通过步骤S1.2仍然存在少量突变值或者错误估算值,则可以以预设码率为界限对估算带宽点分档(或者分级),利用概率统计和置信度确认,将带宽估算误差控制在一个合理的范围内,最后给出带宽决策(即估计出带宽)。当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,说明带宽变化平缓,则认为可靠,即置信度高,否则带宽变化剧烈,不可靠。根据末端带宽估算点、对应区间以及概率阈值进行计算,具体为:由于最后一个带宽点和未来决策期的带宽相关性更高,则给予末端带宽估算点更高的置信度,将概率阈值增大。
在具体的实施过程中,概率阈值的推荐值为0.6~0.8,可以根据实际情况进行调整。
在一种实施方式中,步骤S2具体包括:
步骤S2.1:对步骤S1中估计出的过去一个预设决策周期内的带宽,以预设码率为界限划分为对应的级别;
步骤S2.2:结合本地缓存,对不同级别的带宽中设定对应的充足缓冲阈值b_h和危险缓冲阈值b_l;
步骤S2.3:根据充足缓冲阈值b_h、危险缓冲阈值b_l以及前后两次预设决策周期内本地缓冲变化量delta的正负,将当前系统划分为固定的状态,并根据划分的状态选择码率。
具体来说,步骤S2.1中,预设码率是已知且固定的,由低到高对应于视频的标清、高清、超清等,可以根据实际应用来确定。以预设码率为参考是因为最终带宽决策的误差应尽可能在相邻两个码率的区间内,例如,有500kbps和800kbps两个码率,带宽估算在500-800kbps,则对后续的码率决策影响不大,大概率选择500kbps的码率而不会有卡顿的危险,而<800kbps与>800kbps的情况很可能就是两种不同的码率决策结果,这两种决策则可以通过本步骤中的充足缓冲阈值b_h和危险缓冲阈值b_l来进行判断,进而进行调整。
对带宽的级别划分主要是对不同层次的带宽设置不同大小的充足缓冲阈值和危险缓冲阈值,使控制精度更高,如果使用同一个阈值标准,最终性能有所下降。通过对决策带宽以码率为界限分级,可以实现更准确的码率控制。
步骤S2.2中,b_h以及b_l的推荐值分别为2.0s和0.8s。
步骤S2.3中,利用状态机的机制,根据状态选择码率,可以避免因为网络的频繁变化而导致频繁的码率切换,即尽可能在保证平均视频质量不受影响以及低重缓冲时间和低时延的同时,减少码率切换频率,提高视频的平滑度。
在具体的实施过程中,利用有限状态机机制选择码率的具体过程如图2所示,
系统可以分为总的4个状态。第一个表示缓存足够(首次超过b_h),并且带宽大于码率,缓存增大,此时选择高码率;第二个表示缓存足够(>b_l,但带宽小于码率,缓存减小,此时仍然保持高码率;第三个表示缓存不够(<b_l),此时不管带宽码率如何,选择低码率以累计缓存;第四表示缓存在累计但不够(<b_h),此时仍然选择低码率直到达到第一个状态。
本发明采用有限状态机来对码率进行选择,目的是避免因网络的频繁变化导致码率的频繁切换,即把高码率收拢在一起,低码率也尽可能集中在一起,在相同的时间内,平均码率保持不变,但码率跳动更少了。
在一种实施方式中,步骤S3具体包括:
利用播放器快慢播的机制,选择对应的目标缓冲区值,通过快播来控制时延,表达如下:
tar_buffer=1.5-0.25×(bw/bitrate)if buffer(i)>threshold
其中,tar_buffer为目标缓冲值大小,bw表示当前决策带宽,bitrate表示当前决策码率,buffer(i)和threshold分表表示决策时刻缓冲大小以及缓冲阈值,缓冲阈值的设定取决于当前决策带宽级别,带宽越大阈值越小,bw/bitrate的值代表未来一个决策周期内缓冲的变化趋势。
具体来说,将充足缓冲阈值b_h和危险缓冲阈值b_l为当前缓冲判定界限,当带宽较小,缓存足够仍然可能保持高码率;当带宽较大,缓存较小,也会保持低码率。
缓冲阈值区别于充足缓冲阈值还是危险缓冲阈值,缓冲阈值是用来决定目标缓冲值的选取,取值符合带宽越大,阈值越小的规律;而充足缓冲阈值b_h和危险缓冲阈值b_l是作为当前缓冲判定界限,用于与缓存变化量一起判断系统状态,用来决策码率不在码率控制内。
快慢播阈值与目标缓冲值的大小有直接关系,作为优选,快播阈值为目标缓冲值大小,慢播阈值为目标缓冲值的2/3,当当前缓存大小大于快播阈值进行快播,即实际1秒播放1.05秒的视频,当当前缓存大小小于慢播阈值进行慢播,即实际1秒只播放0.95秒的视频,其他情况正常播放,利用播放器快慢播的机制,选择合适的目标缓冲区值,来控制时延。
作为优选,当时延与本地缓存的差距较大,即CDN端累计数据较多时,本发明还可以加入如下保护措施:
tar_buffer=latency(i)-0.5if latency(i)-buffer(i)>1.2
并且使码率:bitrate=0
即,在累计缓存的同时快速减少时延,使缓存达到安全范围,避免卡顿以及解决卡顿时引起的时延突变。
为了便于本领域普通技术人员理解和实施本发明,下面通过一个具体示例对本发明提供的码率自适应进行详细说明。
具体实施时,可采用软件方式实现以上流程的自动运行,通过观测系统一段时间内的平均视频质量Bitrate、卡顿时间Rebuff、时延Latency以及切换频率Smooth,QoE可以由以下表达式给出:
QoE=QoE1+QoE2
QoE1=playtime×Bitrate-1.5×Rebuff-0.005×Latency
QoE2=-0.02×Smooth
其中QoE1表示帧级别得分,QoE2为每组Gop得分,QoE表示总体得分。以下分别对强中弱三种网络进行10段24分钟视频测试如下,其中码率可选500kbps和1200bps,每0.5s一次决策,每1s视频一个I帧,遇到I帧才执行码率切换。
通过执行步骤S1~S3所得的相关数据见表1,通过采用以上流程进行实验可知,本发明对不同的网络有着较强的鲁棒性。
表1
网络环境 QoE 平均时延(秒) 平均切换频率(次)
122.4 1.2 270
111.8 1.2 331
94.1 1.5 462
与现有技术相比,本发明从带宽估计、缓冲区分级以及时延控制三个层次,提出了面向当前新型网络直播领域码率自适应的一种方法,在最大化视频质量和最小化重缓冲时间的基础上,满足了直播过程中低时延的要求,并利用有限状态机的码率决策机制减少了码率的切换频率,提高了视频的平滑度,改善了用户体验,可以应用于视频直播领域。
基于同一发明构思,本申请还提供了与实施例一中基于有限状态机的面向视频直播的码率自适应方法对应的装置,详见实施例二。
实施例二
本实施例提供了一种基于有限状态机的面向视频直播的码率自适应装置,请参见图3,该装置包括:
带宽估计模块201,用于记录过去一个预设决策周期内系统反馈的原始数据,并基于原始数据估计过去一个预设决策周期内的带宽,其中,原始数据包括每帧图像数据大小、每帧图像的传输周期、当前缓冲区大小以及当前端到端时延;
码率选择模块202,用于对估计出的过去一个预设决策周期内的带宽,设置对应的充足缓冲阈值和危险缓冲阈值,其中,充足缓冲阈值和危险缓冲阈值用以判定当前缓冲大小,再根据当前缓冲大小以及前后两次预设决策周期内缓冲的变化量确定系统的状态,再基于有限状态机的状态选择码率;
时延控制模块203,用于根据当前带宽以及选择码率获得缓存的变化趋势,并动态调节快慢播阈值的大小,再基于快慢播阈值调节缓存以及时延。
在一种实施方式中,带宽估计模块201具体用于执行下述步骤:
步骤S1.1:对原始数据进行卡尔曼滤波;
步骤S1.2:对进行卡尔曼滤波的n组数据,将相邻两帧图像包的大小和传输周期分别做差分,获得n-1个瞬时带宽点;
步骤S1.3:将步骤S1.2得到的n-1个瞬时带宽点以码率为界限分档并统计落在每个档次区间的概率以及均值带宽,分析带宽分布,并根据带宽分布以及置信度估计出过去一个预设决策周期内的带宽。
在一种实施方式中,带宽估计模块201,还用于:
将传输周期作为卡尔曼滤波器的目标参量,其中预测模型可以表示成:
Ti,i-1=Di/Ci-1+N(i)+Ei
其中,Di为当前传输数据帧的大小,Ci-1为表示前一数据帧计算得到的传输速率,Ei表示预测误差,N(i)为噪声,Ti,i-1为当前数据帧的传输周期预测值。
在一种实施方式中,带宽估计模块201,还用于:
将每个图像帧的传输周期表示为如下形式:
T=Td+Tw
其中,Td表示下载时间,Tw表示帧间等待时间,利用图像帧大小和传输时间上的差分获得瞬时带宽点:
bw=Ddelta/Tdelta
其中,Ddelta和Tdelta分别表示数据包大小和传输周期的差分,bw表示一个瞬时带宽点。
在一种实施方式中,带宽估计模块201,还用于:
利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:
Figure BDA0002002746160000121
其中,Pt为设定的概率阈值,ave为最大概率区间内的带宽均值,bw[n-1]为末端带宽估算点,当落在某个带宽区间上的历史观测带宽估算点的概率超过设定阈值时,此时估计带宽取该区间的均值;否则,根据末端带宽估算点、对应区间以及概率阈值进行计算。
在一种实施方式中,码率选择模块202,具体用于执行下述步骤:
步骤S2.1:对步骤S1中估计出的过去一个预设决策周期内的带宽,以预设码率为界限划分为对应的级别;
步骤S2.2:结合本地缓存,对不同级别的带宽中设定对应的充足缓冲阈值b_h和危险缓冲阈值b_l;
步骤S2.3:根据充足缓冲阈值b_h、危险缓冲阈值b_l以及前后两次预设决策周期内本地缓冲变化量delta的正负,将当前系统划分为固定的状态,并根据划分的状态选择码率。
在一种实施方式中,时延控制模块203,具体用于:
利用播放器快慢播的机制,选择对应的目标缓冲区值,通过快播来控制时延,表达如下:
tar_buffer=1.5-0.25×(bw/bitrate)if buffer(i)>threshold
其中,tar_buffer为目标缓冲值大小,bw表示当前决策带宽,bitrate表示当前决策码率,buffer(i)和threshold分表表示决策时刻缓冲大小以及缓冲阈值,缓冲阈值的设定取决于当前决策带宽级别,带宽越大阈值越小,bw/bitrate的值代表未来一个决策周期内缓冲的变化趋势。
由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于有限状态机的面向视频直播的码率自适应方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
实施例三
请参见图4,基于同一发明构思,本申请还提供了一种计算机可读存储介质300,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。
由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中基于有限状态机的面向视频直播的码率自适应方法所采用的可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,请参见图5,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器402执行上述程序时实现实施例一中的方法。
由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于有限状态机的面向视频直播的码率自适应方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

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具体包括:
利用概率统计和置信度确认,将带宽估算误差控制在预设范围内,获得对应的估计带宽,估计带宽的计算方式如下:
Figure FDA0002380406350000021
其中,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中任一项权利要求所述的方法。
CN201910218253.9A 2019-03-21 2019-03-21 一种基于有限状态机的面向视频直播的码率自适应方法及装置 Active CN109996087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910218253.9A CN109996087B (zh) 2019-03-21 2019-03-21 一种基于有限状态机的面向视频直播的码率自适应方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910218253.9A CN109996087B (zh) 2019-03-21 2019-03-21 一种基于有限状态机的面向视频直播的码率自适应方法及装置

Publications (2)

Publication Number Publication Date
CN109996087A CN109996087A (zh) 2019-07-09
CN109996087B true CN109996087B (zh) 2020-04-24

Family

ID=67130693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910218253.9A Active CN109996087B (zh) 2019-03-21 2019-03-21 一种基于有限状态机的面向视频直播的码率自适应方法及装置

Country Status (1)

Country Link
CN (1) CN109996087B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110351595B (zh) * 2019-07-17 2023-08-18 北京百度网讯科技有限公司 一种缓冲处理方法、装置、设备和计算机存储介质
CN112291620A (zh) * 2020-09-22 2021-01-29 北京邮电大学 视频播放方法、装置、电子设备及存储介质
JP7299864B2 (ja) * 2020-09-24 2023-06-28 Tvs Regza株式会社 受信装置、コンピュータプログラム
CN112333526B (zh) * 2020-10-26 2022-08-16 浙江大华技术股份有限公司 一种视频缓冲调节方法、装置、存储介质及电子装置
CN112532985B (zh) * 2020-12-01 2023-05-26 北方工业大学 基于变周期采样的移动终端视频流码率的自适应调节方法
CN112953922B (zh) * 2021-02-03 2022-09-16 西安电子科技大学 一种自适应流媒体控制方法、系统、计算机设备及应用
CN113055698A (zh) * 2021-03-09 2021-06-29 百果园技术(新加坡)有限公司 视频参数调节方法、装置、设备及介质
CN115190340B (zh) * 2021-04-01 2024-03-26 华为终端有限公司 直播数据的传输方法、直播设备和介质
CN113114540B (zh) * 2021-04-23 2024-03-01 百果园技术(新加坡)有限公司 一种带宽预测器的设置、服务调整方法及相关装置
CN113438555B (zh) * 2021-07-02 2023-01-06 广州虎牙科技有限公司 一种带宽的检测方法、装置、计算机设备和存储介质
CN115914756A (zh) * 2021-08-12 2023-04-04 花瓣云科技有限公司 基于网络分级的视频码率控制方法和设备
CN116320612B (zh) * 2023-05-19 2023-08-04 北京大学 一种视频数据传输系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107154918B (zh) * 2016-03-03 2019-11-08 北京大学 基于pid控制的视频直播传输控制方法及系统
CN106993237B (zh) * 2017-04-13 2019-05-10 中北大学 基于mpeg-dash协议的动态自适应码率选择方法
CN107276910A (zh) * 2017-06-07 2017-10-20 上海迪爱斯通信设备有限公司 视频码率实时调整装置及系统、视频服务器
CN108063955B (zh) * 2017-12-15 2020-02-11 重庆邮电大学 基于状态机的动态自适应视频传输的码率切换方法
CN108235131B (zh) * 2018-01-30 2020-07-03 重庆邮电大学 一种基于dash的全景视频自适应传输方法
CN108271048B (zh) * 2018-02-09 2020-08-07 北京邮电大学 一种兼顾吞吐量和视频缓冲的码率自适应调整装置和方法

Also Published As

Publication number Publication date
CN109996087A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
CN109996087B (zh) 一种基于有限状态机的面向视频直播的码率自适应方法及装置
WO2021012946A1 (zh) 一种视频码率确定方法、装置、电子设备及存储介质
CN109302623B (zh) 一种基于QoE模型动态自适应视频的传输方法
US20130263200A1 (en) Method for two time-scales video stream transmission control
US8817645B2 (en) Methods and systems for estimating network available bandwidth using packet pairs and spatial filtering
CN110198495B (zh) 一种视频下载和播放的方法、装置、设备和存储介质
CN112953922B (zh) 一种自适应流媒体控制方法、系统、计算机设备及应用
US10541894B2 (en) Method for assessing the perceived quality of adaptive video streaming
CN111314772B (zh) 一种视频下载码率的确定方法、装置、终端和存储介质
CN103338393A (zh) 一种hspa系统下用户体验驱动的视频码率选择方法
CA2723788A1 (en) Data streaming through time-varying transport media
CN112437321B (zh) 一种基于直播流媒体的自适应码率计算方法
CN112714315A (zh) 基于全景视频的分层缓冲方法及系统
CN114071240A (zh) 一种基于自适应程度的移动视频QoE评估方法
Zhang et al. A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http
Araújo et al. A hybrid energy-aware video bitrate adaptation algorithm for mobile networks
Wang et al. Hybrid control-based ABR: Towards low-delay live streaming
Lu et al. Deep-reinforcement-learning-based user-preference-aware rate adaptation for video streaming
CN114629797A (zh) 带宽预测方法、模型生成方法及设备
CN111510703B (zh) 一种视频播放方法、装置及系统
Liu et al. Throughput Prediction-Enhanced RL for Low-Delay Video Application
CN117544809B (zh) 服务器端动态码率生成及推荐网络视频应用方法及系统
Kim et al. Highlights-based bitrate adaptation scheme for mobile video streaming service
WO2023181205A1 (en) Video player, video playback method, and program
CN116805938B (zh) 流媒体传输的抖动缓冲区控制方法、系统、介质和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant