CN117114964A - 一种缓存图像帧的方法、电子设备及存储介质 - Google Patents
一种缓存图像帧的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117114964A CN117114964A CN202310155705.XA CN202310155705A CN117114964A CN 117114964 A CN117114964 A CN 117114964A CN 202310155705 A CN202310155705 A CN 202310155705A CN 117114964 A CN117114964 A CN 117114964A
- Authority
- CN
- China
- Prior art keywords
- frame
- memory
- stream buffer
- perceived
- image frame
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 239000000872 buffer Substances 0.000 claims abstract description 361
- 230000008447 perception Effects 0.000 claims abstract description 49
- 230000003139 buffering effect Effects 0.000 claims abstract description 35
- 230000004044 response Effects 0.000 claims description 8
- 239000010410 layer Substances 0.000 description 25
- 230000006870 function Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000033764 rhythmic process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Input (AREA)
Abstract
本申请提供了一种缓存图像帧的方法、电子设备及存储介质。该方法包括:当用户执行目标操作时,预先申请多帧感知流buffer保存至第一存储器。当接收到相机应用程序下发的多个图像帧请求时,依次取出第一存储器中的多帧感知流buffer并将其移至第二存储器,用于缓存图像帧。当第二存储器中帧感知流buffer使用结束时,将第二存储器中的该帧感知流buffer放回第一存储器。如此,当相机应用程序持续不断下发图像帧时,循环使用本申请提供的缓冲图像帧的方法,由于不需要每次都创建感知流buffer缓存图像帧和释放感知流buffer,大幅度减少了每次创建和释放占用的资源,从而降低了电子设备的功耗。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种缓存图像帧的方法、电子设备及存储介质。
背景技术
利用手机或pad等电子设备拍照或录像过程中,往往需要感知图像的目标特征,比如感知手势、笑脸等,来执行具体业务操作,比如手机解锁等。在感知图像的目标特征时,首先需要将感知目标特征的图像帧存放在感知流buffer(缓冲区)。其中,感知流buffer是指临时存放图像帧的区间。
目前手机或pad等电子设备的平台利用感知流buffer缓存图像帧时,首先下发感知流帧请求,平台即时在存储器中创建一块感知流buffer,用于临时存放该图像帧。感知流buffer使用结束后,平台释放该感知流buffer的内存。也即每次缓存图像帧时,都需要创建一次感知流buffer,当每次感知流buffer使用结束后,都需要释放一次感知流buffer,而每次创建和释放感知流buffer,都需要占用资源,导致电子设备的功耗较高。
因此,如何降低手机或pad等电子设备功耗,成为亟待解决的技术问题。
发明内容
本申请的目的在于:提供了一种缓存图像帧的方法、电子设备及存储介质,旨在通过预先创建缓存图像帧的感知流buffer,并将其保存在第一存储器中。需要时从第一存储器中获取感知流buffer,使用结束时,将感知流buffer放回第一存储器。如此,不需要每次创建感知流buffer,降低了电子设备资源占用率,从而降低电子设备的功耗。
第一方面,本申请提供了一种缓存图像帧的方法,应用于电子设备的相机应用程序,该方法包括:
当用户执行目标操作时,预先申请多帧感知流buffer保存至第一存储器;所述目标操作包括打开所述相机应用程序操作或拍摄切换操作中的一种;当接收到下发的多个图像帧使用请求时,依次从所述第一存储器的所述多帧感知流buffer中取出每帧感知流buffer并移至第二存储器;并当所述第二存储器中帧感知流buffer使用结束时,将所述帧感知流buffer放回所述第一存储器;其中,所述第二存储器中帧感知流buffer用于缓存所述图像帧使用请求对应的图像帧;所述第二存储器中帧感知流buffer使用结束用于表示所述帧感知流buffer对应的图像帧的目标特征识别完成。
示例性的,相机应用程序预先申请5块感知流buffer,分别为感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4和感知流buffer5。将5块感知流buffer存入第一存储器具体为感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4和感知流buffer5。当接收到下发的多个图像帧使用请求时,依次取出和回收感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4、感知流buffer5、感知流buffer1、感知流buffer2等。如此,不需要每次创建感知流buffer,也不需要每次都释放感知流buffer,如此循环往复,有效降低了电子设备资源的占用率,进而降低电子设备的功耗。
在一种可能的实现方式中,预先申请多帧感知流buffer;将多帧感知流buffer以队列方式保存至第一存储器。如此,通过顺序保存申请的感知流buffer,可以避免循环使用时感知流buffer取出和放回的混乱,提高工作效率。
在一种可能的实现方式中,当多个图像帧使用请求包括第一图像帧使用请求和第二图像帧使用请求时,第二图像帧使用请求为第一图像帧使用请求下发后再次下发的图像帧使用请求;从第一存储器的多帧感知流buffer中取出第一帧感知流buffer并移至第二存储器,以缓存第一图像帧使用请求对应的第一图像帧;从第一存储器的多帧感知流buffer中取出第二帧感知流buffer,并移至第二存储器,以缓存第二图像帧使用请求对应的第二图像帧;其中,第一帧感知流buffer保存至第一存储器的第一时刻小于第二帧感知流buffer保存至第一存储器的第二时刻。如此,利用先进先出的原则,将第一存储器中的多帧感知流buffer先保存的先取出,后保存的后取出,避免调用混乱,提高缓存的准确性和效率。
在一种可能的实现方式中,当第一帧感知流buffer为多帧感知流buffer中最后保存至第一存储的感知流buffer,第二帧感知流buffer为多帧感知流buffer中第一个保存至第一存储的感知流buffer。
在一种可能的实现方式中,当第一帧感知流buffer使用结束时,从第二存储器中取出第一帧感知流buffer,并放回第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer;当第二帧感知流buffer使用结束后,从第二存储器中取出第二帧感知流buffer,并放回第一存储器中最后一帧感知流buffer之后。通过有顺序的放回第二存储器,有助于下一次多帧感知流buffer的使用。
在一种可能的实现方式中,多个图像帧使用请求,还包括第三图像帧使用请求,第三图像帧使用请求为下发第二图像帧使用请求之后再次下发的图像帧使用请求;当接收下发的第一图像帧使用请求时,从第一存储器中的多帧感知流buffer中取出第一帧感知流buffer并移至第二存储器;响应于接收到下发的第二图像帧使用请求,确定第二存储器中的第一帧感知流buffer使用结束,将第一帧感知流buffer取出并放回第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer;从第一存储器中取出第二帧感知流buffer并移至第二存储器;响应于接收到下发的第三图像帧使用请求,确定第二存储器中的第二帧感知流buffer使用结束,将第二帧感知流buffer取出并放回第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer。如此,第二存储器中始终包括一帧感知流buffer,减少了第二存储器的使用内存,进一步降低了电子设备的功耗。
在一种可能的实现方式中,当接收下发的第一图像帧使用请求时之前,将第三图像帧使用请求作为第一图像帧使用请求,将第三帧感知流buffer作为第一帧感知流buffer;第三帧感知流buffer与第三图像帧使用请求,以缓存第三图像帧使用请求对应的第三图像帧。
在一种可能的实现方式中,响应于接收到下发的第二图像帧使用请求,确定第一帧感知流buffer的使用速度;当第一帧感知流buffer的使用速度超过预设速度阈值,确定第二存储器中的第一帧感知流buffer使用结束。
在一种可能的实现方式中,当第一帧感知流buffer的使用速度不超过预设速度阈值,从第一存储器中取出第二帧感知流buffer并移至第二存储器;将第一帧感知流buffer取出并放回第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer;响应于接收到下发的第三图像帧使用请求,将第三图像帧使用请求作为第一图像帧使用请求,将第三帧感知流buffer作为第一帧感知流buffer;第三帧感知流buffer与第三图像帧使用请求,以缓存第三图像帧使用请求对应的第三图像帧。
如此,通过第一帧感知流buffer的使用速度,确定第二存储器中包含的感知流buffer的个数,以在减少了第二存储器的使用内存,降低了电子设备的功耗的基础上,进一步提高缓存的工作准确度。
在一种可能的实现方式中,当用户执行目标操作为拍摄切换操作时,清空第一存储器和第二存储器;预先申请多帧感知流buffer保存至清空后的第一存储器;当接收到下发的多个图像帧使用请求时,依次从第一存储器的多帧感知流buffer中取出每帧感知流buffer并移至情况后的第二存储器。
通过情况第一存储器和第二存储器中已经存在的感知流buffer,减少后续使用时其他感知流buffer的干扰,进一步降低了电子设备的功耗,且提高了缓存图像帧的缓存准确度。
可选的,预先申请多帧感知流buffer的数量2~10帧。可以避免感知流buffer占用过多的内存空间,降低电子设备的功耗。且不会产生缓存故障,比如缓存雪崩或缓存击穿等。
在一种可能的实现方式中,当退出相机应用程序,或执行拍摄切换操作中任意一种,清空第一存储器和第二存储器,利于下一个缓存。
在一种可能的实现方式中,第一存储器的容量大小与多帧感知流buffer的容量大小,以及多帧感知流buffer的帧数确定。
第二方面,本申请提供了一种电子设备,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行第一方面任一项所述的方法。
第三方面,本申请提供了一种计算机可读存储介质,包括计算机可读指令,当所述计算机可读指令在计算设备上运行时,使得所述计算设备执行第一方面任一项所述的方法。
附图说明
图1为本申请实施例提供一种应用缓存图像帧的方法场景示意图;
图2为现有缓存图像帧的方法流程图;
图3为本申请实施例提供的一种缓存图像帧的方法流程图;
图4为本申请实施例提供的一种打开相机时缓存图像帧的流程示意图;
图5为本申请实施例提供的另一种缓存图像帧的方法流程图;
图6为本申请实施例提供的一种拍摄切换时缓存图像帧的流程示意图;
图7为本申请实施例提供的第三种缓存图像帧的方法流程图;
图8为本申请实施例提供的缓存图像帧的方法示意图;
图9为本申请实施例提供的一种电子设备的结构示意图;
图10是本发明实施例的电子设备的软件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有进行创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
为了更好的说明本申请实施例,首先对本申请的应用场景进行介绍。
参见图1,为本申请实施例提供一种应用缓存图像帧的方法场景示意图。
如图(a)所示的手机,用户点击“相机”应用程序。该相机应用可以为手机的原生相机应用,也可以使第三方开发的相机应用等。
响应于接收到用户开启“相机”应用程序的操作,手机进入如图(b)所示的拍摄界面。“相机”应用程序可以默认开启“拍照”功能,也可以默认其他功能,比如“录像”功能。根据需要,本领域技术人员可以自行调整。当手机进入默认开启“拍照”功能的拍摄界面时,利用缓存图像帧的方法,持续缓存图像帧,以识别图像的目标特征。
如图(b)所示的拍摄界面,包括取景框,还包括“人像”、“拍照”、“录像”、“专业”、“更多”等功能控件。当用户从默认开启“拍照”功能的拍摄界面,点击其他功能控件,比如点击“录像”功能控件,进入“录像”功能的拍摄界面。即当拍摄切换由“拍照”切换到“录像”等功能状态时,利用缓存图像帧的方法,持续缓存图像帧,以识别图像的目标特征。
综上,在进入相机或拍摄切换的场景下,需要利用缓存图像帧的方法,持续缓存图像帧,以识别图像的目标特征。
然而,现有技术缓存图像帧的方案为电子设备的平台利用随需随创的感知流buffer缓存图像帧。参见图2,为现有缓存图像帧的方法流程图。该方法包括:
S201:相机应用程序下发图像帧请求。
用户点击“相机”应用程序进入相机应用程序,或用户从一个功能控件的拍摄场景进入另一个功能控件的拍摄场景时,不断自动下发图像帧请求,以识别图像帧的目标特征。目标特征为用户所需图像特征,比如手势、笑脸等图像特征。
S202:电子设备的处理器接收相机应用程序下发的图像帧请求,即时创建一个感知流buffer。
电子设备的处理器接收相机应用程序下发的图像帧请求,并即时创建一个感知流buffer,以缓存图像帧。其中,感知流buffer为临时存放图像帧的缓冲区间。
可以理解的是感知流buffer为通道服务,写入图像帧数据到通道或从通道读取图像帧数据,这样利用感知流buffer的数据传递实现对数据的高效处理。
S203:图像帧使用结束,电子设备的处理器释放感知流buffer所占内存。
电子设备的处理器识别图像帧的目标特征识别完成后,图像帧使用结束,电子设备的处理器释放感知流buffer所占内存。
其中,识别图像帧的目标特征识别完成包括两种情况,一种识别到图像帧的目标特征,另一种未识别到图像帧的目标特征。无论那种情况,均属于识别图像帧的目标特征识别完成。
然而,目前的方案在每次缓存图像帧时,都需要创建和释放感知流buffer,每次创建和释放感知流buffer,都需要占用资源,导致手机或pad等电子设备的功耗性能降低,功耗较高。
基于此,本申请提出了一种缓存图像帧的方法,通过预先创建缓存图像帧的感知流buffer,并将其保存在第一存储器中。需要时从第一存储器中获取感知流buffer,使用结束时,将感知流buffer放回第一存储器。如此,不需要每次创建感知流buffer,降低了电子设备资源占用率,从而降低电子设备的功耗。
下面以包括相机应用程序的Andrioid电子设备中的的手机为例,详细介绍本申请提供的缓冲图像帧的方法。
参见图3,为本申请实施例提供的一种缓存图像帧的方法流程图。该方法应用于打开相机初始状态。该方法具体包括以下步骤:
S301:用户点击“相机”应用程序,打开相机应用程序。
用户点击“相机”应用程序,打开“相机”应用程序。具体打开过程,即显示拍摄界面如图1所示,这里不再赘述。
S302:处理器预申请多帧感知流buffer保存在第一存储器中。
处理器接收到相机应用程序打开的操作后,预先申请多帧感知流buffer,并将其保存在第一存储器中。在本申请实施例中,预先申请的多帧感知流buffer依照队列方式顺序存储在第一存储器中。
其中,第一存储器是指从堆空间中分配一个指定容量大小的字节数据用于存储多帧感知流buffer。第一存储器的容量大小由存储的感知流buffer的容量大小以及感知流buffer的数量确定。比如,感知流buffer的容量大小为4字节数据,感知流buffer的数量为5块,则第一存储器的容量大小为20字节数据。
感知流buffer为用于临时存放图像帧的缓存区间。可以理解的是感知流buffer为通道服务,写入图像帧数据到通道或从通道读取图像帧数据,这样利用感知流buffer的数据传递实现对数据高效处理的目的。一帧感知流buffer用于临时存储一个图像帧数据。
在本申请实施例中,对预申请的感知流buffer的数量不作具体限定。实际应用中,感知流buffer的数量不易过多,否则会导致感知流buffer占用过多的内存空间,增加电子设备的功耗。另一方面,感知流buffer的数量不能太少,否则会产生缓存故障,比如缓存雪崩或缓存击穿等。其中,缓存雪崩是指当缓存中大量热点缓存采用了相同的失效时间,就会导致缓存在某一个时刻同时失效,请求全部转发到数据库,从而导致数据库压力骤增,甚至宕机。从而形成一系列的连锁反应,造成系统崩溃等情况。缓存击穿是指大量热点同时失效的情况,如果是单个热点,在不停的并发请求,在这个热点失效的瞬间,持续的并发请求就会击破缓存,直接请求到数据库。
在本申请实施例中,预申请的感知流buffer的数量一般为2~10块,具体数量多少,本领域技术人员根据需要可以自行调整。
S303:相机应用程序持续不断下发图像帧使用请求。
相机应用程序向处理器下发图像帧请求,以使处理器利用目标特征识别算法从图像帧中识别目标特征。其中,目标特征识别算法用于识别图像帧中的目标特征。其中图像帧使用请求至少包括第一图像帧使用请求和第二图像帧使用请求。第一图形帧使用请求的下一次使用请求为第二图像帧使用请求。
目标识别算法预存在处理器中,当处理器接收到相机应用程序下发的图像帧请求时,利用目标识别算法识别图像帧中目标特征。
S304:处理器接收相机应用程序下发的第一图像帧使用请求。
S305:将第一存储器中的第一帧感知流buffer取出,移至第二存储器中以缓存第一图像帧。
处理器接收到相机应用程序下发的图像帧请求后,首先将第一存储器中的第一帧感知流buffer取出,放置在第二存储器中。处理器从放置在第二存储器的第一帧感知流buffer读取第一图像帧数据,并利用目标特征识别算法识别已读取的第一图像帧数据的目标特征。其中,第一图像帧与第一图像帧使用请求对应。
其中,第二存储器也是指从堆空间中分配一个指定容量大小的字节数据,用于存放图像帧的感知流buffer。第二存储器的容量大小可以与第一存储器容量大小相同,也可以小于第一存储器容量大小,且大于一帧感知流buffer容量大小。本申请不对第二存储器容量大小进行限定,本领域技术人员根据需要可以自行设定。
S306:处理器接收到相机应用程序下发的第二图像帧使用请求,并将第二存储器中的第一帧感知流buffer放回第二存储器。
相机应用程序下发图像帧使用请求是依据预设时间间隔不断下发的,一般情况下,处理器当第一图像帧使用结束时,才可以接收到第二图像帧使用请求。
处理器对图像帧的目标特征识别完成后,图像帧使用结束。其中,识别图像帧的目标特征识别完成包括两种情况,一种识别到图像帧的目标特征,另一种未识别到图像帧的目标特征。
当处理器接收相机应用程序下发的第二图像帧请求,此时第一图像帧使用结束,将第二存储器中的第一帧感知流buffer放回第一存储器,释放第二存储器的内存空间。在一种可能的实现方式中,第一帧感知流buffer可以放回第一存储器中最后一帧感知流buffer之后。
S307:从第一存储器中取出第二帧感知流buffer,移至第二存储器中以缓存第二图像帧。
第二帧感知流buffer为与第一帧感知流buffer相邻的保存在第一存储器中的帧感知流buffer。在本申请实施例中,第一帧感知流buffer与第二帧感知流buffer的位置关系包括两种,一种是第一帧感知流buffer与第二帧感知流buffer相邻,另一种是第一帧感知流buffer为预先申请的帧感知流buffer中的最后一个帧感知流buffer,第二帧感知流buffer为预先申请的帧感知流buffer中的第一个帧感知流buffer。
将第一存储器中的第二帧感知流buffer取出移至第二存储器。在第二存储器中,第二帧感知流buffer缓冲接收的第二图像帧。
S308:判断用户是否执行退出相机应用程序,或拍摄切换。若否,处理器接收相机应用程序下发的第三图像帧使用请求,并将第三图像帧使用请求作为第一图像帧使用请求,第三帧感知流buffer作为第一帧感知流buffer,执行S305。否则,执行S309。
第三帧感知流buffer为第三图像帧使用请求对应的预先申请的图像帧感知流buffer。第三图像帧使用请求为下发的第二图像帧使用请求的下一个图像帧使用请求。
如此依次使用预申请多个感知流buffer,直至用户执行退出相机应用程序或拍摄切换,清空第一存储器。其中,拍摄切换是指将当前拍摄状态,比如拍照,切换为其他拍摄状态,比如人像,或录像等。第二图像帧与第二图像帧使用请求对应。
可以理解的是,实际应用中,预申请多个感知流buffer可以不被全部使用,例如用户执行退出相机应用程序或拍摄切换的操作迅速,可能使得实际仅使用过一个或者两个感知流buffer后第一存储器即被清空。
S309:将第一存储器和第二存储器的内存空间清空。
用户点击退出“相机”应用程序标识,处理器接收到退出“相机”应用程序指令后,将第一存储器和第二存储器的内存空间均清空,用于执行下一次打开相机初始状态。
当用户执行图1(b)~1(c)的操作时,即执行拍摄切换,处理器将第一存储器和第二存储器的内存空间均清空。待拍摄切换后,再次预申请多帧感知流buffer保存在第一存储器。可以理解的是,不同拍摄场景下预申请的感知流buffer的数量可以相同,也可以不同。
可以理解的是,本申请实施例中提及的第一图像帧使用请求和第二图像帧使用请求仅为指示说明,并不仅仅指示相机应用程序下发图像帧为二次,而是任意图像帧的第一次和下一次。申请实施例中提及的第一帧感知流buffer、第二帧感知流buffer也为示意性说明,其指示第一存储器中的任意两个帧感知流buffer。
为了更好的说明上述缓存图像帧的方法,下面举例说明。
参见图4,为本申请实施例提供的一种打开相机时缓存图像帧的流程示意图。用户点击“相机”应用程序,打开相机初始状态。此时处理器预先申请5块感知流buffer,分别为感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4和感知流buffer5。同时处理器还申请存储器A和存储器B。存储器A和存储器B的容量大小相同。将5块感知流buffer保存在存储器A中,具体参见图(a)所示。此时存储器B内存空间未被占用。
当处理器接收到“相机”应用程序下发第一图像帧请求(也即图示下发图像帧发送请求)时,参见图(b),此时处理器从存储器A中取出感知流buffer1放置在存储器B中,使处理器执行识别图像帧目标特征的操作。
当处理器接收到相机应用程序下发第二图像帧请求时(也即图示中再次下发请求并回收上一帧buffer),参见图(c),此时处理器将存储器B的感知流buffer1放回存储器A中感知流buffer5,并从存储器A中取出感知流buffer2,放置在存储器B,使处理器执行识别本次图像帧的目标特征的操作。如此,循环依次使用第一存储器中感知流buffer,即依次取出和回收感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4、感知流buffer5、感知流buffer1、感知流buffer2等,执行图像帧的目标识别。
关闭相机(也即退出相机应用程序),如图(d)所述,存储器A和存储器B均清空,内存空间都被释放,用于执行下一次打开相机初始状态操作。
如此,本申请实施例提供的缓冲图像帧的方法,当用户打开相机初始状态时,处理器预先申请多帧感知流buffer,并将其保存在第一存储器中。当接收到图像帧下发请求时,处理器从第一存储器中取出第一帧感知流buffer,放置在第二存储器使用。当使用结束时,处理器将第一帧感知流放回第一存储器。相对图2所示的当前缓存图像的方法,本申请由于不需要每次创建感知流buffer,也不需要每次都释放感知流buffer,如此循环往复,有效降低了电子设备资源的占用率,进而降低电子设备的功耗。
参见图5,为本申请实施例提供的另一种缓存图像帧的方法流程图。该方法应用于拍摄切换的应用场景下。该方法具体包括以下步骤:
S501:用户执行拍摄切换,将当前第一拍摄状态切换为第二拍摄状态。
用户点击第二拍摄状态的功能控件,将当前第一拍摄状态切换为第二拍摄状态。示例性说明:如图1(b)~1(c),用户点击“录像”功能控件,由“拍照”拍摄状态切换到“录像”拍摄状态。
S502:处理器清空第一存储器和第二存储器。
其中,第一存储器和第二存储器是由打开相机时预先申请的容量大小的字节数据。为了使缓存图像帧不受其它数据干扰,在拍摄切换时,要清空之前拍摄状态时第一存储器和第二存储器中包括的感知流buffer,释放其内存空间。
第一存储器是指从堆空间中分配一个指定容量大小的字节数据用于存储多帧感知流buffer。第一存储器的容量大小由存储的感知流buffer的容量大小以及感知流buffer的数量确定。比如,感知流buffer的容量大小为4字节数据,感知流buffer的数量为5块,则第一存储器的容量大小为20字节数据。
其中,第二存储器也是指从堆空间中分配一个指定容量大小的字节数据,用于存放本次图像帧的感知流buffer。第二存储器的容量大小可以与第一存储器容量大小相同,也可以小于第一存储器容量大小,大于一帧感知流buffer容量大小。本申请不对第二存储器容量大小进行限定,本领域技术人员根据需要可以自行设定。
S503:处理器预申请多帧感知流buffer保存在第一存储器中。
处理器接收到“相机”应用程序执行拍摄切换操作,即从一种拍摄方式切换为另一种切换操作方式,预先申请多帧感知流buffer,并将其保存在第一存储器中。
处理器预先申请多帧感知流buffer的具体实现方式与步骤S302相同,这里不再赘述。
在本申请实施例中,感知流buffer的数量可以为2~10块,具体数量多少,本领域技术人员根据需要可以自行调整。不同拍摄场景下预申请的感知流buffer的数量可以相同,也可以不同。
S504:相机应用程序持续不断下发图像帧使用请求。
S505:处理器接收到相机应用程序下发的第一图像帧使用请求。
S506:将第一存储器中的第一帧感知流buffer取出,移至第二存储器中以缓存第一图像帧。
S507:处理器接收到相机应用程序下发的第二图像帧使用请求,并将第二存储器中的第一帧感知流buffer放回第二存储器。
S508:从第一存储器中取出第二帧感知流buffer,移至第二存储器中以缓存第二图像帧。
S509:判断用户是否执行退出相机应用程序,或拍摄切换。若否,处理器接收相机应用程序下发的第三图像帧使用请求,并将第三图像帧使用请求作为第一图像帧使用请求,第三帧感知流buffer作为第一帧感知流buffer,执行S505。否则,执行S510。
步骤S506-S509的实现方式与步骤S305-S308相同,这里不再赘述。
如此,循环进行感知流buffer的取出与释放进行,直至用户执行退出相机应用程序或拍摄切换。其中,拍摄切换是指将当前拍摄状态,比如拍照,切换为其他拍摄状态,比如人像,或录像等。
S510:退出相机应用程序或再次拍摄切换,将第一存储器和第二存储器的内存空间清空。
用户点击退出“相机”应用程序标识,处理器接收到退出相机应用程序指令后,将第一存储器和第二存储器的内存空间均清空,用于执行下一次打开相机初始状态。
当用户执行图1(b)~1(c)的操作时,即执行拍摄切换,处理器将第一存储器和第二存储器的内存空间均清空。
可以理解的是,本申请实施例中提及的第一图像帧使用请求和第二图像帧使用请求仅为指示说明,并不仅仅指示相机应用程序下发图像帧为二次,而是任意图像帧的第一次和下一次。申请实施例中提及的第一帧感知流buffer、第二帧感知流buffer也为示意性说明,其指示第一存储器中的任意两个帧感知流buffer。
为了更好的说明上述缓存图像帧的方法,下面举例说明。
参见图6,为本申请实施例提供的一种拍摄切换时缓存图像帧的流程示意图。用户点击相机应用程序拍摄切换操作。清空存储器A和存储器B,释放内存空间,其中,如图(a)所示。此时存储器A和存储器B的内存空间相同。并重新申请5块感知流buffer,分别为感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4和感知流buffer5。并将5块感知流buffer保存在存储器A中。具体参见图(b)所示。此时存储器B内存空间未被占用。
当处理器接收到“相机”应用程序下发第一图像帧请求(也即图示下发图像帧请求)时,参见图(c),此时处理器从存储器A中取出感知流buffer1放置在存储器B中,使处理器执行识别图像帧目标特征的操作。
当处理器接收到相机应用程序下发第二图像帧请求时(也即图示再次下发请求并回收上一帧buffer),参见图(d),此时处理器将存储器B的感知流buffer1放回存储器A,并从存储器A中取出感知流buffer2,放置在存储器B,使处理器执行识别本次图像帧的目标特征的操作。如此,依次循环轮转使用第一存储器中感知流buffer,即依次取出和释放感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4、感知流buffer5、感知流buffer1、感知流buffer2等,执行图像帧的目标识别。
关闭相机(退出相机应用程序),如图(e)所述,存储器A和存储器B均清空,内存空间都被释放,用于执行下一次操作。
如此,本申请实施例提供的缓冲图像帧的方法,当用户执行拍摄切换操作时,处理器首先情况第一存储器和第二存储器,再预先申请多帧感知流buffer,并将其保存在第一存储器中。当接收到图像帧下发请求时,处理器从第一存储器中取出第一帧感知流buffer,放置在第二存储器使用。当使用结束时,处理器将第一帧感知流放回第一存储器。相对图2所示的当前缓存图像的方法,本申请由于不需要每次创建感知流buffer,也不需要每次都释放感知流buffer,如此循环往复,有效降低了电子设备资源的占用率,进而降低电子设备的功耗。
此外,在实际使用过程中,电子设备操作环境的变化,比如温度升高,或占内存占用量较多时,会导致图像帧识别目标特征的速度变慢,即感知流buffer的使用节奏变慢。此时当前图像帧还未使用完成,处理器已经再次接收图像帧。针对这种情况,为了避免图像帧使用混乱,本申请提供了第三种缓存图像帧的方法。参见图7,为本申请实施例提供的第三种缓存图像帧的方法流程图。该方法既可以应用在打开相机初始状态,也可以应用在拍摄切换的应用场景中。该方法具体包括以下步骤:
S701:用户执行目标操作。
目标操作包括拍摄切换或打开相机应用程序的操作的任意一种情况。当目标操作为打开相机应用程序操作时,执行步骤S301的操作。当目标操作为拍摄切换的操作时,执行步骤S501-S502操作。具体操作方式这里不再赘述。
S702:处理器预申请多帧感知流buffer保存至第一存储器中。
具体申请方式与步骤S302或步骤S503相同,这里不再赘述。
S703:相机应用程序持续不断下发图像帧请求。
相机应用程序向处理器下发图像帧请求,以使处理器利用目标特征识别算法从图像帧中识别目标特征。其中,目标特征识别算法用于识别图像帧中的目标特征。其中图像帧使用请求至少包括第一图像帧使用请求和第二图像帧使用请求。第一图形帧使用请求的下一次使用请求为第二图像帧使用请求。
目标识别算法预存在处理器中,当处理器接收到相机应用程序下发的图像帧请求时,利用目标识别算法识别图像帧中目标特征。
S704:处理器接收相机应用程序下发的第一图像帧使用请求。
S705:第一存储器中第一帧感知流buffer取出,移至第二存储器中缓存第一图像帧。
见步骤S304和S505,这里不再赘述。
S706:处理器接收相机应用程序下发的第二图像帧使用请求,判断感知流buffer的使用速度是否低于预设阈值。若是,执行S707,否则执行S709。
在实际使用过程中,由于电子设备的操作环境,比如操作温度升高,或内存占用量比较多等,会导致感知流buffer的使用速度较低。其中,感知流buffer的使用速度是指利用感知流buffer中缓存的图像帧识别目标特征的处理速度。当使用速度低于预设阈值时,会导致图像帧使用还未结束,处理器已经接收到相机应用程序再次下发的图像帧请求。
S707:将第二存储器中的第一帧感知流buffer放回第一存储器。
S708:从第一存储器中取出第二帧感知流buffer,移至第二存储器以缓存第二图像帧。
S706-S707的实现步骤与步骤S506-S507或步骤S305-S306相同,这里不再赘述。
S709:从第一存储器中取出第二帧感知流buffer,移至第二存储器以缓存第二图像帧。
当感知流buffer的使用速度低于预设阈值时,处理器再次接收相机应用程序下发的图像帧请求,上一次图像帧使用未结束。此时处理器将第一存储器的第二帧感知流buffer取出,放置在第二存储器中。处理器同时处理第二处理器的两帧感知流buffer缓存的图像帧。
S710:将第二存储器中的第一帧感知流buffer放回第一存储器。
当第一帧感知流buffer使用结束时,将第二存储器中的第一帧感知流buffer放回第一存储器,以释放第二存储器空间。如此循环以实现对于预申请多个感知流buffer的使用,直至用户执行退出相机应用程序或拍摄切换,清空第一存储器。其中,拍摄切换是指将当前拍摄状态,比如拍照,切换为其他拍摄状态,比如人像,或录像等。第二图像帧与第二图像帧使用请求对应。
可以理解的是,实际应用中,预申请多个感知流buffer可以不被全部使用,例如用户执行退出相机应用程序或拍摄切换的操作迅速,可能使得实际仅使用过一个或者两个感知流buffer后第一存储器即被清空。
S711:判断用户是否执行退出相机应用程序,或拍摄切换。若否,处理器接收相机应用程序下发的第三图像帧使用请求,并将第三图像帧使用请求作为第一图像帧使用请求,第三帧感知流buffer作为第一帧感知流buffer,执行S705。否则,执行S712。
其中,步骤S711的实现方式与步骤S509或S308,这里不再赘述。
S712:退出相机应用程序,将第一存储器和第二存储器的内存空间清空。
用户点击退出“相机”应用程序标识,处理器接收到退出相机应用程序指令后,将第一存储器和第二存储器的内存空间均清空,用于执行下一次打开相机初始状态。
可以理解的是,本申请实施例中提及的再次接收和第三次接收仅为指示说明,并不仅仅指示相机应用程序下发图像帧为三次,而是任意图像帧的下一次和下下一次。申请实施例中提及的第一帧感知流buffer、第二帧感知流buffer、第三帧感知流buffer也为示意性说明,其指示第一存储器中的任意三个帧感知流buffer。
为了更好的说明本申请实施例提供的缓存图像帧的方法,下面举例说明。
参见图8,为本申请实施例提供的缓存图像帧的方法示意图。其中图(a)为用户打开相机应用程序的操作。预先申请5块感知流buffer,分别为感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4和感知流buffer5。同时处理器还申请存储器A和存储器B。存储器A和存储器B的容量大小相同。将5块感知流buffer保存在存储器A中。存储器B未设置任何感知流buffer。
参见图(b),相机应用程序下发第一图像帧使用请求(也即图示下发图像帧请求),处理器从存储器A中取出感知流buffer1放置在存储器B中,使处理器执行识别图像帧目标特征的操作。,参见图(c),当处理器再次接收到相机应用程序下发图像帧请求时(也即图示再次下发请求并回收上一帧buffer),此时处理器将存储器B的感知流buffer1放回存储器A,并从存储器A中取出感知流buffer2,放置在存储器B,使处理器执行识别本次图像帧的目标特征的操作。如此,依次循环轮转使用第一存储器中感知流buffer,即依次取出和释放感知流buffer1、感知流buffer2、感知流buffer3、感知流buffer4、感知流buffer5、感知流buffer1、感知流buffer2等,执行图像帧的目标识别。
参见图(d),当感知流buffer使用节奏变化,具体当感知流buffer中缓存的图像帧使用速度变慢时,当相机应用程序下发图像帧请求时,感知流buffer1中图像帧未使用结束,处理器从存储器A中取出感知流buffer2,放置在存储器B,同时执行感知流buffer1和感知流buffer2中缓存的图像帧。
参加图(e),当相机应用程序再次下发图像帧请求(也即图示再次下发请求并回收上一帧buffer),将存储器B中的感知流buffer1放回存储器A中,并将存储器A中感知流buffer3取出,放置在存储器B。同时执行感知流buffer2和感知流buffer3缓存的图像帧。
参见图8(f),关闭相机(也即退出相机应用程序),清空存储器A和存储器B的感知流buffer,释放内存空间。
本申请实施例提供的缓冲图像帧的方法,当电子设备的操作环境发生变化时,本申请任然不需要每次创建感知流buffer,也不需要每次都释放感知流buffer,如此循环往复。在保证处理准确度的前提下,有效降低了电子设备资源的占用率,进而降低电子设备的功耗。
本申请实施例提供的缓存图像帧的方法不仅可以使用在手机,也可以使用在包含相机应用的多种电子设备中,比如pad、笔记本电脑、可穿戴电子设备(例如智能手表)、以及车载设备等。以上电子设备可以包括一个或多个摄像头,以上电子设备具有相机应用程序。下面对电子设备及其图像处理系统架构进行介绍。
参见图9,为本申请实施例提供的一种电子设备100的结构示意图。电子设备100包括:
电子设备100可以包括处理器110,内部存储器121,传感器模块180,摄像头193,显示屏194。其中传感器模块180可以包括陀螺仪传感器180B,触摸传感器180K,距离传感器180F,环境光传感器180L等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器用于执行生成第一存储器和第二存储器,并创建感知流buffer的功能。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。在本申请实施例中,控制器可以根据图像帧指令操作码和时序信号,产生操作控制信号,控制相机应用执行图像帧的目标特征识别,完整取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据,比如人脸深度估计的指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示人脸深度图的功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过图像信号处理器(Image Signal Processor,ISP),摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。在本申请实施例中,拍摄包含人脸的图像。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:目标识别,手势识别等。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图10是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图10所示,应用程序包可以包括相机应用,WLAN,蓝牙等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图10所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面1管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明电子设备100软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频,进而获取待缓存的图像帧。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种缓存图像帧的方法,其特征在于,应用于电子设备的相机应用程序,所述方法包括:
当用户执行目标操作时,预先申请多帧感知流buffer保存至第一存储器;所述目标操作包括打开所述相机应用程序操作或拍摄切换操作中的一种;所述拍摄切换操作用于表示将相机的第一拍摄状态切换至第二拍摄状态;
当接收到下发的多个图像帧使用请求时,依次从所述第一存储器的所述多帧感知流buffer中取出每帧感知流buffer并移至第二存储器;并当所述第二存储器中帧感知流buffer使用结束时,将所述帧感知流buffer放回所述第一存储器;
其中,所述第二存储器中帧感知流buffer用于缓存所述图像帧使用请求对应的图像帧;所述第二存储器中帧感知流buffer使用结束用于表示所述帧感知流buffer对应的图像帧的目标特征识别完成。
2.根据权利要求1所述方法,其特征在于,所述预先申请多帧感知流buffer保存至第一存储器,包括:
预先申请所述多帧感知流buffer;
将多帧所述感知流buffer以队列方式保存至所述第一存储器。
3.根据权利要求1或2所述方法,其特征在于,当所述多个图像帧使用请求包括第一图像帧使用请求和第二图像帧使用请求时,所述第二图像帧使用请求为所述第一图像帧使用请求下发后再次下发的图像帧使用请求;
所述依次从所述第一存储器的所述多帧感知流buffer中取出每帧感知流buffer并移至第二存储器包括:
从所述第一存储器的所述多帧感知流buffer中取出第一帧感知流buffer并移至所述第二存储器,以缓存所述第一图像帧使用请求对应的第一图像帧;
从所述第一存储器的所述多帧感知流buffer中取出第二帧感知流buffer,并移至所述第二存储器,以缓存所述第二图像帧使用请求对应的第二图像帧;
其中,所述第一帧感知流buffer保存至所述第一存储器的第一时刻小于所述第二帧感知流buffer保存至所述第一存储器的第二时刻。
4.根据权利要求3所述方法,其特征在于,当所述第一帧感知流buffer为所述多帧感知流buffer中最后保存至所述第一存储的感知流buffer,所述第二帧感知流buffer为所述多帧感知流buffer中第一个保存至所述第一存储的感知流buffer。
5.根据权利要求3或4所述方法,其特征在于,所述当所述第二存储器中帧感知流buffer使用结束时,将所述帧感知流buffer放回所述第一存储器,包括:
当所述第一帧感知流buffer使用结束时,从所述第二存储器中取出所述第一帧感知流buffer,并放回所述第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer;
当所述第二帧感知流buffer使用结束后,从所述第二存储器中取出所述第二帧感知流buffer,并放回所述第一存储器中最后一帧感知流buffer之后。
6.根据权利要求5所述方法,其特征在于,所述多个图像帧使用请求,还包括第三图像帧使用请求,所述第三图像帧使用请求为下发所述第二图像帧使用请求之后再次下发的图像帧使用请求;
所述当接收到下发的多个图像帧使用请求时,依次从所述第一存储器的所述多帧感知流buffer中取出每帧感知流buffer并移至第二存储器;并当所述第二存储器中帧感知流buffer使用结束时,将所述帧感知流buffer放回所述第一存储器,包括:
当接收下发的第一图像帧使用请求时,从所述第一存储器中的所述多帧感知流buffer中取出第一帧感知流buffer并移至所述第二存储器;
响应于接收到下发的第二图像帧使用请求,确定所述第二存储器中的所述第一帧感知流buffer使用结束,将所述第一帧感知流buffer取出并放回所述第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer;
从所述第一存储器中取出所述第二帧感知流buffer并移至所述第二存储器;
响应于接收到下发的第三图像帧使用请求,确定所述第二存储器中的所述第二帧感知流buffer使用结束,所述将所述第二帧感知流buffer取出并放回所述第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer。
7.根据权利要求6所述方法,其特征在于,所述当接收下发的第一图像帧使用请求时之前,所述方法还包括:
将所述第三图像帧使用请求作为第一图像帧使用请求,将所述第三帧感知流buffer作为第一帧感知流buffer;所述第三帧感知流buffer与所述第三图像帧使用请求对应,以缓存所述第三图像帧使用请求对应的第三图像帧。
8.根据权利要求7所述方法,其特征在于,所述响应于接收到下发的第二图像帧使用请求,确定所述第二存储器中的所述第一帧感知流buffer使用结束,包括:
响应于接收到下发的第二图像帧使用请求,确定所述第一帧感知流buffer的使用速度;当所述第一帧感知流buffer的使用速度超过预设速度阈值,确定所述第二存储器中的所述第一帧感知流buffer使用结束。
9.根据权利要求8所述方法,其特征在于,所述响应于接收到下发的第二图像帧使用请求,确定所述第一帧感知流buffer的使用速度之后,所述方法还包括:
当所述第一帧感知流buffer的使用速度不超过预设速度阈值,从所述第一存储器中取出所述第二帧感知流buffer并移至所述第二存储器;
将所述第一帧感知流buffer取出并放回所述第一存储器中最后一帧感知流buffer之后作为新的最后一帧感知流buffer;
响应于接收到下发的第三图像帧使用请求,将所述第三图像帧使用请求作为第一图像帧使用请求,将所述第三帧感知流buffer作为第一帧感知流buffer;所述第三帧感知流buffer与所述第三图像帧使用请求,以缓存所述第三图像帧使用请求对应的第三图像帧。
10.根据权利要求1-9任一项所述方法,其特征在于,当所述用户执行目标操作为拍摄切换操作时,所述方法还包括:
清空所述第一存储器和所述第二存储器;
所述预先申请多帧感知流buffer保存至第一存储器,包括:
预先申请多帧感知流buffer保存至清空后的所述第一存储器;
所述当接收到下发的多个图像帧使用请求时,依次从所述第一存储器的所述多帧感知流buffer中取出每帧感知流buffer并移至第二存储器,包括:
所述当接收到下发的多个图像帧使用请求时,依次从所述第一存储器的所述多帧感知流buffer中取出每帧感知流buffer并移至情况后的所述第二存储器。
11.根据权利要求1-10任一项所述方法,其特征在于,所述预先申请多帧感知流buffer的数量2~10帧。
12.根据权利要求1-11任一项所述方法,其特征在于,所述方法还包括:
当退出相机应用程序,或执行拍摄切换操作中任意一种,清空第一存储器和第二存储器。
13.根据权利要求1-12任一项所述方法,其特征在于,所述方法还包括:
所述第一存储器的容量大小与所述多帧感知流buffer的容量大小,以及所述多帧感知流buffer的帧数确定。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1-13任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算设备上运行时,使得所述计算设备执行权利要求1-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310155705.XA CN117114964A (zh) | 2023-02-13 | 2023-02-13 | 一种缓存图像帧的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310155705.XA CN117114964A (zh) | 2023-02-13 | 2023-02-13 | 一种缓存图像帧的方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117114964A true CN117114964A (zh) | 2023-11-24 |
Family
ID=88798959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310155705.XA Pending CN117114964A (zh) | 2023-02-13 | 2023-02-13 | 一种缓存图像帧的方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117114964A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109089053A (zh) * | 2018-10-23 | 2018-12-25 | Oppo广东移动通信有限公司 | 图像传输方法、装置、电子设备和存储介质 |
CN110149552A (zh) * | 2019-05-08 | 2019-08-20 | 百度在线网络技术(北京)有限公司 | 一种视频流帧数据的处理方法及终端 |
WO2022156721A1 (zh) * | 2021-01-20 | 2022-07-28 | 华为技术有限公司 | 一种拍摄方法及电子设备 |
CN115473957A (zh) * | 2021-06-10 | 2022-12-13 | 荣耀终端有限公司 | 一种图像处理方法和电子设备 |
-
2023
- 2023-02-13 CN CN202310155705.XA patent/CN117114964A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109089053A (zh) * | 2018-10-23 | 2018-12-25 | Oppo广东移动通信有限公司 | 图像传输方法、装置、电子设备和存储介质 |
CN110149552A (zh) * | 2019-05-08 | 2019-08-20 | 百度在线网络技术(北京)有限公司 | 一种视频流帧数据的处理方法及终端 |
WO2022156721A1 (zh) * | 2021-01-20 | 2022-07-28 | 华为技术有限公司 | 一种拍摄方法及电子设备 |
CN115473957A (zh) * | 2021-06-10 | 2022-12-13 | 荣耀终端有限公司 | 一种图像处理方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111553846B (zh) | 超分辨率处理方法及装置 | |
WO2021190348A1 (zh) | 图像处理方法和电子设备 | |
CN111400605A (zh) | 基于眼球追踪的推荐方法及装置 | |
WO2024016564A1 (zh) | 二维码识别方法、电子设备以及存储介质 | |
CN116320783B (zh) | 一种录像中抓拍图像的方法及电子设备 | |
CN113709355A (zh) | 滑动变焦的拍摄方法及电子设备 | |
CN115292052A (zh) | 内存回收方法、电子设备及计算机可读存储介质 | |
CN116916151B (zh) | 拍摄方法、电子设备和存储介质 | |
CN115640083A (zh) | 一种可提升动效性能的屏幕刷新方法及设备 | |
CN111381996B (zh) | 内存异常处理方法及装置 | |
CN116225274A (zh) | 触控操作的识别方法、装置、电子设备及存储介质 | |
CN114780012B (zh) | 电子设备的锁屏壁纸的显示方法和相关装置 | |
CN117114964A (zh) | 一种缓存图像帧的方法、电子设备及存储介质 | |
CN116688495A (zh) | 帧率调整方法及相关装置 | |
CN116723418B (zh) | 拍照方法和相关装置 | |
CN117389745B (zh) | 一种数据处理方法、电子设备及存储介质 | |
CN116546274B (zh) | 视频切分方法、选取方法、合成方法及相关装置 | |
CN113821153B (zh) | 手势导航方法、电子设备及可读存储介质 | |
CN116688494B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN116382896B (zh) | 图像处理算法的调用方法、终端设备、介质及产品 | |
CN116744106B (zh) | 相机应用的控制方法和终端设备 | |
CN116501210B (zh) | 一种显示方法、电子设备及存储介质 | |
EP4296840A1 (en) | Method and apparatus for scrolling to capture screenshot | |
CN117724783A (zh) | 动效显示方法及电子设备 | |
CN116700982A (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 |