CN116028383B - 缓存管理方法及电子设备 - Google Patents
缓存管理方法及电子设备 Download PDFInfo
- Publication number
- CN116028383B CN116028383B CN202211008792.8A CN202211008792A CN116028383B CN 116028383 B CN116028383 B CN 116028383B CN 202211008792 A CN202211008792 A CN 202211008792A CN 116028383 B CN116028383 B CN 116028383B
- Authority
- CN
- China
- Prior art keywords
- image
- buffer
- cache
- capacity
- buffer area
- 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.)
- Active
Links
Landscapes
- Studio Devices (AREA)
Abstract
本申请提供了一种缓存管理方法及电子设备。该方法包括:接收拍摄指令;响应于拍摄指令,申请第一缓存区和第二缓存区;轮流将第一缓存区和第二缓存区用于当前拍摄模式下采集的图像数据的处理。本申请实施例,通过在拍摄阶段申请缓存空间,避免了在拍摄前的非必要时间内占用内存,节约了内存资源。
Description
技术领域
本申请涉及终端设备领域,尤其涉及一种缓存管理方法及电子设备。
背景技术
当前,很多电子设备,例如手机、平板等都支持拍摄功能。并且,拍摄功能是电子设备中一种使用频率较多的功能。
在拍摄过程中,相机会采集原始图像数据,这些原始图像数据需要经过一定的处理后,才能成为用户需要的图片。暂存原始图像数据以及对原始图像数据进行处理,都需要占用一定的缓存(Buffer)空间。因此,在使用相机过程中,需要申请缓存空间,以供存储原始图像数据和处理原始图像数据使用。
发明内容
为了解决上述技术问题,本申请提供一种缓存管理方法及电子设备,通过在拍摄阶段申请缓存空间,避免了在拍摄前的非必要时间内占用内存,节约了内存资源。
第一方面,本申请提供一种缓存管理方法。该方法应用于电子设备。该方法包括:接收拍摄指令;响应于拍摄指令,申请第一缓存区和第二缓存区;轮流将第一缓存区和第二缓存区用于当前拍摄模式下采集的图像数据的处理。这样,通过在拍摄阶段申请缓存空间,避免了在拍摄前的非必要时间内占用内存,节约了内存资源。
根据第一方面,接收拍摄指令之前,还包括:接收第一图像配置信息,第一图像配置信息包括当前拍摄模式下的第一图像宽度信息和第一图像高度信息;根据第一图像宽度信息和第一图像高度信息,确定当前拍摄模式对应的第一缓存容量;响应于拍摄指令,申请第一缓存区和第二缓存区,包括:响应于拍摄指令,按照第一缓存容量申请第一缓存区和第二缓存区,以使第一缓存区的容量和第二缓存区的容量都等于第一缓存容量。这样,在拍照阶段申请用于进行图像数据处理的缓存,可以避免在拍摄前的时间内占用内存,节约内存资源,并且,申请缓存的容量根据拍摄时的图像分辨率确定,能够避免缓存容量大于拍摄图像所需存储容量而造成内存的浪费。
根据第一方面,接收图像配置信息,图像配置信息包括当前拍摄模式下的图像宽度信息和图像高度信息,包括:在当前拍摄模式下的预览阶段,接收图像配置信息,图像配置信息包括当前拍摄模式下的图像宽度信息和图像高度信息。
根据第一方面,还包括:接收更改图像配置信息的第一通知,第一通知中包括修改后的第二图像配置信息,第二图像配置信息包括当前拍摄模式下的第二图像宽度信息和第二图像高度信息;根据第二图像宽度信息和第二图像高度信息,确定当前拍摄模式对应的第二缓存容量;释放第一缓存区和第二缓存区;根据第二缓存容量申请第三缓存区和第四缓存区,以使第三缓存区的容量和第四缓存区的容量都等于第二缓存容量;轮流使用第三缓存区和第四缓存区对当前拍摄模式下采集的图像数据进行处理。
根据第一方面,还包括:接收切换拍摄模式的第二通知,第二通知中包括第三图像配置信息,第三图像配置信息包括当前拍摄模式下的第三图像宽度信息和第三图像高度信息;根据第三图像宽度信息和第三图像高度信息,确定当前拍摄模式对应的第三缓存容量;释放第一缓存区和第二缓存区;根据第三缓存容量申请第五缓存区和第六缓存区,以使第五缓存区的容量和第六缓存区的容量都等于第三缓存容量;轮流使用第五缓存区和第六缓存区对当前拍摄模式下采集的图像数据进行处理。
根据第一方面,第一缓存区的容量和第二缓存区的容量相等。
根据第一方面,第一缓存区的容量和第二缓存区的容量均等于第三缓存容量,第三缓存容量是所有拍摄模式对应的缓存容量中最大的缓存容量。
根据第一方面,还包括:接收退出当前拍摄模式的指令;响应于退出当前拍摄模式的指令,释放第一缓存区和第二缓存区。
根据第一方面,轮流将第一缓存区和第二缓存区用于当前拍摄模式下采集的图像数据的处理,包括:在第一时刻,响应于图像处理模块发送的缓存获取请求,将第一缓存区提供给图像处理模块,以便图像处理模块使用第一缓存区处理当前拍摄模式下采集的第一图像数据;在第一时刻之后的第二时刻,响应于图像处理模块发送的缓存获取请求,将第二缓存区提供给图像处理模块,以便图像处理模块使用第二缓存区处理当前拍摄模式下采集的第二图像数据;在第二时刻之后的第三时刻,响应于图像处理模块发送的缓存获取请求,将第一缓存区提供给图像处理模块,以便图像处理模块使用第一缓存区处理当前拍摄模式下采集的第三图像数据。
第二方面,本申请提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由所述处理器执行时,使得电子设备执行第一方面任意一项的缓存管理方法。
第三方面,本申请提供一种计算机可读存储介质,包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行前述的第一方面任意一项的缓存管理方法。
附图说明
图1为示例性示出的电子设备100的结构示意图;
图2为示例性示出的本申请实施例的电子设备100的软件结构框图;
图3为示例性示出的缓存管理方法的实施例一的流程示意图;
图4为示例性示出的缓存管理方法的实施例二的流程示意图;
图5为示例性示出的拍摄过程的一种示例图;
图6为示例性示出的拍摄过程的另一种示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
相关技术中,在拍摄之前的预览阶段,申请用于存储原始图像数据和进行图像数据处理的缓存。然而,在预览阶段,相机并未采集图像数据,也不需要存储预览的图像数据,但申请的缓存却占用了内存,造成内存资源的浪费。
本申请实施例提供一种缓存管理方法,能够避免在拍摄前的非必要时间内占用内存,节约电子设备的内存资源。
本申请实施例中的缓存管理方法可以应用于电子设备,该电子设备例如可以是智能手机、平板等。本实施例中的电子设备的结构可以如图1所示。
图1为示例性示出的电子设备100的结构示意图。应该理解的是,图1所示电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图1中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
请参见图1,电子设备100可以包括:处理器110,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,指示器192,摄像头193等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
电子设备100可以通过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的软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构,或云架构。本申请实施例以分层架构的安卓(Android)系统为例,示例性说明电子设备100的软件结构。
图2为示例性示出的本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,Android系统可以包括应用程序层、应用程序框架层、系统层以及内核层等。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,通话,WLAN,导航,视频等应用程序。
其中,相机应用用于实现拍摄功能。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,资源管理器,内容提供器,视图系统等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
安卓运行时(Android Runtime)包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。如图2所示,本申请实施例中,系统库中可以包括表面管理器(surface manager)、媒体库(Media Libraries)、缓存管理模块、图像处理模块等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
缓存管理模块用于执行本申请实施例的缓存管理方法。
图像处理模块用于对摄像头采集的原始图像数据进行处理,生成预定格式的图像。例如,图像处理模块可以为JPEG(Joint Photographic Experts Group,联合图像专家组)处理模块,JPEG处理模块用于对摄像头采集的原始图像数据进行处理,生成JPEG格式的图像。
内核层是硬件和软件之间的层。
如图2所示,内核层可以包括显示驱动、摄像头驱动、蓝牙驱动、音频驱动、传感器驱动等模块。
可以理解的是,图2示出的软件结构中的层以及各层中包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
下面通过实施例,对本申请进行详细说明。
图3为示例性示出的缓存管理方法的实施例一的流程示意图。请参见图3,本申请实施例中,缓存管理方法可以包括如下步骤:
S301、接收拍摄指令。
进入相机应用后,用户点击开始拍摄按钮,电子设备检测到开始拍摄按钮被点击,确认接收到拍摄指令。
例如,假设进入相机应用后,默认拍摄模式为拍照模式,那么在拍照模式下,用户点击开始拍摄按钮,电子设备检测到开始拍摄按钮被点击,确认接收到拍照的拍摄指令。
接收到拍摄指令后,相机应用进入到拍照阶段。
S302、响应于拍摄指令,申请第一缓存区和第二缓存区。
在一个示例中,第一缓存区的容量和第二缓存区的容量可以相等。
在一个示例中,第一缓存区的容量和第二缓存区的容量可以都等于所有拍摄模式对应的缓存容量中的最大缓存容量。
本步骤中,可以根据最大缓存容量来申请第一缓存区和第二缓存区。
由于接收到拍摄指令后,相机应用就进入到拍照阶段,因此,本步骤是在拍照阶段进行的。
S303、轮流将第一缓存区和第二缓存区用于当前拍摄模式下采集的图像数据的处理。
申请第一缓存区和第二缓存区之后,轮流将第一缓存区和第二缓存区用于图像数据的处理,在退出当前拍摄模式之前不释放第一缓存区和第二缓存区,退出当前拍摄模式之后,再释放第一缓存区和第二缓存区。
假设在当前拍摄模式下,按时间顺序依次采集到五组图像数据,即:图像数据1、图像数据2、图像数据3、图像数据4、图像数据5。那么,轮流将第一缓存区和第二缓存区用于当前拍摄模式下采集的图像数据的处理是指:在处理图像数据1时使用第一缓存区,在处理图像数据2时使用第二缓存区,在处理图像数据3时使用第一缓存区,在处理图像数据4时使用第二缓存区,在处理图像数据5时使用第一缓存区。以此类推。
S304、接收退出当前拍摄模式的指令。
S305、响应于退出当前拍摄模式的指令,释放第一缓存区和第二缓存区。
在另一个示例中,如果在一次使用相机的整个过程中,没有改变拍摄模式,可以在退出相机时释放第一缓存区和第二缓存区。即,步骤S304、S305可以被替换为:
接收退出相机应用的指令;
响应于退出相机应用的指令,释放第一缓存区和第二缓存区。
本申请实施例中,在当前拍摄模式中图像配置信息保持不变的情况下,在当前拍摄模式中申请一次缓存,在当前拍摄模式期间不释放缓存,退出当前拍摄模式之后,再释放缓存。
本申请实施例中,在拍照阶段申请用于进行图像数据处理的缓存,可以避免在拍摄前的时间内占用内存,节约了内存资源。这样,能够使得电子设备中的其他应用在拍摄前具有更加充足的内存资源,有助于电子设备保持较好的性能。
图4为示例性示出的缓存管理方法的实施例二的流程示意图。请参见图4,本申请实施例中,缓存管理方法可以包括如下步骤:
S401、在预览阶段,接收图像配置信息,图像配置信息包括当前拍摄模式下的第一图像宽度信息和第一图像高度信息。
预览阶段按照时间顺序先后可以分为四个阶段:打开相机(camera)阶段、配流阶段、请求下发阶段和返回图像阶段。
其中,在配流阶段,相机应用向缓存管理模块下发配置流信息,配置流信息可以宝库图像的宽度信息、图像的高度信息,还可以包括图像格式信息。
本步骤中的图像配置信息可以是配置流信息。相机应用可以在预览阶段中的配流阶段向缓存管理模块下发图像配置信息,缓存管理模块在配流阶段接收图像配置信息。
S402、根据第一图像宽度信息和第一图像高度信息,确定当前拍摄模式对应的第一缓存容量。
S403、接收拍摄指令。
S404、响应于拍摄指令,按照第一缓存容量申请第一缓存区和第二缓存区。
按照第一缓存容量申请第一缓存区和第二缓存区后,第一缓存区的容量和第二缓存区的容量可以都等于第一缓存容量。且第一缓存区的宽度和第二缓存区的宽度都等于第一图像宽度信息所指示的宽度,第一缓存区的高度和第二缓存区的高度都等于第一图像高度信息所指示的高度。
在其他实施例中,按照第一缓存容量申请第一缓存区和第二缓存区后,第一缓存区的容量和第二缓存区的容量可以都稍稍大于第一缓存容量。在这种情况下,第一缓存区的宽度和第二缓存区的宽度都大于第一图像宽度信息所指示的宽度,第一缓存区的高度和第二缓存区的高度都大于第一图像高度信息所指示的高度。
图像的尺寸不同,分辨率也不同,所需的缓存容量也不同。如果在所有情况下都使用最大缓存容量,那么当图像尺寸较小时就会造成内存资源的浪费。本申请实施例中,根据拍摄时所使用的具体图像尺寸确定申请缓存的容量,能够适配不同分辨率,避免在拍摄图像分辨率低的情况下使用大于存储图像所需容量的缓存,节约内存资源。
S405、轮流将第一缓存区和第二缓存区用于当前拍摄模式下采集的图像数据的处理。
S406、接收退出当前拍摄模式的指令。
S407、响应于退出当前拍摄模式的指令,释放第一缓存区和第二缓存区。
本申请实施例中,采用两种技术手段来节约内存资源:一是,在拍照阶段申请用于进行图像数据处理的缓存,可以避免在拍摄前的时间内占用内存,节约内存资源;二是,申请缓存的容量根据拍摄时的图像分辨率确定,避免缓存容量大于拍摄图像所需存储容量而造成内存的浪费。
需要说明的是,如果在拍摄过程中,拍摄模式保持不变,但用户修改了图像配置信息,导致图像分辨率与修改前的图像分辨率不同,此时,需要释放已申请的缓存,根据修改后的图像配置信息重新申请新的缓存。举例说明。
图5为示例性示出的拍摄过程的一种示例图。请参考图5,拍摄过程可以包括如下步骤:
S501、用户打开相机应用,相机应用进入到默认的拍照模式界面,电子设备显示屏上显示拍照模式下的预览界面。
S502、在预览阶段,相机向缓存管理模块发送第一图像配置信息,第一图像配置信息包括当前拍摄模式下的第一图像宽度信息和第一图像高度信息。
S503、缓存管理模块接收到第一图像配置信息,根据第一图像宽度信息和第一图像高度信息,确定当前拍摄模式对应的第一缓存容量。
S504、相机向缓存管理模块发送拍摄指令。
S505、缓存管理模块响应于拍摄指令,按照第一缓存容量申请第一缓存区和第二缓存区。
S506、图像处理模块向缓存管理模块多次发送缓存获取请求。
S507、缓存管理模块向图像处理模块轮流返回第一缓存区和第二缓存区的地址信息。
S508、图像处理模块根据缓存管理模块返回的地址信息使用相应的缓存区存储图像处理过程中的相关图像数据。
S509、相机向缓存管理模块发送更改图像配置信息的通知,通知中包括修改后的第二图像配置信息,第二图像配置信息包括当前拍摄模式下的第二图像宽度信息和第二图像高度信息。
在一个示例中,本步骤是在预览阶段进行的。例如,相机应用在拍照模式下,拍照完成后又进入到了预览阶段,此时,相机向缓存管理模块发送更改图像配置信息的通知。
S510、缓存管理模块根据第二图像宽度信息和第二图像高度信息,确定当前拍摄模式对应的第二缓存容量。
S511、缓存管理模块释放第一缓存区和第二缓存区。
S512、相机向缓存管理模块发送拍摄指令;
S513、缓存管理模块响应于拍摄指令,按照第二缓存容量申请第三缓存区和第四缓存区。
S514、图像处理模块向缓存管理模块多次发送缓存获取请求。
S515、缓存管理模块向图像处理模块轮流返回第三缓存区和第四缓存区的地址信息。
S516、图像处理模块根据缓存管理模块返回的地址信息使用相应的缓存区存储图像处理过程中的相关图像数据。
S517、相机向缓存管理模块发送退出当前拍摄模式的指令。
S518、缓存管理模块响应于退出当前拍摄模式的指令,释放第三缓存区和第四缓存区。
需要说明的是,如果在拍摄过程中,拍摄模式改变,此时,需要释放已申请的缓存,根据改变后的拍摄模式中的图像配置信息重新申请新的缓存。举例说明。
图6为示例性示出的拍摄过程的另一种示例图。请参考图6,拍摄过程可以包括如下步骤:
S601、用户打开相机应用,相机应用进入到默认的拍照模式界面,电子设备显示屏上显示拍照模式下的预览界面。
S602、在预览阶段,相机向缓存管理模块发送第一图像配置信息,第一图像配置信息包括当前拍摄模式下的第一图像宽度信息和第一图像高度信息。
在一个示例中,本步骤可以包括:在预览阶段的配流阶段,相机向缓存管理模块发送第一图像配置信息。
S603、缓存管理模块接收到第一图像配置信息,根据第一图像宽度信息和第一图像高度信息,确定当前拍摄模式对应的第一缓存容量。
S604、相机向缓存管理模块发送拍摄指令。
S605、缓存管理模块响应于拍摄指令,按照第一缓存容量申请第一缓存区和第二缓存区。
S606、图像处理模块向缓存管理模块多次发送缓存获取请求。
S607、缓存管理模块向图像处理模块轮流返回第一缓存区和第二缓存区的地址信息。
S608、图像处理模块根据缓存管理模块返回的地址信息使用相应的缓存区存储图像处理过程中的相关图像数据。
S609、相机向缓存管理模块发送切换拍摄模式的通知,通知中包括第三图像配置信息,第三图像配置信息包括当前拍摄模式下的第三图像宽度信息和第三图像高度信息。
在一个示例中,本步骤是在预览阶段进行的。例如,相机应用在拍照模式下,拍照完成后又进入到了预览阶段,此时,相机向缓存管理模块发送切换拍摄模式的通知。
本实施例中,拍摄模式例如可以是录像模式、夜景模式、人像模式等等。
S610、缓存管理模块根据第三图像宽度信息和第三图像高度信息,确定当前拍摄模式对应的第三缓存容量。
S611、缓存管理模块释放第一缓存区和第二缓存区。
S612、相机向缓存管理模块发送拍摄指令;
S613、缓存管理模块响应于拍摄指令,按照第三缓存容量申请第五缓存区和第六缓存区。
S614、图像处理模块向缓存管理模块多次发送缓存获取请求。
S615、缓存管理模块向图像处理模块轮流返回第五缓存区和第六缓存区的地址信息。
S616、图像处理模块根据缓存管理模块返回的地址信息使用相应的缓存区存储图像处理过程中的相关图像数据。
S617、相机向缓存管理模块发送退出当前拍摄模式的指令。
S618、缓存管理模块响应于退出当前拍摄模式的指令,释放第五缓存区和第六缓存区。
需要说明的是,本申请各个实施例中,释放缓存区之前,需要保证在缓存区内处理的图像已经处理完毕。如果需要释放缓存区,但是缓存区内还有未处理完毕的图像,需要延迟到图像处理完毕再释放缓存区。
本申请实施例还提供一种电子设备,该电子设备包括存储器和处理器,存储器与处理器耦合,存储器存储有程序指令,当程序指令由所述处理器执行时,使得电子设备前述电子设备所执行的缓存管理方法。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的缓存管理方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的缓存管理方法。
另外,本申请实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的缓存管理方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (11)
1.一种缓存管理方法,其特征在于,应用于电子设备,包括:
接收拍摄指令;
响应于所述拍摄指令,申请第一缓存区和第二缓存区;
轮流将所述第一缓存区和所述第二缓存区用于当前拍摄模式下采集的图像数据的处理,在当前拍摄模式中图像配置信息保持不变的情况下,在退出当前拍摄模式之前不释放第一缓存区和第二缓存区,退出当前拍摄模式之后,再释放第一缓存区和第二缓存区。
2.根据权利要求1所述的方法,其特征在于,接收拍摄指令之前,还包括:
接收第一图像配置信息,所述第一图像配置信息包括当前拍摄模式下的第一图像宽度信息和第一图像高度信息;
根据所述第一图像宽度信息和所述第一图像高度信息,确定当前拍摄模式对应的第一缓存容量;
响应于所述拍摄指令,申请第一缓存区和第二缓存区,包括:响应于所述拍摄指令,按照所述第一缓存容量申请第一缓存区和第二缓存区,以使所述第一缓存区的容量和所述第二缓存区的容量都等于所述第一缓存容量。
3.根据权利要求2所述的方法,其特征在于,接收图像配置信息,所述图像配置信息包括当前拍摄模式下的图像宽度信息和图像高度信息,包括:
在当前拍摄模式下的预览阶段,接收图像配置信息,所述图像配置信息包括当前拍摄模式下的图像宽度信息和图像高度信息。
4.根据权利要求2所述的方法,其特征在于,还包括:
接收更改图像配置信息的第一通知,所述第一通知中包括修改后的第二图像配置信息,所述第二图像配置信息包括当前拍摄模式下的第二图像宽度信息和第二图像高度信息;
根据所述第二图像宽度信息和所述第二图像高度信息,确定当前拍摄模式对应的第二缓存容量;
释放所述第一缓存区和所述第二缓存区;
根据所述第二缓存容量申请第三缓存区和第四缓存区,以使所述第三缓存区的容量和所述第四缓存区的容量都等于所述第二缓存容量;
轮流使用所述第三缓存区和所述第四缓存区对当前拍摄模式下采集的图像数据进行处理。
5.根据权利要求2所述的方法,其特征在于,还包括:
接收切换拍摄模式的第二通知,所述第二通知中包括第三图像配置信息,所述第三图像配置信息包括当前拍摄模式下的第三图像宽度信息和第三图像高度信息;
根据所述第三图像宽度信息和所述第三图像高度信息,确定当前拍摄模式对应的第三缓存容量;
释放所述第一缓存区和所述第二缓存区;
根据所述第三缓存容量申请第五缓存区和第六缓存区,以使所述第五缓存区的容量和所述第六缓存区的容量都等于所述第三缓存容量;
轮流使用所述第五缓存区和所述第六缓存区对当前拍摄模式下采集的图像数据进行处理。
6.根据权利要求1所述的方法,其特征在于,所述第一缓存区的容量和所述第二缓存区的容量相等。
7.根据权利要求1所述的方法,其特征在于,所述第一缓存区的容量和所述第二缓存区的容量均等于第三缓存容量,所述第三缓存容量是所有拍摄模式对应的缓存容量中最大的缓存容量。
8.根据权利要求1所述的方法,其特征在于,还包括:
接收退出当前拍摄模式的指令;
响应于所述退出当前拍摄模式的指令,释放所述第一缓存区和所述第二缓存区。
9.根据权利要求1所述的方法,其特征在于,轮流将所述第一缓存区和所述第二缓存区用于当前拍摄模式下采集的图像数据的处理,包括:
在第一时刻,响应于图像处理模块发送的缓存获取请求,将所述第一缓存区提供给所述图像处理模块,以便所述图像处理模块使用所述第一缓存区处理当前拍摄模式下采集的第一图像数据;
在所述第一时刻之后的第二时刻,响应于图像处理模块发送的缓存获取请求,将所述第二缓存区提供给所述图像处理模块,以便所述图像处理模块使用所述第二缓存区处理当前拍摄模式下采集的第二图像数据;
在所述第二时刻之后的第三时刻,响应于图像处理模块发送的缓存获取请求,将所述第一缓存区提供给所述图像处理模块,以便所述图像处理模块使用所述第一缓存区处理当前拍摄模式下采集的第三图像数据。
10.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1-9中任意一项所述的缓存管理方法。
11.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-9中任意一项所述的缓存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008792.8A CN116028383B (zh) | 2022-08-22 | 2022-08-22 | 缓存管理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008792.8A CN116028383B (zh) | 2022-08-22 | 2022-08-22 | 缓存管理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116028383A CN116028383A (zh) | 2023-04-28 |
CN116028383B true CN116028383B (zh) | 2023-10-20 |
Family
ID=86071499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211008792.8A Active CN116028383B (zh) | 2022-08-22 | 2022-08-22 | 缓存管理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116028383B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106993135A (zh) * | 2017-03-31 | 2017-07-28 | 维沃移动通信有限公司 | 一种拍照方法及移动终端 |
CN111567033A (zh) * | 2019-05-15 | 2020-08-21 | 深圳市大疆创新科技有限公司 | 拍摄装置、无人飞行器、控制终端和拍摄方法 |
CN112287702A (zh) * | 2020-05-19 | 2021-01-29 | 珠海市杰理科技股份有限公司 | 无外部存储器的扫码方法、装置、扫描设备和移动终端 |
WO2021227803A1 (zh) * | 2020-05-15 | 2021-11-18 | 深圳市道通科技股份有限公司 | 一种内窥镜内存管理方法及内窥镜 |
-
2022
- 2022-08-22 CN CN202211008792.8A patent/CN116028383B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106993135A (zh) * | 2017-03-31 | 2017-07-28 | 维沃移动通信有限公司 | 一种拍照方法及移动终端 |
CN111567033A (zh) * | 2019-05-15 | 2020-08-21 | 深圳市大疆创新科技有限公司 | 拍摄装置、无人飞行器、控制终端和拍摄方法 |
WO2021227803A1 (zh) * | 2020-05-15 | 2021-11-18 | 深圳市道通科技股份有限公司 | 一种内窥镜内存管理方法及内窥镜 |
CN112287702A (zh) * | 2020-05-19 | 2021-01-29 | 珠海市杰理科技股份有限公司 | 无外部存储器的扫码方法、装置、扫描设备和移动终端 |
Non-Patent Citations (2)
Title |
---|
基于FPGA与DDR3缓存的PAL制式图像源产生模块设计与实现;杨文豪;倪文龙;付强;孙舟;郭奇;钱宏文;;实验室研究与探索(第11期);全文 * |
高分七号卫星图像压缩FPGA设计与实现技术;韩宇;袁素春;张建华;郑小松;刘聪聪;师勇;张朗;武小栋;;航天器工程(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116028383A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111212235B (zh) | 一种长焦拍摄的方法及电子设备 | |
WO2009133245A1 (en) | Methods, computer program products and apparatus providing improved image capturing | |
CN115689963B (zh) | 一种图像处理方法及电子设备 | |
CN113709355B (zh) | 滑动变焦的拍摄方法及电子设备 | |
CN113329176A (zh) | 应用于智能终端的相机的图像处理方法及相关装置 | |
CN115526787B (zh) | 视频处理方法和装置 | |
WO2024040990A1 (zh) | 拍照方法及电子设备 | |
WO2023160295A1 (zh) | 视频处理方法和装置 | |
CN113810604A (zh) | 文档拍摄方法和装置 | |
JP6493454B2 (ja) | 電子カメラ | |
WO2022160985A1 (zh) | 一种分布式拍摄方法,电子设备及介质 | |
WO2024093545A1 (zh) | 拍照方法及电子设备 | |
JP2013175824A (ja) | 電子カメラ | |
CN116028383B (zh) | 缓存管理方法及电子设备 | |
WO2023160230A1 (zh) | 一种拍摄方法及相关设备 | |
CN116048323B (zh) | 图像处理方法及电子设备 | |
JP5906846B2 (ja) | 電子カメラ | |
CN114793283A (zh) | 图像编码方法、图像解码方法、终端设备及可读存储介质 | |
WO2024093518A1 (zh) | 一种出图模式切换方法及相关设备 | |
WO2023035868A1 (zh) | 拍摄方法及电子设备 | |
CN117082295B (zh) | 图像流处理方法、设备及存储介质 | |
US20240155236A1 (en) | Image processing method and electronic device | |
CN116744106B (zh) | 相机应用的控制方法和终端设备 | |
CN113259582B (zh) | 图片生成方法及终端 | |
WO2023035920A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |