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

文档序号:12038174阅读:198来源:国知局
视频数据的处理方法、处理装置及存储介质与流程

本发明属于数据处理领域,尤其涉及一种视频数据的处理方法、处理装置及存储介质。



背景技术:

视频录制已成为移动终端的必备功能之一,使用户可以随时随地记录难忘的时光。除了常规的视频录制,移动终端还提供了诸多附加功能,比如:美颜、画中画、慢动作、延时摄影等,以增强观赏视频的乐趣。然而,上述附加功能只能独立存在,而不能在录制过程中同时实现,比如:无法录制的美颜的慢动作视频。

对此,现有的解决方案是先选择其中一种附加功能进行录制,比如:美颜,再通过调节播放速度来进行另一种附加功能,比如:慢动作。

现有技术的缺点在于:依赖后期处理导致操作复杂、无法实时呈现多附加功能的视频数据、以及采集的视频帧数量不当导致画质较差或播放卡顿等。



技术实现要素:

本发明实施例提供一种视频数据的处理方法、处理装置及存储介质,旨在对视频数据进行多种附加功能的实时处理,无需后期的复杂再加工,且采集帧数量适宜,不会导致画质较差或播放卡顿的问题。

为解决上述技术问题,本发明实施例提供以下技术方案:

一种视频数据的处理方法,包括:

开启视频流线程,所述视频流线程包括显示线程和线程池,所述线程池包括多个处理线程;

获取原始视频数据,并通过调用所述显示线程和所述线程池对所述原始视频数据进行处理,以生成处理视频流;

获取播放模式,所述播放模式中包括录制帧率,所述录制帧率用于确定单位时间内的帧采集数量;以及

调用所述线程池中空闲的处理线程,按照所述录制帧率对所述处理视频流中的每一帧进行录制。

为解决上述技术问题,本发明实施例还提供以下技术方案:

一种视频数据的处理装置,包括:

线程管理模块,用于开启视频流线程,所述视频流线程包括显示线程和线程池,所述线程池包括多个处理线程;

视频处理模块,用于获取原始视频数据,并通过调用所述显示线程和所述线程池对所述原始视频数据进行处理,以生成处理视频流;

帧率确认模块,用于获取播放模式,所述播放模式中包括录制帧率,所述录制帧率用于确定单位时间内的帧采集数量;以及

视频录制模块,用于调用所述线程池中空闲的处理线程,按照所述录制帧率对所述处理视频流中的每一帧进行录制。

为解决上述技术问题,本发明实施例还提供以下技术方案:

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述的视频数据的处理方法。

本发明实施例提供的视频数据的处理方法、处理装置及存储介质,开启视频流线程,并通过所述视频流线程中的显示线程和线程池分别调用图像处理器和中央处理器,用以对原始视频数据进行多种附加功能进行协同处理,无需后期的复杂再加工,且采集帧数量适宜,不会导致画质较差或播放卡顿的问题。

附图说明

下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。

图1是本发明实施例提供的视频数据的处理方法的流程示意图;

图2是本发明实施例提供的视频数据的处理方法的另一流程示意图;

图3是本发明实施例提供的对原始视频数据进行处理的细化步骤示意图;

图4是本发明实施例提供的对处理视频流进行录制处理的细化步骤示意图;

图5是本发明实施例提供的视频数据的处理装置的模块示意图;

图6是本发明实施例提供的视频数据的处理装置的另一模块示意图;

图7是本发明实施例提供的视频数据的处理方法、处理装置及存储介质的硬件环境示意图。

图8是本发明实施例提供的视频数据的处理方法、处理装置及存储介质的中处理效果的示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

本文所使用的术语「模块」、「单元」可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。

请参阅图1,图1是本发明实施例提供的视频数据的处理方法的流程示意图。所述视频数据的处理方法,可应用于具有录像功能的各类终端设备。

所述视频数据的处理方法,包括如下步骤:

