发明详细说明
下面关于本发明的实施例在总体上描述使用两个不同稳定化路径来提供图像序列的稳定性的方法和设备。稳定化路径之一能使用图像序列的快速数字稳定化的方法,它使用中等的处理资源。数字稳定化作用于已获取的尺寸过大的图像帧的序列。确定在图像帧之间的全局运动的估值。运动估值被加以分析,以便确定哪一部分运动例如由于拍摄全景的运动因而是需要的,以及哪一部分运动是非故意的抖动。每个图像帧用预定尺寸的窗口被加以修剪。如必要的话,窗口相对于每个尺寸过大的图像帧的位置被调节,以便补偿计算出的抖动。
下面的某些部分是藉助于对计算机存储器内数据比特的算法和操作的符号表示给出的。这些算法描述和表示由熟悉数据处理技术领域的技术人员用来把他们的工作的实质最有效地传达给本领域技术人员。算法在这里一般地被设想为一个导致所需结果的自协调操作序列。这些操作是需要物理地操控物理量的那些操作。通常(但并非是必须),这些 量采取能够被存储、转移、组合、比较和在另外的情况下***控的电或磁信号的形式。为了方便起见,这些信号在这里有时涉及到关于使用诸如比特、数值、单元、符号、字符、术语、数目等等的对象的基础信息。
然而,应当记住,所有的这些和类似的术语与适当的物理量有关并且它们仅仅是应用于这些量的方便的标签。除非专门阐述,如从以下的讨论中看到的,将会看到,在所有的说明中,诸如“处理”或“计算”或“运算”或“确定”或“形成”或类似的术语被使用来指计算机***或类似的数据处理设备的动作和处理,它们把被表示为计算机***的寄存器和存储器内的物理(例如电子)量的数据操控和变换为被类似地表示为计算机***存储器或寄存器或其它这样的信息存储、传输或显示装置内的物理量的其它数据。
这里的特定的实施例是照相机。该方法还可以使用其它***来执行。在这两种情形下,***都可包括用于执行这里描述的操作的设备的特定的部件。诸如照相机或可编程计算机那样的设备可以按所需要的用途专门制造,或可包括由存储的计算机程度有选择地驱动或重新配置的通用***。
这里给出的方法不限于任何特定的计算机或照相机或其它设备。各种通用***可以按照这里的教导通过程序被使用,或构建用来执行该方法的更专用的设备可以被证明是方便的。用于各种各样的这些***的结构从以下的说明中看到。另外,本发明不是对于任何特定的编程语言描述的。将会看到,各种各样的编程语言可被用来实施如这里描述的本发明的教导。
在下面的说明中,本发明的某些实施例将作为软件程序描述。本领域技术人员将容易看到,这样的软件的等同物也可以以硬件来构建。因为图像处理算法和***是熟知的,本发明特别地针对形成按照本发明的方法的一部分或更直接地与其合作的算法和***。这里没有具体地显示和描述的用于产生或者处理这里牵涉到的图像信号的这样的算法和***以及硬件和/或软件的其它方面可以从在技术上已知的这样的***、算法、部件和元件中进行选择。在给出如在下面的说明中阐述的说明后,它的所有的软件实施方案是常规的,和处在本领域的普通技求范围之内。
用于执行本发明的方法的计算机程序可以存储在计算机可读的存 储媒体中。这个媒体可包括例如磁存储媒体,诸如磁盘(诸如硬盘驱动器或软盘驱动器)或磁带;光存储媒体,诸如光盘、光带,或机器可读的条形码;固态电子存储装置,诸如随机存取存储器(RAM)、或只读存储器(ROM);或被利用来存储计算机程序的任何其它物理装置或媒体。用于执行本发明的方法的计算机程序还可被存储在藉助于本地或远端的网络或其它通信媒体而连接到图像处理器的计算机可读的存储媒体。本领域技术人员将容易看到,这样的计算机程序产品的等同物也可以以被称为专用集成电路(ASIC)的硬件或固件来建造。ASIC可以被设计在单个硅片上以执行本发明的方法。ASIC可包括执行逻辑的电路、微处理器、和对于执行本发明的方法所必须的存储器。对于本发明也可以设想和利用多个ASIC。
计算机或机器可读的媒体包括用于存储或发送可由机器(例如计算机)读出的形式的信息的任何项目。例如,机器可读的媒体包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储媒体;光学存储媒体;闪存装置;光学的、声学的、或其它形式传播的信号(例如,载波、红外信号、数字信号等等);等等。
本发明的实施例可以在计算机硬件和计算机化的设备,诸如数码照相机、数字扫描仪,和在个人计算机上实施。参照图14,图上显示用于实施本发明的计算机***110。本发明不限于所显示的计算机***。本发明的实施例可被使用于诸如在数码照相机、家庭计算机、自动售货机、零售或批发照相冲洗、或用于处理数字图像的任何其它***中能找到的任何电子处理***。计算机***110包括基于微处理器的单元112,它用于接收和处理软件程序和用于执行其它处理功能。显示器114被电连接到基于微处理器的单元112,以用于例如藉助于图形用户接口显示与用户有关的与软件相关联的信息。键盘116也被连接到基于微处理器的单元112,以用于让用户向软件输入信息。作为使用键盘116进行输入的替换例,鼠标118可被用来在显示器114上移动选择器120和用于选择由选择器120覆盖的项目,正如在技术上熟知的。
典型地包括软件程序的光盘只读存储器(CD-ROM)124或其它便携式存储器媒体被***到基于微处理器的单元,以用于提供把软件程序和其它信息输入给基于微处理器的单元112的装置。同样地,软盘126也可以包括软件程序,并且它被***到基于微处理器的单元112,以用 于输入软件程序。光盘只读存储器(CD-ROM)124或软盘126可以替换地***被连接到基于微处理器的单元112的外部设置的盘驱动单元122。而且,正如技术上熟知的,基于微处理器的单元112可被编程,以用于内部地存储软件程序。基于微处理器的单元112还可以具有网络连接127,诸如电话线,以便连接到外部网络,诸如局域网或互联网。打印机128也可以被连接到基于微处理器的单元112,以用于打印来自计算机***110的输出的硬拷贝。
图像也可以经由个人计算机卡(PC卡)130或其它存储卡或类似物而在显示器114上被显示,它含有在卡130上以电子方式体现的数字化图像。卡130最终被***到基于微处理器的单元112以允许图像在显示器114上可视地显示。替换地,卡130可被***到被连接到基于微处理器的单元112的外部设置的读卡器132。图像序列也可以经由光盘123、软盘126或网络连接127被输入。被存储在卡130、软盘126或紧凑盘124或通过网络连接127输入的任何图像序列可以从各种各样的源,诸如数码照相机(未示出)或扫描仪(未示出)得到。图像序列也可以直接从数码照相机134经由被连接到基于微处理器的单元112的一个照相机对接端口136输入,或直接从数码照相机134经由到基于微处理器的单元112的电缆连接138或经由到基于微处理器的单元112的无线连接140输入。
输出设备可以提供经过变换的最后的图像。输出设备可以是打印机或提供最后图像硬拷贝的其它输出设备。输出设备也可以是以数字文件提供最后的图像的输出设备。输出设备还可包括输出的组合,诸如打印的图像和在诸如CD或DVD的存储器单元上的数字文件。
本发明可用于产生数字图像的多种获取设备。例如,图14可以代表照相冲印***,其中图像获取设备是传统的用于获取在彩色负片或翻转片上的场景的照相胶卷照相机,和用于对胶片上冲洗出的图像进行扫描并产生数字图像的扫描仪。获取设备也可以是具有诸如电荷耦合器件或CMOS成像器那样的电子成像器的电子获取单元(未示出)。电子获取单元可以具有模拟-数字变换器/放大器,它接收来自电子成像器的信号、把信号放大和变换成数字形式、和把图像信号发送到基于微处理器的单元112。
基于微处理器的单元112提供用于处理数字图像以便在预期的输出 设备或媒体上产生美观的图像的装置。本发明可用于各种各样输出设备,可包括(但不限于)数字照片打印机和软拷贝显示器。基于微处理器的单元112可用来处理数字图像,以便对于数字图像的整体亮度、色调、图像结构等等进行调整,使得由图像输出设备产生美观的图像。本领域技术人员将会看到,本发明不限于刚才提到的这些图像处理功能。
数字图像包括一个或多个数字图像信道或彩色分量。每个数字图像信道是二维像素阵列。每个像素值与由相应于像素的物理区域的成像获取设备接收的光的量相关。对于彩色成像应用,数字图像通常由红色、绿色和蓝色数字图像信道组成。运动成像应用可被看作为数字图像序列。本领域技术人员将会看到,本发明可被应用于(但不限于)这里提到的任何应用的数字图像信道。虽然数字图像信道被描述为按行和列排列的像素值的二维阵列,但本领域技术人员将会看到,本发明可适用于非直线组成的阵列而具有相等效果。本领域技术人员还将会认识到,对于数字图像处理,这里在下面描述的用处理过的像素值代替原先的像素值的步骤在功能上等同于描述与用处理过的像素值生成新的数字图像而同时保持原先的像素值的相同的处理步骤。
图14所示的通用控制计算机可以存储本发明的某些实施例作为计算机程序产品,该产品具有存储在计算机可读的存储媒体中的程序,这个媒体可包括:例如,磁存储媒体,诸如磁盘(诸如软盘)或磁带;光学存储媒体,诸如光盘、光带或机器可读的条形码;固态电子存储装置,诸如随机存取存储器(RAM)、或只读存储器(ROM)。本发明的相关的计算机程序实施方案也可以存储在用来存储由离线存储器装置表示的计算机程序的任何其它物理设备或媒体。本发明的计算机程序产品可以在诸如个人计算机那样的任何熟知的计算机***上被利用。
本发明的实施例可以以软件和/或硬件的组合来实施,并且不限于物理地连接的和/或位于同一个物理位置内的设备。例如,图14所示的一个或多个设备或设备的部件可以位于远端和可以经由网络被连接。一个或多个设备或设备的部件可以无线连接,诸如通过射频链路,或直接地或经由网络。
将会看到,所显示和所描述的电路可以以本领域技术人员熟知的各种方式来修改。还将会看到,这里藉助于物理电路描述的各种特性替换地可以作为固件或软件功能或二者的组合来提供。
本发明的实施例可以在各种各样用户范围和环境下被利用。示例性范围和环境包括(但不限于):批发数字照相冲印;零售数字照相冲印台式机软件(把算法应用到数字图像的软件);数字实施(在媒体中-来自媒体的或通过web的数字图像、具有在媒体上的数字-非数字形式、通过web的数字形式、或其它形式的数字处理);自动售货亭;移动设备;和作为经由局域网或大区域网络(诸如互联网)提供的服务。
图像获取和稳定化可以是在同一个设备或部件或分开的设备或部件中。例如,图像获取和稳定化可以都是在蜂窝电话或其它移动终端中。类似地,图像获取和显示路径稳定化可以是在蜂窝电话中,以及归档稳定化可在电话/数据网中的某些地方提供,或在成像服务供应商处提供。
无论如何,本发明可以是独立的,或可以是较大的***解决方案的一个部分。而且,人的接口,例如扫描或输入,数字处理,向用户的显示(如果需要的话),用户请求或处理指令的输入(如果需要的话),输出,它们每个可以是在相同的或不同的设备和物理位置,以及在设备和位置之间的通信可以是经由公共或专用网络连接,或基于媒体的通信。在遵从本发明的上述的公开内容的场合下,本发明的方法可以是全自动的,可以具有用户输入(是全部或部分手动的),可以让用户或运营商来观察以便接受/拒绝结果,或可以由元数据予以协助(元数据可以是用户提供的,由(例如在照相机中的)测量设备提供的,或由算法确定的)。此外,算法可以与各种各样工作流程用户接口方案对接。
本发明在这里总的是对数字视频摄像机中获取的图像序列的稳定化方面描述的。这是为了方便。同样的考虑可应用到其它实施例,诸如由移动多媒体通信设备获取的或从胶片序列扫描出的图像序列。
本发明对这里描述的实施例的组合是包容性的。说法“一个特定的实施例”及类似方式是指在本发明的至少一个实施例中存在的特征。分开的说法“实施例”或“特定的一些实施例”或类似方式不一定是指同一个或一些实施例;然而,这样的实施例不是互相排斥的,除非是这样表示的,或对本领域技术人员而言是很明显的。
双路径稳定化
现在参照图1-4,在特定的实施例中,图像序列使用两个不同的稳定化路径进行稳定化。一条稳定化路径(此后称“归档路径”)终结在第 二经稳定的图像序列的存储器中。另一条稳定化路径(此后称“显示路径”)终结在第一经稳定的图像序列的显示器上,例如在图像序列获取期间在照相机的背面的液晶显示器(LCD)上。两条路径的稳定化程序过程是不同的,并且取决于输入,其最终得到的经稳定的图像序列也是不同的。以下说明总体上是针对那些其中两条路径都使用数字稳定化的实施例。作为替换例,两条路径或任一条路径都可以利用一个或多个其它类型的图像稳定化,诸如光学稳定化。例如,在光学稳定化中,旋转棱镜透镜可用来通过调节入射在图像传感器上的光而补偿抖动。最终得到的经稳定的序列被复制。一个拷贝被直接使用。另一个拷贝还通过数字稳定化被进一步稳定。在归档路径上,几个图像帧可被缓存,以及对于一个给定的帧,根据以前的、当前的和将来的帧计算出的运动估值可连同已知的透镜调节一起被分析,以便确定是否可以通过对要被编码的传感器数据附加偏移而改进其稳定化。同样地,除了初始的电子稳定化步骤以外,第二稳定化路径可用来提供附加的稳定化校正。
对于在两条路径上的数字稳定化,优选地,每条路径所提供的稳定化与另一条路径所提供的稳定化是完全无关的。这给每条路径用于它预期的不同用途的最佳化提供了自由:对于速度和低计算要求的显示路径;对于质量的归档路径。
以下的说明总体上针对下列实施例,其中两条稳定化路径被提供在数字视频照相机或配备有照相机的便携式设备(诸如移动多媒体通信设备)中。双路径稳定化对于(但不限于)这种自身包含的便携式设备是特别有利的。例如,显示路径可以在便携式设备中被提供,而归档路径可以在经由有线或无线网与便携式设备通信的另一个设备中自动地提供。
现在参照图1,在该方法的实施例中,获取(14)输入数字图像12的序列10,并且产生(15)归档图像20和显示图像22的相应的序列16,18。归档图像序列16是自动稳定(24)的以提供经稳定的归档图像序列26。显示图像序列18被不同地自动稳定(28)以提供经稳定的显示图像序列30。经稳定的归档图像序列26被编码器32编码,然后存储在存储器34。经稳定的显示图像序列30在照相机38的照相机显示器36上显示。在显示后,经稳定的显示图像序列30的图像被丢弃(40)。
显示图像序列的稳定化比起归档图像序列的稳定化更快速。显示图 像序列的稳定化比起归档图像序列的稳定化更精确。两条稳定化路径可以共享其特性,但这不是优选的。优选地,归档路径与对显示路径所施加的时间约束条件是无关的,而显示路径与对归档路径所施加的质量约束条件是无关的。
在使用照相机时,最好是显示图像序列稳定化能足够快,以便与获取同时即实时地或接近实时地提供稳定化的图像序列。在某些实施例中,显示图像序列稳定化所用的处理时间短于或等于图像获取的帧速率。比这个时间更长的时间会在呈现稳定化的显示图像时产生累积的延时,对于用户这成为可觉察的,于是随着在图像序列获取期间增加的延时而越来越讨厌。
在获取期间显示经稳定的显示图像序列的限制在于,未来的图像帧用于稳定化时是不可用的,因为这些帧还没有获取。这在把经稳定的显示图像序列提供给摄影者以便在图像序列获取期间对准照相机时使用的实施例中,在稳定序列的每个帧时,限制了显示图像序列稳定化在这样的实施例中使用过去的和当前的帧。
双路径稳定化在任何***中是有用的,在其中提供快速但相对较不精确的图像序列稳定化以及较慢但更精确的稳定化是有利的。例如,计算机程序可以在较慢而较高的质量归档图像序列稳定化之前和/或期间显示稳定化结果的快速估值。在这样的非获取实施例中,在其中要把各个帧用于稳定化的那些路径之间可能有区别也可能没有区别。
第二稳定化路径在稳定化的图像序列的存储器中结束。为了节省存储器,可以提供压缩。对第二稳定化路径没有严格的时间约束条件。因此,用于压缩的编码例行程序的效率和存储与检索的方式是方便的事情。第二稳定化不需要与时间严格相关的操作,不需要在获取期间在取景器或在照相机显示器上显示。
两条稳定化路径可以共享特性,但这不是优选的。优选地,归档路径是与对显示路径所施加的时间约束条件无关的,而显示路径是与对归档路径所施加的质量约束条件无关的。在归档路径上,对于给定帧的照相机抖动是根据来自过去的、当前的和未来的帧的运动估值计算的。表示经稳定的图像的传感器图像数据的区域被偏移以便补偿计算的抖动。在第二稳定化路径上的经稳定的区域在某些情形下不同于在第一稳定化路径上对于显示所选择的经稳定的区域,这取决于抖动和故意的照 相机运动这两者。
对于归档图像序列的稳定化可用的较长的时间将允许有更高的精度。在特定实施例中,归档图像稳定化既要向前看又要向后看,而显示图像稳定化仅仅是向后看。由于稳定化的这种差别的结果,经稳定的显示图像序列不能精确地和经稳定的归档图像序列匹配。例如,经稳定的显示图像序列可能在拍摄全景开始时相对于经稳定的归档图像序列出现某些跳动。虽然这个差别对于某些用户,诸如专业照相机操作员和熟练的业余爱好者,可能是不舒服的,但预期大多数用户不在乎这种差别。
在经稳定的显示图像序列中每个图像在它显示后被丢弃,除非有可能要重复进行显示。经稳定的显示图像序列的重复显示仅仅是在经稳定的归档图像序列是不可用时才需要的。这是不太可能的,除非归档图像序列稳定化是非常慢或经稳定的归档图像序列由于逻辑约束条件而是不可用的。在显示了经稳定的显示图像序列后(并且最可能被丢弃),归档的图像成为可用于显示或其它用途。丢弃可包括擦除文件内容,但对于通常的计算机***,可以限于文件名称的改变等等,这允许用新的数据进行重写。
在照相机中,图像序列的两种稳定化可以在同一个时间开始。归档图像序列的图像帧可以根据可用的存储器而被缓存。替换地,归档图像序列的图像帧都可以存储在存储器中,并且归档图像序列的稳定化可被延时,直至有更多计算资源是可利用为止。例如,归档图像序列稳定化可被延时,直至某些或所有的经稳定的显示图像序列图像已被显示,或已被显示并丢弃为止。无论如何,特别优选的是归档图像序列的稳定化自动跟随在显示图像序列的稳定化后面。否则,会有这样的风险,即可能遗漏归档图像序列的稳定化和最终得到的归档图像序列不能满足用户的预期。
图像帧通过相对于获取的尺寸过大的图像移动输出窗口而得到稳定。在每条稳定化路径上,修剪可能是不可逆的,因为修剪过的图像部分不能在该路径上再次使用。这对每条路径上相对于原先的尺寸过大的图像序列的拷贝的尺寸而言降低了存储要求。在显示路径上的图像帧还可以被子采样以达到对于预期的显示所需要的分辨率。这进一步降低了存储要求。如果图像帧在稳定化之前被子采样,则还会降低对稳定化的 处理要求。
图2显示数码照相机38的实施例。照相机38具有机身42,其上有电子图像获取单元44。机身42提供对其它部件的结构支撑和保护。照相机38的机身42可以改变,以满足特定的使用和式样考虑的要求。电子图像获取单元44具有安装在机身42上的电子阵列成像器46。照相机38具有安装在机身38上的一个或多个透镜单元49的拍摄镜头单元48。拍摄镜头单元48由虚线和两组透镜单元49所显示。将会看到,这是说明性的,而不是限制。
再次参照图2的实施例,拍摄镜头单元48是电动的变焦透镜,其中移动单元由变焦驱动器50相对于静止单元而被驱动。图2的实施例的拍摄镜头单元48还是自动聚焦的。自动聚焦***52具有传感器53,它把信号发送到测距器54,然后测距器操作聚焦驱动器55以移动拍摄镜头单元48的一个或多个可聚焦单元(未分开地示出)。自动聚焦可以是被动的、主动的、或二者的组合。拍摄镜头单元48也可以是简单的,诸如具有单独的聚焦长度和手动聚焦或固定的焦点。也可以替代地或与光学变焦组合地使用数字变焦(数字图像的放大等价于光学变焦)。
快门56阻挡到成像器46的光路。在光路上也可以提供膜片/孔径片58等等。快门56可以在打开状态与闭合状态之间切换。术语“快门”在广义上用来指物理的和/或逻辑的单元,它们提供如下功能:让光沿着光路通过而到达胶卷或用于图像获取的成像器,并且在其它时间则禁止通过。“快门”包括允许成像操作启动和停止的电子阵列成像器的计算机软件和硬件特征。
成像器46接收光图像(对象图像)和把光图像变换成模拟电信号即电子图像,它是图像序列的一个帧。电子成像器46由成像器驱动器60操作。在复制和处理后,电子图像最终被发送到由图像显示驱动器62操作的图像显示器36,并且也被发送到存储器34。
现在参照图2-4,照相机38具有控制单元64,它包括具有适当配置的微计算机形式的图像处理器/控制器66,诸如用于数据处理和执行通用程序的RAM的嵌入式微处理器。控制单元64控制照相机的其它部件和执行图像处理功能。图2所示的控制单元64包括控制器66、模拟-数字(A/D)转换器68、视频编码器32、复制器(未示出)、以及第一和 第二稳定器70,72。控制单元64在工作中连接到缓存器存储器74。用于控制单元和其它部件的合适的硬件和软件是本领域技术人员已知的,并可被修改以提供这里讨论的特征。控制单元可被提供为单个部件或作为在分布的位置上等价功能的多个部件。同样的考虑适用于处理器和其它部件。同样,这里显示为分开单元的部件在某些实施例中可以方便地组合或共享。
控制单元还提供数字处理,它对供给显示器的验证图像进行校准。校准可包括对电子图像的变换以适应不同部件的特性差别。例如,可以提供一种变换,这种变换根据显示器和成像器和电子获取单元的其它部件的灰度、色域、和白点修改每个图像以适应不同的能力。校准涉及到部件特性,因此对不同的图像是不变的。电子图像也可以与其它数字照相机相同的方式被修改以增强图像,诸如边缘增强。校准和其它图像处理可以在复制之前或之后进行,并且在两条路径上可以是不同的。例如,处理和校准在精度和所提供的功能这两方面都可受到限制以减小在显示路径上的处理时间;而更精确的和完全的校准和处理可以在归档路径上被提供。在归档路径上的数字处理还可包括涉及文件传送的修改,诸如,JPEG压缩,和文件格式化。
控制单元在工作时连接到存储器。“存储器”涉及到在半导体存储器或磁存储器等等中提供的物理存储器的一个或多个适当大小的逻辑单元。例如,存储器可以是内部存储器,诸如闪存EPROM存储器,或替换地,可移动的存储器,诸如紧凑闪存卡,或它们的以任何形式的组合。控制单元64可以由存储在用于图像存储装置的相同的物理存储器中的软件所控制,或如图2所示,分开的存储器可被提供用于图像存储和缓存器,以及固件可被存储在专用存储器73,例如,在ROM或EPROM固件存储器。
可以使用各种类型的图像显示器36。例如,显示器可以是液晶显示器(“LCD”),或有机电致发光显示器(“OELD”;也称为有机发光显示器“OLED”)。图像显示器36可以通过启动用于图像获取的照相机触发器75或通过开关(未分开地示出)而根据需要工作,图像显示器36可以由定时器或通过释放照相机触发器75而被关断。显示器36安装在机身42的背面或顶部,或在取景器(未示出)的内部,以便在拍摄照相期间易于由拍摄者观看。一个或多个信息显示器(未示出)也可以被 提供在机身上,向拍摄者提供照相机信息,或这个信息可例如作为图像上的重叠物而被提供在图像显示器上。
优选地,成像器获取和图像显示器显示经稳定的图像帧的、与由归档图像序列所提供的基本上相同的几何范围。为此,优选地,显示器显示从85到100%的经稳定的图像帧,或更优选地,从95到100%的经稳定的图像帧。
初始电子图像由模拟-数字(A/D)转换器和放大器放大和转换成数字电子图像,它然后在图像处理器66中被复制、处理,并被显示和存储在图像存储器34。由数据总线76表示的信号线以电子方式连接到成像器46、控制单元64、显示器36、和其它电子部件。控制单元64包括定时生成器(未示出),它提供定时关系的用于对所有电子部件的控制信号。各个不同的照相机的校准值存储在校准存储器(未示出)诸如EEPROM中,并提供给控制单元。控制器操作驱动器和存储器,包括变焦驱动器50、聚焦驱动器55、孔径驱动器78、和快门驱动器80。照相机38利用触发器75和其它用户控制装置82来操作。可以提供环境传感器84和环境传感器驱动器86(由虚线表示),作为分开的部件或作为获取单元44的一部分以用于确定曝光条件。
将会看到,所显示和描述的电路可以以本领域技术人员熟知的各种不同的方式被修改。还将会看到,这里在物理电路方面描述的各种特征替换地可以被提供为固件或软件功能或二者的组合。同样地,这里被显示为分开的单元的部件在某些实施例中可以方便地组合或被共享。
成像器包括与图像的图像单元相对应的照相格点(photosite)的二维阵列,这些照相格点一起去获取一个图像。滤色器阵列位于照相格点上,使得电子图像获取单元获取多色图像。当前优选的是单个成像器连同三色滤色器一起使用,然而,可以使用不同的滤色器阵列,正如也可以使用多个单色成像器,每个具有不同的一种颜色的滤色器。适合的彩色滤色器阵列是本领域技术人员熟知的。彩色滤色器阵列在某些情形下与成像器合并而提供一个整体部件。
现在参照一个特定的实施例,线性的红色、绿色、和蓝色(RGB)图像数据从成像器被获取。该数据可以是完全的RGB图像,或它可以是来自Bayer模式彩色滤色器阵列的图像数据的红色、绿色、和蓝色层面(plane)。正如在共同指定的美国专利No.3,971,065中描述的,在Bayer 几何彩色滤色器阵列的情况下,每种彩色覆盖成像器的照相格点或图像单元(像素)。
图像传感器被暴露在图像光下,使得在各个照相格点处生成模拟图像电荷信息。电荷信息被施加到输出二极管,后者把电荷信息变换成相应于各个图像单元的模拟图像信号。模拟图像信号被施加到A/D转换器,A/D转换器根据每个图像单元的模拟图像信号生成数字图像信号。
数字图像信号被复制。在复制之前或之后,数字图像信号被输入到处理器,处理器可以应用适当的图像处理算法,诸如白平衡、插值、彩色校正、自聚焦、和传感器缺陷纠正。提供了图像稳定化,并把输出的图像序列发送到显示器和存储器。后者可以首先被发送到视频编码器,以便通过使用例如MPEG或H.263压缩标准进行编码。编码的视频流然后被存储在存储器中。
稳定化方法可以通过使用来自图像的一个或多个信道的图像数据而执行。优选地,用于稳定化的图像数据包括来自所有的彩色信道的信息。在特定实施例中,图像是根据所有的所述彩色信道的组合或根据亮度值而被稳定的。
图像稳定化由对显示图像序列起作用的第一稳定器和对归档图像序列起作用的第二稳定器提供。使用过大尺寸的成像器获取的和然后被复制的图像的序列被修剪成两个不同输出图像序列所需要的尺寸。在这两种情形下,输出窗口都规定了要被修剪的区域。输出窗口在过大尺寸的成像器所获取的原始图像的极限范围内移动以便补偿抖动。第一稳定器确定在当前的帧中存在的不需要的照相机运动,并生成经稳定的图像作为输出,该图像被发送到显示器。归档的图像序列的图像首先被发送到图像缓存器。第二稳定器确定在缓存的帧中存在的不需要的照相机运动,这个缓存的图像被视频编码器编码,并最后被存储在存储器中。
获取的图像可被变换到不同的彩色空间然后再稳定化。例如,图3显示一个实施例,其中使用第一和第二稳定器的稳定化是在把由成像器获取的彩色滤色器阵列(CFA)数据变换到YCbCr或RGB彩色空间之后而执行的。稳定器可以作用在多色图像数据,或一个或两个稳定器可以分别作用在图像数据的Y分量或G分量。
获取的图像可以立即被稳定。稳定化可以利用成像器获取的彩色滤色器阵列(CFA)数据或该CFA数据的一个或多个分量而进行工作。例 如,图4显示一个实施例,其中稳定化是使用第一和第二稳定器对成像器所获取的彩色滤色器阵列(CFA)数据执行的。彩色滤色器阵列数据的例子是在美国专利No.3,971,065中描述的来自熟知的Bayer模式阵列的数据。CFA数据的使用减小处理要求,因为输出图像序列小于输入图像序列,该输出图像序列此后被变换成不同的彩色空间。在Bayer模式CFA数据中,每个像素位置包含一个彩色信道的数据:红色、绿色、蓝色。稳定器可以作用在多彩色图像数据上,或一个或两个稳定器可以作用在图像数据的绿色分量上。
两个稳定器都可以作用在同一个图像数据,CFA或变换的彩色空间,或一个稳定器作用在CFA数据上,而另一个稳定器作用在经变换成一个不同的彩色空间的图像数据上。
经稳定的图像数据被发送到在照相机背面的显示器(诸如液晶显示器)以及被发送到视频编码器,后者通过使用MPEG或H.263压缩标准产生编码的视频流,并把它存储在存储器中。
图5显示了第一稳定器70的实施例。第二稳定器72可以具有相同的特征。参照图1和5,第一稳定器70具有运动估计单元201,它计算在显示图像序列18的两个显示图像22之间的运动。
在这里详细地讨论的特定的实施例中,计算了在序列中接连的图像之间的运动。然而,本领域技术人员将会看到,在给予足够的计算和存储器资源时,在多个帧上获取的运动估值可以以同样的方式被组合,以提高各个帧到帧的运动估值的鲁棒性和精确度。在特定的实施例中,运动估计单元提供单个全局变换运动估值,包括水平分量和垂直分量。
再次参照图1和5,运动估值然后由抖动估计单元202处理以确定起因于照相机抖动的运动分量。应当指出,通常,估计的运动包括故意的运动,诸如照相机拍摄全景;和由于照相机抖动造成的非故意的运动。
在计算出抖动后,图像移位/翘曲单元203识别传感器图像数据(输出窗口),这个数据是要用来提供经稳定的显示图像序列30的输出图像204的。在优选实施例中,运动是按全局变换值来估计的,而抖动则按单个全局变换水平和垂直偏移值来计算。本领域技术人员将会认识到,在给定足够的计算资源时,用于估计旋转的更复杂的运动模型或可用的通用仿射变换,允许以后更加一般的图像翘曲以校正非故意的抖 动。
在特定实施例中,图像移位/翘曲单元203例如通过舍入或截断而把累积的抖动值调节到整数值。对给定的尺寸过大的传感器数据,取整数值的偏移容易得到补偿。非整数偏移需要插值和另外的计算数据。图6-8显示稳定器70对于全局变换的抖动偏移值的总体性能。传感器数据(原始数字图像)301包含比视频的最终分辨率所需要的更多的像素。
参照图6,在任何稳定化之前,确定输出窗口302的中心,使得传感器数据的处在中心的内部区域作为在输出图像序列中要被使用的图像数据而提供。在稳定化期间,输出窗口302在可用的图像数据的边界内,左右地和上下地移位。在向上和向右的方向上最大可能的偏移分别由箭头304和303显示。图7显示在向下的垂直偏移404和向右的水平偏移403之后的输出窗口302的位置。图8显示边界的情形,其中利用了最大可能的抖动校正。在这种情形下,向下的垂直偏移504和向右的水平偏移503处于最大值,而且通过使用可用的图像数据以进一步进行抖动校正是不可能的。优选地,累积的水平和垂直抖动项在最大可能的数值处被修剪,以避免对可用的传感器数据以外的图像数据的要求。
在运动估计时,要分析两个或多个图像以确定抖动。为了方便起见,以下的讨论总的针对在序列中的两个接连的图像。将会看到,同样的考虑适用于以后的成对图像的分析,以及在三个或更大的和非接连的图像的组中的图像的分析。
在两个图像之间的相对抖动可能是复杂的,以及该抖动的完全校正可能需要一个或多个图像变换,包括旋转、翘曲、和一般的仿射变换。这里的方法是针对有限的计算资源的情形的。已确定,简化的运动估值对去除由于拍摄者的不稳固而造成的多个抖动是有利的。该简化的运动估值具有一个全局运动向量,它包含水平的和垂直的分量。
在本发明的特定实施例中,输出窗口被调节,以便完全地保持在相应的输入图像的边界内。换句话说,输出图像被完全保持在各个输入图像的视场内。这避免由于输入窗口的有限视场造成的在输出窗口中出现部分图像的情形。来自早先各帧中附加信息等可用来补充图像,例如,如在美国专利5,289,274中公开的那样,但由于增加的复杂性和处理这样的信息所需要的时间,这样的方法是不希望的。
输出窗口只有在达到边界时才可停止,或抖动校正可被调节到能衰 减输出窗口朝向边界的运动。前一种情形是作为对最大幅度的累积的抖动的约束而提供的。这提供两个用途:第一,施加了与视场限制相对应的物理约束条件;以及第二,累积的抖动的约束可以防止在故意的拍摄全景期间由于把运动的相位延迟误分类为抖动而造成经抖动校正的视频过于落后。
相对于以前帧,对单个帧的最大抖动校正也可以或替代地设立边界。在给定了人手摇动幅度已知的物理特性以及照相机特性后,可以计算最大预期的抖动幅度(以像素计)。这种约束条件可以通过阻止对单独帧的过度的抖动校正而改进鲁棒性。
在不同条件下作为运动估计技术的整体投影可能失败。在某些条件下,有些失败可以通过对抖动校正值或分量与试探地预定的阈值进行比较而得以缓和。
这些条件中的一个是当场景包含重复的模式时使得多个不同的运动估值产生类似的成本。这种情形可以通过不单查明最佳的运动估值,而且也查明第二和第三最佳的运动估值而被识别。在正常环境下,这三个最佳的运动估值将被集合在一起。如果在它们之间的差值大于预定的阈值,则可以存在重复的模式。在这种情形下,各种抖动分量可以被取消。
基于整体投影的运动估计可能失败的另一个条件是当场景具有非常小的对比度或内容时。在这种情形下,所有的运动估值具有相似的精度,以及可能由于噪声而被错误地确定最佳偏移。这种情形可以通过跟踪所有的运动估值的平均成本以及跟踪最佳成本而得到识别。如果在平均成本与最佳成本之间的比值太小,则它假设一个具有少量的内容的场景以及各个相应的抖动分量被清除。
可能导致运动估计失败的另一个情形是独立运动的目标从一个图像引入到下一个图像。在这种情形下,可能没有产生低成本的运动偏移。这种情形可以通过比较最佳的运动估值的成本与一个阈值而被识别。如果超过了阈值,则抖动分量被清除。
可能导致运动估计失败的另一个情形是从一个帧到下一个帧的照明的改变。这种情形可以通过把整体投影向量中的数值相加以得到对每个向量的总的强度值而被解决。这些数值可用来在估算各个运动估值偏差之前把投影向量归一化。
在计算资源受约束的实施例中,抖动校正项被舍入到最接近的整数,以避免需要内插。对于其中色度分量在水平方向上以2作为因子进行子采样的YCbCr数据,可能必须把抖动校正值舍入到最接近的2的倍数,以使得色度数据正确地对准。舍入可以以不同的方式提供。一个解决方案是简单地使用累积的抖动的舍入值(A[n])作为对于每个帧的偏移值。这个方法是简单的,但会加重在接连的帧之间的抖动。避免以上的问题的更优选的方法是相对于以前的帧计算每个帧的单个抖动,然后把这个值舍入。最终得到的数值围绕一个零均值的摆动可以通过迫使各个舍入操作在减小量化误差的方向上进行而得以减小。
显示图像稳定化
现在参照图1,3和5-8,在显示路径上的图像22由第一稳定器70接收。输入图像22被分析以确定抖动。(如有需要,输入图像的分析可以对两条路径各提供一次。)输出窗口302根据所确定的抖动被映射到输入图像上。映射至少部分补偿抖动。输入图像被修剪到输出窗口以提供相应的输出图像。修剪与图像序列的获取同时进行,输出图像优选地被显示给拍摄者。修剪可以用相应的输出图像来替代存储器中的输入图像,或可以把输入图像和输出图像保持在存储器。对于典型的存储器存储,图像信息被存储在以光栅扫描方式排列的缓存器中。本方法以该数据的整体移位的方式水平地和垂直地移动数据。这种移位在图像数据中不引入失真,并且可以非常快速地完成。
第一稳定器的稳定化方法允许使用中等的处理资源快速地进行图像序列数字稳定化,这使得它们特别适用于照相机中的图像序列稳定化。这个方法可应用于获取期间的实时使用。在这种情形下,方法是向后观看的,即,在图像稳定化时仅仅使用过去的和当前的帧。本方法也可以用于在图像序列获取后的处理。在这种情形下,方法是同时向后观看和向前观看的,即,在图像稳定化时使用过去的、当前的、和将来的帧。
由于几个原因在获取时进行的稳定化是有利的。在取景器或照相机显示器中提供的经稳定的输出图像序列给拍摄者提供了较好的反馈。经稳定的输出图像序列易于存储。在数字稳定化中,一般把一个尺寸过大的电子成像用于图像获得。术语“过大尺寸”涉及到一个获取具有比在输出图像上呈现的更大视场的输入图像的成像器。额外的像素在稳定化时 被使用,或在产生输出图像时被丢弃。要存储的输出图像比输入图像更小。在获取时的稳定化允许存储输出图像而不是输入图像。在获取时进行的稳定化的另外的优点在于,稳定化使用的是以前没有经历过一个或多个压缩/解压缩循环的图像序列。这样的循环在以后的数字稳定化期间会引起伪像。
在稳定化时,输出窗口的运动是基于在两个正交方向上两个不同的图像之间的运动组合的投影向量相比较的结果。第一稳定器具有运动估计单元,它计算在序列的两个图像之间的运动。每个图像的组合投影向量是该图像在一个相应方向上非重叠的局部投影向量的组合。在特定实施例中,仅仅计算在序列中接连的图像之间的运动。然而,本领域技术人员将会看到,在给定足够的计算的和存储器的资源时,在多个帧上获取的运动估值也可以被计算,以便提高各个单独的帧到帧的运动估值的鲁棒性和精确度。
在特定实施例中,运动估计单元提供单独的全局平移运动估值,包括水平分量和垂直分量。运动估值然后由抖动估计单元进行处理,以确定归因于抖动的运动的分量。估计的运动可以限于由于照相机抖动造成的非故意运动,或可包括诸如照相机拍摄全景那样的故意的运动和由于照相机抖动造成的非故意运动。
在特定实施例中,在产生全局运动向量时使用整体投影向量。完全帧整体投影的操作是把二维图像投影到在两个正交方向上的两个一维向量上。这两个方向与输入图像的像素阵列上的重复单元对准。这典型地对应于电子成像器中的像素阵列。这里为了方便起见,讨论通常限于具有矩形阵列的重复单元的实施例,其两个方向通常称为“水平的”和“垂直的”。将会看到,这些术语是互相相对的,并且不一定对应于图像和成像器的主方向。
水平和垂直完全帧整体投影向量是通过把在每列中的图像元素相加以形成水平投影向量和把在每行中的图像元素相加以形成垂直投影向量而形成的。这个概念和子采样显示于图9-10。
在图9上,垂直投影向量603是通过把在全部Y分量图像数据602内的各个数据点601相加而形成的。在一个特定实施例中,当形成垂直投影向量时,仅仅使用图像数据子组。仅仅使用图像数据子组可以减小运动估计算法的计算复杂性。在图9上,每行图像数据中的每六个像素 只有一个像素被包括在行的总和中。另外,在求和时仅仅考虑每隔一行的行。
同样,图10显示作为在全部Y分量图像数据702内的各个数据点701的总和而形成水平投影向量703。在一个特定实施例中,当形成水平投影向量时,仅仅使用图像数据子组。仅仅使用图像数据子组可以减小运动估计算法的计算复杂性。在图10上,每列图像数据的每四个像素只有一个像素被包括在列的总和中。另外,在求和时仅仅考虑每隔一列的列。
经由整体投影估计运动的许多负担存在于投影向量的初始计算中。如有需要,这种复杂性可以以两种方式减小。第一,对每个投影和有影响的元素的数目可以通过子采样来减小。例如,当对列向下求和,以形成水平投影向量时,一列的每两个元素只有一个被包括在总和中。可以通过减小投影向量的密度而实现第二子采样。例如,当形成水平投影向量时,仅包括投影向量中每两列中的一列。这种类型的子采样进一步减小了复杂性,因为它也减小寻找最佳偏移的后随的匹配步骤的复杂性,但它以降低运动分辨率为代价。
可以试探地选择用于水平和垂直投影向量的成像数据子组,在此应当了解减小像素数目可以减小计算负担,但也降低精度。为了精度的目的,当前优选的是全部子采样所减小的样本数不大于4∶1-6∶1的比值。
在本方法中,对每个图像计算非重叠的局部投影向量。这些向量是限于图像的不同部分的投影向量。根据这些局部投影向量计算运动估值。使用这些局部投影向量而不是使用完全帧投影向量,减小了在图像内独立运动的目标对运动估值的影响。
已确定,为了良好的结果,在每个方向上局部投影向量的数目不需要很大。例如,在图11所示的具体实施例中,局部投影向量表示在相同方向上一个完全帧投影向量的四个四分之一。
一旦计算了两个帧的局部投影向量,就可以独立地估算在帧之间的水平和垂直运动估值。
图11显示对两个图像的相应局部区域之间的相应局部投影向量进行的比较。给定了长度M的水平投影向量和R个像素的搜索范围,把来自帧n-1的投影向量的中心的长度M-2R的局部向量801与在各个偏移802,803处来自帧n的局部向量进行比较。能产生最佳匹配的比较 结果被选择为提供在相应方向上的运动估值的抖动分量。最佳匹配被规定为在被比较的两个向量之间产生最小距离的偏移。通常的距离度量包括最小平均绝对误差(MAE)和最小均方误差(MSE)。在一个特定实施例中,绝对差值之和被用来作为比较局部向量的成本函数,而具有最低成本的比较结果是最佳的匹配。
参照图12,把来自帧n-1的投影向量的中心的长度M-2R的局部向量901与在偏移902处来自帧n的局部向量进行比较。这些局部向量还被划分成更小的局部向量,它们把输出窗口划分成段。这示于图12,其中局部向量902被划分成四个四分之一尺寸的局部向量903。可以对每个局部向量903计算各个单独的成本,同样可对完全帧向量分开地或通过组合各个局部帧向量成为组合的向量而计算成本。如果来自所有的四分之一部分的差值(绝对值或平方的)被组合,则得到完全帧整体投影距离的度量。最后的全局运动估值可以从所有的最佳估值中间进行选择。这种灵活性使得整体投影运动估值技术对于在场景中独立地移动目标更鲁棒,这种场景可能使得总的图像无法与以前的图像达到良好的匹配,即使图像的较小分段可以有极佳的匹配。
在特定实施例中,各四分之一的部分被组合以产生图像的一半区域的距离度量值:
第一和第二个四分之一部分产生左半个图像的距离度量;
第三和第四个四分之一部分产生右半个图像的距离度量;
第一和第四个四分之一部分产生外面“半个”(在面积上等于一半图像的两个分开的部分)的距离度量;以及
第二和第三个四分之一部分产生图像的里面一半的距离度量。
替代或除了计算在所有的四个四分之一部分的最佳匹配的偏移以外,还可以对每个一半区域的最佳匹配计算各个偏移。这些另外的偏移可以提高运动估值的鲁棒性,这例如要通过选择在五个可能值中间的中值偏移,或要通过用最佳一半区域偏移替代全部区域偏移,如果全部区域偏移被认为是不可靠的话。这在具有一个麻烦的独立运动的目标(诸如在显示体育比赛的序列中一个球迷举手)的场合下是有用的。球迷的手将扰乱完全帧整体投影计算,但它不出现在来自外部的一半区域的测量中,
在运动估计过程中可以通过投影向量的内插而得到改进的精度。图 13显示插值过程。通过把现有的元素复制在插值向量的所有偶数下标处,并把各数值赋予在等于相邻偶数值下标的平均值的奇数值下标处的元素,把大小为n的投影向量1001内插到大小为2n-1的向量中(标号1002)。这个过程可以由具有相加和移位运算的硬件或软件有效地完成。
由于在整体投影中使用的相加函数是线性函数,对投影向量插值等效于对原先的图像数据进行插值和然后形成投影向量。然而,对投影向量进行插值的复杂性低得多。
在一个特定实施例中,插值提供半像素偏移。由于投影运算是线性的,投影向量可以进行插值,这比起把整个图像进行插值和从插值后的图像数据形成半像素投影向量在计算上有效得多。参照图13,向量是通过计算作为现有的相邻点的平均值的中点的新的数值而进行插值的。把除以2作为向右移位1比特是容易实施的。最终得到的向量三元组是为了最佳匹配而进行估算的。
插值后的向量可以在任何运动估值偏移比较之前被建立,以及最佳偏移是根据使用用于比较的经过插值的向量而得到的最低成本而确定的。替换地,来自两个图像的非插值向量首先被比较,以确定最佳的粗略运动估值。随后,插值后的向量只在与最佳当前估值相邻的偏移处进行比较以便提供对运动估值精度的改进。
给定了与最佳偏移有关的距离和它的两个相邻的偏移,可以对连续的距离函数建模,以得出更精确的运动估值。为距离测量而选择的模型取决于究竟使用平均绝对误差(MAE)还是使用均方误差(MSE)作为距离度量。如果使用MSE作为距离度量,则连续距离函数按二阶建模。抛物线可以与三个选中的偏移和它们的相关的距离相拟合。如果使用MAE作为距离度量,则连续距离函数按逐段线性函数建模。
一旦计算了运动估值,就必须确定例如由于照相机拍摄全景而需要的是哪个运动分量,和哪个运动分量是由于照相机抖动引起的。在简单的情形下,当需要的运动被认为是零,则所有的估计的运动可被归类为抖动,并且从序列中去除。然而,通常,可能有某些需要的照相机运动伴随着不需要的照相机抖动。典型的故意的照相机运动是低频的,不会大于1-2Hz,而手颤抖通常出现在2-10Hz。因此,可以对运动估计使用低通时间滤波来消除高频抖动。
除了具有消除高频抖动信息的特定的频率响应以外,这种稳定化路径所用的理想的低通滤波器也需要具有最小相位延迟。在故意的拍摄全景运动期间,过大的相位延迟会导致大多数初始拍摄全景运动被误归类为抖动。在这种情形下,经稳定的序列滞后于序列的需要的拍摄全景运动。零相位滤波器需要非因果滤波,并造成在图像的获取与它在照相机背面的显示之间的时间延迟。在优选实施例中,利用因果滤波方案,它使得相位延迟最小化,而在照相机显示器上显示稳定化的图像之前不引入任何时间延迟。
在一个特定实施例中,运动估值被低通时间滤波以去除拍摄全景的影响,即故意的照相机运动的影响。这种滤波依赖于一种确定,即合理地假设任何需要的照相机运动具有非常低的频率,不大于1或2Hz。这与手的抖动不同,通常都知道它出现在2-10Hz之间。低通时间滤波因此可被应用于运动估值以消除高频抖动信息,而同时保持任何故意的低频照相机运动。
在优选实施例中,经稳定的图像序列是在获取期间可观看到的。这在这些实施例中使得非因果的低通时间滤波是不需要的,它造成在图像序列的获取与该序列的显示之间的时间延迟。(非因果时间滤波使用序列中来自以前的和以后的图像的数据。因果时间滤波局限于以前的帧。)
因果时间滤波器,不像非因果时间滤波器,往往呈现过大的相位延迟。这在任何实施例中是不需要的。在故意的拍摄全景运动期间,过大的相位延迟会导致大多数初始拍摄全景运动被误归类为抖动。在这种情形下,稳定后的序列会滞后于序列中需要的跟踪拍摄的运动。
在一个具体实施例中,全局运动估值被输入到递归滤波器(无限脉冲响应滤波器),它被设计为对于已知的手抖动频率具有良好的频率响应,并有良好的相位响应,使得经稳定的图像序列的相位延迟最小化。滤波器由以下公式给出:
A[n]=αA[n-1]+αv[n].
其中A[n]是帧n的累积的抖动,
v[n]是帧n的算出的运动估值,以及
α是其值在0和1之间的衰减因子。
对于帧n,在经稳定的序列中所使用的传感器图像数据周围的有边界的方块(在这里也称为“输出窗口”)相对于它的初始位置被移位A[n]。累积的抖动在x方向和y方向被独立地跟踪,项v[n]通常代表在该两个方向中的一个相应方向的运动。作为计算上更复杂的替换例,滤波器可被修改成同时跟踪两个方向上的运动。优选地,这个公式独立地应用于水平和垂直运动估计。
衰减因子α被用来当没有运动时操控累积的抖动使之趋于0以及它控制滤波器的频率和相位响应。衰减因子α能随不同的帧而自适应地改变以考虑到估计的运动中的增加或减小。通常,α值接近于1时导致大多数经估值的运动被归类为抖动。当α减小趋于零时,大部分经估值的运动被保持。α的适当的数值、范围或α的离散数值组可以针对特定的用户或用户类别或呈现类似抖动的用途试探性地确定。典型地,手的抖动至少是2Hz,因而2Hz或所有更高的频率可被认为是抖动。还可以对运动估值是否不可靠作出决定,例如,当诸如行驶中的汽车那样的运动目标被错误地跟踪时,即使照相机是稳定的,运动估值也是不可靠的。在这种情形下,抖动累积过程由用户输入进行修改或自动进行修改,以便不必计算对于当前的帧的任何另外的抖动。优选地,累积的抖动保持为恒定的,如果运动估值被确定为不可靠的话。
最大允许的抖动校正也受到约束,如图6-8所示。为了加强这种约束,大于这个极限值的A[n]的数值被修剪,以防止校正尝试超出原始获取的图像的边界。
在计算资源被约束的优选应用中,抖动校正项被舍入到最接近的整数以避免需要进行插值。对于色度分量在水平方向上以2的因子被子采样的YCbCr数据中,有可能必须把抖动校正值舍入到最接近的2的倍数,以使得色度数据正确地匹配。
归档图像的稳定化
现在更详细地描述第二稳定器。第二稳定器被设计成使得当计算帧n的运动的抖动分量时,存在来自以前的和将来的帧的运动估值,以允许比在第一稳定器中更精确地计算抖动,该第一稳定器仅仅依赖于当前的和以前的运动估值。
在一个特定实施例中,由第二稳定器使用的缓存和抖动计算方案在 计算对应于帧n的抖动时包括了对帧n-k到n+k的运动估值。由于帧n+k成为对于处理是可用的,运动估计技术用来计算对当前帧的运动,并把它添加到运动估值阵列。优选地,抖动是使用非因果低通滤波器计算的。从在帧n处原始运动估值中减去在帧n处低通滤波的运动估值,以产生相应于高频抖动的运动的分量。累积的抖动计算由以下公式给出:
A[n]=A[n-1]+j[n]
其中j[n]是对帧n计算出的抖动。它是在原始运动估值v[n]与通过对运动估值v[]与滤波器抽头h[]进行卷积而给出的低通滤波的运动估值之间的差值。累积的抖动A[n]是通过求出以前的累积的抖动与当前的抖动项的和而给出的。A[n]代表对于帧n的需要的抖动校正值。
给出了需要的抖动校正项A[n]后,从用于保存自帧n到帧n+k的所有图像的图像缓存器获取帧n。要编码的帧n的传感器数据区域根据A[n]被调节。这个数据被传送到视频编码器,或直接传送到存储器以便进行存储而不用压缩。
由滤波和缓存方案使用的特定的k值可以根据存储图像可得到的缓存器空间的总量和其它准则进行选择。通常,可得到的运动估值的帧越多,则滤波方案能更加接近于达到需要的频率响应。由h[]给出的滤波器抽头的特定的值取决于滤波器的需要的频率响应,它进而又依赖于运动的抖动分量的假设的频率范围,同样也依赖于图像序列的获取帧的速率。
这里公开的特定的稳定化技术可以被使用于如先前描述的那样的照相机和***,但它们没有提供双路径稳定化。
特性
在以下的编号的句子中进一步描述特性。1.图像序列稳定化方法包括以下步骤:获取输入数字图像序列;计算所述序列的每个第一和第二输入图像的多个非重叠的水平局部投影向量;计算所述序列的每个第一和第二输入图像的多个非重叠的垂直局部投影向量;估算所述第一和第二输入图像的相应的所述水平的局部投影向量以提供在水平方向上 的抖动分量;估算所述第一和第二输入图像的相应的所述垂直的局部投影向量以提供在垂直方向上的抖动分量;以及从所述抖动分量确定抖动校正值。2.句子1的方法,其中所述估算步骤每个还包括从相应的所述向量计算运动估值;以及对相应的所述运动估值进行时间滤波,以提供相应的所述抖动分量。3.句子2的方法,其中所述计算步骤还包括:把所述第一输入图像的相应的所述局部投影向量组合成多个不同的第一组合向量;把所述第二输入图像的各个所述局部投影向量组合成多个不同的第二组合向量;以及在不同的相对偏移处比较相应的所述第一和第二组合向量。4.句子3的方法,其中所述计算还包括选择相应的所述偏移的最佳匹配。5.句子4的方法,其中所述计算还包括以小于一个完整像素的增量对相应的所述局部投影向量的所述偏移进行插值。6.句子4的方法,其中所述选择还包括确定各个所述最佳匹配的中值。7.句子3的方法,其中在每个方向上每个图像的所述局部投影向量每个都是完全帧投影向量的不同的四分之一部分,以及所述组合向量包括相应的所述局部投影向量对的多个不同组合。8.句子7的方法,其中所述组合向量包括在每个所述方向上规定完全帧向量的相应的所述局部投影向量的组合。9.句子2的方法,其中所述滤波还包括低通时间滤波。10.句子1的方法,其中所述估算步骤每个还包括计算对每个所述向量的运动估值;以及对每个所述运动估值进行时间滤波以提供对于所述第一图像的所述抖动分量,所述滤波使用由以下公式给出的滤波器:A[n]=αA[n-1]+αv[n],其中:A[n]是所述第一图像n的所述累积的抖动,v[n]是所述第一图像n的各个所述运动估值,以及α是其值在0与1之间的衰减因子。11.句子1的方法还包括以下步骤:把所述第一输入图像修剪到预定的输出窗口中以提供第一输出图像;把所述窗口移位所述抖动校正值以提供经调节的窗口;以及把所述第二输入图像修剪到所述调节的窗口中以提供第二输出图像。12.句子11的方法,其中所述修剪所述第一和第二输入图像是在所述获取期间进行。13.句子11的方法还包括在所述获取期间显示所述输出图像。14.句子11的方法,其中所述图像被获取作为彩色滤波器阵列数据以及所述方法还包括在所述获取后,把来自所述彩色滤波器阵列数据的所述图像变换成与成像器无关的彩色空间的步骤。15.句子1的方法,其中所述各估算步骤是互相独立的。16.句子1的方法,其中所述确定还包括把所述抖动校正 限制到把所述输出窗口保持在所述第二输入图像的边界内的数值。17.句子1的方法,其中所述计算步骤每个还包括对所述输入图像进行子采样,以提供子样本和从所述子样本计算所述向量。18.用于图像序列稳定化的计算机程序产品,该计算机程序产品包括计算机可读的存储媒体,具有被存储在其上用于执行句子1各步骤的计算机程序。19.图像序列稳定化方法包括以下步骤:获取输入图像的序列;计算所述序列的每个第一和第二输入图像的多个非重叠的水平的和垂直的局部投影向量;把所述第一输入图像的所述水平局部投影向量组合成多个不同的水平第一组合向量和把所述第一输入图像的所述垂直局部投影向量组合成多个不同的垂直第一组合向量;以及把所述第二输入图像的所述水平局部投影向量组合成多个不同的水平的第二组合向量和把所述第二输入图像的所述垂直局部投影向量组合成多个不同的垂直的第二组合向量;在不同的相对偏移处比较相应的所述第一和第二组合向量;选择相应的所述偏移的最佳匹配并根据相应的最佳匹配计算在每个所述方向上的运动估值;对相应的所述运动估值进行时间滤波以提供相应的所述抖动分量;以及从所述抖动分量确定抖动校正值。20.句子19的方法,其中所述组合向量包括在每个所述方向上规定完全帧向量的相应的所述局部投影向量的组合。21.句子19的方法,其中所述水平和垂直抖动分量是独立确定的。22.句子19的方法还包括以下步骤:把所述第一输入图像修剪到预定的输出窗口中以提供第一输出图像;把所述窗口移位所述抖动校正值以提供经调节的窗口;以及把所述第二输入图像修剪到所述经调节的窗口以提供第二输出图像;以及在所述获取期间显示所述输出图像。23.句子22的方法,其中所述确定还包括把所述抖动校正限制在用于把所述输出窗口保持在所述相应的所述图像边界内的数值。24.句子19的方法,还包括当相应的所述最佳匹配超过预定的阈值时,清除所述抖动分量。25.句子19的方法,还包括当相应的所述最佳匹配的向量与相应的所述向量的其余部分的平均值之差小于预定阈值时,清除各所述抖动分量之一。26.句子19的方法,还包括:查明所述第一和第二输入图像的相应的所述组合向量的第二和第三最佳偏移;以及当在相应的所述最佳匹配、第二最佳匹配、和第三最佳的匹配向量之间的差值超过阈值时,清除所述各抖动分量之一。27.句子19的方法,其中所述计算步骤每个还包括对所述第二图像的一个或多个 所述局部投影向量进行插值,以提供经插值的局部投影向量。28.句子27的方法,其中所述经插值的局部投影向量位于相对于所述第二图像的相应的所述局部投影向量的+1/2像素和-1/2像素的偏移处。29.句子19的方法还包括:在所述查明后,在相对于所述第一图像的所述水平局部投影向量的+1/2像素和-1/2像素的附加偏移处对具有所述最佳匹配的所述第二图像的所述水平局部投影向量进行插值,以提供水平局部投影向量三元组,并重新确定在所述向量三元组的所述局部投影向量与所述第一图像的所述局部水平投影向量之间的最佳匹配;以及在所述查明后,在相对于所述第一图像的所述垂直局部投影向量的+1/2像素和-1/2像素的附加偏移处对具有所述最佳匹配的所述第二图像的所述垂直局部投影向量进行插值,以提供垂直局部投影向量三元组,以及重新确定在所述向量三元组的所述局部投影向量与所述第一图像的所述局部垂直投影向量之间的最佳匹配。30.句子29的方法,其中所述查明步骤每个还包括把相应的所述向量三元体与距离函数相似合。31.获取设备包括:电子成像器,用于获取输入图像的序列;图像处理器,用于从所述成像器接收所述输入图像,所述图像处理器通过计算所述序列的每个所述输入图像的多个非重叠的水平的和垂直的局部投影向量而确定抖动,估算在每个方向上所述第一和第二图像的相应的所述局部投影向量以提供在相应方向上的抖动分量,根据所述抖动分量确定抖动校正值,根据所述抖动校正值把输出窗口映射到所述输入图像;以及把所述输入图像修剪到所述输出窗口中以提供相应的输出图像;以及显示器,用于在所述获取期间显示所述输出图像。32.句子31的设备,其中所述映射不响应于所述电子成像器的拍摄全景。