视频压缩方法、装置、计算机设备和存储介质
阅读说明:本技术 视频压缩方法、装置、计算机设备和存储介质 (Video compression method, device, computer equipment and storage medium ) 是由 葛佳欣 于 2020-03-23 设计创作,主要内容包括:本申请涉及一种视频压缩方法、装置、计算机设备和存储介质。所述方法包括:获取待压缩的视频;对视频中各图像帧进行帧间差异分析,得到各图像帧的帧间差异;根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果;根据动态分析结果确定压缩参数,基于压缩参数将视频压缩。采用本方法能够提高视频压缩的效果。(The application relates to a video compression method, a video compression device, a computer device and a storage medium. The method comprises the following steps: acquiring a video to be compressed; performing interframe difference analysis on each image frame in the video to obtain interframe difference of each image frame; performing video dynamic analysis according to the interframe difference of each image frame to obtain a dynamic analysis result of the video; and determining a compression parameter according to the dynamic analysis result, and compressing the video based on the compression parameter. The method can improve the video compression effect.)
技术领域
本申请涉及计算机
技术领域
,特别是涉及一种视频压缩方法、装置、计算机设备和存储介质。背景技术
随着计算机技术的发展,互联网中多媒体资源在生活中的应用越来越广泛,如视频网站中的影视视频资源,社交媒体中的短视频资源等。相比于文本和图片资源,视频的数据量大得多,通过对视频进行一定程度的压缩,可以确保在不同网络条件下视频上传或下载的效率,以及视频播放的顺畅。
目前,业内在对视频资源进行压缩时,基于平台自身的压缩处理能力设置压缩参数对各种视频进行压缩,容易导致视频的压缩程度较低或视频过度压缩,影响视频清晰度,视频压缩的效果有限。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高视频压缩效果的视频压缩方法、装置、计算机设备和存储介质。
一种视频压缩方法,所述方法包括:
获取待压缩的视频;
对视频中各图像帧进行帧间差异分析,得到各图像帧的帧间差异;
根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果;
根据动态分析结果确定压缩参数,基于压缩参数将视频压缩。
一种视频压缩装置,所述装置包括:
视频获取模块,用于获取待压缩的视频;
帧间差异确定模块,用于对视频中各图像帧进行帧间差异分析,得到各图像帧的帧间差异;
动态分析模块,用于根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果;
压缩处理模块,用于根据动态分析结果确定压缩参数,基于压缩参数将视频压缩。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待压缩的视频;
对视频中各图像帧进行帧间差异分析,得到各图像帧的帧间差异;
根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果;
根据动态分析结果确定压缩参数,基于压缩参数将视频压缩。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待压缩的视频;
对视频中各图像帧进行帧间差异分析,得到各图像帧的帧间差异;
根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果;
根据动态分析结果确定压缩参数,基于压缩参数将视频压缩。
上述视频压缩方法、装置、计算机设备和存储介质,对待压缩的视频中各图像帧进行帧间差异分析,并根据得到各图像帧的帧间差异进行视频动态分析,基于得到的动态分析结果确定压缩参数,并根据该压缩参数将视频压缩。视频压缩处理过程中,压缩参数根据视频中各图像帧的帧间差异进行视频动态分析得到的动态分析结果确定,使压缩参数与视频本身的动态特性匹配,能够在确保视频清晰度的前提下提高视频压缩程度,提高了视频压缩的效果。
附图说明
图1为一个实施例中视频压缩方法的应用环境图;
图2为一个实施例中视频压缩方法的流程示意图;
图3为一个实施例中H.264编码器的帧间相似度检测示意图;
图4为一个实施例中确定帧间差异的流程示意图;
图5为另一个实施例中视频压缩方法的流程示意图;
图6为一个实施例中移动端视频压缩转码的应用场景下视频压缩的流程示意图;
图7为另一个实施例中视频后台转码的应用场景下视频压缩的流程示意图
图8为一个实施例中视频压缩装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
基于FFMpeg、iOS平台AVFoundation、iOS平台VideoToolBox、Android平台MediaCodec等常见视频编码器,需要在视频压缩/转码前预设码率参数,以此控制视频的压缩比。现阶段,大部分产品平台都是采用相对静态的分类策略为视频编码器预设码率参数。以目前各大视频网站为例,后台对视频的转码码率的选择则是基于视频上传前的码率、FPS(Frames Per Second,每秒传输帧数)、分辨率进行决策,以一个分辨率为1080P、FPS为30帧/s、码率为8Mbps的视频为例,上传视频网站后台会被压缩转码成3Mbps码率的视频,而视频网站会员用户则会压缩成6Mbps码率,不论用户上传的视频类型,只要符合该码率要求,便会落入这一策略分类中进行压缩转码。这一类基于视频信息进行码率分类决策的方案,也是目前主流平台的常见方案。其中,视频转码是指将某种格式的视频通过重新编码从而转换成为另外一种格式,如将AVI(Audio Video Interleaved,音频视频交错格式)转换为MP4(Moving Picture Experts Group 4,动态图像专家组),DVD(Digital Video Disc,数字光盘)转换成AVI。因为当前的移动设备非常之多,因为各个平台的竞争关系,各平台产品所支持的格式不尽相同,所以视频转码应运而生。视频编解码器是指一个能够对数字视频进行压缩或者解压缩的程序或者设备,通常这种压缩属于有损数据压缩。历史上,视频信号是以模拟形式存储在磁带上的。随着Compact Disc的出现并进入市场,音频信号以数字化方式进行存储,视频信号也开始使用数字化格式,一些相关技术也开始随之发展起来,音频和视频都需要可定制的压缩方法。
基于H.264/AVC协议压缩技术描述,其核心压缩能力是基于视频帧间运动估计与补偿进行压缩。当帧间运动变化越低的视频帧,越可以使用表示原画幅的关键帧与极少图像描述信息的参考帧描述原视频,相反则无法达到较高的压缩比。因此我们可知视频帧间变化度越高的视频,在同一码率下,清晰度越低。相反在帧间变化度越低的视频,在同一码率下,清晰度越高。目前各大视频网站的视频压缩处理中,现有编码/转码前预设码率参数的方案均不能对视频进行帧间动态性进行参考,无法对视频给与较为合适的码率适配,因此,视频的压缩比、清晰度仍然还有较大的提升空间。基于此,本申请提供了一种视频压缩方法、装置、计算机设备和存储介质。
本申请提供的视频压缩方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102将拍摄的待压缩的视频上传至服务器104,服务器104对待压缩的视频中各图像帧进行帧间差异分析,并根据各图像帧的帧间差异进行视频动态分析,基于得到的动态分析结果确定压缩参数,并根据该压缩参数将视频压缩,并将压缩后的视频存储。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。此外,也可以直接由终端102单独对待压缩的视频进行视频压缩处理,或者单独由服务器104从数据库中获取待压缩的视频进行视频压缩处理。
在一个实施例中,如图2所示,提供了一种视频压缩方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,获取待压缩的视频。
其中,视频泛指将一系列静态影像以电信号的方式加以捕捉、纪录、处理、储存、传送与重现的各种技术。连续的图像变化每秒超过24帧画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面;看上去是平滑连续的视觉效果,这样连续的画面叫做视频。FPS指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。随着拍摄设备技术发展,视频的画面更新率和分辨率越来越大,视频本身的数据量也越来越大,如一部电影的数据量可以达到几个GB(Gigabyte,吉字节)甚至数十GB,如此大的数据量,在网络状况不佳时,视频的上传和下载处理效率非常低。
本实施例中,待压缩的视频即为需要进行压缩的视频数据,具体可以为电影、电视、动画等影视视频,也可以为社交平台中的小视频或短视频。其中,短视频即短片视频,是一种互联网内容传播方式,一般是在互联网新媒体上传播的时长在几分钟以内的视频;随着移动终端普及和网络的提速,短平快的大流量传播内容逐渐获得各大平台、粉丝和资本的青睐。在具体实现时,待压缩的视频可以从视频数据库中获取,也可以从移动终端中接收。
S204,对视频中各图像帧进行帧间差异分析,得到各图像帧的帧间差异。
视频由连续变化的图像帧组成,获得待压缩的视频后,对视频中各图像帧进行帧间差异分析,如对相邻的图像帧进行像素比较,以对各图像帧之间的变化程度进行分析,得到各图像帧的帧间差异。具体地,可以对视频进行图像帧采样,从视频中采样抽取图像帧,获得至少两帧视频采样帧。视频采样帧为视频中众多图像帧抽取得到的图像帧,用以对视频进行视频动态分析。在具体应用中,视频采样帧的数量可以根据视频确定,如时长越长的视频,采样的间隔更大,视频采样帧的数量更多。
进一步地,对待压缩的视频进行采样获得视频采样帧后,确定相邻视频采样帧的帧间差异,帧间差异表征相邻视频采样帧相似程度,帧间差异越大,表明相邻视频采样帧之间的相似程度越低,根据相邻视频采样帧的帧间差异得到视频中各图像帧的帧间差异。具体地,如基于H.264/AVC协议标准的视频,视频每秒具有多个视频帧,帧与帧之间具有大量相似的图像信息(比如两帧之间同样坐标位置的色值一致,则认为像素信息一致)。其中,H.264/AVC协议标准是由ITU-T和ISO/IEC联合开发的,定位于覆盖整个视频应用领域,包括:低码率的无线应用、标准清晰度和高清晰度的电视广播应用、互联网上的视频流应用,传输高清晰度的DVD视频以及应用于数码相机的高质量视频应用等等。
H.264协议通过帧间预测算法,基于关键帧与参考帧组合,可压缩大量冗余图像信息。压缩过程中,影响压缩率的主要因素在于帧与帧之间时间维度上的数据冗余度。H264协议编码数据存储或传输的基本单元是NALU(Network Abstract Layer Unit,网络抽象层单元)。H.264协议的算法编码器会按照时间顺序,比较两幅相邻帧之间的相似度,如图3所示,其算法规定,在相邻的几幅画面当中,图像间差异较低时,就可以将这几幅图像分为一组,成为GOP(Group of Pictures,图像组)。GOP是一组连续的画面,由一张I帧和数张B/P帧组成,是视频图像编码器和解码器存取的基本单位,它的排列顺序将会一直重复到影像结束。其中,第一帧数据为I帧,也叫关键帧,I帧是H.264协议中压缩后帧类型,I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是I帧,因为它是关键帧。B帧是H.264协议中压缩后帧类型,B帧又称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别。也就是说要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是对解码性能要求较高。P帧是H.264协议中压缩后帧类型,P帧又称帧间预测编码帧,需要参考前面的I帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依赖性,因此对传输错误非常敏感。I帧为关键帧,可以做为P帧、B帧参考对象者,而P帧、B帧为参考帧。
进一步地,编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式和绝对式两类。视频码率是指数据传输时单位时间传送的数据位数,单位一般取kbps,即千位每秒。所以,关键帧可以保留全画幅数据,而参考帧仅保留与关键帧完全不同的部分,并且以8x8、16x16为单位的“宏块”进行记录,如图3中的圆形小球是两帧之间唯一不同的宏块。H.264协议压缩后,仅需保存GOP中的关键帧数据,以及后续每帧的小球的运动矢量即可,因此参考帧在存储传输时仅需记录极少量差异数据即可。
根据相邻视频采样帧的帧间差异可以对待压缩的视频进行动态分析,确定视频中各图像帧动态性差异情况,即得到视频中各图像帧的帧间差异。在码率相同的情况下,低动态性的视频可以承受更高的压缩率而不丧失清晰度。具体实现时,可以将相邻视频采样帧中相应位置的像素进行比较,根据相应位置的像素之间的亮度差异确定相邻视频采样帧的帧间差异。
S206,根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果。
得到各图像帧的帧间差异后,根据各图像帧的帧间差异进行视频动态分析,如可以对所有图像帧的帧间差异进行组合,得到帧间差异集,并基于该帧间差异集进行视频动态分析,得到视频的动态分析结果,动态分析结果反映了视频中各图像帧之间变化的复杂程度。一般地,帧间差异集中帧间差异越大,表明视频各图像帧之间变化的复杂程度也越大即各视频帧间变化度越高,相似度越低。
S208,根据动态分析结果确定压缩参数,基于压缩参数将视频压缩。
得到动态分析结果后,根据该动态分析结果确定视频的压缩参数,如确定视频的压缩码率,并根据该压缩参数将视频进行压缩,从而使压缩参数与视频本身的动态特性匹配,能够在确保视频清晰度的前提下提高视频压缩程度,提高了视频压缩的效果。
在具体实现时,还可以对视频压缩结果进行视频后验,具体可以将视频压缩结果,即压缩视频与原视频进行比较,得到压缩视频与原视频之间的相似度,如获得PSNR(PeakSignal to Noise Ratio,峰值信噪比)、SSIM(Structural Similarity Index,结构相似性)两种视频相似度参考值,以此判断视频是否过度压缩而丧失了原视频的清晰度。其中,PSNR是最基础的视频质量评价方法,它的取值一般在20-50之间,值越大代表受损图片越接近原图片,PSNR通过对原始图像和失真图像进行像素的逐点对比,计算两幅图像像素点之间的误差,并由这些误差最终确定失真图像的质量评分。SSIM是一种衡量两幅图像相似度的指标,其从图像组成的角度将结构信息定义为独立于亮度、对比度的,反映场景中物体结构的属性,并将失真建模为亮度、对比度和结构三个不同因素的组合。用均值作为亮度的估计,标准差作为对比度的估计,协方差作为结构相似程度的度量。若根据视频后验表明视频过度压缩,则调整视频压缩处理中的参数,如调整图像帧采样参数、帧间差异确定参数、视频动态分析模型参数或压缩参数等,以对视频压缩方法进行动态更新,进一步提高视频压缩的效果。
上述视频压缩方法中,对待压缩的视频中各图像帧进行帧间差异分析,并根据得到各图像帧的帧间差异进行视频动态分析,基于得到的动态分析结果确定压缩参数,并根据该压缩参数将视频压缩。视频压缩处理过程中,压缩参数根据视频中各图像帧的帧间差异进行视频动态分析得到的动态分析结果确定,使压缩参数与视频本身的动态特性匹配,能够在确保视频清晰度的前提下提高视频压缩程度,提高了视频压缩的效果。
在一个实施例中,对所述视频中各图像帧进行帧间差异分析,得到各所述图像帧的帧间差异包括:确定视频中各图像帧的图像帧参数;根据图像帧参数确定视频中视频采样帧的锚点信息;根据锚点信息依次从视频中采样获得至少两帧视频采样帧;根据相邻视频采样帧的帧间差异得到各图像帧的帧间差异。
本实施例中,根据视频的图像帧参数确定视频中反映视频采样帧时间属性的锚点信息,并根据该锚点信息从视频中采样获得视频采样帧,并根据相邻视频采样帧的帧间差异得到各图像帧的帧间差异。具体地,在得到待压缩的视频后,确定视频的图像帧参数,图像帧参数反映了组成该视频的各图像帧的特征,具体图像帧参数可以包括视频的帧率和时长。其中,视频的帧率为视频每秒的图像帧数目,时长为视频的持续时间,根据视频的帧率和时长可以得知视频中图像帧的数目。视频的图像帧参数可以根据视频的属性查询确定。得到视频的图像帧参数后,根据该图像帧参数确定视频中视频采样帧的锚点信息,锚点信息反映了所需采样的视频采样帧的时间属性,具体可以为视频采样帧在组成视频的所有图像帧中的时间戳标签或序列号,根据锚点信息可以从视频中确定对应的视频采样帧。确定视频采样帧的锚点信息后,根据锚点信息依次从视频中采样获得至少两帧视频采样帧。具体地,锚点信息可以包括视频采样帧在组成视频的所有图像帧中的序列号,根据锚点信息可以将视频中对应序列号的图像帧采样抽取出,得到对应的视频采样帧。再对得到的视频采样帧进行帧间差异分析,根据视频采样帧的帧间差异得到各图像帧的帧间差异,可以有效减少帧间差异分析处理的数量,提高分析处理效率。
在一个实施例中,图像帧参数包括帧率和时长;根据图像帧参数确定视频中视频采样帧的锚点信息包括:根据帧率和时长获得视频中各图像帧的锚点信息;确定采样锚点密度;根据采样锚点密度从视频中各图像帧的锚点信息中确定视频中视频采样帧的锚点信息。
本实施例中,图像帧参数包括帧率和时长,根据所需的采样锚点密度从视频中各图像帧的锚点信息中确定视频中视频采样帧的锚点信息。具体地,帧率为视频每秒的图像帧数目,时长为视频的持续时间,根据帧率和时长获得视频中各图像帧的锚点信息,锚点信息反映了视频中各图像帧的时间属性,具体可以包括视频中各图像帧的时间戳标签或序列号,表征了各图像帧在视频中的位置。确定采样锚点密度,采样锚点密度反映了对各图像帧的锚点信息进行采样的采样间隔,采样锚点密度越大,则采样间隔越小,视频采样帧的锚点信息的数目越多,数据量增加,视频压缩效果越好。采样锚点密度可以根据计算资源和实际压缩需求进行灵活设置。根据采样锚点密度从视频中各图像帧的锚点信息中确定视频中视频采样帧的锚点信息,具体可以按照采样锚点密度对视频中各图像帧的锚点信息进行采样,得到视频中视频采样帧的锚点信息。
在一个实施例中,如图4所示,确定各图像帧的帧间差异的处理,即根据相邻视频采样帧的帧间差异得到各图像帧的帧间差异包括:
S402,确定视频采样帧的图像像素范围。
本实施例中,将相邻视频采样帧中相应位置的像素进行差异分析,以确定相邻视频采样帧的帧间差异,并根据相邻视频采样帧的帧间差异得到各图像帧的帧间差异,如直接将相邻视频采样帧的帧间差异作为各图像帧的帧间差异。具体地,在对待压缩的视频进行图像帧采样,得到视频采样帧后,确定视频采样帧的图像像素范围,图像像素范围为视频采样帧中需要遍历对应像素进行差异分析的像素范围,具体实现中图像像素范围可以直接设为视频采样帧的整个图像范围。
S404,根据图像像素范围和像素采样间隔分别对相邻视频采样帧进行像素采样,获得相邻视频采样帧中的对比像素。
确定需要遍历对应像素进行差异分析的图像像素范围后,确定像素采样间隔,像素采样间隔为在图像像素范围中采样相应的像素进行差异分析的采样间隔。像素采样间隔可以根据视频采样帧的分辨率大小进行设置,例如对于分辨率高的视频采样帧,视频采样帧中的像素数量较多,则像素采样间隔可以设置较大,以在确保差异分析的准确性前提下减少差异分析的处理数据量,从而提高差异分析的处理效率。确定像素采样间隔后,按照该像素采样间隔在图像像素范围内,分别对相邻视频采样帧进行像素采样,获得相邻视频采样帧中的对比像素。在相邻视频采样帧中,对比像素的像素位置相对应,根据对比像素进行差异分析,可以确定相邻视频采样帧中对比像素的变化。
S406,对相邻视频采样帧中对应像素位置的对比像素进行亮度差异分析,得到各对比像素之间的亮度差。
采样得到需要进行差异分析的对比像素后,对相邻视频采样帧中对应像素位置的对比像素进行亮度差异分析,以对视频内相邻视频采样帧中同一像素位置的对比像素的亮度变化,得到各对比像素之间的亮度差。具体可以将对应的对比像素的亮度值进行比较,得到对比像素之间的亮度差。根据该亮度差可以确定相邻视频采样帧的帧间差异,并进一步得到各图像帧的帧间差异。帧间差异表征了相邻视频采样帧相似程度,帧间差异越大,表明相邻视频采样帧之间的相似程度越低。在具体应用时,可以将相邻视频采样帧中所有需要对应像素位置的对比像素分别对应进行亮度差异分析,得到各对比像素对应的亮度差,根据相邻视频采样帧中所有对比像素的亮度差,得到相邻视频采样帧之间的帧间差异,进一步得到各图像帧的帧间差异。
S408,根据各对比像素之间的亮度差确定相邻视频采样帧的帧间差异;各图像帧的帧间差异包括相邻视频采样帧的帧间差异。
确定相邻视频采样帧中对应像素位置的对比像素之间的亮度差后,根据该亮度差得到相邻视频采样帧的帧间差异,具体可以将亮度差较大所对应的对比像素确定为差异像素,根据差异像素的数目与视频采样帧的总像素数目的比值得到相邻视频采样帧之间的帧间差异,各图像帧的帧间差异包括相邻视频采样帧的帧间差异。
在一个实施例中,对相邻视频采样帧中对应像素位置的对比像素进行亮度差异分析,得到各对比像素之间的亮度差包括:对对比像素进行灰度化处理,得到灰度对比像素;确定相邻视频采样帧中对应像素位置的灰度对比像素之间的亮度差,各对比像素之间的亮度差包括该灰度对比像素之间的亮度差。
本实施例中,对相邻视频采样帧中对应像素位置的对比像素进行灰度化处理后进行亮度差确定,得到各对比像素之间的亮度差。具体地,在获得相邻视频采样帧中的对比像素后,对相邻视频采样帧中对应像素位置的对比像素进行差异差异分析时,对对比像素进行灰度化处理,以对对比像素保存图像颜色信息的色彩通道进行降位处理,降低对比像素的像素信息,从而提高差异分析处理效率,得到灰度对比像素。具体地,当前视频多为彩色视频,而对比像素之间的亮度差与色彩的联系较小,基于性能考量,对对比像素进行灰度化处理,对对比像素的色彩通道进行降位处理,如从RGB/RGBA降为灰度图,将像素点信息从256位降低至8位,以此降低空间信息内降冗余。一般地,红色、绿色、蓝色三个通道的缩览图都是以灰度显示的,用不同的灰度色阶来表示“红,绿,蓝”在图像中的比重,通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。具体应用中,RGB/RGBA转灰度通道的计算方式,保持与H.264协议中计算Y亮度通道的方式一致,已确保后续处理中的准确性。
对对比像素进行灰度化处理,得到灰度对比像素后,确定相邻视频采样帧中对应像素位置的灰度对比像素之间的亮度差,各对比像素之间的亮度差包括该灰度对比像素之间的亮度差。具体地,考虑到灰度像素位点在进行变化时,参考人眼敏感的变化阈值,需要排除一些肉眼不敏感的色彩变化,具体可以设为亮度差值变化不超过2%时,不判定为像素变化。以此容忍一些较低幅度的帧间变化,从而提升最终获得数据的判断合理性。因此,基于H.264是采用YUV原帧进行比较,此处所指的亮度差异,可以理解为是Y分量的差异区间中所降低的通道,可以理解为是Y分量的一部分,Y的范围为[16,235],所以此时计算差异阈值为4.38。即当灰度对比像素之间的亮度差△D<=4.38时,认为相邻所述视频采样帧中对应像素位置的对比像素并未产生变化,否则认为对比像素发生变化,该对比像素为一个差异像素。其中,YUV是一种颜色编码方法,常使用在各个影像处理组件中,YUV是编译true-color颜色空间(color space)的种类,Y'UV,YUV,YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度、浓度(Chrominance、Chroma)。
获得相邻视频采样帧中对应像素位置的灰度对比像素之间的亮度差后,根据各灰度对比像素之间的亮度差确定各对比像素之间的亮度差,如可以直接将各灰度对比像素之间的亮度差作为各对比像素之间的亮度差,根据各对比像素之间的亮度差可以得到相邻视频采样帧的帧间差异。具体可以根据各灰度对比像素之间的亮度差,统计亮度差较大对应的对比像素的数量,并根据亮度差较大对应的对比像素的数量与视频采样帧中总像素数量的比值,得到像素有差异的像素的占比,并以该占比表征相邻视频采样帧之间的帧间差异,即帧间差异可以包括相邻视频采样帧中像素有差异的像素的占比。
本实施例中,通过对对比像素进行灰度化处理,以降低差异分析的复杂度,简化对比像素之间的差异分析,提高相邻所述视频采样帧的帧间差异的准确性。
在一个实施例中,根据各对比像素之间的亮度差确定相邻视频采样帧的帧间差异包括:当亮度差大于像素差异阈值时,确定亮度差对应的对比像素为差异像素;确定相邻视频采样帧中差异像素的数目;根据差异像素的数目与视频采样帧的总像素数目的比值得到相邻视频采样帧的帧间差异。
本实施例中,将亮度差较大所对应的对比像素确定为差异像素,根据差异像素的数目与视频采样帧的总像素数目的比值得到相邻视频采样帧的帧间差异。具体地,得到相邻视频采样帧中对应像素位置的对比像素之间的亮度差后,获取预设的像素差异阈值,根据像素差异阈值以根据亮度差对对比像素是否有差异进行划分,像素差异阈值可以根据实际需要进行设置,如设为4.38。当亮度差大于像素差异阈值时,表明该亮度差所对应的对比像素之间差异较大,图像变化较大,则确定亮度差对应的对比像素为差异像素,即相邻视频采样帧中产生了差异的像素。对各对比像素之间的亮度差进行差异像素判定后,确定相邻视频采样帧中差异像素的数目,具体可以对亮度差与像素差异阈值的比较结果进行统计,得到差异像素的数目。差异像素的数目反映了相邻视频采样帧中发生变化的像素的多少。确定视频采样帧的总像素数目,总像素数目可以根据视频采样帧的分辨率确定,根据差异像素的数目与总像素数目的比值得到相邻视频采样帧的帧间差异。其中,差异像素的数目与总像素数目的比值反映了产生变化的像素在相邻视频采样帧中的占比,该比值越大,则表明相邻视频采样帧之间的变化越大,即视频的动态性越强,可以直接将该比值作为相邻视频采样帧的帧间差异。
在一个实施例中,根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果包括:根据各图像帧的帧间差异得到帧间差异集;通过预训练的视频动态分析模型对帧间差异集进行视频动态特征提取,得到帧间差异集的视频动态特征;通过视频动态分析模型对视频动态特征进行视频动态分析,得到视频动态分析模型输出的视频的动态分析结果;视频动态分析模型通过训练携带动态标签的帧间差异训练集得到。
本实施例中,通过预训练的视频动态分析模型对各图像帧的帧间差异组合得到的帧间差异集进行视频动态分析,并由该视频动态分析模型输出视频的动态分析结果。具体地,视频动态分析模型通过训练携带动态标签的帧间差异训练集得到,具体可以为通过CNN(Convolutional Neural Networks,卷积神经网络)、RNN(Recurrent Neural Network,循环神经网络)、DBN(Deep Belief Network,深度置信网络)、GAN(Generative AdversarialNetworks,生成对抗网络)或BP(Back Propagation,反向传播)等算法构建的神经网络模型,而动态标签可以提前对大量视频进行人为认知评估,对视频的动态性进行打分,以确定帧间差异训练集对应的动态标签。视频动态分析模型可以通过机器学习算法,进行监督学习得到。其中,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
在一个具体应用中,通过BP算法构建BP神经网络模型作为视频动态分析模型。BP网络是一种对非线性可微分函数进行权值训练的多层网络,它的最大特点是仅仅借助样本数据,无需建立系统的数学模型,就可对系统实现由m个输入神经元的模式向量p组成的pm空间到yn空间n(为输出节点数)的高度非线性映射。BP算法是为了解决多层前向神经网络的权系数优化而提出来的。视频动态分析模型可以通过携带动态标签的帧间差异训练集进行训练,以使BP神经网络模型可以从携带动态标签的帧间差异训练集中学习到模型输入的帧间差异集合的特征,并学习输入的帧间差异集合的特征与输出的动态分析结果之间的映射关系,动态分析结果具体可以为评估分值。此外,对于不同采样间隔得到的帧间差异集,可以训练对应的视频动态分析模型,以提高模型对对应采样间隔的泛化能力,提高视频动态分析模型的动态分析效果。
具体地,根据各图像帧的帧间差异进行视频动态分析时,根据各图像帧的帧间差异得到帧间差异集,具体可以根据各图像帧的时间先后顺序,将对应的帧间差异依次组合得到帧间差异集,帧间差异集包括各图像帧之间的帧间差异。将帧间差异集输入视频动态分析模型中,由视频动态分析模型对帧间差异集进行视频动态特征提取,得到所述帧间差异集的视频动态特征,视频动态特征反映了视频中各视频帧之间动态变化剧烈程度的特征,再通过视频动态分析模型对视频动态特征进行视频动态分析,并输出视频的动态分析结果,例如输出视频动态性评分。动态分析结果反映了视频中各图像帧之间的变化的复杂程度。
在一个实施例中,根据动态分析结果确定压缩参数,基于压缩参数将视频压缩包括:确定预设压缩码率;根据动态分析结果对预设压缩码率进行调节,得到调节后的压缩码率;基于调节后的压缩码率将视频压缩。
本实施例中,根据动态分析结果对预设压缩码率进行调节,并根据调节后的压缩码率将视频进行压缩。具体地,在得到动态分析结果后,确定预设压缩码率,预设压缩码率可以为服务器根据自身计算资源能力设定的标准压缩码率。根据动态分析结果对预设压缩码率进行调节,得到调节后的压缩码率,并基于调节后的压缩码率将视频压缩。例如,对于变化程度和复杂度较高的视频,可以调高预设压缩码率,得到码率更高的压缩码率,以确保视频的清晰度;而对于变化程度和复杂度较低的视频,则可以调低或者不调节预设压缩码率,通过得到的调节后的压缩码率将视频压缩,从而在不降低清晰度的前提下优化视频压缩比,提高视频压缩效果。根据待压缩视频的动态分析结果对压缩码率进行对应调节,使压缩码率能够与视频本身的动态特性匹配,能够在确保视频清晰度的前提下提高视频压缩程度,提高了视频压缩的效果。
在一个实施例中,对视频中的图像帧进行帧间差异分析,得到各图像帧的帧间差异包括:当视频的视频协议类型满足协议分析条件时,对视频对应的视频协议进行分析,得到各图像帧的帧间差异。。
本实施例中,对于H.264协议标准的视频,B帧和P帧均是预测编码帧,B帧反映了是本帧与前后帧的差别,P帧反映了当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别,即B帧和P帧本身即反映了视频的变化趋势,则可以直接根据B帧和P帧确定相邻视频采样帧之间的帧间差异,如根据B帧确定本帧与前后帧的帧间差异,如根据P帧确定本帧与前一帧之间的帧间差异。
具体地,确定各图像帧的帧间差异时,确定视频的视频协议类型,视频协议为通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件时采用的编码协议,如H.261协议、H.263协议、H.264协议、AVI(Audio Video Interleaved,音频视频交错格式)等协议。当视频的视频协议类型满足协议分析条件,如视频为H.264协议标准的视频时,此时可以直接对该视频对应的视频协议进行分析,确定各图像帧的帧间差异,如待压缩的视频为H.264协议标准的视频时,可以直接基于视频协议根据B帧确定本帧与前后帧的帧间差异,如根据P帧确定本帧与前一帧之间的帧间差异,从而可以避免对图像帧进行像素对比,提高了视频压缩的处理效率。
在一个实施例中,如图5所示,提供了一种视频压缩方法,包括以下步骤:
S502,获取待压缩的视频;
S504,确定视频中各图像帧的图像帧参数,图像帧参数包括帧率和时长;
S506,根据帧率和时长获得视频中各图像帧的锚点信息;
S508,确定采样锚点密度;
S510,根据采样锚点密度从视频中各图像帧的锚点信息中确定视频中视频采样帧的锚点信息;
S512,根据锚点信息依次从视频中采样获得至少两帧视频采样帧;
S514,确定视频采样帧的图像像素范围;
S516,根据图像像素范围和像素采样间隔分别对相邻视频采样帧进行像素采样,获得相邻视频采样帧中的对比像素;
S518,对对比像素进行灰度化处理,得到灰度对比像素;
S520,确定相邻视频采样帧中对应像素位置的灰度对比像素之间的亮度差;
S522,当亮度差大于像素差异阈值时,确定亮度差对应的灰度对比像素为差异像素;
S524,确定相邻视频采样帧中差异像素的数目;
S526,根据差异像素的数目与视频采样帧的总像素数目的比值得到相邻视频采样帧的帧间差异,各图像帧的帧间差异包括相邻视频采样帧的帧间差异;
S528,根据各相邻视频采样帧之间的帧间差异得到帧间差异集;
S530,通过预训练的视频动态分析模型对帧间差异集进行视频动态分析,得到视频动态分析模型输出的视频的动态分析结果;视频动态分析模型通过训练携带动态标签的帧间差异训练集得到;
S532,确定预设压缩码率;
S534,根据动态分析结果对预设压缩码率进行调节,得到调节后的压缩码率;
S536,基于调节后的压缩码率将视频压缩。
本实施例中,根据待压缩的视频的图像帧参数确定锚点信息,结合采样锚点密度从视频中采样获得至少两帧视频采样帧,根据视频采样帧的图像像素范围和像素采样间隔进行像素采样,并对得到的对比像素进行灰度化处理,确定确定相邻视频采样帧中对应像素位置的灰度对比像素之间的亮度差,根据差异像素的数目与视频采样帧的总像素数目的比值得到相邻视频采样帧之间的帧间差异,作为各图像帧的帧间差异,并根据各图像帧的帧间差异得到帧间差异集,将帧间差异集输入预训练的视频动态分析模型对帧间差异集进行视频动态分析,得到视频动态分析模型输出的视频的动态分析结果,基于该动态分析结果对预设压缩码率进行调节,并基于调节后得到的压缩码率将视频压缩,从而使视频的压缩码率与视频本身的动态特性匹配,能够在确保视频清晰度的前提下提高视频压缩程度,提高了视频压缩的效果。
本申请还提供一种移动端视频压缩转码的应用场景,如图6所示,该应用场景应用上述的视频压缩方法。具体地,该视频压缩方法在该应用场景的应用如下:短视频平台的视频编辑场景下,用户在编辑视频后,会对处理中产生的剪辑、贴图、音乐、字母等多媒体素材进行视频多轨道合成并完成最终转码,此时转码所需的码率,也需要基于帧间动态性评估后进行决策。具体可以获取视频帧采样集合,进行视频帧间动态性检测,并进行视频帧间动态性数据分析,再对预设码率进行调节决策,根据调节后的码率对视频进行压缩、转码。
本申请还另外提供一种视频后台转码的应用场景,如图7所示,该应用场景应用上述的视频压缩方法。具体地,该视频压缩方法在该应用场景的应用如下:后台获取视频源文件后,对视频进行解码,进行视频帧采样,进行视频帧间动态性检测,并进行视频帧间动态性数据分析,进行视频帧间动态性检测,并进行视频帧间动态性数据分析,再对预设码率进行调节决策,根据调节后的码率对视频进行压缩、转码。
在一个实施例中,基于对以上H.264协议基础帧间压缩能力的认知,可以对一个视频进行抽帧采样,评估一定密度的帧间差异,形成数据集合。通过分析该数据集合,可以得知该视频的帧间动态性。帧间动态性较低的视频,可以形成更长的GOP,大幅度降低时间上积累的图像冗余度。因此可知,在码率相同的情况下,低动态性的视频可以承受更高的压缩率而不丧失清晰度。基于此,本申请提供了一种视频压缩方法,该方法具体包括:
获取待压缩的视频,如基于H.264协议标准编码的MP4/MOV格式视频。基于视频的帧率、时长,获得视频采样帧的锚点信息组成的锚点序列集合,锚点序列集合的处理如下式(1),
Pt=PA(n) (1)
其中,n表示后续采样帧的每秒采样锚点密度,PA()为对视频全帧进行基于n帧为间隔的密度采样,获得视频采样帧的锚点信息。
基于Pt集合,对视频对应的目标视频文件进行按序采样解码,获得采样解析后完整的视频采样帧,处理如下式(2),
Fgn=V(Pt) (2)
其中,V()获取视频采样帧的处理每次可基于Pt集合,获得两帧的视频采样帧Fg1、Fg2进行处理,之后再次解析Pt集合中的第三帧视频采样帧,并将当前第二帧Fg2与第三帧图像Fg3返回,以此类推直至Pt集合遍历完毕。此处仅获得两帧视频采样帧,是为了降低比较过程中比对效率,降低对内存空间使用率的开销。
基于Fg获得的两帧视频采样帧例如Fg1和Fg2,将对其进行帧间差异比较计算,差异比较是基于像素粒度的,因此要对Fg图像进行像像素采样处理,处理如下式(3),
Pi=Gp(Fgn) (3)
其中,Gp()像素采样的处理每次返回一个像素点,由于是两帧图像Fg1、Fg2进行比较,因此要返回Pi1=Gp(Fg1)和Pi2=Gp(Fg2)两位像素信息。
基于性能考量,将对以下图像帧内的遍历时使用的像素点色彩通道进行降位处理,Gi=Rtg(Pi),Rtg()灰度化处理的主要目的,在于从RGB/RGBA降为灰度图,将像素点信息从256位降低至8位,以此降低空间信息内降冗余。在这一步中,RGB/RGBA转灰度通道的计算方式,保持与H.264中计算Y亮度通道的方式一致,以确保后续使用中的准确性。对得到的Pi1、Pi2进行灰度化处理后,获得Gi1、Gi2数据。
对基于灰度化处理后的灰度像素位点的相似性进行比较,具体如下式(4),
ΔD=|Gia-Gib| (4)
其中,a、b为相邻两帧视频采样帧的序号。灰度像素位点在进行变化时,可以参考人眼敏感的变化阈值,需要排除一些肉眼不敏感的色彩变化,具体地,在亮度差值变化不超过2%时,不判定为像素变化。通过容忍一些较低幅度的帧间变化,以此来提升最终获得数据的判断合理性。因此,基于H.264是采用YUV原帧进行比较,此处所指的亮度差异,可以理解为是Y分量的差异区间我们所降低的通道,可以理解为是Y分量的一部分,Y的范围为[16,235],所以此时计算差异阈值为4.38。当△D<=4.38时,认为像素并未产生变化。
对视频采样帧进行其宽度W,高度H总数量像素的遍历,具体如下式(5),
ΔDi,j=|Giai,j-Gibi,j| (5)
其中,i取值为[0,W],j取值为[0,H]。
当△D>4.38时,记录当前画幅中产生一个差异像素,得到下式(6),
Diffsum=Diffsum+1 (6)
其中,Diffsum为差异像素的数目。
待遍历完毕时,可以得到两帧比较最终的差异像素的数目Diffsum。此时画面的变化百分率可计算得到帧间差异百分比Diffrate,如下式(7),
Diffrate=Diffsum/(W*H)*100 (7)
在遍历处理了Pt锚点序列集合中要求采样所有帧视频数据后,对每两帧都进行帧间变化百分率计算并且存储,获得了帧间差异集Gd。
在获得视频的帧间差异百分比集合后,输入到一个评估模型中,并得到一个动态性评估数值。可以通过机器学习中,监督学习具有的拟合能力进行实现。经过以上的数据收集,可以数学形式来表达一个视频的变化程度。通过对帧间差异集Gd拟合一个数据结果,以简化表明该视频的复杂度。在此过程中,考虑最终拟合出来的数据,应当是对视频复杂度的一个评估值。此时的评估值应当与人为认知评估结果接近才能验证有效。因此对大量视频进行了人为认知评估,为视频进行了动态性打分,并且将Gd数据与评估作为标记好的训练集合,进行监督学习,以此建立一视频动态分析模型。在获得了视频动态分析模型后,通过该视频动态分析模型可以对待压缩视频进行视频动态分析,得到当前视频的动态性。然后,在给与预设压缩码率时,基于视频动态性的视频予0~40%百分区间内的调节空间,高动态性的视频调幅小,低动态性的视频调幅大,以此优化了视频的压缩比,提高视频压缩效果。
此外,在视频压缩处理后,还可以将压缩后的视频与原视频进行比较,获得PSNR、SSIM两种视频相似度参考值,以此判断视频是否过度压缩而丧失了原视频的清晰度,从而确保视频压缩的效果。
本实施例中,在现有的压缩码率决策策略的基础上,为线上数据提供了更细粒度的压缩转码决策能力。理论上比较现有压缩前最大压缩码率参数决策方案,可以为现有压缩方案下的压缩后视频再度节省0~40%的文件空间(调幅取决于视频的复杂度)。在降低了平台大量视频文件大小后,可优化视频下载体验。有助于提升弱网、假网络情况下的视频加载效率。例如在高铁上,更小的视频大小可以提升更高的用户浏览体验。
应该理解的是,虽然图2、4-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种视频压缩装置800,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:视频获取模块802、帧间差异确定模块804、动态分析模块806和压缩处理模块808,其中:
视频获取模块802,用于获取待压缩的视频;
帧间差异确定模块804,用于对视频中各图像帧进行帧间差异分析,得到各图像帧的帧间差异;
动态分析模块806,用于根据各图像帧的帧间差异进行视频动态分析,得到视频的动态分析结果;
压缩处理模块808,用于根据动态分析结果确定压缩参数,基于压缩参数将视频压缩。
在一个实施例中,帧间差异确定模块804包括帧参数确定模块、锚点信息确定模块、帧采样处理模块和帧间差异分析模块;其中:帧参数确定模块,用于确定视频中各图像帧的图像帧参数;锚点信息确定模块,用于根据图像帧参数确定视频中视频采样帧的锚点信息;帧采样处理模块,用于根据锚点信息依次从视频中采样获得至少两帧视频采样帧;帧间差异分析模块,用于根据相邻视频采样帧的帧间差异得到各图像帧的帧间差异。
在一个实施例中,帧间差异分析模块包括像素范围确定模块、对比像素获得模块、差异分析模块和亮度差分析模块;其中:像素范围确定模块,用于确定视频采样帧的图像像素范围;对比像素获得模块,用于根据图像像素范围和像素采样间隔分别对相邻视频采样帧进行像素采样,获得相邻视频采样帧中的对比像素;差异分析模块,用于对相邻视频采样帧中对应像素位置的对比像素进行差异分析,得到各对比像素之间的亮度差;亮度差分析模块,用于根据各对比像素之间的亮度差确定相邻视频采样帧的帧间差异;各图像帧的帧间差异包括相邻视频采样帧的帧间差异。
在一个实施例中,亮度差分析模块包括差异像素确定模块、差异像素统计模块和差异像素占比确定模块;其中:差异像素确定模块,用于当亮度差大于像素差异阈值时,确定亮度差对应的灰度对比像素为差异像素;差异像素统计模块,用于确定相邻视频采样帧中差异像素的数目;差异像素占比确定模块,用于根据差异像素的数目与视频采样帧的总像素数目的比值得到相邻视频采样帧之间的帧间差异。
在一个实施例中,动态分析模块806包括帧间差异集模块、特征提取模块和特征分析模块;其中:帧间差异集模块,用于根据各图像帧的帧间差异得到帧间差异集;特征提取模块,用于通过预训练的视频动态分析模型对帧间差异集进行视频动态特征提取,得到帧间差异集的视频动态特征;特征分析模块,用于通过视频动态分析模型对视频动态特征进行视频动态分析,得到视频动态分析模型输出的视频的动态分析结果;视频动态分析模型通过训练携带动态标签的帧间差异训练集得到。
在一个实施例中,压缩处理模块808包括预设码率确定模块、码率调节模块和视频压缩模块;其中:预设码率确定模块,用于确定预设压缩码率;码率调节模块,用于根据动态分析结果对预设压缩码率进行调节,得到调节后的压缩码率;视频压缩模块,用于基于调节后的压缩码率将视频压缩。
在一个实施例中,帧间差异确定模块804还包括视频协议分析模块,用于当所述视频的视频协议类型满足协议分析条件时,对所述视频对应的视频协议进行分析,得到各所述图像帧的帧间差异。
关于视频压缩装置的具体限定可以参见上文中对于视频压缩方法的限定,在此不再赘述。上述视频压缩装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种视频压缩方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。