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

多相机视频稳定

文献发布时间:2023-06-19 16:04:54



背景技术

一些设备(诸如智能手机)包括多个相机模块。这些相机可以用于记录静态图像或视频。在许多情况下,手抖和设备的其他移动可以降低捕获图像和视频的质量。因此,一些设备包括图像稳定特征,以改善所记录的图像数据的质量。

发明内容

在一些实施方式中,设备包括多视点相机系统,例如,具有多个相机模块的设备具有不同的视场。该设备为使用设备的一个或多个相机模块捕获的视频提供视频稳定。这可以包括在不同变焦级别(例如,扩大(enlargement)或放大(magnification))下提供不同级别的图像稳定,并且管理图像稳定行为,以针对不同变焦级别和不同相机模块是一致的。即使当相机模块具有固定视场时,该设备也可以提供变焦功能,例如,通过使用数字变焦技术实现或近似沿视场范围的连续或平滑变焦。该设备可以提供在一系列变焦设置上捕获一致稳定的视频的特征,包括在视频记录期间在不同相机模块的视频捕获之间转换时。在一些实施方式中,设备检测在视频记录期间何时在相机之间转换以供图像捕获。该设备执行转换并且处理捕获的数据,以产生在转换时间段内无缝的输出,例如,维持或平滑地调整诸如视场、图像稳定、曝光、对焦、噪声等参数的输出视频。这可以允许系统生成使用来自不同部分处的不同相机的视频的视频,其中相机之间的转换不会对观看者造成侵扰,例如,没有单眼视差、可见停顿、明显变焦暂停或其他毛刺。

该系统的主要目标是增强呈现给用户的视频场景的平滑度。换句话说,系统尝试实现场景时间连续性(例如,减少随时间的不想要的相机抖动) 以及场景空间连续性(例如,减少从不同相机捕获的视频之间的差异)二者。这涉及两种重要技术:(1)电子图像稳定(EIS),其在单个相机上随时间提供场景连续性,从而有效地为视频馈送中所示的场景提供时间平滑;(2)增强的多相机数字变焦(例如,使用多个相机的输出的渐进、增量或基本连续变焦),其在不同相机之间提供场景连续性,从而有效地提供空间平滑方法,以避免相机之间的转换引起的错位或中断。

通过使用下文进一步讨论的各种技术和变换(包括使用“规范 (canonical)”相机空间来表示图像数据),可以有效率地组合EIS和多相机数字变焦。规范空间可以表示具有将不会随时间而改变的固定固有特性的概念相机的视图。例如,规范空间可以是不受诸如光学图像稳定(OIS)或音圈电机(VCM)位置和滚动快门效应等因素影响的那一者。

作为示例,设备可以包括提供场景的不同视场的第一相机和第二相机。该设备可以实现允许用户平滑地改变输出视频所表示的变焦或放大率的变焦功能,即使相机模块中的一个或多个具有固定视场。在一些实施方式中,具有固定焦距镜头的两个或更多个相机模块可以用于通过以下在一定范围内模拟连续变焦:(1)基于来自第一相机的图像对变焦范围的第一部分使用数字变焦(例如,裁切和/或扩大);(2)基于来自第二相机的图像对变焦范围的第二部分使用数字变焦。为了增强视频的整体质量,可以针对所应用的数字变焦的当前级别动态地调整图像稳定处理。例如,沿着模拟的连续变焦范围的每一次变焦改变都可以具有图像稳定参数的相应改变。

设备的图像处理可以管理来自不同相机的图像捕获之间的转换以提供基本无缝转换,同时维持EIS应用和其他图像捕获方面(诸如对焦距离、曝光等)的一致性。变焦功能可以包括使用第一相机的输出的数字变焦,例如,当设备越来越多地在第一相机捕获的图像上进行裁剪时。然后,一旦达到变焦的阈值级别并且放大(zoomed-in)的区域在第二相机的视场内,设备切换至记录使用第二相机所捕获的视频。

为了使所记录的视频在不同相机的输出之间提供平滑转换,设备可以使用一系列变换将第二相机的输出与第一相机的输出相关。这些变换可以使用单应性矩阵或其他形式来实现。在一些实施方式中,变换涉及通过以下来将来自第二相机的图像映射到规范相机空间:移除来自第二相机的相机特定和时间相关贡献,诸如滚动快门效果、OIS镜头移动等。第二变换可以将第二相机的规范图像空间中的图像数据投影到第一相机的规范图像空间。这可以将第二相机的视场与第一相机的视场对齐并且考虑设备中的相机之间的空间差异(例如,偏移)。然后,可以将电子图像稳定(EIS) 处理应用于第一相机的规范图像空间中的图像数据。这一系列变换提供一种处理技术,该处理技术比例如尝试将EIS处理的第二相机图像数据与 EIS处理的第一相机图像数据相关和对齐更有效率。EIS处理可以在单个相机空间或参考帧中执行,尽管使用具有不同视场的不同相机捕获图像,以及图像捕获期间的不同固有特性等等。然后,可以提供第一相机的规范图像空间中的EIS处理的输出,以存储为视频文件(本地和/或远程)和/或流送用于显示(本地和/或远程)。

这些技术可以应用针对当前变焦级别定制的图像稳定级别,以更有效地控制手抖和其他意外相机移动。此外,在视频捕获期间在相机之间平滑地转换的能力可以增加视频捕获的分辨率,而不存在的转换。例如,随着数字变焦越来越多地应用于具有较宽视场的相机的输出,分辨率往往会降低。随着数字变焦增加,生成的输出图像表示图像传感器的更小部分,并且因此使用图像传感器的更少像素来生成输出图像。第二相机可以具有视场更窄的镜头,从而允许使用整个图像传感器捕获更窄视场。当视频放大到输出帧落入第二相机的视场时,相机可以将视频捕获转换为使用由第二相机捕获的图像数据。因此,在继续捕获和记录视频文件并且EIS被连续地且一致地应用时,相机可以在使用不同相机进行视频捕获之间以基本无缝方式切换。该切换可以对用户透明,因此相机之间的切换在所捕获的视频段落中或可选地在用户的用户界面中不明显。

一般而言,执行视频捕获和相关图像处理的过程可以在计算上是昂贵的,尤其是针对高分辨率视频捕获。本文讨论的技术提供计算上有效率的技术,该技术用于通过以下来管理图像稳定处理和相机模块之间的转换:除其他技术外,在将相同类型的EIS处理应用于单个、公共的参考空间中的图像数据之前将两个相机的图像数据映射到该参考空间。参考空间可以是已经移除时间相关效应的空间,这进一步减少了对齐来自不同相机的图像和应用EIS处理所需的计算。

在一些实施方式中,本文讨论的技术在电力预算有限且计算资源有限的电池供电设备(诸如电话、平板电脑和其他移动设备)上实现。所讨论的处理可以由电池供电的设备有效率地执行,电池供电的设备与正在进行的视频捕获同时来基本上实时地执行稳定化处理,例如,随着视频捕获持续进行而保存或流送图像稳定处理的视频输出。此外,如下所述,这些技术可以使用相机模块来调整视频的捕获,例如,调整相机模块设置以进行对焦、曝光等,以及切换在不同时间使用哪个相机模块。这些技术也有效率地执行,以便这些技术在捕获、处理和记录视频时实时执行,同时继续捕获附加视频。

在一个大体方面,一种方法包括:由具有第一相机和第二相机的视频捕获设备提供允许在视频记录期间在数字变焦范围内的用户指定的放大率改变的数字变焦能力,其中,所述视频捕获设备被配置为:(i)使用由所述第一相机在所述数字变焦范围的第一部分上捕获的视频数据;(ii)使用由所述第二相机在所述数字变焦范围的第二部分上捕获的视频数据;以及在使用所述视频捕获设备的所述第二相机捕获视频以提供所述数字变焦范围的第二部分中的变焦级别时,通过应用包括以下的变换集合来处理使用所述第二相机捕获的图像数据:(i)到所述第二相机的第二规范参考空间的第一变换、(ii)从所述第二相机的第二规范参考空间到所述第一相机的第一规范参考空间的第二变换、以及(iii)在所述第一相机的所述第一规范参考空间中将电子图像稳定应用于图像数据的第三变换。

在一些实施方式中,所述方法包括:在使用所述视频捕获设备的所述第一相机捕获视频以提供所述数字变焦范围的第一部分中的变焦级别时,通过应用包括以下的变换集合来处理使用所述第二相机捕获的图像数据: (i)到所述第一相机的所述第一规范参考空间的所述第一变换、以及(ii)在所述第一相机的所述第一规范参考空间中将电子图像稳定应用于所述图像数据的所述第三变换。

在一些实施方式中,所述第一相机和所述第二相机具有不同的视场,其中,(i)所述第二相机的视场被包括在所述第一相机的视场内,或者(ii) 所述第一相机的视场被包括在所述第二相机的视场内。

在一些实施方式中,所述第一相机和所述第二相机均包括固定焦距镜头组件。

在一些实施方式中,所述第二相机的所述第二规范参考空间和所述第一相机的所述第一规范参考空间是由相机固有属性的预定的固定集合所定义的概念相机空间,使得将图像数据投影到规范参考空间移除在视频帧的捕获期间的时间相关影响。

在一些实施方式中,所述第一相机包括光学图像稳定(OIS)系统,并且所述第一相机的所述第一规范参考空间是这样的空间:其中图像数据被表示具有一致的预定OIS位置。

在一些实施方式中,所述第二相机包括光学图像稳定(OIS)系统,并且用于所述第二相机的所述第二规范参考空间是这样的空间:其中图像数据被表示具有一致的预定OIS位置。

在一些实施方式中,所述第一相机提供渐进地捕获图像帧的图像扫描线的图像数据,并且所述第一相机的所述第一规范参考空间是这样的空间:其中图像数据已经被校正以移除由于用于所述图像扫描线的渐进捕获所导致的失真。

