掌桥专利:专业的专利平台
掌桥专利
首页

多系统间的摄像头数据共享方法、装置、设备及存储介质

文献发布时间:2024-07-23 01:35:21


多系统间的摄像头数据共享方法、装置、设备及存储介质

技术领域

本申请涉及数据处理技术领域,尤其涉及一种多系统间的摄像头数据共享方法、装置、设备及存储介质。

背景技术

目前,可以通过硬件隔离的方式,使系统级芯片能够同时运行多个操作系统,从而提升系统级芯片的集成度。但是,在对系统级芯片进行硬件隔离之后,如何在系统级芯片上运行的多个操作系统之间进行数据共享,成为亟需解决的技术问题。

示例性的,假设,系统级芯片中可以同时运行两个操作系统,这两个操作系统均需要摄像头A所采集的摄像头数据,那么,就需要在这两个操作系统之间共享摄像头A所采集的摄像头数据。

一种可能的实施方式中,可以对系统级芯片内同时运行的两个操作系统进行主从关系部署,从而可以使主操作系统能够独占摄像头A,获取摄像头A所采集的摄像头数据。之后,主操作系统可以对获取摄像头A所采集的摄像头数据进行拷贝处理,并将拷贝之后的摄像头数据发送至从操作系统,从而实现两个操作系统对摄像头数据的共享。

这种摄像头数据共享方式,需要在系统级芯片所运行的多个系统间部署主从关系,逻辑复杂;并且需要占用主操作系统的系统资源来拷贝摄像头数据,从而降低了系统资源的利用率。除此之外,先在主操作系统内拷贝摄像头数据,然后,再将摄像头数据传送至从操作系统,使从操作系统获取摄像头数据存在一定延时,而且,在出现数据传输不稳定的情况下,还影响了从操作系统使用摄像头数据的效果,影响了用户体验。

发明内容

本申请提供一种多系统间的摄像头数据共享方法、装置、设备及存储介质,用以解决现有技术中在多个系统间共享摄像头数据时,摄像头数据共享实时性差,且需要耗费额外的系统资源的技术问题。

第一方面,本申请提供一种多系统间的摄像头数据共享方法,应用于运行有多个系统的系统级芯片,包括:

在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动;

响应于所述系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将所述摄像头打开请求发送至所述第一摄像头采集驱动中;

基于所述第一摄像头采集驱动打开与所述摄像头打开请求相匹配的目标摄像头后,基于配置的串行器将所述目标摄像头所采集的摄像头数据,传输至各所述目标系统分别对应的数据传输接口中,并通过所述对应的数据传输接口,将所述摄像头数据传输至对应的目标系统中。

一个示例中,所述目标系统指示所述系统级芯片所运行的除所述第一系统之外的第二系统;所述响应于所述系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将所述摄像头打开请求发送至所述第一摄像头采集驱动中,包括:

响应于所述第二系统内的应用程序所发起的摄像头打开请求,在所述第二系统所在域中加载第二摄像头采集驱动;

基于所述第二摄像头采集驱动,将所述摄像头打开请求通过远程处理器消息传递组件,发送至所述第一摄像头采集驱动中。

一个示例中,所述目标系统的数量为多个;所述基于配置的串行器将所述目标摄像头所采集的摄像头数据,传输至各所述目标系统分别对应的数据传输接口中,包括:

基于所述目标系统的数量和所述配置的串行器对获取的摄像头数据进行拷贝处理,得到拷贝后的摄像头数据;

将获取的摄像头数据和拷贝后的摄像头数据,传输至各所述目标系统分别对应的数据传输接口中。

一个示例中,在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动之后,所述方法还包括:

获取串行器配置文件,并基于所述串行器配置文件对串行器进行配置,得到所述配置的串行器;其中,所述串行器配置文件用于配置串行器对摄像头数据进行拷贝处理并多路输出。

一个示例中,在通过所述对应的数据传输接口,将所述摄像头数据传输至对应的目标系统中之后,所述方法还包括:

