基于决策树的自适应视频流转码方法及装置与流程

文档序号:18471926发布日期:2019-08-20 20:24阅读:147来源:国知局
基于决策树的自适应视频流转码方法及装置与流程
本发明涉及视频处理
技术领域
,尤其涉及一种基于决策树的自适应视频流转码方法、装置、计算机设备及存储介质。
背景技术
:随着互联网技术的广泛应用,流媒体传输已成为当今网路传输中的重中之重。近年来随着直播、短视频等业务的兴起,相比于以前点播时代的视频传输,流媒体直播在低卡顿、高清晰的基础上,加入了实时交互(低延迟)的新型要求。所以保障直播过程中的传输稳定性,显得尤为重要。对于广大直播用户来说,最难以忍受的就是在直播过程中频繁卡顿。目前国内外主流的基础音视频云服务,都是使用的异步转码模式,而异步转码至少存在如下问题:异步转码通常要经过上传-转码-分发-播放的流程。使用异步转码,往往会给开发者和终端用户带来一定的局限性。视频转码需要一定时间,片源清晰度越高转码耗费的时间越是长久。异步转码方案决定了视频内容必须要等待视频完全转码完毕后才能进行内容分发播放,这会为视频内容的生产和播放之间带来一定延迟效应。有鉴于此,有必要提出对目前的视频流转码技术进行进一步的改进。技术实现要素:为解决上述至少一技术问题,本发明的主要目的是提供一种基于决策树的自适应视频流转码方法、装置、计算机设备及存储介质。为实现上述目的,本发明采用的第一个技术方案为:提供一种基于决策树的自适应视频流转码方法,包括:获取输入的视频流数据,所述输入的视频流数据包括上一周期数据下载量、上一周期的时间间隔、当前时刻的缓冲区容量,以及当前端到端的时延;根据上一周期数据下载量及上一周期的时间间隔计算出上一周期的下载速度,根据上一周期的下载速度及当前时刻的缓冲区容量构建监测变量,以及根据长期网速确定监测变量的决策阈值;在进行视频流输出码率决策时,比较监测变量与决策阈值的大小,在同样的决策阈值下,选择最大的监测变量并输出对应的转码码率;在同样的转码码率下,选择最小的决策阈值并输出对应的输出码率;根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量。其中,所述根据上一周期的下载速度及当前时刻的缓冲区容量构建监测变量,包括:所述监测变量为上一周期的下载速度与决策系数乘以当前时刻的缓冲区容量之和,具体计算公式如下,detector=speed(-1)+coeff×buffer_size(-1)其中,detector为监测变量,speed(-1)为上一周期的下载速度,coeff为决策系数,buffer_size(-1)为当前时刻的缓冲区容量。其中,所述决策系数通过构建的中期网速得出,所述中期网速的计算公式如下,smiddle(-1)=0.75·smiddle(-2)+0.25·speed(-1)其中,smiddle(-1)为中期网速,smiddle(-2)为上一周期的中期网速,speed(-1)为上一周期的下载速度;在中期网速为(0,0.6]bit/s,决策系数的取值为2.0;在中期网速为(0.6,0.8]bit/s,决策系数的取值为2.3;在中期网速为(0.8,1.4]bit/s,决策系数的取值为2.7;在中期网速为(1.4,2.0]bit/s,决策系数的取值为2.9;在中期网速为(2.0,3.0]bit/s,决策系数的取值为3.0;在中期网速为(3.0,∞)bit/s,决策系数的取值为3.3。其中,所述根据长期网速确定监测变量的决策阈值,具体包括:在长期网速为(0,0.8]bit/s,决策阈值的取值为2.6;在长期网速为(0.8,1.4]bit/s,决策阈值的取值为2.4;在长期网速为(1.4,2.0]bit/s,决策阈值的取值为2.1;在长期网速为(2.0,3.0]bit/s,决策阈值的取值为1.9;在长期网速为(3.0,∞)bit/s,决策阈值的取值为1.6。其中,所述根据长期网速确定监测变量的决策阈值,还包括:构建长期网速,所述长期网速的计算公式如下,stotal(-1)=0.9·stotal(--2)+0.1·speed(-1)其中,stotal(-1)为长期网速,stotal(-2)为上一周期的中期网速,speed(-1)为上一周期的下载速度。其中,所述根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量,具体计算如下:targtbuffer=a-b*end_delay其中,targtbuffer为目标缓冲区容量,end_day为当前端到端的时延,a,b均为与长期网速相关的线性系数。其中,所述线性系数a,b根据长期网速来决策,具体包括:在长期网速为(0,0.6)bit/s,a的取值为0.6,b的取值为0.06;在长期网速为[0.6,0.85)bit/s,a的取值为1.3,b的取值为0.29;在长期网速为[0.85,1.1)bit/s,a的取值为2.3,b的取值为0.35;在长期网速为[1.1,1.3)bit/s,a的取值为2.45,b的取值为0.43;在长期网速为[1.3,∝)bit/s,a的取值为2.3,b的取值为0.4。为实现上述目的,本发明采用的第二个技术方案为:提供一种基于决策树的自适应视频流转码装置,包括:获取模块,用于获取输入的视频流数据,所述输入的视频流数据包括上一周期数据下载量、上一周期的时间间隔、当前时刻的缓冲区容量,以及当前端到端的时延;构建模块,用于根据上一周期数据下载量及上一周期的时间间隔计算出上一周期的下载速度,根据上一周期的下载速度及当前时刻的缓冲区容量构建监测变量,以及根据长期网速确定监测变量的决策阈值;决策模块,用于在进行视频流输出码率决策时,比较监测变量与决策阈值的大小,在同样的决策阈值下,选择最大的监测变量并输出对应的转码码率;在同样的转码码率下,选择最小的决策阈值并输出对应的输出码率;计算模块,用于根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量。为实现上述目的,本发明采用的第三个技术方案为:提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述方法的步骤。为实现上述目的,本发明采用的第四个技术方案为:提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。本发明的技术方案主要采用在获取输入的视频流数据后,根据上一周期的下载速度及当前时刻的缓冲区容量构建监测变量,以及根据长期网速确定监测变量的决策阈值,并根据决策算法计算,在进行视频流输出码率决策时,比较监测变量与决策阈值的大小,在同样的决策阈值下,选择最大的监测变量并输出对应的转码码率;在同样的转码码率下,选择最小的决策阈值并输出对应的输出码率,以及根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量,通过对自动视频流的转码,能够解决目前视频流的卡顿、时延的问题,能够帮助用户节省带宽、快速分发视频内容、保证在网络不好的情况下,保证视频流畅播放。附图说明图1为本发明一实施例基于决策树的自适应视频流转码方法的方法流程图;图2为本发明一实施例基于决策树的自适应视频流转码装置的模块方框图;图3为本发明一实施例计算机设备的内部结构图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明,本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。为解决目前直播过程中的视频频繁卡顿的问题,本方案提出了一种基于决策树的自适应视频流转码方法,旨在实现低延时,高码率调节,为用户提供优质视频服务,具体方案请参照下述实施例。请参照图1,图1为本发明一实施例基于决策树的自适应视频流转码方法的方法流程图。在本发明实施例中,该基于决策树的自适应视频流转码方法,包括:步骤s10、获取输入的视频流数据,所述输入的视频流数据包括上一周期数据下载量、上一周期的时间间隔、当前时刻的缓冲区容量,以及当前端到端的时延;步骤s20、根据上一周期数据下载量及上一周期的时间间隔计算出上一周期的下载速度,根据上一周期的下载速度及当前时刻的缓冲区容量构建监测变量,以及根据长期网速确定监测变量的决策阈值;步骤s30、在进行视频流输出码率决策时,比较监测变量与决策阈值的大小,在同样的决策阈值下,选择最大的监测变量并输出对应的转码码率;在同样的转码码率下,选择最小的决策阈值并输出对应的输出码率;步骤s40、根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量。在视频需要转码播放时,首先在终端可以获取输入的视频流数据,该视频流数据具体包括上一周期的下载速度speed(-1)、当前时刻的缓冲区容量buffer_size,以及当前端到端的时延end_delay。该上一周期的下载速度speed(-1)由如下公式计算得出:其中,send_data_size(-1)为上一周期下载的数据量,time_interval(-1)为上一周期经过的物理时间。再根据上一中后期下载速度speed(-1)及当前时刻的缓冲区容量buffer_size构建监测变量detector,并根据长期网速确定监测变量的决策阈值。在码率输出决策时,比较监测变量detector与决策阈值大小。同样的决策阈值的情况下,监测变量detector数值越大,转码码率的数值也越大;在同样的转码码率的情况下,决策阈值设置越小,输出码率越大,从而决定所采用的输出码率(流畅、标清、高清等)。在转码时,根据根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量,以为视频顺畅播放提供缓存,保证输出码率的实时播放。在一具体的实施方式中,所述根据上一周期的下载速度及当前时刻的缓冲区容量构建监测变量,包括:所述监测变量为上一周期的下载速度与决策系数乘以当前时刻的缓冲区容量之和,具体计算公式如下,detector=speed(-1)+coeff×buffer_size(-1)其中,detector为监测变量,speed(-1)为上一周期的下载速度,coeff为决策系数,buffer_size(-1)为当前时刻的缓冲区容量。本实施例中,监测变量与上一周期的下载速度speed(-1),当前时刻的缓冲区容量buffer_size(-1)相关,根据上述关系构建得出监测变量。上述的决策系数可以由决策系数取值表决定。进一步的,所述决策系数通过构建的中期网速得出,所述中期网速的计算公式如下,smiddle(-1)=0.75·smiddle(-2)+0.25·speed(-1)其中,smiddle(-1)为中期网速,smiddle(-2)为上一周期的中期网速,speed(-1)为上一周期的下载速度;在中期网速为(0,0.6]bit/s,决策系数的取值为2.0;在中期网速为(0.6,0.8]bit/s,决策系数的取值为2.3;在中期网速为(0.8,1.4]bit/s,决策系数的取值为2.7;在中期网速为(1.4,2.0]bit/s,决策系数的取值为2.9;在中期网速为(2.0,3.0]bit/s,决策系数的取值为3.0;在中期网速为(3.0,∞)bit/s,决策系数的取值为3.3。本实施例中,决策系数由中期网速决定。决策系数取值如表1,表1从表1中可以看出,在中期网速最小(0,0.6]bit/s,对应决策系数取值为2.0;在中期网速最大为(3.0,∞)bit/s,对应决策系数的取值为3.3,中期网速与决策系数的取值大小呈正比关系。也即,中期网速越高,决策系数的取值就会越大,从而提高监测变量,最终越容易取得高码率。在一具体的实施方式中,所述根据长期网速确定监测变量的决策阈值,具体包括:在长期网速为(0,0.8]bit/s,决策阈值的取值为2.6;在长期网速为(0.8,1.4]bit/s,决策阈值的取值为2.4;在长期网速为(1.4,2.0]bit/s,决策阈值的取值为2.1;在长期网速为(2.0,3.0]bit/s,决策阈值的取值为1.9;在长期网速为(3.0,∞)bit/s,决策阈值的取值为1.6。其中,所述根据长期网速确定监测变量的决策阈值,还包括:构建长期网速,所述长期网速的计算公式如下,stotal(-1)=0.9·stotal(-2)+0.1·speed(-1)其中,stoml(-1)为长期网速,stotal(-2)为上一周期的中期网速,speed(-1)为上一周期的下载速度。本实施例中,上述的决策阈值可以由长期网速来决定。具体的,决策阈值的取值如表2。stotal(-1),bit/sthreshold(3.0,∞)1.6(2.0,3.0]1.9(1.4,2.0]2.1(0.8,1.4]2.4(0,0.8]2.6从表2中可以看出,在长期网速最小(0,0.8]bit/s,对应决策阈值取值为2.6;在长期网速最大为(3.0,∞)bit/s,对应决策阈值的取值为1.6,长期网速与决策系数的取值大小呈反比关系。也即,当前长期网速越高,决策阈值的取值就会越小,从而,监测变量的取值就会越容易超过阈值,最终越容易取得较高的码率。最终越容易取得高码率。在一具体的实施方式中,所述根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量,具体计算如下:targtbuffer=a-b*end_delay其中,targtbuffer为目标缓冲区容量,end_day为当前端到端的时延,a,b均为与长期网速相关的线性系数。本实施例中,目标缓冲区容量与当前端到端的时延end_day以及长期网速相关,如此,基于缓冲区大小与时延负相关的事实,将时延作为主要的观测指标,建立长期网速中不同网速情况下的线性拟合关系。进一步的,所述线性系数a,b根据长期网速来决策,具体包括:在长期网速为(0,0.6)bit/s,a的取值为0.6,b的取值为0.6;在长期网速为[0.6,0.85)bit/s,a的取值为1.3,b的取值为0.29;在长期网速为[0.85,1.1)bit/s,a的取值为2.3,b的取值为0.35;在长期网速为[1.1,1.3)bit/s,a的取值为2.45,b的取值为0.43;在长期网速为[1.3,∝)bit/ss,a的取值为2.3,b的取值为0.4。本实施例中,线性系数a,b的取值根据长期网速来决策,a,b的取值如表3。speed_totala,b(0,0.6)0.6,0.06[0.6,0.85)1.3,0.29[0.85,1.1)2.3,0.35[1.1,1.3)2.45,0.43[1.3,∝)2.3.0.4从表3中可以看出,在长期网速最小(0,0.6)bit/s,对应a,b取值分别为0.6,0.06;在长期网速为[1.1,1.3)bit/s,a的取值为2.45,b的取值为0.43。随着长期网速的增加,线性系数a,b的取值也相应增加,且在在长期网速为[1.1,1.3)bit/s,a,b均具有最大取值,分别为2.45,0.43。在长期网速为[1.3,∝)bit/s,a的取值为2.3,b的取值为0.4。随着长期网速的增加,线性系数a,b均会增加,并在长期网速增加到设定值是,a,b的取值具有最大值。综上,该基于决策树的自适应视频流转码方法,能够应用于各大视频播放场景中,适用于各种视频场景,如直播,下载播放,短视频等。本方案的决策算法能够自动调整码率,保证视频的实时顺利播放,从而实现自动调整视频清晰度,最大程度减少时延,减少卡顿,提高用户体验。请参照图2,图2为本发明一实施例基于决策树的自适应视频流转码装置的模块方框图。本发明的实施例中,该基于决策树的自适应视频流转码装置,包括:获取模块10,用于获取输入的视频流数据,所述输入的视频流数据包括上一周期数据下载量、上一周期的时间间隔、当前时刻的缓冲区容量,以及当前端到端的时延;构建模块20,用于根据上一周期数据下载量及上一周期的时间间隔计算出上一周期的下载速度,根据上一周期的下载速度及当前时刻的缓冲区容量构建监测变量,以及根据长期网速确定监测变量的决策阈值;决策模块30,用于在进行视频流输出码率决策时,比较监测变量与决策阈值的大小,在同样的决策阈值下,选择最大的监测变量并输出对应的转码码率;在同样的转码码率下,选择最小的决策阈值并输出对应的输出码率;计算模块40,用于根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量。在视频需要转码播放时,通过获取模块10,可以获取输入的视频流数据,该视频流数据具体包括上一周期的下载速度speed(-1)、当前时刻的缓冲区容量buffer_size,以及当前端到端的时延end_delay。再根据构建模块20,根据上一周期的下载速度speed(-1)及当前时刻的缓冲区容量buffer_size构建监测变量detector,并根据长期网速确定监测变量的决策阈值。在码率输出决策时,比较监测变量detector与决策阈值大小。然后通过,决策模块30,在同样的决策阈值的情况下,监测变量detector数值越大,转码码率的数值也越大;在同样的转码码率的情况下,决策阈值设置越小,输出码率越大,从而决定所采用的输出码率(流畅、标清、高清等)。最后,在转码时,通过计算模块40,根据根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量,以为视频顺畅播放提供缓存,保证输出码率的实时播放。在一具体的实施方式中,所述构建模块20,用于计算出监测变量,该监测变量为上一周期的下载速度与决策系数乘以当前时刻的缓冲区容量之和,具体计算公式如下,detector=speed(-1)+coeff×buffer_size(-1)其中,detector为监测变量,speed(-1)为上一周期的下载速度,coeff为决策系数,buffer_size(-1)为当前时刻的缓冲区容量。进一步的,所述决策系数通过构建的中期网速得出,所述中期网速的计算公式如下,smiddle(-1)=0.75·smiddle(-2)+0.25·speed(-1)其中,smiddle(-1)为中期网速,smiddle(-2)为上一周期的中期网速,speed(-1)为上一周期的下载速度;在中期网速为(0,0.6]bit/s,决策系数的取值为2.0;在中期网速为(0.6,0.8]bit/s,决策系数的取值为2.3;在中期网速为(0.8,1.4]bit/s,决策系数的取值为2.7;在中期网速为(1.4,2.0]bit/s,决策系数的取值为2.9;在中期网速为(2.0,3.0]bit/s,决策系数的取值为3.0;在中期网速为(3.0,∞)bit/s,决策系数的取值为3.3。进一步的,决策模块30,用于根据长期网速确定监测变量的决策阈值,具体包括:在长期网速为(0,0.8]bit/s,决策阈值的取值为2.6;在长期网速为(0.8,1.4]bit/s,决策阈值的取值为2.4;在长期网速为(1.4,2.0]bit/s,决策阈值的取值为2.1;在长期网速为(2.0,3.0]bit/s,决策阈值的取值为1.9;在长期网速为(3.0,∞)bit/s,决策阈值的取值为1.6。进一步的,所述根据长期网速确定监测变量的决策阈值,还包括:构建长期网速,所述长期网速的计算公式如下,stotal(-1)=0.9·stotal(-2)+0.1·speed(-1)其中,stotal(-1)为长期网速,stotal(-2)为上一周期的中期网速,speed(-1)为上一周期的下载速度。进一步的,所述计算模块40,用于根据当前端到端的时延及线性系数计算转码输出的目标缓冲区容量,具体计算如下:targtbuffer=a-b*end_delay其中,targtbuffer为目标缓冲区容量,end_day为当前端到端的时延,a,b均为与长期网速相关的线性系数。进一步的,所述线性系数a,b根据长期网速来决策,具体包括:在长期网速为(0,0.6)bit/s,a的取值为0.6,b的取值为0.6;在长期网速为[0.6,0.85)bit/s,a的取值为1.3,b的取值为0.29;在长期网速为[0.85,1.1)bit/s,a的取值为2.3,b的取值为0.35;在长期网速为[1.1,1.3)bit/s,a的取值为2.45,b的取值为0.43;在长期网速为[1.3,∝)bit/s,a的取值为2.3,b的取值为0.4。请参照图3,图3为本发明一实施例计算机设备的内部结构图。在一实施例中,该计算机设备包括通过系统总线连接的处理器、存储器及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于决策树的自适应视频流转码方法。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的
技术领域
均包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1