在步骤s101中,开启视频流线程,所述视频流线程包括显示线程和线程池,所述线程池包括多个处理线程。

其中,在主线程中调用子线程来执行如下步骤,会导致操作用户界面(userinterface,ui)时卡顿,因此,在本步骤中,随着进入相机界面而开启一个独立的线程(detachedthread),作为视频流线程。视频流线程的结束,包括:根据用户的退出指令而结束,比如按主键(home),或接收中断指令而结束,比如接听电话。

在步骤s102中,获取原始视频数据,并通过调用所述显示线程和所述线程池对所述原始视频数据进行处理,以生成处理视频流。

具体而言,本步骤可执行如下:

(1)通过图像采集装置来获取原始视频数据,所述图像采集装置如摄像头模块、和截屏模块。其中所述截屏模块用于从终端设备播放的视频中获取原始视频数据。

(2)通过所述显示线程和所述线程池分别调用图形处理器(graphicsprocessingunit,gpu)和中央处理器(centralprocessingunit,cpu),用于对所述原始视频数据进行协同处理。

其中可以采用嵌入系统的开源图形库(opengraphicslibraryforembeddedsystems,opengles)来进行所述协同处理。所述协同处理,是指横跨gpu和cpu之间,协调另一个区域之间的数据交互,进而提升对原始视频数据的渲染性能。

(3)将所生成的处理视频流写入缓冲区。

其中,opengles还为所述数据交互定义了缓冲区(buffer),缓冲区是指gpu能够控制和管理的连续的ram,应用程序可以从cpu的内存复制所述原始视频数据到缓冲区中,gpu通过独占缓冲区,可以提高读写内存的有效性。同时,gpu还可以将处理数据的能力异步到应用在缓冲区上,意味着gpu在处理缓冲区的任务时,运行在cpu中的显示进程可以继续执行。

在步骤s103中,获取播放模式,所述播放模式中包括录制帧率,所述录制帧率用于确定单位时间内的帧采集数量。

其中,所述播放模式,可以简单的包括:快速模式、正常模式、和慢速模式;也可以进一步包括:自定义n倍播放,比如:1.1倍模式,0.8倍模式,其中n是针对正常模式而言。

就目前常用的正常模式而言,通常1秒内采集30帧,那么在选择慢速模式时,根据播放模式生成对应的帧率,比如录制帧率=45帧/秒;然后在播放时,仍然按照1秒30帧的正常速度进行播放,则可显示出的慢动作的效果。

需要说明的是,本步骤可以在视频的录制前或录制中随时进行设置和修改。

在步骤s104中,调用所述线程池中空闲的处理线程,按照所述录制帧率对所述处理视频流中的每一帧进行录制。

具体而言,本步骤包括:

首先,确定所述线程池中是否存在空闲的处理线程;

然后,当存在空闲的处理线程时,通过所述空闲的处理线程调用中央处理器,并执行按照所述录制帧率对所述处理视频流中的每一帧进行录制的步骤;

相反,当不存在空闲的处理线程时,则建立一个新线程,以进行上述录制。

本发明实施例提供的视频数据的处理方法,开启独立线程作为视频流线程,并通过所述视频流线程中的显示线程和线程池分别调用图像处理器和中央处理器,用以对原始视频数据进行多种附加功能进行协同处理,无需后期的复杂再加工,且采集帧数量适宜,不会导致画质较差或播放卡顿的问题。

请参阅图2,图2是本发明实施例提供的视频数据的处理方法的另一流程示意图。所述视频数据的处理方法,可应用于具有录像功能的各类终端设备。

所述视频数据的处理方法,包括如下步骤:

在步骤s201中,进入相机界面时开启独立的线程作为视频流线程,所述视频流线程包括显示线程和线程池,所述线程池包括多个处理线程。

其中,所述显示线程用于调用图形处理器(gpu),所述处理线程用于调用中央处理器(cpu)。

在步骤s202中,获取原始视频数据。