响应于所述目标系统内的应用程序所发起的摄像头关闭请求,将所述摄像头关闭请求发送至所述第一摄像头采集驱动中;

若确定出所述第一摄像头采集驱动接收到每个所述目标系统发送的针对所述目标摄像头的摄像头关闭请求,则基于所述第一摄像头采集驱动关闭所述目标摄像头。

一个示例中,所述目标系统指示所述系统级芯片所运行的除所述第一系统之外的第二系统;将所述摄像头关闭请求发送至所述第一摄像头采集驱动中,包括:

基于所述第二系统所在域内加载的第二摄像头采集驱动和远程处理器消息传递组件,将所述摄像头关闭请求发送至所述第一摄像头采集驱动中。

一个示例中,所述方法还包括:

响应于对所述系统级芯片的上电操作,启动Boot程序;

在所述Boot程序启动完成之后,加载能够在所述系统级芯片中运行的各个系统,以使所述各个系统运行在所述系统级芯片中。

第二方面,本申请提供一种多系统间的摄像头数据共享装置,应用于运行有多个系统的系统级芯片,包括:

加载单元,用于在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动;

响应单元,用于响应于所述系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将所述摄像头打开请求发送至所述第一摄像头采集驱动中;

传输单元,用于基于所述第一摄像头采集驱动打开与所述摄像头打开请求相匹配的目标摄像头后,基于配置的串行器将所述目标摄像头所采集的摄像头数据,传输至各所述目标系统分别对应的数据传输接口中,并通过所述对应的数据传输接口,将所述摄像头数据传输至对应的目标系统中。

一个示例中,所述目标系统指示所述系统级芯片所运行的除所述第一系统之外的第二系统;此时,响应单元,用于:

响应于所述第二系统内的应用程序所发起的摄像头打开请求,在所述第二系统所在域中加载第二摄像头采集驱动;

基于所述第二摄像头采集驱动,将所述摄像头打开请求通过远程处理器消息传递组件,发送至所述第一摄像头采集驱动中。

一个示例中,所述目标系统的数量为多个;此时,传输单元,用于:

基于所述目标系统的数量和所述配置的串行器对获取的摄像头数据进行拷贝处理,得到拷贝后的摄像头数据;

将获取的摄像头数据和拷贝后的摄像头数据,传输至各所述目标系统分别对应的数据传输接口中。

一个示例中,该装置还包括初始化单元,用于:

在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动之后,获取串行器配置文件,并基于所述串行器配置文件对串行器进行配置,得到所述配置的串行器;其中,所述串行器配置文件用于配置串行器对摄像头数据进行拷贝处理并多路输出。

一个示例中,该装置还包括关闭单元,用于:

在通过所述对应的数据传输接口,将所述摄像头数据传输至对应的目标系统中之后,响应于所述目标系统内的应用程序所发起的摄像头关闭请求,将所述摄像头关闭请求发送至所述第一摄像头采集驱动中;

若确定出所述第一摄像头采集驱动接收到每个所述目标系统发送的针对所述目标摄像头的摄像头关闭请求,则基于所述第一摄像头采集驱动关闭所述目标摄像头。

一个示例中,所述目标系统指示所述系统级芯片所运行的除所述第一系统之外的第二系统;此时,关闭单元,用于:

基于所述第二系统所在域内加载的第二摄像头采集驱动和远程处理器消息传递组件,将所述摄像头关闭请求发送至所述第一摄像头采集驱动中。

一个示例中,该装置还包括启动单元,用于:

响应于对所述系统级芯片的上电操作,启动Boot程序;

在所述Boot程序启动完成之后,加载能够在所述系统级芯片中运行的各个系统,以使所述各个系统运行在所述系统级芯片中。

第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;

所述存储器存储计算机执行指令;

所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面所述的方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面所述的方法。

第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括:计算机执行指令,所述计算机执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机执行指令,所述至少一个处理器执行所述计算机执行指令,使得电子设备执行第一方面所述的方法。

