一种视频数据处理方法、装置及存储介质与流程

文档序号:18869177发布日期:2019-10-14 19:06阅读:221来源:国知局
一种视频数据处理方法、装置及存储介质与流程

本申请涉及互联网技术领域,尤其涉及一种视频数据处理方法、装置及存储介质。



背景技术:

在一些由帧序列构成的视频数据中,为缓解终端直接加载这些视频数据所造成的内存压力,可以对这些视频数据进行压缩处理,以确保压缩处理后的视频序列的所占用的内存小于原始视频数据所占用的内存。

比如,在使用智能终端的录屏app(application,计算机应用程序)录制屏幕图像时,为确保压缩处理后的视频数据的兼容性,通常会采用默认的编码方式(例如,h264的默认编码方式为baseline格式)进行压缩编码,以至于编码所得到的视频数据中会存在较多的视频冗余信息,从而导致压缩所得到的视频数据的大小偏大。此外,采用预先设置的编码方式,难以保证对任意一个待压缩的视频数据进行编码时均可以获得最优的压缩比,即无法确保压缩所得到的视频文件具有最优的压缩效率。

申请内容

本申请实施例提供一种视频数据处理方法、装置及存储介质,可以提高视频的压缩效率,并可以减小压缩视频数据的大小。

本申请实施例一方面提供了一种视频数据处理方法,所述方法包括:

获取第一视频序列相关联的目标编码器;

基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;所述目标插入周期是由所述第一视频序列中视频帧之间的内容变化度所确定的;

通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;一个所述帧组对应一个参考视频帧;

基于所述参考视频帧和预测视频帧,构建第二视频序列。

本申请实施例一方面提供了一种视频数据处理装置,所述装置包括:

编码器获取模块,用于获取第一视频序列相关联的目标编码器;

分组模块,用于基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;所述目标插入周期是由所述第一视频序列中视频帧的视频内容的变化度所确定的;

编码模块,用于通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;一个所述帧组对应一个参考视频帧;

序列构建模块,用于基于所述参考视频帧和预测视频帧,构建第二视频序列。

本申请实施例一方面提供了一种计算机设备,所述计算机设备包括:处理器、存储器以及网络接口;

所述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本申请实施例一方面中的方法。

本申请实施例一方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,当所述处理器执行所述程序指令时执行如本申请实施例一方面中的方法。

本申请实施例中通过获取第一视频序列相关联的目标编码器;基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;所述目标插入周期是由所述第一视频序列中视频帧之间的内容变化度所确定的;通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;一个所述帧组对应一个参考视频帧;基于所述参考视频帧和预测视频帧,构建第二视频序列。由此可见,通过目标编码器的目标插入周期可以将第一视频序列划分为多个帧组,每个帧组均可以对应一个参考视频帧,由于目标插入周期是基于第一视频序列中的视频帧之间的内容变化度所确定的,所以,在对关键帧进行优化处理的过程中,需要合理的利用录制所得到第一视频序列中的视频内容的变化速度。比如,在视频内容的变化速度较慢时,可以确保在编码时所得到的参考视频帧的数量就比较少,从而可以在确保播放质量的情况下,有效地减少视频数据的冗余信息,以提高视频数据的压缩效率,并可以有效地减小编码所得到视频文件的大小。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种网络架构的结构示意图;

图2是本申请实施例提供的一种对第一视频序列进行硬编码的场景示意图;

图3是本申请实施例提供的一种视频数据处理方法的流程示意图;

图4是本申请实施例提供的一种加载业务数据信息的场景示意图;

图5是本申请实施例提供的一种获取关键视频帧的场景示意图;

图6是本申请实施例提供的一种动态调整插入周期的示意图;

图7a和图7b是本申请实施例提供的两种确定编码视频帧的示意图;

图8是本申请实施例提供的一种i帧、b帧和p帧的示意图;

图9是本申请实施例提供的另一种视频数据处理方法的示意图;

图10是本申请实施例提供的一种配置初始编码器的流程示意图;

图11是本申请实施例提供的一种选取关键帧策略的流程示意图;

图12是本申请实施例提供的一种视频数据处理装置的结构示意图;

图13是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参见图1,是本申请实施例提供的一种网络架构的结构示意图。如图1所示,所述网络架构可以包括服务器2000和用户终端集群,所述用户终端集群可以包括多个用户终端,如图1所示,具体可以包括用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n;如图1所示,用户终端3000a、用户终端3000b、用户终端3000c、…、用户终端3000n可以分别与所述服务器2000进行网络连接,以便于每个用户终端可以通过该网络连接与服务器2000之间进行数据交互。

为便于理解,本申请实施例可以在图1所示的多个用户终端中选择一个用户终端作为目标用户终端,该目标用户终端可以包括:智能手机、平板电脑、桌上型电脑等携带视频数据处理功能(例如,视频数据录制功能、视频数据编码功能等)的智能终端。例如,本申请实施例可以将图1所示的用户终端3000a称之为目标用户终端,该目标用户终端中可以集成有具备视频数据录制功能的目标应用。其中,应当理解,集成在该目标用户终端中的目标应用可以包括社交应用、多媒体应用(例如,视频播放应用)、娱乐应用(例如,游戏应用)等具有帧序列(例如,视频数据)加载和录制功能的应用。可以理解的是,具有视频数据加载和录制功能的应用还可以称之为特定类型的应用。

此外,为了确保运行在目标用户终端中的目标应用的运行更加流畅,本申请实施例考虑可以在目标应用运行时,降低对cpu(centralprocessingunit,中央处理器)的占用率,即可以通过该目标用户终端的操作系统(比如,安卓系统,即androidsysterm)中所集成具备视频数据编码功能的编码器,对录制所得到的第一视频序列实现硬编码,以得到第二视频序列。与此同时,可以理解的是,该安卓系统底层还可以集成有能够对编码所得到的第二视频序列进行解码的解码器,换言之,解码器可以基于第二视频序列中的参考视频帧(比如,帧内编码帧)和预测视频帧(比如,帧间编码帧)还原得到能够在相应用户终端中进行流畅播放的视频数据流。可以理解的是,这里的编码器与解码器可以为同一个硬件设备,以实现视频数据的异步处理。可选的,这里的编码器与解码器也可以为两个相互独立的硬件设备,以实现视频数据的同步处理。

比如,为便于理解,本申请实施例可以以目标应用为娱乐应用中的游戏应用a为例,当该游戏应用a运行在目标用户终端时,可以通过该游戏应用a所具备的智能录屏功能对显示在终端屏幕中的业务数据(即视频数据)进行录屏处理,以得到该游戏应用a对应的第一视频序列。

进一步的,请参见图2,是本申请实施例提供的一种对第一视频序列进行硬编码的场景示意图。其中,如图2所示的第一视频序列可以为图2所示的目标用户终端对该游戏a进行视频录制过程中所识别到的携带业务场景标签信息的部分视频序列。比如,如图2所示,在用户操作该游戏应用a对应的应用显示界面100a的过程中,该目标用户终端可以从该应用显示界面100a所呈现的业务数据(即视频数据)中智能识别出精彩时刻所对应的部分视频序列,并可以将该精彩时刻所对应的部分视频序列称之为第一视频序列。如图2所示的第一视频序列中可以包含图2所示的视频帧10a,视频帧10b,...,视频帧10c,...,视频帧10d。

可选的,可以理解的是,如图2所示的第一视频序列还可以为对该游戏应用a进行视频录制所得到的完整视频序列,比如,在录屏模式为自由模式下,用户可以在图2所示的应用显示界面100a中自由录制用户所需要的视频数据。

其中,可以理解的是,图2所示的目标用户终端在加载该游戏应用a对应的视频数据时,可以向上述图1所示的服务器2000请求并加载帧动画序列,此时,可以将加载的帧动画序列称之为流媒体数据,或者视频数据。可以理解的是,本申请实施例可以将显示在图2所示的应用显示界面100a中的视频数据称之为原始视频数据。如图2所示,目标用户终端可以通过该目标应用所具备的录屏功能对加载显示在应用显示界面200a中的原始视频数据进行视频录制,以将视频录制后所得到的视频数据称之为录制视频数据,这些录制所得到的数据可以构成图2所示的第一视频序列。

其中,可以理解的是,目标用户终端可以对当前运行在终端屏幕中的应用进行栈顶检测,即该目标用户终端可以监控并识别当前运行在终端屏幕中的应用(例如,游戏应用a)的应用类型,从而可以在识别到该游戏应用a的应用类型属于目标类型(比如,游戏应用a为具备录屏功能的娱乐类应用)时,可以将该游戏应用a确定为目标应用,从而可以在该目标应用中渲染并显示所请求到的原始视频数据。

