用于控制对相机设备的图像传感器进行的用户访问的技术转让专利

申请号 : CN201680012722.6

文献号 : CN107409169B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : C-H·S·郭T·陶G·拉杰R·希克斯

申请人 : 英特尔公司

摘要 :

用于管理对由图像传感器阵列的多个图像传感器生成的图像数据流进行的访问的技术包括相机驱动器模块。所述相机驱动器模块限制向用户暴露所述图像传感器阵列的所述图像传感器中除了一个图像传感器之外的所有图像传感器。在一些实施例中,所述图像传感器阵列可以包括:单个主图像传感器,所述主图像传感器暴露于所述用户;以及一个或多个辅传感器,所述辅传感器未暴露于所述用户。在其他实施例中,所述图像传感器阵列可以包括多于一个主图像传感器和任何数量的辅图像传感器。在这种实施例中,所述主图像传感器中的仅一个暴露于所述用户并且所述辅图像传感器(如果可用)均未暴露于所述用户。本文描述并要求保护了其他实施例。

权利要求 :

1.一种用于控制对图像传感器阵列的图像传感器进行的用户访问的计算设备,所述计算设备包括:相机设备,所述相机设备包括图像传感器阵列,其中,所述图像传感器阵列包括多个图像传感器;以及相机驱动器模块,所述相机驱动器模块用于(i)管理对由所述图像传感器阵列的所述图像传感器中的每个图像传感器生成的图像数据流的访问;(ii)确定由计算设备的用户选择的所述相机设备的用户输入模式设置;(iii)至少部分地基于所选择的用户输入模式设置向所述计算设备的所述用户暴露所述图像传感器阵列的单个图像传感器;并且(iv)在所述相机设备处于所选择的用户输入模式设置的同时,通过向所述计算设备的用户隐藏所述图像传感器阵列中除所暴露的单个图像传感器之外的其他图像传感器的设置来限制用户访问。

2.如权利要求1所述的计算设备,其中,所述多个图像传感器包括主图像传感器和一个或多个辅图像传感器;

其中,所述相机驱动器模块进一步用于(i)管理对由所述主图像传感器和所述一个或多个辅图像传感器生成的图像数据流的访问;(ii)向所述计算设备的所述用户暴露所述主图像传感器;并且(iii)限制对所述图像传感器阵列的所述一个或多个辅图像传感器的用户访问。

3.如权利要求1所述的计算设备,其中,所述多个图像传感器包括一个或多个主图像传感器;

其中,所述相机驱动器模块进一步用于(i)管理对由所述主图像传感器中的每个主图像传感器生成的图像数据流的访问;(ii)向所述计算设备的所述用户暴露单个主图像传感器;并且(iii)限制对所述主图像传感器中除所述单个主图像传感器之外的其他主图像传感器的用户访问。

4.如权利要求3所述的计算设备,其中,所述多个图像传感器另外包括一个或多个辅图像传感器;

其中,所述相机驱动器模块进一步用于(i)管理对由所述一个或多个辅图像传感器生成的图像数据流的访问,并且(ii)限制对所述一个或多个辅图像传感器的用户访问。

5.如权利要求3所述的计算设备,其中,所述相机驱动器模块进一步用于基于所支持的分辨率、视场或视角中的至少一项来从所述图像传感器阵列的所述多个图像传感器中选择所述主图像传感器。

6.如权利要求1所述的计算设备,其中,暴露所述单个图像传感器包括向能够由所述计算设备执行的软件应用暴露来自所述单个图像传感器的图像数据流。

7.如权利要求1所述的计算设备,进一步包括:

多个输出模块,所述多个输出模块用于基于所述相机设备的相机模式设置处理所接收的图像传感器数据并且输出经处理的图像传感器数据;

多个代理模块,所述多个代理模块用于将来自所述相机驱动器模块的每个光学图像数据流经纪代理到所述多个输出模块中的相应输出模块;

其中,所述相机驱动器模块进一步用于(i)确定所述相机设备的所述相机模式设置和用户输入模式设置;(ii)至少部分地基于所述用户输入模式设置管理所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器中每一者的启用状态;并且(iii)基于所述相机模式设置向所述多个代理模块之一传送所述图像传感器数据。

8.如权利要求7所述的计算设备,其中,响应于确定所述用户输入模式被设置为深度检测模式,所述相机驱动器模块进一步用于(i)启用所述单个图像传感器以便进行图像传感器数据捕获,(ii)禁用所述图像传感器阵列的所述其他图像传感器,并且(iii)基于所述相机模式设置向所述多个代理模块之一传送来自所述单个图像传感器的所述图像传感器数据。

9.如权利要求7所述的计算设备,其中,响应于确定所述相机模式设置未被设置为深度检测模式,所述相机驱动器模块进一步用于(i)启用所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器以便进行图像传感器数据捕获,并且(ii)判定所述相机设备是否被设置用于照片捕获。

10.如权利要求9所述的计算设备,其中:

所述多个输出模块包括:预览输出模块,所述预览输出模块用于处理所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出预览图像;以及视频输出模块,所述视频输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出视频,所述多个代理模块包括:预览代理模块,所述预览代理模块用于在所述相机驱动器模块与所述预览输出模块之间代理所述光学图像数据;以及视频代理模块,所述视频代理模块用于在所述相机驱动器模块与所述视频输出模块之间代理所述光学图像数据,并且所述相机驱动器模块进一步用于响应于确定所述相机模式未被设置为照片捕获模式,(i)从所述单个图像传感器捕获图像传感器数据并且(ii)向所述预览代理模块或所述视频代理模块之一传送来自所述单个图像传感器的所述图像传感器数据。

11.如权利要求10所述的计算设备,其中:

所述多个输出模块进一步包括照片输出模块,所述照片输出模块用于处理所接收的图像传感器数据并且基于所述所接收的图像传感器数据输出照片,所述多个代理模块进一步包括照片代理模块,所述照片代理模块用于在所述相机驱动器模块与所述照片输出模块之间代理所述光学图像数据,所述相机驱动器模块进一步用于响应于确定所述相机模式被设置为照片捕获模式,(i)从所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器捕获图像传感器数据;并且(ii)至少部分地基于所述相机模式设置向所述预览代理模块或所述视频代理模块之一传输来自所述单个图像传感器的所述图像传感器数据,并且所述照片代理模块进一步用于(i)使用来自所述单个图像传感器的所述图像传感器数据来对照片进行编码,(ii)基于来自所述图像传感器阵列的所述其他图像传感器中的一个或多个的所述图像传感器数据来计算深度数据,(iii)将所述深度数据插入到经编码照片的元数据中,并且(iv)输出包括所述深度数据的所述照片。

12.如权利要求11所述的计算设备,其中,在所述相机驱动器模块与所述预览输出模块之间代理所述光学图像数据包括向所述预览输出模块传送来自所述相机驱动器模块的所接收的图像传感器数据,其中,在所述相机驱动器模块与所述视频输出模块之间代理所述光学图像数据包括向所述视频输出模块传送来自所述相机驱动器模块的所接收的图像传感器数据,并且其中,在所述相机驱动器模块与所述照片输出模块之间代理所述光学图像数据包括向所述照片输出模块传送来自所述相机驱动器模块的所接收的图像传感器数据。

13.一种用于控制对计算设备的图像传感器阵列的图像传感器的用户访问的计算设备,所述计算设备包括:用于由所述计算设备的图像传感器阵列的多个图像传感器中的每个图像传感器生成图像数据流的装置;

用于由所述计算设备的相机驱动器模块管理对所生成的图像数据流的访问的装置;

用于相机驱动器模块确定由计算设备的用户选择的相机设备的用户输入模式设置的装置;

用于由所述相机驱动器模块至少部分地基于所选择的用户输入模式设置向所述计算设备的用户暴露单个图像传感器的装置;以及用于在所述相机设备处于所选择的用户输入模式设置的同时,通过向所述计算设备的用户隐藏所述图像传感器阵列中除所暴露的单个图像传感器之外的其他图像传感器的设置来限制的用户访问的装置。

14.如权利要求13所述的计算设备,其中,所述用于由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流的装置包括用于由主图像传感器和一个或多个辅图像传感器中的每一者生成所述图像数据流的装置;

其中,用于向所述计算设备的所述用户暴露所述单个图像传感器的装置包括用于向所述计算设备的所述用户暴露所述主图像传感器的装置;并且其中,用于限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的所述其他图像传感器的用户访问的装置包括用于限制对所述图像传感器阵列的所述一个或多个辅图像传感器的用户访问的装置。

15.如权利要求13所述的计算设备,其中,所述用于由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流的装置包括用于由多个主图像传感器中的每一个生成所述图像数据流的装置;