本申请实施例提供的多系统间的摄像头数据共享方法、装置、设备及存储介质,可以在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动,从而通过在系统级芯片内启动较快的系统所在域中加载第一摄像头采集驱动,以提升第一摄像头采集驱动的加载速度,进而提升获取摄像头数据的速度。在加载第一摄像头采集驱动之后,可以响应于系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将摄像头打开请求发送至第一摄像头采集驱动中,从而可以基于第一摄像头采集驱动打开与摄像头打开请求相匹配的目标摄像头。之后,可以基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中,并通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中。这种实施方式,可以通过串行器的拷贝功能,将摄像头数据先进行拷贝之后,再同时传输至不同的系统中,实现多系统间的摄像头数据的共享。此时,可以避免将摄像头数据从主操作系统拷贝后再传输至从操作系统过程中所出现的性能损耗、数据传输延迟、数据传输不稳定的现象,进而提升了摄像头数据传输的质量,使摄像头数据在各个系统内的应用程序内的展示实时性更强、流畅度更好。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的一种多系统间的摄像头数据共享方法的应用场景示意图;

图2为本申请实施例提供的一种多系统间的摄像头数据共享方法的流程示意图;

图3为本申请实施例提供的另一种多系统间的摄像头数据共享方法的流程示意图;

图4为本申请实施例提供的一种基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中的流程示意图;

图5为本申请实施例提供的一种多系统间的摄像头数据共享方法的实施流程示意图;

图6为本申请实施例提供的一种多系统间的摄像头数据共享装置的结构示意图;

图7为本申请实施例提供的另一种多系统间的摄像头数据共享装置的结构示意图;

图8为本申请实施例提供的一种电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

目前,可以通过硬件隔离的方式,使系统级芯片能够同时运行多个操作系统,从而提升系统级芯片的集成度。但是,在对系统级芯片进行硬件隔离之后,如何在系统级芯片所运行的多个系统之间进行数据共享,成为亟需解决的技术问题。

下面以在系统级芯片所运行的多个操作系统之间共享摄像头数据为例进行说明。参见图1,图1为本申请实施例提供的一种多系统间的摄像头数据共享方法的应用场景示意图。如图1所示,在该应用场景中可以包括系统级芯片、摄像头和串行器;其中,摄像头所采集的摄像头数据可以通过串行器传输至系统级芯片中。

其中,可以将系统级芯片进行硬件隔离,得到多个域(参见图1所示的域1、域2、…、域n),每个域中可以运行一个系统,或者,可以根据虚拟化技术在一个域中运行多个系统。这里以每个域中可以运行一个系统为例进行说明。

当系统级芯片中运行有多个系统,且多个系统间需要共享摄像头所采集的摄像头数据时,现有的技术方案,需要在系统级芯片的各个系统中布置主从逻辑,以从需要共享摄像头数据的多个系统中确定出主操作系统。其中,主操作系统可以通过图1所示的IIC总线(Inter-Integrated Circuit,集成电路总线)控制摄像头,并通过数据传输接口传输摄像头数据,从而将摄像头采集的摄像头数据传输至主操作系统中,之后,主操作系统再拷贝获取的摄像头数据,并发送至从操作系统,完成摄像头数据的共享。

一个示例中,假设,将系统级芯片隔离为CP域、AP域和RP域三个部分。其中,RP域中可以独立运行安全操作系统(例如Safety OS),CP域中可以独立运行Linux系统,AP域中可以独立运行Android系统,此时,可以实现系统级芯片中同时运行多个系统。此时,假设,摄像头数据需要同时使用在Linux系统和Android系统中,那么,就需要一种在Linux系统和Android系统间共享摄像头数据的方法。

相关技术中,在Linux系统和Android系统间共享摄像头数据时,需要从Linux系统和Android系统中确定出主操作系统和从操作系统。然后,先将摄像头数据发送至主操作系统,再对主操作系统所获取的摄像头数据进行拷贝处理后,发送至从操作系统,从而实现Linux系统和Android系统间摄像头数据的共享。