进一步的,如图2所示,该目标用户终端可以通过终端中的目标编码器对第一视频序列进行硬编码处理。可以理解的是,图2所示的目标编码器是对初始编码器进行参数配置后所得到的编码设备,即本申请实施例可以在通过目标编码器执行硬编码之前,可以在以下三个方面对初始编码器进行初始配置:比如,一方面,可以通过动态适配的方式确定能够得到最优画质信息的目标压缩协议,从而可以通过目标压缩协议的协议参数对初始编码器进行配置,以在不同的硬件上设置硬件确定出最高效的压缩方式;又比如,另一方面,可以通过优化关键帧的方式减少第一视频序列中视频帧的冗余信息,从而可以在确保播放质量的情况下,有效地确保压缩所得到的视频序列(即图2所示的第二视频序列)的文件大小可以尽可能的小,从而可以提高视频的压缩效率。又比如,另一方面,可以通过降低码率的方式减少单位时间内所传送的数据量,从而可以减少码率的浪费。

如图2所示,目标用户终端可以通过图2所示的目标编码器对帧组20a,...,帧组20b进行编码处理,以得到与帧组20a相关联的参考视频帧1、预测视频帧1以及与该帧组20a相关联的其他预测视频帧(这里并未在图上示出)。此外,如图2所示,目标用户终端还可以得到与帧组20b相关联的参考视频帧2、预测视频帧2以及与该帧组20a相关联的其他预测视频帧(这里并未在图上示出)。可以理解的是,图2所示的目标编码器也可以对其他帧组进行编码,这里将不再继续进行赘述。

其中,应当理解,本申请实施例中的具备视频数据编解码功能的编解码器主要是指集成在安卓平台上的媒体编解码器(比如,mediacodec编解码器)。其中,mediacodec编解码器是低层多媒体架构的一部分,它是android提供的用于访问低层多媒体编/解码器接口。可以理解的是,mediacodecmediacodec编解码器可以用作安卓平台上的编码器,还可以用作安卓平台上的解码器,以实现视频数据的异步处理。

其中,可以理解的是,通过mediacodec编码器可以在安卓系统底层实现高效的硬编码,从而可以在前述游戏应用a运行在该目标用户终端中时,通过非cpu的方式进行编码,比如,可以通过显卡gpu(generalprocessingunit,通用处理器)、专用的asic(application-specificintegratedcircuit,特定应用集成电路)等硬件实现硬编码,从而可以在系统底层对上述录屏所得到的第一视频序列进行编码,以输出图2所示的第二视频序列。可以理解的是,通过该mediacodec编码器在系统底层进行硬编码,可以有效地避免游戏运行过程中对系统cpu的占用,以在该目标应用运行期间,减少系统性能损耗。

其中,位于该目标用户终端中的mediacodec编码器可以支持h264编码方式下的多种压缩算法,每种压缩算法可以理解为一种压缩协议,这些压缩协议是通过该目标用户终端中的底层硬件的媒体编解码库所确定的,即该媒体编解码库中的第一业务配置表可以用来声明该目标用户终端所支持的协议。比如,该目标用户终端的硬件可以支持以下压缩协议:baseline压缩协议,main压缩协议,hight压缩协议等。

其中,本申请实施例可以在第一业务配置表中会将该目标用户终端的硬件所支持的压缩协议作为该目标用户终端所采集到的多种压缩协议。此时,可以进一步对这些压缩协议的压缩优先级进行排序,比如,hight压缩协议的压缩优先级可以高于main压缩协议的压缩优先级,main压缩协议的压缩优先级可以高于baseline压缩协议的压缩优先级;进一步的,当目标用户终端得到这些排序后的压缩协议之后,可以通过动态适配的方式分别得到这些压缩协议对应的画质信息,从而可以在这些画质信息中将最优画质信息所对应的压缩协议确定为目标压缩协议,从而可以基于第一视频序列的视频属性信息(比如,录屏分辨率信息等)从第二业务配置表中确定该目标压缩协议的目标协议等级信息。

其中,可以理解的是,针对特定应用类型的应用,h264标准定义了一组特定的编码功能。第一业务配置表中的压缩协议可以用于描述视频的压缩特性,比如,对第一视频序列进行压缩的压缩率等。此外,针对上述第一业务配置表中的协议,还需要定义一组表示每个压缩协议所需的解码性能,即第二业务配置表中的协议等级信息可以用于描述视频本身的特性,即可以描述第一视频序列的视频属性信息。

比如,目标压缩协议对应的目标协议等级信息可以用于指定解码器在对上述图2所示的第二视频序列进行解码的过程中可能使用的解码参数,这些解码参数可以与对第一视频序列进行编码的过程中所使用的编码配置参数(即图像分辨率、帧率和码率等)之间存在相应的关联关系。

其中,可以理解的是,由于一些智能终端设备(比如,手机或者游戏机)的性能有限,并不支持视频的高级压缩特性和分辨率较高的图像;所以,目标用户终端在使用目标编码器进行编码之前,可以从包含所有压缩协议的第一业务配置表中动态标识出该目标用户终端所支持的目标压缩协议,比如:可以通过动态适配的方式在该目标用户终端中找到能够提供最优编码质量的目标压缩协议。与此同时,目标用户终端还需要从第二业务配置表中标识出该目标压缩协议对应的目标协议等级信息。

其中,可以理解的是,在确定好目标压缩协议以及目标协议等级信息之后,可以在该目标用户终端中明确用于对mediacodec编码器(即待进行初始化配置的编码器)进行配置的编码配置参数,从而可以基于这些编码配置参数对mediacodec编码器进行配置,从而可以将配置成功后的mediacodec编码器称之为目标编码器。进一步地,目标用户终端可以基于目标编码器对上述图2所示的第一视频序列进行编码处理,以编码得到与每个帧组相关联的参考视频帧和预测视频帧,从而可以基于这些参考视频帧和预测视频帧确定出第二视频序列,该第二视频序列中可以携带需要进行解码处理的解码参数(比如,上述录屏分辨率等)。

其中,可以理解的是,本申请实施例中所描述的通过优化关键帧的方式降低冗余信息的方案,可以适用于所有在网页或者应用客户端(即前述目标应用)中使用帧序列实现播放动画数据的应用场景。其中,当具有视频数据处理功能的目标应用运行在该目标用户终端中时,该目标用户终端所获取到的第一视频序列可以为在目标应用中对终端屏幕所呈现的业务数据(即动画数据)进行录屏后所得到的视频数据。

其中,所述目标用户终端获取第一视频序列、通过目标编码器得到第二视频序列的具体实现方式可以参见如下图3至图11所对应的实施例。

进一步地,请参见图3,是本申请实施例提供的一种视频数据处理方法的流程示意图。其中,可以理解的是,本申请实施例所描述的视频数据处理方法可以应用于用户利用智能手机、个人电脑、个人数字助手等终端中的媒体播放软件或者浏览器录制视频的应用场景中。如图3所示,所述方法至少包括:

步骤s101,获取第一视频序列相关联的目标编码器;

具体的,本申请实施例中的视频数据处理装置可以在得到第一视频序列之后,进一步获取能够对第一视频序列进行编码的目标编码器。其中,所述目标编码器可以为上述图2所对应实施例中的目标编码器,即对上述mediacodec编码器进行初始化配置之后所确定的。其中,可以理解的是,通过优化配置后的mediacodec编码器可以对第一视频序列进行硬编码,从而可以在具有视频录制功能的目标应用运行在目标用户终端时,可以通过硬编码的方式(即可以通过上述图1所对应实施例中的非cpu编码的方式)有效地降低系统性能的损耗,从而可以确保目标应用的流程运行。

其中,可以理解的是,本申请实施例中的视频数据处理装置可以集成在目标用户终端中,该目标用户终端可以为上述图2所对应实施例中的目标用户终端,即可以为上述图2所对应实施例所描述的集成有目标应用的用户终端3000a。

其中,本申请实施例可以将用于进行视频录制的流媒体播放软件称之为具有录屏功能的应用,并可以将该具有录屏功能的应用称之为目标应用,从而可以在目标应用的运行过程中,通过该目标应用所具备的录屏功能对呈现在目标用户终端中的视频数据进行录屏处理,从而可以将录屏所得到的视频数据称之为第一视频序列。其中,可以理解的是,第一视频序列中的每个视频帧均为时间连续的图像帧,此时,该第一视频序列中的每个视频帧均为具备完整图像数据的图像帧。为了提高视频数据的传输效率,可以通过前述初始化配置后的mediacodec编码器(即目标编码器)对第一视频序列进行压缩处理,以减少视频数据对系统内存的占用。