在一些实施方式中,所述第二相机提供渐进地捕获图像帧的图像扫描线的图像数据,并且所述第二相机的所述第二规范参考空间是这样的空间:其中图像数据已经被校正以移除由于用于所述图像扫描线的渐进捕获所导致的失真。

在一些实施方式中,所述第二变换将所述第二相机的视场与所述第一相机的视场对齐,并且针对所述第一相机和所述第二相机之间的空间偏移进行调整。

在一些实施方式中,所述第一变换、所述第二变换和所述第三变换各自具有对应的单应性矩阵,并且处理所述图像数据包括应用所述单应性矩阵。

在一些实施方式中,所述方法包括:在使用所述第一相机捕获视频数据并且处理来自所述第一相机的视频数据以应用电子图像稳定期间,接收指示变焦级别改变到所述数字变焦范围的所述第二部分中的特定变焦级别的用户输入。所述方法可以包括,响应于接收到所述用户输入:记录视频帧序列,其中使用所述第一相机捕获的视频帧的放大率递增地增加,直到达到预定变焦级别为止,发起使用所述第二相机的视频捕获,并且记录使用所述第二相机捕获的第二视频帧序列,所述第二视频帧序列提供所述预定变焦级别,并且提供使用所述第二相机捕获的视频帧的增加的放大率,直到达到所述特定变焦级别为止。

在一些实施方式中,所述第二变换至少部分基于所述第二相机的对焦距离来确定。

在一些实施方式中,所述第一变换包括针对使用所述第二相机捕获的所述图像数据的不同扫描线的多个不同调整。

在一些实施方式中,所述第三变换包括针对视频帧的电子图像稳定,所述电子图像稳定针对所述视频帧中的每个特定视频帧使用在所述特定视频帧之前的一个或多个视频帧和在所述特定视频帧之后的一个或多个视频帧。

在一些实施方式中,所述第二相机与所述第一相机相比具有更小的视场。所述方法可以包括:在使用所述第一相机的图像捕获期间,接收指示视频捕获的变焦级别的改变的用户输入;响应于接收到所述用户输入,确定所述改变的变焦级别是否大于或等于预定转换变焦级别,其中,所述预定转换变焦级别表示小于所述第二相机的视场的视场。

在一些实施方式中,所述方法包括:存储指示以下的数据:(i)用于从使用所述第一相机的视频捕获转换到使用所述第二相机的视频捕获的第一转换变焦级别、以及(ii)用于从使用所述第二相机的视频捕获转换到使用所述第一相机的视频捕获的第二转换变焦级别,其中,所述第一转换变焦级别与所述第二转换变焦级别不同;通过以下来确定是否在用于视频捕获的相机之间进行切换:(i)当请求的变焦级别对应于视场的减小时将所述请求的变焦级别与所述第一转换变焦级别进行比较,以及(ii)当所述请求的变焦级别对应于视场的增大时,将所述请求的变焦级别与所述第二转换变焦级别进行比较。

在一些实施方式中,所述第一转换变焦级别对应于与所述第二转换变焦级别相比更小的视场。

在一些实施方式中,所述方法包括:在记录视频文件期间,确定从使用所述第一相机和所述第二相机中的特定相机捕获视频切换到使用所述第一相机和所述第二相机中的另一相机捕获视频;响应于确定切换:确定用于使用所述特定相机的图像捕获的视频捕获参数的值,基于所确定的视频捕获参数来设置所述另一相机的视频捕获参数的值,在设置所述另一相机的所述视频捕获参数的值之后,发起来自所述第二相机的视频捕获,并且将来自所述第二相机的所捕获的视频记录在所述视频文件中。设置所述视频捕获参数包括:针对所述第二相机调整以下中的一个或多个:曝光、图像传感器灵敏度、增益、图像捕获时间、光圈大小、镜头对焦距离、OIS 状态或OIS级别。

本方面的其他实施例和本文讨论的其他实施例包括相应的系统、装置和计算机程序,其被配置为执行在计算机存储设备上编码的方法的动作。一个或多个计算机或其他设备的系统可以通过安装在系统上的软件、固件、硬件或它们的组合进行配置,从而使系统在运行中执行动作。一个或多个计算机程序可以通过具有指令的方式进行配置,所述指令在由数据处理装置执行时使得所述装置执行所述动作。

在另一个一般方面,一个或多个机器可读介质存储指令,所述指令当由一个或多个处理器执行时使得执行包括以下的操作:由具有第一相机和第二相机的视频捕获设备提供允许在视频记录期间在数字变焦范围内的用户指定放大率改变的数字变焦能力,其中,所述视频捕获设备被配置为: (i)使用由所述第一相机在所述数字变焦范围的第一部分上捕获的视频数据;(ii)使用由所述第二相机在所述数字变焦范围的第二部分上捕获的视频数据;以及在使用所述视频捕获设备的所述第二相机捕获视频以提供所述数字变焦范围的第二部分中的变焦级别时,通过应用包括以下的变换集合来处理使用所述第二相机捕获的图像数据:(i)到所述第二相机的第二规范参考空间的第一变换、(ii)从所述第二相机的第二规范参考空间到所述第一相机的第一规范参考空间的第二变换、以及(iii)在所述第一相机的所述第一规范参考空间中将电子图像稳定应用于图像数据的第三变换。

在另一个一般方面,一种视频捕获设备包括:具有第一视场的第一相机;具有第二视场的第二相机;一个或多个位置或定向传感器;一个或多个处理器;以及存储指令的一个或多个数据存储设备,所述指令在由一个或多个处理器执行时使得执行包括以下的操作:由具有第一相机和第二相机的视频捕获设备提供在视频记录期间在数字变焦范围内允许用户指定放大率改变的数字变焦能力,其中,所述视频捕获设备被配置为:(i)使用由所述第一相机在所述数字变焦范围的第一部分上捕获的视频数据;(ii) 使用由所述第二相机在所述数字变焦范围的第二部分上捕获的视频数据;以及在使用所述视频捕获设备的所述第二相机捕获视频以提供所述数字变焦范围的第二部分中的变焦级别时,通过应用包括以下的变换集合来处理使用所述第二相机捕获的图像数据:(i)到所述第二相机的第二规范参考空间的第一变换、(ii)从所述第二相机的第二规范参考空间到所述第一相机的第一规范参考空间的第二变换、以及(iii)在所述第一相机的所述第一规范参考空间中将电子图像稳定应用于图像数据的第三变换。

在一些实施方式中,所述第一相机和所述第二相机具有不同的视场,并且所述第二相机的视场被包括在所述第一相机的视场中。所述第一相机和所述第二相机均可以包括固定焦距镜头组件。

本发明的一个或多个实施例的细节在附图和下面的描述中阐述。根据说明书、附图和权利要求书,本发明的其他特征和优点将变得显而易见。

附图说明

图1A-1B是示出提供多相机视频稳定的设备的示例的示意图。

图2是图示图1A-1B的设备的组件的示例的框图。

图3是图示用于视频稳定的示例技术的示意图。

图4是指示由图1A-1B的设备进行的处理的附加示例的框图。

图5A-5C是图示多相机视频稳定的技术的示例的示意图。

图6是示出可用于有效率地提供多相机视频稳定的示例变换的示意图。

在各附图中相同的附图标记和名称指示相同的元件。

具体实施方式

图1A-1B是示出提供多相机视频稳定的设备102的示例的图。视频稳定通常是移动设备的相机系统的一个重要特征。利用传统的单相机视频稳定,视频帧可以从在抖动的真实相机轨迹期间实际捕获的图像数据变换为时间平滑的虚拟相机轨迹的经稳定的输出。使用单个相机,在真实相机轨迹期间获取的帧可以投影到表示沿平滑虚拟相机轨迹的帧的更改的输出帧。

一些设备包括面向相同方向(例如,设备的同一侧)的多个相机,其布置为捕获同一场景的不同视场。在多相机系统中,设备可以以单个视频包括使用不同相机捕获的片段的方式在捕获视频的过程中在相机之间切换。当发生在相机之间的切换时,由于使用不同的真实相机,因此不再存在单个真实相机轨迹。然而,设备应维持相同的虚拟相机轨迹,以保持所捕获的段落的连续性和平滑性,即使在相机之间的转换期间也是如此。如本文所讨论的,虚拟相机轨迹可以在多个相机之间维持并且随着时间被平滑,使得相机之间的切换不会造成滋扰或侵扰效应(例如,停顿、图像偏移或视场的突然改变、稳定中的中断或所应用的稳定级别的突然改变等)。

可以实现多相机视频稳定系统以提供各种益处。除了随着时间平滑视频之外,还可以平滑不同相机的视频捕获时间段之间的转换。此外,该技术可以足够有效率来实时操作,例如,与连续视频捕获同时地来将平滑应用于所捕获的视频,并且节省电力以允许电池供电设备来延长地使用。

在图1A的示例中,设备102被图示为电话,但是可以是其他类型的设备,诸如平板计算机、相机等。设备102包括多相机模块108,包括第一相机110a和第二相机110b。两个相机110a、110b布置在设备102的同一侧,因此两个相机都布置成捕获面对设备102的相同场景105的图像(例如,在所示的电话的背面)。相机110a、110b可以刚性耦合在一起并且与设备102耦合,使得相机110a、110b以与设备102相同的程度并且以相同的运动一起移动。

相机具有不同的视场。例如,第一相机110a具有第一视场120,而第二相机110b具有比第一视场120窄的第二视场122。尽管视场120、122 可能显著不同,但两个相机110a、110b可能具有相似的图像分辨率。两个视场120、122可以重叠。特别地,第二相机110b的视场122可以完全包含在第一相机110a的视场120内。作为示例,第一视场120可以是77 度,而第二视场122可以是52度,其中,52度的视场122大部分或全部在77度的视场120内。在该示例中,相机110a、110b各自使用固定焦距镜头,例如,没有光学变焦的镜头组件。换句话说,除了诸如聚焦呼吸(focus breathing)等聚焦相关效应之外,每个相机110a、110b的镜头焦距可以是固定的。