假设,确定的主操作系统为CP域中的Linux系统,从操作系统为AP域中的Android系统。那么,CP域中的Linux系统,可以通过CP域中的IIC总线与摄像头进行通信,从而独占摄像头,并通过串行器和第一传输接口,获取摄像头所采集的摄像头数据。之后,可以在CP域中的Linux系统中拷贝获取的摄像头数据,并将拷贝的摄像头数据从CP域中的Linux系统中发送至AP域中的Android系统。又例如,在确定的主操作系统为AP域中的Android系统,从操作系统为CP域中的Linux系统。那么,AP域中的Android系统,可以通过AP域中的IIC总线与摄像头进行通信,从而独占摄像头,并通过串行器和第二传输接口,获取摄像头所采集的摄像头数据。之后,可以在AP域中的Android系统中拷贝获取的摄像头数据,并将拷贝的摄像头数据从AP域中的Android系统中发送至CP域中的Linux系统。

这种摄像头数据共享方式,需要在系统级芯片所运行的多个系统间部署主从关系,逻辑复杂;并且需要占用主操作系统的系统资源来拷贝摄像头数据,从而降低了系统资源的利用率。除此之外,先在主操作系统内拷贝摄像头数据,然后,再将摄像头数据传送至从操作系统,使从操作系统获取摄像头数据存在一定延时,导致从操作系统获取摄像头数据的实时性较差。而且,在出现数据传输不稳定的情况下,还会使从操作系统获取的摄像头数据出现卡顿现象,进而影响了从操作系统使用摄像头数据的效果,影响了用户体验。

本申请提供的多系统间的摄像头数据共享方法,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图2为本申请实施例提供的一种多系统间的摄像头数据共享方法的流程示意图,该方法可以应用于运行有多个系统的系统级芯片,如图2所示,该方法包括:

S201、在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动。

一个示例中,本申请实施例所涉及的系统级芯片可以应用于车载系统中。

一个示例中,第一系统可以理解为系统级芯片所运行的各个系统中,启动速度较快的系统,例如,如上述描述,CP域内运行Linux系统,AP域中运行Android系统,那么,第一系统就可以理解为Linux系统,第一系统所在域就可以理解为CP域。此时,由于CP域的启动会比AP域的启动更快,因此,将第一摄像头采集驱动加载于CP域内,可以更快更早的加载第一摄像头驱动,从而提升获取摄像头数据的速度,以满足系统级芯片内各个系统获取摄像头数据的需求。

此时,第一系统可以为Linux系统,也可以为其他类型的系统,这里对第一系统的类型不作限定,以满足实际需要为准。

一个示例中,第一摄像头采集驱动用于管理与系统级芯片进行数据通信的摄像头,以使系统级芯片能够准确的获取摄像头所采集的摄像头数据。此时,第一摄像头采集驱动一方面用于配置传输摄像头数据的串行器。在本申请实施例中,可以将串行器配置为多路输出模式(例如,在两个系统同时请求获取摄像头数据,那么该多路输出模式即为双路输出模式)。此时,串行器可以在多个系统同时请求传输摄像头数据的情况下,在串行器内部拷贝摄像头数据,并将摄像头数据分别传输至各个系统对应的数据传输接口。另一方面,第一摄像头采集驱动还用于配置与系统级芯片所包括的各个域进行数据传输的数据传输接口,从而使数据传输接口能够传输摄像头数据。

S202、响应于系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将摄像头打开请求发送至第一摄像头采集驱动中。

一个示例中,目标系统的数量可以为一个,也可以为多个,并且,该目标系统中可以包括第一系统,也可以不包括第一系统。此时,目标系统可以包括上述的第一系统,和/或,系统级芯片内所运行的除第一系统之外的至少一个第二系统,这里对目标系统的数量和类型不作限定,以满足实际需要为准。

一个示例中,目标系统内的应用程序可以理解为需要获取摄像头数据的任一应用程序,这里对应用程序的类型不作限定。