其中,可以理解的是,在集成有视频数据处理装置的目标用户终端开始运行目标应用时,可以通过目标用户终端与服务器(比如,上述图1所对应实施例中的服务器2000)之间的网络连接关系,向服务器发送数据下载指令(即业务数据加载指令),以接收服务器基于基于该下载指令中所返回的业务数据信息。

为便于理解,进一步的,请参见图4,是本申请实施例提供的一种加载业务数据信息的场景示意图。其中,如图4所示的用户a在针对目标应用执行数据获取操作时,可以通过图4所示的目标用户终端中的网络向图4所示的服务器发送该数据获取操作对应的数据下载指令(即可以发生图4所示的业务数据加载指令)。如图4所示,服务器可以在接收到该业务数据加载指令时,从图4所示的业务数据库中获取目标应用对应业务数据信息。比如,若目标应用为上述游戏应用a,则可以从业务数据库中获取游戏应用a对应的业务数据信息(比如,该游戏应用a的视频数据信息,简称为视频数据)。如图4所示,服务器可以进一步向目标用户终端返回所获取到的业务数据信息,从而可以在图4所示的应用显示界面200a中向该用户a展示业务数据信息。换言之,目标用户终端在接收到业务数据信息(即视频数据信息)之后,可以在图4所示的应用显示界面200a中渲染并显示业务数据信息,即可以在该应用显示界面中渲染并显示视频数据。

其中,应当理解,显示在该应用显示界面200a中的视频数据可以称之为原始视频数据。可以理解的是,目标用户终端可以根据目标应用的应用类型,在图4所示的应用显示界面200a中显示相应的操作按钮,该操作按钮可以控制该应用显示界面200a中的目标对象(即游戏应用a中的游戏角色)执行相应的数据操作。比如,在用户a触发的操作按钮为前进按钮时,可以控制目标对象向前移动。

又比如,在用户a触发的操作按钮为击杀操作时,可以控制目标对象对出现在应用显示界面200a中的其它游戏角色进行击杀操作。例如,用户a可以对处于同一应用显示界面中的其他游戏角色(例如,游戏角色b)进行连续击杀,且可以记录连续击杀成功的次数,并可以将连续击杀成功的此时显示在该应用显示界面上。由此可见,在对目标应用中的视频数据进行录屏的应用场景下,目标用户终端可以识别该游戏应用a的连续击杀操作,从而可以在后台对该连续击杀操作所对应的视频数据进行视频录制,以从录制的视频数据中剪切出该用户a在该游戏应用a中的精彩时刻。可以理解的是,本申请实施例可以将该目标用户终端所得到的记录该用户a的精彩时刻所对应的视频序列称之为第一视频序列,此时,目标用户终端可以通过前述目标编码器实现硬编码,以降低系统的性能损耗。

可以理解的是,由于上述目标应用为游戏应用a,所以,在对该游戏应用a进行录屏的应用场景下,运行在目标用户终端中的游戏应用a会占用比较多的系统资源。此外,由于该游戏应用a的整个运行环境需要确保对用户操作的高敏感度,即在接收到用户操作之后,需要立即确定与用户操作相关联的响应信息,且在响应用户操作的过程中也需要消耗一定的系统性能。所以,如果编码也需要消耗系统cpu的性能的话,会导致游戏掉帧或者游戏卡顿等不良现象,鉴于此,为解决这些不良现象,本申请可以采用上述图2所示的目标编码器在系统底层实现硬编码,此时,由于采用目标编码器进行硬编码的过程中所使用的是硬件层的媒体编解码库中的专用的媒体编解码组件,所以,并不占用系统cpu的计算资源,从而可以有效地降低对系统性能的影响。

其中,可以理解的是,本申请实施例中的硬编码就是通过上述目标编码器将显示在终端屏幕上的图像数据转化为特定视频协议的数据,比如,可以转化上述图2所对应实施例中的hight压缩协议(即目标压缩协议)的所指定的数据;进一步的,目标用户终端可以进一步将视频协议的数据经过像mp4之类的视频文件协议包装起来,以得到压缩视频文件。

其中,可以理解的是,本申请实施例所录制得到的第一视频序列可以为对终端屏幕进行全屏录制时所得到的视频数据,还可以为对终端屏幕进行区域录制(即局部录制)时所得到的视频数据,这里将不对其进行限定。

步骤s102,基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;

具体的,集成有视频数据处理装置的目标用户终端可以检测所述第一视频序列中的视频帧之间的内容变化度;进一步的,可以根据所述内容变化度、所述初始编码器的初始插入周期,确定所述目标编码器的目标插入周期;进一步的,可以基于所述目标插入周期划分所述第一视频序列中的视频帧所属的帧组,并将划分所得到的帧组确定为所述第一视频序列相关联的帧组。

其中,所述目标插入周期是由所述第一视频序列中视频帧之间的内容变化度所确定的。换言之,本申请实施例可以根据目标用户终端所具体录制的内容的变化速度动态调整关键帧的插入周期,从而可以在确保第一视频序列中的视频帧的视频质量的情况下,可以合理地得到相应数量的帧组,本申请实施例可以通过优化关键视频帧的方法,在确保视频的播放质量的前提下,有效地去除一些视频帧之间的冗余信息,以提高视频的压缩效率。

可以理解的是,本申请实施例所描述的确保视频的播放质量主要是指用户的视觉感观上的,比如,在帧率方面,人眼所能识别到的动画为24帧,当视频数据的视频帧的数量高于24帧时,比如,30帧或者60帧时,对于观看该视频数据的用户而言,视频质量是一样的,所以,本申请可以根据目标用户终端所具体录制的视频数据的内容的变化速度,对关键视频帧进行优化处理,以根据不同的视频数据(比如,不同类型的游戏),动态调整关键视频帧的插入周期。

其中,为便于理解,进一步的,请参见图5,是本申请实施例提供的一种获取关键视频帧的场景示意图。如图5所示的第一视频序列可以包含多个视频帧,具体可以包含图5所示的n个视频帧,第一视频序列中的视频帧的数量n可以为大于1的整数,这n个视频帧可以包括:视频帧30a,视频帧30b,视频帧30c,…,视频帧30n。其中,可以理解的是,在该目标用户终端的读写性能比较一般(即该目标用户终端的加载性能比较一般)的前提下,为避免在具有录屏功能的目标应用中直接编码第一视频序列所引起的数据展示效果不佳的现象,可以在该目标用户终端中对录屏所得到的视频数据进行图像分析,即可以快速根据录屏所得到的视频数据的内容变化度划分相应数量的帧组。比如,目标用户终端在检测到通过目标应用所录屏得到第一视频序列的变化速度比较慢时,可以基于该第视频序列中视频帧之间的内容变化度,动态调整关键帧的插入周期(比如,可以将关键帧的插入周期由1s调整为2s),从而可以通过动态调整的关键帧的插入周期划分第一视频序列中的视频帧所属的帧组。如图5所示,目标用户终端可以基于2s的目标插入周期将视频帧30a、视频帧30b、视频帧30c划分至图5所示的帧组40a,将视频帧30(n-1)、视频帧30c划分至帧组40k,以优化从第一视频序列中所确定的关键视频帧的数量。

其中,为便于理解,对于包含60个视频帧的第一视频序列而言,假设第一视频序列中的视频帧之间的内容变化度比较慢,若通过1s的初始插入周期可以划分得到10个帧组,每个帧组中可以有6个视频帧,则通过2s的插入周期可以划分出6个帧组,每个帧组中可以包含10个视频帧。由此可见,通过优化关键视频帧的方式,可以优化与第一视频序列相关联的帧组的数量,即可以得到与第一视频序列相关联的k个关键视频帧,这k个关键视频帧可以为图5所示的关键视频帧50a,...,关键视频帧50k。其中,关键视频帧的数量k可以为大于1且小于n的正整数。

其中,目标用户终端通过第一视频序列中的视频帧之间的内容变化度、所述初始编码器的初始插入周期,确定所述目标编码器的目标插入周期的具体过程可以描述为:基于所述编码器的初始插入周期在所述第一视频序列中的未匹配序列中划分出初始帧组s1和初始帧组s2;其中,所述初始帧组s1的时间长度为所述初始插入周期,所述初始帧组s2的时间长度为所述未匹配序列的时间长度与所述初始插入周期的差值;进一步的,将所述初始帧组s1中的关键视频帧a和初始帧组s2中的视频帧bi进行图像匹配,得到所述关键视频帧a与所述视频帧bi之间的内容变化度;i为小于所述初始帧组s2中视频帧的帧数量的正整数;进一步的,根据所述关键视频帧a与所述视频帧bi之间的内容变化度,对所述初始编码器的初始插入周期进行调整,直至所述第一视频序列中不存在未匹配序列时,将调整后的初始插入周期确定为所述目标编码器的目标插入周期。

