CN110149552A - 一种视频流帧数据的处理方法及终端 - Google Patents

一种视频流帧数据的处理方法及终端 Download PDF

Info

Publication number
CN110149552A
CN110149552A CN201910381687.0A CN201910381687A CN110149552A CN 110149552 A CN110149552 A CN 110149552A CN 201910381687 A CN201910381687 A CN 201910381687A CN 110149552 A CN110149552 A CN 110149552A
Authority
CN
China
Prior art keywords
frame data
queue
terminal
stored
processing
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.)
Pending
Application number
CN201910381687.0A
Other languages
English (en)
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.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910381687.0A priority Critical patent/CN110149552A/zh
Publication of CN110149552A publication Critical patent/CN110149552A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种视频流帧数据的处理方法及终端,该方法包括:在终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从终端的第一队列中获取的第一帧数据存储至终端的第二队列,其中,第一队列用于接收当前拍摄的视频流的帧数据;在检测到目标指令且第二队列中缓存有帧数据的情况下,从第二队列中获取第二帧数据,其中,目标指令为目标缓存请求帧数据的指令;将第二帧数据存储至目标缓存中并作为待渲染帧数据。这样,可以实现通过第二队列将无法及时处理的帧数据暂存至第二队列中,减少对视频流帧数据的丢弃,进而降低视频流丢帧现象的发生,提升视频质量。

Description