相机110a、110b中的一个或多个可以包括光学图像稳定(OIS)模块,以减少设备102的相机抖动和其他不想要的移动的影响。无论相机110a、 110b是否包括OIS模块,设备102都可以使用电子图像稳定(EIS)来随时间平滑所捕获的视频。如下文进一步讨论的,EIS处理可以将变换应用于所捕获的帧,以将沿着抖动的实际相机轨迹拍摄的所捕获的帧投影到经稳定的输出帧,该经稳定的输出帧表示虚拟相机的经平滑或滤波的轨迹。

设备102使用相机110a、110b提供有效的变焦范围,其使用来自不同相机110a、110b的在不同放大率级别的图像捕捉。设备102可以使用应用于不同相机110a、110b在变焦范围的不同部分的输出的数字变焦技术来提供变焦范围。作为示例,该设备可以提供1.0x到3.0x的整体变焦范围。提供较宽视场120的相机110a可以用于捕获变焦范围的第一部分(例如1.0x到1.8x)的图像。一旦变焦达到特定级别,诸如预定转换点,例如 1.8x,则设备102从使用第一相机110a捕获视频切换到使用第二相机110b 捕获视频。提供更窄视场122的相机110b可以用于捕获变焦范围的第二部分(例如1.8x到3.0x)的图像。

所图示的示例示出设备102包括显示器,该显示器允许用户在设备 102捕获和记录所捕获的视频130时查看该视频130。设备102可以为用户提供在视频捕获期间动态地调整变焦级别的控件132。在该示例中,控件132是设备102的触摸屏上所示的屏上(on-screen)滑块控件,其让用户沿着变焦范围将变焦设置为期望位置。在一些实施方式中,变焦级别以精细粒度的增量进行调整,例如,以0.2x、0.1x或更小的步长进行调整,从而允许用户以实质上接近变焦范围上的连续变焦的方式在所支持的变焦范围内逐渐移动。

图1b示出如何使用相机110a、110b的输出提供不同变焦级别的示例。示出了相应的视场120、122以及可用于提供不同变焦级别的裁切部分 140a-140e。输出帧150a-150e显示可能在不同变焦级别提供的示例帧输出。注意,因为两个相机110a、110b在设备102中物理上相互偏移,因此场景视图中存在差异。即使两台相机正在查看相同场景,由于单目视差,场景中的对象在相机的输出中将具有稍微不同的位置。下面进一步讨论的图像转换可以校正该视差和相机110a、110b的输出之间的其他差异。

输出帧150a-150c中的每一个均从来自提供更宽视场120的第一相机 110a的图像数据推导。当变焦级别达到阈值例如1.8x时,设备102切换至使用由提供更窄视场122的第二相机110b捕获的图像数据。相机110a、 110b之间的切换可以发生在这样的变焦级别:其完全包含在第二相机110b 的视场122内使得存在足够的图像数据以在期望的变焦级别填充输出帧。在一些实施方式中,设备102被配置为一旦变焦级别对应于小于第二相机 110b的完整输出的区域则执行转换,以保留可用于EIS处理的捕获数据的余量。

通常,为了最大化输出质量,有利的是靠近更窄视场122可以填充输出帧的变焦级别来切换到更窄视场122。这是因为更窄视场122将为场景的该区域提供更高的分辨率。尽管两个相机110a、110b可能具有类似分辨率,但是在更窄视场122处,相机110b可以使用其全分辨率来捕获场景的视图,而相同的视图将仅以更宽相机110a的分辨率的一小部分来捕获。在该示例中,存在一变焦级别,例如1.7倍,在该变焦级别下第一相机110a的放大视场140c与第二相机110b的全视场122匹配。此时,用于第一相机110a的图像传感器中的仅相当小的一部分用于提供输出帧150c,因此输出帧150c的分辨率或质量可能低于在更宽变焦级别提供的分辨率或质量。相比之下,第二相机110b的图像传感器的全分辨率可以用于提供该级别的有效变焦或放大率,从而产生更高输出质量。通过在均势点(例如,1.7x)处或之后不久切换至第二相机110b,设备102可以在该变焦级别和在进一步的变焦级别提供更高的质量。

在一些实施方式中,用于在相机110a-110b之间切换的变焦级别集合在第二相机110b可以填充图像帧之后被设置。例如,转换点可以设置在提供余量以解释由相机110a、110b的不同物理位置引起的单目视差的变焦级别。结果,如果第二相机110b可以以1.7x的变焦级别填充帧,则设备102仍然可以延迟切换到使用第二相机110b进行捕获,直到变焦为例如1.8x或1.9x,使得来自相机110b的完全传感器输出提供图像数据的缓冲区域(例如,在表示期望的帧捕获区域的区域周围的边缘处),以便可以进行校正单目视差所需的任何偏移或其他调整,例如,将视场122与视场 120的放大区域对齐,并且仍然填充输出帧。

设备102应用视频稳定,例如,随时间对帧中明显的相机运动进行平滑以减小或消除设备102的移动的影响。设备102可以实时或近实时地执行视频稳定例如EIS处理,例如,与视频被稳定的正在进行的视频捕获同时进行。随着变焦设置改变,在时间上(例如,在多帧上)的视频稳定平滑可以与相机110a、110b之间的转换协调。然而,如下所述,可以使用将第二相机110b的输出映射到第一相机110a的规范空间的图像数据转换,从而允许将单个EIS处理方案一致地用于两个相机110a,110b的输出。

可以利用两个或更多个固定焦距镜头有效地使用本文讨论的技术。可选地,也可以利用提供光学变焦的一个或多个镜头来使用本文讨论的技术。例如,这些技术可以用于在包括来自(i)具有不同光学变焦范围(其可能交叉或重叠,也可能不交叉或重叠)的多个相机或(ii)提供光学变焦的一个或多个相机和一个或多个固定焦距相机的图像捕获的范围内提供无缝有效变焦。

图2是图示提供视频稳定的设备102的示例的示意图。如上所述,设备102包括第一相机110a和第二相机110b。一个或多个相机110a-110b 可选地可以包括OIS模块215a-215b。设备102可以在使用OIS模块 215a-215b(如果包括的话)时捕获视频帧,以至少部分抵消设备102在帧捕获期间的移动。设备102还包括一个或多个设备位置传感器220、一个或多个数据存储设备230和EIS模块255。

设备102可以是包括相机模块的各种类型中的任意一种,例如手机、平板电脑、相机等。在一些实施方式中,设备102可以包括用于执行EIS 模块255的操作的计算系统,其可以以软件、硬件或其一些组合来执行。例如,设备102可以包括各种处理组件,例如,一个或多个处理器、存储可执行指令的一个或多个数据存储设备、存储器、输入/输出组件等。执行EIS处理的处理器可以包括通用处理器(例如,手机或其他设备的主CPU)、图形处理器、协同处理器、图像处理器、固定功能EIS处理器或其任意组合。

EIS模块255使用来自设备位置传感器220和OIS模块215a-215b二者的位置数据来稳定由记录设备所捕获的视频。例如,来自OIS模块 215a-215b的位置数据可以用于确定相对于从设备位置数据会推断出的预期相机视图的偏移,表示OIS移动的影响。这使得EIS模块215能够估计有效相机位置,其即使在OIS模块215a-215b相对于设备位置改变相机的场景视图时也反映图像传感器的实际视图。与本文讨论的其他特征一起,这些技术可以使设备102能够有效地同时使用OIS和EIS处理,并且实现这两种技术的益处。

一般而言,OIS可以非常有效地减少由于相机抖动而导致的单帧内的模糊,并且OIS在一定程度上可以有效地减少一系列帧的明显运动。但是,单独使用OIS通常会受到各种限制。OIS模块可能受到该OIS模块响应移动的速度和可以补偿的移动幅度的限制。此外,OIS模块的操作有时会导致失真(诸如颤动的视频),并且可能错误地抵消期望的移动(诸如平移)。 EIS模块255可以使用描述OIS模块的内部移动的位置数据来减轻这些限制的影响。

因为OIS模块215a-215b尝试补偿记录设备的移动,所以设备运动自身可能无法指示在视频捕获期间使用的真实相机视图。如果EIS处理尝试仅基于设备运动补偿移动,则EIS处理可能尝试校正已由OIS系统补偿的移动。此外,OIS通常仅部分移除设备移动的影响,补偿量可以从一帧到下一帧而变化。为了提供高质量的稳定,EIS模块255使用OIS位置数据以及设备级别位置数据来变化应用于每帧的稳定量,甚至在一些实施方式中对于帧的个体扫描线也是如此。这种处理可以提供有效稳定以及减少或消除视频段落中的失真。例如,在捕获帧时OIS镜头移位位置的改变可能会引入失真,尤其是与许多相机模块中典型的卷帘快门结合使用时。利用关于在帧捕获期间的不同时间的OIS镜头移位的信息,EIS模块255可以估计帧的不同部分被捕获时的镜头位置并且校正图像。EIS模块255还可以进行补偿,以减少干扰平移或在其他方面不期望的OIS镜头移位的影响。

EIS模块255可以增强视频的另一种方式是分析后续捕获的帧的数据。为了处理特定帧,EIS处理模块可以在包括捕获一个或多个未来帧的时间的时间窗口中评估一组相机位置。关于未来帧和对应位置的信息可以通过多种方式使用。首先,EIS模块255可以对相机位置集合应用滤波,以平滑定义用于改变帧的图像变换所使用的运动模式。第二,EIS模块255 可以使用相机位置集合来评估存在或者尝试一致移动(例如,平移)的可能性,然后在有可能的情况下与该运动一致地来调整帧。第三,EIS模块255 可以关于未来相机位置评估帧的相机位置,并且针对大的未来移动进行调整。例如,如果针对未来帧识别大的快速移动,则EIS模块255可以在运动开始之前开始调整帧的内容。EIS模块255不是在几个帧上允许大的明显运动,而是可以将运动扩展在更大帧上,使得在更早的帧期间发生增量图像移位,并且在更多数量的帧上逐渐扩展该移动。