为便于理解,进一步的,请参见图6,是本申请实施例提供的一种动态调整插入周期的示意图。如图6所示的视频帧30a、视频帧30b、视频帧30c,视频帧30d、...、视频帧30n可以为上述图5所对应实施例中的第一视频序列中的视频帧。如图6所示,目标用户终端在获取到第一视频序列之后,可以基于第一视频序列中视频帧之间的内容变化度对初始编码器的初始编码周期进行调整,以实现对上述图5所对应实施例中的关键视频帧的优化处理。比如,该目标用户终端可以将第一视频序列中的每个视频帧称之为未匹配序列,从而可以基于初始插入周期(例如,1s)从这些未匹配序列中划分出图6所示的初始帧组s1,此时,该初始帧组s1对应的时间长度可以为图6所示的视频帧30a与视频帧30b之间的时间长度1,该时间长度1可以为初始插入周期(即1s)。如图6所示,该目标用户终端还可以将除初始帧组s1中的视频帧之外的所有视频帧统暂时划分至图6所示的初始帧组s2,该初始帧组s2的时间长度可以为图6所示的视频帧30c与视频帧30n之间的时间长度2。

其中,可以理解的是,初始帧组s2中的视频帧bi(例如,图6所示的视频帧30c)可以用于与初始帧组s1中的关键视频帧a(即图6所示的视频帧30a)进行图像匹配(或者图像对比),以确定视频帧bi与关键视频帧a之间的内容变换度,从而可以基于确定出的内容变化度以及初始编码器的初始插入周期(即预设的关键帧间隔),确定目标编码器的目标插入周期,从而可以基于确定出的目标插入周期划分得到上述图5所示的多个帧组。其中,初始帧组s2中的视频帧可以为视频帧bi,其中,下标i可以用于表示视频帧(比如,视频帧30c,…,视频帧30n)在初始帧组s2中的轮序次序,i的取值可以为小于初始帧组s2中的视频帧的帧数量的正整数。

其中,应当理解,本申请实施例可以在图6所示的在初始帧组s1中将具有最小录屏时间戳的视频帧30a称之为初始帧组s1的关键视频帧a。如图6所示,目标用户终端可以按照录屏时间戳的先后顺序,依次将初始帧组s2中的视频帧分别与关键视频帧a进行图像对比,以在初始帧组s2中通过视频帧轮询的方式准确找到与关键视频帧a之间存在较大内容变化度的视频帧。

比如,如图6所示,目标用户终端可以将初始帧组s2中具有最小录屏时间戳的视频帧30c作为用于与关键视频帧a(即图6所示的视频帧30a)进行图像匹配的视频帧,即目标用户终端可以通过进行图像分析,以判断图6所示的视频帧30a与图6所示的视频帧30c(即视频帧b1,此时,i=1)之间的内容变化度1是否小于变化阈值。若判断为是,则需要将图6所示的视频帧30c添加至图6所示的初始帧组s1。

应当理解,进一步地,该目标用户终端可以继续将关键视频帧a与初始帧组s2中的视频帧30d(即视频帧b2,此时,i+1=2)进行图像比对,即目标用户终端可以继续对参与进行图像比对的视频帧30a与视频帧30d进行图像分析,以判断图6所示的视频帧30a与图6所示的视频帧30d之间的内容变化度2是否小于变化阈值。若判断为否,即内容变化度2大于或者等于变化阈值,则可以将图6所示的视频帧30d作为关键视频帧,从而可以进一步将两个关键视频帧之间的间隔(比如,时间长度l)确定为待调整插入周期,从而可以根据该待调整插入周期对初始插入周期进行调整,以得到新的初始插入周期。可以理解的是,该新的初始插入周期可以称之为目标插入周期,即在采用目标编码器对第一视频序列进行分组处理的过程中,可以基于视频数据的变化速度动态调整初始插入周期。

其中,可以理解的是,本申请实施例中的视频帧bi+1为视频帧bi的下一视频帧。当目标用户终端将视频帧bi+1确定为新的关键视频帧时,可以将该新的关键视频帧与初始帧组s1中的关键视频帧a之间的时间长度,确定新的初始插入周期,从而可以基于该新的初始插入周期在初始帧组s2中的未匹配序列(比如,视频帧30e,…,视频帧30n)中划分出新的初始帧组s1和新的初始帧组s2,为便于进行区别,本申请实施例可以将新的初始帧组s1称之为初始帧组s3,同理,本申请实施例可以将新的初始帧组s2称之为初始帧组s4。其中,该初始帧组s3中的关键视频帧(即视频帧30d)可以称之为新的关键视频帧a,从而可以基于该新的关键视频帧a与初始帧组s4中的新的视频帧bi进行图像对比,直到第一视频序列中不再存在未匹配序列时,可以将调整后的初始插入周期确定为所述目标编码器的目标插入周期。其中,具体的图像比对过程可以参见上述图6所对应实施例中对视频帧30c与视频帧30d的描述,这里将不再继续进行赘述。

其中,应当理解,考虑到不同类型的游戏的场景画面的变化速度不一样,所以,若场景画面中视频数据的变化速度比较快,则需要更多的关键帧,以防止丢失视频关键数据;反之,若场景画面中视频数据的变化速度较慢,则可以减少关键帧。所以,根据在该目标用户终端中的目标应用所具体所录制的视频数据的内容变化度,可以动态适配关键帧的插入周期,即可以动态适配关键帧之间的间隔,从而可以在相同录制时长下得到不同数量的关键帧。其中,关键帧之间的间隔可以称之为关键帧的插入周期,该关键帧的插入周期还可以统称为关键帧间隔。比如,以场景界面变化速度比较慢的游戏应用b和游戏应用c为例,若该目标用户终端中的游戏应用c的内容变化度比该目标用户终端中的游戏应用b的内容变化度更慢,则可以将游戏应用b的关键帧间隔(即插入周期)由初始插入周期(比如,1s)调整为目标插入周期(例如,2s);又比如,可以将游戏应用c的关键帧之间的间隔(即插入周期)由初始插入周期(比如,1s)调整为目标插入周期(例如,3s)。其中,为便于理解,游戏应用b可以为王者荣耀,该王者荣耀的关键帧间隔可以设置为2s,此时,游戏应用c可以为和平精英,该和平精英的关键帧间隔可以设置为3s。

步骤s103,通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;

具体的,集成有视频数据处理装置的目标用户终端可以从所述帧组中确定关键视频帧;进一步的,视频数据处理装置可以基于所述目标编码器对所述关键视频帧进行帧内压缩,得到所述帧组相关联的参考视频帧;在所述帧组中将除所述关键视频帧之外的视频帧确定为待编码视频帧;进一步的,视频数据处理装置可以基于所述参考视频帧对所述待编码视频帧进行帧间压缩,得到所述参考视频帧对应的预测视频帧。

其中,可以理解的是,在对第一视频序列相关联的帧组进行编码的过程中,可以得到多个帧组,采用上述目标编码器通过对所述多个帧组中的每个帧组均进行硬编码,可以得到每个帧组相关联的帧内编码视频帧和帧间编码视频帧。

其中,可以理解的是,一个帧组可以对应一个参考视频帧,该参考视频帧可以为一个完整视频,即可以将从每个帧组中确定出的关键视频帧称之为一个参考视频帧;可选地,本申请实施例还可以对关键视频帧进行帧内压缩,以得到相应帧组相关联的参考视频帧。

其中,可以理解的是,对第一视频序列进行压缩处理的过程中所采用的压缩方式不同,就可以得到不同的类别编码视频帧,比如,可以通过帧内编码得到i帧(即intracodedframes,帧内编码帧),还可以通过帧间编码得到p帧(predictedframes,前向预测帧)和b帧(bi-directionalpredictedframes,双向预测帧)。

其中,本申请实施例可以利用单个视频帧内的空间相关性编码输出i帧。即在进行帧内压缩的过程中,可以无需考虑时间上的相关性,也不用考虑运动补偿。此外,应当理解,编码所得到i帧还可以作为后续进行视频解码时的基准帧。应当理解。i帧图像可以周期性地出现在图像序列中,且出现频率可以由目标编码器的目标插入周期所确定。