一种视频流帧数据的处理方法及终端
技术领域
本发明涉及视频处理技术领域,尤其涉及一种视频流帧数据的处理方法及终端。
背景技术
随着互联网技术以及视频技术的飞速发展,人们越来越喜欢通过智能手机和平板电脑等拍摄视频,并将拍摄的视频通过直播或者转发等方式进行分享,视频分享给人们带来更好的社交体验。而在视频拍摄过程中,为提升视频播放效果,用户可能会在视频拍摄过程中对视频流进行一些渲染处理,如增加滤镜以及贴纸效果等。
目前在对视频流进行渲染处理的过程中,通常是将先将采集的视频流的帧数据存储至显卡缓存中作为待渲染帧数据,再对待渲染帧数据进行渲染处理。但是,由于视频流获取和视频渲染操作的异步操作特性,显卡缓存内的带渲染帧数据可能不能及时进行渲染处理,会导致显卡缓存中存储的帧数据过多而出现视频流丢帧的现象,即部分帧数据被丢弃,这样,最终会导致处理完成后的视频流畅性降低,进而降低拍摄的视频质量。
可见,目前对拍摄的视频流进行渲染处理的过程中,存在因发生视频流丢帧而导致处理后的视频质量降低的问题。
发明内容
本发明实施例提供一种视频流帧数据的处理方法及终端,以解决目前对拍摄的视频流进行渲染处理的过程中,存在因发生视频流丢帧而导致处理后的视频质量降低的问题。
为解决上述问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种视频流帧数据的处理方法,应用于终端,所述第一队列用于接收当前拍摄的视频流的帧数据;包括:
在所述终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从所述终端的第一队列中获取的第一帧数据存储至所述终端的第二队列,其中,所述第一队列用于接收当前拍摄的视频流的帧数据;
在检测到目标指令且所述第二队列中缓存有帧数据的情况下,从所述第二队列中获取第二帧数据,其中,所述目标指令为所述目标缓存请求帧数据的指令;
将所述第二帧数据存储至所述目标缓存中并作为待渲染帧数据。
第二方面,本发明实施例还提供了一种终端,包括:
第一存储模块,用于在所述终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从所述终端的第一队列中获取的第一帧数据存储至所述终端的第二队列,其中,所述第一队列用于接收当前拍摄的视频流的帧数据;
帧数据获取模块,用于在检测到目标指令且所述第二队列中缓存有帧数据的情况下,从所述第二队列中获取第二帧数据,其中,所述目标指令为所述目标缓存请求帧数据的指令;
第二存储模块,用于将所述第二帧数据存储至所述目标缓存中并作为待渲染帧数据。
第三方面,本发明实施例还提供了一种终端,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述视频流帧数据的处理方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述视频流帧数据的处理方法的步骤。
本发明实施例,通过在终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从终端的第一队列中获取的第一帧数据存储至终端的第二队列;在检测到目标指令且第二队列中缓存有帧数据的情况下,从第二队列中获取第二帧数据,其中,目标指令为目标缓存请求帧数据的指令;将第二帧数据存储至目标缓存中并作为待渲染帧数据。这样,可以实现通过第二队列将无法及时处理的帧数据暂存至第二队列中,减少对视频流帧数据的丢弃,进而降低视频流丢帧现象的发生,提升视频质量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的视频流帧数据的处理方法的流程示意图;
图2a是本发明实施例提供的视频流帧数据的处理方法在实际应用的原理示意图之一;
图2b是本发明实施例提供的视频流帧数据的处理方法在实际应用的原理示意图之二;
图3是本发明实施例提供的终端的结构示意图之一;
图4是本发明实施例提供的第一存储模块的结构示意图之一;
图5是本发明实施例提供的第一存储模块的结构示意图之二;
图6是本发明实施例提供的终端的结构示意图之二;
图7是本发明实施例提供的终端的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例提供的一种视频流帧数据的处理方法的流程图,应用于终端,如图1所示,视频流帧数据的处理方法包括以下步骤:
步骤101、在终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从终端的第一队列中获取的第一帧数据并存储至终端的第二队列,其中,第一队列用于接收当前拍摄的视频流的帧数据;
步骤102、在检测到目标指令且第二队列中缓存有帧数据的情况下,从第二队列中获取第二帧数据,其中,目标指令为目标缓存请求帧数据的指令;
步骤103、将第二帧数据存储至目标缓存中并作为待渲染帧数据。
这里,终端可以在目标缓存存储的帧数据的数量大于或者等于一定阈值(即第一预设阈值)的情况下,将从第一队列中获取的帧数据(即第一帧数据)存储至第二队列,并在视频流的渲染过程中,目标缓存优先从第二队列中取出帧数据作为目标缓存的待渲染数据,从而在保证对视频流的正常渲染处理的前提下,可以通过第二队列将无法及时处理的帧数据暂存至第二队列中,减少对视频流帧数据的丢弃,进而降低视频流丢帧现象的发生,提升视频质量。
需要说明的是,上述终端可以是任何拍摄视频并对拍摄的视频流进行渲染处理的终端,例如:手机、平板电脑(Tablet Personal Computer)、膝上型电脑(LaptopComputer)、个人数字助理(personal digital assistant,简称PDA)、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等,还可以是其它终端,如数码相机、电子书、导航仪等。
本发明实施例中,上述终端中设置有第一队列,该第一队列在终端的摄像头拍摄视频的过程中,当摄像头采集到视频流的帧数据时,第一队列可以实时接收摄像头采集的帧数据并进行存储。其中,该第二队列可以是串行队列,即第一队列可以将接收的帧数据按照时间顺序进行缓存。
上述步骤101中,当终端需要从第一队列中获取第一帧数据时,终端可以判断其目标缓存当前存储的帧数据的数量是否大于或者等于第一预设阈值,并在确定目标缓存存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从第一队列中获取的第一帧数据存储至第二队列,从而可以将未能及时处理的帧数据暂存在第二队列中,降低帧数据被丢弃的可能性。
其中,上述终端从第一队列中获取第一帧数据,可以是在第一队列中存储的帧数据的数量大于或者等于一定预设阈值,或者第一队列接收到用于取出帧数据的指令时,终端从第一队列中取出第一帧数据。
例如:在第一队列为串行队列的情况下,在第一队列中存储的帧数据的数量超出其容量的90%时,该终端可以将串行队列中最早存储的帧数据取出,即该取出的帧数据为上述第一帧数据。
另外,上述目标缓存为终端中用于显示的存储区域,且在终端对图片进行渲染处理时,可以通过渲染指令从该目标缓存中取帧数据进行渲染处理,例如:在所述终端设置有独立的显卡的情况下,上述目标缓存可以是显卡的存储区域,即显卡缓存;或者,在终端使用集成显卡的情况下,上述目标缓存可以是占用终端的内存中的部分存储区域。
需要说明的是,上述第一预设阈值可以是终端预设的大于零且小于或者等于目标缓存的最大容量的值,例如:在上述第一预设阈值为目标缓存的最大容量的情况下,那么当目标缓存不能再存储缓存数据时,终端可以将从第一队列中获取的第一帧数据存储至第二队列。
本发明实施例中,上述第二队列是终端中设置的区别与上述第一队列和目标缓存的队列,具体地,该第二队列可以是一个循环队列,从而可以保证先来的帧数据先处理,实现帧数据的先进先出,避免视频帧的顺序出错。
在一些实施方式中,步骤101,可以包括:
在目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,确定第二队列中存储的帧数量是否小于第二预设阈值;
在第二队列中存储的帧数据的数量小于第二预设阈值的情况下,从第一队列中获取的第一帧数据存储至第二队列。
这里,终端可以在目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的,且第二队列中存储的帧数据的数量小于第二预设阈值的情况下,将从第一队列中获取的第一帧数据存储至第二队列,从而可以在第二队列的当前的存储量超过一定阈值时,避免终端继续向第二队列存储帧数据。
当然,在上述目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,若终端确定第二队列中存储的帧数据的数量大于或者等于第二预设阈值,则终端可以将从第一队列中获取的第一帧数据丢弃。
或者,在一些实施例中,上述在目标缓存中存储的帧数据的数量达到第一预设阈值的情况下,确定第二队列中存储的帧数量小于第二预设阈值之后,还包括:
在第二队列中存储的帧数量大于或者等于第二预设阈值的情况下,扩展第二队列的存储容量;
将第一帧数据至存储容量扩展后的第二队列中。
这里,终端可以在目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的,且第二队列中存储的帧数据的数量大于或者等于第二预设阈值的情况下,自动对第二队列进行扩容,即增加第二队列的存储容量,使第二队列可以持续接收第一队列的帧数据并进行存储,进而可以避免第一队列取出的帧数据被丢弃,进一步提升视频质量。
示例性地,假设上述第一预设阈值为目标缓存的最大容量,以及第二阈值为第二队列的最大容量,则当终端需要从第一队列中取出帧数据时,终端判断目标缓存的当前存储量是否达到最大容量,即目标缓存存储的帧数据的数量是否等于该目标缓存的最大容量;若目标缓存的当前存储量达到最大容量,则终端继续判断第二队列是否有空余容量,即第二队列存储的帧数据的数量是否小于第二队列的最大容量,若是,则终端将从第一队列取出的帧数据存储至第二对垒;若否,则终端扩展第二队列进行的最大容量,并将从第一队列取出的帧数据存储至扩容后的第二队列。
需要说明的是,上述在目标缓存中存储的帧数据的数量小等于第一预设阈值的情况下,终端可以将从第一队列中获取的第一帧数据直接存储至目标缓存中。
上述步骤102中,在终端接收到目标缓存请求帧数据的指令的情况下,终端可以判断第二队列中是否存储有帧数据,且在确定第二队列中存储有帧数据的情况下,终端可以从第二队列中。
其中,上述目标指令可以是终端在目标缓存中存储的帧数据的数量小于或者等于一定预设阈值时生成的指令,例如:可以是在目标缓存中存储的帧数据的数量小于或者等于其最大容量的80%时,终端生成上述目标指令;或者,也可以是在目标缓存为空,即目标缓存中未存储有帧数据时,终端生成上述目标指令。
另外,在上述第二队列为循环队列的情况下,上述从第二队列中获取第二帧数据,可以是将第二队列中处于队尾的帧数据取出。
需要说明的是,在终端确定检测到目标指令且第二队列未缓存有帧数据的情况下,终端可以直接从第一队列中获取帧数据,在此并不进行说明。
在上述步骤103中,在终端从第二队列中取出第二帧数据之后,终端可以将第二帧数据缓存至目标缓存中并作为待渲染帧数据,从而可以按视频流中帧数据的采集时间先后对帧数据进行渲染处理,避免视频流中帧数据出错。
当然,在终端确定检测到目标指令且第二队列未缓存有帧数据,且终端直接从第一队列中获取帧数据的情况下,终端将从第一队列中获取的帧数据缓存至目标缓存中并作为待渲染帧数据。
本发明实施例中,在终端对视频流进行渲染处理的过程中,终端可以依次对目标缓存中存储的帧数据进行渲染处理,那么,在第二帧数据缓存至目标缓存之后,终端也可以对存储于目标缓存中的上述第二帧数据进行渲染处理。
需要说明的是,上述对第二帧数据进行渲染处理,可以是对第二帧数据进行贴纸处理、滤镜处理、涂鸦处理以及文字处理等中的至少一项。
其中,在终端需要对视频流进行多种渲染处理,即对视频流中第二帧数据进行多种渲染处理的情况下,终端可以是利用GPUImage方式对第二帧数据进行多种渲染处理,由于利用基于GPU的图像加速GPUImage方式对帧数据进行多种渲染处理的过程为本领域熟知,在此并不进行赘述。
在一些实施方式中,上述将第二帧数据存储至目标缓存中并作为待渲染帧数据之后,还包括:
对待渲染帧数据进行第一渲染处理,得到第一处理帧数据;
对待渲染帧数据进行第二渲染处理,得到第二处理帧数据;
将第一处理帧数据与第二帧数据进行融合,得到目标帧数据。
这里,终端可以对待渲染帧数据分别进行第一渲染处理和第二渲染处理,以得到处理后的第一处理帧数据和第二处理帧数据,并通过将第一处理帧数据和第二处理帧数据融合,得到渲染处理后的目标帧数据,从而可以对带渲染帧数据同时进行多种渲染处理,提升对待渲染帧数据进行多种渲染处理的效率。
其中,上述第一渲染处理和第二渲染处理,可以是对第二帧数据进行贴纸处理、滤镜处理、涂鸦处理以及文字处理等中的任意两种,具体地,第一渲染处理可以为贴纸处理;第二渲染处理可以为滤镜处理,从而可以同时实现对视频流的帧数据进行贴纸处理和滤镜处理。
另外,上述对待渲染帧数据进行第一渲染处理,以及对待渲染帧数据进行第二渲染处理,可以是终端利用开放图形库(Open Graphics Library,OpenGL)着色器语言(即OpenGL Shading Language,GLSL),对第一帧数据分别进行第一渲染处理和第二渲染处理,以得到上述第一处理帧数据和第二处理帧数据,从而进一步提升渲染处理的效率。
当然,在终端将视频流的帧数据进行渲染处理完成后,可以将渲染处理后的帧数据进行编码以及封装等,从而生成指定格式的视频文件。
为便于对上述视频流帧数据的处理方法的实现过程的理解,在此以实际应用示例进行说明,具体如下:
如图2a所示,当终端的摄像头获取到帧数据,即用于获取摄像头采集的帧数据的串行队列(即第一队列)接收到帧数据时,终端首先检查目标缓存容量是否达到最大阈值,若否,则将当前帧数据发送到目标缓存中等待渲染处理;否则,则再检查帧缓存中维护的循环队列(即第二队列)是否空余,若是,则将当前帧数据放入帧循环队列的队尾;否则,循环队列大小会根据当前帧数量自动扩容,并在扩容后将当前帧数据放入帧循环队列的队尾,其中,该循环队列可以保证先来的数据先处理,保证视频帧的顺序不会错乱;
如图2b所示,当目标缓存接收到渲染指令时,终端会判断目标缓存中是否有数据,若是,则直接取目标缓存中的帧数据进行渲染;若否,即目标缓存中数据为空,则会发起请求数据指令,这时,终端会首先检查帧缓存的循环队列中是否有数据,若有,则从循环队列的队头取一帧数据放入目标缓存中,否则就直接从串行队列中获取当前视频帧数据;
其中,在对帧数据进行渲染的过程中,简单场景下,如仅进行一种渲染处理(贴纸或者滤镜等),可以直接使用图形处理器(Graphics Processing Unit,GPU)图像处理框架(即GPUImage)进行处理,通过不同滤镜的链式组合进行渲染计算;而在需要进行组合处理的任务,比如贴纸和滤镜混合处理,可以使用了GLSL渲染语言,将视频帧图像数据分别进行贴纸生成一个图像数据,和进行滤镜渲染生成一个图像数据,最后将两个图像数据进行混合。
本发明实施例中,通过在终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从终端的第一队列中获取的第一帧数据存储至终端的第二队列;在检测到目标指令且第二队列中缓存有帧数据的情况下,从第二队列中获取第二帧数据,其中,目标指令为目标缓存请求帧数据的指令;将第二帧数据存储至目标缓存中并作为待渲染帧数据,这样,可以实现通过第二队列将无法及时处理的帧数据暂存至第二队列中,减少对视频流帧数据的丢弃,进而降低视频流丢帧现象的发生,提升视频质量。
参见图3,图3是本发明实施例提供的终端的结构示意图,如图3所示,终端300包括:
第一存储模块301,用于在所述终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从所述终端的第一队列中获取的第一帧数据存储至所述终端的第二队列,其中,所述第一队列用于接收当前拍摄的视频流的帧数据;
帧数据获取模块302,用于在检测到目标指令且所述第二队列中缓存有帧数据的情况下,从所述第二队列中获取第二帧数据,其中,所述目标指令为所述目标缓存请求帧数据的指令;
第二存储模块303,用于将所述第二帧数据存储至所述目标缓存中并作为待渲染帧数据。
可选的,如图4所示,所述第一存储模块301,包括:
确定单元3011,用于在所述目标缓存中存储的帧数据的数量大于或者等于所述第一预设阈值的情况下,确定所述第二队列中存储的帧数量小于第二预设阈值;
第一存储单元3012,用于在所述第二队列中存储的帧数据的数量小于第二预设阈值的情况下,从所述第一队列中获取的第一帧数据存储至所述第二队列。
可选的,如图5所示,所述第一存储模块301,还包括:
容量扩展单元3013,用于在所述第二队列中存储的帧数量大于或者等于第二预设阈值的情况下,扩展所述第二队列的存储容量;
第二存储单元3014,用于将所述第一帧数据至存储容量扩展后的第二队列中。
可选的,如图6所示,所述终端300,还包括:
第一渲染模块304,用于对所述待渲染帧数据进行第一渲染处理,得到第一处理帧数据;
第一渲染模块305,用于对所述待渲染帧数据进行第二渲染处理,得到第二处理帧数据;
数据融合模块306,用于将所述第一处理帧数据与所述第二帧数据进行融合,得到所述目标帧数据。
可选的,所述第一渲染处理为贴纸处理;所述第二渲染处理为滤镜处理。
本发明实施例提供的终端300能够实现图1中方法实施例中终端实现的各个过程,为避免重复,这里不再赘述。
图7为实现本发明各个实施例的一种终端的硬件结构示意图。
该终端700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、处理器710、以及电源711等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,处理器710,用于:
在所述终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从所述终端的第一队列中获取的第一帧数据存储至所述终端的第二队列,其中,所述第一队列用于接收当前拍摄的视频流的帧数据;
在检测到目标指令且所述第二队列中缓存有帧数据的情况下,从所述第二队列中获取第二帧数据,其中,所述目标指令为所述目标缓存请求帧数据的指令;
将所述第二帧数据存储至所述目标缓存中并作为待渲染帧数据。
可选的,处理器710,具体用于:
在所述目标缓存中存储的帧数据的数量大于或者等于所述第一预设阈值的情况下,确定所述第二队列中存储的帧数量小于第二预设阈值;
在所述第二队列中存储的帧数据的数量小于第二预设阈值的情况下,从所述第一队列中获取的第一帧数据存储至所述第二队列。
可选的,处理器710,具体用于:
在所述第二队列中存储的帧数量大于或者等于第二预设阈值的情况下,扩展所述第二队列的存储容量;
将所述第一帧数据至存储容量扩展后的第二队列中。
可选的,处理器710,还用于:
对所述待渲染帧数据进行第一渲染处理,得到第一处理帧数据;
对所述待渲染帧数据进行第二渲染处理,得到第二处理帧数据;
将所述第一处理帧数据与所述第二帧数据进行融合,得到所述目标帧数据。
可选的,所述第一渲染处理为贴纸处理;所述第二渲染处理为滤镜处理。
本发明实施例提供的终端700能够实现图1中方法实施例中终端实现的各个过程,为避免重复,这里不再赘述。
应理解的是,本发明实施例中,射频单元701可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器710处理;另外,将上行的数据发送给基站。通常,射频单元701包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元701还可以通过无线通信***与网络和其他设备通信。
终端通过网络模块702为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元703可以将射频单元701或网络模块702接收的或者在存储器709中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元703还可以提供与终端700执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元703包括扬声器、蜂鸣器以及受话器等。
输入单元704用于接收音频或视频信号。输入单元704可以包括图形处理器(Graphics Processing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图片捕获模式中由图片捕获装置(如摄像头)获得的静态图片或视频的图片数据进行处理。处理后的图片帧可以显示在显示单元706上。经图形处理器7041处理后的图片帧可以存储在存储器709(或其它存储介质)中或者经由射频单元701或网络模块702进行发送。麦克风7042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元701发送到移动通信基站的格式输出。
终端700还包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板7061的亮度,接近传感器可在终端700移动到耳边时,关闭显示面板7061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器705还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元706用于显示由用户输入的信息或提供给用户的信息。显示单元706可包括显示面板7061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板7061。
用户输入单元707可用于接收输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元707包括触控面板7071以及其他输入设备7072。触控面板7071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板7071上或在触控面板7071附近的操作)。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器710,接收处理器710发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板7071。除了触控面板7071,用户输入单元707还可以包括其他输入设备7072。具体地,其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板7071可覆盖在显示面板7061上,当触控面板7071检测到在其上或附近的触摸操作后,传送给处理器710以确定触摸事件的类型,随后处理器710根据触摸事件的类型在显示面板7061上提供相应的视觉输出。虽然在图7中,触控面板7071与显示面板7061是作为两个独立的部件来实现终端的输入和输出功能,但是在某些实施例中,可以将触控面板7071与显示面板7061集成而实现终端的输入和输出功能,具体此处不做限定。
接口单元708为外部装置与终端700连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元708可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到终端700内的一个或多个元件或者可以用于在终端700和外部装置之间传输数据。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图片播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器709可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器710是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器709内的软件程序和/或模块,以及调用存储在存储器709内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器710可包括一个或多个处理单元;优选的,处理器710可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
终端700还可以包括给各个部件供电的电源711(比如电池),优选的,电源711可以通过电源管理***与处理器710逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
另外,终端700包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供一种终端,包括处理器710,存储器709,存储在存储器709上并可在所述处理器710上运行的计算机程序,该计算机程序被处理器710执行时实现上述视频流帧数据的处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述视频流帧数据的处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种视频流帧数据的处理方法,其特征在于,应用于终端,包括:
在所述终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从所述终端的第一队列中获取的第一帧数据存储至所述终端的第二队列,其中,所述第一队列用于接收当前拍摄的视频流的帧数据;
在检测到目标指令且所述第二队列中缓存有帧数据的情况下,从所述第二队列中获取第二帧数据,其中,所述目标指令为所述目标缓存请求帧数据的指令;
将所述第二帧数据存储至所述目标缓存中并作为待渲染帧数据。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从所述第一队列中获取的第一帧数据存储至所述第二队列,包括
在所述目标缓存中存储的帧数据的数量大于或者等于所述第一预设阈值的情况下,确定所述第二队列中存储的帧数量是否小于第二预设阈值;
在所述第二队列中存储的帧数据的数量小于第二预设阈值的情况下,从所述第一队列中获取的第一帧数据存储至所述第二队列。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标缓存中存储的帧数据的数量达到所述第一预设阈值的情况下,确定所述第二队列中存储的帧数量是否小于第二预设阈值之后,还包括:
在所述第二队列中存储的帧数量大于或者等于第二预设阈值的情况下,扩展所述第二队列的存储容量;
将所述第一帧数据至存储容量扩展后的第二队列中。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述将所述第二帧数据存储至所述目标缓存中并作为待渲染帧数据之后,还包括:
对所述待渲染帧数据进行第一渲染处理,得到第一处理帧数据;
对所述待渲染帧数据进行第二渲染处理,得到第二处理帧数据;
将所述第一处理帧数据与所述第二帧数据进行融合,得到所述目标帧数据。
5.根据权利要求4所述的方法,其特征在于,所述第一渲染处理为贴纸处理;所述第二渲染处理为滤镜处理。
6.一种终端,其特征在于,包括:
第一存储模块,用于在所述终端的目标缓存中存储的帧数据的数量大于或者等于第一预设阈值的情况下,将从所述终端的第一队列中获取的第一帧数据存储至所述终端的第二队列,其中,所述第一队列用于接收当前拍摄的视频流的帧数据;
帧数据获取模块,用于在检测到目标指令且所述第二队列中缓存有帧数据的情况下,从所述第二队列中获取第二帧数据,其中,所述目标指令为所述目标缓存请求帧数据的指令;
第二存储模块,用于将所述第二帧数据存储至所述目标缓存中并作为待渲染帧数据。
7.根据权利要求6所述的终端,其特征在于,所述第一存储模块,包括确定单元,用于在所述目标缓存中存储的帧数据的数量大于或者等于所述第一预设阈值的情况下,确定所述第二队列中存储的帧数量是否小于第二预设阈值;
第一存储单元,用于在所述第二队列中存储的帧数据的数量小于第二预设阈值的情况下,从所述第一队列中获取的第一帧数据存储至所述第二队列。
8.根据权利要求7所述的终端,其特征在于,所述第一存储模块,还包括:
容量扩展单元,用于在所述第二队列中存储的帧数量大于或者等于第二预设阈值的情况下,扩展所述第二队列的存储容量;
第二存储单元,用于将所述第一帧数据至存储容量扩展后的第二队列中。
9.根据权利要求6至8中任一项所述的终端,其特征在于,所述终端,还包括:
第一渲染模块,用于对所述待渲染帧数据进行第一渲染处理,得到第一处理帧数据;
第一渲染模块,用于对所述待渲染帧数据进行第二渲染处理,得到第二处理帧数据;
数据融合模块,用于将所述第一处理帧数据与所述第二帧数据进行融合,得到所述目标帧数据。
10.根据权利要求9所述的终端,其特征在于,所述第一渲染处理为贴纸处理;所述第二渲染处理为滤镜处理。
11.一种终端,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的视频流帧数据的处理方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的视频流帧数据的处理方法的步骤。
CN201910381687.0A 2019-05-08 2019-05-08 一种视频流帧数据的处理方法及终端 Pending CN110149552A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910381687.0A CN110149552A (zh) 2019-05-08 2019-05-08 一种视频流帧数据的处理方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910381687.0A CN110149552A (zh) 2019-05-08 2019-05-08 一种视频流帧数据的处理方法及终端