其中,所述原始视频数据可以通过图像采集装置来进行获取,所述图像采集装置包括但不限于摄像头模块。

在步骤s203中,对所述原始视频数据进行处理,以生成处理视频流。

具体而言,请参阅图3,所示为对所述原始视频数据进行处理的细化示意图,本步骤包括:

在步骤s301中,获取处理主体,所述处理主体包括:人体、物品、或景色。以下以人体为例,即可以理解为:美颜模式。

在步骤s302中,获取处理内容,所述处理内容包括:去噪、颜色、形状、亮度。

其中,美颜的去噪算法,都要保持一个特点:既要是边界保持,又要做到平滑,也就是要滤波。滤波算法中比较常见的是双边滤波,它的优点在于高效,因此非常适合移动终端的处理平台。包括双边滤波在内,一每种滤波算法都有各种对应的处理方式,比如:适当降低精度,达到效果与效率的平衡。

其中,美颜的颜色算法,一般是基于色调、饱和度、和明度(hsv)进行肤色检测。可以理解的是,如果用颜色模式-红绿蓝(rgb)来做肤色检测,需要检测r、g、b三个值是否同时满足肤色的颜色范围,亮度色度模式(yuv)同理。而hsv三个值:色调(h)、饱和度(s),明度(v)中,只有h是关乎肤色的,因此只需要对h进行考虑(h值在25-50之间即可判断为肤色),所需要的运算量比rgb少很多。

在步骤s303中,获取虚拟装饰物及其所在位置。

其中所述位置包括:第一位置和/或第二位置。所述第一位置是相对于画面而言的固定位置,第二位置是相对于处理主体而言的固定位置。

如图8所示,为处理效果的示意图。其中,处理画面81中包括的背景(未标示)和处理主体82。第一位置83是相对于处理画面81而言的固定位置,比如:位于右下方,通常显示录制信息。所述录制信息包括但不限于:录制地、录制人、和/或录制时间。其中所述录制时间还进一步包括:录制时的时间、和持续时长等;第二位置84是相对于处理主体82而言的固定位置,比如:位于处理主体82的正上方增加一对兔子耳朵,且所述兔子耳朵会随着处理主体82的移动而在处理画面81上移动,但其相对于处理主体82而言是不变或变化甚微的。

在步骤s304中,根据所述处理主体、处理内容、和/或虚拟装饰物及其所在位置,生成处理指令。

可以理解的是,可以通过所述步骤s301-s304,获取处理指令。所述处理指令包括去噪、调整画面中指定人体、物品、或景色的形状、颜色、或亮度,以及在指定位置添加虚拟装饰物。

在步骤s305中,通过所述显示线程和所述线程池分别调用图形处理器和中央处理器,执行所述处理指令,并对所述原始视频数据进行协同处理。

具体而言,可以采用嵌入系统的开源图形库(opengraphicslibraryforembeddedsystems,opengles)来进行所述协同处理。所述协同处理,是指横跨gpu和cpu之间,协调另一个区域之间的数据交互,进而提升对原始视频数据的渲染性能。

在步骤s306中,将所生成的处理视频流写入缓冲区。

其中,opengles还为所述数据交互定义了缓冲区(buffer),缓冲区是指gpu能够控制和管理的连续的ram,应用程序可以从cpu的内存复制所述原始视频数据到缓冲区中,gpu通过独占缓冲区,可以提高读写内存的有效性。同时,gpu还可以将处理数据的能力异步到应用在缓冲区上,意味着gpu在处理缓冲区的任务时,运行在cpu中的显示进程可以继续执行。

可以理解的是,可以通过所述步骤s305-s306,根据所述处理指令,对所述原始视频数据中的每一帧进行处理,以生成处理视频流。

在步骤s204中,获取播放模式,所述播放模式中包括录制帧率,所述录制帧率用于确定单位时间内的帧采集数量。

具体而言,本步骤包括:

(1)根据设备的gpu的刷新频率和显示器的刷新频率,生成多种预设的播放参数。