其中,在选取关键视频帧的时候,该目标用户终端可以将每个帧组中的首个视频帧(比如,每个帧组中具有最小录屏时间戳的视频帧,或者首个视频帧)确定为关键视频帧,在确定好关键视频帧之后,可以通过上述h264编码方式中的目标压缩协议以及目标压缩协议的目标协议等级信息对关键视频帧(例如,上述图5所对应实施例中的视频帧30a)进行帧内压缩,以得到参考视频帧,该参考视频帧可以为前述i帧。可以理解的是,参考视频帧中所保存的视频数据信息可以与关键视频帧中所保存的视频数据信息相同。

其中,p帧(即p帧图像)和b帧(即b帧图像)可以采用帧间编码方式进行帧间压缩,即可以同时利用空间和时间上的相关性。比如,p帧图像可以采用前向时间预测,以提高压缩效率和图像质量。p帧图像中的每一个宏块可以为对参考视频帧进行前向预测后所得到的,也可以通过帧内编码得到p帧。其中,b帧图像是通过双向时间预测所得到的,即b帧图像可以将与b帧最接近的i帧图像或最接近的p帧图像作为进行双向预测的另一种参考视频帧,即b帧图像可以采用了未来帧(即在b帧图像之后的且与b帧相邻最近的已编码的p帧或者i帧)作为参考。因此,在通过目标编码器对第一视频序列中的图像帧进行编码处理的过程中,显示在每个帧组中的编码视频帧的传输顺序和显示顺序是不同的。比如,在第二视频序列中,编码视频帧的显示顺序(即编码顺序)可以是:ibbp。但是考虑到前述预测帧p帧在进行解码的过程中,需要依赖于i帧,且双向预测帧(即b帧)在解码的过程中,需要在解码b帧时知道p帧和i帧中信息,所以,这几帧在视频流中的解码顺序可能是:ipbb。由此可见,当第二视频序列中存在b帧时,对于压缩所得到的第二视频序列的pts(presentationtimestamp,显示时间戳)可以不同于对封装后的第二视频序列进行解码的dts(decodingtimestamp,解码时间戳)。

其中,dts告诉目标用户终端中的解码器可以按什么顺序解码这几帧图像,pts告诉目标用户终端的编码器可以按什么顺序输出并显示这几帧图像。应当理解,当编码所得到的第二视频序列中没有b帧时,可以确保dts和pts的顺序是一致的。反之,如果有b帧,则会存在解码顺序和播放顺序不一致的现象。

与此同时,目标用户终端还可以在任意一个帧组中,将除关键视频帧之外的视频帧统称为待编码视频帧,从而可以根据关键视频帧与待编码视频帧之间的数据变化差异,对待编码视频帧进行帧间压缩,以得到参考视频帧对应的预测视频帧。比如这个例子,不同帧的背景图都是一样,只是一个小区域的图像在动,这整个过程可以分成一组,只提取首帧为关键视频帧。

为便于理解,进一步地,请参见图7a和图7b,是本申请实施例提供的两种确定编码视频帧的示意图。其中,如图7a所示的帧组1中可以包含图7a所示的视频帧1和视频帧2,在该帧组1中可以将首个视频帧(即视频帧1)作为关键视频帧,该目标用户终端可以进一步通过图7a所示的目标编码器对该视频帧1进行帧内压缩,以得到图7a所示的参考视频帧1,所以,目标用户终端在将视频帧1作为待传输视频帧时,可以直接传输图7a所示的参考视频帧1,此时的参考视频帧1可以称之为i帧。通过对比分析参考视频帧1与待传输的视频帧2之间的图像内容可知,这两个视频帧之间其实只有一部分細微的差別,具体的,可以参见图7a所示的区别区域10所标识的这两个图像帧之间的差异数据。所以,目标用户终端在将视频帧2作为待传输视频帧时,可以直接传输图7a所示的区别区域10中的差异数据,以减少数据传输过程中的视频数据的冗余信息,并可以将包含该差异数据的视频帧称之为p帧。其中,p帧的压缩率可以为20。

由于目标编码器可以对一组一组的视频帧进行压缩处理,以得到与相应帧组相关联的参考视频帧和预测视频帧,所以,可以理解的是,图7b所示的目标编码器可以为图7a所示的目标编码器,且图7b所示的帧组2与图7a所示的帧组1均可以为对第一视频序列中的视频帧进行帧组划分后的部分帧组。其中,如图7b所示的帧组2中可以包含图7b所示的视频帧3和视频帧4和视频帧5,在帧组2中可以将视频帧3作为关键视频帧,该目标用户终端可以进一步通过图7b所示的目标编码器对该视频帧3进行帧内压缩,以得到图7b所示的参考视频帧2,所以,目标用户终端可以在将视频帧3作为待传输视频帧时,可以直接传输图7b所示的参考视频帧2,此时的参考视频帧2也可以称之为i帧。通过对比分析参考视频帧1与待传输的视频帧5之间的图像内容可知,仍然可以用图7b所示的区别区域20标识这两个图像帧之间的差异数据,所以,目标用户终端在将视频帧5作为待传输视频帧时,可以传输图7b所示的区别区域20中的差异数据,并可以将包含该差异数据的视频帧称之为图7b所示的p帧。其中,p帧的压缩率可以为20。

此外,由于视频帧4位于i帧与p帧之间,所以,目标用户终端通过参考视频帧2以及图7b所示的p帧,可以进一步得到与待传输的视频帧3相关联的b帧,即在目标用户终端将视频帧4作为待传输视频帧时,可以直接传输图7b所示的区别区域30中的差异数据,以有效的在视频帧的传输过程中,通过编码所得到的i帧、p帧以及b帧,减少视频数据的大小,这里的i帧、p帧以及b帧可以统称为编码视频帧。其中,b帧的压缩率可以为50。

步骤s104,基于所述参考视频帧和预测视频帧,构建第二视频序列。

具体的,集成有视频数据处理装置的目标用户终端可以基于参考视频帧(比如,i帧)和预测视频帧(b帧和p帧),构建得到第二视频序列。

其中,应当理解,通过目标编码器对录屏所得到的视频数据所属的帧组进行编码之后,可以生成多个编码视频帧,在这些编码视频帧中至少可以包括两个帧内编码帧和多个帧间编码帧(例如,多个p帧或者b帧)。为便于理解,进一步地,请参见图8,是本申请实施例提供的一种i帧、b帧和p帧的示意图。如图8所示的单个帧组3中可以包含6个编码视频帧,这6个编码视频帧的编码序号可以为:ibpbpb。如图8所示,帧组3中的参考视频帧(即i帧)可以为图8所示的编码序号为1的视频帧,如图所示的另一个参考视频帧(即i帧)为下一帧组的参考视频帧。

其中,如图8所示的i帧可以作为b帧与p帧的参考视频帧,所以,i帧中可以保存较大的数据量,具体的,可以参见上述参见图7b所示的参考视频帧2,比如,采用目标编码器对关键视频帧进行帧内压缩后所得到的关键视频帧与参考视频帧之间的压缩率可以为7,本申请实施例可以将关键视频帧与参考视频帧(即图8所示的编码序号为1的i帧)之间的比值称之为该帧组3中的i帧的压缩率。此外,如图8所示的p帧可以用于记录当前视频帧(例如,上述图7b所描述的待传输视频帧,即视频帧5)与i帧(即参考视频帧2)之间的数据差异,从而可以将待传输的视频帧(即视频帧5)与i帧之间的比值称之为帧组3中的p帧的压缩率,比如,p帧的压缩率可以为20,可以理解的是,压缩率越大,则编码所得到的编码视频帧所占用的数据量则会越小,具体的,可以参见图8所述的编码序号为1的i帧所占的数据量、编码序号为2的b帧所占用的数据量、编码序号为3的p帧所占用的数据量。

其中,如图8所示,在编码得到b帧的过程中需要使用在当前待传输视频帧(即在传输前述图7b所示的视频帧4)前得到的i帧(或p帧)和该b帧后的p帧(或i帧)进行双向预测,其中,b帧的预测方向可以参见图8所示的指向b帧的两个箭头所示的方向,即该b帧可以通过编码所得到的i帧与p帧中的视频数据进行双向预测后得到。其中,b帧的压缩率为50。

由此可见,本申请实施例可以在通过目标编码器进行压缩编码之前,自适应的从每个压缩协议所对应的画质信息中选取具有最优画质信息的压缩协议作为目标压缩协议,从而可以基于目标压缩协议以及目标压缩协议对应的目标协议等级信息对第一视频序列进行编码处理,从而可以在确保视频的播放质量的前提下,结合终端所具体录制的视频内容的变化速度,有效地对关键视频帧的数量进行优化,从而可以提高视频数据的压缩效率,并可以尽可能地降低数据传输过程中的视频文件的大小。

