一种摄像头的调用方法、电子设备和摄像头与流程

文档序号:28268162发布日期:2021-12-31 19:06阅读:238来源:国知局
一种摄像头的调用方法、电子设备和摄像头与流程

1.本技术涉及电子设备控制领域,尤其涉及一种摄像头的调用方法、电子设备和摄像头。


背景技术:

2.电子设备的摄像头可被另一电子设备远程调用,并实现相应功能。例如,在移动设备和大屏都安装有远程看家应用后,大屏的摄像头可被移动设备通过远程看家应用远程调用,实现远程看家功能。然而,在上述远程调用的过程中,电子设备的摄像头只能被一个应用独占调用,若此时另一应用要调用该摄像头,则只有在当前应用退出后,所述另一应用才能调用该摄像头。因此,如何实现多个应用对摄像头的调用,成为我们的需求。


技术实现要素:

3.为了解决上述技术问题,本技术提出了一种摄像头的调用方法、电子设备和摄像头。在该方法中,在远程调用的过程中,电子设备的摄像头能够被至少两个应用调用,甚至该摄像头能够同时满足至少两个应用的调用,提高了使用效率,提升了用户体验。
4.第一方面,提供一种摄像头。摄像头通过第一接口与电子设备连接,摄像头包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得摄像头执行以下步骤:接收到包含应用id或应用子功能id的第一消息;响应于第一消息,在检测到应用id或应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;在检测到应用id或应用子功能id对应的类型为第二类型时,沿第二路径或第三路径,通过第一接口输出第二消息类型的第二处理结果;接收到包含另一应用id或另一应用子功能id的第二消息;响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果。其中,另一应用子功能可以为一个应用下的另一子功能,也可以为另一应用下的子功能。这样,摄像头通过一个接口与电子设备连接,摄像头可实现基于应用的类型的动态调用方法,可满足至少两个应用、至少一个应用一个应用子功能、至少两个应用子功能的调用请求,在不改变摄像头的内部架构的情况下,解决摄像头独占问题,提高了使用效率,提升了用户体验。
5.根据第一方面,摄像头还执行以下步骤:响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第二类型,沿第二路径或第三路径,通过第一接口输出第二消息类型的第四处理结果。这样,提供了在另一应用或另一应用子功能调用摄像头时,消息为第二类型时的处理方式。
6.根据第一方面,或者以上第一方面的任意一种实现方式,摄像头还执行以下步骤:响应于第一消息,在检测到应用id或应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;和沿第二路径或第三路径,通过第一接口输出第二消息类型的第二处理结果;第三类型为第一类型+第二类型;响应于第二消息,
在检测到另一应用id或另一应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果;和沿第二路径或第三路径,通过第一接口输出第二消息类型的第四处理结果;第三类型为所述第一类型+所述第二类型。这样,提供了在一个应用或一个应用子功能调用摄像头时,消息为第三类型时的处理方式;以及在另一应用或另一应用子功能调用摄像头时,消息为第三类型时的处理方式。
7.根据第一方面,或者以上第一方面的任意一种实现方式,摄像头还包括:一个或多个传感器模块、视频输入模块、视频处理子系统模块、人工智能模块、视频编码模块和视频图形系统模块;其中,传感器模块用于采集图像,并将采集的图像输出至视频输入模块;视频输入模块用于对传感器模块采集到的图像进行预处理;视频处理子系统模块用于对视频输入模块预处理后的图像进行降噪处理;人工智能模块用于对视频处理子系统模块处理后的图像进行人工智能识别,并通过第一接口输出第一消息类型的人工智能事件;视频图形系统模块用于对视频处理子系统模块处理后的图像进行变焦处理,并将变焦处理后的图像输出至视频编码模块;视频编码模块用于对视频处理子系统模块处理后的图像或者视频图形系统模块变焦处理后的图像进行编码,生成视频流,并通过第一接口输出第二消息类型的视频流。这样,就提出了摄像头的具体架构。
8.根据第一方面,或者以上第一方面的任意一种实现方式,第一路径包括传感器模块、视频输入模块、视频处理子系统模块和人工智能模块;第二路径包括传感器模块、视频输入模块、视频处理子系统模块、视频图形系统模块和视频编码模块;第三路径包括传感器模块、视频输入模块、视频处理子系统模块和视频编码模块。这样,基于摄像头的具体架构,提供不同的路径。
9.根据第一方面,或者以上第一方面的任意一种实现方式,第一类型为人工智能类型;第二类型为视频流类型;第三类型为人工智能类型+视频流类型;第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口为usb接口。这样,提供了具体的类型、消息类型和接口。
10.第二方面,提供一种摄像头。摄像头通过第一接口和第二接口与电子设备连接,摄像头包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得摄像头执行以下步骤:接收到包含应用id或应用子功能id的第一消息;响应于第一消息,在检测到应用id或应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;在检测到应用id或应用子功能id对应的类型为第二类型时,沿第二路径或第三路径,通过第二接口输出第二消息类型的第二处理结果;接收到包含另一应用id或另一应用子功能id的第二消息;响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果。其中,另一应用子功能可以为一个应用下的另一子功能,也可以为另一应用下的子功能。这样,摄像头通过两个接口与电子设备连接,摄像头可实现基于应用的类型的动态调用方法,可满足至少两个应用、至少一个应用一个应用子功能、至少两个应用子功能的调用请求,在不改变摄像头的内部架构的情况下,解决摄像头独占问题,提高了使用效率,提升了用户体验。
11.根据第二方面,摄像头还执行以下步骤:响应于第二消息,在检测到另一应用id或
另一应用子功能id对应的类型为第二类型,沿第二路径或第三路径,通过第二接口输出第二消息类型的第四处理结果。这样,提供了在另一应用或另一应用子功能调用摄像头时,消息为第二类型时的处理方式。
12.根据第二方面,或者以上第二方面的任意一种实现方式,摄像头还执行以下步骤:响应于第一消息,在检测到应用id或应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;和沿第二路径或第三路径,通过第二接口输出第二消息类型的第二处理结果;第三类型为所述第一类型+第二类型;响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果;和沿第二路径或第三路径,通过第二接口输出第二消息类型的第四处理结果;第三类型为第一类型+第二类型。这样,提供了在一个应用或一个应用子功能调用摄像头时,消息为第三类型时的处理方式;以及在另一应用或另一应用子功能调用摄像头时,消息为第三类型时的处理方式。
13.根据第二方面,或者以上第二方面的任意一种实现方式,摄像头还包括:一个或多个传感器模块、视频输入模块、视频处理子系统模块、人工智能模块、视频编码模块和视频图形系统模块;其中,传感器模块用于采集图像,并将采集的图像输出至视频输入模块;视频输入模块用于对传感器模块采集到的图像进行预处理;视频处理子系统模块用于对视频输入模块预处理后的图像进行降噪处理;人工智能模块用于对视频处理子系统模块处理后的图像进行人工智能识别,并通过第一接口输出第一消息类型的人工智能事件;视频图形系统模块用于对视频处理子系统模块处理后的图像进行变焦处理,并将变焦处理后的图像输出至视频编码模块;视频编码模块用于对视频处理子系统模块处理后的图像或者视频图形系统模块变焦处理后的图像进行编码,生成视频流,并通过第二接口输出第二消息类型的视频流。这样,就提出了摄像头的具体架构。
14.根据第二方面,或者以上第二方面的任意一种实现方式,第一路径包括传感器模块、视频输入模块、视频处理子系统模块和人工智能模块;第二路径包括传感器模块、视频输入模块、视频处理子系统模块、视频图形系统模块和视频编码模块;第三路径包括传感器模块、视频输入模块、视频处理子系统模块和视频编码模块。这样,基于摄像头的具体架构,提供不同的路径。
15.根据第二方面,或者以上第二方面的任意一种实现方式,第一类型为人工智能类型;第二类型为视频流类型;第三类型为人工智能类型+视频流类型;第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口和所述第二接口中的至少一个为usb接口。这样,提供了具体的类型、消息类型和接口。
16.第三方面,提供一种摄像头的调用方法。该方法应用于摄像头,摄像头通过第一接口与电子设备连接,该方法包括:接收到包含应用id或应用子功能id的第一消息;响应于第一消息,在检测到应用id或应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;在检测到应用id或应用子功能id对应的类型为第二类型时,沿第二路径或第三路径,通过第一接口输出第二消息类型的第二处理结果;接收到包含另一应用id或另一应用子功能id的第二消息;响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果。
17.根据第三方面,该方法还包括:响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第二类型,沿第二路径或第三路径,通过第一接口输出第二消息类型的第四处理结果。
18.根据第三方面,或者以上第三方面的任意一种实现方式,该方法还包括:响应于第一消息,在检测到应用id或应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;和沿第二路径或第三路径,通过第一接口输出第二消息类型的第二处理结果;第三类型为第一类型+第二类型;响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果;和沿第二路径或第三路径,通过第一接口输出第二消息类型的第四处理结果;第三类型为第一类型+第二类型。
19.根据第三方面,或者以上第三方面的任意一种实现方式,摄像头包括:一个或多个传感器模块、视频输入模块、视频处理子系统模块、人工智能模块、视频编码模块和视频图形系统模块;其中,传感器模块用于采集图像,并将采集的图像输出至视频输入模块;视频输入模块用于对传感器模块采集到的图像进行预处理;视频处理子系统模块用于对视频输入模块预处理后的图像进行降噪处理;人工智能模块用于对视频处理子系统模块处理后的图像进行人工智能识别,并通过第一接口输出第一消息类型的人工智能事件;视频图形系统模块用于对视频处理子系统模块处理后的图像进行变焦处理,并将变焦处理后的图像输出至视频编码模块;视频编码模块用于对视频处理子系统模块处理后的图像或者视频图形系统模块变焦处理后的图像进行编码,生成视频流,并通过第一接口输出第二消息类型的视频流。
20.根据第三方面,或者以上第三方面的任意一种实现方式,第一路径包括传感器模块、视频输入模块、视频处理子系统模块和人工智能模块;第二路径包括传感器模块、视频输入模块、视频处理子系统模块、视频图形系统模块和视频编码模块;第三路径包括传感器模块、视频输入模块、视频处理子系统模块和视频编码模块。
21.根据第三方面,或者以上第三方面的任意一种实现方式,第一类型为人工智能类型;第二类型为视频流类型;第三类型为人工智能类型+视频流类型;第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口为usb接口。
22.第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
23.第四方面,提供一种摄像头的调用方法。该方法应用于摄像头,摄像头通过第一接口和第二接口与电子设备连接,该方法包括:接收到包含应用id或应用子功能id的第一消息;响应于第一消息,在检测到应用id或应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;在检测到应用id或应用子功能id对应的类型为第二类型时,沿第二路径或第三路径,通过第二接口输出第二消息类型的第二处理结果;接收到包含另一应用id或另一应用子功能id的第二消息;响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第一类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果。
24.根据第四方面,该方法还包括:响应于第二消息,在检测到另一应用id或另一应用
子功能id对应的类型为第二类型,沿第二路径或第三路径,通过第二接口输出第二消息类型的第四处理结果。
25.根据第四方面,或者以上第四方面的任意一种实现方式,该方法还包括:响应于第一消息,在检测到应用id或应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第一处理结果;和沿第二路径或第三路径,通过第二接口输出第二消息类型的第二处理结果;第三类型为第一类型+第二类型;响应于第二消息,在检测到另一应用id或另一应用子功能id对应的类型为第三类型时,沿第一路径,通过第一接口输出第一消息类型的第三处理结果;和沿第二路径或第三路径,通过第二接口输出第二消息类型的第四处理结果;第三类型为第一类型+第二类型。
26.根据第四方面,或者以上第四方面的任意一种实现方式,摄像头包括:一个或多个传感器模块、视频输入模块、视频处理子系统模块、人工智能模块、视频编码模块和视频图形系统模块;其中,传感器模块用于采集图像,并将采集的图像输出至视频输入模块;视频输入模块用于对传感器模块采集到的图像进行预处理;视频处理子系统模块用于对视频输入模块预处理后的图像进行降噪处理;人工智能模块用于对视频处理子系统模块处理后的图像进行人工智能识别,并通过第一接口输出第一消息类型的人工智能事件;视频图形系统模块用于对视频处理子系统模块处理后的图像进行变焦处理,并将变焦处理后的图像输出至视频编码模块;视频编码模块用于对视频处理子系统模块处理后的图像或者视频图形系统模块变焦处理后的图像进行编码,生成视频流,并通过第二接口输出第二消息类型的视频流。
27.根据第四方面,或者以上第四方面的任意一种实现方式,第一路径包括传感器模块、视频输入模块、视频处理子系统模块和人工智能模块;第二路径包括传感器模块、视频输入模块、视频处理子系统模块、视频图形系统模块和视频编码模块;第三路径包括传感器模块、视频输入模块、视频处理子系统模块和视频编码模块。
28.根据第四方面,或者以上第四方面的任意一种实现方式,第一类型为人工智能类型;第二类型为视频流类型;第三类型为人工智能类型+视频流类型;第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口和第二接口中的至少一个为usb接口。
29.第四方面以及第四方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
30.第五方面,提供一种电子设备。电子设备通过第一接口连接摄像头,电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:在检测到与摄像头相关的一个应用被打开时,或者在检测到一个应用的应用子功能被打开时,向摄像头发送包含应用id或应用子功能id的第一消息,应用id对应于应用,或者应用子功能id对应于应用子功能;通过第一接口接收第一消息类型的第一处理结果;和/或,通过第一接口接收第二消息类型的第二处理结果;在检测到与摄像头相关的另一应用被打开时,或者在检测到另一应用子功能被打开时,向摄像头发送包含另一应用id或另一应用子功能id的第二消息,另一应用id对应于另一应用,或者另一应用子功能id对应于另一应用
子功能;通过第一接口接收第一消息类型的第三处理结果;和/或,通过第一接口接收第二消息类型的第四处理结果。这样,电子设备与摄像头通过一个接口连接,使得电子设备与摄像头相互配合,满足至少两个应用、至少一个应用一个应用子功能、至少两个应用子功能的调用请求,在不改变摄像头的内部架构的情况下,解决摄像头独占问题,提高了使用效率,提升了用户体验。
31.根据第五方面,第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口为usb接口。这样,就将消息类型和接口具体化。
32.第六方面,提供一种电子设备。电子设备通过第一接口和第二接口连接摄像头,电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:在检测到与摄像头相关的一个应用被打开时,或者在检测到一个应用的应用子功能被打开时,向摄像头发送包含应用id或应用子功能id的第一消息,应用id对应于应用,或者应用子功能id对应于应用子功能;通过第一接口接收第一消息类型的第一处理结果;和/或,通过第二接口接收第二消息类型的第二处理结果;在检测到与摄像头相关的另一应用被打开时,或者在检测到另一应用子功能被打开时,向摄像头发送包含另一应用id或另一应用子功能id的第二消息,另一应用id对应于另一应用,或者另一应用子功能id对应于另一应用子功能;通过第一接口接收第一消息类型的第三处理结果;和/或,通过第二接口接收第二消息类型的第四处理结果。这样,电子设备与摄像头通过两个接口连接,使得电子设备与摄像头相互配合,满足至少两个应用、至少一个应用一个应用子功能、至少两个应用子功能的调用请求,在不改变摄像头的内部架构的情况下,解决摄像头独占问题,提高了使用效率,提升了用户体验。
33.根据第六方面,第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口和第二接口中的至少一个为usb接口。这样,就将消息类型和接口具体化。
34.第七方面,提供一种摄像头的调用方法。该方法应用于电子设备,电子设备通过第一接口连接摄像头,该方法包括:在检测到与摄像头相关的一个应用被打开时,或者在检测到一个应用的应用子功能被打开时,向摄像头发送包含应用id或应用子功能id的第一消息,应用id对应于应用,或者应用子功能id对应于应用子功能;通过第一接口接收第一消息类型的第一处理结果;和/或,通过第一接口接收第二消息类型的第二处理结果;在检测到与摄像头相关的另一应用被打开时,或者在检测到另一应用子功能被打开时,向摄像头发送包含另一应用id或另一应用子功能id的第二消息,另一应用id对应于另一应用,或者另一应用子功能id对应于另一应用子功能;通过第一接口接收第一消息类型的第三处理结果;和/或,通过第一接口接收第二消息类型的第四处理结果。
35.根据第七方面,第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口为usb接口。
36.第七方面以及第七方面的任意一种实现方式分别与第五方面以及第五方面的任意一种实现方式相对应。第七方面以及第七方面的任意一种实现方式所对应的技术效果可参见上述第五方面以及第五方面的任意一种实现方式所对应的技术效果,此处不再赘述。
37.第八方面,提供一种摄像头的调用方法。该方法应用于电子设备,电子设备通过第一接口和第二接口连接摄像头,该方法包括:在检测到与摄像头相关的一个应用被打开时,
或者在检测到一个应用的应用子功能被打开时,向摄像头发送包含应用id或应用子功能id的第一消息,应用id对应于应用,或者应用子功能id对应于应用子功能;通过第一接口接收第一消息类型的第一处理结果;和/或,通过第二接口接收第二消息类型的第二处理结果;在检测到与摄像头相关的另一应用被打开时,或者在检测到另一应用子功能被打开时,向摄像头发送包含另一应用id或另一应用子功能id的第二消息,另一应用id对应于另一应用,或者另一应用子功能id对应于另一应用子功能;通过第一接口接收第一消息类型的第三处理结果;和/或,通过第二接口接收第二消息类型的第四处理结果。
38.根据第八方面,第一消息类型为socket消息类型;第二消息类型为uvc消息类型;第一接口和第二接口中的至少一个为usb接口。
39.第八方面以及第八方面的任意一种实现方式分别与第六方面以及第六方面的任意一种实现方式相对应。第八方面以及第八方面的任意一种实现方式所对应的技术效果可参见上述第六方面以及第六方面的任意一种实现方式所对应的技术效果,此处不再赘述。
40.第九方面,提供一种计算机可读存储介质。该介质包括计算机程序,当计算机程序在摄像头上运行时,使得摄像头执行第三方面、第四方面以及第三方面中任意一项、第四方面中任意一项的摄像头的调用方法。
41.第九方面以及第九方面的任意一种实现方式分别与第三方面、第四方面以及第三方面的任意一种实现方式、第四方面的任意一种实现方式相对应。第九方面以及第九方面的任意一种实现方式所对应的技术效果可参见上述第三方面、第四方面以及第三方面的任意一种实现方式、第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
42.第十方面,提供一种计算机可读存储介质。该介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行第七方面、第八方面以及第七方面中任意一项、第八方面中任意一项的摄像头的调用方法。
43.第十方面以及第十方面的任意一种实现方式分别与第七方面、第八方面以及第七方面的任意一种实现方式、第八方面的任意一种实现方式相对应。第十方面以及第十方面的任意一种实现方式所对应的技术效果可参见上述第七方面、第八方面以及第七方面的任意一种实现方式、第八方面的任意一种实现方式所对应的技术效果,此处不再赘述。
44.第十一方面,提供一种计算机系统。该计算机系统包括第五方面、第六方面以及第五方面中任意一项、第六方面中任意一项的电子设备和第一方面、第二方面以及第一方面中任意一项、第二方面中任意一项所述的摄像头,使得所述电子设备执行第七方面、第八方面以及第七方面中任意一项、第八方面中任意一项的方法,以及使得所述摄像头执行执行第三方面、第四方面以及第三方面中任意一项、第四方面中任意一项的方法。
45.第十一方面以及第十一方面的任意一种实现方式分别与第五方面、第六方面以及第五方面的任意一种实现方式、第六方面的任意一种实现方式,第一方面、第二方面以及第一方面中任意一项、第二方面中任意一种实现方式,第七方面、第八方面以及第七方面中任意一项、第八方面中任意一种实现方式,第三方面、第四方面以及第三方面中任意一项、第四方面中任意一种实现方式的组合相对应。第十一方面以及第十一方面的任意一种实现方式所对应的技术效果可参见上述第五方面、第六方面以及第五方面的任意一种实现方式、第六方面的任意一种实现方式,第一方面、第二方面以及第一方面中任意一项、第二方面中任意一种实现方式,第七方面、第八方面以及第七方面中任意一项、第八方面中任意一种实
现方式,第三方面、第四方面以及第三方面中任意一项、第四方面中任意一种实现方式所对应的技术效果,此处不再赘述。
46.本技术中有关更多应用和/或应用子功能对摄像头的调用,与上述的调用方式相类似,此处不再赘述。
附图说明
47.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
48.图1为本技术实施例提供的应用场景示意图;
49.图2为本技术实施例提供的电子设备的硬件结构示意图;
50.图3为本技术实施例提供的电子设备的软件结构示意图;
51.图4为本技术实施例一提供的摄像头与电子设备连接的结构示意图;
52.图5a-5d为本技术实施例一提供的摄像头调用方法的流程示意图;
53.图6为本技术实施例二提供的摄像头与电子设备连接的结构示意图;
54.图7a-7d为本技术实施例二提供的摄像头调用方法的流程示意图;
55.图8为本技术实施例提供的电子设备的结构示意图。
具体实施方式
56.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
57.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
58.本技术实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
59.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
60.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个以上。其中,两个以上包含两个。
61.在本技术实施例的描述中,第一应用、第二应用可以是电子设备中需要调用摄像头的任一应用。可选地,第一应用、第二应用可以是电子设备在出厂前安装的,也可以是用户在电子设备的使用中下载的,本技术不做限定。第一应用、第二应用仅是用于举例,并非用于限制应用的具体数量。
62.在对本技术实施例的技术方案说明之前,首先结合附图对本技术实施例的应用场景进行说明。图1为本技术实施例提供的应用场景示意图。如图1所示,第一电子设备100可被第二电子设备200调用。第一电子设备100具有摄像头(未示出),或者第一电子设备100通过诸如通用串行总线(universal serial bus,usb)接口的各种接口连接摄像头。第二电子设备200远程调用并控制第一电子设备100的摄像头。具体来说,第一电子设备100和第二电子设备200都安装有同一应用,比如“远程看家”应用。第二电子设备200先打开自身的“远程看家”应用,之后通过自身的“远程看家”应用向第一电子设备100发送调用请求;第一电子设备100接收到该请求后,打开第一电子设备100的“远程看家”应用。第一电子设备100和第二电子设备200均包括但不限于大屏、膝上型计算机、桌上型计算机、掌上型计算机(如平板电脑、智能手机等)、智能穿戴设备(如智能手环、智能手表、智能眼镜、智能戒指等)等各种计算设备。举例来说,第一电子设备100为配置有摄像头的大屏;第二电子设备200为智能手机。可替代地,第二电子设备200可配置摄像头,也可不配置摄像头。另外,虽然在图1中第一电子设备100和第二电子设备200的数量均仅为1个,但第一电子设备100和/或第二电子设备200的数量可为多个。
63.图2为本技术实施例示出的一种电子设备的结构示意图。图2虽然以图1中的第一电子设备100为例说明电子设备的结构,但本领域技术人员明了,图2中的电子设备的结构也适用于图1中的第二电子设备200。如图2所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,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等。
64.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
65.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
66.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
67.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了
重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
68.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等,可支持usb1.0、usb2.0、usb3.0和usb4.0或者更高标准usb规范在内的各种usb规范。示例性的,usb接口130可以包括一个或多个usb接口。
69.可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
70.充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
71.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
72.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
73.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
74.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
75.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
76.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
77.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
78.图3为本技术实施例的电子设备100的软件结构框图。分层架构将软件分成若干层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为五层,从上至下分别为应用程序层,系统框架层,系统库与运行时层、硬件抽象层和内核层。应用程序层可以包括远程看家应用,家庭相机应用,视频通话应用,人工智能(artificial intelligence,ai)健身应用,儿童模式应用等程序。其中,远程看家应用用于该电子设备100以外的设备通过远程调用的方式,打开电子设备100上的摄像头,并获取摄像头拍摄的视频影像和/或图片。需要说明的是,图3中示出的应用程序层所包括的应用程序仅为示例性说明,本技术对此不作限定。可以理解的是,应用程序层包括的应用并不构成对电子设备100的具体限定。在本技术另一些实施例中,相较于图3所示应用程序层包含的应用,电子设备100可包括更多或更少的应用,电子设备100也可包括完全不同的应用。
79.系统框架层为应用程序层的应用程序提供应用编程接口(application programming interface,api)和编程框架,包括各种组件和服务来支持开发者的安卓开发。系统框架层包括一些预先定义的函数。如图3所示,系统框架层可包括视图系统、窗口管理器、资源管理器、内容提供器等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可包括视频,图像,音频等。
80.系统库与运行时层包括系统库和安卓运行时(android runtime)。系统库可以包括多个功能模块。例如:浏览器内核,3d图形库(例如:opengl es),字体库等。浏览器内核负责对网页语法的解释(如标准通用标记语言下的一个应用html、javascript)并渲染(显示)网页。3d图形库用于实现三维图形绘图,图像渲染,合成和图层处理等。字体库用于实现不同字体的输入。安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
81.可以理解的是,图3示出的系统框架层、系统库与运行时层包含的部件,并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
82.硬件抽象层(hardware abstraction layer,hal)是硬件和软件之间的层。hal包
含camerahal驱动,摄像头代理(cameraproxy)驱动,显示驱动,音频驱动等。上述驱动仅为示意性举例,本技术不做限定。hal是tm系统的基础。tm系统最终的功能实现都是通过hal完成。
83.示例性的,camerahal驱动与cameraproxy驱动均用于将摄像头抽象化,以隐藏摄像头的特定通道,使应用可访问(或调用)摄像头。camerahal驱动可基于通用串行总线视频(universal serial bus video class,uvc)协议与摄像头进行通信。uvc协议也可以理解为基于uvc通道的协议,即摄像头400与hal通过uvc通道,建立uvc连接(通信连接),并基于uvc连接传输符合uvc协议的消息。cameraproxy驱动可基于远程网络驱动接口规范(remote network driver interface specification,rndis)协议与摄像头进行通信。需要说明的是,rndis协议也可以理解为基于socket通道的协议,即摄像头400与hal通过socket通道,建立socket连接(通信连接),并基于socket连接传输符合rndis协议的消息。
84.可选地,uvc通道可用于传输控制指令与视频流;socket通道可用于传输ai事件、日志等信息。
85.电子设备100具有的摄像头可为外置摄像头和/或内置摄像头。外置摄像头可通过usb线缆连接电子设备100的usb接口。内置摄像头可嵌入在电子设备100内,在电子设备100内,该内置摄像头通过usb线缆连接电子设备100的usb接口。
86.实施例一
87.图4为本技术实施例一提供的摄像头与电子设备连接的结构示意图。如图4所示,摄像头400通过usb线缆与电子设备410的usb接口连接,进而与电子设备410连接。需要说明的是,图4中usb接口的数量及其在电子设备410一侧的分布,仅为示意性举例,并不限制本技术的范围。其他类型的接口诸如uart、usart等也可用于摄像头400和电子设备410的连接。上述的接口(含usb接口)可位于电子设备410一侧,也可位于摄像头400一侧,也可位于电子设备410和摄像头400两侧。usb接口的数量可为1个,也可为2个,甚至更多个。
88.图4中usb接口位于电子设备410一侧的硬件层411上。在硬件层411之上有hal412,hal 412至少包括cameraproxy驱动和camerahal驱动。
89.cameraproxy驱动为位于android应用程序包(android application package,apk)应用与摄像头之间的代理程序,处于android hal层,为标准的hal接口定义语言(hal interface definition language,hidl)服务,其目的在于将摄像头抽象化。它隐藏了特定摄像头器件的硬件接口细节,为apk应用提供更轻量、便捷的摄像头访问。
90.camerahal驱动为位于apk应用与摄像头之间的代理程序,处于android hal层,提供了标准的数据结构和接口定义规范,为不同摄像头硬件的系统服务定义了标准接口,不同的摄像头硬件厂商只需实现相应的接口,将设备相关的实现放在hal层中实现并以共享库(.so)的形式提供,即能使设备为android系统所用。
91.在本技术实施例中,cameraproxy驱动和camerahal驱动用于通过两路分别接收ai模块423和venc模块424输入的数据。
92.摄像头400包括isp 420、传感器模块430、cpu 440和存储器450。isp 420用于对图像和视频流进行处理,并将处理后的视频流和图像分两路输出。cpu 440仅为示意性举例,微控制单元(microcontroller unit,mcu)等各种微控制器或起到处理器或微控制器功能的器件均可为上述cpu的可替代形式。
93.传感器模块430为摄像头400的感光元件,采集光信号,并将采集的光信号转换为电信号,之后将所述电信号传递给isp 420处理,转化为图像或视频流。
94.isp 420包括视频输入(video input,vi)模块421,视频处理子系统(video process sub-system,vpss)模块422,ai模块423,视频编码(video encoder,venc)模块424和视频图形系统(video graphic system,vgs)模块425。
95.其中,vi模块421用于对传感器模块430采集到的图像进行预处理,预处理包括降噪、颜色校正、阴影(shading)等。
96.vpss模块422,用于对vi模块421处理后的图像进行3d降噪处理等,vpss模块422的3d降噪处理是在vi模块421的二维降噪的基础上,基于时间域对图像进行三维降噪。
97.ai模块423,用于对图像进行ai识别,并上报ai事件。示例性的,ai模块423可对图像中的特征进行识别,以检测是否符合ai事件的特定特征,如果检测到图像中存在该特定特征,则可确定存在对应的ai事件,并上报该ai事件。举例说明:假设一名儿童正在看电视,ai模块423通过其它模块(包括传感器模块430、vi模块421等)处理后的图像进行识别,并检测到该儿童的特征,ai模块421可基于识别到的儿童的特征,确定存在儿童观影事件,并向电子设备410上报儿童观影事件。具体来说,ai模块423在完成ai事件识别检测后,将ai事件识别结果通过socket通道传输至hal 412的cameraproxy驱动,进而将ai事件识别结果发送至电子设备侧。ai事件包括ai手势,人像追踪,儿童识别,姿态检测等。socket通道即套接字通道,是一种基于tcp连接协议传输数据的通道。在本实施例中,socket通道是摄像头通过usb线缆用于向电子设备侧的usb接口传输ai事件识别结果的通道。
98.venc模块424,用于对图像进行编码,生成视频流(也称为视频数据、视频信息等),并将视频流通过uvc通道传输至hal 412的camerahal驱动,进而将视频流发送至电子设备410一侧。uvc通道是摄像头通过usb线缆向电子设备侧的usb接口传输视频数据的通道。可选地,venc模块424可基于多个图像进行编码(也称为视频编码)。
99.vgs模块425,用于对图像进行变焦处理,并将变焦处理后的图像输出至venc模块424。变焦处理为在保证图像不失真的情况下,对图像进行放大、缩小等处理。
100.vi模块421、vpss模块422、ai模块423、venc模块424、vgs模块425和传感器模块430分别连接至cpu 440。具体来说,cpu 440可通过cng0、cng1、cng2、cng3、cng4和cng5分别连接至传感器模块430、vi模块421、vpss模块422、ai模块423、venc模块424和vgs模块425。其中,cng0-cng5用于cpu 440为各模块提供配置参数。以vpss模块422为例,在通过cng2接收到cpu 440提供给vpss模块的配置参数后,vpss模块422可根据提供的配置参数,确定vpss模块的处理结果输出至下述的哪一个模块或哪几个模块:ai模块423、venc模块424、vgs模块425。再以ai模块423为例,ai模块423可根据提供的配置参数,确定是否启动。示例性的,若ai模块423接收到的配置参数为“0”,则ai模块423确定不启动。示例性的,若ai模块423接收到的配置参数为“1”,则ai模块423确定启动。上述的配置参数指示各模块是否启动的方式仅为示意性举例,本技术不做限定。可选地,在其他实施例中,配置参数也可以仅用于指示各模块是否启动,启动后的各模块可根据模块间的电路连接确定处理结果的传输对象。举例说明,vpss模块422连接(如电连接)ai模块423、vgs模块425和venc模块424。cpu440可通过配置参数指示ai模块423启动,vgs模块425和venc模块424未启动。vpss模块422可根据连接关系(即电连接,也可理解为实际的物理连接关系),通过三条连接电路传输处理后的
处理结果。而实际上,只有处于启动状态的ai模块423接收到了vpss模块422的处理结果,而未启动的vgs模块425和venc模块424并未接收到vpss模块422的处理结果。
101.以电子设备410上的某个应用调用摄像头的方式进行示例性说明。
102.示例性的,电子设备410的应用层的应用,例如家庭相机应用可向hal 412中的camerahal驱动发送指令,以调用摄像头400。camerahal驱动可基于应用的指令,通过usb线缆向摄像头400发送uvc命令(或消息),以调用摄像头400。所述uvc命令(或消息)是指通过uvc通道发送的命令(或消息)。
103.示例性的,摄像头400基于camerahal驱动的指令,启动摄像头400中的cpu440及部分或全部模块(如传感器模块430、vi模块421、vpss模块422、vgs模块425和venc模块424),并执行各自的功能。例如,传感器模块430将采集到的图像经由vi模块421、vpss模块422以及vgs模块425进行降噪、3d降噪以及变焦等处理后,由venc模块424对获取到的图像进行编码,生成视频流,并向camerahal驱动通过uvc通道发送uvc消息,该uvc消息携带生成的视频流。
104.示例性的,camerahal驱动向应用层传输视频流。应用层中的应用,例如家庭相机应用,可对视频流进行处理,例如,对视频流进行渲染并显示等操作。
105.示例性的,若第一电子设备中的应用层包括ai应用,例如ai健身应用,第一电子设备可通过ai健身应用对camerahal驱动传输的视频流进行ai处理,以获取相应的ai事件。
106.需要说明的是,本文中均以模块为各功能实现的主体进行说明,实际上,各模块的功能是由isp中的处理电路实现的,下文中不再重复说明。
107.另外,图4中的usb接口可为多个。ai模块423和venc模块424可通过两个usb线缆分别与电子设备410的两个usb接口连接。
108.需要说明的是,uvc通道及下文所述的socket通道均为逻辑通道,其反映了在usb传输的一种消息类型。进一步需要说明的是,本实施例及后续实施例中所示出的摄像头各模块的连接关系以及处理流程仅为示意性举例。实际上,各厂商所生产的摄像头的内部连接(包括硬件连接和逻辑连接)可能不相同,例如,vpss模块处理后的图像可传输至venc模块进行编码,而不经过vgs模块等,本技术对此不作限定。
109.可选地,摄像头还可以包括传动马达,用于调整摄像头的角度和/或位置,比如升高或降低摄像头。
110.下面结合图5a对本技术的技术方案进行详细说明,进一步说明电子设备的camerahal驱动和cameraproxy驱动对摄像头的调用过程。
111.s101,camerahal驱动通过uvc通道向摄像头输入包含应用id的第一消息。
112.具体的,camerahal驱动接收应用的调用请求消息,该调用请求消息用于指示应用需要调用摄像头。示例性的,该调用请求消息携带应用id。具体的,camerahal驱动响应于接收到的调用请求消息,通过uvc通道向摄像头发送第一消息,用于请求调用摄像头。其中,第一消息携带应用id。示例性的,第一消息为uvc消息。该uvc消息具体可为set_cur消息,消息中的指定字段中携带有应用id。
113.s102,cpu接收所述第一消息,根据应用id,确定类型和需要启动的模块,向传感器模块430输出指令,以及向传感器模块430、vi模块421、vpss模块422、ai模块423、venc模块424和vgs模块425输出各自的配置参数,所述指令用于指示传感器模块430执行何种功能,
配置参数用于配置传感器模块430、vi模块421、vpss模块422、ai模块423、venc模块424和vgs模块425。
114.可选地,cpu响应于接收到的第一消息,获取应用id;摄像头的存储器预先存储有数据库,所述数据库存储有应用id、与应用id对应的类型(或类型信息)以及与类型对应的模块调用方式;cpu将获取到的应用id与预先存储的所述数据库中的应用id匹配,并提取匹配成功的应用id对应的类型。具体的,cpu进一步将获取到的类型与预先存储的类型匹配,并提取匹配成功的类型对应的模块调用方式,模块调用方式用于指示需要启动的一个或多个模块。
115.可选地,cpu响应于接收到的第一消息,获取应用id;在cpu运行的程序中设置有诸如数据存储匹配表的数据库,所述数据存储匹配表存储有应用id、与应用id对应的类型(或类型信息)以及与类型对应的模块调用方式;cpu将获取到的应用id与所述数据库中的应用id匹配,并提取匹配成功的应用id对应的类型以及对应的模块调用方式,并根据所述模块调用方式,启动一个或多个模块。后续,可以通过升级、或者有权限的管理人员修改等方式,更新或修改所述数据库。这样,可以降低所述数据库泄露的风险。
116.应用id、类型和模块调用方式的配置过程将在下面的实施例中进行详细说明。
117.示例性的,cpu可通过与传感器模块的连接通道cng0,向传感器模块输出指令,以指示传感器模块启动,并采集图像。cpu通过与各模块的通道(例如cng0~cng5)输出对应的配置参数。其中,所述配置参数用于执行包含但不限于指示模块启动或不启动的功能。cpu向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各模块对应的配置参数,以指示其中部分模块启动,并使各个启动模块明确处理结果的输出对象,比如使vpss模块明确其处理结果要输出给ai模块。
118.s103,传感器模块根据cpu的指示,进行相应处理,并将处理结果和应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
119.具体的,传感器模块可基于cpu的指示,进行相应处理。例如通过摄像头采集图像,并将采集到的图像输出至vi模块。vi模块基于cpu发送的配置参数,对来自传感器模块的图像进行相应处理;例如降噪处理,并将处理后的图像输出至vpss模块。vpss模块可对来自vi模块的图像进行相应处理,例如3d降噪处理,并得到处理结果。
120.s104,cpu输出至vpss模块的配置参数指示是否输出至ai模块。
121.具体的,vpss模块对图像处理完成,并得到处理结果后,判断cpu输出至vpss模块的配置参数是否指示需要将处理结果输出至ai模块。如果类型为ai类型,即应用需要摄像头实现ai功能;相应的,cpu输出至vpss模块的配置参数会指示vpss模块将处理结果输出至ai模块,并且,ai模块也会接收到指示其启动的配置参数,vpss确定cpu输出至vpss模块的配置参数指示将处理结果输出至ai模块,执行s105。
122.如果类型为视频流类型,即应用需要摄像头实现视频流功能;相应的,cpu输出至vpss模块的配置参数会指示vpss模块将处理结果输出至vgs模块或venc模块,执行s108。
123.如果类型为ai类型和视频流类型,即应用即需要摄像头实现ai功能,还需要摄像头实现视频流功能;相应的,cpu输出至vpss模块的配置参数会指示vpss模块将处理结果输出至ai模块和venc模块,或者,ai模块和vgs模块,相应执行s105~s109。
124.s105,vpss模块将处理结果和应用id输出至ai模块,ai模块进行相应处理,得到处理结果。
125.具体的,vpss模块基于cpu发送的配置参数的指示,将处理结果输出至ai模块,并由ai模块对vpss输入的处理结果,即处理后的图像进行相应处理;示例性的,ai模块对图像进行ai识别(或检测),并得到处理结果,也可以称为是ai检测结果。ai检测结果包括存在ai事件和不存在ai事件。
126.s106,ai模块通过socket通道向cameraproxy驱动输出处理结果和应用id。
127.具体的,所述应用id用于指示向哪个应用反馈处理结果。ai模块可基于cpu发送的配置参数,将获取到的ai事件以及应用id通过socket通道输出至cameraproxy驱动;示例性的,ai模块向cameraproxy驱动发送socket消息,消息中携带ai事件和应用id。可选地,若ai模块未检测到ai事件,ai模块执行ai检测后,可不作任何处理,即无需向至cameraproxy驱动发送socket消息。
128.s107,cpu输出至vpss模块的配置参数指示是否输出至venc模块或vgs模块。
129.具体的,vpss模块可进一步判断是否将处理结果输出至venc模块或vgs模块。s107和s104的步骤不分先后,vpss模块可先判断是否需要将处理结果输出至ai模块,也可先判断是否需要将处理结果输出至venc模块或vgs模块,还可同时判断是否将输出结果输出至ai模块,venc模块或vgs模块。本技术不做限定。
130.在一个示例中,若当前请求调用摄像头的应用为ai类型,即应用仅需要摄像头实现ai功能,则cpu输出至vpss模块的配置参数指示将处理结果和应用id输出至ai模块,则在本步骤(s107)中,vpss模块基于配置参数,判定无需将处理结果和应用id输出至venc模块或vgs模块。
131.在另一个示例中,若当前请求调用摄像头的应用为视频流类型,即应用仅需要摄像头实现视频流功能,则cpu输出至vpss模块的配置参数指示将处理结果和应用id输出至venc模块或vgs模块,则在本步骤(s107)中,vpss模块基于配置参数,判定需将处理结果和应用id输出至venc模块或vgs模块。
132.在又一个示例中,若当前请求调用摄像头的应用为视频流类型和ai类型,即应用需要摄像头实现ai功能和视频流功能,则cpu输出至vpss模块的配置参数指示将处理结果和应用id输出至ai模块和venc模块,或者ai模块和vgs模块,则在本步骤(s107)中,vpss模块基于配置参数,判定需将处理结果和应用id输出至ai模块和venc模块,或者ai模块和vgs模块。
133.s108,vpss模块将处理结果和应用id输出至venc模块或vgs模块,venc模块或vgs模块进行相应处理,得到处理结果。
134.在一个示例中,若vpss模块将处理结果和应用id输出至venc模块,则venc模块对图像进行编码,以生成视频流。在另一个示例中,若vpss模块将处理结果和应用id输出至vgs模块,则vgs块对图像进行变焦,并且vgs模块基于cpu发送的配置参数的指示,将处理结果和应用id输出至venc模块,由venc模块对vgs模块处理后的图像进行编码,以生成视频流。
135.s109,venc模块通过uvc通道向camerahal驱动输出处理结果和应用id。
136.具体的,所述应用id用于指示向哪个应用反馈处理结果。venc模块可基于cpu发送
的配置参数的指示,将生成的视频流通过uvc通道输出至camerahal驱动。示例性的,venc模块向camerahal驱动发送uvc消息,uvc消息包括生成的视频流。
137.在s102-s108中,各模块的处理仅根据上一模块输入的处理结果进行处。应用id用于标识该处理结果对应于哪个应用。
138.在其他实施例中,应用id也可被替换为指应用下的子功能id。例如,远程看家可作为一个子功能,集成在“智慧屏”应用下。“智慧屏”应用下包括多个与摄像头相关的子功能。远程看家功能只是“智慧屏”应用下的一个子功能。“智慧屏”应用还可包括其他的与摄像头相关的子功能。在用户点击“智慧屏”应用下的远程看家子功能时,智慧屏(大屏)调用摄像头;在用户点击“智慧屏”应用下的与摄像头相关的其他子功能时,智慧屏(大屏)也会调用摄像头。再比如,用户的手机上有“智慧屏”应用和“儿童模式”应用,“智慧屏”应用下有远程看家子功能。同理,在点击“儿童模式”应用后,智慧屏(大屏)调用摄像头;在点击远程看家子功能后,智慧屏(大屏)也会调用摄像头。在无特别说明的情况下,本段内容也适用于图5b-5d,图7a-7d的各实施例,下文不再重复。
139.在图5a所示的实施例的基础上,结合图5b来进一步说明第二电子设备远程调用第一电子设备的摄像头的方法步骤,第一电子设备和第二电子设备都安装有同一应用,且所述同一应用在第一电子设备上运行的账号与所述同一应用在第二电子设备上运行的账号相同,或者账号属于同一群组,比如家庭群组;第二电子设备上的所述同一应用在运行时,会启动第一电子设备上的所述同一应用;所述第一电子设备可以为息屏状态,即不显示任何内容,也可以为亮屏状态;不过所述第一电子设备实质上启动了所述同一应用;具体的步骤如下:
140.s201,第一应用向camerahal驱动输入包含第一应用id的调用请求消息。
141.具体的,第一应用启动后,获取camerahal驱动发送的第一应用id,并向camerahal驱动输入包含第一应用id的调用请求消息,以请求调用摄像头。示例性的,用户可通过第二电子设备远程触发第一应用启动,或者用户还可直接在第一电子设备上触发第一应用启动,本技术不做限定。
142.示例性的,第一应用id可以是第一应用的id,也可以是第一应用下的子功能的id。
143.s202,camerahal驱动通过uvc通道向摄像头输入包含第一应用id的第一消息。
144.s203,cpu接收所述第一消息,根据第一应用id,确定类型和需要启动的模块,向传感器模块输出指令,以及向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各自的配置参数,所述指令用于指示传感器模块执行何种功能,配置参数用于配置传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块。
145.s204,传感器模块根据cpu的指示,进行相应处理,并将处理结果和第一应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和第一应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
146.s205,cpu输出至vpss模块的配置参数指示是否输出至ai模块。
147.s206,vpss模块将处理结果和第一应用id输出至ai模块,ai模块对vpss模块输入的处理结果进行相应处理,得到处理结果。
148.s207,ai模块通过socket通道向cameraproxy驱动输出处理结果和第一应用id。
149.s208,根据第一应用id,cameraproxy驱动向第一应用返回处理结果。
150.示例性的,cameraproxy驱动接收到ai模块输入的处理结果和第一应用id,即携带ai事件和第一应用id的socket消息后,cameraproxy驱动可将ai事件上报给第一应用,以使第一应用对ai事件进行相应处理。
151.s209,cpu输出至vpss模块的配置参数指示是否输出至venc模块或vgs模块。
152.s210,vpss模块将处理结果输出至venc模块或vgs模块,venc模块或vgs模块进行相应处理,得到处理结果。
153.s211,venc模块通过uvc通道向camerahal驱动输出处理结果。
154.s202-s207,s209-s211的具体内容分别与s101-s109的内容相同,此处不赘述。
155.s212,根据第一应用id,camerahal驱动向第一应用返回处理结果。
156.示例性的,camerahal驱动接收到venc模块输入的处理结果和第一应用id,即携带视频流和第一应用id的uvc消息后,camerahal驱动可将视频流发送给第一应用,以使第一应用对视频流进行相应处理。例如渲染并显示。
157.s213,第二应用向camerahal驱动输入包含第二应用id的调用请求消息。
158.示例性的,本实施例中仅以第二应用id为例进行说明。在其他实施例中,也可以是第一应用向camerahal驱动输入包含第一应用的另一子功能的应用子功能id的调用请求消息,还可以是第二应用向camerahal驱动输入包含第二应用下的子功能对应的应用子功能id的调用请求消息。
159.s214,camerahal驱动通过uvc通道向摄像头输入包含第二应用id的第二消息。
160.s215,cpu接收所述第二消息,根据第二应用id,确定类型和需要启动的模块,向传感器模块输出指令,以及向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各自的配置参数,所述指令用于指示传感器模块执行何种功能,配置参数用于配置传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块。
161.在一种可能的实现方式中,venc模块为独占模块,即其只能执行一个视频进程。若venc模块已被第一应用使用,则在第一应用使用完毕后,第二应用才使用venc模块。若venc模块未被任何应用使用,则第二应用可直接使用venc模块。在另一种可能的实现方式中,ai模块为非独占模块,即其可以执行一个或多个进程。无论ai模块是否已被调用,第二应用均可直接使用ai模块。
162.s216,传感器模块根据cpu的指示,进行相应处理,并将处理结果和第二应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和第二应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
163.s217,cpu输出至vpss模块的配置参数指示是否输出至ai模块。
164.s218,vpss模块将处理结果和第二应用id输出至ai模块,ai模块进行相应处理,得到处理结果。
165.s219,ai模块通过socket通道向cameraproxy驱动输出处理结果和第二应用id。
166.s220,根据第二应用id,cameraproxy驱动向第二应用返回处理结果。
167.s221,cpu输出至vpss模块的配置参数指示是否输出至venc模块或vgs模块。
168.s222,vpss模块将处理结果和第二应用id输出至venc模块或vgs模块,venc模块或vgs模块进行相应处理,得到处理结果。
169.s223,venc模块通过uvc通道向camerahal驱动输出处理结果和第二应用id。
170.s224,根据第二应用id,camerahal驱动向第二应用返回处理结果。
171.有关s213-s224的具体内容,可参照s201-s212,此处不再赘述。
172.下面,结合图5c进一步阐明第二电子设备远程调用第一电子设备的摄像头的方法流程。如图5c所示,以第一电子设备中的第一应用为“远程看家”应用,第二应用为“儿童模式”应用为例,对摄像头的调用方式进行举例说明。其中,“远程看家”应用在调用摄像头时,使用摄像头拍摄或录制家里的视频,使得用户远程通过第一电子设备即可获悉到家里的情况。“儿童模式”应用在调用摄像头时,使用摄像头动态捕捉孩子的图像,并通过ai识别,判断识别孩子的状态,使得用户远程通过第一电子设备即可获悉到孩子的情况。示例性的,如果孩子为躺卧状态,则确定存在躺卧状态ai事件。
173.如图5c所示,在第二电子设备启动“远程看家”应用,并使得第一电子设备启动“远程看家”应用(第一电子设备可为息屏状态,或者亮屏状态)后,第二电子设备远程调用第一电子设备的摄像头的方法步骤包括:
174.s301,“远程看家”应用向camerahal驱动输入包含远程看家应用id的调用请求消息。
175.其中,所述“远程看家”应用为第一电子设备上安装的“远程看家”应用。第一电子设备和第二电子设备均安装有“远程看家”应用。“远程看家”应用启动后,获取远程看家应用id,并向camerahal驱动发送调用请求消息,用于请求调用摄像头,该消息携带有远程看家应用id。该“远程看家”应用可为第一电子设备上的“远程看家”应用。
176.需要说明的是,“远程看家”应用具体包括三种子功能:ai功能、视频流功能、ai功能和视频流功能。不同的子功能所对应的“远程看家”应用id也不同。比如ai功能、视频流功能、ai功能和视频流功能所对应的“远程看家”应用id分别为id11、id12和id13。示例性地,在用户打开“远程看家”应用时,会弹出选择界面,让用户选择上述三种功能中的一种;根据用户对其中一种功能的选择,获取对应的应用id。比如,用户选择视频流功能,则获取的应用id为id12。
177.s302,camerahal驱动通过uvc通道向摄像头输入包含远程看家应用id的第一消息。
178.s303,cpu接收所述第一消息,根据远程看家应用id,确定类型和需要启动的模块,向传感器模块输出指令,以及向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各自的配置参数,所述指令用于指示传感器模块执行何种功能,配置参数用于配置传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块。
179.s304,传感器模块根据cpu的指示,进行相应处理,并将处理结果和远程看家应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和远程看家应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
180.s305,cpu输出至vpss模块的配置参数指示是否输出至ai模块。
181.s306,vpss模块将处理结果和远程看家应用id输出至vgs模块,vgs模块根据vpss模块的输入,进行相应处理,并将处理结果和远程看家应用id输出至venc模块,venc模块进行相应处理,得到处理结果。
182.s307,venc模块通过uvc通道向camerahal驱动输出处理结果和远程看家应用id。
183.s308,根据远程看家应用id,camerahal驱动向“远程看家”应用返回处理结果。
184.示例性的,最终,第一电子设备的“远程看家”应用接收到处理结果后,向第二电子设备(例如手机)的“远程看家”应用传输获取到的处理结果,即视频流,用户可通过手机上的“远程看家”应用查看第一电子设备的摄像头所拍摄的家里的画面。
185.s309,“儿童模式”应用向camerahal驱动输入包含儿童模式应用id的调用请求消息。
186.示例性的,用户可将第二电子设备的“远程看家”应用置于后台,即“远程看家”应用仍然在远程调用第一电子设备的摄像头,并且用户可通过第二电子设备(例如手机)触发“儿童模式”应用启动。示例性的,“儿童模式”应用仅具有ai功能,并无其他子功能。儿童模式应用id可以是儿童模式应用的应用包名。
187.s310,camerahal驱动通过uvc通道向摄像头输入包含儿童模式应用id的第二消息。
188.s311,cpu接收所述第二消息,根据儿童模式应用id,确定类型和需要启动的模块,向传感器模块输出指令,以及向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各自的配置参数,所述指令用于指示传感器模块执行何种功能,配置参数用于配置传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块。
189.具体的,cpu向传感器模块输出指令,以指示传感器模块采集图像。根据cpu提供的配置参数,传感器模块、vi模块、vpss模块和ai模块启动,并且传感器模块的配置参数指示传感器模块将处理结果输出至vi模块。vi模块的配置参数指示vi模块将处理结果输出至vpss模块。vpss模块的配置参数指示vpss模块将处理结果输出至ai模块。ai模块的配置参数指示ai模块将处理结果输出至cameraproxy驱动。vgs模块的配置参数指示vgs模块无需启动,venc模块的配置参数指示venc模块无需启动。
190.s312,传感器模块根据cpu的指示,进行相应处理,并将处理结果和儿童模式应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和儿童模式应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
191.s313,cpu输出至vpss模块的配置参数指示是否输出至ai模块。
192.s314,vpss模块将处理结果和儿童模式应用id输出至ai模块,ai模块根据vpss模块的输入,进行相应处理,得到处理结果。
193.示例性的,ai模块基于接收到的vpss处理后的图像,对图像进行ai识别,根据识别到的特征,检测是否存在对应的ai事件。在本实施例中,ai事件即为儿童躺卧ai事件。若检测到儿童躺卧ai事件,则执行s315。若未检测到儿童躺卧ai事件,则ai模块继续对vpss处理后的图像进行ai检测。
194.s315,根据儿童模式应用id,ai模块通过socket通道向cameraproxy驱动输出处理结果。
195.示例性的,ai模块向cameraproxy驱动发送socket消息,消息中携带儿童躺卧ai事件。
196.s316,根据儿童模式应用id,cameraproxy驱动向“儿童模式”应用返回处理结果。
197.示例性的,cameraproxy驱动将儿童躺卧ai事件上报给“儿童模式”应用。“儿童模式”应用可向用户的第二电子设备发送儿童躺卧ai事件,以通过第二电子设备的“儿童模式”应用通知用户存在儿童躺卧ai事件,用户可获知儿童正在家中躺卧。
198.s317,cpu输出至vpss模块的配置参数指示是否输出至venc模块或vgs模块。
199.示例性的,“儿童模式”应用对应的模块调用方式指示无需启动venc模块或vgs模块。因此,vpss模块可基于cpu发送的配置参数确定无需将处理后的结果输出至venc模块或vgs模块。
200.在s301-s317中,未描述事宜,与s201-s222相同或相类似,此处不再赘述。
201.在另外的示例中,第一应用可为“ai健身”应用,第二应用可为“儿童模式”应用。其中“ai健身”应用在调用摄像头时,使用摄像投捕捉当前用户的图像,并通过ai识别,判断用户的健身动作是否标准。示例性的,如果判断用户的健身动作不标准,则确定存在动作不标准ai事件。
202.如图5d所示,第二电子设备远程调用第一电子设备的摄像头的方法步骤包括:
203.s401,“ai健身”应用向camerahal驱动输入包含ai健身应用id的调用请求消息。
204.示例性的,“ai健身”应用仅具有ai功能,并无其他子功能。ai健身应用id可以是ai健身应用的应用包名。
205.s402,camerahal驱动通过uvc通道向摄像头输入包含ai健身应用id的第一消息。
206.s403,cpu接收所述第一消息,根据ai健身应用id,确定类型和需要启动的模块,向传感器模块输出指令,以及向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各自的配置参数,所述指令用于指示传感器模块执行何种功能,配置参数用于配置传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块。
207.s404,传感器模块根据cpu的指示,进行相应处理,并将处理结果和ai健身应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和ai健身应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
208.s405,cpu输出至vpss模块的配置参数指示是否输出至ai模块。
209.s406,vpss模块将处理结果和ai健身应用id输出至ai模块,ai模块根据vpss模块的输入,进行相应处理,得到处理结果。
210.s407,ai模块通过socket通道向cameraproxy驱动输出处理结果和ai健身应用id。
211.s408,根据ai健身应用id,cameraproxy驱动向“ai健身”应用返回处理结果。
212.s409,cpu输出至vpss模块的配置参数指示是否输出至venc模块或vgs模块。在cpu输出至vpss模块的配置参数指示不输出至venc模块或vgs模块后,执行s410。
213.s410,“儿童模式”应用向camerahal驱动输入包含儿童模式应用id的调用请求消息。
214.s411,camerahal驱动通过uvc通道向摄像头输入包含儿童模式应用id的第二消息。
215.s412,cpu接收所述第二消息,根据儿童模式应用id,确定类型和需要启动的模块,向传感器模块输出指令,以及向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各自的配置参数,所述指令用于指示传感器模块执行何种功能,配置参数用于配置传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块。
216.s413,传感器模块根据cpu的指示,进行相应处理,并将处理结果和儿童模式应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和儿童模式应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
217.s414,cpu输出至vpss模块的配置参数指示是否输出至ai模块。在cpu输出至vpss模块的配置参数指示输出至ai模块后,执行s415。
218.s415,vpss模块将处理结果和儿童模式应用id输出至ai模块,ai模块根据vpss模块的输入,进行相应处理,得到处理结果。
219.s416,ai模块通过socket通道向cameraproxy驱动输出处理结果和儿童模式应用id。
220.s417,根据儿童模式应用id,cameraproxy驱动向“儿童模式”应用返回处理结果。
221.s418,cpu输出至vpss模块的配置参数指示是否输出至venc模块或vgs模块。
222.在s401-s418中,未描述事宜,与s301-s317相同或相类似,此处不再赘述。
223.实施例二
224.图6为本技术实施例二提供的电子设备中摄像头的结构示意图。图6的摄像头700所包括的部件与图4的摄像头400所包括的部件相同,只是附图标记相应做了调整。比如,图6中的vpss模块622与图4中的vpss模块422,两者的功能和用途相同。因此有关摄像头600包括的各部件,可参照图4中对应部件的介绍,此处不再赘述。
225.图6中,摄像头600也通过usb接口与电子设备710连接,usb接口仅为示例,其他的接口诸如uart、usart也可用于两者的连接。图6与图4不同的是,在电子设备610的hal 612中,hal 612至少包括cameraproxy驱动。cameraproxy驱动用于接收ai模块623通过socket通道输入的数据,以及venc模块624通过uvc通道输入的数据。cameraproxy驱动为摄像头在电子设备一侧的代理,用于接收从摄像头上传的两路数据,并继续分两路向电子设备的更高层传输,以及用于接收从电子设备更高层的数据,并通过硬件层向摄像头的两路传输。需要说明的是,若摄像头600通过一个usb接口与电子设备600连接,则socket消息与uvc消息共用usb线缆传输,在传输过程中,摄像头的ai模块或venc模块可采用抢占或均衡的方式占用usb线缆以传输各自的数据。通过socket通道输入数据的示例为发送socket消息;通过uvc通道输入数据的示例为发送uvc消息,例如发送set_cur消息。
226.在一种可能的实现方式中,cameraproxy驱动可获取电子设备610中启动应用的应用标识信息和/或类型,并将获取的应用标识信息和/或类型发送至摄像头600;摄像头600的cpu 640根据接收到的应用标识信息和/或类型,确定各模块的配置参数,并将各模块的配置参数分别发送至各模块。各模块根据接收的配置参数,确定是否启动、运行、操作、处理结果发送至哪个支路等。
227.可选地,存储器650存储有应用标识信息(即应用id)、类型与模块调用方式之间的对应关系。摄像头600的cpu 640基于接收到的应用标识信息,获取到对应的类型和模块调用方式,并启动(或调用)对应的模块。
228.可选地,存储器650也可不存储有应用标识信息(即应用id)、类型与模块调用方式之间的对应关系。
229.在无特别说明的情况下,本技术实施例二涉及的相关内容与本技术实施例一的相关内容相同或相类似,此处不再赘述。
230.图7a中电子设备的cameraproxy驱动对摄像头的调用过程,与图5a中camerahal驱动和cameraproxy驱动对摄像头的调用过程基本相同。所不同的是,图5a中有关第一消息的发送是由camerahal驱动执行,而对ai模块或venc模块处理结果的接收,是由cameraproxy
驱动来执行。而图7a中有关第一消息的发送以及对ai模块或venc模块处理结果的接收,都是cameraproxy驱动来执行。图7a中电子设备的cameraproxy驱动对摄像头的调用过程的具体步骤如下。
231.s601,cameraproxy驱动通过uvc通道向摄像头输入包含应用id的第一消息。
232.s602,cpu接收所述第一消息,根据应用id,确定类型和需要启动的模块,向传感器模块输出指令,以及向传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块输出各自的配置参数,所述指令用于指示传感器模块执行何种功能,配置参数用于配置传感器模块、vi模块、vpss模块、ai模块、venc模块和vgs模块。
233.s603,传感器模块根据cpu的指示,进行相应处理,并将处理结果和应用id输出至vi模块;vi模块根据传感器模块的输入,进行相应处理,并将处理结果和应用id输出至vpss模块;vpss模块进行相应处理,得到处理结果。
234.s604,cpu输出至vpss模块的配置参数指示是否输出至ai模块。在cpu输出至vpss模块的配置参数指示输出至ai模块后,执行s605;否则,执行s608;
235.s605,vpss模块将处理结果输出至ai模块,ai模块进行相应处理,得到处理结果。
236.s606,ai模块通过socket通道向cameraproxy驱动输出处理结果和应用id。
237.s607,cpu输出至vpss模块的配置参数指示是否输出至venc模块或vgs模块。在cpu输出至vpss模块的配置参数指示输出至venc模块或vgs模块后,执行s608;
238.s608,vpss模块将处理结果和应用id输出至venc模块或vgs模块,venc模块或vgs模块进行相应处理,得到处理结果。
239.s609,venc模块通过uvc通道向cameraproxy驱动输出处理结果。
240.图7b进一步说明了第二电子设备远程调用第一电子设备的摄像头的方法步骤。与图5b相比,两者基本相同。所不同的是,图5b中第一应用、第二应用都是通过camerahal驱动向摄像头发送包含应用id的消息,并根据应用id的不同,通过camerahal驱动或cameraproxy驱动接收处理结果和应用id。而图7b中第一应用、第二应用都是通过cameraproxy驱动向摄像头发送包含应用id的消息,并都是通过cameraproxy驱动接收处理结果和应用id。有关图7b中的具体步骤,此处不再赘述。
241.图7c和图7d分别结合具体的应用,进一步说明了第二电子设备远程调用第一电子设备的摄像头的方法步骤。其中,图7c中第一应用为“远程看家”应用,第二应用为“儿童模式”应用。图7d中第一应用为“ai健身”应用,第二应用为“儿童模式”应用。图7c、图7d分别与图5c、图5d相比,基本相同。所不同的是,图5c、图5d中两个具体应用都是通过camerahal驱动向摄像头发送包含应用id的消息,并根据应用id的不同,通过camerahal驱动或cameraproxy驱动接收处理结果和应用id。而图7c、图7d中两个具体应用都是通过cameraproxy驱动向摄像头发送包含应用id的消息,并都是通过cameraproxy驱动接收处理结果和应用id。有关图7c、图7d中的具体步骤,此处不再赘述。
242.综上,在本技术中,可基于不同的类型,启动摄像头的相应模块,实现基于类型的动态调用方法,使得多个应用使用摄像头。
243.可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的
方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
244.本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
245.在另一个示例中,图8示出了本技术实施例的一种装置800的示意性框图装置800可包括:处理器801和收发器/收发管脚802,可选地,还包括存储器803。
246.装置800的各个组件通过总线804耦合在一起,其中总线804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线804。
247.可选地,存储器803可以用于前述方法实施例中的指令。该处理器801可用于执行存储器803中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
248.装置800可以是上述方法实施例中的第一电子设备、第二电子设备或摄像头。
249.其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
250.本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的摄像头的调用方法。
251.本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的摄像头的调用方法。
252.另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的摄像头的调用方法。
253.其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
254.通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
255.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
256.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
257.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
258.本技术各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本技术的范围之内。
259.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
260.以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1