EIS模块255对输出帧进行区域合成,例如,改变应用于图像帧的每个扫描线的变换。这使得系统能够针对卷帘快门失真、OIS模块215a-215b 的移动以及在单个帧的捕获持续时间内发生的各种设备运动进行校正。

仍然参考图2,设备102可以是具有捕获视频数据的相机的任何合适的设备,例如相机、蜂窝电话、智能电话、平板计算机、可穿戴计算机或其他设备。尽管图2的示例图示捕获视频并且处理视频的单个设备,但这些功能可以可选地在多个设备或系统之间扩展。例如,第一设备可以捕获视频帧,也可以将位置数据和其他参数记录为元数据。第一设备可以将视频帧和元数据提供给第二设备,例如本地计算系统或远程服务器,其可以执行本文所述的EIS处理。

第一相机110a可以包括镜头元件、图像传感器、传感器读取电路和其他组件。OIS模块215a-215b可以包括传感器、可移动元件、处理器和驱动机构,以移动可移动元件。可移动元件位于第一相机110a的光路中。例如,可移动元件可以是反射或折射元件,例如透镜、反射镜、棱镜。在一些实施方式中,可移动元件为第一相机110a的图像传感器。传感器可以包括一个或多个陀螺仪或其他传感器,以检测移动。处理器确定可移动元件补偿由传感器所指示的移动所需的移动量和方向,然后指示驱动机构移动可移动元件。

设备102包括测量设备102的定向的改变的一个或多个位置传感器 220。在一些实施方式中,设备102的位置传感器220与由OIS模块 215a-215b所使用的传感器分离。位置传感器220可以检测设备102绕一个或多个轴的旋转。作为示例,设备位置传感器220可以是三轴陀螺仪或惯性测量单元。其他传感器可以附加地或替选地用于确定设备位置。例如,一个或多个加速度计、单轴陀螺仪、双轴陀螺仪等可以用于确定设备102 的位置。通常,可以使用允许确定设备102的旋转位置的任何合适的传感器或传感器组合。

在一些实例中,来自OIS模块215a-215b的陀螺仪传感器的位置数据可以除了使用记录设备220的单独位置传感器220之外或者代替使用记录设备220的单独位置传感器220来捕获和存储。然而,设备102使用与 OIS传感器具有不同特性的陀螺仪传感器可以是有益的。例如,设备102 中的陀螺仪传感器可以以约400Hz的速率提供测量,其中,可感知旋转范围大于每秒100度。与设备级别传感器相比,OIS模块的典型陀螺仪传感器可以以不同的速率和范围提供测量,例如,每秒5000次测量或更高的速率,其中可感知的旋转范围约为每秒十度。在一些实施方式中,具有设备级别传感器的更大的可感知旋转范围是有益的(例如,描述大的运动), OIS模块传感器的更频繁的测量也是有益的(例如,检测小的改变或高频模式)。因此,两种类型的数据可以一起用于确定设备102的位置。

设备102包括一个或多个数据存储设备230,其存储表征第一相机 110a和帧捕获过程的信息。例如,所存储的数据可以包括校准数据232,其指示OIS模块215a-215b的位置与图像数据中发生的所得到偏移之间的关系。类似地,校准数据232可以指示相机模块镜头对焦位置和这些对焦位置的有效焦距的对应关系(例如,对于每个相机110a、110b具有不同的映射),从而允许系统考虑到对焦呼吸。此外,校准数据232或其他存储数据可以指示相机镜头对焦位置和对象距离的对应关系,从而允许从自动对焦系统所选择的镜头对焦位置转换为指示对焦对象与相机的传感器平面的距离的对象距离。校准数据232还指示一个相机110a相对于另一个相机110b的相对三维空间位置。通常,这涉及指定一台相机相对于另一台相机的3D旋转和3D平移的校准数据。通常,每个制造的设备都进行校准,以保证最佳用户体验。因此,校准数据232对于特定相机模块(例如,相机110a、110b、其安装结构等)的特性和制造后的模块的状态可以是高度精确的。存储数据可以包括扫描模式数据234,其可以指示第一相机110a 中的图像传感器的读出属性。例如,扫描模式数据234可以指示扫描的方向(例如,从上到下读取的扫描线)、扫描线是单独读取还是成组读取等等。

在视频捕获期间,相机110a-110b、OIS模块215a-215b和设备位置传感器220可以分别提供关于视频捕获过程的信息。第一相机110a提供视频帧数据242a,例如视频图像帧的序列。第二相机110b类似地提供视频帧数据242b。相机110a-110b还提供帧曝光数据244a-244b,其可以包括针对每个捕获帧指示曝光持续时间和指示何时发生曝光的参考时间(例如,曝光的开始时间或结束时间)。相机110a-110b还提供镜头对焦位置数据246a-246b,其指示每个捕获帧的镜头对焦位置。

OIS模块215a-215b提供OIS位置数据248a-248b,其指示OIS模块 215a-215b的可移动元件在视频捕获期间的不同时间的位置。例如,当可移动元件为移位来补偿运动的可移动镜头时,OIS模块215a-215b可以提供镜头位移读出,其指定每个可移动镜头的当前位置。设备102可以记录镜头移位位置和发生该位置的时间。在一些实施方式中,OIS位置数据248a-248b以高频率捕获,例如以高于视频捕获的帧速率的速率捕获,使得在每个视频帧曝光的持续时间内进行多次测量。

设备位置传感器220提供指示设备102在视频捕获期间的旋转和/或其他移动的设备位置数据250。设备位置可以以高频率(例如200Hz或更高)被测量。因此,在许多情况下,可以在每个视频帧的捕获期间获得多个不同时间的测量。

镜头对焦位置数据246、OIS位置数据248和设备位置数据250都可以连同指示指定位置发生时间的时间戳一起来记录。时间戳可以精确到例如最接近的毫秒,使得从各种位置测量中获得的数据可以在时间上对齐。此外,可以对设备、OIS系统或镜头对焦机制的位置进行插值,以确定测量之间的时间值。

在图框252中示出了数据捕获的潜在时序示例。如图所示,设备位置数据250(例如,陀螺仪数据)和OIS位置数据248(例如,镜头移位位置数据)可以以高于视频捕获帧速率(例如,每秒30帧、每秒60帧等)的速率捕获,使得可以为每个视频帧确定设备的多个位置和OIS系统的多个位置。因此,对于每个扫描线(其可能取决于快门方向而是水平扫描线或垂直扫描线),不同的设备位置和OIS设置可以用于确定该扫描线的变换。镜头对焦位置数据246可以每图像帧捕获至少一次。位置数据可以相对于帧曝光异步捕获,例如,陀螺仪传感器数据和OIS位置数据以这样的速率被采样,该速率超过并且不一定与图像帧曝光的开始或结束同步。

从相机110a-110b和其他组件获得的数据被提供给EIS模块255以用于处理。该处理可能在视频捕获正在进行时发生。例如,可以基本实时地进行视频信息处理,使得在视频捕获结束时用户可访问的视频文件已经被视频信息模块255稳定。在一些实施方式中,EIS处理可以在更晚的时间进行,例如在视频捕获完成之后,或者由除记录视频的设备之外的设备进行。EIS模块255可以以硬件、固件、软件或它们的组合或子组合来实现。

图2仅图示EIS模块255的部分功能。图2中的示例图示对涉及从相机110a-110b中的单个相机捕获的帧的视频帧的EIS处理,并且没有描述用于提供数字变焦或调整用于变焦级别的EIS处理的特征。然而,如下所述,设备102可以使用从两个相机捕获的图像数据在视频捕获和记录期间提供数字变焦。例如,一旦用户放大到阈值变焦量,设备102可以从使用从第一相机110a捕获的图像切换到使用从第二相机110b捕获的图像。此外,变焦级别可以调整EIS模块225的变换和其他操作,例如,随着变焦级别而增加应用更高的稳定级别,因为放大可以加重视频中的明显抖动。关于图4-6讨论了用于考虑数字变焦和相机之间的转换的EIS处理的调整。在一些实施方式中,可以通过对捕获图像的每一行应用不同变换来实现变换。对于图像的每行,设备102可以计算该行的特定时间戳,使得该行与对应的OIS和设备位置数据相关联。

仍然参考图2,EIS模块255包括设备位置数据处置器(handler)256,其周期性或连续地从设备位置传感器220获得更新的设备位置数据250。运动数据处置器根据设备位置数据250估计当前相机姿态。例如,可以获得陀螺仪信号,并且将其用于以高频(例如200Hz)估计设备102的设备位置。在给定时间t的该设备位置以下称为R(t)。该设备位置可以指示设备 102相对于例如一个轴、二个轴或三个轴的旋转位置。设备位置可以被表示为旋转矩阵,或者相对于坐标系或者以其他形式被表示。每个计算的设备位置可以标记有时间,其指示设备102的位置发生的时间。

EIS模块255包括OIS位置数据处置器258,其周期性地或连续地获得如OIS位置数据248所图示的OIS位置读出。OIS位置数据处置器258 将OIS读出值转换为可以用于与设备位置一起使用的偏移。例如,OIS镜头位置可以转换为二维像素偏移。为了生成偏移,OIS位置数据处置器258 可以使用存储的校准数据232,该校准数据232可以提供转换系数或矩阵,以从OIS位置转换到对应偏移。生成由于OIS位置的偏移可以考虑相机的有效焦距随时间的改变,例如在第一相机110a能够进行光学变焦的情况下,由于镜头对焦位置和/或镜头变焦位置的改变。与运动数据处置器256 类似,OIS位置数据处置器258将每个测量和偏移标记有数据所表示的时间。