其中,用于向所述计算设备的所述用户暴露所述单个图像传感器的装置包括用于向所述计算设备的所述用户暴露所述多个主图像传感器中的单个主图像传感器的装置;并且其中,用于限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的所述其他图像传感器的用户访问的装置包括用于限制对所述多个主图像传感器中除所述单个主图像传感器之外的其他主图像传感器的用户访问的装置。

16.如权利要求15所述的计算设备,其中,所述用于由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流进一步的装置包括用于由一个或多个辅图像传感器中的每一个生成所述图像数据流的装置;并且其中,所述用于限制对所述图像传感器阵列中除所述单个图像传感器之外的所述其他图像传感器的用户访问的装置包括用于限制对所述一个或多个辅图像传感器的用户访问的装置。

17.如权利要求15所述的计算设备,进一步包括:用于基于所支持的分辨率、视场或视角中的至少一项来从所述多个主图像传感器中选择所述单个主图像传感器的装置。

18.如权利要求13所述的计算设备,其中,用于暴露所述单个图像传感器的装置包括用于向能够由所述计算设备执行的软件应用暴露来自所述单个图像传感器的图像数据流的装置。

19.如权利要求13所述的计算设备,进一步包括:

用于确定所述计算设备的相机模式设置和用户输入模式设置的装置;

用于至少部分地基于所述用户输入模式设置来管理所述图像传感器中的每一个的启用状态的装置;

用于由所述相机驱动器模块基于所述相机模式设置向多个代理模块之一传送图像传感器数据的装置;

用于由所述多个代理模块中的至少一个代理模块将来自所述相机驱动器模块的每个光学图像数据流经纪代理到多个输出模块中的相应输出模块的装置;

用于由所述多个输出模块中的至少一个输出模块至少部分地基于所述计算设备的所述相机模式设置来处理所接收的图像传感器数据的装置;以及用于向所述计算设备的显示器输出经处理的图像传感器数据的装置。

20.如权利要求19所述的计算设备,进一步包括:响应于确定所述用户输入模式被设置为深度检测模式:用于启用所述单个图像传感器以便进行图像传感器数据捕获的装置;

用于禁用所述图像传感器阵列的所述其他图像传感器的装置;以及用于基于所述相机模式设置向所述多个代理模块之一传送来自所述单个图像传感器的图像传感器数据的装置。

21.如权利要求19所述的计算设备,进一步包括:响应于确定所述相机模式设置未被设置为深度检测模式:用于启用所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器以便进行图像传感器数据捕获的装置;以及用于判定所述计算设备是否被设置用于照片捕获的装置。

22.如权利要求19所述的计算设备,其中,用于将来自所述相机驱动器模块的每个光学图像数据流经纪代理到所述多个输出模块中的相应输出模块的装置包括:用于由预览代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到预览输出模块,以处理所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出预览图像的装置;

用于由视频代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到视频输出模块,以处理所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出视频的装置;以及用于由照片代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到照片输出模块,以处理所接收的图像传感器数据并基于所述经处理的图像传感器数据输出照片的装置。

23.如权利要求20所述的计算设备,进一步包括:响应于确定所述相机模式未被设置为照片捕获模式:用于从所述单个图像传感器捕获图像传感器数据的装置;以及

用于向预览代理模块或视频代理模块之一传输来自所述单个图像传感器的图像传感器数据的装置。

24.如权利要求20所述的计算设备,进一步包括响应于确定所述相机模式被设置为照片捕获模式:用于从所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器捕获图像传感器数据的装置;

用于至少部分地基于所述相机模式设置向预览代理模块或视频代理模块之一传输来自所述单个图像传感器的图像传感器数据的装置;

用于使用来自所述单个图像传感器的所述图像传感器数据来对照片进行编码的装置;

用于基于来自所述图像传感器阵列的所述其他图像传感器中的一个或多个的所述图像传感器数据来计算深度数据的装置;

用于将所述深度数据插入到经编码照片的元数据中的装置;以及

用于输出包括所述深度数据的所述照片的装置。

25.如权利要求20所述的计算设备,其中,所述用于在所述相机驱动器模块与预览输出模块之间代理所述光学图像数据的装置包括用于向所述预览输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据的装置;

其中,所述用于在所述相机驱动器模块与视频输出模块之间代理所述光学图像数据的装置包括用于向所述视频输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据的装置,并且其中,所述用于在所述相机驱动器模块与照片输出模块之间代理所述光学图像数据的装置包括用于向所述照片输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据的装置。

说明书 :

用于控制对相机设备的图像传感器进行的用户访问的技术

[0001] 相关申请的交叉引用
[0002] 本申请要求于2015年3月27日提交的题为“TECHNOLOGIES FOR CONTROLLING USER ACCESS TO IMAGE SENSORS OF A CAMERA DEVICE(用于控制对相机设备的图像传感器进行的用户访问的技术)”的美国实用新型专利申请序列号14/671,705的优先权。

技术领域

[0003] 本申请涉及图像处理技术,尤其涉及图像传感器处理技术。

背景技术

[0004] 现代计算设备已经变成用于个人、商业和社会用途的多方面工具。大部分现代计算设备包括能够在各个分辨率下以多种格式捕获静态图像(例如,照片)并记录视频流的一个或多个相机。为了捕获照片并记录视频流,相机使用图像传感器来捕获光并将所捕获的光转换成电信号。为了使相机在计算设备的环境内发挥作用,每个图像传感器通常包括驱动器(例如,接口),所述驱动器管理(即,转换)计算设备(例如,处理器)的硬件与相机(例如,图像传感器)的硬件之间的通信。传统地,许多相机已经包括单个图像传感器以及相应地单个驱动器;然而,随着相机和将相机并入其中的计算设备已经变的更加复杂,一些相机可以包括图像传感器阵列。在这种相机中,每个图像传感器可以具有不同的驱动器,从而导致单个相机的多个图像传感器驱动器。图像传感器阵列的图像传感器可以允许增强单个图像传感器相机上的功能。例如,包括图像传感器阵列的相机可以包括各种图像传感器,所述图像传感器可以用于计算深度和/或创建更宽视场(FOV)。
[0005] 通常,图像传感器的供应商分配特定于所述图像传感器的应用程序编程接口(API)。API通常允许相机的用户经由在相机上执行的软件应用并且通过软件应用的方式对图像传感器的某些功能和/或设置进行访问。例如,在包含能够以高分辨率捕获图像的主图像传感器和能够以比所述主图像传感器更低的分辨率捕获图像或执行其他专业特征的各种其他辅图像传感器的图像传感器阵列中,用户可能必须从图像传感器阵列中手动选择图像传感器之一以便用于使用相机来拍摄照片。通常经由计算设备的显示器呈现给用户的照片的预览可能不能清楚地区分图像传感器之间的差异(即,分辨率、视角等)。因此,用户可能不知不觉地选择了具有可能不期望的视角和/或分辨率的图像传感器。

附图说明

[0006] 在附图中通过示例的方式而不是通过限制的方式来展示了本文中所描述的概念。为了说明的简单和清楚起见,附图中所展示的元件不一定按比例绘制。在认为适当的情况下,在附图当中已经重复了参考标号以表示相应或相似的元件。
[0007] 图1是用于控制对计算设备的相机的图像传感器进行的用户访问的计算设备的至少一个实施例的简化框图;
[0008] 图2是图1的计算设备的相机的至少一个实施例的简化框图;
[0009] 图3是图1的计算设备的环境的至少一个实施例的简化框图;并且
[0010] 图4和图5是一种可以由图1的计算设备执行的用于启用图像传感器以便进行图像数据捕获的方法的至少一个实施例的简化流程图。

具体实施方式