一个示例中,摄像头打开请求可以用于请求打开目标摄像头,此时,摄像头打开请求所请求打开的目标摄像头的数量可以为一个,也可以为多个。

S203、基于第一摄像头采集驱动打开与摄像头打开请求相匹配的目标摄像头后,基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中,并通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中。

一个示例中,配置的串行器可以对目标摄像头所采集的摄像头数据根据需要进行拷贝处理,并在拷贝处理后,将摄像头数据多路输出至各个目标系统对应的数据传输接口中,从而将摄像头数据同时传输至各个目标系统中。

通过上述描述可知,本申请实施例,可以在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动,从而通过在系统级芯片内启动较快的系统所在域中加载第一摄像头采集驱动,以提升第一摄像头采集驱动的加载速度,进而提升获取摄像头数据的速度。在加载第一摄像头采集驱动之后,可以响应于系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将摄像头打开请求发送至第一摄像头采集驱动中,从而可以基于第一摄像头采集驱动打开与摄像头打开请求相匹配的目标摄像头。之后,可以基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中,并通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中。这种实施方式,可以通过串行器的拷贝功能,将摄像头数据先进行拷贝之后,再同时传输至不同的系统中,实现多系统间的摄像头数据的共享。此时,可以避免将摄像头数据从主操作系统拷贝后再传输至从操作系统过程中所出现的性能损耗、数据传输延迟、数据传输不稳定的现象,进而提升了摄像头数据传输的质量,使摄像头数据在各个系统内的应用程序内的展示实时性更强、流畅度更好。

图3为本申请实施例提供的另一种多系统间的摄像头数据共享方法的流程示意图,如图3所示,该方法包括:

S301、响应于对系统级芯片的上电操作,启动Boot程序。

一个示例中,Boot程序可以理解为系统级芯片的引导程序或者启动程序,用于启动系统级芯片。

S302、在Boot程序启动完成之后,加载能够在系统级芯片中运行的各个系统,以使各个系统运行在系统级芯片中。

一个示例中,可以在系统级芯片的CP域中加载Linux系统,在AP域中加载Android系统,在RP域中加载安全操作系统(例如Safety OS)。在系统级芯片的各个域中的操作系统加载完成之后,就可以在系统级芯片中同时运行多个操作系统。

S303、在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动。

一个示例中,本步骤可以参见上述S201所描述的内容,这里不再详细赘述。

S304、获取串行器配置文件,并基于串行器配置文件对串行器进行配置,得到配置的串行器。

其中,串行器配置文件用于配置串行器对摄像头数据进行拷贝处理并多路输出。

这种实施方式,可以通过外置的串行器来拷贝数据并分路传输,可以提高系统级芯片所运行的各个系统获取摄像头数据的实时性,并且使各个系统没有额外的开销,节省了系统资源,提升了系统性能。

S305、响应于系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将摄像头打开请求发送至第一摄像头采集驱动中。

一个示例中,若目标系统指示上述的第一系统,那么,可以直接将第一系统内的应用程序所发起的摄像头打开请求,发送至第一摄像头采集驱动中。

一个示例中,若目标系统指示系统级芯片所运行的除第一系统之外的第二系统,那么,可以响应于第二系统内的应用程序所发起的摄像头打开请求,在第二系统所在域中加载第二摄像头采集驱动;并基于第二摄像头采集驱动,将摄像头打开请求通过远程处理器消息传递组件,发送至第一摄像头采集驱动中。

一个示例中,远程处理器消息传递组件可以理解为RPMSG组件。

这种实施方式中,由于通过系统级芯片所运行的第一系统所在域中的第一摄像头采集驱动来控制摄像头采集摄像头数据,因此,系统级芯片所运行的除第一系统之外的第二系统,无法直接将摄像头打开请求发送至第一摄像头采集驱动中,因此,本申请实施例中,可以通过在第二系统所在域中加载第二摄像头采集驱动,并通过第二摄像头采集驱动和远程处理器消息组件,将第二系统内的应用程序所发起的摄像头打开请求,发送至第一摄像头采集驱动中,从而实现了不同系统之间的数据共享。