Publications (1)

Publication Number Publication Date
CN110149552A true CN110149552A (zh) 2019-08-20

Family

ID=67594883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910381687.0A Pending CN110149552A (zh) 2019-05-08 2019-05-08 一种视频流帧数据的处理方法及终端

Country Status (1)

Country Link
CN (1) CN110149552A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111081198A (zh) * 2019-11-29 2020-04-28 Tcl移动通信科技(宁波)有限公司 数据控制方法、数据控制装置、存储介质及终端设备
CN111367741A (zh) * 2020-02-28 2020-07-03 Oppo广东移动通信有限公司 用户界面卡顿检测方法与装置、电子设备
CN111711718A (zh) * 2020-05-07 2020-09-25 华为技术有限公司 电子设备
CN111711779A (zh) * 2020-06-29 2020-09-25 重庆紫光华山智安科技有限公司 一种实时视频节点多维度缓存方法及设备
CN111917998A (zh) * 2020-08-12 2020-11-10 惠州市康冠科技有限公司 基于GPUImgae的智能电视特效相机生成方法、装置及智能电视
CN112078486A (zh) * 2020-08-27 2020-12-15 江苏泽景汽车电子股份有限公司 一种基于hud显示的转向辅助装置及方法
CN113014997A (zh) * 2021-03-12 2021-06-22 上海哔哩哔哩科技有限公司 缓存更新方法及装置
CN113347432A (zh) * 2021-05-27 2021-09-03 深圳市斯博科技有限公司 一种视频编解码方法、装置、计算机设备及存储介质
CN113556495A (zh) * 2021-07-21 2021-10-26 北京达佳互联信息技术有限公司 视频录制方法、视频处理方法及相应设备
CN114071224A (zh) * 2020-07-31 2022-02-18 腾讯科技(深圳)有限公司 视频数据处理方法、装置、计算机设备及存储介质
CN116703689A (zh) * 2022-09-06 2023-09-05 荣耀终端有限公司 一种着色器程序的生成方法、装置和电子设备
CN117114964A (zh) * 2023-02-13 2023-11-24 荣耀终端有限公司 一种缓存图像帧的方法、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390049A (zh) * 2013-07-23 2013-11-13 南京联创科技集团股份有限公司 一种基于内存数据库缓存的高速消息队列溢出的处理方法
CN103927305A (zh) * 2013-01-11 2014-07-16 ***通信集团山东有限公司 一种对内存溢出进行控制的方法和设备
CN104732593A (zh) * 2015-03-27 2015-06-24 厦门幻世网络科技有限公司 一种基于移动终端的3d动画编辑方法
CN105681714A (zh) * 2016-02-26 2016-06-15 北京金山安全软件有限公司 一种视频拍摄方法、装置及电子设备
CN106534667A (zh) * 2016-10-31 2017-03-22 努比亚技术有限公司 分布式协同渲染方法及终端
CN106941460A (zh) * 2016-01-05 2017-07-11 中兴通讯股份有限公司 报文发送方法和装置
CN106941567A (zh) * 2017-03-27 2017-07-11 广州优视网络科技有限公司 显示网络图片的方法、装置以及用户终端
US20190089966A1 (en) * 2017-09-21 2019-03-21 Intel Corporation Efficient frame loss recovery and reconstruction in dyadic hierarchy based coding

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927305A (zh) * 2013-01-11 2014-07-16 ***通信集团山东有限公司 一种对内存溢出进行控制的方法和设备
CN103390049A (zh) * 2013-07-23 2013-11-13 南京联创科技集团股份有限公司 一种基于内存数据库缓存的高速消息队列溢出的处理方法
CN104732593A (zh) * 2015-03-27 2015-06-24 厦门幻世网络科技有限公司 一种基于移动终端的3d动画编辑方法
CN106941460A (zh) * 2016-01-05 2017-07-11 中兴通讯股份有限公司 报文发送方法和装置
CN105681714A (zh) * 2016-02-26 2016-06-15 北京金山安全软件有限公司 一种视频拍摄方法、装置及电子设备
CN106534667A (zh) * 2016-10-31 2017-03-22 努比亚技术有限公司 分布式协同渲染方法及终端
CN106941567A (zh) * 2017-03-27 2017-07-11 广州优视网络科技有限公司 显示网络图片的方法、装置以及用户终端
US20190089966A1 (en) * 2017-09-21 2019-03-21 Intel Corporation Efficient frame loss recovery and reconstruction in dyadic hierarchy based coding

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111081198A (zh) * 2019-11-29 2020-04-28 Tcl移动通信科技(宁波)有限公司 数据控制方法、数据控制装置、存储介质及终端设备
CN111081198B (zh) * 2019-11-29 2022-12-06 Tcl移动通信科技(宁波)有限公司 数据控制方法、数据控制装置、存储介质及终端设备
CN111367741A (zh) * 2020-02-28 2020-07-03 Oppo广东移动通信有限公司 用户界面卡顿检测方法与装置、电子设备
CN111711718A (zh) * 2020-05-07 2020-09-25 华为技术有限公司 电子设备
CN111711779A (zh) * 2020-06-29 2020-09-25 重庆紫光华山智安科技有限公司 一种实时视频节点多维度缓存方法及设备
CN114071224A (zh) * 2020-07-31 2022-02-18 腾讯科技(深圳)有限公司 视频数据处理方法、装置、计算机设备及存储介质
CN114071224B (zh) * 2020-07-31 2023-08-25 腾讯科技(深圳)有限公司 视频数据处理方法、装置、计算机设备及存储介质
CN111917998A (zh) * 2020-08-12 2020-11-10 惠州市康冠科技有限公司 基于GPUImgae的智能电视特效相机生成方法、装置及智能电视
CN112078486A (zh) * 2020-08-27 2020-12-15 江苏泽景汽车电子股份有限公司 一种基于hud显示的转向辅助装置及方法
CN113014997A (zh) * 2021-03-12 2021-06-22 上海哔哩哔哩科技有限公司 缓存更新方法及装置
CN113347432A (zh) * 2021-05-27 2021-09-03 深圳市斯博科技有限公司 一种视频编解码方法、装置、计算机设备及存储介质
CN113556495A (zh) * 2021-07-21 2021-10-26 北京达佳互联信息技术有限公司 视频录制方法、视频处理方法及相应设备
CN113556495B (zh) * 2021-07-21 2022-10-28 北京达佳互联信息技术有限公司 视频录制方法、视频处理方法及相应设备
CN116703689A (zh) * 2022-09-06 2023-09-05 荣耀终端有限公司 一种着色器程序的生成方法、装置和电子设备
CN116703689B (zh) * 2022-09-06 2024-03-29 荣耀终端有限公司 一种着色器程序的生成方法、装置和电子设备
CN117114964A (zh) * 2023-02-13 2023-11-24 荣耀终端有限公司 一种缓存图像帧的方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110149552A (zh) 一种视频流帧数据的处理方法及终端
CN108924817A (zh) 一种sim卡状态切换方法及移动终端
CN108108007B (zh) 一种降低功耗的处理方法及移动终端
CN109271121A (zh) 一种应用显示方法和移动终端
CN110198545A (zh) 一种辅小区组添加方法、终端设备及主节点
CN109067418A (zh) 一种天线控制方法及移动终端
CN109445894A (zh) 一种截图方法及电子设备
CN108803963A (zh) 一种截屏方法及移动终端
CN110213440A (zh) 一种图像分享方法及终端
CN109819450A (zh) 一种信号接收的方法、装置和终端
CN109218626A (zh) 一种拍照方法及终端
CN109803087A (zh) 一种图像生成方法及终端设备
CN109407948A (zh) 一种界面显示方法及移动终端
CN109831359A (zh) 一种数据网络连接状态的检测方法及其终端设备
CN108881719A (zh) 一种切换拍摄方式的方法及终端设备
CN109803429A (zh) 邻小区的rrm测量控制方法、移动通信终端及网络侧设备
CN109362103A (zh) 一种数据缓存方法及终端设备
CN109560591A (zh) 充电方法、装置和终端
CN109739300A (zh) 一种天线控制方法及终端
CN109117054A (zh) 一种显示控制方法及终端
CN109117037A (zh) 一种图像处理的方法及终端设备
CN109257152A (zh) 一种资源指示方法、网络侧设备及终端
CN109005297A (zh) 一种导航应用的显示方法和移动终端
CN108600679A (zh) 一种视频通话方法及终端
CN108259808A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190820

RJ01 Rejection of invention patent application after publication