(2)根据用户的触发指令将所述播放参数生成播放模式,所述播放模式中包括原始帧率和播放倍数。

其中,所述播放模式,可以简单的包括:快速模式、正常模式、和慢速模式;也可以进一步包括:自定义n倍播放,比如:1.1倍模式,0.8倍模式,其中n是针对正常模式而言。就目前常用的正常模式而言,原始帧率通常为30帧/秒。

(3)根据所述原始帧率和播放倍数生成录制帧率,所述录制帧率用于确定单位时间内的帧采集数量。

比如,播放倍数为1.5倍,则对应的录制帧率=45帧/秒。可以理解的是,在播放时,按照1秒30帧的正常速度进行播放,则可显示出的慢动作的效果。

在步骤s205中,调用所述线程池中空闲的处理线程按照所述录制帧率对所述缓冲区中的处理视频流中的每一帧进行录制。

具体而言,请参阅图4,所示为录制步骤的细化示意图,本步骤包括:

在步骤s401中,确定所述线程池中是否存在空闲的处理线程。

其中,若是则执行步骤s402,若否则执行步骤s403。

在步骤s402中,通过所述空闲的处理线程调用中央处理器,并按照所述录制帧率对所述处理视频流中的每一帧进行录制。

在步骤s403中,判断非空闲的线程数量是否大于负载阈值。

其中,若大不于则执行步骤s404,若大于则执行步骤s405。

在步骤s404中,建立一个新线程,以进行上述步骤s402中的录制。

在步骤s405中,将处理视频流中的当前帧放入缓冲池,并当存在空闲的处理线程时从所述缓冲池中读取帧进行录制。

其中每一帧,在所述缓冲池中形成一个任务数组。所述任务数组表示为:每一帧对应的视频数据和时间戳,即:按照时间戳对应的缓存时间,先入先出的读取所述视频数据进行上述录制。

可以理解的是,所述缓冲区,可以理解为是内存中存放视频数据的地方。在内存的最小粒度(granule)中有很多缓冲区,所述缓冲区包括头部和其关联的缓存区数组,所述头部用于存储缓存数组中的信息,即支持缓存数组的寻址。所述缓冲池,是指多个最小粒度(granule)的内存块的组合,便于进行视频帧的分配和管理。

本发明实施例提供的视频数据的处理方法,开启独立线程作为视频流线程,并通过所述视频流线程中的显示线程和线程池分别调用图像处理器和中央处理器,用以对原始视频数据进行多种附加功能进行协同处理。同时,还对处理线程的数量进行负载阈值的判断,在不大于负载阈值的情况下,若无空闲的处理线程则建立新线程来进行录制,在大于负载的情况下,通过缓冲池对处理视频流中的帧进行缓存,并当存在空闲线程时进行及时处理,即通过多任务队列多缓存模型来进行性能处理。此外,还通过本发明无需后期的复杂再加工,且采集帧数量适宜,不会导致画质较差或播放卡顿的问题。

请参阅图5,图5是本发明实施例提供的视频数据的处理装置的模块示意图。所述视频数据的处理装置,可应用于具有录像功能的各类终端设备。

所述视频数据的处理装置500,包括:线程管理模块51、视频处理模块52、帧率确认模块53、和视频录制模块54。

具体而言,线程管理模块51,用于开启视频流线程,所述视频流线程包括显示线程和线程池,所述线程池包括多个处理线程。

其中,在主线程中调用子线程来执行如下步骤,会导致操作用户界面(userinterface,ui)时卡顿,因此,线程管理模块51随着进入相机界面而开启一个独立的线程(detachedthread),作为视频流线程。

此外,所述线程管理模块51还用于根据用户退出指令或系统中断指令结束所述视频流线程,其中所述用户退出指令,是指用户的指定操作,比如按主键(home),所述系统中断指令,是指由非用户操作导致的中断,比如接听电话。