S306、基于第一摄像头采集驱动打开与摄像头打开请求相匹配的目标摄像头后,基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中,并通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中。

一个示例中,在目标系统的数量为多个的情况下,则可以基于目标系统的数量和配置的串行器对获取的摄像头数据进行拷贝处理,得到拷贝后的摄像头数据。然后,将获取的摄像头数据和拷贝后的摄像头数据,传输至各目标系统分别对应的数据传输接口中。

一个示例中,参见图4,图4为本申请实施例提供的一种基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中的流程示意图。如图4所示,可以将系统级芯片划分为RP域、CP域和AP域。假设,系统级芯片所运行的第一系统所在域为CP域,此时,可以在CP域中加载第一摄像头采集驱动。并根据第一摄像头采集驱动配置串行器,使串行器能够支持拷贝和分路输出的功能,得到配置的串行器。

之后,假设,接收到CP域中所运行的目标系统内的应用程序1和AP域中所运行的目标系统内的应用程序2所发起的摄像头打开请求(其中,应用程序1发起的摄像头打开请求和应用程序2发起的摄像头打开请求相同,也即应用程序1和应用程序2共享摄像头数据),那么,可以在AP域中加载第二摄像头采集驱动,并将AP域中所运行的目标系统内的应用程序2所发起的摄像头打开请求,通过第二摄像头采集驱动经远程处理器消息传递组件发送至第一摄像头采集驱动。

接着,可以基于第一摄像头采集驱动打开与摄像头打开请求相匹配的目标摄像头。此时,在配置的串行器接收到摄像头采集的摄像头数据之后,可以对摄像头数据进行拷贝处理,得到拷贝的摄像头数据。此时,可以将接收到的摄像头数据和拷贝的摄像头数据,通过通路1和第一传输接口传输至CP域中的应用程序1,以及通过通路2和第二传输接口传输至AP域中的应用程序2。

一个示例中,在通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中之后,本申请实施例还可以接收系统级芯片所运行的目标系统内的应用程序所发起的摄像头关闭请求,来停止获取摄像头数据,具体参见下面所描述的步骤。

S307、响应于目标系统内的应用程序所发起的摄像头关闭请求,将摄像头关闭请求发送至第一摄像头采集驱动中。

S308、若确定出第一摄像头采集驱动接收到每个目标系统发送的针对目标摄像头的摄像头关闭请求,则基于第一摄像头采集驱动关闭目标摄像头。

一个示例中,在目标摄像头的数量为一个的情况下,则在接收到每个目标系统发送的针对该目标摄像头的摄像头关闭请求之后,则基于第一摄像头采集驱动关闭该目标摄像头。

另一个示例中,在目标摄像头的数量为多个的情况下,则在接收到每个目标系统发送的针对目标摄像头中的一个或者多个摄像头的摄像头关闭请求之后,则基于第一摄像头采集驱动关闭该一个或者多个摄像头。例如,在目标摄像头的数量为4个,分别为目标摄像头1、目标摄像头2、目标摄像头3和目标摄像头4的情况下,此时,若接收到每个目标系统针对目标摄像头1和目标摄像头2摄像头关闭请求之后,则基于第一摄像头采集驱动关闭目标摄像头1和目标摄像头2。若接收到部分目标系统针对目标摄像头1和目标摄像头2摄像头关闭请求,则不关闭目标摄像头1和目标摄像头2。

综上可知,以图4所示的系统级芯片为例说明第一摄像头采集驱动控制摄像头的逻辑为:如果系统级芯片中的CP域/AP域中的应用程序都请求关闭摄像头,则关闭摄像头;如果系统级芯片中的CP域/AP域中的应用程序,只要有任一方需要摄像头,或者两方都需要摄像头,则打开摄像头,从而可以确保摄像头能够被CP域内的应用程序单独使用,也能被AP域内的应用程序单独使用,或者,被CP域和AP域内的应用程序同时使用,从而能够满足系统级芯片使用摄像头的实际需求。