EIS模块包括运动模型构建器260,其接收由设备位置数据处置器256 计算的设备位置和由OIS位置数据处置器258计算的OIS偏移。利用该数据以及帧曝光数据244和镜头对焦位置数据246,运动模型构建器260为帧生成第一变换262。例如,第一变换262可以是将相机视场内的真实场景映射到捕获帧的投影矩阵。每个帧重复此过程。当生成帧的第一变换262 时,OIS模块215a-215b的位置可以建模为与根据陀螺仪数据确定的主设备位置的偏移。如下文进一步讨论的,偏移可以通过查找捕获时镜头对焦位置的有效焦距来考虑相机在捕获时的有效焦距。第一变换262可以分开地描述单个图像帧的不同子集或区域的关系。例如,第一变换262的不同部分或组件可以描述帧的不同扫描线如何映射到真实场景。设备位置、OIS 模块位置、对象距离(例如,从相机对焦的对象的距离)和镜头对焦位置都可以使用测量时间戳对齐,并且根据需要进行插值,以便在曝光时为帧的各个扫描线提供准确的位置。对于具有自动对焦的镜头,对焦位置取决于对象与相机的距离而设置。相应地,存在指示镜头对焦位置与对象距离之间的关系的映射。可以生成和校准该映射,并且对象距离用于空间转换的后续计算。

运动模型构建器260生成的第一变换262被提供给非线性运动滤波引擎270,该非线性运动滤波引擎270确定第二变换272。该第二变换272 可以是将帧的图像数据投影到表示帧的经稳定的版本的输出帧的第二投影矩阵p’i,j。具体地,第二变换272可以将利用第一变换262进行的图像投影Pi,j映射到输出帧,而不是对捕获的图像数据进行操作。在一些实施方式中,两个变换262、272然后可以组合成单个变换,该变换对帧的初始捕获的图像数据进行操作,并且将其直接映射到经稳定的输出帧。

为了有效地对移动进行稳定,非线性运动滤波引擎270可以生成第二变换272,以在处理帧的捕获之后考虑将来将发生的移动。例如,对于分析中的当前帧,记录设备的位置自前一帧以来可能没有显著移动。然而,如果引擎270确定在未来帧中发生显著运动,则可以生成第二变换272以移位或以其他方式改变当前帧,从而在视频中引入明显运动,使得可以将大的未来移动扩展为一系列逐渐改变而不是突然改变。类似地,如果对未来帧进行稳定引入剪裁或其他改变,则可以生成第二变换272,以至少部分地将这些改变传播至更早帧,从而在一系列帧上实现更渐进和一致的改变。

非线性滤波引擎270可以根据帧的虚拟相机位置生成第二变换272。虚拟相机位置不是表示曝光发生时的相机的实际位置,而是表示会稳定所记录的视频的设备102的调整或假设姿态。虚拟位置可以表示放置虚拟相机的期望位置,例如,会模拟场景的特定视图或透视的位置。通常,任何相机位置都可以通过该相机相对于全局参考帧的旋转和平移来表示。虚拟相机位置可以表示为旋转矩阵,例如指示相对于参考位置的旋转偏移的矩阵。这可以是指示相对于三个旋转轴的旋转偏移的3x3矩阵。在一些实施方式中,EIS模块的稳定处理仅在旋转分量方面定义位置,因为这些位置对手持视频的稳定性通常具有最大影响。

用于帧的虚拟相机位置可以反映对估计相机位置的调整,以增强视频稳定、校正失真和操作、促进平移以及以其它方式增强视频。可以通过生成基于各种因素而调整的初始相机位置来确定帧的虚拟相机位置。例如,可以通过以下来调整虚拟相机位置:通过基于在帧之前和之后检测到的移动、基于帧中的模糊量、基于平移发生的可能性来对设备位置进行滤波,通过针对未来帧中的运动做准备和/或确保图像数据覆盖整个输出帧而进行的调整。可以通过为帧生成一系列虚拟相机位置来考虑各种因素,这些虚拟相机位置被改变、混合或以其它方式用于确定帧的最终虚拟相机位置。

正如变换262、272可以针对不同的扫描线具有不同的映射,不同的虚拟相机位置可以针对帧的不同扫描线确定,以针对以下的改变进行调整:在帧捕获期间的设备位置、OIS模块215a-215b位置和/或镜头对焦位置。因此,不同的虚拟相机位置可以用于帧的不同部分。为了提高效率,可以针对图像传感器的扫描线的真子集计算第二变换272的虚拟相机位置和对应分量,然后为剩余的扫描线插值适当数据。在下面的各种示例中,为了简单起见,讨论了单个扫描线,例如图像传感器的中心扫描线。用于完全计算虚拟相机位置和对应投影矩阵分量的技术可以用于图像帧的多个扫描线,如果需要,甚至分别用于每个扫描线。

如本文所用,设备位置是指设备102的位置,例如,如由设备位置数据250(例如,陀螺仪数据)和设备位置数据处置器256的输出所指示。该设备级别位置指示设备102的姿态或方向,而不考虑第一相机110a的镜头的内部移动或OIS模块215a-215b的移动。也如本文所用,相机位置指示与相机的有效视图或估计视图对应的位置。通过考虑由于OIS模块215a-215b的操作、镜头呼吸等因素造成的移位,相机位置可能与设备位置不同。进一步,相机位置可以是虚拟位置,例如,反映相机的增强视图或改变视图而不是相机的实际视图的近似位置或假设位置。

然后,EIS模块255使用图像翘曲(warping)引擎280来使用非线性运动滤波引擎270的输出,并且将每个捕获图像帧映射到输出帧。第二投影 272可以包括与帧的每个扫描线对应的分量,使得将帧的每个部分映射到输出空间,并且定义输出帧的每个像素。可以针对视频的每个帧执行EIS 模块255的处理。

图3是图示用于视频稳定的数据的示例的示意图。该示意图示出设备 102所捕获的一系列帧310。每个帧标记有对应的元数据312的集合,其指示例如曝光持续时间、曝光参考时间(例如,曝光的开始时间、停止时间或其他参考点)、镜头对焦位置等。虽然未图示,但是在每次曝光期间的不同时间捕获设备位置数据和OIS模块位置数据并且对设备位置数据和OIS 模块位置数据加时间戳。

为了对帧311执行稳定处理,定义捕获帧311周围的时间范围。分析帧的该时间范围或窗口以确定如何变换帧311。如本文所用,帧的时间“t”通常是指捕获中心扫描线的时间,其用于表示捕获帧的参考时间。当提及单个扫描线的时间时(例如,考虑可能不同于用于捕获帧的中心扫描线的主要时间的时间),该时间用t

在图3中,帧311被示出为由图像传感器(例如,相机110a-110b中的任一个)捕获。如上所述,EIS模块255根据指示设备102在捕获帧311 期间的真实位置以及相机元件(例如OIS模块元件)的位置和镜头对焦位置的数据定义第一变换262。应用第一变换262的结果是投影图像330,相对于输出帧目标335示出。在一些实施方式中,第一变换262仅使用与帧311的捕获对应的数据来确定。变换262对应于相机的真实镜头位置,因此投影图像330估计图像数据与相机的实际场景之间的映射。

EIS模块255使用第二变换272进一步调整帧311的图像数据。该第二变换272对应于虚拟镜头位置,例如如果用于捕捉帧311将导致更稳定视频的假设位置。当应用于帧311时,该第二变换272产生完全定义输出帧335的数据的投影图像340。

产生投影图像340的第二变换272可以根据与来自[t-Q,t+Q]的时间范围内的每个帧对应的数据来生成。设备102在该时间段内的位置R(t)可以例如使用高斯滤波器来滤波为在该范围内的平滑运动。这里所指的位置 R(t)的集合是包括设备102在范围[t-Q,t+Q]内发生的每个中心扫描线捕获时间的位置的集合。考虑其中范围包括当前帧被处理的中心扫描线捕获时间t

例如,第二虚拟相机位置V

第三虚拟相机位置V

可以生成第四虚拟相机位置V

第五虚拟相机位置V

利用第五虚拟相机位置V

在一些实施方式中,为帧311生成经稳定的输出帧335包括针对帧 311的一条或多条其他扫描线执行在时间t

一旦帧311被映射到输出帧335,结果被保存,并且EIS模块255开始处理下一帧。该过程将继续,直到视频的每个帧都已经被处理。

用于生成虚拟相机位置和所得的变换的各种因素可以组合地或单独地使用。例如,取决于实施方式,可以省略用于创建虚拟相机位置V

所讨论的技术可以通过多种方式应用。例如,不是将两个变换262、 272依次应用于图像数据,记录设备可以生成反映两者的组合效果的单个组合变换。因此,使用变换262、272生成经稳定的图像数据可以包括生成最终用于稳定图像数据的进一步变换或关系,而不是直接应用变换262、 272。描述了用于图像稳定的各种技术,并且可以附加地或替选地使用其它技术,例如在2019年10月29日公告的美国专利No.10,462,370中讨论的技术,其通过引用并入本文。

图4是指示由图1A-1B的设备102进行的处理的附加示例的框图。除了图2所示的元件(其中的一些元件在图4中再次表示)之外,设备102 还可以包括硬件和/或软件元件,以提供图4所示的附加功能。

设备102可以包括变焦输入处理模块410,用于处理指示所请求的变焦级别的改变的对设备102的用户输入。当设备102捕获视频时,即使在启用EIS的情况下,设备102也可以接收用户输入以更改变焦级别。这可以包括移动屏上滑块控件的输入、触摸屏上的手势或其他输入。1.0x的变焦级别可以表示使用EIS启用的相机110a可用的最宽视场。这可以是本源图像传感器分辨率的裁剪部分,以为EIS处理提供余量。模块410可以基于用户输入来确定期望变焦级别,例如,以从当前变焦级别(例如,1.0x) 移动到改变的或者期望的变焦级别(例如,2.0x)。

指示所请求的变焦级别的数据被提供给相机选择器模块420,其确定是否切换用于视频记录的相机。例如,相机选择器模块420可以接收并且使用存储的相机转换阈值430,该转换阈值指示相机之间应该发生转换的变焦级别。例如,第二相机110b可以具有对应于1.7x的变焦级别的视场,并且可以将转换阈值设置在1.8x的变焦级别。相机选择器420确定2.0的期望变焦级别满足1.8x阈值(例如,大于或等于该阈值),因此相机的改变从表示1.8x以上的变焦级别的捕获开始是适当的。可以定义多个阈值,诸如用于放大(例如缩小视场)的第一阈值和用于缩小(例如扩大视场)的第二阈值。这些阈值可能不同。例如,第一阈值可以为1.8,而第二阈值可以为1.7,使得转换点取决于用户正在放大还是缩小而不同。