[0011] 虽然本公开的概念易于经历各种修改和替代形式,但是在附图中已经通过示例的方式示出了其特定实施例并且将在本文中对其进行详细描述。然而,应当理解的是,并不意在将本公开的概念限制于所公开的特定形式,而相反,意图是覆盖与本公开和所附权利要求书一致的所有修改形式、等效形式和替代形式。
[0012] 在说明书中提到“一个实施例”、“实施例”、“说明性实施例”等表明所描述的实施例可以包括特定特征、结构或特性,但每一个实施例可能或可能不一定包括所述特定特征、结构或特性。而且,这种短语不一定指相同的实施例。进一步地,当结合实施例来描述特定特征、结构或特性时,应当认为的是,无论是否明确地描述,结合其他实施例来实现这种特征、结构或特性在本领域的技术人员的知识范围内。另外,应当认识到,包括在采用“A、B和C中的至少一项”形式的列表中的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。类似地,采用“A、B或C中的至少一项”的形式列出的项可以意指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
[0013] 在一些情况下,可以在硬件、固件、软件或其任何组合中实施所公开的实施例。所公开的实施例还可以被实施为由一个或多个瞬态或非瞬态机器可读(例如,计算机可读)存储介质所承载的或存储于其上的指令,所述指令可以由一个或多个处理器读取和执行。机器可读存储介质可以被具体化为任何存储设备、机构或用于存储或传输采用机器可读形式的信息的其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
[0014] 在附图中,可以采用特定安排和/或排序来示出一些结构特征或方法特征。然而,应当理解的是,可以不需要这种特定的安排和/或排序。相反,在一些实施例中,可以采用与在说明性附图中所示出的方式和/或顺序不同的方式和/或顺序来安排这种特征。此外,在具体的图中包括结构特征或方法特征并不意指暗示在所有实施例中都需要这种特征,并且在一些实施例中,可以不包括这种特征或者这种特征可以与其他特征组合。
[0015] 现在参照图1,说明性计算设备102包括具有图像传感器阵列116的相机设备114,所述图像传感器阵列包括能够捕获光并且将所捕获的光转换成电信号以变换为图像或图像流的多个单独图像传感器。为了促进与每个图像传感器的交互,计算设备102可以依赖于图像传感器阵列116的图像传感器中的每个图像传感器的不同驱动器以便对计算设备102的软件应用与图像传感器中的每个图像传感器之间的通信进行管理。在一些实施例中,可以由不同供应商提供任何数量的图像传感器,这可能导致多个不同驱动器。进一步地,由不同供应商制造的图像传感器中的每个图像传感器可以另外具有用于经由软件应用向用户暴露图像传感器的某些特征和/或设置的不同应用程序编程接口(API)。因此,对于用于与典型计算设备中的图像传感器阵列116接口连接的软件应用,软件应用可能需要被设计成用于与多个图像传感器驱动器和API接口连接。
[0016] 为了克服可能由多个图像传感器特定驱动器和API引入的这种复杂性,计算设备102实施单个驱动器(见图3的相机驱动器模块310)来限制对单独图像传感器的访问。例如,所实施的单个驱动器可以“覆盖”多个图像传感器特定驱动器。如下面更详细地讨论的,所实施的单个驱动器控制向特定API或用户提供来自多个图像传感器的哪个数据流。换句话说,所实施的单个驱动器仅向所述特定API或用户暴露来自图像传感器阵列的单个图像传感器。例如,在一些实施例中,所暴露的图像传感器(例如,主图像传感器)可以是支持最高分辨率的图像传感器;然而,应当认识到,在一些实施例中,可以使用不同准则(如可用特征支持、视场(FOV)等)来选择主图像传感器。如此,来自所暴露的图像传感器(例如,主图像传感器)的图像数据可以是用于向用户显示图像传感器数据的唯一图像数据,而不论相机设备设置为哪种相机模式(例如,预览图像、捕获视频或捕获照片)。为了这样做,所实施的单个驱动器确定向用户传送来自可用图像传感器的哪些图像数据并且隐藏对图像数据执行的某些计算。在一些实施例中,所实施的单个驱动器可以基于当前相机模式执行这种确定。
此外,所实施的单个驱动器可以执行API之外的某些计算(例如,图像深度计算)。在一些实施例中,执行API之外的计算可以减少对单独API的依赖。
[0017] 计算设备102可以被具体化为能够进行图像传感器管理并且以其他方式执行此处所描述的功能的任何类型的设备。例如,计算设备102可以被具体化为(不限于)数字相机、智能电话、平板计算机、膝上型计算机、笔记本计算机、可穿戴计算设备、计算机、工作站、服务器、多处理器系统、消费者电子设备、智能电器和/或能够进行图像传感器管理的任何其他计算设备。如图1中所示出的,除其他之前所指出的部件之外,说明性计算设备102包括处理器104、I/O子系统106、存储器108和数据存储设备112。当然,在其他实施例中,计算设备102可以包括其他或附加部件,如包括相机特征(例如,各种输入/输出设备)的计算设备(例如,智能电话、膝上型计算机、数字相机等)中常见的部件。此外,在一些实施例中,说明性部件中的一个或多个说明性部件可以结合在另一部件中,或以其他方式形成另一部件的一部分。例如,在一些实施例中,存储器108或其部分可以结合在一个或多个处理器104中。
[0018] 处理器104可以被具体化为能够执行此处所描述的功能的任何类型的处理器。处理器104可以被具体化为(多个)单核或多核处理器、数字信号处理器、微控制器或其他处理器或处理/控制电路。存储器108可以被具体化为能够执行此处所描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器108可以存储在计算设备102的操作期间所使用的各种数据和软件(如操作系统、应用、程序、库和驱动器)。例如,在说明性计算设备102中,存储器108包括被配置成用于与相机设备114接口连接的相机驱动器110。存储器108经由I/O子系统106通信地耦合至处理器104,所述I/O子系统可以被具体化为用于促进与计算设备102的处理器104、存储器108以及其他部件的输入/输出操作的电路系统和/或部件。例如,I/O子系统106可以被具体化为或以其他方式包括用于促进输入/输出操作的存储器控制器中枢、输入/输出控制中枢、集成传感器中枢、固件设备、通信链路(即,点到点的链路、总线链路、导线、线缆、光导、印刷电路板迹线等)和/或其他部件及子系统。在一些实施例中,I/O子系统106可以形成片上系统(SoC)的一部分并且可以与计算设备
102的处理器104、存储器108以及其他部件一起结合在单个集成电路芯片上。
[0019] 数据存储设备112可以被具体化为被配置成用于对数据进行短期或长期存储的任何类型的一个或多个设备(如例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备)。在一些实施例中,数据存储设备112可用于存储一个或多个可信执行环境的内容。当由数据存储设备112存储时,可以对可信执行环境的内容进行加密以防止被未授权软件访问。
[0020] 相机设备114可以被具体化为能够使图像能够被捕获、传输为信号并处理成静态照片和/或数字视频的任何类型的图像捕获设备、电路或其组合。相机设备114可以被配置成用于使用任何图像格式化技术来捕获原始图像数据并且使用各种数字格式技术和容器来将原始数据作为压缩的和/或未压缩的静态照片文件和/或视屏文件存储至计算设备上的文件(例如,数据存储设备112)中。说明性相机设备114包括图像传感器阵列116。如图2中所示出并且在下文中进一步详细描述的,图像传感器阵列116可以包括多个图像传感器,所述图像传感器中的每个图像传感器可以能够捕获光并且将所捕获的光转换成电信号以便被处理成照片和/或视频。在一些实施例中,图像传感器阵列116可以被具体化为或以其他方式包括一个或多个电荷耦合器件(CCD)图像传感器、互补型金属氧化物半导体(CMOS)图像传感器和/或能够执行此处所描述的功能的任何类型的图像传感器。此外,在一些实施例中,图像传感器阵列116可以包括具有各种不同图像传感器格式(即,形状和大小)的图像传感器。如上所述,计算设备102可以将相机驱动器110用作用于接口连接于处理器104与相机设备114之间以便执行相机设备114的某些功能的装置。此外,在一些实施例中,相机设备114可以在相机设备114(即,用户)的面向用户软件与相机驱动器110之间提供接口(例如,经由应用程序编程接口(API)),以便实施用户请求的相机设备114的设置(如例如,启用并且禁用图像传感器阵列116的图像传感器中的某些图像传感器)。
[0021] 通信电路系统118可以被具体化为能够在计算设备102与远程设备(未示出)之间实现通信的任何通信电路、设备或其集合。通信电路系统118可以被配置成用于使用任何一种或多种通信技术(例如,有线或无线通信)以及相关联的协议(例如,以太网、WiMAX、USB等)来实现这种通信。
[0022] 显示器120可以被具体化为能够显示数字信息的任何类型的显示器设备(如液晶显示器(LCD)、等离子体显示器、发光二极管(LED)、阴极射线管(CRT)或其他类型的显示设备)。在这种实施例中,显示器可以被具体化为能够响应于由计算设备102的用户触摸而生成输入数据的触摸屏(例如,电阻式触摸屏、电容式触摸屏等)。
[0023] 现在参照图2,相机设备114的说明性图像传感器阵列116包括被配置成用于捕获光学图像并且将所捕获的光学图像转换成电信号的多个图像传感器。说明性图像传感器阵列116包括被分别指定为辅图像传感器(1)210、主图像传感器(1)220、主图像传感器(N)230(即“第N个”主图像传感器,其中,“N”为正整数并且指定一个或多个附加主图像传感器)和辅图像传感器(N)240(即“第N个”辅图像传感器,其中,“N”为正整数并且指定一个或多个附加辅图像传感器)的第一辅图像传感器、第一主图像传感器、第二主图像传感器和第二辅图像传感器。图像传感器210、220、230、240中的每个图像传感器可以被具体化为能够执行此处所描述的功能的任何类型的图像传感器(如电荷耦合器件(CCD)图像传感器、互补型金属氧化物半导体(CMOD)图像传感器等)。
[0024] 通常,图像传感器阵列116包括至少一个被指定为“主”图像传感器(例如,主图像传感器(1)220)的图像传感器。然而,应该理解的是,在一些实施例中,图像传感器阵列116可以包括多于一个被指定为“主”图像传感器的图像传感器,仅可以暴露“主”图像传感器之一。在这种实施例中,可以存在一个或多个辅图像传感器或根本不存在辅图像传感器。在其他实施例中,图像传感器阵列可以包括单个“主”图像传感器(例如,主图像传感器(1)220)和一个或多个辅图像传感器。如此,可以基于可以创建更期望的图像的某些特性(如更高分辨率能力、与中心的很小或没有视角偏移、窄FOV、宽FOV、单色图像传感器、暴露时间等)来如此指定主图像传感器(1)220(即,唯一主图像传感器或主图像传感器中的指定主图像传感器)。
[0025] 在一些实施例中,相机设备114可以依赖于图像传感器210、220、230、240中的一个或多个图像传感器来计算所捕获的光学图像的深度和/或创建更宽FOV。例如,图像传感器210、220、230、240中的每个图像传感器可以包括可以捕获特定视角的光圈,相机设备114可以解译并处理所述特定视角以生成具有比任何单个图像传感器可以单独产生的FOV更宽的FOV的单个图像。说明性相机设备114包括连接至辅图像传感器(1)210的第一光圈212、连接至主图像传感器(1)220的第二光圈222、连接至主图像传感器(N)230的第三光圈232、和连接至第二图像传感器(N)240的第四光圈242。因此,每个光圈212、222、232、242具有相关联FOV。例如,第一图像传感器210通过第一光圈212具有第一FOV 214,第一主图像传感器(1)
220通过第二光圈222具有第二FOV 224,主图像传感器(N)230通过第三光圈232具有第三FOV 234并且辅图像传感器(N)240通过第四光圈242具有第四FOV 244。
[0026] 在一些实施例中,相机设备114可以利用与不同图像传感器210、220、230、240相关联的不同FOV 214、224、234、244。例如,在图像传感器阵列116包括两个主图像传感器(例如,主图像传感器(1)220和主图像传感器(N)230)的实施例中,第一主图像传感器可以具有可用于进行放大的窄焦距,并且第二主图像传感器可以具有可用于进行缩小的比第一主图像传感器的焦距更宽的焦距。
[0027] 类似地,辅图像传感器中的每个辅图像传感器可以具有不同于主图像传感器的性质或特性的和/或彼此不同的性质或特性(如比“主”图像传感器的分辨率更低的分辨率或比其视角更大的视角)。例如,在图像传感器阵列116包括主图像传感器(1)220以及至少一个辅图像传感器(例如,辅图像传感器(1)210和/或辅图像传感器(N)240)的实施例中,来自主图像传感器(1)220的捕获图像数据可以能够以可用图像传感器210、220、230、240的最高分辨率捕获图像数据,而来自辅图像传感器之一(例如,辅图像传感器(1)210)的捕获图像数据可以能够以不同的更低分辨率捕获图像数据。因此,来自辅图像传感器(1)210的捕获图像数据可以用于计算所捕获的光学图像的深度,而来自主图像传感器(1)220的捕获图像数据经由显示器(例如,图1的计算设备102的显示器120)暴露给用户。另外地或可替代地,在这种实施例中,相机设备114可以使用来自主图像传感器(1)220和辅图像传感器210、240中的一个或多个辅图像传感器的捕获图像数据来创建更宽FOV。例如,主图像传感器(1)220的第二FOV 224可以与辅图像传感器(1)210的第一FOV 214组合以创建延伸到第一和第二FOV 214、224中的每一个FOV的最外边界的加宽FOV 250。应该理解的是,在这种实施例中,可以将主图像传感器(1)220的一个或多个设置暴露给计算设备102的用户,而辅图像传感器210、240可以以这种角度被定位在图像传感器阵列116内,从而使得其对应FOV 214、234可以扩大主图像传感器(1)220的主FOV 224,而无需将辅图像传感器210、240的明确设置暴露给用户。
[0028] 虽然图像传感器供应商(即,独立硬件供应商(IHV))可以分配用户接口应用以便利用其图像传感器的特性和功能,但是图像传感器供应商通常发布通常允许用户接口软件应用(即,用于应用滤镜和/或效果的相机应用)与图像传感器接口连接的API。换句话说,API允许第三方软件供应商(即独立软件供应商(SIV))基于由图像传感器提供的图像数据访问某些功能(例如,预览图像、捕获照片流、捕获视频流等)。在一些实施例中,为了支持某些功能,图像传感器供应商可以另外地发布软件开发包(SDK)作为为了某些功能(如执行深度计算或其他计算拍照特性)而访问API的替代方案。在包括由多个不同供应商生产的多个图像传感器的实施例中,用户接口软件应用可能需要与其接口连接的API和/或SDK集合可能变得复杂,尤其是对无经验用户。
[0029] 现在参照图3,计算设备102可以在操作期间建立环境300。在说明性环境300中,计算设备102包括相机驱动器模块310、预览代理模块330、照片代理模块340、视频代理模块350、预览输出模块360、照片输出模块370和视频输出模块380。环境300的各个模块可以被具体化为硬件、固件、软件或其组合。例如,环境300的各个模块、逻辑和其他部件可以形成计算设备102的处理器104或其他硬件部件的一部分或以其他方式由所述计算设备的所述处理器或所述其他硬件部件建立。如此,在一些实施例中,环境300的模块中的任何一个或多个模块可以被具体化为电气设备的电路或集合(例如,相机驱动器电路、照片捕获电路、视频捕获电路等)。另外地或可替代性地,在一些实施例中,说明性模块中的一个或多个说明性模块可以形成另一个模块的一部分和/或说明性模块中的一个或多个说明性模块可以被具体化单独或独立模块。
[0030] 说明性环境300另外地包括一个或多个辅图像传感器302(例如,辅图像传感器(1)210和/或辅图像传感器(N)240)以及一个或多个主图像传感器304(例如,主图像传感器(1)
220和/或主图像传感器(N)230)。如之前所描述的,在一些实施例中,计算设备102可以包括一个主图像传感器和一个或多个辅传感器。在其他实施例中,计算设备102可以包括多于一个主图像传感器和一个或多个辅图像传感器。进一步地,在一些实施例中,计算设备102可以包括多于一个主图像传感器和不包括任何辅图像传感器。说明性环境300进一步包括主图像传感器数据306和主图像传感器数据308。
[0031] 在一些实施例中,来自(多个)辅图像传感器302的光学图像数据可以存储在辅图像传感器数据306中并且来自(多个)主图像传感器304的光学图像数据可以存储在主图像传感器数据308中。来自辅和主图像传感器302、304的图像传感器数据306、308可以由环境300的模块中的一个或多个模块访问。分界线318在包括辅和主图像传感器302、304和相机驱动器模块310的实施例300的内核模式322部分与包括代理模块330、340、350和输出模块
360、370、380的环境300的用户模式324之间进行划定。
[0032] 相机驱动器模块310被配置成用于管理可以输出来自对应辅和主图像传感器302、304的哪个图像传感器数据306、308以供预览(即,流送到显示器)和/或捕获(即,保存到文件中)。相机驱动器模块310可以仅向用户暴露来自图像传感器阵列116的单个图像传感器(例如,图2的主图像传感器(1)220),而不论用户已经将相机设备114置于哪种模式中(例如,预览、视频或照片)。换句话说,与具有用户可以管理每个图像传感器以指定启用哪个(哪些)图像传感器的相机特征的传统计算设备不同,计算设备102实施相机驱动器模块310来决定将哪个光学图像数据呈现给用户。
[0033] 如上所述,辅和主图像传感器302、304中的每个图像传感器包括用于暴露相应图像传感器302、304的某些功能的API。因此,通常基于已经经由API暴露了对某些功能的什么访问来向用户显示图像传感器302、304中的每个图像传感器的设置。然而,还如上所述,API的数量可以随着添加到图像传感器阵列116中的每个图像传感器而增大,并且可以向用户曝光任何数量的设置,包括对图像传感器302、304的启用和禁用。此外,用户可能无法辨别图像传感器302、304和/或其设置之间的差异(例如,分辨率、视角等)。因此,用户可能无意地使用较低分辨率图像传感器或者以比用户预期的角度更小的最优角度来捕获照片或视频。如此,相机驱动器模块310仅向用户暴露单个图像传感器(例如,主图像传感器(1)220)以便避免这种混乱。
[0034] 为了仅暴露单个图像传感器,相机驱动器模块310可以限制用户对其他图像传感器(例如,辅图像传感器)的用户访问。在一些实施例中,为了这样做,相机驱动器模块310可以对用户隐藏其他图像传感器的设置。例如,在辅图像传感器302用于深度计算的实施例中,主图像传感器(1)220是向用户暴露的唯一图像传感器。因此,深度计算可以以对API隐藏的方式被执行,但是根据来自用户的静态照片捕获请求而被自动执行并作为元数据插入到照片(例如,jpeg图像)中。在另一个示例中,来自图像传感器302、304中的每个图像传感器的光学图像数据可以以由相机驱动器模块310确定为最高可用图像质量的图像质量被组合成具有基于用户定义设置(例如,数字变焦、快速帧速率等)的能力的单个流。
[0035] 说明性相机驱动器模块310包括模式确定模块312、传感器启动模块314和数据分配模块316。模式确定模块312被配置成用于确定相机模式设置和用户输入模式设置。在说明性实施例中,可用相机模式设置包括预览模式、照片捕获模式和/或视频捕获模式。当然,在其他实施例中,可用相机模式设置可以包括附加或其他相机模式。此外,在一些实施例中,用户输入模式设置可以包括正常模式、深度检测模式、近光学变焦模式、快速帧率模式和/或如由相机驱动器模块310支持的任何其他模式或能力。可以通过允许用户在模式之间进行切换的任何用户输入方式(如计算设备102的硬件输入(例如,滑动按钮)或软件输入(例如,用户接口软件选择器软键))来设置相机模式设置和/或用户输入模式设置。传感器启动模块314被配置成用于根据相机模式设置和/或用户输入模式设置来设置要启用或禁用的图像传感器302、304中的每个图像传感器的状态。类似地,数据分配模块316被配置成用于基于相机模式设置和/或用户输入模式设置来输出(即,传输)光学图像数据。
[0036] 用户模式324包括代理模块330、340、350和输出模块360、370、380。代理模块330、340、350被配置成用于提供将于其中在内核模式322中的相机驱动器模式310与用户模式
324的输出模式360、370、380之间代理每个光学图像数据流的接口。在一些实施例中,例如,代理模块330、340、350可以经由数据分配模块316接收来自相机驱动器模块310的光学图像数据流。在这种实施例中,代理模块330、340、350可以接收与光学图像数据流相对应的信息(如例如,滤镜描述符)。
[0037] 输出模块360、370、380被配置成用于处理(即,变换)从代理模块330、340、350接收的光学图像数据)、存储光学图像数据(如果适用的话)并且渲染输出以传输至显示器(如图1的显示器120)。为了这样做,输出模块360、370、380可以被具体化为能够编码、解码和/或将任何其他类型的数字信号处理应用于光学图像数据(包括但不限于解复用、复用、缩放、转换、应用效果、交织、解交织等)的任何光学图像数据处理器。例如,在由基于Windows的操作系统管理计算设备102的资源的实施例中,输出模块360、370、380可以被具体化为能够实施用于处理光学图像数据的变换模型的媒体基础变换(MFT)或DirectX媒体对象(DMO)。
[0038] 在图像传感器阵列116包括主图像传感器(例如,主图像传感器(1)220)和两个辅图像传感器(辅图像传感器210、240)的三相机阵列实施例中,在正常模式下,相机驱动器模块310可以仅从主图像传感器(1)220捕获光学图像数据并且如此,数据分配模块316可以仅传送从主图像传感器(1)220捕获的光学图像数据。换句话说,如果不需要进行深度计算,则传感器启动模块314可以启用主图像传感器(1)220并且禁用辅图像传感器210、240。
[0039] 进一步地,在深度检测模式下,传感器启动模块314可以启用图像传感器210、220、240中的所有图像传感器并且允许相机驱动器模块310从图像传感器210、220、240中的所有图像传感器捕获光学图像数据。然而,数据分配模块316仅传送来自主图像传感器(1)220的用于预览和视频数据的光学图像数据(即,图像数据流),同时传送来自图像传感器210、
220、240中的每个图像传感器的用于照片数据的光学图像数据。换句话说,如果用户正以预览模式查看光学图像数据,则数据分配模块316可以仅向预览代理模块330传送来自主图像传感器(1)220的光学图像数据。
[0040] 类似地,如果用户正以视频捕获模式查看光学图像数据,则数据分配模块316可以向视频代理模块350传送来自主图像传感器(1)220的光学图像数据。然而,如果用户正以照片捕获模式查看光学图像数据,则数据分配模块316可以向照片代理模块340传送来自主图像传感器(1)220的光学图像数据并且向照片输出模块370传送来自辅图像传感器210、240中的每个辅图像传感器的光学图像数据。因此,因为可以在代理模块330、340、350处执行计算并且计算结果可以作为元数据由输出模块360、370、380插入,所以代理模块330、340、350不需要从辅图像传感器210、240接收光学图像数据以执行计算(如深度计算)。进一步地,当用户发起具有深度计算的照片捕获请求时,需要的图像传感器已经被初始化,从而减小了与初始化辅图像传感器210、240相关联的等待时间。
[0041] 现在参照图4,在使用中,计算设备102的相机设备114可以执行用于基于用户定义的模式设置启用图像传感器以便进行图像数据捕获的方法400。如上所述,由相机设备114执行的功能的至少一部分可以由用于对图像传感器中的每个图像传感器进行管理的单个相机驱动器(例如,相机驱动器110)执行。说明性方法400开始于框402,其中,相机设备114判定其是否已经被激活。在一些实施例中,可以响应于激活触发(如计算设备102的通电事件、相机设备114自身的通电事件或当前对计算设备102执行的将相机设备114从挂起状态唤醒的外部应用)而已经激活相机设备114。
[0042] 如果相机设备114尚未被激活,则方法400循环回到框402以继续判定其是否已经被激活和/或直到激活触发被接收。如果相机设备114已经被激活,则方法400前进至框404,其中,相机设备114确定相机模式设置。在一些实施例中,相机模式设置可以被设置为预览模式、视频捕获模式和照片捕获模式之一。在框406处,相机设备114确定用户输入模式设置。在一些实施例中,用户输入模式设置可以被设置为深度检测模式或正常模式之一。
[0043] 在框408处,相机设备114判定用户输入模式设置是否被设置为深度检测模式。若否,则方法400前进到框410,其中,相机设备114启用被指定为主图像传感器(例如,图2的主图像传感器(1)220)的图像传感器以便进行图像数据捕获。换句话说,相机设备114将主图像传感器(1)220的状态设置为启用状态。在框412处,相机设备114禁用图像传感器阵列116中的其他图像传感器(例如,图2的辅图像传感器210、240)。在框414处,相机设备114从主图像传感器(1)220捕获图像数据(即,光学图像数据流)。在框416处,相机驱动器110基于在框404处确定的相机模式设置来将捕获的图像数据输出为预览、视频或照片。
[0044] 如果相机设备114确定用户输入模式设置被设置为深度检测模式,则方法400前进到框418,其中,相机设备114启用图像传感器中的所有图像传感器以便进行图像数据捕获。换句话说,相机设备114将主图像传感器(1)220和辅图像传感器210、240的状态设置为启用状态。在框420处,相机设备114基于在框404处确定的相机模式判定相机模式是否被设置用于照片捕获。若否,则方法前进到框422,其中,相机设备114从主图像传感器(1)220捕获图像数据。在框424处,相机设备114基于在框404处确定的相机模式设置来将捕获的图像数据输出为预览或视频。在框416处将捕获的图像数据输出为预览、视频或照片或在框424处将捕获的图像数据输出为预览或视频时,方法400前进到框426处,其中,相机设备114判定其是否已经被去激活(即,捕获/预览请求停止、断电事件等)。若否,则方法400视情况而继续输出图像数据并且循环回到框426以判定相机设备114是否已经被去激活。如果相机设备
114确定其在框426处已经被去激活,则方法400循环回到框402以判定相机设备114是否已经被激活。
[0045] 如果相机设备114在框420处确定相机模式被设置用于照片捕获,则方法进行到图5中所展示的框428。在框428处,相机设备114从所有图像传感器捕获图像数据。换句话说,相机设备114从主图像传感器(1)220和辅图像传感器210、240捕获图像数据。在框430处,相机设备114基于来自辅图像传感器210、240的图像数据执行深度计算。在框432处,相机设备
114使用来自主图像传感器(1)220的图像数据对照片进行编码。在一些实施例中,由与主图像传感器(例如,主图像传感器(1)220和(多个)主图像传感器(N)230)和辅图像传感器(例如,辅图像传感器(1)210和(多个)辅图像传感器(N)240)接口连接的单个驱动器确定用于在框430处进行深度计算和在框432处对照片进行编码的图像数据。在框434处,相机设备
114将所计算的深度数据插入编码照片的元数据中。在一些实施例中,可以由计算设备102的输出模块(例如,图3的输出模块360、370、380)或变换模块执行在框430处的深度计算、在框432处的对照片的编码以及在框434处的对所计算的深度的元数据插入之一。在框436处,相机设备114在方法400循环回到框402以判定相机设备114是否仍被激活之前输出包括具有插入的深度数据的元数据的编码照片。
[0046] 示例
[0047] 下文提供本文中所公开的技术的说明性示例。这些技术的实施例可包括下文描述的示例中的任何一者或多者以及其任何组合。
[0048] 示例1包括一种用于控制对图像传感器阵列的图像传感器进行的用户访问的计算设备,所述计算设备包括:相机设备,所述相机设备包括图像传感器阵列,其中,所述图像传感器阵列包括多个图像传感器;以及相机驱动器模块,所述相机驱动器模块用于(i)管理对由所述图像传感器阵列的所述图像传感器中的每个图像传感器生成的图像数据流进行的访问;(ii)向所述计算设备的用户暴露所述图像传感器阵列的单个图像传感器;并且(iii)限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的其他图像传感器进行用户访问。
[0049] 示例2包括如示例1所述的主题,并且其中,所述多个图像传感器包括主图像传感器和一个或多个辅图像传感器;其中,所述相机驱动器模块进一步用于(i)管理对由所述主图像传感器和所述一个或多个辅图像传感器生成的图像数据流进行的访问;(ii)向所述计算设备的所述用户暴露所述主图像传感器;并且(iii)限制对所述图像传感器阵列的所述一个或多个辅图像传感器的用户访问。
[0050] 示例3包括如示例1和2中的任一项所述的主题,并且其中,所述多个图像传感器包括一个或多个主图像传感器;其中,所述相机驱动器模块进一步用于(i)管理对由所述主图像传感器中的每个主图像传感器生成的图像数据流进行的访问;(ii)向所述计算设备的所述用户暴露单个主图像传感器;并且(iii)限制对所述主图像传感器中除所述单个主图像传感器之外的其他主图像传感器的用户访问。
[0051] 示例4包括如示例1至3中的任一项所述的主题,并且其中,所述多个图像传感器另外包括一个或多个辅图像传感器;其中,所述相机驱动器模块进一步用于(i)管理对由所述一个或多个辅图像传感器生成的图像数据流进行的访问,并且(ii)限制对所述一个或多个辅图像传感器的用户访问。
[0052] 示例5包括如示例1至4中任一项所述的主题,并且其中,所述相机驱动器模块进一步用于基于一个或多个预定准则从所述图像传感器阵列的多个图像传感器中选择所述主图像传感器。
[0053] 示例6包括如示例1至5中任一项所述的主题,并且其中,所述一个或多个预定准则包括所支持的分辨率、视场或视角中的至少一项。
[0054] 示例7包括如示例1至6中任一项所述的主题,并且其中,管理对来自所述图像传感器阵列的所述图像传感器的所述图像数据流的访问包括管理所述图像传感器阵列的所述图像传感器是否被启用。
[0055] 示例8包括如示例1至7中任一项所述的主题,并且其中,管理对来自所述图像传感器阵列的所述图像传感器的图像数据流进行的访问包括:将处于所述计算设备的内核模式下的所述单个图像传感器的所述图像数据流管理到在所述计算设备的用户模式下可访问的第一组部件;以及将所述图像传感器阵列的处于所述计算设备的所述内核模式下的所述其他图像传感器的所述图像数据流管理到在所述计算设备的所述用户模式下可访问的第二组部件。
[0056] 示例9包括如示例1至8中任一项所述的主题,并且其中,所述用户模式组件的所述第二组包括一个或多个媒体变换模块,所述一个或多个媒体变换模块用于基于所述相机设备的相机模式设置处理所接收的图像传感器数据并且输出所述经处理的图像传感器数据;并且其中,在所述用户模式下可访问的所述第一组部件包括一个或多个媒体流设备代理模块,所述一个或多个媒体流设备代理模块用于将来自所述相机驱动器模块的光学图像数据流经纪代理到所述一个或多个媒体变换模块中的相应媒体变换模块。
[0057] 示例10包括如示例1至9中任一项所述的主题,并且其中,暴露所述单个图像传感器包括:向能够由所述计算设备执行的软件应用暴露来自所述单个图像传感器的图像数据流。
[0058] 示例11包括如示例1至10中任一项所述的主题,并且其中,暴露所述单个图像传感器包括向所述计算设备的用户暴露所述单个图像传感器的一个或多个设置。
[0059] 示例12包括如示例1至11中任一项所述的主题,并且进一步包括:多个输出模块,所述多个输出模块用于基于所述相机设备的相机模式设置处理所接收的图像传感器数据并且输出所述经处理的图像传感器数据;多个代理模块,所述多个代理模块用于将来自所述相机驱动器模块的每个光学图像数据流经纪代理到所述多个输出模块中的相应输出模块;其中,所述相机驱动器模块进一步用于(i)确定所述相机设备的所述相机模式设置和用户输入模式设置;(ii)至少部分地基于所述用户输入模式设置管理所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器中每一者的启用状态;并且(iii)基于所述相机模式设置向所述多个代理模块之一传输图像传感器数据。
[0060] 示例13包括如示例1至12中任一项所述的主题,并且其中,所述相机驱动器模块进一步用于响应于确定所述用户输入模式被设置为深度检测模式而(i)启用所述单个图像传感器以便进行图像传感器数据捕获,(ii)禁用所述图像传感器阵列的所述其他图像传感器,并且(iii)基于所述相机模式设置向所述多个代理模块之一传输图像传感器数据。
[0061] 示例14包括如示例1至13中任一项所述的主题,并且其中,所述相机驱动器模块进一步用于响应于确定所述相机模式设置未被设置为深度检测模式而(i)启用所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器以便进行图像传感器数据捕获,并且(ii)判定所述相机设备是否被设置用于照片捕获。
[0062] 示例15包括如示例1至14中任一项所述的主题,并且其中,所述多个输出模块包括:预览输出模块,所述预览输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出预览图像;以及视频输出模块,所述视频输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出视频;所述多个代理模块包括:预览代理模块,所述预览代理模块用于在所述相机驱动器模块与所述预览输出模块之间代理所述光学图像数据;以及视频代理模块,所述视频代理模块用于在所述相机驱动器模块与所述视频输出模块之间代理所述光学图像数据;并且所述相机驱动器模块进一步用于响应于确定所述相机模式未被设置为照片捕获模式而(i)从所述单个图像传感器捕获图像传感器数据并且(ii)向所述预览代理模块或所述视频代理模块之一传输来自所述单个图像传感器的所述图像传感器数据。
[0063] 示例16包括如示例1至15中任一项所述的主题,并且其中,所述多个输出模块进一步包括照片输出模块,所述照片输出模块用于处理所接收的图像传感器数据并且基于所述所接收的图像传感器数据输出照片;所述多个代理模块进一步包括照片代理模块,所述照片代理模块用于在所述相机驱动器模块与所述照片输出模块之间代理所述光学图像数据;所述相机驱动器模块进一步用于响应于确定所述相机模式被设置为照片捕获模式而(i)从所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器捕获图像传感器数据并且(ii)至少部分地基于所述相机模式设置向所述预览代理模块或所述视频代理模块之一传输来自所述单个图像传感器的所述图像传感器数据;并且所述照片代理模块进一步用于(i)使用来自所述单个图像传感器的所述图像传感器数据来对照片进行编码,(ii)基于来自所述图像传感器阵列的所述其他图像传感器中的一个或多个的所述图像传感器数据来计算深度数据,(iii)将所述深度数据插入到所述经编码照片的元数据中,并且(iv)输出包括所述深度数据的所述照片。
[0064] 示例17包括如示例1至16中任一项所述的主题,并且其中,在所述相机驱动器模块与所述预览输出模块之间代理所述光学图像数据包括向所述预览输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据。
[0065] 示例18包括如示例1至17中任一项所述的主题,并且其中,在所述相机驱动器模块与所述视频输出模块之间代理所述光学图像数据包括向所述视频输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据。
[0066] 示例19包括如示例1至18中任一项所述的主题,并且其中,在所述相机驱动器模块与所述照片输出模块之间代理所述光学图像数据包括向所述照片输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据。
[0067] 示例20包括一种用于控制对计算设备的图像传感器阵列的图像传感器进行的用户访问的方法,所述方法包括:由所述计算设备的图像传感器阵列的多个图像传感器中的每个图像传感器生成图像数据流;由所述计算设备的相机驱动器模块管理对所述所生成的图像数据流的访问;由所述相机驱动器模块向所述计算设备的用户暴露单个图像传感器;以及限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的其他图像传感器进行用户访问。
[0068] 示例21包括如示例20所述的主题,并且其中,由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流包括由主图像传感器和一个或多个辅图像传感器中的每一者生成所述图像数据流;其中,向所述计算设备的所述用户暴露所述单个图像传感器包括向所述计算设备的所述用户暴露所述主图像传感器;并且其中,限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的所述其他图像传感器进行用户访问包括限制对所述图像传感器阵列的所述一个或多个辅图像传感器进行用户访问。
[0069] 示例22包括如示例20和示例21中任一项所述的主题,并且其中,由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流包括由多个主图像传感器中的每一个生成所述图像数据流;其中,向所述计算设备的所述用户暴露所述单个图像传感器包括向所述计算设备的所述用户暴露所述多个主图像传感器中的单个主图像传感器;并且其中,限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的所述其他图像传感器进行用户访问包括限制对所述多个主图像传感器中除所述单个主图像传感器之外的其他主图像传感器进行用户访问。
[0070] 示例23包括如示例20至22中任一项所述的主题,并且其中,由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流包括由一个或多个辅图像传感器中的每一个生成所述图像数据流;并且其中,限制对所述图像传感器阵列中除所述单个图像传感器之外的所述其他图像传感器进行用户访问包括限制对所述一个或多个辅图像传感器进行用户访问。
[0071] 示例24包括如示例20至23中任一项所述的主题,并且进一步包括:由所述相机驱动器模块基于一个或多个预定准则从所述多个主图像传感器中选择所述单个主图像传感器。
[0072] 示例25包括如示例20至24中任一项所述的主题,并且其中,根据所述一个或多个预定准则选择所述单个主图像传感器包括基于所支持的分辨率、视场或视角中的至少一项选择所述单个主图像传感器。
[0073] 示例26包括如示例20至25中任一项所述的主题,并且其中,管理对来自所述图像传感器的所述图像数据流的访问包括管理所述图像传感器是否被启用。
[0074] 示例27包括如示例20至26中任一项所述的主题,并且其中,管理对来自所述图像传感器的图像数据流进行的访问包括:(i)将处于所述计算设备的内核模式下的所述单个图像传感器的所述图像数据流管理到在所述计算设备的用户模式下可访问的第一组部件;以及(ii)将所述图像传感器阵列的处于所述计算设备的所述内核模式下的所述其他图像传感器的所述图像数据流管理到在所述计算设备的所述用户模式下可访问的第二组部件。
[0075] 示例28包括如示例20至27中任一项所述的主题,并且其中,将所述图像传感器阵列的处于所述计算设备的所述内核模式下的所述其他图像传感器的所述图像数据流管理到所述第二组部件包括:将所述图像传感器阵列的处于所述计算设备的所述内核模式下的所述其他图像传感器的所述图像数据流管理到一个或多个媒体变换模块,所述一个或多个媒体变换模块用于基于所述计算设备的相机模式设置处理所接收的图像传感器数据并且输出所述经处理的图像传感器数据;并且其中,将处于所述计算设备的内核模式下的所述单个图像传感器的所述图像数据流管理到第一组部件包括:将处于所述计算设备的内核模式下的所述单个图像传感器的所述图像数据流管理到一个或多个媒体流设备代理模块,所述一个或多个媒体流设备代理模块用于将来自所述相机驱动器模块的光学图像数据流经纪代理到所述一个或多个媒体变换模块中的相应媒体变换模块。
[0076] 示例29包括如示例20至28中任一项所述的主题,并且其中,暴露所述单个图像传感器包括向能够由所述计算设备执行的软件应用暴露来自所述单个图像传感器的图像数据流。
[0077] 示例30包括如示例20至29中任一项所述的主题,并且其中,暴露所述单个图像传感器包括向所述计算设备的用户暴露所述单个图像传感器的一个或多个设置。
[0078] 示例31如包括示例20至30中任一项所述的主题,并且进一步包括:确定所述计算设备的相机模式设置和用户输入模式设置;至少部分地基于所述用户输入模式设置来管理所述图像传感器中的每一个的启用状态;由所述相机驱动器模块基于所述相机模式设置向多个代理模块之一传输图像传感器数据;由所述多个代理模块中的至少一个代理模块将来自所述相机驱动器模块的每个光学图像数据流经纪代理到所述多个输出模块中的相应输出模块;由所述多个输出模块中的至少一个输出模块至少部分地基于所述计算设备的所述相机模式设置来处理所接收的图像传感器数据;以及向所述计算设备的显示器输出所述经处理的图像传感器数据。
[0079] 示例32包括如示例20至31中任一项所述的主题,并且进一步包括响应于确定所述用户输入模式被设置为深度检测模式而进行以下操作:启用所述单个图像传感器以便进行图像传感器数据捕获;禁用所述图像传感器阵列的所述其他图像传感器;以及基于所述相机模式设置向所述多个代理模块之一传输来自所述单个图像传感器的图像传感器数据。
[0080] 示例33包括如示例20至32中任一项所述的主题,并且进一步包括响应于确定所述相机模式设置未被设置为深度检测模式而进行以下操作:启用所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器以便进行图像传感器数据捕获;以及判定所述计算设备是否被设置用于照片捕获。
[0081] 示例34包括如示例20至33中任一项所述的主题,并且其中,将来自所述相机驱动器模块的每个光学图像数据流经纪代理到所述多个输出模块中的相应输出模块包括:由预览代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到预览输出模块,所述预览输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出预览图像;由视频代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到视频输出模块,所述视频输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出视频;以及由照片代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到照片输出模块,所述照片输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出照片。
[0082] 示例35包括如示例20至34中任一项所述的主题,并且进一步包括响应于确定所述相机模式未被设置为照片捕获模式而进行以下操作:从所述单个图像传感器捕获图像传感器数据;以及向所述预览代理模块或所述视频代理模块之一传输来自所述单个图像传感器的图像传感器数据。
[0083] 示例36包括如示例20至35中任一项所述的主题,并且进一步包括响应于确定所述相机模式被设置为照片捕获模式而进行以下操作:从所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器捕获图像传感器数据;至少部分地基于所述相机模式设置向所述预览代理模块或所述视频代理模块之一传输来自所述单个图像传感器的图像传感器数据;使用来自所述单个图像传感器的所述图像传感器数据来对照片进行编码;基于来自所述图像传感器阵列的所述其他图像传感器中的一个或多个的所述图像传感器数据来计算深度数据;将所述深度数据插入到所述经编码照片的元数据中;以及输出包括所述深度数据的所述照片。
[0084] 示例37包括如示例20至36中任一项所述的主题,并且其中,在所述相机驱动器模块与所述预览输出模块之间代理所述光学图像数据包括向所述预览输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据。
[0085] 示例38包括如示例20至37中任一项所述的主题,并且其中,在所述相机驱动器模块与所述视频输出模块之间代理所述光学图像数据包括向所述视频输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据。
[0086] 示例39包括如示例20至38中任一项所述的主题,并且其中,在所述相机驱动器模块与所述照片输出模块之间代理所述光学图像数据包括向所述照片输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据。
[0087] 示例40包括一种计算设备,所述计算设备包括:处理器;以及存储器,具有存储于其中的多条指令,所述指令当被所述处理器执行时使所述计算设备执行如示例20至39中任一项所述的方法。
[0088] 示例41包括一种或多种机器可读存储介质,所述一种或多种机器可读存储介质包括存储于其上的多条指令,所述指令响应于被执行而使得计算设备执行如示例20至39中任一项所述的方法。
[0089] 示例42包括一种用于对图像传感器阵列的图像传感器进行的用户访问的计算设备,所述计算设备用于由所述计算设备的图像传感器阵列的多个图像传感器中的每个图像传感器生成图像数据流的装置;用于由所述计算设备的相机驱动器模块管理对所述所生成的图像数据流的访问的装置;用于由所述相机驱动器模块向所述计算设备的用户暴露单个图像传感器的装置;以及用于限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的其他图像传感器进行用户访问的装置。
[0090] 示例43包括如示例42所述的主题,并且其中,用于由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流的所述装置包括用于由主图像传感器和一个或多个辅图像传感器中的每一者生成所述图像数据流的装置;其中,由向所述计算设备的所述用户暴露所述单个图像传感器的所述装置包括用于向所述计算设备的所述用户暴露所述主图像传感器的装置;并且其中,用于限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的所述其他图像传感器进行用户访问的所述装置包括用于限制对所述图像传感器阵列的所述一个或多个辅图像传感器进行用户访问的装置。
[0091] 示例44包括如示例42和示例43中任一项所述的主题,并且其中,用于由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流的所述装置包括用于由多个主图像传感器中的每一个生成所述图像数据流的装置;其中,用于向所述计算设备的所述用户暴露所述单个图像传感器的所述装置包括用于向所述计算设备的所述用户暴露所述多个主图像传感器中的单个主图像传感器的装置;并且其中,用于限制对所述图像传感器阵列中除所述所暴露的单个图像传感器之外的所述其他图像传感器进行用户访问的所述装置包括用于限制对所述多个主图像传感器中除所述单个主图像传感器之外的其他主图像传感器进行用户访问的装置。
[0092] 示例45包括如示例42至44中任一项所述的主题,并且其中,用于由所述计算设备的所述图像传感器阵列的所述多个图像传感器中的每个图像传感器生成所述图像数据流的所述装置进一步包括用于由一个或多个辅图像传感器中的每一个生成所述图像数据流的装置;并且其中,用于限制对所述图像传感器阵列中除所述单个图像传感器之外的所述其他图像传感器进行用户访问的所述装置包括用于限制对所述一个或多个辅图像传感器进行用户访问的装置。
[0093] 示例46包括如示例42至45中任一项所述的主题,并且进一步包括:用于由所述相机驱动器模块基于一个或多个预定准则从所述多个主图像传感器中选择所述单个主图像传感器的装置。
[0094] 示例47包括如示例42至46中任一项所述的主题,并且其中,用于根据所述一个或多个预定准则选择所述单个主图像传感器的所述装置包括用于基于所支持的分辨率、视场或视角中的至少一项来选择所述单个主图像传感器的装置。
[0095] 示例48包括如示例42至47中任一项所述的主题,并且其中,用于管理对来自所述图像传感器的所述图像数据流的访问的所述装置包括用于管理所述图像传感器是否被启用的装置。
[0096] 示例49包括如示例42至48中任一项所述的主题,并且其中,用于管理对来自所述图像传感器的图像数据流进行的访问的所述装置包括:(i)用于将处于所述计算设备的内核模式下的所述单个图像传感器的所述图像数据流管理到在所述计算设备的用户模式下可访问的第一组部件的装置;以及(ii)用于将所述图像传感器阵列的处于所述计算设备的所述内核模式下的所述其他图像传感器的所述图像数据流管理到在所述计算设备的所述用户模式下可访问的第二组部件的装置。
[0097] 示例50包括如示例42至49中任一项所述的主题,并且其中,用于将所述图像传感器阵列的处于所述计算设备的所述内核模式下的所述其他图像传感器的所述图像数据流管理到所述第二组部件的所述装置包括:用于将所述图像传感器阵列的处于所述计算设备的所述内核模式下的所述其他图像传感器的所述图像数据流管理到一个或多个媒体变换模块的装置,所述一个或多个媒体变换模块用于基于计算设备的相机模式设置处理所接收的图像传感器数据并且输出所述经处理的图像传感器数据;并且其中,用于将处于所述计算设备的内核模式下的所述单个图像传感器的所述图像数据流管理到第一组部件的所述装置包括:用于将处于所述计算设备的内核模式下的所述单个图像传感器的所述图像数据流管理到一个或多个媒体流设备代理模块的装置,所述一个或多个媒体流设备代理模块用于将来自所述相机驱动器模块的光学图像数据流经纪代理到所述一个或多个媒体变换模块中的相应媒体变换模块。
[0098] 示例51包括如示例42至50中任一项所述的主题,并且其中,用于暴露所述单个图像传感器的所述装置包括向能够由所述计算设备执行的软件应用暴露来自所述单个图像传感器的图像数据流的装置。
[0099] 示例52包括如示例42至51中任一项所述的主题,并且其中,用于暴露所述单个图像传感器的所述装置包括向所述计算设备的用户暴露所述单个图像传感器的一个或多个设置的装置。
[0100] 示例53包括如示例42至52中任一项所述的主题,并且进一步包括:用于确定所述计算设备的相机模式设置和用户输入模式设置的装置;用于至少部分地基于所述用户输入模式设置来管理所述图像传感器中的每一个的启用状态的装置;用于由所述相机驱动器模块基于所述相机模式设置来向多个代理模块之一传输图像传感器数据的装置;用于由所述多个代理模块中的至少一个代理模块将来自所述相机驱动器模块的每个光学图像数据流经纪代理到所述多个输出模块中的相应输出模块的装置;用于由所述多个输出模块中的至少一个输出模块至少部分地基于所述计算设备的所述相机模式设置来处理所接收的图像传感器数据的装置;以及用于向所述计算设备的显示器输出所述经处理的图像传感器数据的装置。
[0101] 示例54包括如示例42至53中任一项所述的主题,并且进一步包括:响应于确定所述用户输入模式被设置为深度检测模式,用于启用所述单个图像传感器以便进行图像传感器数据捕获的装置;用于禁用所述图像传感器阵列的所述其他图像传感器的装置;以及用于基于所述相机模式设置向所述多个代理模块之一传输来自所述单个图像传感器的图像传感器数据的装置。
[0102] 示例55包括如示例42至54中任一项所述的主题,并且进一步包括:响应于确定所述相机模式设置未被设置为深度检测模式,用于启用所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器以便进行图像传感器数据捕获的装置;以及用于判定所述计算设备是否被设置用于照片捕获的装置。
[0103] 示例56包括如示例42至55中任一项所述的主题,并且其中,用于将来自所述相机驱动器模块的每个光学图像数据流经纪代理到所述多个输出模块中的相应输出模块的所述装置包括:用于由预览代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到预览输出模块的装置,所述预览输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出预览图像;用于由视频代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到视频输出模块的装置,所述视频输出模块用于处理所述所接收的图像传感器数据并且基于所述经处理的图像传感器数据输出视频;以及用于由照片代理模块将来自所述相机驱动器模块的光学图像数据流经纪代理到照片输出模块的装置,所述照片输出模块用于处理所述所接收的图像传感器数据并基于所述经处理的图像传感器数据输出照片。
[0104] 示例57包括如示例42至56中任一项所述的主题,并且进一步包括:响应于确定所述相机模式未被设置为照片捕获模式,用于从所述单个图像传感器捕获图像传感器数据的装置;以及用于向所述预览代理模块或所述视频代理模块之一传输来自所述单个图像传感器的图像传感器数据的装置。
[0105] 示例58包括如示例42至57中任一项所述的主题,并且进一步包括:响应于确定所述相机模式被设置为照片捕获模式,用于从所述图像传感器阵列的所述单个图像传感器和所述其他图像传感器捕获图像传感器数据的装置;用于至少部分地基于所述相机模式设置向所述预览代理模块或所述视频代理模块之一传输来自所述单个图像传感器的所述图像传感器数据的装置;用于使用来自所述单个图像传感器的所述图像传感器数据来对照片进行编码的装置;用于基于来自所述图像传感器阵列的所述其他图像传感器中的一个或多个的所述图像传感器数据计算深度数据的装置;用于将所述深度数据插入到所述经编码照片的元数据中的装置;以及用于输出包括所述深度数据的所述照片的装置。
[0106] 示例59包括如示例42至58中任一项所述的主题,并且其中,用于在所述相机驱动器模块与所述预览输出模块之间代理所述光学图像数据的所述装置包括用于向所述预览输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据的装置。
[0107] 示例60包括如示例42至59中任一项所述的主题,并且其中,用于在所述相机驱动器模块与所述视频输出模块之间代理所述光学图像数据的所述装置包括用于向所述视频输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据的装置。
[0108] 示例61包括如示例42至60中任一项所述的主题,并且其中,用于在所述相机驱动器模块与所述照片输出模块之间代理所述光学图像数据的所述装置包括用于向所述照片输出模块传输来自所述相机驱动器模块的所接收的图像传感器数据的装置。