视频处理模块52,连接于线程管理模块51,用于获取原始视频数据,并通过调用所述显示线程和所述线程池对所述原始视频数据进行处理,以生成处理视频流。

具体而言,所述视频处理模块52执行的动作可概述为如下:

首先,通过图像采集装置来获取原始视频数据,所述图像采集装置包括但不限于摄像头模块;

然后,通过所述显示线程和所述线程池分别调用图形处理器(graphicsprocessingunit,gpu)和中央处理器(centralprocessingunit,cpu),用于对所述原始视频数据进行协同处理。

其中,可以采用嵌入系统的开源图形库(opengraphicslibraryforembeddedsystems,opengles)来进行所述协同处理。所述协同处理,是指横跨gpu和cpu之间,协调另一个区域之间的数据交互,进而提升对原始视频数据的渲染性能。

最后,将所生成的处理视频流写入缓冲区。

可以理解的是,opengles还为gpu与cpu之间的所述数据交互定义了缓冲区(buffer)。缓冲区是指gpu能够控制和管理的连续的ram,应用程序可以从cpu的内存复制所述原始视频数据到缓冲区中,gpu通过独占缓冲区,可以提高读写内存的有效性。同时,gpu还可以将处理数据的能力异步得应用在缓冲区上,意味着gpu在处理缓冲区的任务时,运行在cpu中的显示进程可以继续执行。

帧率确认模块53,用于获取播放模式,所述播放模式中包括录制帧率,所述录制帧率用于确定单位时间内的帧采集数量。

其中,所述播放模式,可以简单的包括:快速模式、正常模式、和慢速模式;也可以进一步包括:自定义n倍播放,比如:1.1倍模式,0.8倍模式,其中n是针对正常模式而言。

就目前常用的正常模式而言,通常1秒内采集30帧,那么在选择慢速模式时,根据播放模式生成对应的帧率,比如录制帧率=45帧/秒;然后在播放时,仍然按照1秒30帧的正常速度进行播放,则可显示出的慢动作的效果。

视频录制模块54,连接于视频处理模块52和帧率确认模块53,用于调用所述线程池中空闲的处理线程,按照所述录制帧率对所述处理视频流中的每一帧进行录制。

具体而言,所述视频录制模块54执行的动作可概述为如下:

首先,确定所述线程池中是否存在空闲的处理线程;

然后,当存在空闲的处理线程时,通过所述空闲的处理线程调用中央处理器,并执行按照所述录制帧率对所述处理视频流中的每一帧进行录制的步骤;

相反,当不存在空闲的处理线程时,则建立一个新线程,以进行上述录制。

本发明实施例提供的视频数据的处理装置,开启独立线程作为视频流线程,并通过所述视频流线程中的显示线程和线程池分别调用图像处理器和中央处理器,用以对原始视频数据进行多种附加功能进行协同处理,无需后期的复杂再加工,且采集帧数量适宜,不会导致画质较差或播放卡顿的问题。

请参阅图6,图6是本发明实施例提供的视频数据的处理装置的另一模块示意图。所述视频数据的处理装置,可应用于具有录像功能的各类终端设备。

所述视频数据的处理装置600,包括:线程管理模块61、视频处理模块62、帧率确认模块63、视频录制模块64、和视频显示模块65。

线程管理模块61,用于管理视频流线程。其中,所述管理视频流线程,包括视频流线程的开启和关闭,并随着开启或关闭,获取或释放线程对应的系统资源。

具体而言,线程管理模块61随着进入相机界面而开启一个独立的线程(detachedthread),作为视频流线程。所述视频流线程包括显示线程和线程池,所述线程池包括多个处理线程。其中,所述显示线程用于调用图形处理器(gpu),所述处理线程用于调用中央处理器(cpu)。

所述线程管理模块61根据用户退出指令或系统中断指令结束所述视频流线程。其中所述用户退出指令,是指用户的指定操作,比如按主键(home),所述系统中断指令,是指由非用户操作导致的中断,比如接听电话。