在一些实施方式中,相机110a、110b之间的切换不仅仅由阈值控制。考虑设备正在使用相机110b记录视频时的情况,用户发起缩小到将导致切换使用更宽相机110a的级别。假设将在放大时从相机110a切换到相机110b的阈值设置为1.8x,并且相机110b可以使用的最低变焦位置是 1.7x(例如,表示当前相机110b的全最大视场的变焦级别)。因此,当缩小时,进行转换必然不超过1.7x的变焦级别,因为第二相机110b不能提供比该相机更宽的视场。为了解决这种情况,当变焦级别降低至1.9x时,即使输出帧仍然基于相机110b输出的当前图像数据,相机110a也将开始流送图像数据。这提供了其中两个相机110a、110b都正在捕获和流送场景的图像数据的时间段,例如,在从1.9x到1.8x的变焦级别转换期间。这为相机110a提供用于初始化捕获的调整时间段,因此相机110a可以“预热”,并且自动对焦、自动曝光和其他过程将开始收敛。该调整时间段可以为相机110a的设置提供余量,以使其设置和捕获初始化并且对齐,以匹配由相机110a在切换之前当前使用的那些设置和捕获。

通过这种方式,设备102可以基于当前变焦级别、变焦改变方向以及用户与设备102的交互等因素来预测相机之间的切换的需求并为其做准备。当检测到可能需要相机切换时,例如,基于指示变焦减小至1.9x的用户输入,设备102可以在用户指示目标转换或必要时的变焦级别之前,指示使用下一个相机110a开始捕获的设置。例如,如果设备102在用户指示变焦级别为1.9x时开始视频捕获和设置调整,并且相机110a在用户指示变焦级别为1.8x时准备就绪并且利用所需设置进行操作,则一旦指示变焦级别为1.8x,设备102就可以进行相机切换。然而,如果由于任何原因,在指示1.7x的变焦级别(例如,当前相机110b的最大视场)时,设置的收敛或实施方式没有完成,则当变焦级别达到1.7x时,设备102将强制切换。

相机选择器420向相机控制模块440提供相机选择信号或其他控制数据。相机控制模块440从相机110a、110b读取视频捕获参数,并且发送设置视频捕获参数的指令或设置。视频捕获参数可以包括,例如,哪个相机110a、110b正在捕获图像数据、帧捕获速率(例如,24帧/秒(fps)、30fps、 60fps等)、曝光设置、图像传感器灵敏度、增益(例如,在图像捕获之前或之后应用)、图像捕获时间(例如,有效“快门速度”或每条扫描线在帧期间捕获光的持续时间)、镜头光圈大小、对象距离(例如,从相机对焦的对象的距离)、镜头对焦位置或对焦距离、OIS状态(例如,是否启用OIS、所使用的OIS的模式等)、OIS镜头位置(例如,水平和垂直偏移、旋转位置等)、所应用的OIS的强度或水平等。相机控制模块440可以设置用于一般视频捕获的这些和其他视频捕获参数,例如,曝光、帧率等。相机控制模块232还可以接收或访问校准数据232。可以针对每个设备(例如针对设备102)执行校准程序,作为设备制造和质量保证的一部分。校准数据可以指示例如用于微调相机110a、110b相对于彼此之间的关系、不同镜头位置的镜头对焦位置与对象距离(例如焦平面的距离)之间的关系等的数据。

相机控制模块440还可以在适当的时间启用和禁用相机110a、110b,以使得由相机选择器420所指示的相机切换发生。例如,当输入指示变焦级别从1.0x改变到2.0x,并且来自相机选择器420的数据指示从1.8x开始改变为第二相机110b时,相机控制模块440可以生成用于使得这种转变发生的控制指令。利用关于所请求的变焦速度的存储的信息以及可一致地执行变焦的速度的任何限制,相机控制模块440确定进行切换的时间,例如,反映在图像输出中的增量变焦或渐变变焦将到达1.8x相机转换点的时间。该转换时间可以基于继续使用第一相机110a捕获数据直到数字变焦可以平滑地达到1.8x变焦级别的持续时间或帧数,或者用户输入指定达到1.8x变焦级别的时间。

在预测相机转换时,相机控制模块440可以从当前相机(例如,第一相机110a)读取视频捕获参数,并且为在转换后使用的相机(例如,第二相机110b)设置对应的视频捕获参数。这可以包括设置相同的帧率、相同的曝光级别、相同的镜头光圈、相同的对焦距离、相同的OIS模式或状态(例如,是否启用)等。大体上,在相机之间转换之前,存在两个相机110a、110b同时主动捕获视频数据的时间段。例如,对于从第一相机110a切换到第二相机110b的情况,在变焦级别达到用于切换以将相机110b的输出用于记录的视频的阈值之前,相机110b将打开并且开始视频捕获。设置的初始值将基于当前用于相机110a的设置的值。相机110b将开始向所指令的设置调整其操作,例如,收敛到期望的操作模式(例如,适当的光圈设置、正确的对焦距离设置、正确的OIS设置等)。该过程可以包括相机110b 或设备102确定适当的设置,例如用于确定正确的对焦距离的自动对焦过程。在对相机110b进行设置的收敛或计算之后,记录中使用的视频流将切换为相机110b输出的视频流。在一些情况下,相机110a、110b的参数可以不相同,但是相机110b的参数可以基于相机110a使用的用于捕获的参数来设置,并且可以被设置为促进或保持输出之间的一致性。例如,相机110a、110b可以不具有相同的可用光圈范围,因此相机控制模块440 可以为两个相机110a、110b设置等效或近似等效的曝光级别,但是同时可以使用灵敏度/增益、捕获时间(例如,快门速度)和光圈的设置的不同组合。相机控制模块440可以在转换到将待转换的相机用于记录的最终输出帧之前激活该相机,并且应用适当的设置,使得图像捕获和传入视频源在转换时或之前可用。

使用图像处理模块450来处理视频数据。该模块450可以接收从针对视频捕获当前选择的相机110a、110b流送的捕获视频帧。模块450还从设备位置传感器(诸如陀螺仪、惯性测量单元(IMU)、加速度计等)接收传感器数据。模块450还(例如,从相机控制模块或从存储器)接收指示用于捕获视频帧的参数的视频捕获参数值。这可以包括指示针对每个帧以及甚至针对帧的不同部分甚至针对捕获或读取帧的过程中的特定扫描线或时间点的OIS元件位置、相机对焦位置、对象距离、帧捕获时间、快门速度/ 捕获持续时间等的元数据(参见图2的图框252)。模块450还接收指示数字变焦级别(例如,其可以表示为放大率级别、等效镜头焦距、所得视场、裁切级别等)的数据。图像处理模块450对捕获的图像帧应用变换,以移除由于滚动快门、OIS系统移动、对焦呼吸等造成的伪影。例如,模块450 可以获得视频帧,并且将其变换或投影到捕获帧的相机的规范空间,其中,在规范空间中,帧的捕获的空间时间变化的方面(例如,OIS元件的移动、滚动快门等)被移除。

模块450可以将图像帧变换为第一相机110a的规范相机空间,而不管该帧是利用第一相机110a还是利用第二相机110b来捕获。例如,对于使用第二相机110b捕获的图像,模块450通过校正相机110a、110b在设备上的位置之间的空间差异以及诸如相机110b的对焦位置等其他因素,将数据从第二相机110b的规范空间变换为第一相机110a的规范空间。这可以将使用第二相机110b捕获的图像数据与第一相机的视场的部分对齐,使得场景的视图在来自两个相机110a、110b的记录视频中一致。这种技术将参照图5A-5C和6在下面进一步讨论。

设备102可以包括接收和处理变换到主相机的规范空间的图像数据的EIS处理模块460。“主相机”是指预先指定为用作用于其他相机的参考的多个相机之一。例如,主相机可以是具有最宽视场的第一相机110a,并且任何其他相机(例如,第二相机110b)的输出可以被变换或映射到第一相机110a的规范空间。模块450将两个相机110a、110b的图像数据映射到已补偿帧内时间相关变化(例如,帧的不同扫描线的捕获时间、设备位置、 OIS位置等的差异)的公共标准化规范空间。这通过消除EIS处理模块460 考虑帧内的时变捕获属性的需求而显著简化EIS处理。它还允许单个EIS 处理工作流程用于使用相机110a、110b捕获的视频数据。EIS处理模块 460还潜在地针对每一帧接收期望的变焦设置,例如变焦级别或视场。这使EIS处理模块能够根据用于帧的变焦级别为每个帧应用适量的稳定量。随着变焦级别增加和图像被放大,相机的移动的影响也被放大。相应地,当变焦级别增加时,EIS处理模块460可以应用更强的稳定,以维持输出视频中的大致一致稳定性级别。EIS处理模块可以使用上面参照图2和3 所讨论的任何或所有EIS处理技术。稳定可以被认为是将图像数据从主相机的规范图像空间投影到虚拟相机空间,在该空间中,图像数据被变换以模拟输出,就好像相机在视频捕获期间具有比真实相机更平滑的移动迹线一样。

在EIS处理模块460稳定帧的图像数据之后,帧的图像数据被输出和 /或记录在数据存储设备(例如,诸如闪存等的非易失性存储介质)上。模块 410、440针对帧确定的变焦级别可以用于裁切、扩升或以其他方式应用针对该帧所需的数字变焦级别。作为这些技术的结果,设备102可以在捕获期间在两个相机110a、110b之间无缝转换,其中转换由设备102基于用户所设置的变焦级别自动管理。因此,所得视频文件可以包括使用散布在视频文件中的不同相机110a、110b捕获的视频片段,其中,数据被对齐和变换,以示出平滑变焦转换,同时保持对来自两个相机110a、110b的片段的一致EIS处理。

