CN113127213A - 支持多应用共享数据的方法、装置、设备及存储介质 - Google Patents
支持多应用共享数据的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113127213A CN113127213A CN201911390332.4A CN201911390332A CN113127213A CN 113127213 A CN113127213 A CN 113127213A CN 201911390332 A CN201911390332 A CN 201911390332A CN 113127213 A CN113127213 A CN 113127213A
- Authority
- CN
- China
- Prior art keywords
- camera
- data
- channel
- client
- memory
- 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
Images
Classifications
-
- 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/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Studio Devices (AREA)
Abstract
公开了一种支持多应用共享相机数据的方法、装置、设备及存储介质。创建与相机对应的通道,通道用于发布与相机在工作状态下产生的相机数据相关的第一数据;对应用期望使用的相机所对应的通道进行监听,以获取第一数据;以及基于第一数据获取相机数据。由此,通过这种PubSub(发布/订阅)方式,可以在应用与相机之间建立通信连接,该连接为间接连接方式,通道发布相机数据与应用调用相机数据为异步操作,不会相互影响。
Description
技术领域
本公开涉及计算机领域,特别是涉及一种支持多应用共享数据的方法、装置、设备及存储介质。
背景技术
在作业执行期间只允许一个作业独占使用的设备称为独占设备。独占设备产生的数据一般同时支持一个使用者。
举例来说,相机就是独占设备,在手机应用场景中,往往同时只会有一个应用程序使用相机,因此对相机框架层的需求是一对一。
但是在车载、机器人等应用场景中,往往需要多个模块同时使用同一相机的数据。
以车载应用场景为例,车辆中的前视相机往往需要支持预览模块、录像模块、AR导航模块、前车检测模块等多个模块同时工作。这些模块开发所需的知识跨不同领域,因此都是不同专业背景的人独立开发,所以很难把所有模块都综合到一个应用里。为了提高整体开发效率,会采用分布式编程,允许这些模块独自是一个应用。
因此在车载、机器人等应用场景中,就对相机框架层提出了新的需求:一对多,即需要支持多应用共享相机数据。
所以,针对独占设备,需要一种能够支持多应用共享数据的方案。
发明内容
本公开所要解决的一个技术问题是提供一种数据共享方案,其能够在保证不同应用间互不影响的同时,实现多应用共享独占设备所产生的数据。
根据本公开的第一个方面,提出了一种支持多应用共享相机数据的方法,包括:创建与相机对应的通道,通道用于发布与相机在工作状态下产生的相机数据相关的第一数据;对应用期望使用的相机所对应的通道进行监听,以获取第一数据;以及基于第一数据获取相机数据。
可选地,对应用期望使用的相机所对应的通道进行监听的步骤包括:创建与应用对应的客户端,利用客户端对应用期望使用的相机所对应的通道进行监听。
可选地,利用客户端对应用期望使用的相机所对应的通道进行监听的步骤包括:客户端创建与通道对应的线程,利用线程对通道进行监听。
可选地,多个客户端对同一相机的通道进行监听。
可选地,每个通道对应单个相机,并且/或者每个通道对应一个或多个应用,并且/或者每个应用对应一个或多个通道。
可选地,该方法还包括:将相机在工作状态下产生的相机数据写入共享内存,第一数据为共享内存的键值。
可选地,基于第一数据获取相机数据的步骤包括:通过键值访问共享内存,以获取相机数据。
可选地,该方法还包括:将相机在工作状态下产生的相机数据写入具有文件描述符的内存,第一数据为与文件描述符对应的身份标识符。
可选地,基于第一数据获取相机数据的步骤包括:获取与身份标识符对应的文件描述符;基于文件描述符访问内存,以获取相机数据。
可选地,客户端基于第一数据获取相机数据,该方法还包括:客户端将相机数据发送给应用。
可选地,通道还用于发布与相机数据相关的状态信息。
可选地,状态信息记录在存储相机数据的内存中。
可选地,该方法还包括:将相机数据写入内存,并将内存的写状态加1;将写完相机数据的内存的写状态减1、第一读状态加1;利用通道发布第一读状态加1的内存的信息。
可选地,该方法还包括:在客户端获取到相机数据后,将内存的第一读状态减1、第二读状态加1;以及/或者在客户端使用完相机数据后,将内存的第二读状态减1。
可选地,该方法还包括:清除写状态、第一读状态以及第二读状态均为0的内存中的数据,并在该内存中写入新的相机数据。
可选地,在客户端当前访问的内存的写状态为1的情况下,停止访问。
可选地,该方法还包括:在没有可用内存的情况下,将当前状态与发布时状态相同的内存进行回收,并在该内存中写入新的相机数据。
可选地,该方法还包括:记录对内存的第二读状态进行更改的客户端的身份信息。
可选地,该方法还包括:对客户端的状态进行监控;以及/或者对客户端占用的内存的时间和/或数量进行监控。
可选地,应用包括以下至少一项:预览应用;录像应用;AR导航应用;前车检测应用。
根据本公开的第二个方面,还提出了一种支持多应用共享相机数据的方法,包括:创建与相机对应的通道,通道用于发布相机在工作状态下产生的相机数据;以及对客户端期望使用的相机所对应的通道进行监听,以获取相机数据。
可选地,对应用期望使用的相机所对应的通道进行监听的步骤包括:创建与应用对应的客户端,利用客户端对应用期望使用的相机所对应的通道进行监听。
根据本公开的第三个方面,还提出了一种用于支持车辆中的多个功能模块共享相机数据的方法,包括:创建与相机对应的通道,通道用于发布与相机在工作状态下产生的相机数据相关的第一数据;以及创建与功能模块对应的客户端,客户端用于对通道进行监听,以获取第一数据,基于第一数据获取相机数据,并将第一数据发送给功能模块。
可选地,相机为前视相机,并且/或者多个功能模块包括以下至少一项:预览模块;录像模块;AR导航模块;前车检测模块。
根据本公开的第四个方面,还提出了一种用于支持车辆中多个功能模块共享相机数据的方法,包括:创建与相机对应的通道,通道用于发布相机在工作状态下产生的相机数据;以及创建与功能模块对应的客户端,客户端用于对通道进行监听,以获取相机数据,客户端还用于将第一数据发送给功能模块。
可选地,相机为前视相机,并且/或者多个功能模块包括以下至少一项:预览模块;录像模块;AR导航模块;前车检测模块。
根据本公开的第五个方面,还提出了一种支持多应用共享数据的方法,包括:创建与数据采集装置对应的通道,所述通道用于发布与所述数据采集装置在工作状态下产生的采集数据相关的第一数据;对所述应用期望使用的数据采集装置所对应的通道进行监听,以获取所述第一数据;以及基于所述第一数据获取所述采集数据。
根据本公开的第六个方面,还提出了一种支持多应用共享数据的方法,包括:创建与数据采集装置对应的通道,所述通道用于发布所述数据采集装置在工作状态下产生的采集数据;以及对所述客户端期望使用的数据采集装置所对应的通道进行监听,以获取所述采集数据。
根据本公开的第七个方面,还提出了一种相机框架,包括:相机框架服务端,用于创建与相机对应的通道,通道用于发布与相机在工作状态下产生的相机数据相关的第一数据;以及相机框架客户端,用于创建与应用对应的客户端,客户端用于对应用期望使用的相机所对应的通道进行监听,以获取第一数据,基于第一数据获取相机数据,并将相机数据发送给应用。
根据本公开的第八个方面,还提出了一种相机框架,包括:相机框架服务端,用于创建与相机对应的通道,通道用于发布相机在工作状态下产生的相机数据;以及相机框架客户端,用于创建与应用对应的客户端,客户端用于对应用期望使用的相机所对应的通道进行监听,以获取相机数据,并将相机数据发送给应用。
根据本公开的第九个方面,还提出了一种支持多应用共享相机数据的装置,包括:创建模块,用于创建与相机对应的通道,通道用于发布与相机在工作状态下产生的相机数据相关的第一数据;监听模块,用于对应用期望使用的相机所对应的通道进行监听,以获取第一数据;以及获取模块,用于基于第一数据获取相机数据。
根据本公开的第十个方面,还提出了一种支持多应用共享相机数据的装置,包括:创建模块,用于创建与相机对应的通道,通道用于发布相机在工作状态下产生的相机数据;以及监听模块,用于对应用期望使用的相机所对应的通道进行监听,以获取相机数据。
根据本公开的第十一个方面,还提出了一种支持多应用共享数据的装置,包括:创建模块,用于创建与数据采集装置对应的通道,所述通道用于发布与所述数据采集装置在工作状态下产生的采集数据相关的第一数据;监听模块,用于对所述应用期望使用的数据采集装置所对应的通道进行监听,以获取所述第一数据;以及获取模块,用于基于所述第一数据获取所述采集数据。
根据本公开的第十二个方面,还提出了一种支持多应用共享数据的装置,包括:创建模块,用于创建与数据采集装置对应的通道,所述通道用于发布所述数据采集装置在工作状态下产生的采集数据;以及监听模块,用于对所述应用期望使用的数据采集装置所对应的通道进行监听,以获取所述采集数据。
根据本公开的第十三个方面,还提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如本公开第一个方面至第六个方面中任一方面述及的方法。
根据本公开的第十四个方面,还提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如本公开第一个方面至第六个方面中任一方面述及的方法。
以独占设备为相机为例,本公开通过创建与相机对应的通道,对应用期望使用的相机所对应的通道进行监听,使得通道发布相机数据与应用调用相机数据为异步操作,不会相互影响,从而为多应用共享相机数据提供了支持。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本公开的支持多应用共享相机数据的方法的原理示意图。
图2示出了基于相机框架实现多应用共享相机数据的原理图。
图3示出了基于SHM的数据传输流程图。
图4示出了基于Fd Buffer的数据传输流程图。
图5示出了状态信息的记录与更新流程示意图。
图6示出了对客户端进行监控的流程图。
图7示出了根据本公开一实施例的支持多应用共享相机数据的装置的结构示意图。
图8示出了根据本公开一实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
下面以独占设备是相机为例,就实现多应用共享独占设备所产生的数据的原理进行示例性说明,应该知道,独占设备还可以是其他类型的数据采集装置。因此,下文述及的支持多应用共享相机数据的方案,也适用于多应用共享其他类型的数据采集装置在工作过程中产生的采集数据。
相机数据可以是指相机拍摄生成的数据,也可以是指对拍摄后的数据执行一种或多种预处理操作后得到的数据。也即,相机数据可以是指原始相机数据,也可以是指原始相机数据经过预处理后的数据。
图1是本公开的支持多应用共享相机数据的方法的原理示意图。
图1中示出了三个应用(应用A、应用B以及应用C)和三个相机(相机0、相机1以及相机2)。应当明白,本公开的方案不限于这里示出的应用和相机的数量。
图1中示出的是,应用A和应用B共享相机0的数据(Data0),应用A和应用C共享相机1的数据(Data1),应用B还使用相机2的数据(Data2)。应当明白,本公开的方案不限于这里示出的应用与相机间的数据使用关系。
应用是指相机数据的使用方。其中,应用可以是但不限于需要使用相机数据的应用程序(Application)、进程、功能模块等等。
不同的应用可以用于实现不同的功能,可以交由不同专业背景的人独立开发。因此不同的应用可以是各自独立存在的应用程序。
应用与相机、不同相机以及不同应用,可以位于同一设备中,也可以位于不同设备中。其中,设备可以是单一操作系统的设备,也可以是多个操作系统兼容的设备。即,对于位于同一设备中的多个应用而言,这多个应用可以是基于不同操作系统的应用。
以车载应用场景为例,相机可以是车辆中的前视相机,应用可以包括但不限于安装在车辆中的预览应用、录像应用、AR导航应用、前车检测应用等诸多应用中的一项或多项。
针对每个相机可以创建专用的通道(Channel),也即每个通道对应单个相机。通过通道可以发布与相机相关的数据。
可以对应用期望使用的相机所对应的通道进行监听,以获取通道发布的数据。对通道进行监听的操作可以由应用执行,也可以由独立于应用的进程或线程执行。如下文所述,可以创建与应用对应的客户端,利用客户端对应用期望使用的相机所对应的通道进行监听。
在本公开中,每个通道可以对应一个或多个应用,每个应用也可以对应一个或多个通道。例如,在由应用对通道进行监听的情况下,多个应用可以对同一相机所对应的通道进行监听,同一应用也可以对多个相机的通道进行监听。再例如,在由与应用对应的客户端对通道进行监听的情况下,多个客户端可以对同一相机的通道进行监听,同一客户端也可以对多个相机的通道进行监听。
【多应用共享相机数据的原理】
如图1所示,每个相机都会有一个专门的通道发送数据,只要有应用(或与应用对应的客户端)监听(也即注册、订阅)了该通道,就能通过单独的线程接收数据。同一应用(或客户端)可以监听多个相机的通道,同一个通道也可以由不同的应用(或客户端)监听,因此实现了多应用共享数据。
在本公开中,通道可以发布相机在工作状态下产生的相机数据,也可以发布与相机在工作状态下产生的相机数据相关的第一数据。
本公开中使用的“第一”、“第二”等用语仅用于区分描述,并不用于限定先后顺序、主次等级、重要程度等。
在通道发布相机数据的情况下,可以通过对应用期望使用的相机所对应的通道进行监听,直接获取相机数据。
在通道发布与相机数据相关的第一数据的情况下,可以通过对应用期望使用的相机所对应的通道进行监听,获取第一数据,并基于第一数据获取相机数据。也即,第一数据是指能够辅助获取相机数据的数据。
例如,相机在工作过程中产生的相机数据可以写入一块共享内存中,然后可以借助对应的通道发布共享内存的键值(Key),如此可以根据监听到的Key,访问共享内存,以获取(如读取)相机数据。
再例如,相机在工作过程中产生的相机数据可以写入一块具有文件描述符(Fd)的内存中,然后可以借助对应的通道发布与Fd对应的身份标识符(ID),如此应用(或客户端)可以根据监听到的ID,发送Fd获取请求,根据获取到的Fd(该Fd为经过复制后得到的Fd),就可以访问对应的内存,以读取相机数据。
因此,在通道发布与相机数据相关的第一数据的情况下,第一数据可以是共享内存的Key,也可以是与Fd对应的ID。
并且在通过发布第一数据实现相机数据的共享的情况下,整个数据传输过程,都无需对相机数据进行复制,整个过程中无任何相机数据拷贝(即Zero-Copy),因此不会增加数据传输时延。
通过这种PubSub(发布/订阅)方式,可以在应用与相机之间建立通信连接,该连接为间接连接方式,通道发布相机数据与应用调用相机数据为异步操作,不会相互影响。
应用对通道进行监听的操作可以交由专门的线程处理,也即处理是以通道为单位的异步接收方式,如此对于共享同一相机数据的多个应用,不同应用间的数据获取都是完全异步的,相互之间无干扰,彼此透明。
【相机框架】
考虑到不同应用一般是由不同专业背景的人员独立开发,如果由应用执行本公开的多应用共享相机数据的方法,会增加应用开发难度。
因此,本公开的多应用共享相机数据的方法可以实现为一种相机框架,可以利用该相机框架实现多应用共享相机数据。由此,开发人员在开发应用时,无需考虑相机数据的获取问题,而是可以通过简单地调用相机框架的相关接口来获取相机数据。
图2示出了基于相机框架实现多应用共享相机数据的原理图。
相机框架可以分为相机框架客户端和相机框架服务端两部分。相机框架客户端和相机框架服务端之间可以通过PubSub(发布/订阅)的方式进行通信。
相机框架服务端可以是一个守护进程(Deamon)。可以利用服务端为相机创建专用的通道。
相机框架客户端可以为应用提供相机控制与数据服务。例如可以通过相机框架客户端为应用提供对通道进行监听的功能。如图2所示,可以通过相机框架客户端创建与应用对应的监听客户端,可以通过监听客户端对应用期望使用的相机所对应的通道进行监听。
下面以应用A为例进行说明。
应用A可以通过相机框架客户端提供的接口创建一个客户端A,客户端A可以通过PubSub的方式对服务端监听的命令通道(该通道未在图中画出,但与PubSub的方式类似)发送打开相机0和1、启动数据流等命令。
服务端收到命令后分别打开相机0和1,为相机0建立通道0,为相机1建立通道1。
需要注意的是,如果命令所指示的相机之前已经被打开,则不会重复打开,而是记录下打开该相机的客户端,用于维护即可。
服务端打开相机成功后,会告知客户端需要监控的通道名。
客户端A可以单独为每个通道启动线程用于监控。如图2所示,客户端A可以分别启动两个线程用于监听,其中监听通道0的线程能收到相机0的数据,监控通道1的线程能收到相机1的数据。
客户端A在获取到数据后,可以将数据回调给应用A。
如上文所述,可以通过通道发布相机数据,也可以通过通道发布与相机数据相关的第一数据。
在通道发布相机数据的情况下,客户端可以直接将监听到的相机数据回调给应用。
在通道发布第一数据的情况下,客户端可以基于第一数据获取相机数据,并将相机数据发送给客户端。另外客户端也可以将第一数据发送给应用,由应用基于第一数据获取相机数据。
下面以基于相机框架实现多应用共享相机数据为例,就本公开涉及的细节做进一步说明。需要说明的是,下文述及的客户端执行的操作,均可以由应用执行。也即,可以不为应用创建客户端,而是可以由应用对通道进行监听,以获取相机数据。
【数据传输】
本公开在数据传输过程中可以完全Zero-Copy,并且支持两种数据存储格式,一是SHM,一是Fd Buffer。SHM是Share Memory的缩写,意为共享内存,可用于进程间共享数据。Fd Buffer是指具有文件描述符(File Descriptor,简称Fd)的一段内存。
基于SHM的数据传输
可以由硬件抽象层(Hardware Abstraction Layer,简称HAL)将相机数据直接写到一块SHM中,然后将该SHM对应的Key通过消息发送给客户端,客户端通过Key可以访问该SHM,即拿到相机数据。此过程无需Copy。
图3示出了基于SHM的数据传输流程图。
参见图3,队列(可以是双向队列)中可以包括一块或多块空闲的SHM,首先HAL可以将相机数据写入SHM,在写入完成后,可以利用相机框架服务端将SHM的Key以PubSub的方式发布出去。例如,可以通过由相机框架服务端针对相机创建的通道,发布Key。
可以基于相机框架客户端为应用创建的客户端(图中未示出),对通道进行监听,以获取Key,根据Key访问内存,就可以获取相机数据,所获取的相机数据可以交由对应的应用。
基于Fd
Buffer的数据传输
图4示出了基于Fd Buffer的数据传输流程图。
参见图4,队列(可以是双向队列)中可以包括一块或多块空闲的Fd Buffer,可以由HAL将相机数据直接写到一块Fd Buffer中。
Buffer的Fd是不能像SHM的Key一样直接传输的,它需要一些额外操作如Dup(复制)才能在另一个客户端使用。因此相机框架服务端可以预先建立一个与Fd对应的身份标识符(ID)。
Fd Buffer写入完成后,可以传送ID到相机框架客户端,相机框架客户端拿到ID后可以通过IPC(Inter-process Communication,跨进程通信)助手模块,再向服务端发送Fd请求,服务端通过IPC助手模块返回Dup后的Fd给客户端,客户端同时也建立Buffer ID与FD的对应方便以后直接使用,然后就可以用该Fd访问Buffer,即拿到相机数据,此过程无需Copy。
【状态同步】
在本公开中,还可以利用通道发布与相机数据相关的状态信息,以便在客户端读取到相机数据后,可以直接基于该状态信息更新状态,避免了需要额外的接口调用来同步状态。例如,状态信息可以记录在存储相机数据的内存中。如此客户端在访问内存时,就可以读取到状态信息。
状态信息可以是指用于表征相机数据所在内存的读写状态的信息。
从将相机数据写入到内存到被客户端访问,主要包括三个步骤。第一个步骤是由HAL执行的写操作,第二个步骤是由相机框架服务端(也即通道)发布相机数据(或第一数据),第三个步骤是由客户端读取数据。
因此,状态信息可以包括三个维度的信息,写状态、第一读状态以及第二读状态。其中,写状态用于表征内存被HAL执行数据写入操作,第一读状态用于表征内存被相机框架服务端执行读取操作,第二读状态用于表征内存被客户端执行读取操作。
图5示出了状态信息的记录与更新流程示意图。
为了便于描述,写状态可以记为s_w,第一读状态可以记为s_r,第二读状态可以记为c_r。初始状态下,空闲内存的状态为s_r=0,s_w=0,c_r=0。
如图5所示,可以由相机框架服务端(图中未示出)维护一内存池,内存池中可以包括多块内存。其中,内存池中的内存可以是用于存储相机在工作过程中产生的相机数据的内存。
当内存池中存在空闲内存空闲时,相机框架服务端可以将内存取出送给HAL填写数据,并同时将该内存的状态标记为写状态加1,此时内存状态为s_r=0,s_w=1,c_r=0。
写完数据后HAL可以将内存还给相机框架服务端。
相机框架服务端可以将内存状态更新为第一读状态加1、写状态减1,此时内存状态为s_r=1,s_w=0,c_r=0。
相机框架服务端可以将第一读状态加1的内存以PubSub的方式发送出去,也即可以利用对应的通道发布,以便于监听了该通道的客户端接收。其中,关于数据传输流程,可以参见上文相关描述,此处不再赘述。
客户端在获取到数据后,可以将状态改为第一读状态减1、第二读状态加1。此时内存状态为s_r=0,s_w=0,c_r=1。
在客户端使用完(如读取完)数据后,再把状态改为第二读状态减1,此时内存状态为s_r=0,s_w=0,c_r=0。当这块内存的写状态、第一读状态以及第二读状态都为0时,即回到了初始(Idle)状态,就又可以重新被HAL填写数据了。也即,可以清除写状态、第一读状态以及第二读状态均为0的内存中的数据,并在该内存中写入新的相机数据。
可选地,客户端在获取数据前,可以进行读写检查,在检查无误的情况下,再访问数据。其中,读写检查是指对内存的状态进行检查,如检查内存的写状态是否为0,如果不为0,则停止读取数据。
作为示例,还可以记录对内存的第二读状态进行更改的客户端的身份信息。如此可以知道第二读状态是哪些客户端更改的,以便于后续结合客户端监控完成状态重置。
关于其他场景下数据同步状态的示例性阐述。
在多客户端场景下,因客户端使用数据的时机不同,因此可能出现以下场景。
1)当服务端把第一读状态加1的内存以PubSub的方式发送出去后,第一个客户端接收到数据后,会把状态改为第一读状态减1、第二读状态加1,此时内存状态为s_r=0,s_w=0,c_r=1。
第一个客户端还未用完时,第二个客户端开始使用数据,会接着改状态为第一读状态减1(当已经为0时,则不会真正再减)、第二读状态加1,此时内存状态为s_r=0,s_w=0,c_r=2。
依次类推,当每个客户端用完会进行第二读状态减1的操作,因此当所有客户端使用完后内存的第二状态会依次减为0,此时内存状态为s_r=0,s_w=0,c_r=0,即返回初始化状态。
2)当服务端把第一读状态加1的内存以PubSub的方式发送出去后,第一个客户端接收到数据后,会把状态改为第一读状态减1、第二读状态加1(此时内存状态为s_r=0,s_w=0,c_r=1)。
第一个客户端用完后进行第二读状态减1操作(此时内存状态为s_r=0,s_w=0,c_r=0),这时服务端刚巧把这块空闲内存送给HAL去写并修改状态为写状态加1(此时内存状态:s_r=0,s_w=1,c_r=0),这时第二个客户端才开始使用这块内存,使用前会发现内存的写状态为1,则会放弃操作跳过。
也即,在客户端当前访问的内存的写状态为1的情况下,停止访问。
3)当服务端把第一读状态加1的内存以PubSub的方式发送出去后,第一个客户端接收到数据后,会把状态改为第一读状态减1、第二读状态加1(此时内存状态为s_r=0,s_w=0,c_r=1)。
第一个客户端用完后进行第二读状态减1操作(此时内存状态为s_r=0,s_w=0,c_r=0),这时服务端刚巧把这块空闲内存送给HAL去写并修改状态为写状态加1(此时内存状态为s_r=0,s_w=1,c_r=0)。
HAL写完后送还给服务端,服务端改状态为写状态减1,第一读状态加1(此时内存状态为s_r=1,s_w=0,c_r=0),这时第二个客户端才开始使用这块内存,由于状态允许,则会进行第一读状态减1、第二读状态加1(此时内存状态:s_r=0,s_w=0,c_r=1),与第一个客户端操作一致,因此并不知道该内存中数据已经再一次被更新过。
4)当服务端把第一读状态加1的内存以PubSub的方式发送出去(此时内存状态为s_r=1,s_w=0,c_r=0),并且服务端内部已没有空闲内存,当查到之前发送的内存的状态仍然与发出去时相同时,则会直接把该内存回收回来给HAL写。即优先保证下面的数据轮转,同时进行第一读状态减1,写状态加1操作(此时内存状态为s_r=0,s_w=1,c_r=0)。当客户端开始使用这块内存时,会通过状态检查发现这块内存已被Server回收回去,则会放弃操作跳过。
也即,在没有可用内存的情况下,可以将当前状态与发布时状态相同的内存进行回收,并在该内存中写入新的相机数据。
【客户端监控】
在方案执行过程中,还可以加入对客户端的监控。例如,可以对客户端的状态进行监控,以及时发现存在崩溃、阻塞等异常的客户端。另外,还可以对客户端占用的内存的时间和/或数量进行监控,若有客户端占用内存过多导致可能影响到数据帧率,则可以主动收回部分内存,以避免影响到其他客户端使用。
图6示出了对客户端进行监控的流程图。
图中示出的数字1的箭头流向表示的是数据传输流程,数字2的箭头流向表示的是监控流程。
如图6所示,每个客户端都会定时向服务端发送心跳包,若有客户端崩溃、阻塞等异常导致客户端没有发送心跳包,则服务端(如可以是服务端中的状态记录器)可以把其加入黑名单,同时清除它对所占用的内存的状态影响,从而避免异常客户端影响相机数据在其他客户端的正常使用。
同时对于长时间占用内存的状态,服务端也能监控,若有客户端占用内存过多导致可能影响到数据帧率,则会主动收回部分内存,以避免影响到其他客户端使用。
服务端还可以根据客户端信息,进行客户端调度,以将相机数据发送至相应的客户端。其中,关于数据传输流程可以参见上文相关描述,此处不再赘述。
本公开的多应用共享相机数据的方法可以适用但不限于车载、机器人等应用场景。其中,根据应用场景不同,应用与相机数据之间的数据共享关系也不尽相同。
以应用于车载场景为例,本公开还可以实现为一种用于支持车辆中的多个功能模块共享相机数据的方法。其中,相机数据可以是指前视相机所生成的数据。多个功能模块可以包括但不限于预览模块、录像模块、AR导航模块、前车检测模块等诸多功能模块。
作为本公开的一个示例,可以创建与相机对应的通道,通道用于发布与相机在工作状态下产生的相机数据相关的第一数据,并创建与功能模块对应的客户端,客户端用于对通道进行监听,以获取第一数据,基于第一数据获取相机数据,并将第一数据发送给功能模块。
作为本公开的另一个示例,可以创建与相机对应的通道,所述通道用于发布所述相机在工作状态下产生的相机数据,并创建与所述功能模块对应的客户端,所述客户端用于对所述通道进行监听,以获取所述相机数据,所述客户端还用于将所述第一数据发送给所述功能模块。
关于数据传输流程及相关实现细节均可以参见上文相关描述,此处不再赘述。
综上,本公开可以实现为一种相机框架层,以支持多客户端共享相机数据,同时具备Zero-Copy、异步接收、数据状态同步,客户端状态监控等功能,使本公开在满足功能的同时更加高效和安全。
本公开还可以实现为一种支持多应用共享数据的方法,包括:创建与数据采集装置对应的通道,通道用于发布与数据采集装置在工作状态下产生的采集数据相关的第一数据;对应用期望使用的数据采集装置所对应的通道进行监听,以获取第一数据;以及基于第一数据获取采集数据。
本公开还可以实现为一种支持多应用共享数据的方法,包括:创建与数据采集装置对应的通道,通道用于发布数据采集装置在工作状态下产生的采集数据;以及对客户端期望使用的数据采集装置所对应的通道进行监听,以获取采集数据。
关于方案涉及的细节,可以参见上文相关描述,此处不再赘述。其中,数据采集装置的具体形式本公开不再赘述,例如可以是但不限于雷达传感器。
图7示出了根据本公开一实施例的支持多应用共享相机数据的装置的结构示意图。其中,装置的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图7所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面就装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文相关描述,这里不再赘述。
参见图7,在本公开的一个实施例中,支持多应用共享相机数据的装置700可以包括创建模块710、监听模块720以及获取模块730。
创建模块710用于创建与相机对应的通道,通道用于发布与相机在工作状态下产生的相机数据相关的第一数据。
监听模块720用于对应用期望使用的相机所对应的通道进行监听,以获取第一数据。
获取模块730用于基于第一数据获取相机数据。获取模块730还可以将相机数据发送给应用。
创建模块710还可以创建与应用对应的客户端,利用客户端对应用期望使用的相机所对应的通道进行监听。例如针对应用期望使用的每个相机,可以由客户端创建对应于该相机的通道的线程,以对该通道进行监听。也即,监听模块720可以是用于执行监听操作的线程。关于客户端可以执行的操作可以参见上文相关描述,此处不再赘述。
可选地,装置700还可以包括写入模块,用于将相机在工作状态下产生的相机数据写入共享内存,第一数据为共享内存的键值。获取模块730可以通过键值访问共享内存,以获取相机数据。
写入模块还可以用于将相机在工作状态下产生的相机数据写入具有文件描述符的内存,第一数据为与文件描述符对应的身份标识符。获取模块730可以获取与身份标识符对应的文件描述符,并基于文件描述符访问内存,以获取相机数据。
通道还可以用于发布与相机数据相关的状态信息。其中,状态信息可以记录在存储相机数据的内存中。
可选地,装置700还可以包括第一状态更新模块,用于将相机数据写入内存,并将内存的写状态加1;第二状态更新模块,用于将写完相机数据的内存的写状态减1、第一读状态加1。可以利用通道发布第一读状态加1的内存的信息。
可选地,装置700还可以包括第三状态更新模块和第四状态更新模块。第三状态更新模块用于在获取模块获取到相机数据后,将内存的第一读状态减1、第二读状态加1,第四状态更新模块用于在获取模块使用完相机数据后,将内存的第二读状态减1。
可选地,装置700还可以包括清除模块,用于清除写状态、第一读状态以及第二读状态均为0的内存中的数据。写入模块可以在该内存中写入新的相机数据。
在获取模块730当前访问的内存的写状态为1的情况下,停止访问。
可选地,装置700还可以包括回收模块,用于在没有可用内存的情况下,将当前状态与发布时状态相同的内存进行回收,由此可以在该内存中写入新的相机数据。
可选地,装置700还可以包括身份记录模块,用于记录对内存的第二读状态进行更改的客户端的身份信息。
可选地,装置700还可以包括监控模块,用于对述客户端的状态进行监控,并且/或者对客户端占用的内存的时间和/或数量进行监控。
在本公开的另一个实施例中,支持多应用共享相机数据的装置700可以包括创建模块710和监听模块720。
创建模块710用于创建与相机对应的通道,通道用于发布相机在工作状态下产生的相机数据。监听模块720用于对应用期望使用的相机所对应的通道进行监听,以获取相机数据。
图7所示的装置还可以用于实现为一种支持多应用共享其他类型的数据采集装置在工作中产生的采集数据的装置。
例如,创建模块710可以用于创建与数据采集装置对应的通道,通道用于发布与数据采集装置在工作状态下产生的采集数据相关的第一数据;监听模块720可以用于对应用期望使用的数据采集装置所对应的通道进行监听,以获取第一数据;获取模块730可以用于基于第一数据获取采集数据。
再例如,创建模块710可以用于创建与数据采集装置对应的通道,通道用于发布数据采集装置在工作状态下产生的采集数据;监听模块720可以用于对应用期望使用的数据采集装置所对应的通道进行监听,以获取采集数据。
具体实现过程可以参见上文相关说明,此处不再赘述。
图8示出了根据本公开一实施例可用于实现上述方法的计算设备的结构示意图。
参见图8,计算设备800包括存储器810和处理器820。
处理器820可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器820可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器820可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器810可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器820或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器810可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器810可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器810上存储有可执行代码,当可执行代码被处理器820处理时,可以使处理器820执行上文述及的方法。
上文中已经参考附图详细描述了根据本发明的支持多应用共享相机数据的方法、用于支持车辆中的多个功能模块共享相机数据的方法、装置以及设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (36)
1.一种支持多应用共享相机数据的方法,其特征在于,包括:
创建与相机对应的通道,所述通道用于发布与所述相机在工作状态下产生的相机数据相关的第一数据;
对所述应用期望使用的相机所对应的通道进行监听,以获取所述第一数据;以及
基于所述第一数据获取所述相机数据。
2.根据权利要求1所述的方法,其特征在于,所述对应用期望使用的相机所对应的通道进行监听的步骤包括:
创建与所述应用对应的客户端,利用所述客户端对所述应用期望使用的相机所对应的通道进行监听。
3.根据权利要求2所述的方法,其特征在于,利用所述客户端对所述应用期望使用的相机所对应的通道进行监听的步骤包括:
所述客户端创建与所述通道对应的线程,利用所述线程对所述通道进行监听。
4.根据权利要求2所述的方法,其特征在于,
多个所述客户端对同一相机的通道进行监听。
5.根据权利要求1所述的方法,其特征在于,
每个所述通道对应单个相机,并且/或者
每个所述通道对应一个或多个应用,并且/或者
每个所述应用对应一个或多个通道。
6.根据权利要求1所述的方法,其特征在于,还包括:
将所述相机在工作状态下产生的相机数据写入共享内存,所述第一数据为所述共享内存的键值。
7.根据权利要求6所述的方法,其特征在于,基于所述第一数据获取所述相机数据的步骤包括:
通过所述键值访问所述共享内存,以获取所述相机数据。
8.根据权利要求1所述的方法,其特征在于,还包括:
将所述相机在工作状态下产生的相机数据写入具有文件描述符的内存,所述第一数据为与所述文件描述符对应的身份标识符。
9.根据权利要求8所述的方法,其特征在于,基于所述第一数据获取所述相机数据的步骤包括:
获取与所述身份标识符对应的文件描述符;
基于所述文件描述符访问所述内存,以获取所述相机数据。
10.根据权利要求2所述的方法,其特征在于,客户端基于所述第一数据获取所述相机数据,该方法还包括:
所述客户端将所述相机数据发送给所述应用。
11.根据权利要求10所述的方法,其特征在于,
所述通道还用于发布与所述相机数据相关的状态信息。
12.根据权利要求11所述的方法,其特征在于,
所述状态信息记录在存储所述相机数据的内存中。
13.根据权利要求11所述的方法,其特征在于,还包括:
将所述相机数据写入内存,并将所述内存的写状态加1;
将写完所述相机数据的内存的写状态减1、第一读状态加1;
利用所述通道发布第一读状态加1的内存的信息。
14.根据权利要求13所述的方法,其特征在于,还包括:
在所述客户端获取到所述相机数据后,将所述内存的第一读状态减1、第二读状态加1;以及/或者
在所述客户端使用完所述相机数据后,将所述内存的第二读状态减1。
15.根据权利要求14所述的方法,其特征在于,还包括:
清除写状态、第一读状态以及第二读状态均为0的内存中的数据,并在该内存中写入新的相机数据。
16.根据权利要求15所述的方法,其特征在于,
在所述客户端当前访问的内存的写状态为1的情况下,停止访问。
17.根据权利要求14所述的方法,其特征在于,还包括:
在没有可用内存的情况下,将当前状态与发布时状态相同的内存进行回收,并在该内存中写入新的相机数据。
18.根据权利要求14所述的方法,其特征在于,还包括:
记录对所述内存的第二读状态进行更改的客户端的身份信息。
19.根据权利要求14所述的方法,其特征在于,还包括:
对所述客户端的状态进行监控;以及/或者
对所述客户端占用的内存的时间和/或数量进行监控。
20.根据权利要求1所述的方法,其特征在于,所述应用包括以下至少一项:
预览应用;
录像应用;
AR导航应用;
前车检测应用。
21.一种支持多应用共享相机数据的方法,其特征在于,包括:
创建与相机对应的通道,所述通道用于发布所述相机在工作状态下产生的相机数据;以及
对所述客户端期望使用的相机所对应的通道进行监听,以获取所述相机数据。
22.根据权利要求21所述的方法,其特征在于,对所述应用期望使用的相机所对应的通道进行监听的步骤包括:
创建与所述应用对应的客户端,利用所述客户端对所述应用期望使用的相机所对应的通道进行监听。
23.一种用于支持车辆中的多个功能模块共享相机数据的方法,其特征在于,包括:
创建与相机对应的通道,所述通道用于发布与所述相机在工作状态下产生的相机数据相关的第一数据;以及
创建与所述功能模块对应的客户端,所述客户端用于对所述通道进行监听,以获取所述第一数据,基于所述第一数据获取所述相机数据,并将所述第一数据发送给所述功能模块。
24.根据权利要求23所述的方法,其特征在于,
所述相机为前视相机,并且/或者
所述多个功能模块包括以下至少一项:预览模块;录像模块;AR导航模块;前车检测模块。
25.一种用于支持车辆中多个功能模块共享相机数据的方法,其特征在于,包括:
创建与相机对应的通道,所述通道用于发布所述相机在工作状态下产生的相机数据;以及
创建与所述功能模块对应的客户端,所述客户端用于对所述通道进行监听,以获取所述相机数据,所述客户端还用于将所述第一数据发送给所述功能模块。
26.根据权利要求25所述的方法,其特征在于,
所述相机为前视相机,并且/或者
所述多个功能模块包括以下至少一项:预览模块;录像模块;AR导航模块;前车检测模块。
27.一种支持多应用共享数据的方法,其特征在于,包括:
创建与数据采集装置对应的通道,所述通道用于发布与所述数据采集装置在工作状态下产生的采集数据相关的第一数据;
对所述应用期望使用的数据采集装置所对应的通道进行监听,以获取所述第一数据;以及
基于所述第一数据获取所述采集数据。
28.一种支持多应用共享数据的方法,其特征在于,包括:
创建与数据采集装置对应的通道,所述通道用于发布所述数据采集装置在工作状态下产生的采集数据;以及
对所述客户端期望使用的数据采集装置所对应的通道进行监听,以获取所述采集数据。
29.一种相机框架,其特征在于,包括:
相机框架服务端,用于创建与相机对应的通道,所述通道用于发布与所述相机在工作状态下产生的相机数据相关的第一数据;以及
相机框架客户端,用于创建与应用对应的客户端,所述客户端用于对所述应用期望使用的相机所对应的通道进行监听,以获取所述第一数据,基于所述第一数据获取所述相机数据,并将所述相机数据发送给所述应用。
30.一种相机框架,其特征在于,包括:
相机框架服务端,用于创建与相机对应的通道,所述通道用于发布所述相机在工作状态下产生的相机数据;以及
相机框架客户端,用于创建与应用对应的客户端,所述客户端用于对所述应用期望使用的相机所对应的通道进行监听,以获取所述相机数据,并将所述相机数据发送给所述应用。
31.一种支持多应用共享相机数据的装置,其特征在于,包括:
创建模块,用于创建与相机对应的通道,所述通道用于发布与所述相机在工作状态下产生的相机数据相关的第一数据;
监听模块,用于对所述应用期望使用的相机所对应的通道进行监听,以获取所述第一数据;以及
获取模块,用于基于所述第一数据获取所述相机数据。
32.一种支持多应用共享相机数据的装置,其特征在于,包括:
创建模块,用于创建与相机对应的通道,所述通道用于发布所述相机在工作状态下产生的相机数据;以及
监听模块,用于对所述应用期望使用的相机所对应的通道进行监听,以获取所述相机数据。
33.一种支持多应用共享数据的装置,其特征在于,包括:
创建模块,用于创建与数据采集装置对应的通道,所述通道用于发布与所述数据采集装置在工作状态下产生的采集数据相关的第一数据;
监听模块,用于对所述应用期望使用的数据采集装置所对应的通道进行监听,以获取所述第一数据;以及
获取模块,用于基于所述第一数据获取所述采集数据。
34.一种支持多应用共享数据的装置,其特征在于,包括:
创建模块,用于创建与数据采集装置对应的通道,所述通道用于发布所述数据采集装置在工作状态下产生的采集数据;以及
监听模块,用于对所述应用期望使用的数据采集装置所对应的通道进行监听,以获取所述采集数据。
35.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至28中任何一项所述的方法。
36.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至28中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911390332.4A CN113127213A (zh) | 2019-12-30 | 2019-12-30 | 支持多应用共享数据的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911390332.4A CN113127213A (zh) | 2019-12-30 | 2019-12-30 | 支持多应用共享数据的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127213A true CN113127213A (zh) | 2021-07-16 |
Family
ID=76767461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911390332.4A Pending CN113127213A (zh) | 2019-12-30 | 2019-12-30 | 支持多应用共享数据的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127213A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113724521A (zh) * | 2021-07-19 | 2021-11-30 | 阿里巴巴新加坡控股有限公司 | 图像数据处理方法、装置、设备及计算机程序产品 |
CN114302040A (zh) * | 2021-12-24 | 2022-04-08 | 展讯半导体(成都)有限公司 | 多应用共享单一摄像头的方法及相关产品 |
CN117425004A (zh) * | 2023-12-18 | 2024-01-19 | 荣耀终端有限公司 | Tof相机的测试方法及相关装置 |
-
2019
- 2019-12-30 CN CN201911390332.4A patent/CN113127213A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113724521A (zh) * | 2021-07-19 | 2021-11-30 | 阿里巴巴新加坡控股有限公司 | 图像数据处理方法、装置、设备及计算机程序产品 |
CN114302040A (zh) * | 2021-12-24 | 2022-04-08 | 展讯半导体(成都)有限公司 | 多应用共享单一摄像头的方法及相关产品 |
CN114302040B (zh) * | 2021-12-24 | 2024-03-19 | 展讯半导体(成都)有限公司 | 多应用共享单一摄像头的方法及相关产品 |
CN117425004A (zh) * | 2023-12-18 | 2024-01-19 | 荣耀终端有限公司 | Tof相机的测试方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113127213A (zh) | 支持多应用共享数据的方法、装置、设备及存储介质 | |
KR101177971B1 (ko) | 보호 영역 경계들에서의 오브젝트 호출 방법, 시스템 및 장치 | |
US8893123B2 (en) | Method and system for transferring the operation of a virtual machine from a server device to terminal device using operating status of the virtual machine | |
US20080028402A1 (en) | Method of setting operation environment and computer system | |
US20060136779A1 (en) | Object-based storage device with low process load and control method thereof | |
US9396014B2 (en) | Data swap in virtual machine environment | |
CN106357703B (zh) | 集群切换方法与设备 | |
JP2023519405A (ja) | ハードウェアアクセラレータをスケジューリングするための方法およびタスクスケジューラ | |
CN114302040B (zh) | 多应用共享单一摄像头的方法及相关产品 | |
CN103838746B (zh) | 多cpu系统共享存储数据的方法及该系统 | |
WO2023173516A1 (zh) | 数据交互的方法、装置、存储介质及电子设备 | |
CN110580674B (zh) | 信息处理方法、装置及系统 | |
CN112052230A (zh) | 多机房数据同步方法、计算设备及存储介质 | |
JP4518177B2 (ja) | 記録装置、ファイルディスクリプタ生成方法、プログラム | |
US11252457B2 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
CN110309224B (zh) | 一种数据复制方法及装置 | |
CN113032088A (zh) | 脏页记录方法、装置、电子设备及计算机可读介质 | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems | |
CN111274176B (zh) | 一种信息处理方法、电子设备、系统及存储介质 | |
CN111399753A (zh) | 写入图片的方法和装置 | |
CN112162855B (zh) | 基于页锁定内存的gpu页缺失处理方法、系统及介质 | |
CN114461408A (zh) | 多核系统的核间交互方法、装置、设备及存储介质 | |
KR102280241B1 (ko) | 메모리 액세스 제어 시스템, 메모리 액세스 제어 장치 및 이를 이용한 메모리 액세스 제어 방법 | |
CN107025144B (zh) | 用于写入以及读取数据集的方法 | |
CN115982060A (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 |