视频处理模块62,连接于所述线程管理模块61,用于获取原始视频数据,并通过调用所述显示线程和所述线程池对所述原始视频数据进行处理,以生成处理视频流。

其中,所述视频处理模块62包括:指令单元621、和处理单元622。

所述指令单元621,用于获取处理指令,所述处理指令包括去噪、调整画面中指定人体、物品、或景色的形状、颜色、或亮度,以及在指定位置添加虚拟装饰物。

其中,所述指令单元621,包括:主体子单元6211、内容子单元6212、虚拟子单元6213、和生成子单元6214。

具体而言,所述主体子单元6211,用于获取处理主体,所述处理主体包括:人体、物品、或景色。以下以人体为例,即可以理解为:美颜模式。

所述内容子单元6212,用于获取处理内容,所述处理内容包括:去噪、颜色、形状、亮度。

其中,美颜的去噪算法,都要保持一个特点:既要是边界保持,又要做到平滑,也就是要滤波。滤波算法中比较常见的是双边滤波,它的优点在于很高效,因此非常适合移动终端的处理平台。包括双边滤波在内,一每种滤波算法都有各种对应的处理方式,比如:适当降低精度,达到效果与效率的平衡。美颜的颜色算法,一般是基于色调、饱和度、和明度(hsv)进行肤色检测。可以理解的是,如果用颜色模式-红绿蓝(rgb)来做肤色检测,需要检测r、g、b三个值是否同时满足肤色的颜色范围,亮度色度模式(yuv)同理。而hsv三个值:色调(h)、饱和度(s),明度(v)中,只有h是关乎肤色的,因此只需要对h进行考虑(h值在25-50之间即可判断为肤色),所需要的运算量比rgb少很多。

所述虚拟子单元6213,用于获取虚拟装饰物及其所在位置。

其中所述位置包括:第一位置和/或第二位置。所述第一位置是相对于画面而言的固定位置,第二位置是相对于处理主体而言的固定位置。

如图8所示,为处理效果的示意图。其中,处理画面81中包括的处理主体82。第一位置83是相对于处理画面81而言的固定位置,比如:位于右下方,通常显示录制信息。所述录制信息包括但不限于:录制地、录制人、和/或录制时间。其中所述录制时间还进一步包括:录制时的时间、和持续时长等;第二位置84是相对于处理主体82而言的固定位置,比如:位于处理主体82的正上方增加一对兔子耳朵,且所述兔子耳朵会随着处理主体82的移动而在处理画面81上移动,但其相对于处理主体82而言是不变或变化甚微的。

所述生成子单元6214,连接于,用于根据所述处理主体、处理内容、和/或虚拟装饰物及其所在位置,生成处理指令。

处理单元622,连接于指令单元621,用于根据所述处理指令,对所述原始视频数据中的每一帧进行处理,以生成处理视频流。

其中,所述处理单元622还可以包括:调用子单元6221、和缓存子单元6222。

调用子单元6221,用于通过所述显示线程和所述线程池分别调用图形处理器和中央处理器,用于对所述原始视频数据进行协同处理。

具体而言,可以采用嵌入系统的开源图形库(opengraphicslibraryforembeddedsystems,opengles)来进行所述协同处理。所述协同处理,是指横跨gpu和cpu之间,协调另个区域之间的数据交互,进而提升对原始视频数据的渲染性能。缓存子单元6222,用于将所生成的处理视频流写入缓冲区。

其中,opengles还为所述数据交互定义了缓冲区(buffer),缓冲区是指gpu能够控制和管理的连续的ram,应用程序可以从cpu的内存复制所述原始视频数据到缓冲区中,gpu通过独占缓冲区,可以提高读写内存的有效性。同时,gpu还可以将处理数据的能力异步到应用在缓冲区上,意味着gpu在处理缓冲区的任务时,运行在cpu中的显示进程可以继续执行。

视频显示模块65,连接于视频处理模块62,用于显示所述处理视频流。

