本技术涉及计算机系统领域。尤其涉及一种电子设备及其拍摄方法、介质。
背景技术:
1、isp(image signal processor,图像处理),用于控制电子设备的图像传感器(如:相机)以及对图像传感器输出的信号进行处理。isp可以包括3a算法库,也就是,自动对焦(autofocus,af)、自动曝光(auto exposure,ae)以及自动白平衡(auto white balance,awb)。3a算法库用于调节图像传感器的曝光时间、控制对焦以及旋转光圈等。
2、在现有技术中,电子设备的相机应用是通过操作系统的硬件抽象层(hardwareabstraction layer,hal)与电子设备的3a算法库进行交互。如图1a所示,以3a算法中的自动对焦算法(af算法)为例,相机应用101通过操作系统的硬件抽象层向电子设备的相机hal102下发自动对焦的触发事件(trigger event),触发事件进入硬件抽象层的队列103进行排队(本技术实施例中的队列也可以称为轮转buffer)。也就是说,自动对焦的触发事件需要等待队列中的其他事件处理完毕后,硬件抽象层将自动对焦的触发事件转发给相机hal102,在相机hal102获取了触发事件并调用3a算法库中的自动对焦算法后,相机hal102向相机应用101返回对焦状态。可以看出,在硬件抽象层的队列103中存在较多事件正在排队的情况下,会造成硬件抽象层转发触发事件的时延较长,导致了从用户按下相机应用的拍照按键到相机开始曝光这一过程的时延较长(shutter lag,快门延迟),因此,若用户需要使用电子设备进行抓拍或者快速连拍,则会造成电子设备的相机的响应速度无法满足用户的拍照需求。
技术实现思路
1、本技术的目的在于提供一种电子设备及其拍摄方法、介质。
2、本技术的第一方面提供了一种拍摄方法,应用于电子设备,电子设备包括第一应用和相机控制模块,其中第一应用位于电子设备软件系统的应用层,相机控制模块位于软件系统的硬件抽象层;
3、并且方法包括:
4、第一应用生成拍摄指令,拍摄指令包括第一拍摄控制指令;
5、相机控制模块通过预设传输通道从第一应用获取到第一拍摄控制指令,其中预设传输通道用于连接相机控制模块和第一应用;
6、相机控制模块调用与第一拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄。
7、即在本技术的实施例中,第一应用可以是电子设备安装的相机应用,相机控制模块可以是电子设备的操作系统中的硬件抽象层的相机hal。拍摄指令可以是相机应用响应用户点击电子设备的主屏上的相机应用的图标产生的指令,拍摄指令用于指示电子设备的相机进行拍摄。第一拍摄控制指令可以是3a算法的触发事件,第一拍摄控制指令能够通过与相机应用和相机hal之间连接的预设传输通道,从相机应用直接发送至相机hal,也就是,相机hal可以通过预设传输通道直接接收相机应用下发的3a算法的触发事件。这里的拍摄算法可以是电子设备操作系统的内核层的3a算法库中的3a算法。相机hal获取了第一拍摄控制指令,调用第一拍摄控制指令对应的拍摄算法,控制电子设备的相机进行拍摄。
8、本技术第一方面提供的拍摄方法,通过在电子设备的操作系统的相机应用和相机hal之间建立预设传输通道,在相机应用生成了3a算法的触发事件并下发给相机hal时,相机hal可以直接获取到3a算法的触发事件,3a算法的触发事件无需进入硬件抽象层的队列(轮转buffer)进行排队等待,能够使得相机hal能够根据3a算法的触发事件及时地调用3a算法,指示相机完成拍照。加快了电子设备的相机应用和电子设备的相机之间的响应时间,提高了用户的拍照体验。
9、在上述第一方面的一种可能的实现中,第一应用生成拍摄指令,包括:
10、第一应用响应于用户点击第一应用的拍摄按键的操作,生成拍摄指令。
11、即在本技术的实施例中,拍摄指令可以是电子设备响应用户点击电子设备的主屏上的相机应用的图标产生的指令,生成拍摄指令时,相机应用向相机hal下发第一拍摄控制指令,也就是,3a算法的触发事件。
12、在上述第一方面的一种可能的实现中,预设传输通道包括第一接口,第一接口位于软件系统的硬件抽象层,用于将从第一应用接收的第一拍摄控制指令发送给相机控制模块。
13、即在本技术的实施例中,这里的第一接口以是相机应用和相机hal之间设置的传输3a算法的触发事件的接口,用于将相机应用向相机hal下发的3a算法的触发事件直接发送给相机hal
14、在上述第一方面的一种可能的实现中,预设传输通道包括第二接口,第二接口能够被相机控制模块用于监听第一应用是否生成第一拍摄控制指令,若第一应用生成第一拍摄控制指令,相机控制模块通过第二接口获取第一拍摄控制指令。
15、即在本技术的实施例中,这里的第二接口可以是相机应用向相机hal下发3a算法的触发事件的监听接口,相机hal可以通过调用监听接口,获取相机应用通过硬件抽象层下发的3a算法的触发事件。
16、在上述第一方面的一种可能的实现中,相机控制模块调用与第一拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄,包括:
17、相机控制模块从位于电子设备软件系统的内核层的拍摄算法库调用与第一拍摄控制指令对应的拍摄算法。
18、在上述第一方面的一种可能的实现中,拍摄算法用于调整电子设备的相机的对焦、曝光或者白平衡的状态中的至少一种。
19、即在本技术的实施例中,这里的拍摄算法库可以是内核层的3a算法库,3a算法库可以包括:对焦算法、曝光算法或者白平衡算法中的至少一种。
20、本技术的第二方面提供了一种拍摄方法,应用于电子设备,包括第二应用和相机处理模块,其中第二应用位于电子设备软件系统的应用层,相机处理模块位于软件系统的硬件抽象层;
21、并且拍摄方法包括:
22、第二应用检测到用户的拍摄操作;
23、相机处理模块对应拍摄操作生成拍摄指令,拍摄指令包括第二拍摄控制指令;
24、相机处理模块调用与第二拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄。
25、即在本技术的实施例中,第一应用可以是电子设备安装的相机应用,相机控制模块可以是电子设备的操作系统中的硬件抽象层的相机hal。拍摄指令可以是相机hal响应用户点击电子设备的主屏上的相机应用的图标产生的指令,拍摄指令用于指示电子设备的相机进行拍摄。第二拍摄控制指令可以是3a算法的触发事件。这里的拍摄算法可以是电子设备操作系统的内核层的3a算法库中的3a算法。相机hal生成了第二拍摄控制指令后,可以直接调用第二拍摄控制指令对应的拍摄算法,控制电子设备的相机进行拍摄。
26、本技术第二方面提供的拍摄方法,由于相机hal可以响应于拍摄操作生成3a算法的触发事件,因此,3a算法的触发事件也无需进入硬件抽象层的队列(轮转buffer)进行排队等待,相机hal可以直接调用3a算法的触发事件对应的3a算法指示相机完成拍摄。加快了电子设备的相机应用和电子设备的相机之间的响应时间,提高了用户的拍照体验。
27、在上述第二方面的一种可能的实现中,拍摄操作为用户点击第二应用的拍摄按键的操作。
28、在上述第二方面的一种可能的实现中,相机控制模块调用与第二拍摄控制指令对应的拍摄算法,控制电子设备的相机完成拍摄,包括:
29、相机控制模块从位于电子设备软件系统的内核层的拍摄算法库调用与第二拍摄控制指令对应的拍摄算法。
30、在上述第二方面的一种可能的实现中,拍摄算法用于调整电子设备的相机的对焦、曝光或者白平衡的状态中的至少一种。
31、即在本技术的实施例中,这里的拍摄算法库可以是内核层的3a算法库,3a算法库可以包括:对焦算法、曝光算法或者白平衡算法中的至少一种。相机hal可以根据生成的3a算法的触发事件调用对应的3a算法。
32、本技术的第三方面提供了一种电子设备,包括:
33、处理器,用于前述第一方面以及前述第二方面提供的电子设备的拍摄方法;以及
34、存储器,可以与处理器耦合或者解耦用于存储由处理器执行的指令。
35、本技术的第四方面提供了一种计算机可读存储介质,计算机可读存储介质中包含有指令,当指令被电子设备的处理器执行时使电子设备实现前述第一方面以及前述第二方面提供的电子设备的拍摄方法。