本申请实施例中通过获取第一视频序列相关联的目标编码器;基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;所述目标插入周期是由所述第一视频序列中视频帧之间的内容变化度所确定的;通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;一个所述帧组对应一个参考视频帧;基于所述参考视频帧和预测视频帧,构建第二视频序列。由此可见,通过目标编码器的目标插入周期可以将第一视频序列划分为多个帧组,每个帧组均可以对应一个参考视频帧,由于目标插入周期是基于第一视频序列中的视频帧之间的内容变化度所确定的,所以,在对关键帧进行优化处理的过程中,需要合理的利用录制所得到第一视频序列中的视频内容的变化速度。比如,在视频内容的变化速度较慢时,可以确保在编码时所得到的参考视频帧的数量就比较少,从而可以在确保播放质量的情况下,有效地减少视频数据的冗余信息,以提高视频数据的压缩效率,并可以有效地减小编码所得到视频文件的大小。

进一步地,请参见图9,是本申请实施例提供的另一种视频数据处理方法的示意图。如图9所示,所述方法可以包含以下步骤:

步骤s201,创建第一视频序列相关联的初始编码器,获取所述第一视频序列相关联的业务运行环境参数。

其中,所述业务运行环境参数可以包含终端的系统版本信息、终端的压缩属性信息和所述第一视频序列的视频属性信息。其中,终端的压缩属性信息中可以包含参考码率信息以及视频帧的参考尺寸信息,这里的参考尺寸信息可以为初始编码器默认的分辨率信息(比如,1080p),参考码率信息可以为初始编码器默认的码率信息(比如,6mbps)。本申请实施例可以通过第一视频序列的视频帧的分辨率来计算用于传输第一视频序列的目标码率信息。

其中,初始编码器可以为上述图1所对应实施例中的medicacodec编码器,medicacodec编码器可以支持采用上述h264编码方式下的多种压缩协议,这些压缩协议均为在第一业务配置表中所标识出的携带目标标识(即支持标识)的压缩协议。可以理解的是,目标用户终端在采集到这些压缩协议之后,可以对这些压缩协议进行排序,从而可以确定出这些压缩协议的压缩优先级。压缩优先级越高则表示压缩效率越高。这样,在同一压缩属性信息(即相同参考码率信息和相同参考尺寸信息)下可以预编码得到这些压缩协议分别对应的画质信息,从而可以将具有最优画质信息的压缩协议确定为目标压缩协议。

其中,第一视频序列的视频帧的分辨率可以为第一视频序列的视频属性信息中的录屏分辨率,该录屏分辨率可以为显示在目标用户终端内的应用显示界面中的视频帧的尺寸信息(比如,比如,w*h=720p),则可以通过以下码率计算公式计算得到目标码率信息,该目标码率信息也可以称之为目标码率参数。其中,第一视频序列的视频属性信息中还可以包含录屏帧率等录屏参数,通过该视频数据信息可以从第二业务配置表中确定出目标压缩协议对应的目标协议等级信息(例如,4.1)

目标码率信息=(w*h)/1080p*6mbps=720p/1080p*6mbps=4mbps。

其中,视频的码率信息(即目标码率信息)可以用来描述单位时间(例如,每秒)内可以传输的数据量,一个视频文件的大小可以等于码率信息*视频时长信息。因此,通过降低码率信息可以有效地缩减视频文件的大小。鉴于此,本申请实施例可以在保证视频质量的前提下,求出一个最小的码率,从而可以减少码率的浪费。应当理解,编码后所得到的最终码率信息可以等于目标码率信息,也可以不等于目标码率信息。例如,可以根据第一视频序列中视频帧之间的内容变化度,对目标码率信息进行动态调整,以确保编码所得到的最终码率信息可以围绕前述目标码率信息(4mbps)上下波动,例如,若第一视频序列中视频帧之间的内容变化度(即视频帧之间的内容变化速度)比较慢,则可以适当下调目标码率信息,那么,编码所得到最终码率信息可以为3.95mbps。同理,若第一视频序列的视频帧之间的内容变化速度比较快,则可以适当上调目标码率信息,以确保视频的视频质量。本申请实施例也可以将调整后的目标码率信息统称为目标码率参数。

其中,本申请实施例所描述的视频数据处理方法可以应用在通过具有录屏功能的目标应用或者浏览器继续智能录屏的应用场景下。在该智能录屏的应用场景下,集成有该目标应用或者浏览器的目标用户终端可以通过系统底层的硬件对录屏所得到的第一视频序列进行硬编码。可以理解的是,在使用该medicacodec编码器对视频序列(即第一视频序列)进行编码之前,需要通过编码配置参数(例如,目标压缩协议的协议参数、目标插入周期、目标码率参数等)对构建的medicacodec编码器(即初始编码器)进行初始化配置,以将初始化配置后的medicacodec编码器统称为目标编码器。

步骤s202,在检测到所述业务运行环境参数满足业务配置条件时,对所述初始编码器进行配置,确定所述第一视频序列相关联的目标编码器。

具体的,目标用户终端在检测到所述系统版本信息满足系统版本阈值时,可以获取所述初始编码器的第一业务配置表和第二业务配置表;进一步的,基于所述压缩属性信息在所述第一业务配置表所包含的压缩协议中确定目标压缩协议;进一步的,基于第一视频序列的视频属性信息从第二业务配置表所包含的协议等级信息中确定所述目标压缩协议对应的目标协议等级信息;所述目标协议等级信息与所述目标压缩协议中的压缩参数相关联,且所述目标协议等级信息是基于所述视频属性信息中的录屏分辨率、录屏帧率所确定的;进一步的,基于所述目标压缩协议和所述目标协议等级信息,对所述初始编码器进行配置,得到所述第一视频序列相关联的目标编码器。

其中,所述第一业务配置表可以用于声明该目标用户终端中的硬件所支持的压缩协议。所述第二业务配置表可以用于声明前述目标压缩协议对应的目标协议等级信息。其中,所述目标协议等级信息与所述目标压缩协议中的压缩参数相关联,且所述目标协议等级信息是基于所述视频属性信息中的录屏分辨率、录屏帧率所确定的。即一个协议可以对应多个等级信息,通过第一视频序列中的视频属性信息可以唯一的确定出具有最优编码质量的目标协议等级信息。

其中,目标用户终端执行所述基于所述压缩属性信息在所述第一业务配置表所包含的压缩协议中确定目标压缩协议的具体步骤可以包含:

获取所述压缩属性信息中的参考码率信息以及视频帧的参考尺寸信息;进一步的,从所述第一业务配置表所包含的压缩协议中获取待匹配压缩协议,根据所述参考码率信息、所述参考尺寸信息以及所述第一视频序列中的视频帧,分别确定与待匹配协议相关联的画质信息;进一步的,从确定出的画质信息中确定最优画质信息所对应的待匹配压缩协议,并将所述最优画质信息所对应的待匹配压缩协议确定为目标压缩协议。

由此可见,本申请实施例可以在检测到终端的安卓系统的系统版本信息大于预设的版本阈值(例如,安卓7.0)时,通过轮序的方式,优先判断具有最优画质信息的压缩协议是否为具有最高压缩效率的压缩协议,若判断为否,可以判断具有最优画质信息的压缩协议是否为具有次压缩效率的压缩协议。本申请实施例可以将具有最高压缩效率的压缩协议称之为第一压缩协议,并将压缩优先级小于第一压缩性的具有次高压缩效率的压缩协议称之为第二压缩协议,从而可以通过比对采用这两种压缩协议的画质信息,来确定出具有较高编码质量的目标压缩协议。可以理解的是,在系统版本信息小于版本阈值时,可以采用默认压缩方式对初始编码器进行配置,以得到目标编码器。

为便于理解,进一步的,请参见图10,是本申请实施例提供的一种配置初始编码器的流程示意图。如图10所示的编码器可以为medicacodec编码器,其中,步骤s1所构建的medicacodec编码器可以称之为初始编码器。然后,该目标用户终端可以通过图10所示的步骤s1-步骤s4进行编码配置,并可以在编码成功时执行图10所示的步骤s5,以对录屏所得到的第一视频序列进行编码处理。其中,如图10所示,步骤s3中通过轮询的方式依次从该目标用户终端的硬件所支持的压缩协议(例如,hight压缩协议,main压缩协议,baseline压缩协议)中确定出具有最优画质信息的压缩协议作为目标压缩协议。即在确保相同视频帧的尺寸以及相同码率的情况下,将hight压缩协议作为第一压缩协议,将main压缩协议作为第二压缩协议,以判断hight压缩协议的画质信息是否为最优画质信息,如果判断为是,则可以将hight压缩协议作为目标压缩协议,从而可以采用压缩效率最高的方案(例如,hight压缩协议,以及hight压缩协议的协议等级信息),对初始编码器进行初始化配置,以得到目标编码器。