其中,所述视频显示模块65包括:调度单元651和显示单元652。

具体而言,调度单元651,用于通过所述显示线程调用图形处理器。

显示单元652,用于通过所述图形处理器读取所述缓冲区中的处理视频流,并通过显示屏幕进行实时显示。

可以理解的是,用户可以根据实时显示的内容进行适当调整,比如:调整录制画面中处理主体所占的比例、处理主体在录制画面中的相对位置等。

帧率确认模块63,用于获取播放模式,所述播放模式中包括录制帧率,所述录制帧率用于确定单位时间内的帧采集数量。

具体而言,帧率确认模块63包括:参数单元631、模式单元632、和帧率单元633。

参数单元631,用于根据设备的gpu的刷新频率和显示器的刷新频率,生成多种预设的播放参数。

模式单元632,连接于参数单元631,用于根据用户的触发指令将所述播放参数生成播放模式,所述播放模式中包括原始帧率和播放倍数。

其中,所述播放模式,可以简单的包括:快速模式、正常模式、和慢速模式;也可以进一步包括:自定义n倍播放,比如:1.1倍模式,0.8倍模式,其中n是针对正常模式而言。就目前常用的正常模式而言,原始帧率通常为30帧/秒。

帧率单元633,连接于模式单元632,用于根据所述原始帧率和播放倍数生成录制帧率,所述录制帧率用于确定单位时间内的帧采集数量。

比如,播放倍数为1.5倍,则对应的录制帧率=45帧/秒。可以理解的是,在播放时,按照1秒30帧的正常速度进行播放,则可显示出的慢动作的效果。

视频录制模块64,连接于视频处理模块62和帧率确认模块63,用于调用所述线程池中空闲的处理线程,按照所述录制帧率对所述缓冲区中的处理视频流中的每一帧进行录制。

所述视频录制模块64包括:筛选单元641、录制单元642、和缓冲单元643。

具体而言,筛选单元641,用于确定所述线程池中是否存在空闲的处理线程。

录制单元642,用于当存在空闲的处理线程时,通过所述空闲的处理线程调用中央处理器,并执行按照所述录制帧率对所述处理视频流中的每一帧进行录制的步骤。

缓冲单元643,用于当不存在空闲的处理线程时,判断非空闲的线程数量是否大于负载阈值;若不大于负载阈值,则建立一个新线程,以进行上述录制;若大于负载阈值,则将处理视频流中的当前帧放入缓冲池,并当存在空闲的处理线程时从所述缓冲池中读取帧进行录制。

可以理解的是,其中每一帧,在所述缓冲池中形成一个任务数组。所述任务数组表示为:每一帧对应的视频数据和时间戳,即:按照时间戳对应的缓存时间,先入先出的读取所述视频数据进行上述录制。

本发明实施例提供的视频数据的处理装置,开启独立线程作为视频流线程,并通过所述视频流线程中的显示线程和线程池分别调用图像处理器和中央处理器,用以对原始视频数据进行多种附加功能进行协同处理。同时,还对处理线程的数量进行负载阈值的判断,在不大于负载阈值的情况下,若无空闲的处理线程则建立新线程来进行录制,在大于负载的情况下,通过缓冲池对处理视频流中的帧进行缓存,并当存在空闲线程时进行及时处理,即通过多任务队列多缓存模型来进行性能处理。此外,还通过本发明无需后期的复杂再加工,且采集帧数量适宜,不会导致画质较差或播放卡顿的问题。

相应的,本发明实施例还提供一种终端设备,用于展示视频数据的处理方法及处理装置的硬件环境示意图。如图7所示,所述终端设备用于执行图1-2中的视频数据的处理方法、或运行图5-6中的视频数据的处理装置。所述终端设备700包括:一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、输入单元703、短距离无线传输(wifi)模块704、显示屏幕705、以及电源706等部件。其中,所述处理器701包括:中央处理器和图形处理器。所述存储器702还进一步提供:缓冲区、和缓冲池。