设备102可以包括视频输出和/或记录模块470。视频输出和/或记录模块470可以被配置为接收EIS处理模块460的输出,并且将其作为视频文件存储在设备本地和/或远程。附加地或者替选地,视频输出和/或记录模块470可以流送输出,以用于本地显示在设备102上和/或例如经由网络远程显示在另一显示设备上。

图5A-5C是图示多相机视频稳定技术示例的示意图。在下面讨论的示例中,相机110a、110b中的一个被指定为主相机,而另一个被指定为辅助相机。通过下面讨论的处理和变换,当使用辅助相机来捕获记录的视频时,辅助相机的输出被映射到主相机的规范空间。为了清楚说明起见,将第一相机110a用作主相机,而将第二相机110b用作辅助相机。这意味着在这些示例中,具有更宽视场的相机被指定为主相机。虽然这在某些实施方式中是期望的,但是并不是必需的。该技术可以替选地与具有更窄视场的相机作为主相机一起使用。

通常,单应性变换是用于从一个相机空间转换到另一个相机空间的变换。标记AHB表示将点从相机空间B变换到相机空间A的单应变换。虚拟相机是指合成相机视图,诸如从其生成最终场景(传递给用户和/或记录在视频文件中)的虚拟相机。通常在整个视频的持续时间内使这种有效相机位置稳定(例如,在位置和定向上尽可能表现为固定),以提供尽可能多的时间和空间连续性。如本文所用,“主”相机是用于定义用于生成输出视频的参考帧的主要相机。主相机可以被定义为与虚拟相机在空间上共址,但是可以不是在时间上共址。在下面的大多数示例中,第一相机110a用作主相机。辅助相机与主相机配对。辅助相机被定义为在空间上远离虚拟相机,如果辅助相机是主导相机(leading camera),则辅助相机的输出将翘曲到虚拟相机空间。在下面的大多数示例中,第二相机110b用作辅助相机。“主导相机”是指当前打开用于视频捕获的相机,例如,当前图像数据用于生成保存的输出视频的相机。“跟随者相机”与主导相机配对。跟随者相机当前未打开或处于活动状态以用于视频捕获。然而,可以存在一个启动时间段,在该时间段中,跟随者相机在预期获得作为主导相机的状态下,在该相机的输出实际使用或保存在输出相机中之前开始捕获视频。规范相机是具有不会随时间而改变的固定固有参数的概念相机,例如,规范相机不受OIS或音圈电机(VCM)镜头移位(例如用于对焦)的操作影响。针对每个相机存在规范相机(和对应的图像空间),例如规范主相机空间和规范辅助相机空间。

这些参数取决于相机110a、110b中的哪一个用于捕获而导致两种不同的使用情况。如果主相机处于主导,则无需空间翘曲以在物理相机的空间之间映射图像数据。合成变焦和EIS处理可以仅仅与用于主相机的EIS 处理一起执行。另一方面,如果辅助相机处于主导,则系统将应用空间翘曲,以将输出映射到主相机的视角,以实现利用两个相机110a、110b的捕获之间的切换一致性。这将考虑改变对焦距离或对象距离的场景中的对焦的改变,以再次保持两个相机110a、110b的输出之间的一致性。

在记录时提供数字变焦的挑战之一是将EIS处理与数字变焦功能有效率结合,特别是对于使用多个相机的增量或连续变焦类型,如上文所述。在视频捕获期间,设备102可以利用EIS处理记录视频,该EIS处理被启用以获得一系列在时间上经稳定的的图像序列。设备102可以串接变焦功能和EIS功能的单应性,以实现这种效果。

EIS的单应性和使用多个相机的数字变焦的单应性服务不同目的。 EIS的单应性将图像数据从图像传感器的当前(例如,真实)输出帧(由下标“R”或“real”表示)变换到虚拟帧(由下标“V”或“virt”表示)。在下面的各种等式和表达式中,变量t(例如,小写t)是帧的时间戳,其通常与帧的中心扫描线的捕获时间相关。然而,因为在不同时间捕获不同扫描线,其他扫描线的时间戳可能不同。当提及个体扫描线的时间(例如,为了考虑可能不同于捕获帧的中心扫描线的主时间的时间)时,该时间用t

EIS单应性被表示为

H

在等式1中,R

在等式2中,f是焦距,o

用于变焦处理的单应性从一个相机110a的视图变换到另一个相机 110b的视图。例如,单应性从主相机110a的当前帧变换为辅助相机110b 的帧,标识为

s*P

假设欧几里得单应性变换将辅助相机(例如,远摄相机110b)图像上的点P

在该等式中,Ext(t)是非固有变换,它是取决于平面的深度的矩阵:

