CN116708988A - 电子设备及其拍摄方法、介质 - Google Patents
电子设备及其拍摄方法、介质 Download PDFInfo
- Publication number
- CN116708988A CN116708988A CN202210178867.0A CN202210178867A CN116708988A CN 116708988 A CN116708988 A CN 116708988A CN 202210178867 A CN202210178867 A CN 202210178867A CN 116708988 A CN116708988 A CN 116708988A
- Authority
- CN
- China
- Prior art keywords
- camera
- shooting
- application
- photographing
- algorithm
- 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 54
- 230000005540 biological transmission Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 19
- 238000003384 imaging method Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/67—Focus control based on electronic image sensor signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Studio Devices (AREA)
Abstract
本申请涉及计算机系统领域,具体涉及一种电子设备及其拍摄方法、介质,该拍摄方法包括:第一应用生成拍摄指令,拍摄指令包括第一拍摄控制指令;相机控制模块通过预设传输通道从第一应用获取到第一拍摄控制指令,其中预设传输通道用于连接相机控制模块和第一应用;相机控制模块调用与第一拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄,其中第一应用位于电子设备软件系统的应用层,相机控制模块位于软件系统的硬件抽象层。本申请提供的拍摄方法,可以能够使得相机控制模块能够及时地根据第一拍摄控制指令调用拍摄算法完成拍照。加快了电子设备的相机应用和电子设备的相机之间的响应时间,提高了用户的拍照体验。
Description
技术领域
本申请涉及计算机系统领域。尤其涉及一种电子设备及其拍摄方法、介质。
背景技术
ISP(Image Signal Processor,图像处理),用于控制电子设备的图像传感器(如:相机)以及对图像传感器输出的信号进行处理。ISP可以包括3A算法库,也就是,自动对焦(AutoFocus,AF)、自动曝光(Auto Exposure,AE)以及自动白平衡(Auto White Balance,AWB)。3A算法库用于调节图像传感器的曝光时间、控制对焦以及旋转光圈等。
在现有技术中,电子设备的相机应用是通过操作系统的硬件抽象层(HardwareAbstraction Layer,HAL)与电子设备的3A算法库进行交互。如图1a所示,以3A算法中的自动对焦算法(AF算法)为例,相机应用101通过操作系统的硬件抽象层向电子设备的相机HAL102下发自动对焦的触发事件(trigger event),触发事件进入硬件抽象层的队列103进行排队(本申请实施例中的队列也可以称为轮转BUFFER)。也就是说,自动对焦的触发事件需要等待队列中的其他事件处理完毕后,硬件抽象层将自动对焦的触发事件转发给相机HAL102,在相机HAL102获取了触发事件并调用3A算法库中的自动对焦算法后,相机HAL102向相机应用101返回对焦状态。可以看出,在硬件抽象层的队列103中存在较多事件正在排队的情况下,会造成硬件抽象层转发触发事件的时延较长,导致了从用户按下相机应用的拍照按键到相机开始曝光这一过程的时延较长(Shutter Lag,快门延迟),因此,若用户需要使用电子设备进行抓拍或者快速连拍,则会造成电子设备的相机的响应速度无法满足用户的拍照需求。
发明内容
本申请的目的在于提供一种电子设备及其拍摄方法、介质。
本申请的第一方面提供了一种拍摄方法,应用于电子设备,电子设备包括第一应用和相机控制模块,其中第一应用位于电子设备软件系统的应用层,相机控制模块位于软件系统的硬件抽象层;
并且方法包括:
第一应用生成拍摄指令,拍摄指令包括第一拍摄控制指令;
相机控制模块通过预设传输通道从第一应用获取到第一拍摄控制指令,其中预设传输通道用于连接相机控制模块和第一应用;
相机控制模块调用与第一拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄。
即在本申请的实施例中,第一应用可以是电子设备安装的相机应用,相机控制模块可以是电子设备的操作系统中的硬件抽象层的相机HAL。拍摄指令可以是相机应用响应用户点击电子设备的主屏上的相机应用的图标产生的指令,拍摄指令用于指示电子设备的相机进行拍摄。第一拍摄控制指令可以是3A算法的触发事件,第一拍摄控制指令能够通过与相机应用和相机HAL之间连接的预设传输通道,从相机应用直接发送至相机HAL,也就是,相机HAL可以通过预设传输通道直接接收相机应用下发的3A算法的触发事件。这里的拍摄算法可以是电子设备操作系统的内核层的3A算法库中的3A算法。相机HAL获取了第一拍摄控制指令,调用第一拍摄控制指令对应的拍摄算法,控制电子设备的相机进行拍摄。
本申请第一方面提供的拍摄方法,通过在电子设备的操作系统的相机应用和相机HAL之间建立预设传输通道,在相机应用生成了3A算法的触发事件并下发给相机HAL时,相机HAL可以直接获取到3A算法的触发事件,3A算法的触发事件无需进入硬件抽象层的队列(轮转BUFFER)进行排队等待,能够使得相机HAL能够根据3A算法的触发事件及时地调用3A算法,指示相机完成拍照。加快了电子设备的相机应用和电子设备的相机之间的响应时间,提高了用户的拍照体验。
在上述第一方面的一种可能的实现中,第一应用生成拍摄指令,包括:
第一应用响应于用户点击第一应用的拍摄按键的操作,生成拍摄指令。
即在本申请的实施例中,拍摄指令可以是电子设备响应用户点击电子设备的主屏上的相机应用的图标产生的指令,生成拍摄指令时,相机应用向相机HAL下发第一拍摄控制指令,也就是,3A算法的触发事件。
在上述第一方面的一种可能的实现中,预设传输通道包括第一接口,第一接口位于软件系统的硬件抽象层,用于将从第一应用接收的第一拍摄控制指令发送给相机控制模块。
即在本申请的实施例中,这里的第一接口以是相机应用和相机HAL之间设置的传输3A算法的触发事件的接口,用于将相机应用向相机HAL下发的3A算法的触发事件直接发送给相机HAL
在上述第一方面的一种可能的实现中,预设传输通道包括第二接口,第二接口能够被相机控制模块用于监听第一应用是否生成第一拍摄控制指令,若第一应用生成第一拍摄控制指令,相机控制模块通过第二接口获取第一拍摄控制指令。
即在本申请的实施例中,这里的第二接口可以是相机应用向相机HAL下发3A算法的触发事件的监听接口,相机HAL可以通过调用监听接口,获取相机应用通过硬件抽象层下发的3A算法的触发事件。
在上述第一方面的一种可能的实现中,相机控制模块调用与第一拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄,包括:
相机控制模块从位于电子设备软件系统的内核层的拍摄算法库调用与第一拍摄控制指令对应的拍摄算法。
在上述第一方面的一种可能的实现中,拍摄算法用于调整电子设备的相机的对焦、曝光或者白平衡的状态中的至少一种。
即在本申请的实施例中,这里的拍摄算法库可以是内核层的3A算法库,3A算法库可以包括:对焦算法、曝光算法或者白平衡算法中的至少一种。
本申请的第二方面提供了一种拍摄方法,应用于电子设备,包括第二应用和相机处理模块,其中第二应用位于电子设备软件系统的应用层,相机处理模块位于软件系统的硬件抽象层;
并且拍摄方法包括:
第二应用检测到用户的拍摄操作;
相机处理模块对应拍摄操作生成拍摄指令,拍摄指令包括第二拍摄控制指令;
相机处理模块调用与第二拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄。
即在本申请的实施例中,第一应用可以是电子设备安装的相机应用,相机控制模块可以是电子设备的操作系统中的硬件抽象层的相机HAL。拍摄指令可以是相机HAL响应用户点击电子设备的主屏上的相机应用的图标产生的指令,拍摄指令用于指示电子设备的相机进行拍摄。第二拍摄控制指令可以是3A算法的触发事件。这里的拍摄算法可以是电子设备操作系统的内核层的3A算法库中的3A算法。相机HAL生成了第二拍摄控制指令后,可以直接调用第二拍摄控制指令对应的拍摄算法,控制电子设备的相机进行拍摄。
本申请第二方面提供的拍摄方法,由于相机HAL可以响应于拍摄操作生成3A算法的触发事件,因此,3A算法的触发事件也无需进入硬件抽象层的队列(轮转BUFFER)进行排队等待,相机HAL可以直接调用3A算法的触发事件对应的3A算法指示相机完成拍摄。加快了电子设备的相机应用和电子设备的相机之间的响应时间,提高了用户的拍照体验。
在上述第二方面的一种可能的实现中,拍摄操作为用户点击第二应用的拍摄按键的操作。
在上述第二方面的一种可能的实现中,相机控制模块调用与第二拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄,包括:
相机控制模块从位于电子设备软件系统的内核层的拍摄算法库调用与第二拍摄控制指令对应的拍摄算法。
在上述第二方面的一种可能的实现中,拍摄算法用于调整电子设备的相机的对焦、曝光或者白平衡的状态中的至少一种。
即在本申请的实施例中,这里的拍摄算法库可以是内核层的3A算法库,3A算法库可以包括:对焦算法、曝光算法或者白平衡算法中的至少一种。相机HAL可以根据生成的3A算法的触发事件调用对应的3A算法。
本申请的第三方面提供了一种电子设备,包括:
处理器,用于前述第一方面以及前述第二方面提供的电子设备的拍摄方法;以及
存储器,可以与处理器耦合或者解耦用于存储由处理器执行的指令。
本申请的第四方面提供了一种计算机可读存储介质,计算机可读存储介质中包含有指令,当指令被电子设备的处理器执行时使电子设备实现前述第一方面以及前述第二方面提供的电子设备的拍摄方法。
附图说明
图1a根据本申请的实施例示出了一种电子设备的相机应用与3A算法库进行交互的示意图;
图1b和图1c根据本申请的实施例示出了一种用户使用电子设备进行拍照的场景示意图;
图2a根据本申请的实施例示出了一种电子设备的相机应用与相机HAL进行交互的示意图;
图2b根据本申请的实施例示出了一种电子设备的相机应用与相机HAL进行交互的流程示意图;
图3根据本申请的实施例示出了一种电子设备的软件结构框图;
图4根据本申请的实施例示出了一种电子设备的拍摄方法的流程示意图;
图5a根据本申请的实施例示出了另一种电子设备的相机应用与相机HAL进行交互的示意图;
图5b根据本申请的实施例示出了另一种电子设备的相机应用与相机HAL进行交互的流程示意图;
图6a根据本申请的实施例示出了另一种电子设备的相机应用与相机HAL进行交互的示意图;
图6b根据本申请的实施例示出了另一种电子设备的相机应用与相机HAL进行交互的流程示意图;
图7根据本申请的实施例示出了一种电子设备的硬件结构框图。
具体实施方式
本申请的实施例包括但不限于一种电子设备及其拍摄方法和介质、介质。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
图1b和图1c示出了一种用户使用电子设备进行拍照的场景,如图1b所示,用户打开电子设备100的相机应用,将电子设备100的相机对准正在移动的拍摄人物后,用户点击相机应用的拍照按键;这时,如图1c所示,由于电子设备100的相机未能及时地完成对焦,电子设备100拍摄的照片中,拍摄人物的部分未能拍摄到。
图2a示出了一种电子设备100的相机应用与电子设备100的相机HAL进行交互的示意图,如图2a所示,电子设备100的相机应用向电子设备100的硬件抽象层下发触发事件(启动事件或者重置事件)来调用3A算法,进而调整电子设备100的相机进行拍照。电子设备100的相机应用检测到用户点击相机应用的拍照按键后,相机应用生成拍照指令,拍照指令包括触发事件(启动事件),触发事件进入硬件抽象层的队列(即,轮转BUFFER)进行排队等待;3A算法的3A状态为3A搜索,也就是,3A算法调整电子设备100的相机进行对焦、曝光或者白平衡。从相机应用发出触发事件到相机HAL接收到触发事件的时间段(即,图2a中的t(3)-t(2))也就是,HAL时延1,耗时为m,记为f(1+m)。3A算法从3A搜索到3A完成的时间段(即,图2a中的t(4)-t(3),也就是,3A算法时间(收敛时间),耗时为n,记为f(1+m+n))。3A算法从3A完成到3A锁定的时间段,也就是相机应用收到相机HAL返回的3A状态的时间段(即,图2a中的t(5)-t(4))也就是,HAL时延2,耗时为s,记为f(1+m+n+s))。在电子设备100的相机应用收到相机HAL返回的3A状态后,电子设备100的相机应用可以发出拍照请求,相机HAL返回相机拍摄的图像帧,这一时间段(即,图2a中的t(7)-t(6)-t(5))也就是,成像时间,耗时为o,记为f(1+m+n+s+o))。可以看出,在完成拍照后,相机应用还会下发触发事件(重置事件)指示完成拍照,3A算法的3A状态从3A锁定进入3A重置,等待下一次拍摄。这一时间段(即,图2a中的t(7)之后的时间段,也就是,HAL时延3,耗时为m,记为f(1+m+n+s+o+m))。这里的HAL时延1、3A算法时间和HAL时延2之和可以称为3A统计时间;3A统计时间和成像时间之和可以称为快门延迟。
下面以3A算法中的自动对焦(AF)为例,通过图2b对图2a所示的示意图进行说明,图2b示出了一种电子设备100的相机应用与电子设备100的相机HAL进行交互的流程示意图。
如图2b所示,电子设备100的相机应用与电子设备100的相机HAL进行交互的流程包括:
S201:检测到点击拍照按键的操作。
S202:启动拍照,下发触发事件,等待HAL层响应。
S203:触发事件进入轮转BUFFER排队等待。
S204:获取触发事件。
本申请实施例中,电子设备100的3A算法库的3A状态为AF搜索,也就是,3A算法在调整电子设备100的相机进行对焦、曝光或者白平衡。在电子设备100的相机应用检测到用户点击相机应用的拍照按键后,相机应用生成拍照指令,拍照指令包括自动对焦的触发事件。
相机应用通过操作系统的硬件抽象层发送拍照指令,拍照指令可以包括触发事件,这里的触发事件可以是自动对焦的触发事件,触发事件进入硬件抽象层的队列(即,轮转BUFFER)进行排队等待,在经过了HAL时延1后,硬件抽象层将队列中的自动对焦的触发事件向相机HAL转发,相机HAL接收到自动对焦的触发事件调用AF算法,进行自动对焦。这里的HAL时延1是指在自动对焦的触发事件进入硬件抽象层的队列起直至硬件抽象层的队列中排列于自动对焦的触发事件之前的事件处理完毕,硬件抽象层的相机HAL接收到自动对焦的触发事件调用AF算法,使得相机进行自动对焦的时间段。
S205:返回对焦状态。
S206:发送拍照请求。
本申请实施例中,在经过自动对焦的收敛时间后,也就是AF算法从AF搜索的状态进入AF完成的状态,相机完成自动对焦。相机应用会收到相机HAL返回的对焦状态,在经过了HAL时延2后,也就是从相机HAL返回对焦状态到相机应用接收到对焦状态的时间段,相机应用接收到了AF完成的对焦状态,相机应用再发送拍照请求,相机完成拍照,从相机接收到拍照请求到相机完成拍照的时间段可以是成像时间。
可以看出,如图2b所示,电子设备100的相机的快门延迟由HAL时延1+收敛时间+HAL时延2+成像时间构成。可以看出,收敛时间和成像时间由相机本身的性能决定,HAL时延2是相机HAL向相机应用返回对焦状态的时延;因此,若硬件抽象层的队列中正在排队的事件越多,则相机HAL接收到自动对焦的触发事件的时延越长(图2b中的虚线框内),即,HAL时延1越长,进而造成快门延迟越长。
S207:完成拍照,下发触发事件,等待HAL层响应。
S208:触发事件进入轮转BUFFER排队等待。
S209:获取触发事件。
本申请实施例中,继续参考图2b,可以看出,在完成拍照后,由于AF算法处于AF锁定的状态,相机应用还会向相机HAL下发触发事件,这里的触发事件可以是结束对焦的触发事件,使得AF算法从AF锁定进入AF重置,也就是电子设备100的相机进行重置,等待下一次拍摄。这时,结束对焦的触发事件也会进入硬件抽象层的队列进行排队等待,在经过了HAL时延3后,也就是,在硬件抽象层的队列中排列于结束对焦的触发事件之前的事件处理完毕后,硬件抽象层将队列中的结束对焦的触发事件转发给相机HAL,相机HAL接收到结束对焦的触发事件调用AF算法,结束对焦等待下一次拍摄。可以看出,这里的HAL时延3是指在结束对焦的触发事件进入硬件抽象层的队列起直至硬件抽象层的队列中排列于结束对焦的触发事件之前的事件处理完毕,硬件抽象层将队列中的结束对焦的触发事件向相机HAL转发,相机HAL接收到结束对焦的触发事件调用AF算法释放相机的时间段。可以看出,HAL时延3会产生用户进行下一次拍摄之前的时延,如果硬件抽象层的队列中正在排队的事件越多,则会导致相机进行快速连拍的响应速度变慢。
从上述关于图2a和图2b所示的实施例中的描述不难看出,在一些情况下,在电子设备的操作系统的硬件抽象层的队列中存在过多正在排队的事件时,有可能会导致相机应用发送的自动对焦的触发事件(如:自动对焦和结束对焦)无法及时到达相机HAL,使得相机HAL无法及时调用AF算法,造成较长的延迟的问题。
可以理解,图2a所示的电子设备100的相机的3A搜索、3A完成、3A锁定以及3A重置为调用3A算法后3A算法的状态,也可以理解为是,电子设备100的相机的当前状态,这里的3A算法的状态也可以称为电子设备100的相机的3A状态机。
为此,本申请实施例提供了一种电子设备的拍摄方法,以3A算法的触发事件为例,电子设备可以建立相机应用向电子设备的相机HAL发送3A算法的触发事件的传输通道,这里的传输通道可以是一种传输路径,用于专门传输相机应用通过硬件抽象层向相机HAL发送的3A算法的触发事件。上述传输通道可以建立在电子设备的操作系统的硬件抽象层,连接相机应用和相机HAL。通过上述传输通道,在相机应用生成了3A算法的触发事件并发送给硬件抽象层后,或者在相机应用向硬件抽象层发送的拍照指令中包括3A算法的触发事件时,硬件抽象层可以直接将触发事件发送给相机HAL,触发事件无需进入硬件抽象层的队列进行排队,能够使得相机HAL能够即时地根据触发事件调用3A算法并将3A算法的状态返回给相机应用,使得相机应用可以及时地完成拍照。
可以理解,这里的传输通道可以是相机应用和相机HAL之间设置的传输3A算法的触发事件的接口,用于将相机应用向相机HAL下发的3A算法的触发事件直接发送给相机HAL。
从而通过在相机应用和相机HAL之间建立发送的3A算法的触发事件的传输通道,能够减少3A算法的触发事件进入硬件抽象层的队列进行排队等待的时延,进而加快了快门延迟,也就是加快了电子设备的相机应用和电子设备的相机之间的响应时间,提高了用户的拍照体验。
在本申请的另一些实施例中,电子设备也可以建立针对电子设备的相机应用向电子设备的相机HAL下发3A算法的触发事件的监听接口,相机HAL可以通过调用监听接口,用于专门获取相机应用通过硬件抽象层下发的拍照指令中的3A算法的触发事件,上述监听接口可以建立在电子设备的操作系统的硬件抽象层,连接硬件抽象层和3A算法库,通过上述监听接口,在相机HAL监听到相机应用生成了3A算法的触发事件并发送给硬件抽象层后,相机HAL可以直接获取触发事件,而无需使触发事件进入硬件抽象层的队列进行排队直至排列于3A算法的触发事件之前的事件处理完毕。
可以理解,上述传输通道以及监听接口也可以适用于其他的3A算法的触发事件,例如,在完成拍摄后,相机应用生成的结束对焦的触发事件。
本申请实施例的拍摄方法除了适用于相机的自动对焦的算法,也可以适用于电子设备的相机应用向硬件抽象层发送的自动曝光(Auto Exposure,AE)以及自动白平衡(AutoWhite Balance,AWB)的触发事件。为了便于描述,下文将自动对焦,自动曝光以及自动白平衡可以简称为3A。
可以理解,本申请实施例中的电子设备可以是任意一种向用户提供拍摄功能的终端设备,包括但不限于:手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternet device,MID)、可穿戴设备(例如包括:智能手表、智能手环、计步器等)、个人数字助理、便携式媒体播放器、车载设备、导航设备、视频游戏设备、机顶盒、虚拟现实和/或增强现实设备、物联网设备、工业控制设备、流媒体客户端设备、电子书、阅读设备、以及其他设备。
图3是本申请一些实施例公开的电子设备100的软件结构框图。
如图3所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将操作系统分为四层,从上至下分别为应用程序层,应用程序框架层,系统运行库层,硬件抽象层(hardware abstract layer,HAL)以及内核层。其中:
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机应用101,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序,还可以包括其他未示出的应用程序包。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器可用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器可用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统可包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
HAL可以是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。
如图3所示,HAL可以包括相机HAL102,相机HAL102可以是设置在硬件抽象层的虚拟软件模块,相机HA102L用于在相机驱动与相机和位于应用程序框架层中的相机服务建立连接。本申请实施例中,相机HAL102和相机应用之间可以设置一个专门用于接收相机应用101发送的3A算法的触发事件的传输通道,相机HAL102可以通过上述传输通道直接获取3A算法的触发事件,调用3A算法库中的3A算法,并向相机应用101返回3A算法的状态。使得3A算法的触发事件无需进入硬件抽象层的队列进行排队;对于电子设备的硬件,也就是电子设备的相机来说,相机也可以立即响应3A算法,。
内核层是硬件和软件之间的层。内核层可以包括相机驱动,相机驱动用于控制电子设备的相机,具体实现可以参见下述本申请实施例的拍摄方法中相关描述,这里不再赘述。
下面基于图3所示的电子设备100的软件结构,以电子设备100为手机100为例,通过图4对本申请的电子设备100的拍摄方法进行详细说明。
具体地,本申请图4中的拍摄方法可以通过手机100的处理器执行相关程序来实现。在图4中,以3A算法为AF算法(自动对焦算法)为例进行说明。根据本申请的一个具体实施方式提供的用于电子设备的拍摄方法包括如下所示的步骤。
S401:启动相机应用101。
本申请实施例中,手机100可以响应用户点击手机100的主屏上的相机应用101的图标产生的指令后,手机100的应用启动服务,如:相机服务,获取并识别该指令,以启动相机应用101。
S402:发送拍照指令,下发自动对焦的触发事件。
本申请实施例中,手机100的用户界面显示相机应用101的界面,用户将手机100对准拍摄物体后,可以点击相机应用的界面中的拍照按键,响应于该操作,手机100的相机应用101生成拍照指令,并下发给手机100的硬件抽象层的相机HAL102,相机HAL102控制相机开始拍摄。可以理解,相机应用101生成的拍照指令可以包括自动对焦的触发事件。
S403:获取自动对焦的触发事件。
本申请实施例中,如果确定了相机应用101下发的拍照指令中包含自动对焦的触发事件,相机HAL102可以通过硬件抽象层的设置的专门用于接收相机应用101发送的3A算法的触发事件的传输通道,获取自动对焦的触发事件。例如,自动对焦的触发事件可以是AF_TRIGGER_START,用于相机HAL102调用3A算法库104中的自动对焦算法。相机HAL102可以通过传输通道直接接收相机应用101下发的自动对焦的触发事件,使得自动对焦的触发事件无需进入硬件抽象层的队列,无需等待队列中排列于自动对焦的触发事件之前的其他触发事件处理完毕后,再接收自动对焦的触发事件。
可以理解,本另一本申请实施例中,手机100还可以预先设置存储有3A算法的触发事件的列表,将需要直接发送给相机HAL102的3A算法的触发事件保存在列表中;在手机100的相机应用101向硬件抽象层接下发3A算法的触发事件,如:相机应用101下发拍照指令或者完成拍照指令时,同时下发3A算法的触发事件,通过查询上述列表确定是否通过传输通过直接向相机HAL102下发3A算法的触发事件。
在另一本申请实施例中,也可以通过硬件抽象层的相机HAL102中的设置的用于监听相机103发送对焦的触发事件的监听接口,在监听到相机应用101生成并发送给硬件抽象层的拍照指令中包含自动对焦的触发事件时,硬件抽象层可以直接将触发事件发送给相机103,使得自动对焦的触发事件无需进入硬件抽象层的队列,直至排列于自动对焦的触发事件之前的事件处理完毕。
S404:调用自动对焦算法。
S405:调整相机103,进行自动对焦。
本申请实施例中,对于步骤S403中的自动对焦的触发事件(即,AF_TRIGGER_START),相机HAL102可以调用3A算法库104中的自动对焦算法,调整相机103进行对焦,也就是相机103对拍摄人物进行对焦。
本申请实施例中,相机HAL102还可以依次处理拍照指令中的其他事件进而调整手机100的相机103,使得相机处理拍照指令并完成拍摄。例如:相机HAL102可以调整相机103的色彩,饱和度以及亮度等。
S406:返回对焦状态。
本申请实施例中,在相机HAL102调用自动对焦算法后,相机HAL102可以向相机应用101返回对焦状态,提示相机应用101可以完成拍摄,这里的对焦状态也可以由相机HAL通过步骤S403中的传输通道返回给相机应用101。例如:这里的对焦状态可以是对焦锁定(AF锁定),也就是相机103的镜头已经完成对拍摄物体的对焦。
S407:发送拍照请求。
本申请实施例中,这里的拍照请求可以是相机应用101在接收到相机的对焦状态后,自动生成的指令请求,通过将拍照请求发送给相机HAL102,相机HAL102可以指示相机103完成对拍摄物体的成像,可以理解,拍照请求无需用户通过再次点击相机应用101的界面中的拍照按键来生成。
S408:返回拍摄的图像。
本申请实施例中,在相机103完成对拍摄物体的对焦后,相机103响应于相机应用101发送的拍照请求,完成对拍摄物体的成像,生成拍摄物体的图像。
在相机103完成拍摄后,相机HAL102可以向相机应用101返回已拍摄的图像,相机应用101的界面中可以显示已拍摄的图像。用户可以对图像进行预览,编辑、保存或者删除等操作。
S409:发送完成拍照指令,下发结束对焦的触发事件。
本申请实施例中,这里的完成拍照指令也可以是相机应用101在接收到相机103拍摄的图像后,自动生成的指令,而无需用户通过再次点击相机应用101的界面中的拍照按键来生成。在相机应用101收到相机HAL102返回的图像后,相机应用101可以向相机HAL102下发完成拍照指令,完成拍照指令可以包括结束对焦的触发事件。结束对焦的触发事件,用于相机HAL102调用自动对焦算法,更改对焦状态,使得对焦状态从对焦锁定(AF锁定)变更为对焦重置(AF重置),进而释放相机103,使得相机103回到对焦重置(AF重置)的对焦状态。这里的对焦重置可以用于解除相机103的镜头的对焦锁定,使得相机103继续下一次拍摄。
S410:获取结束对焦的触发事件。
本申请实施例中,如果确定了相机应用101生成的完成拍照指令中包含结束对焦的触发事件或者相机应用101下发了束对焦的触发事件,可以将结束对焦的触发事件通过硬件抽象层的3A算法的触发事件的传输通道下发给相机HAL102,相机HAL102根据结束对焦的触发事件,相机HAL102调用3A算法库104中的结束对焦算法。例如,结束对焦的触发事件可以是AF_TRIGGER_CANCEL,用于将对焦状态从对焦锁定(AF锁定)变更为对焦重置(AF重置)。
可以理解,这里的结束对焦的触发事件也可以保存在预先设置的3A算法的触发事件的列表中。
S411:调用自动对焦算法。
S412:调整相机103,结束对焦。
本申请实施例中,步骤S411可以采用与步骤S404相类似的方式,HAL102通过硬件抽象层的中的设置的用于接收相机应用101下发的3A算法的触发事件的传输通道,接收相机应用101下发的结束对焦的触发事件,使得结束对焦的触发事件无需进入硬件抽象层的队列。
本申请实施例中,对于步骤S410中的结束对焦的触发事件(即,AF_TRIGGER_CANCEL),相机HAL102可以调用3A算法库104中的结束对焦算法,将对焦状态重置。也就是说,在相机103完成拍摄后,对焦状态处于对焦锁定(AF锁定),相机HAL102通过调用3A算法库104中的结束对焦算法,使得对焦状态从对焦锁定(AF锁定)变更为对焦重置(AF重置),也就是,使得相机103变为对焦重置,等待下一次拍照指令。
可以看出,本申请实施例的图4描述的拍摄方法,通过在相机应用101和相机HAL102之间建立发送的3A算法的触发事件的传输通道,能够减少3A算法的触发事件进入硬件抽象层的队列进行排队等待的时延,进而加快了快门延迟。
参考图5a,图5a示出了本申请实施例提供的一种手机100的相机应用与手机100的相机HAL进行交互的示意图,如图5a所示,手机100的相机应用向手机100的硬件抽象层下发触发事件(启动事件或者重置事件)来调用3A算法,进而调整手机100的相机进行拍照。手机100的相机应用检测到用户点击相机应用的拍照按键后,相机应用生成拍照指令,拍照指令包括触发事件(启动事件),触发事件可以直接下发至相机HAL,3A算法的3A状态为3A搜索,也就是,3A算法调整手机100的相机进行对焦、曝光或者白平衡。从相机应用发出触发事件到相机HAL接收到触发事件的时间段(即,图5a中的t(3)-t(2))也就是,HAL时延1,耗时为0,记为f(1)。3A算法从3A搜索到3A完成的时间段(即,图5a中的t(4)-t(3),也就是,3A算法时间(收敛时间),耗时为n,记为f(1+n))。3A算法从3A完成到3A锁定的时间段,也就是相机应用收到相机HAL返回的3A状态的时间段,这里的3A状态也可以通过相机应用与相机HAL之间的传输通道进行传输(即,图5a中的t(5)-t(4))也就是,HAL时延2,耗时为0,记为f(1+n))。在手机100的相机应用收到相机HAL返回的3A状态后,手机100的相机应用可以发出拍照请求,相机HAL返回相机拍摄的图像帧,这一时间段(即,图5a中的t(7)-t(6)-t(5))也就是,成像时间,耗时为o,记为f(1+n+o))。在完成拍照后,相机应用还会下发触发事件(重置事件)指示相机完成拍照,3A算法的3A状态从3A锁定进入3A重置,等待下一次拍摄。可以看出,触发事件(重置事件)也可以直接下发至相机HAL,这一时间段(即,图5a中的t(7)之后的时间段,也就是,HAL时延3,耗时为0,记为f(1+n+o))。
可以看出,如图5a所示,手机100的相机的快门延迟中的HAL时延1为0,也就是,快门延迟可以由3A算法时间+HAL时延2+成像时间构成,相较于图2a,快门延迟省略了HAL时延1,加快了相机的快门延迟。
下面以3A算法中的自动对焦(AF)为例,通过图5b对图5a所示的示意图进行说明,图5b示出了一种手机100的相机应用与手机100的相机HAL进行交互的流程示意图。
如图5b所示,手机100的相机应用与手机100的相机HAL进行交互的流程包括:
S501:检测到点击拍照按键的操作。
S502:启动拍照,下发触发事件,等待HAL层响应。
S503:获取触发事件。
本申请实施例中,手机100的的3A算法库的3A状态为AF搜索,在确定相机应用通过操作系统的硬件抽象层向相机HAL下发触发事件后,这里的触发事件可以是自动对焦的触发事件,硬件抽象层的相机HAL可以直接获取触发事件,也就是,通过相机应用与相机HAL之间的传输通道直接获取触发事件,进而,相机HAL根据自动对焦的触发事件调用AF算法,进行自动对焦。可以看出,这里省略了如图5a中所示的HAL时延1。
S504:返回对焦状态。
S505:发送拍照请求。
S506:完成拍照,下发触发事件,等待HAL层响应。
S507:获取触发事件。
本申请实施例中,在经过自动对焦的收敛时间后,也就是AF算法从AF搜索的状态进入AF完成的状态,相机完成自动对焦。相机应用会收到相机HAL返回的对焦状态。相机应用接收到了AF完成的对焦状态后,相机应用发送拍照请求,相机完成拍照。可以看出,如图5b所示,手机100的相机的快门延迟由收敛时间+成像时间构成,相较于图2b,快门延迟省略了HAL时延1和HAL时延2,加快了相机的快门延迟。
本申请实施例中,继续参考图5b,可以看出,在完成拍照后,由于AF算法处于AF锁定的状态,相机应用还会通过操作系统的硬件抽象层向相机发送触发事件,这里的触发事件可以是结束对焦的触发事件,使得AF算法从AF锁定进入AF重置,等待下一次拍摄。这时,相机HAL接收到结束对焦的触发事件可以直接调用AF算法,结束对焦等待下一次拍摄。可以看出,图5b还省略了图2b中所示的HAL时延3。也就是,加快了相机进行快速连拍的响应速度。
下面基于图3所示的手机100的软件结构,通过图6a和图6b对另一本申请的手机100的拍摄方法进行详细说明。
图6a示出了一种手机的相机应用与手机的相机HAL进行交互的示意图,如图6a所示,手机100的相机应用检测到用户点击相机应用的拍照按键后,相机HAL可以响应点击操作,相生成拍照指令。拍照指令包括触发事件(启动事件),触发事件可以直接调用3A算法,手机100的相机的3A状态为3A搜索。从相机HAL发出触发事件到相机HAL调用3A算法的时间段(即,图6a中的t(3)-t(2))也就是,HAL时延1,耗时为1,也就是3A算法库获取触发事件仅需要一帧的时延,记为f(1+1)。从3A搜索到3A搜索完成的时间段(即,图6a中的t(4)-t(3),也就是,3A算法时间(收敛时间),耗时为n,记为f(1+1+n))。从3A完成到3A锁定的时间段,也就是相机HAL响应于3A状态的改变的时间段(即,图6a中的t(5)-t(4))也就是,HAL时延2,耗时为0,记为f(1+1+n))。在手机100的相机HAL响应于3A状态的改变后,相机HAL可以发出拍照请求,获取相机拍摄的图像帧,这一时间段(即,图6a中的t(7)-t(6)-t(5))也就是,成像时间,耗时为o,记为f(1+1+n+o))。可以看出,在完成拍照后,相机HAL还会发送触发事件(重置事件)指示相机完成拍照,手机100的相机的3A状态从3A锁定进入3A重置,等待下一次拍摄。这一时间段(即,图6a中的t(7)之后的时间段,也就是,HAL时延3,耗时为1,也就是3A算法库获取触发事件仅需要一帧的时延,记为f(1+1+n+o+1))。可以看出,如图6a所示,手机100的相机的快门延迟虽然还是由HAL时延1+3A算法时间+HAL时延2+成像时间构成,但是,调用3A算法的触发事件均在相机HAL中生成以及处理,因此,HAL时延1、HAL时延2以及HAL时延3的耗时很短,因此缩短了整体的快门延迟,加快了相机的快门延迟。
下面以3A算法中的自动对焦(AF)为例,通过图6b对图6a所示的示意图进行说明,图6b示出了一种电子设备100的相机应用与电子设备100的相机HAL进行交互的流程示意图。
如图6b所示,电子设备100的相机应用与电子设备100的相机HAL进行交互的流程包括:
S601:检测到点击拍照按键的操作。
S602:启动拍照。
S603:生成触发事件,等待AF状态。
S604:获取触发事件。
本申请实施例中,,在启动手机100的相机应用后,手机100的相机处于AF搜索的状态,相机HAL检测到用户点击相机应用的拍照按键后,启动拍摄生成自动对焦的触发事件,在经过了HAL时延1后,向相机转发触发事件。
S605:返回对焦状态。
S606:发送拍照请求。
本申请实施例中,相机进行自动对焦,在经过自动对焦的收敛时间后,也就是相机从自动对焦的状态进入自动对焦完成的状态,相机完成,相机再直接向相机HAL返回对焦状态,在经过了HAL时延2后,相机HAL接收到了AF完成的对焦状态后,相机HAL发送拍照请求,相机完成拍照。可以看出,如图6b所示,手机的相机的快门延迟虽然还是由HAL时延1+收敛时间+HAL时延2+成像时间构成,但自动对焦的触发事件是由相机HAL生成的,因此自动对焦的触发事件无需进入硬件抽象层的队列进行排队,而是由相机HAL直接发送给相机,因此,相较于图2b中的HAL时延1,图6b中的HAL时延1较短,使得图6b中的手机的相机的快门延迟较短。
S607:完成拍照。
S608:生成触发事件,等待AF状态。
S609:获取触发事件。
本申请实施例中,同理,继续参考图6b,在完成拍照后,相机HAL还可以直接生成结束对焦的触发事件,结束对焦的触发事件也无需进入硬件抽象层的队列进行排队等待,在经过了HAL时延3后,相机收到结束对焦的触发事件,相机结束对焦等待下一次拍摄。可以看出,相较于图2b中的HAL时延3,图6b中的HAL时延3也较短,因此可以减少用户进行下一次拍摄之前的时延,使得相机进行快速连拍的响应速度变快。
可以看出,通过图6a和图6b提供的拍摄方法,相机HAL可以响应于拍摄操作生成3A算法的触发事件,并调用3A算法的触发事件对应的3A算法指示相机完成拍摄,由于3A算法的触发事件由硬件抽象层的相机HAL直接生成,因此,3A算法的触发事件也无需进入硬件抽象层的队列(轮转BUFFER)进行排队等待,加快了电子设备的相机应用和电子设备的相机之间的响应时间,提高了用户的拍照体验。
图7示出了根据本申请的实施例的电子设备100的结构示意图,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digitalsignal processor,DSP),基带处理器(BP),和/或神经网络处理器(neural-networkprocessing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在本申请的实施例中,电子设备100可以通过处理器110执行拍摄方法。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193,也称为电子设备100的相机,用于捕获静态图像或视频。在本申请实施例中,电子设备100的相机应用可以向摄像头193发送拍照指令,摄像头193可以响应拍照指令包含的对焦操作的触发事件,调整摄像头193的对焦状态。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。
应当理解的是,虽然在本文中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了进行区分,而不能理解为指示或暗示相对重要性。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加操作。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
说明书中对“一个实施例”,“实施例”,“说明性实施例”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A)、(B)或(A和B)”。
如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括:用于运行一个或多个软件或固件程序的存储器(共享、专用或组),专用集成电路(ASIC),电子电路和/或处理器(共享、专用或组),组合逻辑电路,和/或提供所述功能的其他合适组件。
在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征,或者可以将这些特征与其他特征进行组合。
上面结合附图对本申请的实施例做了详细说明,但本申请技术方案的使用不仅仅局限于本专利实施例中提及的各种应用,各种结构和变型都可以参考本申请技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本申请宗旨的前提下做出的各种变化,均应归属于本申请专利涵盖范围。
Claims (12)
1.一种拍摄方法,应用于电子设备,其特征在于,所述电子设备包括第一应用和相机控制模块,其中所述第一应用位于所述电子设备软件系统的应用层,所述相机控制模块位于所述软件系统的硬件抽象层;
并且所述方法包括:
所述第一应用生成拍摄指令,所述拍摄指令包括第一拍摄控制指令;
所述相机控制模块通过预设传输通道从所述第一应用获取到所述第一拍摄控制指令,其中所述预设传输通道用于连接所述相机控制模块和所述第一应用;
所述相机控制模块调用与所述第一拍摄控制指令对应的拍摄算法,控制所述电子设备的相机完成拍摄。
2.根据权利要求1所述的方法,其特征在于,所述第一应用生成拍摄指令,包括:
所述第一应用响应于用户点击所述第一应用的拍摄按键的操作,生成所述拍摄指令。
3.根据权利要求1所述的方法,其特征在于,所述预设传输通道包括第一接口,所述第一接口位于所述软件系统的硬件抽象层,用于将从所述第一应用接收的所述第一拍摄控制指令发送给所述相机控制模块。
4.根据权利要求1所述的方法,其特征在于,所述预设传输通道包括第二接口,所述第二接口能够被所述相机控制模块用于监听所述第一应用是否生成所述第一拍摄控制指令,若所述第一应用生成所述第一拍摄控制指令,所述相机控制模块通过所述第二接口获取所述第一拍摄控制指令。
5.根据权利要求1所述的方法,其特征在于,所述相机控制模块调用与所述第一拍摄控制指令对应的拍摄算法,控制所述电子设备的相机完成拍摄,包括:
所述相机控制模块从位于所述电子设备软件系统的内核层的拍摄算法库调用与所述第一拍摄控制指令对应的拍摄算法。
6.根据权利要求5所述的方法,其特征在于,所述拍摄算法用于调整所述电子设备的相机的对焦、曝光或者白平衡的状态中的至少一种。
7.一种拍摄方法,应用于电子设备,其特征在于,包括第二应用和相机处理模块,其中所述第二应用位于所述电子设备软件系统的应用层,所述相机处理模块位于所述软件系统的硬件抽象层;
并且所述拍摄方法包括:
所述第二应用检测到用户的拍摄操作;
所述相机处理模块对应所述拍摄操作生成拍摄指令,所述拍摄指令包括第二拍摄控制指令;
所述相机处理模块调用与所述第二拍摄控制指令对应的拍摄算法,控制所述电子设备的相机完成拍摄。
8.根据权利要求7所述的方法,其特征在于,所述拍摄操作为所述用户点击所述第二应用的拍摄按键的操作。
9.根据权利要求7所述的方法,其特征在于,所述相机控制模块调用与所述第二拍摄控制指令对应的拍摄算法,控制所述电子设备的相机完成拍摄,包括:
所述相机控制模块从位于所述电子设备软件系统的内核层的拍摄算法库调用与所述第二拍摄控制指令对应的拍摄算法。
10.根据权利要求7所述的方法,其特征在于,所述拍摄算法用于调整所述电子设备的相机的对焦、曝光或者白平衡的状态中的至少一种。
11.一种电子设备,其特征在于,包括:
处理器,用于执行权利要求1至6或者权利要求7至10中任一项所述拍摄方法;以及
存储器,可以与处理器耦合或者解耦用于存储由所述处理器执行的指令。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包含有指令,当所述指令被电子设备的处理器执行时使电子设备实现权利要求1至6或者权利要求7至10中任一项所述拍摄方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210178867.0A CN116708988A (zh) | 2022-02-25 | 2022-02-25 | 电子设备及其拍摄方法、介质 |
PCT/CN2023/070721 WO2023160269A1 (zh) | 2022-02-25 | 2023-01-05 | 电子设备及其拍摄方法、介质 |
EP23731075.0A EP4258655A1 (en) | 2022-02-25 | 2023-01-05 | Electronic device and photographing method thereof, and medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210178867.0A CN116708988A (zh) | 2022-02-25 | 2022-02-25 | 电子设备及其拍摄方法、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116708988A true CN116708988A (zh) | 2023-09-05 |
Family
ID=87764696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210178867.0A Pending CN116708988A (zh) | 2022-02-25 | 2022-02-25 | 电子设备及其拍摄方法、介质 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4258655A1 (zh) |
CN (1) | CN116708988A (zh) |
WO (1) | WO2023160269A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484181A (zh) * | 2014-12-23 | 2015-04-01 | 北京元心科技有限公司 | 在glibc环境下控制安卓相机的方法、装置及移动设备 |
CN105338249A (zh) * | 2015-11-24 | 2016-02-17 | 努比亚技术有限公司 | 基于独立相机系统进行拍摄方法及移动终端 |
WO2019056242A1 (zh) * | 2017-09-21 | 2019-03-28 | 深圳传音通讯有限公司 | 一种智能终端的相机拍摄参数设置方法、设置装置及智能终端 |
CN110933275A (zh) * | 2019-12-09 | 2020-03-27 | Oppo广东移动通信有限公司 | 拍照方法及相关设备 |
CN111988526A (zh) * | 2020-08-27 | 2020-11-24 | Oppo(重庆)智能科技有限公司 | 移动终端及图像数据处理方法 |
CN113497879A (zh) * | 2020-03-18 | 2021-10-12 | Oppo广东移动通信有限公司 | 一种拍照补光方法、装置、终端及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113727035B (zh) * | 2021-10-15 | 2023-05-12 | Oppo广东移动通信有限公司 | 图像处理方法、系统、电子设备及存储介质 |
-
2022
- 2022-02-25 CN CN202210178867.0A patent/CN116708988A/zh active Pending
-
2023
- 2023-01-05 WO PCT/CN2023/070721 patent/WO2023160269A1/zh unknown
- 2023-01-05 EP EP23731075.0A patent/EP4258655A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484181A (zh) * | 2014-12-23 | 2015-04-01 | 北京元心科技有限公司 | 在glibc环境下控制安卓相机的方法、装置及移动设备 |
CN105338249A (zh) * | 2015-11-24 | 2016-02-17 | 努比亚技术有限公司 | 基于独立相机系统进行拍摄方法及移动终端 |
WO2019056242A1 (zh) * | 2017-09-21 | 2019-03-28 | 深圳传音通讯有限公司 | 一种智能终端的相机拍摄参数设置方法、设置装置及智能终端 |
CN110933275A (zh) * | 2019-12-09 | 2020-03-27 | Oppo广东移动通信有限公司 | 拍照方法及相关设备 |
CN113497879A (zh) * | 2020-03-18 | 2021-10-12 | Oppo广东移动通信有限公司 | 一种拍照补光方法、装置、终端及存储介质 |
CN111988526A (zh) * | 2020-08-27 | 2020-11-24 | Oppo(重庆)智能科技有限公司 | 移动终端及图像数据处理方法 |
Non-Patent Citations (1)
Title |
---|
CSDN: "Camera 框架", Retrieved from the Internet <URL:https://blog.csdn.net/jakezhang1990/article/details/119636976?spm=1001.2014.3001.5502> * |
Also Published As
Publication number | Publication date |
---|---|
EP4258655A1 (en) | 2023-10-11 |
WO2023160269A1 (zh) | 2023-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021147482A1 (zh) | 一种长焦拍摄的方法及电子设备 | |
CN111510482B (zh) | 失败网络请求的确定方法、装置及计算机存储介质 | |
WO2022143883A1 (zh) | 一种拍摄方法、系统及电子设备 | |
CN114697527B (zh) | 一种拍摄方法、系统及电子设备 | |
CN112860145B (zh) | 一种应用的控制方法与电子设备 | |
CN110225048B (zh) | 数据传输方法、装置、第一终端及存储介质 | |
CN115967851A (zh) | 快速拍照方法、电子设备及计算机可读存储介质 | |
CN110673944A (zh) | 执行任务的方法和装置 | |
WO2023160230A1 (zh) | 一种拍摄方法及相关设备 | |
WO2022247446A1 (zh) | 一种性能优化方法以及相关设备 | |
CN116708988A (zh) | 电子设备及其拍摄方法、介质 | |
CN111914985A (zh) | 深度学习网络模型的配置方法、装置及存储介质 | |
CN116723382B (zh) | 一种拍摄方法及相关设备 | |
CN113542711A (zh) | 一种图像显示方法和终端 | |
CN113179362B (zh) | 电子设备及其图像显示方法 | |
CN116661584B (zh) | 一种资源调度方法及相关设备 | |
CN111988530B (zh) | 移动终端及其拍照方法 | |
CN117135268B (zh) | 拍摄的方法和电子设备、芯片、存储介质 | |
CN116055863B (zh) | 一种相机的光学图像稳定装置的控制方法及电子设备 | |
US20240036891A1 (en) | Sub-application running method and apparatus, electronic device, program product, and storage medium | |
CN117692789A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN114125197A (zh) | 移动终端及其拍照方法 | |
CN117692768A (zh) | 图像处理方法、装置和存储介质 | |
CN117135268A (zh) | 拍摄的方法和电子设备 | |
CN117692753A (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 |