本领域技术人员可以理解,上述结构并不构成对终端设备700的限定,可以包括比上述更多或更少的部件、组合某些部件、或不同的部件布置。其中:

具体在本实施例中,在终端设备700中,处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能,如下:开启视频流线程,所述视频流线程包括显示线程和线程池,所述线程池包括多个处理线程;获取原始视频数据,并通过调用所述显示线程和所述线程池对所述原始视频数据进行处理,以生成处理视频流;获取播放模式,所述播放模式中包括录制帧率,所述录制帧率用于确定单位时间内的帧采集数量;调用所述线程池中空闲的处理线程,按照所述录制帧率对所述处理视频流中的每一帧进行录制。

优选的,所述处理器601还可以用于:获取处理指令,所述处理指令包括去噪、调整画面中指定人体、物品、或景色的形状、颜色、或亮度,以及在指定位置添加虚拟装饰物;根据所述处理指令,对所述原始视频数据中的每一帧进行处理,以生成处理视频流。

优选的,所述处理器601还可以用于:获取处理主体,所述处理主体包括:人体、物品、或景色;获取处理内容,所述处理内容包括:去噪、颜色、形状、亮度;获取虚拟装饰物及其所在位置,其中所述位置包括:第一位置或第二位置,所述第一位置是相对于画面而言的固定位置;第二位置是相对于处理主体而言的固定位置;根据所述处理主体、处理内容、和/或虚拟装饰物及其所在位置,生成处理指令。

优选的,所述处理器601还可以用于:通过所述显示线程和所述线程池分别调用图形处理器和中央处理器,用于对所述原始视频数据进行协同处理;将所生成的处理视频流写入缓冲区。

优选的,所述处理器601还可以用于:通过所述显示线程调用图形处理器;通过所述图形处理器读取所述缓冲区中的处理视频流,并进行实时显示。

优选的,所述处理器601还可以用于:确定所述线程池中是否存在空闲的处理线程;若是,则通过所述空闲的处理线程调用中央处理器,并执行按照所述录制帧率对所述处理视频流中的每一帧进行录制的步骤;若否,则判断非空闲的线程数量是否大于负载阈值;若不大于负载阈值,则建立一个新线程,以进行上述录制;若大于负载阈值,则将处理视频流中的当前帧放入缓冲池,并当存在空闲的处理线程时从所述缓冲池中读取帧进行录制。

优选的,所述处理器601还可以用于:根据设备的图形处理器的刷新频率和显示器的刷新频率,生成多种预设的播放参数;根据用户的触发指令将所述播放参数生成播放模式,所述播放模式中包括原始帧率和播放倍数;根据所述原始帧率和播放倍数生成录制帧率,所述录制帧率用于确定单位时间内的帧采集数量。

本发明实施例提供的终端设备,开启独立线程作为视频流线程,并通过所述视频流线程中的显示线程和线程池分别调用图像处理器和中央处理器,用以对原始视频数据进行多种附加功能进行协同处理。同时,还对处理线程的数量进行负载阈值的判断,在不大于负载阈值的情况下,若无空闲的处理线程则建立新线程来进行录制,在大于负载的情况下,通过缓冲池对处理视频流中的帧进行缓存,并当存在空闲线程时进行及时处理,即通过多任务队列多缓存模型来进行性能处理。此外,还通过本发明无需后期的复杂再加工,且采集帧数量适宜,不会导致画质较差或播放卡顿的问题。

本发明实施例提供的所述终端设备,与上文实施例中的视频数据的处理方法及处理装置属于同一构思。

需要说明的是,对本发明所述视频数据的处理方法而言,本领域普通技术人员可以理解实现本发明实施例中的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在终端设备的存储器中,并被该终端设备内的至少一个处理器执行,在执行过程中可包括如所述信息分享方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)等。

对本发明实施例的所述视频数据的处理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。

以上对本发明实施例所提供的一种视频数据的处理方法、处理装置、存储介质、及终端设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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