一个示例中,在目标系统指示系统级芯片所运行的除第一系统之外的第二系统的情况下,在将摄像头关闭请求发送至第一摄像头采集驱动中时,可以基于第二系统所在域内加载的第二摄像头采集驱动和远程处理器消息传递组件,将摄像头关闭请求发送至第一摄像头采集驱动中。

一个示例中,远程处理器消息传递组件与上述的传输摄像头打开请求的远程处理器消息传递组件相同,例如,该远程处理器消息传递组件可以为RPMSG组件。

参见图5,图5为本申请实施例提供的一种多系统间的摄像头数据共享方法的实施流程示意图。假设,多系统间的摄像头数据共享方法可以应用于运行有RP域内的安全操作系统、CP域内的Linux系统和AP域内的Android系统的系统级芯片,如图4所示。

此时,如图5所示,在检测到对系统级芯片的上电操作之后,对系统级芯片上电,并启动Boot程序。在Boot程序启动完成之后,加载能够在系统级芯片中运行的各个系统。例如,可以在RP域加载安全操作系统,在CP域加载Linux系统,在AP域加载Android系统。

此时,可以在Linux系统所在的CP域加载第一摄像头采集驱动。此时,在接收到Linux系统内的应用程序(如图4所示的应用程序1)和Android系统内的应用程序(如图4所示的应用程序2)发起的摄像头打开请求之后,可以将Linux系统内的应用程序发起的摄像头打开请求直接发送至第一摄像头采集驱动,并将Android系统内的应用程序发起的摄像头打开请求通过AP域加载的第二摄像头采集驱动以及远程处理器消息传递组件发送至第一摄像头采集驱动。

之后,可以根据第一摄像头采集驱动,打开与摄像头打开请求相匹配的目标摄像头,以使CP域中的应用程序从第一传输接口(如图4所示的第一传输接口)获取摄像头数据,使AP域中的应用程序通过第二传输接口(如图4所示的第二传输接口)获取摄像头数据。

之后,若接收到摄像头关闭请求,若接收到Linux系统内的应用程序发起的摄像头关闭请求,则直接发送至第一摄像头采集驱动,并接收到Android系统内的应用程序发起的摄像头关闭请求,则通过AP域加载的第二摄像头采集驱动以及远程处理器消息传递组件发送至第一摄像头采集驱动。

此时,可以判断是否Linux系统内的应用程序和Android系统内的应用程序均请求关闭目标摄像头。若是,则关闭目标摄像头。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

图6为本申请实施例提供的一种多系统间的摄像头数据共享装置的结构示意图,如图6所示,该多系统间的摄像头数据共享装置600包括:

加载单元601,用于在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动。

响应单元602,用于响应于系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将摄像头打开请求发送至第一摄像头采集驱动中。

传输单元603,用于基于第一摄像头采集驱动打开与摄像头打开请求相匹配的目标摄像头后,基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中,并通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中。

图7为本申请实施例提供的另一种多系统间的摄像头数据共享装置的结构示意图,如图7所示,该多系统间的摄像头数据共享装置700包括:

加载单元701,用于在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动。

响应单元702,用于响应于系统级芯片所运行的目标系统内的应用程序所发起的摄像头打开请求,将摄像头打开请求发送至第一摄像头采集驱动中。

传输单元703,用于基于第一摄像头采集驱动打开与摄像头打开请求相匹配的目标摄像头后,基于配置的串行器将目标摄像头所采集的摄像头数据,传输至各目标系统分别对应的数据传输接口中,并通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中。

一个示例中,目标系统指示系统级芯片所运行的除第一系统之外的第二系统;此时,响应单元702,用于:

响应于第二系统内的应用程序所发起的摄像头打开请求,在第二系统所在域中加载第二摄像头采集驱动;

基于第二摄像头采集驱动,将摄像头打开请求通过远程处理器消息传递组件,发送至第一摄像头采集驱动中。