可选的,若判断为否,则表明目标用户终端实际是不支持高压缩效率的压缩协议,从而需要丢弃压缩效率最高的hight压缩协议,并将main压缩协议作为新的第一压缩协议,将baseline压缩协议作为新的第二压缩协议,以判断main压缩协议的画质信息是否为最优画质信息,若判断为是,则可以将压缩效率较低的main压缩协议作为目标压缩协议,从而可以采用压缩效率较低的方案(例如,hight压缩协议,以及hight压缩协议的协议等级信息),对初始编码器进行初始化配置,以得到目标编码器。

以此类推,若判断为否,即main压缩协议的画质信息均不如具有最低压缩效率的baseline压缩协议,则可以执行图6所示的步骤s7,以采用默认压缩方案对初始编码器进行配置,以得到目标编码器。

可以理解的是,本申请实施例可以通过动态适配的方式,从这些压缩协议中找到具有最高编码质量的压缩协议,作为目标压缩协议。值得注意的是,这里对比的基础是基于同个参考码率信息下以及同个视频文件大小的情况下,可以优先用具有最高压缩效率的hight压缩协议对第一视频序列进行预编码,以检测是否能够编码得到最优画质信息,当编码失败时可以进行重试。可以理解的是,本申请实施例仅以该目标用户终端所支持的三种压缩协议为例,对于其他终端所支持的其他压缩协议而言,确定目标压缩协议的具体方式可以参见本申请实施例通过轮询的方式确定目标压缩协议的过程,这里将不再继续赘述。

其中,可选的,还可以理解的是,当目标应用开始运行在目标用户终端时,目标用户终端还可以执行以下步骤:检测终端屏幕中所运行的应用;若识别到运行在终端屏幕中的应用的应用类型属于目标类型,则将所述目标类型对应的应用确定为目标应用;获取所述目标应用对应的录屏参数;所述录屏参数包含所述终端屏幕相关联的录屏区域以及录屏分辨率;基于所述录屏区域以及所述录屏分辨率,对展示在所述目标应用中的视频数据进行录屏处理,得到所述目标应用对应的第一视频序列;所述第一视频序列为在录屏处理的过程中所识别到的携带业务场景标签信息的视频序列。

进一步的,请参见图11,是本申请实施例提供的一种选取关键帧策略的流程示意图。如图11所示,目标用户终端可以对运行在目标用户终端中的应用进行栈顶检测,以识别该目标用户终端中当前所运行的应用的应用类型,若识别到该应用为具有智能录屏功能的游戏应用时,可以在游戏运行过程中,智能识别并录制精彩时刻对应视频数据,并可以将录屏所得到的视频数据所构成的帧序列称之为第一视频序列。进一步的,目标用户终端可以基于该第一视频序列中的视频帧之间的内容变化度,执行图11所示的步骤s13,以选取关键帧策略,该关键帧策略可以用于优化关键视频帧的帧数量,即可以根据录屏所得到的具体内容动态调整关键帧的插入周期,从而可以基于关键帧的插入周期以及上述图10所对应实施例中的目标压缩协议的协议参数以及目标码率参数对初始编码器进行配置,从而可以基于配置后的编码器进一步执行图11所示的步骤s15。

其中,可以理解的是,本申请实施例中的目标用户终端可以为注册目标应用的用户所使用的用户终端,当用户终端具备比较强大的计算性能时,可以在用户终端中对第一视频序列中的视频帧进行图像分析,以判断第一视频序列中的视频的之间的内容变化度是否小于变化阈值,并在第一视频序列中的视频帧之间的内容变化度大于或者等于变化阈值的情况下,对初始编码器的初始插入周期进行调整,以在该用户终端中得到选取关键帧的策略。可以理解的是,为了减少用户终端在运行目标应用时的对系统性能的损耗,还可以将录屏所得到的第一视频序列给到开发人员所使用的开发终端,此时,可以将开发终端称之为目标用户终端,即可以在开发终端中对初始编码器的初始插入周期进行调整,从而也可以在开发终端中预先得到后续用于选取关键帧的策略,从而可以将选取的关键帧的策略返回给用户终端,以便于用户终端后续可以基于所选取的策略中的目标插入周期对初始编码器进行配置,以得到用于对第一视频序列进行编码的目标编码器。

步骤s203,获取第一视频序列相关联的目标编码器;

步骤s204,基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;

其中,所述目标插入周期是由所述第一视频序列中视频帧之间的内容变化度所确定的;

步骤s205,通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;一个所述帧组对应一个参考视频帧;

步骤s206,基于所述参考视频帧和预测视频帧,构建第二视频序列。

其中,步骤s203-步骤s206的具体实现方式可以参见上述图3所对应实施例中对步骤s101-步骤s104的描述,这里将不再继续进行赘述。

本申请实施例中通过目标编码器的目标插入周期可以将第一视频序列划分为多个帧组,每个帧组均可以对应一个参考视频帧,由于目标插入周期是基于第一视频序列中的视频帧之间的内容变化度所确定的,所以,在对关键帧进行优化处理的过程中,需要合理的利用录制所得到第一视频序列中的视频内容的变化速度。比如,在视频内容的变化速度较慢时,可以确保在编码时所得到的参考视频帧的数量就比较少,从而可以在确保播放质量的情况下,有效地减少视频数据的冗余信息,以提高视频数据的压缩效率,并可以有效地减小编码所得到视频文件的大小。

进一步地,请参见图12,是本申请实施例提供的一种视频数据处理装置的结构示意图。所述视频数据处理装置1可以应用于上述目标用户终端,该目标用户终端可以为上述图1所对应实施例中的用户终端3000a。进一步地,该视频数据处理装置1可以包括:编码器获取模块10,分组模块20,编码模块30和序列构建模块40;进一步的,该视频数据处理装置1还可以包括:创建获取模块50,配置确定模块60,应用检测模块70,目标应用确定模块80,录屏参数获取模块90,录屏处理模块100。

编码器获取模块10,用于获取第一视频序列相关联的目标编码器;

分组模块20,用于基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;所述目标插入周期是由所述第一视频序列中视频帧的视频内容的变化度所确定的;

其中,所述分组模块20包括:变化检测单元201,周期确定单元202,帧组划分单元203;

变化检测单元201,用于检测所述第一视频序列中的视频帧之间的内容变化度;

周期确定单元202,用于根据所述内容变化度、所述初始编码器的初始插入周期,确定所述目标编码器的目标插入周期;

其中,所述周期确定单元202包括:初始划分子单元2021,图像匹配子单元2022,周期调整子单元2023;

初始划分子单元2021,用于基于所述编码器的初始插入周期在所述第一视频序列中的未匹配序列中划分出初始帧组s1和初始帧组s2;所述初始帧组s1的时间长度为所述初始插入周期,所述初始帧组s2的时间长度为所述未匹配序列的时间长度与所述初始插入周期的差值;

图像匹配子单元2022,用于将所述初始帧组s1中的关键视频帧a和初始帧组s2中的视频帧bi进行图像匹配,得到所述关键视频帧a与所述视频帧bi之间的内容变化度;i为小于所述初始帧组s2中视频帧的帧数量的正整数;

周期调整子单元2023,用于根据所述关键视频帧a与所述视频帧bi之间的内容变化度,对所述初始编码器的初始插入周期进行调整,直至所述第一视频序列中不存在未匹配序列时,将调整后的初始插入周期确定为所述目标编码器的目标插入周期。

其中,所述周期调整子单元2023包括:帧添加子单元2024,变化确定子单元2025,关键确定子单元2026,初始调整子单元2027;

帧添加子单元2024,用于若所述关键视频帧a与所述视频帧bi之间的内容变化度小于变化阈值,则将所述视频帧bi添加至初始帧组s1;

变化确定子单元2025,用于从所述初始帧组s2中获取视频帧bi+1,确定所述关键视频帧a与所述视频帧bi+1之间的内容变化度;

关键确定子单元2026,用于若确定所述关键视频帧a与所述视频帧bi+1之间的内容变化度等于或者大于所述变化阈值,则将所述视频帧bi+1确定为关键视频帧;

初始调整子单元2027,用于根据所述关键视频帧a与所述关键视频帧之间的时间长度l,对所述初始插入周期进行调整;调整后的初始插入周期的时间长度为所述时间长度l。

其中,所述帧添加子单元2024,变化确定子单元2025,关键确定子单元2026,初始调整子单元2027的具体实现方式可以参见上述上述图3所对应实施例中对调整初始插入周期的描述,这里将不再继续进行赘述。

