CN112749022A - 相机资源访问方法、操作系统、终端和虚拟相机 - Google Patents

相机资源访问方法、操作系统、终端和虚拟相机 Download PDF

Info

Publication number
CN112749022A
CN112749022A CN201911038734.8A CN201911038734A CN112749022A CN 112749022 A CN112749022 A CN 112749022A CN 201911038734 A CN201911038734 A CN 201911038734A CN 112749022 A CN112749022 A CN 112749022A
Authority
CN
China
Prior art keywords
camera
image data
virtual
acquired
access
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.)
Granted
Application number
CN201911038734.8A
Other languages
English (en)
Other versions
CN112749022B (zh
Inventor
曹天宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Future Elf Artificial Intelligence Technology Co ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911038734.8A priority Critical patent/CN112749022B/zh
Publication of CN112749022A publication Critical patent/CN112749022A/zh
Application granted granted Critical
Publication of CN112749022B publication Critical patent/CN112749022B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Studio Devices (AREA)

Abstract

公开了一种相机资源访问方法,以及相应的操作系统、终端和虚拟相机。该方法包括:虚拟相机获取由相机模块采集的图像数据;以及将获取的所述图像数据提供给请求访问相机资源的多个请求。由此,可以在现有操作系统架构的基础上,通过对物理相机模块的管理和虚拟化,实现了对多APP同时获取相机数据的支持。

Description

相机资源访问方法、操作系统、终端和虚拟相机
技术领域
本发明涉及信息处理领域,尤其涉及一种相机资源访问方法、操作系统和终端。
背景技术
诸如智能音箱的智能语音设备作为家庭智能终端正变得日益普及。不同于手机系统,新开发的带屏类智能音箱系统需要对同一个相机的数据进行多种业务处理,每一种业务又都由一个App应用承载。为了同时保证多种业务的并行处理,需要在操作系统层面支持多App同时访问同一个相机资源。例如,在进行视频通话的同时保证手势控制可用。
然而,智能音箱通常装载的Android原生操作系统并不支持相机的多App访问。因此,如何同时为多个APP访问同一个相机资源提供支持,成为了本领域所需解决的一个问题。
发明内容
为了解决如上至少一个问题,本发明提出了一种相机资源访问方法,以及相应的操作系统、终端和虚拟相机。在现有操作系统(例如,原生Android系统)架构的基础上,通过对物理相机模块的管理和虚拟化,实现了对多APP同时获取相机数据的支持。进一步地,针对操作系统的上述修改优选在内核空间进行,例如在驱动层和硬件适配层之间插入一个相机虚拟层,由此使得本方案可以与芯片方案厂商一同定制,通过修改Android系统底层架构代码,支持多APP同时访问相机资源的需求。
根据本发明的第一方面,提出了一种相机资源访问方法,包括:虚拟相机获取由相机模块采集的图像数据;以及将获取的所述图像数据提供给请求访问相机资源的多个请求。由此通过虚拟相机的调度,提升多请求获取资源的可能性和便利性。
可选地,虚拟相机获取由相机模块采集的图像数据包括:所述虚拟相机获取由相机驱动程序获取的图像数据。
可选地,将获取的所述图像数据提供给请求访问相机资源的多个应用包括:建立多个子虚拟相机;以及每个子虚拟相机将分配得到的图像数据提供给请求访问相机资源的一个或多个请求。
可选地,建立的多个子虚拟相机的生命周期由对应应用对所述相机资源的访问请求确定。
可选地,将获取的所述图像数据提供给请求访问相机资源的多个请求包括:将获取的所述图像数据复制成多份相同的图像数据,每份图像数据对应于一个子虚拟相机;以及每个子虚拟相机将相应的图像数据提供给请求访问相机资源的一个请求。
可选地,将获取的所述图像数据提供给请求访问相机资源的多个请求包括:将获取的所述图像数据划分成多份至少部分不同的图像数据,每份图像数据对应于一个子虚拟相机;以及每个子虚拟相机将相应的图像数据提供给请求访问相机资源的一个请求。
可选地,将获取的所述图像数据划分成多份至少部分不同的图像数据包括:基于请求访问相机资源的请求的个数,将获取的连续图像帧逐一送入对应个数的子虚拟相机内。
可选地,将获取的所述图像数据提供给请求访问相机资源的多个请求包括:将获取的一份所述图像数据转换为多份图像数据,并且所述转换是所述虚拟相机在操作系统内核态完成的。
可选地,将获取的所述图像数据提供给请求访问相机资源的多个请求还包括:将转换后的每份图像数据提供给一个标准的硬件适配层接口。
可选地,通过在相机驱动程序层和相机硬件适配层之间设置相机虚拟层来实现所述终端相机资源访问方法。
可选地,所述多个请求包括如下至少一项:来自同一操作系统内的多个应用的访问请求;来自联网系统内其他设备的外部访问请求;来自同一应用的多个访问请求。
根据本发明的第二方面,提出了一种虚拟相机,用于执行如上任一项所述的方法。
根据本发明的第三方面,提出了一种操作系统,安装有多个应用,所述操作系统包括虚拟相机,所述虚拟相机包括:相机资源获取模块,用于获取由相机模块采集的图像数据;相机资源分发模块,用于将获取的所述图像数据提供给请求访问相机资源的多个应用或应用请求。
可选地,该操作系统还可以包括:相机驱动程序,用于经由相机模块采集图像数据,并且所述相机资源获取模块用于从所述相机驱动程序获取所述图像数据。
可选地,所述相机资源分发模块包括多个子虚拟相机,每个子虚拟相机包括由所述相机资源获取模块获取的图像数据,并且每个子虚拟相机将分配得到的图像数据提供给请求访问相机资源的一个应用或应用请求。
可选地,每个子虚拟相机的生命周期由对应应用或应用请求对所述相机资源的访问请求确定。
可选地,每个子虚拟相机包括从由所述相机资源获取模块获取的图像数据复制的多份相同图像数据中的一份图像数据。
可选地,每个子虚拟相机包括从由所述相机资源获取模块获取的图像数据划分成的多份至少部分不同的图像数据中的一份图像数据,其中,所述子虚拟相机的个数与当前正请求访问相机资源的应用或应用请求个数相同,并且每个子虚拟相机逐一获取连续图像帧中的一帧数据。
可选地,所述虚拟相机包括的每个子虚拟相机对接一个标准的硬件适配层接口。
可选地,所述虚拟相机实现为设置在相机驱动程序层和相机硬件适配层之间的相机虚拟层。
根据本发明的第四方面,提出了一种终端,包括相机模块,并且安装有如上所述的操作系统或用于执行如上所述的方法。
可选地,所述终端是智能音箱或智能电话,例如,带屏幕的智能音箱。
根据本发明的第五方面,提出了一种终端相机资源访问方法,包括:获取相机驱动程序经由相机模块采集的图像数据;虚拟相机获取的所述图像数据被复制为多份图像数据,每份图像数据由一个对应的子虚拟相机提供给上层的相机服务;所述相机服务将获取的多份图像数据提供给上层的本地接口;所述本地接口将所述多份图像数据提供给上层的相机应用框架;所述相机应用框架将所述多份图像数据各自提供给请求相机资源的对应应用或应用请求。
可选地,所述虚拟相机基于请求相机资源的应用或应用请求的个数,创建相应个数的子虚拟相机。
可选地,每个子虚拟相机经由一个标准的硬件适配层接口向上层的相机服务提供图像数据。
根据本发明的第六方面,提出了一种虚拟相机,用于:获取由相机模块采集的图像数据;以及将获取的所述图像数据转换为多份图像数据;经由创建的多个子虚拟相机,将多份图像数据分别提供给请求访问相机资源的多个请求。多个请求可以是来自同一应用内的请求,所述虚拟相机被包括在所述应用内。
根据本发明的第七方面,提出了一种访问终端相机资源的应用,用于:基于其发出的访问请求获取图像数据,其中,所述图像数据是由上述虚拟相机提供的。
根据本发明的第八方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的相机资源访问方法。
根据本发明的第九方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的相机资源访问方法。
本方案通过定制修改诸如Android等的操作系统架构代码,从本质上解决了多App同时访问的问题,完全兼容Android标准SDK接口,支持App端的无感知访问,同时确保各个App间的解耦,避免了业务场景的互相干扰,符合软件开发独立、简单和清晰的原则。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本发明一个实施例的终端相机资源访问方法的示意性流程图。
图2示出了根据本发明获取并分配图像数据的一个结构例。
图3示出了根据本发明获取并分配图像数据的另一个结构例。
图4示出了常规Android系统构架以及其中涉及的相机资源处理路径。
图5示出了带有HAL层的Android系统构架以及其中涉及的相机资源处理路径。
图6示出了根据本发明的相机虚拟层的结构例。
图7示出了根据本发明一个实施例的操作系统的组成示意图。
图8示出了根据本发明一个实施例可用于实现上述相机资源访问方法的计算设备的结构示意图。
图9示出了本发明相机资源方案的应用场景例。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
Android系统不支持多App(终端应用)同时打开一个相机,而只支持互斥访问。在现有技术中,如果一定要实现多业务同时使用相机的场景,通常会将多个业务合并至同一个App下,并在该App内进行相机数据分发。这一现有方案本质上没有解决不支持多App同时访问的问题,而只是通过业务融合进行规避。同时,该方案不能很好地独立应对各种业务场景,业务间耦合严重。
Android系统的不支持多App同时访问相机的问题在智能手机的使用场景中通常不会造成困扰。这是因为智能手机受限于屏幕大小,通常前景显示一个App的内容,因此不容易发生多个App同时访问相机资源的情况。
然而,诸如智能音箱的智能语音设备作为家庭智能终端正变得日益普及。不同于手机系统,新开发的带屏类智能音箱系统经常需要对同一个相机的数据进行多种业务处理,例如,在进行视频通话的同时保证手势控制可用。为了同时保证多种业务的并行处理,需要在操作系统层面支持多App同时访问同一个相机资源。
有鉴于此,本发明提出了一种终端相机资源访问方法,以及相应的操作系统和终端。在现有操作系统(例如,原生Android系统)架构的基础上,通过对物理相机模块的管理和虚拟化,实现了对多APP同时获取相机数据的支持。进一步地,针对操作系统的上述修改优选在内核空间进行,例如在驱动层和硬件适配层之间插入一个相机虚拟层,由此使得本方案可以与芯片方案厂商一同定制,通过修改Android系统底层架构代码,支持多APP同时访问相机资源的需求。
应该理解的是,虽然如下将主要基于Android系统和智能音箱进行本发明原理的描述,但本发明适用于各种可定制的操作系统以及存在多App或多请求访问相机资源的终端。
图1示出了根据本发明一个实施例的相机资源访问方法的示意性流程图。上述方法可由具有相机模块(物理相机)的终端设备执行,例如智能手机或是智能音箱。在一个实施例中,上述方法优选由智能音箱,例如带显示屏(触摸屏)的智能音箱执行,例如,由其内安装的定制操作系统(例如,Android系统)执行。
在步骤S110,虚拟相机获取由相机模块采集的图像数据。在步骤S120,将获取的所述图像数据提供给请求访问相机资源的多个请求。显见的,为了实现对同时请求访问的多个App的请求提供相机资源,本发明的上述访问方法优选在系统级执行。在此,请求访问相机资源的多个请求优选可以是来自同一操作系统内的多个应用的访问请求。在其他实施例中,多个请求还可以是来自同一应用的多个访问请求(例如,来自同一应用的不同功能模块的不同访问请求)。在其他实施例中,多个请求可以是来自联网系统内其他设备的外部访问请求,例如,来自物联网中其他联网的物联网设备的访问请求。例如,该虚拟相机可以位于家庭摄像头或摄像头支持系统内,能够生成多个子虚拟相机(如下所述)用于多路图像数据的分发,例如,同时分发。
步骤S110可以包括:获取由相机驱动程序获取的图像数据。在此,获取由相机驱动程序(Camera Driver)获取的图像数据可以是直接从上述驱动中获取图像数据,例如,源源不断地从相机驱动获取硬件相机模块捕获的图像帧。
步骤S120可以包括:建立多个多个子虚拟相机;以及每个子虚拟相机将分配得到的图像数据提供给请求访问相机资源的一个应用。由此,可以通过为每个请求相机资源的应用分配一个子虚拟相机来实现针对每个应用的资源可靠供给。
图2示出了根据本发明的虚拟相机的一个结构例。如图所示,虚拟相机可以包括数据获取组件210和多个子虚拟相机。组件210可以获取相机模块采集的图像数据,例如,持续从相机驱动程序获取采集到的图像帧。随后,组件210可以将获取到的数据分发给三个子虚拟相机(子虚拟相机0、1、2)。这三个子虚拟相机可以各自将分配的数据分发给与其对应的应用(例如,App 0、1和2),由此实现多路分发。
在一个实施例中,可以根据对应应用对所述相机资源的访问请求确定每个子虚拟相机的生命周期。例如,在仅存在一个应用请求访问相机资源时,可以不通过图2所示结构,或是通过建立一个对应的子虚拟相机来进行相机资源供应。在又有一个应用请求访问相机资源时,可以直接创建两个子虚拟相机,或是在已有一个默认子虚拟相机的基础上再创建一个子虚拟相机,由此通过两个子虚拟相机执行两个应用对相机资源的访问,并以此类推。而在有应用结束对相机资源的访问请求时,则可以关闭与其对应的子虚拟相机,例如,释放相应的存储资源。
在不同的应用场景中,可以基于不同的数据分配方案将图像数据提供给请求访问的多个请求。在一个实施例中,步骤S120可以包括:将获取的所述图像数据复制成多份相同的图像数据,每份图像数据对应于一个子虚拟相机;以及每个子虚拟相机将相应的图像数据提供给请求访问相机资源的一个请求。在另一个实施例中,步骤S120可以包括:将获取的所述图像数据划分成多份至少部分不同的图像数据;以及将每份图像数据提供给请求访问相机资源的一个请求。优选地,可以基于请求访问相机资源的应用个数,将获取的连续图像帧逐一送入对应个数的虚拟相机内。
在如上使用虚拟相机的场景中,针对多个同时请求访问相机数据的应用(例如,App 0、1和2),可以为每个App提供完全相同的图像数据。例如,相机模块以30帧/秒的输入采集图像数据,三个子虚拟相机中复制有同样的每秒30帧的数据,并且每个App都能够获取相机模块所采集的全部数据,由此确保各个业务对帧率的要求。在一个实施例中,每个子虚拟相机可以直接从图2所示的组件210中进行读取数据。在一个优选实施例中,用于进行数据获取的组件210很可能具有相对较小的存储空间,因此优选将子虚拟相机本身作为缓存,后续子虚拟相机直接复制在前子虚拟相机内的内容。图3示出了根据本发明获取并分配图像数据的另一个结构例。如图所示,用于数据获取的组件310将获取到的数据源源不断地送入子虚拟相机0,后续的子虚拟相机1和2可以逐一从在前子虚拟相机中复制数据,上述结构还有利于后续虚拟相机的直接扩展。
虽然复制方案能够确保每个业务对帧率的要求,但是上述方案会消耗相对较大的存储空间。因此,在存储空间受限的实现中,将获取的所述图像数据划分成多份至少部分不同的图像数据,并将每份图像数据提供给请求访问相机资源的一个应用或请求。例如,在相机模块以30帧/秒的输入采集图像数据时,每个子虚拟相机可以仅获取其采集的部分图像数据,例如每秒20或是10帧数据。优选地,每个子虚拟相机可以轮流获取一个数据帧。例如,在存在两个子虚拟相机的情况下,数据获取组件210可以将单数帧分发至第一子虚拟相机,将偶数帧分发至第二子虚拟相机,并且以此类推。在其他实施例中,可以基于具体应用,混合采用上述划分或是复制方案。
为了支持App端的无感知访问,步骤S120可以包括将获取的一份所述图像数据转换为多份图像数据,并且所述转换是在操作系统内核态完成的。优选地,将获取的所述图像数据提供给请求访问相机资源的多个应用还包括:将转换后的每份图像数据提供给一个标准的硬件适配层(HAL)接口。例如,可以通过在相机驱动程序层和相机硬件适配层之间设置相机虚拟层来实现所述终端相机资源访问方法。
图4示出了一个常规Android系统构架以及其中涉及的相机资源处理路径。如图所示,在需要访问相机数据时,相机数据(相机采集的图像数据)经由内核层的相机驱动程序、库中的相机服务、相机Framework(框架)、安卓运行时中的JNI(JAVA本地接口)、应用框架层中的相机应用框架传递给相机App进行相关业务处理。
为了提升Android系统与硬件的适配,可以在内核层之上添加一个Android HAL(Hardware Adapter Layer,安卓系统硬件适配层),上述适配层可由各芯片方案商定制开发,以使得Android系统能够与安装其上的硬件更为匹配。图5示出了带有HAL层的Android系统构架以及其中涉及的相机资源处理路径。如图所示,在需要访问相机数据时,相机数据(相机采集的图像数据)经由内核层的相机驱动程序、相机HAL、库中的相机服务、相机Framework(框架)、安卓运行时中的JNI(JAVA本地接口)、应用框架层中的相机应用框架传递给相机App进行相关业务处理。
为此,本发明可以实现为一种终端相机资源访问方法,包括:获取相机驱动程序经由相机模块采集的图像数据;虚拟相机获取的所述图像数据被复制为多份图像数据,每份图像数据由一个对应的子虚拟相机提供给上层的相机服务;所述相机服务将获取的多份图像数据提供给上层的本地接口;所述本地接口将所述多份图像数据提供给上层的相机应用框架;所述相机应用框架将所述多份图像数据各自提供给请求相机资源的对应应用或应用请求。所述虚拟相机可以基于请求相机资源的应用或应用请求的个数,创建相应个数的子虚拟相机。进一步地,每个子虚拟相机可以经由一个标准的硬件适配层接口向上层的相机服务提供图像数据。
本发明中的上述相机数据获取和分发方案优选在内核层与HAL层之间实现,例如,实现为一个相机虚拟层或是虚拟相机。图6示出了根据本发明的相机虚拟层的结构例。类似于图2和图3,相机虚拟层或是虚拟相机600包括数据获取组件610和多个子虚拟相机(例如,虚拟相机0、1、2)。组件610直接从相机驱动程序中获取图像数据,并经由与请求访问相机资源的应用个数相匹配的虚拟相机,将数据分发(例如,复制并分发)至相机HAL,从而实现针对上部应用框架和应用层无感知访问。
本发明的访问方案还可以实现为一种操作系统。图7示出了根据本发明一个实施例的操作系统的组成示意图。如图所示,操作系统700包括:相机资源获取模块710,用于获取由相机模块采集的图像数据;以及相机资源分发模块720,用于将获取的所述图像数据提供给请求访问相机资源的多个应用或应用请求(即,来自多个应用的请求或是来自同一应用的多个请求)。
在一个实施例中,操作系统700还可以包括:相机驱动程序,用于经由相机模块采集图像数据,并且所述相机资源获取模块用于从所述相机驱动程序获取所述图像数据。
在一个实施例中,相机资源分发模块720包括多个子虚拟相机,每个子虚拟相机包括由所述相机资源获取模块获取的图像数据,并且每个子虚拟相机将分配得到的图像数据提供给请求访问相机资源的一个应用。优选地,每个子虚拟相机的生命周期由对应应用对所述相机资源的访问请求确定。
在不同的数据分配方案中,每个子虚拟相机可以包括从由所述相机资源获取模块获取的图像数据复制的多份相同图像数据中的一份图像数据,也可以包括从由所述相机资源获取模块获取的图像数据划分成的多份至少部分不同的图像数据中的一份图像数据。优选地,虚拟相机的个数与当前正请求访问相机资源的应用个数相同,并且每个子虚拟相机逐一获取连续图像帧中的一帧数据。
在一个实施例中,相机资源获取模块710和相机资源分发模块720在所述操作系统700的内核空间实现。每个子虚拟相机可以对接一个标准的硬件适配层(HAL)接口。并且更优选地,相机资源获取模块710和相机资源分发模块720可以实现为设置在相机驱动程序层和相机硬件适配层之间的相机虚拟层或虚拟相机,例如图6所示的虚拟相机。
虚拟相机可以用于:获取由相机模块采集的图像数据;以及将获取的所述图像数据转换为多份图像数据;经由创建的多个子虚拟相机,将多份图像数据分别提供给请求访问相机资源的多个请求。
如上所述,本发明的虚拟相机优选是在操作系统内核态实现的虚拟相机模块。在更为广泛的应用场景中,虚拟相机可以具有其他的实现形式。例如,包括对外部请求接口的虚拟相机,由此能够向例如外部设备提供所需的图像数据。在例如,当同一应用内存在需要同时运行且需要同时访问相机资源的模块时,即,多个请求是来自同一应用内的请求,则虚拟相机也被包括在所述应用内。另外,本发明还可以实现为一种访问终端相机资源的应用,用于:基于其发出的访问请求获取图像数据,其中,所述图像数据是由如上所述的虚拟相机提供的。
图8示出了根据本发明一个实施例可用于实现上述相机资源访问方法的计算设备的结构示意图。
参见图8,计算设备800包括存储器810、处理器820和相机830。优选地,该计算设备800可以安装有如上所述的操作系统,例如,根据本发明定制(例如,在HAL层定制)的操作系统。
处理器820可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器820可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器820可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器810可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器820或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器810可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器810可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器810上存储有可执行代码,当可执行代码被处理器820处理时,可以使处理器820执行上文述及的相机资源访问方法。
本发明的上述访问方案还可以实现为一种终端,包括相机模块,并且安装有如上所述的操作系统。上述终端可以是各种常见的智能终端,例如,智能手机,平板电脑等,并且尤其可以是智能音箱,例如带显示屏(例如,触摸屏)的智能音箱。
在智能音箱的应用场景中,会使用到相机资源的功能主要有:视频通话,绘本读书,手势控制,爱家看护,距离检测,拍照等。在没有应用本发明的相机资源访问方案前,如果用户在进行视频通话过程中,因为相机资源被视频通话占用,这样手势控制模块无法获取到相机资源,无法采集手势图像,进行相应分析,导致视频通话过程中,无法通过手势进行控制。在采用了本方案之后,用户可以在视频通话过程中继续享用手势控制的便利,提升用户体验。
在Android现有软件层基础上,在相机驱动层和相机Hal层之间,加入一层CameraVirtual Layer(相机虚拟层,CVL)来接管物理相机设备,并根据当前App应用请求情况,虚拟出相应的虚拟相机设备(在前面例子中,我们可以为视频通话和手势控制虚拟出两个对应虚拟相机设备),将物理相机数据通过内存复制的方式,分发给虚拟相机设备,实现了多路的分发,同时根据虚拟相机设备的生命周期(视频通话和手势的使用情况)控制物理相机资源生命周期。
具体在CVL层内部的软件模块中,通过数据捕获组件进行物理相机数据的管理、分发,每一个虚拟相机服务一个独立的Android App应用,同时CVL兼容相机Hal层接口,避免了对相机Hal层的修改,方便后续升级维护。通过以上定制修改,Android多个App即可无感知的访问同一个相机资源,可以使智能终端产品内的视觉功能(视频通话,绘本读书,手势控制,爱家看护,距离检测,拍照等)互不干扰的进行工作,为用户提供更好的产品体验。
如下将结合一个具体应用场景描述本发明的相机资源访问方案。图9示出了本发明相机资源方案的应用场景例。
如图9上部所示,用户2在其家中布置有智能音箱1。该智能音箱包括音箱部分101、显示屏(例如,触摸屏)部分102和摄像头(相机模块)103。
如图9中上部所示,用户2使用智能音箱1进行视频通话。应该理解的是,在进行视频通话时,显示屏102中显示的是正与用户2进行通话的通话对象的影像,相机模块103则采集用户1的图像以供视频通话APP(APP1)进行传输。虽然图中未示出,在某些实施例中,显示屏102中还会显示相机模块103采集的用户1的影像的小窗。另外,为了确保手势操作功能可用,在视频通话期间,手势操作APP(APP0)保持在后台运行。换句话说,相机模块103采集到的图像数据被两个虚拟相机各自经由独立路径发送给对应的两个APP。此时,由于用户1没有进行符合预设条件的任何动作,因此手势操作APP不触发任何操作。
如图9中下部所示,在进行视频通话的过程中,智能音箱1接收到消息。于是音箱101发出声响,并在显示屏102中进行提示(例如,图中的铃铛图形)。用户2在获知接收到新消息时,可以使用规定的手势进行屏幕翻页来查看收到的消息。此时,相机103会捕捉到用户例如右手大拇指向右指的动作,上述图像被传送给视频通话APP(APP1)的同时,也会发送至手势识别APP(APP0)。
如图9下部所示,手势识别APP分辨出用户右手大拇指向右指的动作,并执行相应的向右翻页动作,跳转至通知页面,以在显示屏内显示通知的具体内容。
由此,可以通过系统级定制修改,屏蔽相机App层感知,同时支持标准Android相机应用Api。另外,可以通过虚拟化物理相机支持多Android App同时访问物理相机资源。
上文中已经参考附图详细描述了根据本发明的相机资源访问、操作系统和终端。本方案在Android系统架构基础上,通过优选实现为插入一个相机虚拟层,实现对物相机的管理和虚拟化,达到支持多App同时获取相机数据的目的,解决了现有智能终端产品视觉功能的痛点。
本方案通过定制修改诸如Android等的操作系统架构代码,从本质上解决了多App同时访问的问题,完全兼容Android标准SDK接口,支持App端的无感知访问,同时确保各个App间的解耦,避免了业务场景的互相干扰,符合软件开发独立、简单和清晰的原则。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (31)

1.一种相机资源访问方法,包括:
虚拟相机获取由相机模块采集的图像数据;以及
将获取的所述图像数据提供给请求访问相机资源的多个请求。
2.如权利要求1所述的方法,其中,虚拟相机获取由相机模块采集的图像数据包括:
所述虚拟相机获取由相机驱动程序获取的图像数据。
3.如权利要求1所述的方法,其中,将获取的所述图像数据提供给请求访问相机资源的多个应用包括:
建立多个子虚拟相机;以及
每个子虚拟相机将分配得到的图像数据提供给请求访问相机资源的一个或多个请求。
4.如权利要求3所述的方法,其中,建立的多个子虚拟相机的生命周期由对应应用对所述相机资源的访问请求确定。
5.如权利要求1所述的方法,其中,将获取的所述图像数据提供给请求访问相机资源的多个请求包括:
将获取的所述图像数据复制成多份相同的图像数据,每份图像数据对应于一个子虚拟相机;以及
每个子虚拟相机将相应的图像数据提供给请求访问相机资源的一个请求。
6.如权利要求1所述的方法,其中,将获取的所述图像数据提供给请求访问相机资源的多个请求包括:
将获取的所述图像数据划分成多份至少部分不同的图像数据,每份图像数据对应于一个子虚拟相机;以及
每个子虚拟相机将相应的图像数据提供给请求访问相机资源的一个请求。
7.如权利要求6所述的方法,其中,将获取的所述图像数据划分成多份至少部分不同的图像数据包括:
基于请求访问相机资源的请求的个数,将获取的连续图像帧逐一送入对应个数的子虚拟相机内。
8.如权利要求1所述的方法,其中,将获取的所述图像数据提供给请求访问相机资源的多个请求包括:
将获取的一份所述图像数据转换为多份图像数据,并且所述转换是所述虚拟相机在操作系统内核态完成的。
9.如权利要求8所述的方法,其中,将获取的所述图像数据提供给请求访问相机资源的多个请求还包括:
将转换后的每份图像数据提供给一个标准的硬件适配层接口。
10.如权利要求1所述的方法,其中,通过在相机驱动程序层和相机硬件适配层之间设置相机虚拟层来实现所述终端相机资源访问方法。
11.如权利要求1所述的方法,其中,所述多个请求包括如下至少一项:
来自同一操作系统内的多个应用的访问请求;
来自联网系统内其他设备的外部访问请求;
来自同一应用的多个访问请求。
12.一种虚拟相机,用于执行如权利要求1-11中任一项所述的方法。
13.一种操作系统,安装有多个应用,所述操作系统包括虚拟相机,所述虚拟相机包括:
相机资源获取模块,用于获取由相机模块采集的图像数据;
相机资源分发模块,用于将获取的所述图像数据提供给请求访问相机资源的多个应用或应用请求。
14.如权利要求11所述的操作系统,还包括:
相机驱动程序,用于经由相机模块采集图像数据,并且
所述相机资源获取模块用于从所述相机驱动程序获取所述图像数据。
15.如权利要求11所述的操作系统,其中,所述相机资源分发模块包括多个子虚拟相机,每个子虚拟相机包括由所述相机资源获取模块获取的图像数据,并且
每个子虚拟相机将分配得到的图像数据提供给请求访问相机资源的一个应用或应用请求。
16.如权利要求13所述的操作系统,其中,每个子虚拟相机的生命周期由对应应用或应用请求对所述相机资源的访问请求确定。
17.如权利要求13所述的操作系统,其中,每个子虚拟相机包括从由所述相机资源获取模块获取的图像数据复制的多份相同图像数据中的一份图像数据。
18.如权利要求13所述的操作系统,其中,每个子虚拟相机包括从由所述相机资源获取模块获取的图像数据划分成的多份至少部分不同的图像数据中的一份图像数据,
其中,所述子虚拟相机的个数与当前正请求访问相机资源的应用或应用请求个数相同,并且每个子虚拟相机逐一获取连续图像帧中的一帧数据。
19.如权利要求18所述的操作系统,其中,所述虚拟相机包括的每个子虚拟相机对接一个标准的硬件适配层接口。
20.如权利要求13所述的操作系统,其中,所述虚拟相机实现为设置在相机驱动程序层和相机硬件适配层之间的相机虚拟层。
21.一种终端,包括相机模块,并且安装有如权利要求13-20中任一项所述的操作系统或用于执行如权利要求1-11所述的方法。
22.如权利要求21所述的终端,其中,所述终端是智能音箱或智能电话。
23.如权利要求22所述的终端,其中,所述终端是带屏幕的智能音箱。
24.一种终端相机资源访问方法,包括:
获取相机驱动程序经由相机模块采集的图像数据;
虚拟相机获取的所述图像数据被复制为多份图像数据,每份图像数据由一个对应的子虚拟相机提供给上层的相机服务;
所述相机服务将获取的多份图像数据提供给上层的本地接口;
所述本地接口将所述多份图像数据提供给上层的相机应用框架;
所述相机应用框架将所述多份图像数据各自提供给请求相机资源的对应应用或应用请求。
25.如权利要求25所述的方法,其中,所述虚拟相机基于请求相机资源的应用或应用请求的个数,创建相应个数的子虚拟相机。
26.如权利要求25所述的方法,其中,每个子虚拟相机经由一个标准的硬件适配层接口向上层的相机服务提供图像数据。
27.一种虚拟相机,用于:
获取由相机模块采集的图像数据;以及
将获取的所述图像数据转换为多份图像数据;
经由创建的多个子虚拟相机,将多份图像数据分别提供给请求访问相机资源的多个请求。
28.如权利要求28所述的虚拟相机,所述多个请求是来自同一应用内的请求,所述虚拟相机被包括在所述应用内。
29.一种访问终端相机资源的应用,用于:
基于其发出的访问请求获取图像数据,其中,所述图像数据是由如权利要求12或28所述的虚拟相机提供的。
30.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-11中任一项所述的方法。
31.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-11中任一项所述的方法。
CN201911038734.8A 2019-10-29 2019-10-29 相机资源访问方法、操作系统、终端和虚拟相机 Active CN112749022B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911038734.8A CN112749022B (zh) 2019-10-29 2019-10-29 相机资源访问方法、操作系统、终端和虚拟相机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911038734.8A CN112749022B (zh) 2019-10-29 2019-10-29 相机资源访问方法、操作系统、终端和虚拟相机

Publications (2)

Publication Number Publication Date
CN112749022A true CN112749022A (zh) 2021-05-04
CN112749022B CN112749022B (zh) 2024-05-31

Family

ID=75641598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911038734.8A Active CN112749022B (zh) 2019-10-29 2019-10-29 相机资源访问方法、操作系统、终端和虚拟相机

Country Status (1)

Country Link
CN (1) CN112749022B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342422A (zh) * 2021-06-29 2021-09-03 技德技术研究所(武汉)有限公司 一种Linux兼容Android的多应用访问摄像头方法及装置
CN113359992A (zh) * 2021-06-15 2021-09-07 读书郎教育科技有限公司 一种解决手势识别应用占用相机的方法
CN113448648A (zh) * 2021-06-29 2021-09-28 技德技术研究所(武汉)有限公司 一种Linux兼容Android的访问摄像头方法及装置
CN113596588A (zh) * 2021-07-31 2021-11-02 郑州信大捷安信息技术股份有限公司 一种单机多平台直播方法和系统
CN116708867A (zh) * 2023-08-07 2023-09-05 深圳市亿晟科技有限公司 一种直播数据处理方法、装置、设备及存储介质
CN118394451A (zh) * 2024-06-24 2024-07-26 广东朝歌智慧互联科技有限公司 基于多实例虚拟摄像头的多应用共享摄像头的方法、系统、智能终端设备
WO2024179374A1 (zh) * 2023-02-27 2024-09-06 北京字跳网络技术有限公司 图像处理方法及设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246718A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation VEX-virtual extension framework
CN101833520A (zh) * 2009-03-11 2010-09-15 凹凸电子(武汉)有限公司 计算机系统、多个应用程序同时使用一个摄像头的方法
CN103517146A (zh) * 2012-09-11 2014-01-15 Tcl集团股份有限公司 智能电视实现虚拟语音设备的方法及系统
CN104918112A (zh) * 2014-03-13 2015-09-16 深圳Tcl新技术有限公司 相机资源的应用方法及装置
US20160216898A1 (en) * 2015-01-23 2016-07-28 Qualcomm Incorporated Storage resource management in virtualized environments
CN106534808A (zh) * 2016-12-28 2017-03-22 浙江宇视科技有限公司 一种基于虚拟摄像机的视频监控方法及装置
CN107659768A (zh) * 2017-08-08 2018-02-02 珠海全志科技股份有限公司 一种基于Android多应用共享摄像头的系统及方法
CN108809718A (zh) * 2018-06-12 2018-11-13 深圳华讯网络科技有限公司 基于虚拟资源的网络访问方法、系统、计算机设备和介质
US20190050957A1 (en) * 2017-08-11 2019-02-14 Microsoft Technology Licensing, Llc Memory allocation type for media buffer

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246718A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation VEX-virtual extension framework
CN101833520A (zh) * 2009-03-11 2010-09-15 凹凸电子(武汉)有限公司 计算机系统、多个应用程序同时使用一个摄像头的方法
CN103517146A (zh) * 2012-09-11 2014-01-15 Tcl集团股份有限公司 智能电视实现虚拟语音设备的方法及系统
CN104918112A (zh) * 2014-03-13 2015-09-16 深圳Tcl新技术有限公司 相机资源的应用方法及装置
US20160216898A1 (en) * 2015-01-23 2016-07-28 Qualcomm Incorporated Storage resource management in virtualized environments
CN106534808A (zh) * 2016-12-28 2017-03-22 浙江宇视科技有限公司 一种基于虚拟摄像机的视频监控方法及装置
CN107659768A (zh) * 2017-08-08 2018-02-02 珠海全志科技股份有限公司 一种基于Android多应用共享摄像头的系统及方法
US20190050957A1 (en) * 2017-08-11 2019-02-14 Microsoft Technology Licensing, Llc Memory allocation type for media buffer
CN108809718A (zh) * 2018-06-12 2018-11-13 深圳华讯网络科技有限公司 基于虚拟资源的网络访问方法、系统、计算机设备和介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘博文;顾乃杰;谷德贺;苏俊杰;: "移动平台Android操作系统虚拟化技术的实现", 计算机工程与应用, no. 14, pages 37 - 43 *
黄勇军;金华敏;刘国荣;刘东鑫;汪来富;沈军;: "智能终端虚拟化及安全隔离技术", 电信科学, no. 02, pages 105 - 115 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113359992A (zh) * 2021-06-15 2021-09-07 读书郎教育科技有限公司 一种解决手势识别应用占用相机的方法
CN113342422A (zh) * 2021-06-29 2021-09-03 技德技术研究所(武汉)有限公司 一种Linux兼容Android的多应用访问摄像头方法及装置
CN113448648A (zh) * 2021-06-29 2021-09-28 技德技术研究所(武汉)有限公司 一种Linux兼容Android的访问摄像头方法及装置
CN113596588A (zh) * 2021-07-31 2021-11-02 郑州信大捷安信息技术股份有限公司 一种单机多平台直播方法和系统
WO2024179374A1 (zh) * 2023-02-27 2024-09-06 北京字跳网络技术有限公司 图像处理方法及设备
CN116708867A (zh) * 2023-08-07 2023-09-05 深圳市亿晟科技有限公司 一种直播数据处理方法、装置、设备及存储介质
CN116708867B (zh) * 2023-08-07 2023-11-10 深圳市亿晟科技有限公司 一种直播数据处理方法、装置、设备及存储介质
CN118394451A (zh) * 2024-06-24 2024-07-26 广东朝歌智慧互联科技有限公司 基于多实例虚拟摄像头的多应用共享摄像头的方法、系统、智能终端设备
CN118394451B (zh) * 2024-06-24 2024-09-17 广东朝歌智慧互联科技有限公司 基于多实例虚拟摄像头的多应用共享摄像头的方法、系统、智能终端设备

Also Published As

Publication number Publication date
CN112749022B (zh) 2024-05-31

Similar Documents

Publication Publication Date Title
CN112749022B (zh) 相机资源访问方法、操作系统、终端和虚拟相机
EP3754490B1 (en) User interface rendering method and apparatus, and terminal
CN109168021B (zh) 一种推流的方法及装置
CN109542614B (zh) 资源配置方法、装置、终端及存储介质
JP7100154B2 (ja) プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体
CN111625214B (zh) 音频控制方法、装置、设备及存储介质
CN113542757A (zh) 云应用的图像传输方法、装置、服务器及存储介质
US20240232428A9 (en) Access control method, electronic device, and system
CN110990075A (zh) 快应用的启动方法、装置、设备及存储介质
CN114302040B (zh) 多应用共享单一摄像头的方法及相关产品
US10437601B2 (en) Centralized memory management for multiple device streams
CN109379548B (zh) 多媒体录制方法、装置、终端及存储介质
CN114741120B (zh) 用于增强设备流的可插拔组件
CN109522131A (zh) 资源配置方法、装置及设备
CN113886019A (zh) 虚拟机创建方法、装置、系统、介质和设备
CN116546228B (zh) 用于虚拟场景的推流方法、装置、设备及存储介质
CN116700601B (zh) 内存优化方法、设备及存储介质
CN115756868A (zh) 内存分配方法、装置、设备、存储介质及计算机程序产品
WO2022199672A1 (zh) 精准撤销权限的访问控制方法、相关装置及系统
CN113141515B (zh) 相机资源分发方法、操作系统、终端和广播装置
US20180357006A1 (en) Data Processing Method, Allocation Method, Electronic Device, Client and Storage Media
WO2024094069A1 (zh) 一种音频播放方法及电子设备
CN115017536A (zh) 访问控制方法、相关装置及系统
CN114996667A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240618

Address after: 6th Floor, B2, Block B, Xixi Park, No. 1 Aicheng Street, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: Zhejiang Future Elf Artificial Intelligence Technology Co.,Ltd.

Country or region after: China

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: ALIBABA GROUP HOLDING Ltd.

Country or region before: Cayman Islands