一个示例中,目标系统的数量为多个;此时,传输单元703,用于:

基于目标系统的数量和配置的串行器对获取的摄像头数据进行拷贝处理,得到拷贝后的摄像头数据;

将获取的摄像头数据和拷贝后的摄像头数据,传输至各目标系统分别对应的数据传输接口中。

一个示例中,该装置还包括初始化单元704,用于:

在系统级芯片所运行的第一系统所在域中加载第一摄像头采集驱动之后,获取串行器配置文件,并基于串行器配置文件对串行器进行配置,得到配置的串行器;其中,串行器配置文件用于配置串行器对摄像头数据进行拷贝处理并多路输出。

一个示例中,该装置还包括关闭单元705,用于:

在通过对应的数据传输接口,将摄像头数据传输至对应的目标系统中之后,响应于目标系统内的应用程序所发起的摄像头关闭请求,将摄像头关闭请求发送至第一摄像头采集驱动中;

若确定出第一摄像头采集驱动接收到每个目标系统发送的针对目标摄像头的摄像头关闭请求,则基于第一摄像头采集驱动关闭目标摄像头。

一个示例中,目标系统指示系统级芯片所运行的除第一系统之外的第二系统;此时,关闭单元705,用于:

基于第二系统所在域内加载的第二摄像头采集驱动和远程处理器消息传递组件,将摄像头关闭请求发送至第一摄像头采集驱动中。

一个示例中,该装置还包括启动单元706,用于:

响应于对系统级芯片的上电操作,启动Boot程序;

在Boot程序启动完成之后,加载能够在系统级芯片中运行的各个系统,以使各个系统运行在系统级芯片中。

本申请提供的多系统间的摄像头数据共享装置具体实现过程参照上述方法实施例,在此不再赘述。

图8为本申请实施例提供的一种电子设备的结构示意图,如图8所示,电子设备800包括:存储器801,处理器802。

存储器801;用于存储处理器802可执行的计算机执行指令的存储器。

其中,处理器802被配置为执行计算机执行指令,以实现如上述实施例提供的方法。

电子设备还包括接收器803和发送器804。接收器803用于接收外部设备发送的指令和数据,发送器804用于向外部设备发送指令和数据。

本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述的各种实施方式提供的方法。

其中,计算机可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机执行指令的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,计算机可读存储介质耦合至处理器,从而使处理器能够从该计算机可读存储介质读取信息,且可向该计算机可读存储介质写入信息。当然,计算机可读存储介质也可以是处理器的组成部分。处理器和计算机可读存储介质可以位于专用集成电路(plication Specific Integrated Circuits,ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和计算机可读存储介质也可以作为分立组件存在于通信设备中。

具体地,该计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random-Access Memory,SRAM),电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM),可编程只读存储器(Programmable read-only memory,PROM),只读存储器(Read-OnlyMemory,ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

本申请还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中。设备的至少一个处理器可以从计算机可读存储介质中读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述的各种实施方式提供的方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

其中,各个模块可以是物理上分开的,例如安装于一个的设备的不同位置,或者安装于不同的设备上,或者分布到多个网络单元上,或者分布到多个处理器上。各个模块也可以是集成在一起的,例如,安装于同一个设备中,或者,集成在一套代码中。各个模块可以以硬件的形式存在,或者也可以以软件的形式存在,或者也可以采用软件加硬件的形式实现。本申请可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

当各个模块以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。

应该理解的是,虽然上述实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

相关技术
  • 摄像头标定方法、装置、计算机设备和存储介质
  • 一种摄像头污点检测方法、装置、设备及存储介质
  • 基于区块链的汽车数据共享方法、装置、设备和存储介质
  • 活动窗口的数据共享方法、装置、设备及存储介质
  • 一种术野摄像头、术野摄像头的调节方法、计算机设备及可读存储介质
  • 用于多系统间的机器人调度方法、装置、设备和存储介质
  • 多系统间帐户共享方法、装置、电子设备及存储介质
技术分类

06120116679671