Ext(t)=(R

因此,组合被示出如下:

在等式4中,n

变量K

上述两个单应性分解可以概括为一系列操作:(1)从源相机取消投影, (2)从源相机变换到世界三维参考帧,(3)从世界变换到目标三维参考帧,(4) 重新投影回目标相机。这些被概括在下面的表1中,并且也参照图5A-5C 和图6来讨论。

表1

下一部分描述了用于以有效且计算上有效率的方式组合变焦单应性和EIS单应性的技术。可以使用的技术之一是将一台相机(通常具有最宽视场的相机)设置为主相机,并且相对于主相机映射处理输出。

当主相机(例如,宽相机110a)用于视频捕获时,项

H

项R

具体地,三个单应性变换为:

λ

其中,R

R

λ

在该表达式中,Ext(t)是非固有变换,它是取决于对象距离(例如,来自相机传感器的对焦平面的空间的深度)的矩阵:

Ext(t)=(R

其中n

λ

请注意,R

如果这三个单应性串接在一起,则获得最终单应性:

H

H

其中,中间项

对于当主相机处于主导时的情况,最终单应性简化为EIS处理的单应性。上述等式变为:

H

H

其是设置

H

H

H

根据以上部分,我们通常有两个等式:

当辅助相机处于主导时,等式为:

当主相机处于主导时,等式为:

从工程的角度来看,在EIS的实施方式期间,不存在辅助相机,因此所有虚拟相机都位于当前主导相机上,这意味着对于原始EIS流水线:

当主相机处于主导时:

H

当辅助相机处于主导时:

H

根据EIS的基本等式,其中,

Proj

Proj

项K

为了适应上述情况,系统可以有意保证主相机和辅助相机的视场在切换点相互匹配。该视场匹配通过硬件裁切有效率完成,在所有操作之前,其将视场从辅助相机扩缩到主相机,矩阵S用在以下等式中。

从软件方面来看,单应性的等式适用于:

H

最终应用的单应性可以是:

该变换将从规范辅助空间映射到标准化规范辅助空间,该标准化规范辅助空间与规范辅助具有相同视场(例如,规模)但是已经中和了由相机非固有因素引起的所有平移/旋转。

当考虑辅助相机(例如,远摄相机110b)的相机用于视频捕获时,存在用于转换或投影来自辅助相机的视图到来自主相机的视图上的一系列转换,以允许在使用不同相机110a、110b的捕获期间保持一致的图像特性。这些变换可以包括:(1)从源相机(例如,第二相机110b)取消投影,以移除相机特定效应,如OIS运动和滚动快门;(2)变换到规范参考帧例如三维世界;(3)从规范参考帧变换到主相机参考(例如,对准第一相机110a会捕获的帧),以及(4)从主相机110a的帧重新投影到应用了电子稳定的虚拟相机帧。基于变换的阶次,该技术可以利用首先矫正(rectification)或者首先稳定来执行,这导致不同的执行结果。图5A-5C示出用于将从第二相机110b 捕获的图像变换到与针对第一相机110a生成的经稳定的视图对齐且一致的经稳定的视图的不同技术。

图5A是图示首先执行矫正的多相机视频稳定的示例技术的示意图。该技术首先将视图从第二相机110b(例如,本示例中的远摄相机)矫正到第一相机110a(例如,本示例中的广角相机),然后应用稳定。该技术提供了 EIS单应性和主要的辅助到主单应性的简单串接表示的优势,这提高了处理视频馈送的效率。这在以下等式中示出:

H

通过附接K

H

H

H

图5B是图示首先执行稳定的多相机视频稳定的示例技术的示意图。此选项将图像从辅助相机帧稳定到经稳定的虚拟主相机帧,然后应用矫正将虚拟辅助相机帧投影到主相机帧。这种技术不如图5A的方法简单,然而,因为从辅助相机到主相机的变换在主相机帧坐标系中被定义。因此,为了进行相同变换,必须将经稳定的虚拟主照相机帧从虚拟辅助帧旋转回。这在以下等式中表示,其中“virt_main”是指主相机的虚拟帧(经稳定的),“virt_sec”是指辅助相机的虚拟帧(经稳定的),“real_main”是指主相机的真实帧(未经稳定的),“real_sec”指示辅助相机的真实帧。

通过串接这些项,结果是与图5A相同的整体变化。尽管存在不同的几何定义,但是对图像的整体影响是相同的。

H

H

H

H

图5C是图示首先矫正为规范相机的多相机视频稳定的示例技术的示意图。使用上述几何定义,通过将当前真实相机视图矫正为规范相机视图 (其中规范相机视图被定义为当前主导相机的虚拟相机但是具有固定 OIS_X(OIS=0,OIS_Y=0)和固定OIS_Y(VCM=300)),可以使实施方式更加有效率。

结果与图5A的第一情况中的等式相似。例如,这提供:

H

但是,在这种情况下,我们不是插入K

H

H

这种方法具有显著优势,因为系统无需同时查询辅助相机和主相机的元数据。

组合的单应性H

在以下等式中,某些变量是分别用于主相机和辅助相机的时间相关变量,其取决于当前OIS和VCM值。这些时间相关变量包括K

H

在上述等式中,项C

因此,唯一时间相关分量是D(t),这取决于对焦的对象距离,它可以是从相机到对焦平面的距离。因此,唯一需要的新元数据将是对象距离。

现在将讨论每条扫描线的校正。每扫描线校正可以包括使用另一个矩阵S(t

根据原始分解等式,添加每扫描线校正矩阵提供:

H

最终单应性可以通过添加规范位置和每扫描线项来确定:

H

H

在本例中,H

图6是示出可以用于有效率提供多相机视频稳定的示例变换的示意图。EIS和连续变焦的组合可以解释为三个单应性或变换的组合。

在该示例中,图像帧611表示如由第二相机110b捕获的图像帧。通过图中所表示的多个变换,图像数据被处理以移除视觉伪影(例如,滚动快门、OIS运动等),与第一相机110a的视场对齐的,并且使用上述EIS技术来稳定。为了便于说明,示出了单独的变换610、620、630,以及各种图像611至614。实施方式可以组合所讨论的操作和功能,而无需单独生成中间图像。

第一变换610对来自真实辅助相机110b(例如,远摄相机)的捕获图像 611进行操作,并且将图像611变换为规范第二相机图像612。变换610 对图像611的图像数据进行调整,使得规范第二相机图像612不包括OIS 运动,不包括滚动快门,包括固定焦距,以及具有在帧中心处的旋转。在一些实施方式中,第一变换610可以单独调整图像611的每个图像扫描线,以移除或减小第二相机110b在图像611的捕获过程中的移动、图像611 的捕获过程中的对焦距离的改变、OIS系统在图像611的捕获过程中的移动等的影响。该变换610被表示为

第二变换620是从规范第二相机图像612到规范第一相机图像613 的变换。这可以将图像数据维持在图像612的相同规范空间中,但将图像数据与主相机(例如,第一(例如,宽)相机110a)捕获的场景对齐。该变换 620可以校正第二相机110b和第一相机110a之间的空间差异。两个相机 110a、110b位于电话或其他设备上,两者之间存在空间偏移,且可能存在位置或方向上的其他差异。第二变换612可以校正这些差异,以将图像612 投影到第一相机110a的视场的相应部分。此外,相机110a、110b的视图之间的差异可以取决于当前对焦深度而变化。例如,相机110a、110b中的一个或两个可以经历取决于对焦距离来调节有效视场的对焦呼吸。第二变换620可以考虑这些差异,从而允许设备102使用对焦距离来微调图像612相对于主相机规范视场的对齐。通常,OIS位置的相同规范参数等被用于主相机和辅助相机的规范表示,但是如果存在差异,则可以使用第二变换620来校正这些参数。

第三变换620将EIS应用于图像613以产生经稳定的图像614。例如,该变换620可以将图像数据从规范主相机视图变换到平滑或滤波相机位置的虚拟相机视图。例如,该变换630可以是上文中关于图3所讨论的第二投影,其中虚拟相机位置随着时间的推移被滤波,使用帧之间的位置的改变,由于模糊而可能允许移动,考虑到平移对照意外移动的可能性,执行适应未来运动或调整以填充输出帧等等。EIS处理可以使用当前正在处理的帧以及前一帧的窗口和未来帧的窗口来执行。自然,EIS处理可以比图像捕获时序滞后,以收集用于处理所需的“未来帧”。

如上所述,可以组合或集成变换610、620、630以提高效率,并且不需要生成中间图像612和613。相反,设备102可以确定适当的变换610、 620、630,并且直接生成经稳定的图像614,其与使用第一相机110a所捕获的图像生成的经稳定的图像数据对齐且一致。

图6的示例示出从第二相机110b的视频帧到第一相机110a的经稳定的空间的变换,该变换当变焦级别对应于这样的视场时使用:该视场与第二相机110b的视场相同或小于第二相机110b的视场。当使用第一相机 110a时,例如当视场大于第二相机110b的视场时,仅需要两次变换。与第一变换610类似,应用变换以从捕获图像中移除时间相关影响,例如针对视频帧的不同扫描线而改变的条件。与变换610一样,这也补偿了滚动快门、OIS位置等。然而,变换将图像数据直接投影到主相机(例如,相机 110a)的规范相机空间。从用于主相机的规范相机空间,只需要EIS变换,例如变换630。因此,当使用主相机来捕获图像数据时,无需关联两个相机110a、110b的空间属性,因为整体图像捕获和EIS处理在主相机的参考帧中(例如,从主相机的规范的非时间相关的参考帧)一致地完成。

图6的处理示出了可以用于将第二相机110b的输出变换或映射到第一相机110a的经稳定的输出的各种过程。这在视频捕获和记录期间在使用由不同相机110a、110b所捕获的视频之间转换时在视图中提供了一致性。例如,来自第二相机110b的视频与来自第一相机110a的视频对齐,不仅将视场定位在正确的位置,而且匹配EIS属性。结果,在EIS活动的情况下,可以进行在图像捕获期间进行相机之间的切换(例如,由于高于或低于阈值变焦级别的数字变焦),其中视频馈送以最小化或避免以下的方式进行匹配:颠簸、突然图像移位或视图的移位以及在相机110a、110b之间的转换点处的明显视频平滑度的移位(例如,EIS应用的改变)。该技术的另一个优点是,可以使用来自相机110a的视频而无需任何调整或处理,以与第二相机110b保持一致。仅调整第二相机110b的输出,该输出与第一相机110a的视图和特征一致对齐。

在视频捕获期间,设备102还可以调整视频捕获设置,以更好地匹配使用不同相机110a、110b捕获的视频的属性。例如,当从使用第一相机 110a的捕获转换到使用第二相机110b的捕获时,设备102可以确定紧接在转换之前正在用于第一相机110a的属性,例如对焦距离、OIS参数(例如,是否启用OIS、所应用的OIS的强度或级别等)、曝光设置(例如,ISO、传感器灵敏度、增益、帧捕获时间或快门速度等)等。然后,设备102可以使第二相机110b具有这些设置或提供类似结果的设置,以用于第二相机 110b的捕获。

这可以涉及在将来自第二相机110b的视频包括在记录的视频中的转换之前进行设置改变。例如,为了提供在操作中进行调整的时间,设备102 可以检测到相机切换是合适的或需要的,并且作为响应,确定第一相机 110a的当前设置,并且指示第二相机110b开始使用与第一相机110a所使用的设置等效的设置。这可以提供用于以下的足够时间:例如打开第二相机110b的电源,接合并且实现第二相机110b的OIS系统的稳定,调整第二相机110b的曝光以匹配第一相机110a的曝光,设置第二相机110b的对焦位置以匹配第一相机110a的对焦位置等。一旦第二相机110b正在以适当的模式操作,例如,视频捕获参数与第一相机110a的视频捕获参数一致,设备102从使用第一相机110a切换到使用第二相机110b进行视频捕获。以类似方式,设备102在从第二相机110b转换到第一相机110a时可以确定第二相机110b所使用的视频捕获参数值,并且可以在进行转换之前设置用于第一相机110a的相应视频捕获参数值。

已经描述了许多实施方式。然而,应当理解的是,在不脱离本公开的精神和范围的情况下,可以进行各种修改。例如,可以使用上面所示的各种形式的流,并且重新排序、添加或移除步骤。作为另一示例修改,尽管以上描述主要描述了图像数据的处理在由第一相机和/或第二相机捕获视频时执行,但是应当理解的是,在一些实施方式中,对用于第二相机的第二规范参考空间进行第一变换、从第二规范参考空间到用于第一相机的第一规范参考空间的第二变换、以及在用于第一相机的第一规范参考空间将电子图像稳定应用于图像数据的第三转换可以在稍后时间(例如当不再捕获视频时)(由设备102或其他例如远程设备)应用。

本说明书中描述的本发明的实施例和所有功能操作可以以数字电子电路或以计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)或者以它们中的一个或多个的组合来实现。本发明的实施例可以被实现为一个或多个计算机程序产品,例如,在计算机可读介质上编码的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组成或者它们中的一种或多种的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,装置还可以包括创建用于所讨论的计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如机器生成的电、光或电磁信号,其被生成以对信息进行编码,以便传输至合适的接收器装置。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且它可以以任何形式部署,包括作为独立程序或作为适合在计算环境中使用的模块、组件、子例程或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保持其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分、专用于所讨论的程序的单个文件中或多个协作文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以部署在一台计算机上执行,也可以部署在位于一个站点或分布在多个站点并且由通信网络互连的多台计算机上执行。

本说明书描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过操作输入数据和生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路执行,装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

例如,适用于执行计算机程序的处理器包括通用和专用微处理器以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁性光盘、磁光盘或光盘)或可操作地耦合以从其接收数据或向其传输数据或者这两者。然而,计算机不需要具有这些设备。此外,计算机可以嵌入另一设备,例如平板计算机、移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器,仅举几例。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和 DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入。

为了提供与用户的交互,本发明的实施例可以在具有显示设备(例如, CRT(阴极射线管)或LCD(液晶显示器)监视器)的计算机上实现,用于向用户显示信息;以及键盘和指示设备(例如,鼠标或轨迹球),用户可以通过该设备向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。

本发明的实施例可以被实现在计算系统中,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有图形用户界面或Web浏览器的客户端计算机的前端组件,用户可以通过该图形用户界面或Web浏览器与本发明的实施方式交互,或者包括一个或多个这样的后端组件、中间件组件或前端组件的任意组合。系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,通常通过通信网络进行交互。客户端和服务器之间的关系依靠在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

虽然本说明书包含许多细节,但这些不应解释为对本发明范围或所要求保护的内容的限制,而应解释为对本发明特定实施例的特征的描述。本文中在单独实施例中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例中描述的各种特征也可以在多个实施例中单独实现,或者以任何合适的子组合实现。此外,尽管上述特征可以描述为以某些组合起作用,甚至最初如此要求保护,但在某些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描述了操作,但这不应理解为要求以所示的特定顺序或以连续顺序执行这样的操作,或者要求执行所示出的操作才能达到期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者封装到多个软件产品内。

已经描述了本发明的特定实施例。其他实施例也在以下权利要求的范围内。例如,权利要求书中记载的步骤可以按照不同的顺序执行,仍然达到期望的结果。

技术分类

06120114692236