其中,所述初始划分子单元2021,图像匹配子单元2022,周期调整子单元2023的具体实现方式可以参见上述上述图3所对应实施例中对确定目标插入周期的描述,这里将不再继续进行赘述。

帧组划分单元203,用于基于所述目标插入周期划分所述第一视频序列中的视频帧所属的帧组,将划分所得到的帧组确定为所述第一视频序列相关联的帧组。

其中,所述变化检测单元201,周期确定单元202,帧组划分单元203的具体实现方式可以参见上述图3所对应实施例中对确定第一视频序列相关联的帧组的描述,这里将不再继续进行赘述。

编码模块30,用于通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;一个所述帧组对应一个参考视频帧;

其中,所述编码模块30包括:关键帧确定单元301,帧内压缩单元302,待编码确定单元303;

关键帧确定单元301,用于从所述帧组中确定关键视频帧;

帧内压缩单元302,用于基于所述目标编码器对所述关键视频帧进行帧内压缩,得到所述帧组相关联的参考视频帧;

待编码确定单元303,用于在所述帧组中将除所述关键视频帧之外的视频帧确定为待编码视频帧;

帧间压缩单元304,用于基于所述参考视频帧对所述待编码视频帧进行帧间压缩,得到所述参考视频帧对应的预测视频帧。

其中,所述关键帧确定单元301,帧内压缩单元302,待编码确定单元303具体实现方式可以参见上述图3所对应实施例中对确定帧组进行编码的描述,这里将不再继续进行赘述。

序列构建模块40,用于基于所述参考视频帧和预测视频帧,构建第二视频序列。

其中,可选的,创建获取模块50,用于创建第一视频序列相关联的初始编码器,获取所述第一视频序列相关联的业务运行环境参数;

配置确定模块60,用于在检测到所述业务运行环境参数满足业务配置条件时,对所述初始编码器进行配置,确定所述第一视频序列相关联的目标编码器。

其中,所述业务运行环境参数包含终端的系统版本信息、终端的压缩属性信息和所述第一视频序列的视频属性信息;

所述配置确定模块60包括:配置表获取单元601,目标协议确定单元602,目标等级确定单元603和初始配置单元604;

配置表获取单元601,用于在检测到所述系统版本信息满足系统版本阈值时,获取所述初始编码器的第一业务配置表和第二业务配置表;

目标协议确定单元602,用于基于所述压缩属性信息在所述第一业务配置表所包含的压缩协议中确定目标压缩协议;

其中,所述目标协议确定单元602包括:参考确定子单元6021,待匹配子单元6022,画质确定子单元6023,最优确定子单元6024;

参考确定子单元6021,用于获取所述压缩属性信息中的参考码率信息以及视频帧的参考尺寸信息;

待匹配子单元6022,用于从所述第一业务配置表所包含的压缩协议中获取待匹配压缩协议,

画质确定子单元6023,用于根据所述参考码率信息、所述参考尺寸信息以及所述第一视频序列中的视频帧,分别确定与待匹配协议相关联的画质信息;

其中,所述待匹配压缩协议包含第一压缩协议,第二压缩协议;所述第一压缩协议的压缩优先级高于所述第二压缩协议的压缩优先级;

所述画质确定子单元6023包括:第一确定子单元6025,第二确定子单元6026,第三确定子单元6027;

第一确定子单元6025,用于根据所述参考码率信息、所述参考尺寸信息,确定由所述第一压缩协议对所述第一视频序列中的视频帧进行预编码所得到的第一画质信息;

第二确定子单元6026,用于根据所述参考码率信息、所述参考尺寸信息,确定由所述第二压缩协议对所述第一视频序列中的视频帧进行预编码所得到的第二画质信息;

第三确定子单元6027,用于将所述第一画质信息和所述第二画质信息确定为与待匹配压缩协议相关联的画质信息。

其中,所述第一确定子单元6025,第二确定子单元6026,第三确定子单元6027的具体实现方式可以参见上述图9所对应实施例中对确定各压缩协议所对应的画质信息的描述,这里将不再继续进行赘述。

最优确定子单元6024,用于从确定出的画质信息中确定最优画质信息所对应的待匹配压缩协议,并将所述最优画质信息所对应的待匹配压缩协议确定为目标压缩协议。

其中,所述参考确定子单元6021,待匹配子单元6022,画质确定子单元6023,最优确定子单元6024的具体实现方式可以参见上述图9所对应实施例中对动态确定目标压缩协议的描述,这里将不再继续进行赘述。

目标等级确定单元603,用于基于第一视频序列的视频属性信息从第二业务配置表所包含的协议等级信息中确定所述目标压缩协议对应的目标协议等级信息;所述协议等级信息与所述目标压缩协议中的压缩参数相关联,且所述协议等级信息是基于所述视频属性信息中的录屏分辨率、录屏帧率所确定的;

初始配置单元604,用于基于所述目标压缩协议和所述目标协议等级信息,对所述初始编码器进行配置,得到所述第一视频序列相关联的目标编码器。

其中,所述初始配置单元604,包括:配置确定子单元6041,初始配置子单元6042;

配置确定子单元6041,用于根据所述目标压缩协议和所述目标协议等级信息,确定用于对初始编码器进行配置的编码配置参数;所述编码配置参数包含所述目标压缩协议的协议参数、所述第一视频序列相关联的目标插入周期以及目标码率参数;所述目标码率参数是由所述录屏分辨率以及与所述目标协议等级信息相关联的压缩参数所确定的;所述压缩参数包括终端中的硬件所支持的参考码率信息和参考分辨率信息;

初始配置子单元6042,用于基于所述协议参数、所述目标插入周期、所述目标码率参数对所述初始编码器进行配置,得到目标编码器。

其中,所述配置确定子单元6041,初始配置子单元6042的具体实现方式可以参见上述图9所对应实施例中对初始编码器进行配置的描述,这里将不再继续进行赘述。

其中,所述配置表获取单元601,目标协议确定单元602,目标等级确定单元603和初始配置单元604的具体实现方式可以参见上述图9所对应实施例中对初始编码器进行配置的描述,这里将不再继续进行赘述。

其中,可选的,应用检测模块70,用于检测终端屏幕中所运行的应用;

目标应用确定模块80,用于若识别到运行在终端屏幕中的应用的应用类型属于目标类型,则将所述目标类型对应的应用确定为目标应用;

录屏参数获取模块90,用于获取所述目标应用对应的录屏参数;所述录屏参数包含所述终端屏幕相关联的录屏区域以及录屏分辨率;

录屏处理模块100,用于基于所述录屏区域以及所述录屏分辨率,对展示在所述目标应用中的视频数据进行录屏处理,得到所述目标应用对应的第一视频序列;所述第一视频序列为在录屏处理的过程中所识别到的携带业务场景标签信息的视频序列。

其中,所述编码器获取模块10,分组模块20,编码模块30和序列构建模块40的具体实现方式可以参见上述图3所对应实施例对步骤s101-步骤s104的描述,这里将不再继续进行赘述;进一步的,所述创建获取模块50,配置确定模块60,应用检测模块70,目标应用确定模块80,录屏参数获取模块90,录屏处理模块100的具体实现方式可以参见上述图9所对应实施例对步骤s201-步骤s206的描述,这里将不再继续进行赘述。

可以理解的是,本申请实施例中的视频数据处理装置1可执行前文图3或图9所对应实施例中对所述视频数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

进一步地,请参见图13,是本申请实施例提供的一种计算机设备的结构示意图。如图13所示,该计算机设备1000可以为上述图1所对应实施例中的用户终端3000a。该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1004可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图13所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。

其中,该计算机设备1000中的网络接口1004还可以与上述图1所对应实施例中的服务器2000进行网络连接,且可选用户接口1003还可以包括显示屏(display)、键盘(keyboard)。在图13所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:

获取第一视频序列相关联的目标编码器;

基于所述目标编码器的目标插入周期对所述第一视频序列中的视频帧进行分组处理,得到所述第一视频序列相关联的帧组;所述目标插入周期是由所述第一视频序列中视频帧之间的内容变化度所确定的;

通过所述目标编码器对所述帧组进行编码处理,得到所述帧组相关联的参考视频帧和预测视频帧;一个所述帧组对应一个参考视频帧;

基于所述参考视频帧和预测视频帧,构建第二视频序列。

应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3或图9所对应实施例中对所述视频数据处理方法的描述,也可执行前文图12所对应实施例中对所述视频数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。

此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的视频数据处理装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图3或图9所对应实施例中对所述视频数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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