操作设备以捕捉高动态范围图像的制作方法

文档序号:7884677阅读:233来源:国知局
专利名称:操作设备以捕捉高动态范围图像的制作方法
操作设备以捕捉高动态范围图像
背景技术
近年来,数码相机作为独立设备和作为更复杂设备例如蜂窝电话、智能电话、其他移动计算设备等的部件业已迅猛发展。随着这种迅猛发展,制造商已经快速增加在这些设备上的数码相机的技术特征。例如,很多移动设备如今通常包括五百万像素的相机,这对于产生高品质图像往往是需要的。不幸地,即使这种相机的技术规格已经被改进,但是由于这些相机的图像处理能力尚无法与其改进的硬件能力相匹配,因此这些相机往往不能捕捉和产生高品质的图像。例如,很多相机如今仍然不能很好地捕捉和产生具有高动态范围(HDR)的图像。HDR场景的经典示例是白天在室内站在窗户前面的人。捕捉这种场景的很多相机产生具有亮背景的图像,并且具有不能显示人的所有特征的暗前景。由移动设备的相机(例如,由电话的相机)捕捉这种HDR场景的问题由这种相机所采用的较小的图像传感器加剧。发明概述本发明的一些实施例提供了一种捕捉和产生具有高动态范围的图像的移动设备。为了捕捉和产生高动态范围图像,一些实施例的移动设备包括新颖的图像捕捉和处理模块。在一些实施例中,所述移动设备通过如下产生高动态范围(HDR)图像(1)使其图像捕捉模块以不同图像曝光持续时间快速捕捉连续图像;和(2)使其图像处理模块合成这些图像以产生所述HDR图像。为了快速捕捉连续的图像,一些实施例的图像捕捉模块采取两个动作。首先,在移动设备进入其HDR模式之后或者在其进入图像捕捉模式(下文也称为相机模式)之后,其开始以特定帧速率捕捉图像。在一些实施例中,帧速率为15帧每秒(fps)。在其他实施例中,初始帧速率在不同的光照条件 下是不同的(例如,对于正常光照条件为15fps,对于较暗的条件为IOfps,等等)。这种帧速率使相机能够以当前光照条件的正常曝光设定来捕捉图像(S卩,使相机能够利用图像捕捉模块计算作为当前光照条件的正常曝光持续时间来捕捉每张图像)。图像捕捉模块将其以特定帧速率捕捉的每张图像存储在该设备的帧缓冲器中。在一些实施例中,捕捉模块以循环方式写入帧缓冲器,循环方式在缓冲器达到其最大存储容量时允许模块删除较后存储的帧之前的较早存储的帧。其次,当移动设备进入高动态范围(HDR)模式时,图像捕捉模块计算对于相机捕捉图像的光照条件(下文称为当前光照条件)下用于捕捉曝光不足图像和曝光过度图像的曝光持续时间。本发明的不同实施例采用不同的技术计算曝光过度图像和曝光不足图像的持续时间。例如,一些实施例基于设备以特定帧速率捕捉的正常曝光图像的直方图来计算曝光过度图像和曝光不足图像的持续时间。在设备进入其HDR模式之后,该设备会被指示(例如,由设备的用户、由设备上的定时器、由远程用户或定时器、等等)以拍摄HDR图像。当设备被指示以拍摄HDR图像时,一些实施例的图像捕捉模块随后以快速连续的方式捕捉两张图像。一张图像为其基于先前对当前光照条件所计算的曝光过度持续时间捕捉的曝光过度图像,而另一张图像为其基于先前对当前光照条件所计算的曝光不足持续时间捕捉的曝光不足图像。在不同的实施例中,图像捕捉模块以不同的顺序捕捉曝光过度图像和曝光不足图像(例如,一些实施例首先捕捉曝光过度图像,而其他实施例首先捕捉曝光不足图像)。除了捕捉曝光过度和曝光不足图像以外,图像捕捉模块还检索其早先以正常曝光持续时间捕捉且存储在其帧缓冲器中的图像。该模块向图像处理模块提供三张图像中的每一张。在一些实施例中,图像捕捉模块提供相机捕捉图像的颜色空间中的三张图像。例如,一些实施例的图像捕捉模块在Y’ CbCr (亮度、蓝色色度、和红色色度)颜色空间中捕捉和提供这些图像。一些实施例在执行各种图像编辑操作之前将相机的Y’CbCr (亮度,luma)图像反伽玛校正为YCbCr (辉度、蓝色色度、红色色度)图像,并且随后将所得到的YCbCr (辉度,luminance)图像伽玛校正为Y,CbCr (亮度)图像。图像处理模块随后执行两个操作。第一操作是使所有三张图像彼此对齐,这是由于相机在其捕捉三张图像期间可能已经移动。不同的实施例不同地执行这种对齐。例如,为了使两张图像对齐,一些实施例执行试图确认两张图像中的匹配特征的分层搜索。为了确认匹配特征,一些实施例仅检查两张图像的亮度分量(例如,用于Y’ CbCr颜色空间的Y’ -通道分量)。图像的亮度分量在本文有时也被称为“亮度图像”或“图像”。两张亮度图像在每个方向上以某一因数(例如,二)抽取若干次(例如,六次),直到若干对的亮度图像被确认为止。每对亮度图像用于执行在分层搜索中的不同级别下的搜索。在每个级别,为每张亮度图像生成位图(例如,通过使用该级别的中位亮度值以基于像素是否大于或小于该中位值而生成I或0的像素值)。在每个级别,至少一张位图被划分为若干分块(tile),其中每个分块包含若干像素。分块用来确认在另一位图中的对应的匹配分块,并且由此确认在两张位图之间的偏移。在一些实施例中,在分块包含仅白色像素、仅黑色像素、小于白色像素的阈值、或小于黑色像素的阈值的情况下,一些所述分块中的被丢弃。这些分块是不具有能够用来与其他分块相匹配的足够数量的特征(例如,边缘)的分块。这些分块被丢弃以加快比较分块并由此确认在两对位图之间的偏移的处理。基于剩下的分块,以各种不同的偏移比较所述两张位图,以确认使在该分层的当前分辨率水平下的两张位图最佳对齐的偏移。如果分层的当前分辨率水平不是该分层的最高分辨率水平,则一些实施例的图像处理模块随后使用针对该分层当前分辨率水平的算出的偏移作为在该分层的下一级别中的搜索起点。在该下一级别,模块再次生成用于该分层级别的两张不同亮度图像的两张位图,并在随后搜索起始于针对该搜索规定的起点处的偏移。在两张图像的亮度分量的分层比较中,在该分层的最高级别下确认的偏移是两张图像之间的偏移。一旦图像处理模块已经确定在一张图像(例如,正常曝光图像)与其他图像(例如,曝光过度图像和曝光不足图像)中的每一张之间的这一偏移,其就使用这些偏移以使三张图像对齐。例如,在一些实施例中,图像处理模块使用这两个偏移来裁剪三张图像,使得它们全都仅包括同一场景的重叠部分。作为替换,代替裁剪所有三张图像,一些实施例仅仅裁剪曝光过度和曝光不足图像,并且对于这些图像的经裁剪的部分,使用来自正常曝光图像的数据生成合成HDR图像。此外,代替裁剪图像,其他实施例可以使用其他操作(例如,它们可以确认图像的并集)以解决在图像中的非重叠区域。一些实施例不裁剪而是替代地重复边缘像素。由于在图像之间的偏移通常较小,因此重复边缘像素得到可接受的结果。此外,色度通常为Y’CbCr的4:2:2或4:2:0格式。这意味着色度的采样不同于亮度。在4:2: 2,色度为亮度的水平尺寸的一半,而在4:2: 0,色度为亮度的水平尺寸的一半和竖直尺寸的一半。因此,当对齐各图像时,一些实施例基于这一格式调节色度的矢量。在对齐各图像之后,图像处理模块执行其第二操作,该第二操作是三张对齐图像的合成以产生合成的HDR图像。在不同的实施例中,图像处理模块使用不同的技术来合成三张图像。例如,一些实施例通过执行用于这些图像的亮度通道的、与用于这些图像的色度通道不同的操作集合成三张图像。此外,在生成HDR合成图像时,一些实施例可能产生超过期望值范围的亮度值和色度值。因此,在生成HDR图像时,一些实施例并行地执行缩放操作以确保HDR图像的亮度值和色度值在其期望的范围内生成。本领域普通技术人员将认识到,图像捕捉和处理操作能够与上述那些不同地实现。例如,代替返回来自帧缓冲器的仅一张正常曝光图像,一些实施例的图像捕捉模块将若干正常曝光图像返回到图像处理模块。从该组,图像处理模块随后选取最清晰且与所捕捉的曝光过度和曝光不足图像最佳匹配的正常曝光图像。作为替换,在一些实施例中,图像捕捉模块仅返回一张正常曝光图像,但试图确保该返回图像是不模糊的(即,是清晰的)。在不同的实施例中,图像捕捉模块试图以不同的方式确保该图像是清晰的。例如,在其中设备具有加速度计和/或陀螺仪的一些实施例中,图像捕捉模块使用由加速度计和/或陀螺仪记录的数据来确认正常曝光图像的模糊可能性以选取清晰的正常曝光图像。作为替换,在一些实施例中,代替使用来自帧缓冲器的正常曝光图像,移动设备在接收到HDR命令之后以正常曝光拍摄一张或多张图像以及曝光过度和曝光不足图像。在一些这类实施例中,图像处理模块选取正常曝光图像中的一张(例如,最清晰的、最后的等)以用于生成合成的HDR图像。前面的概述旨在作为对本发明的一些实施例的简单介绍,其并非意味着对在本文献中公开的所有发明主题的介绍或概述。随后的发明详述以及在发明详述中参照的附图将进一步描述在本概述中描述的实施例以及其他实施例。因此,为了理解由本文献的所有实施例,需要对发明概述、发明详述和附图的全面了解。此外,要求保护的主题并非由在发明概述、发明详述和附图中的说明性细节限定,而是由所附权利要求限定,这是由于要求保护的主题能够以其他特定形式实施而不背离本主题的精神。


图1例不了捕捉和广生具有闻动态范围的图像的移动设备。图2A例示了在一些实施例的移动设备中的高动态范围(HDR)模式的调用和以该模式拍摄HDR图片。图2B例示了在一些实施例的移动设备中在高动态范围(HDR)模式的调用期间显示的预览图像以及以该模式拍摄HDR图片。图3概念性地例示了一些实施例的移动设备的软件架构。图4例示了在HDR图像捕捉会话期间图像处理模块的操作。图5A例示了本发明的一些实施例的图像捕捉模块。
图5B例示了本发明的一些其他实施例的图像捕捉模块。图6例示了概念性地代表在HDR图像捕捉会话期间图像捕捉模块的一系列操作的处理。图7例示了生成用于对齐各图像的一系列位图的处理的一些实施例。图8例示了由一些实施例的抽取图像得到的位图的示例。图9例不了用于确定对齐两张图像的偏移矢量的处理的一些实施例。图10例不了确定用于对齐两张位图的偏移矢量的处理。图11例示了确定最终偏移矢量的示例。图12例示了合成同一场景的三个不同曝光的亮度通道图像并调节所得到的合成图像的各种亮度值的处理。图13A例示了执行对特定场景的合成处理的示例。图13B例示了在由分开的图像生成蒙板的同时执行合成处理的示例。图14例示了用于合成色度通道图像的处理的一些实施例。图15例示了在一些实施例中合成色度通道图像的示例。图16是一些实施例的移动计算设备1600的示例。图17例示了触摸I/O设备。发明详述在随后对本发明的详细描述中,阐释和描述了本发明的多个细节、示例和实施例。但是,本领域技术人员明了且显见的是,本发明不限于所阐释的实施例并且可以在没有所讨论的具体细节和示例中的一些的情况下实践本发明。本发明的一些实施例提供了一种捕捉和产生具有高动态范围的图像的移动设备。图1例示了一种这样的移动设备100。该移动设备可以是相机、移动电话、智能电话、个人数字助理(PDA)、平板个人计算机(例如iPad )、膝上型计算机、或任意其他类型的移动计算设备。图1例示了捕捉具有高动态范围的场景的数字图片的移动设备100。在该场景中,人在晴天站在窗户前,而在背景中有汽车行驶。图1还例示了移动设备100通过捕捉、对齐和合成以三个不同曝光设定捕捉的三张图像135、140和145而产生高动态范围图像180。如该图中所示,移动设备100包括图像捕捉模块105和图像处理模块110,这两个模块执行操作以使得移动设备能够捕捉和产生高动态范围图像。在一些实施例中,移动设备通过以下产生高动态范围(HDR)图像(1)使其图像捕捉模块以不同的图像曝光时间快速捕捉连续的图像,以及(2)使其图像处理模块合成这些图像以产生HDR图像。尽管在此的描述包括三张图像,但是本领域普通技术人员将认识到,一些实施例使用三张以上的图像(例如,一些实施例使用五张图像曝光非常过度、曝光过度、正常、曝光不足和曝光非常不足)。一些实施例在不同条件下使用不同数量的图像。为了快速捕捉连续的图像,一些实施例的图像捕捉模块在相机进入高动态范围(HDR)模式时采取两个动作。首先,它以特定的帧速率开始捕捉图像。在一些实施例中,帧速率为15帧每秒(fps)。在其他实施例中,初始帧速率在不同的光照条件下是不同的(例如,对于正常光照条件为15fps,对于更暗的条件为lOfps,等等)。这种帧速率使相机能够以对于当前光照条件的正常曝光设定捕捉图像(即,使相机能够利用图像捕捉模块计算作为对于当前光照条件的正常曝光持续时间来捕捉每张图像)。图像捕捉模块将其以特定帧速率捕捉的每张图像存储在设备的帧缓冲器(未示出)中。在一些实施例中,捕捉模块以循环方式写入帧缓冲器,其允许在缓冲器达到最大存储容量时在较后存储的帧之前删除较早存储的帧。其次,对于相机捕捉图像的光照条件(下文称为当前光照条件),图像捕捉模块计算用于捕捉曝光不足图像和曝光过度图像的曝光持续时间。例如,一些实施例基于设备以特定帧速率捕捉的正常曝光图像的直方图来计算曝光过度和曝光不足图像的持续时间。例如,如果正常曝光图像具有大量饱和像素,则相比于在正常曝光图像具有较少饱和像素的情况,曝光过度图像的时间设定为正常曝光持续时间的较小倍数。在设备进入其HDR模式之后,设备能够被指示(例如,由设备的用户、由设备上的定时器、由远程用户或定时器等等)以拍摄HDR图像。当设备被指示以拍摄HDR图像时,一些实施例的图像捕捉模块随后以快速连续的方式捕捉两张图像。一张图像是图像捕捉模块基于先前对当前光照条件所计算的曝光过度时间捕捉的曝光过度图像,而另一张图像则是图像捕捉模块基于先前对当前光照条件所计算的曝光不足时间捕捉的曝光不足图像。在不同的实施例中,图像捕捉模块以不同的顺序捕捉曝光过度和曝光不足图像(例如,一些实施例首先捕捉曝光过度图像,而其他实施例首先捕捉曝光不足图像)。除了捕捉曝光过度和曝光不足图像以外,图像捕捉模块还检索其早先以正常曝光持续时间捕捉并存储在其帧缓冲器中的图像(例如,在HDR捕捉命令之前拍摄的最近的图像)。图像捕捉模块105向图像处理模块110提供三张图像中的每一张。图1例示了这三张图像作为在图像捕捉模块105的输出端处的曝光过度图像135、正常曝光图像140和曝光不足图像145。在一些实施例中,图像捕捉模块在相机捕捉图像的颜色空间中提供三张图像。例如,一些实施例的图像捕捉模块在Y’ CbCr颜色空间中捕捉并提供这些图像。以上描述包括在接收到HDR捕捉命令之前以正常曝光持续时间拍摄多张图像和在接收到HDR捕捉命令之后拍摄曝光过度和曝光不足图像。但是,在一些实施例中,在接收到HDR捕捉命令之前拍摄多张曝光不足图像。另外,在一些实施例中,在接收到HDR捕捉命令之前拍摄多张曝光过度图像并且在接收到HDR捕捉命令之后拍摄正常曝光和曝光不足图像。如图1中所示,图像处理模块110在一些实施例中包括⑴对齐模块115,对齐其所接收的三张图像;和(2)合成模块120,合成其所接收的三张图像以产生HDR图像180。由于相机可能在其捕捉三张图像的时间期间移动,因此对齐模块使全部三张图像彼此对齐。如图1中进一步所示,对齐模块115在一些实施例中包括⑴搜索模块125,比较图像以使它们对齐;和(2)剪裁模块130,剪裁所对齐的图像中的一张或多张以仅仅包括这些图像之间的重叠区域。为了使两张图像对齐,搜索模块125执行试图确认在两张图像中的匹配特征的搜索。为此,一些实施例仅仅检查两张图像的亮度分量(例如,用于Y’ CbCr颜色空间的Y’通道分量)在一些实施例中,搜索模块125执行分层搜索,其初始在每个方向上以特定因数(例如,二)对两张亮度图像抽取若干次(例如,六次),直到若干对的亮度图像被确认为止。每对亮度图像用于执行在分层搜索中的不同级别上的搜索。在每个级别,为每张亮度图像生成一位图(例如,通过使用用于该级别的中位亮度值以基于像素是否大于或小于该中位值而生成I或O的像素值)。在每个级别,搜索模块将至少一张位图被划分为若干分块,其中每个分块包含若干像素。模块使用分块以确认在另一位图中的对应的匹配分块,并藉此确认在两张位图之间的偏移。在一些实施例中,搜索模块丢弃分块中的一些,当这些分块包含仅白色像素、仅黑色像素、小于白色像素的阈值、或小于黑色像素的阈值时。这些分块是不具有能够用来与另一分块相匹配的足够数量的特征(例如,边缘)的分块。这些分块被丢弃以加快比较分块并藉此确认在两对位图之间的偏移的处理。基于剩下的分块,搜索模块以各种不同的偏移比较两张位图,以确认分层的当前分辨率水平下最佳对齐两张位图的偏移。如果分层的当前分辨率水平不是分层的最高分辨率水平,则搜索模块使用针对分层的当前分辨率水平的计算的偏移作为在分层的下一级别中的搜索的起点。在该下一级别,模块再次生成用于该分层级别的两张不同亮度图像的两张位图,并在随后搜索起始于为所述搜索规定的起点处的偏移。在两张图像的亮度分量的分层比较中,在分层的最高级别下确认的偏移是两张图像之间的偏移。搜索模块125 —旦完成其针对该两对图像的分层搜索,就确认限定了所述图像中的两张图像的平移的两个偏移,从而对齐所有三张图像。在图1例示的示例中,搜索模块在一些实施例中将曝光不足/曝光过度图像的亮度分量与正常曝光图像的亮度分量进行比较。这种比较确认两个偏移,一个限定在曝光不足亮度图像与正常曝光图像之间的平移,另一个则限定在曝光过度亮度图像与正常曝光图像之间的平移。这两个偏移又确认能够如何使这三张图像对齐,正如在确认在三张亮度图像150、155和160中的匹配区域的图1中的虚线所指示的。一旦搜索模块125已经确定在一张图像(例如,正常曝光图像)与其他图像(例如,曝光过度图像和曝光不足图像)中的每一张之间的偏移,裁剪模块130就使用这些偏移以修整这三张图像。具体地,在一些实施例中,其使用这两个偏移来裁剪三张图像,使得它们全都仅仅包括同一场景的重叠部分。图1例示了通过显示经裁剪且对齐的图像165、170和175的这一裁剪的结果。代替裁剪所有三张图像,一些实施例仅仅裁剪曝光过度和曝光不足图像,并且对于这些图像的经裁剪的部分,使用来自正常曝光图像的数据以生成合成的HDR图像。作为替换,代替裁剪图像,其他实施例可以使用其他操作(例如,它们可以确认图像的并集)以寻找到图像中的非重叠区域。一些实施例不裁剪而是替换地重复边缘像素。重复边缘像素由于在图像之间的偏移通常较小而得到可接受的结果。此外,色度通常为Y’CbCr的4:2:2或4:2:0格式。这意味着色度的采样不同于亮度。在4:2: 2,色度为亮度的水平尺寸的一半,而在4:2: 0,色度为亮度的水平尺寸的一半和竖直尺寸的一半。因此,当对齐各图像时,一些实施例基于这种格式调节用于色度的矢量。如在该图中所示,合成模块120接收经裁剪且对齐的图像,随后将其进行合成以产生合成的HDR图像180。在不同的实施例中,合成模块使用不同的技术来合成三张图像。例如,一些实施例通过执行用于这些图像的亮度通道的、与用于这些图像的色度通道不同的操作组来合成三张图像。此外,在生成HDR合成图像时,一些实施例可能产生超过期望值范围的亮度值和色度值。因此,在生成HDR图像时,一些实施例的合成模块120并行地执行缩放操作以确保HDR图像的亮度值和色度值在其期望的范围内生成。本领域普通技术人员将认识到,图像捕捉和处理操作能够与上述那些不同地实现。例如,代替返回来自帧缓冲器的仅一张正常曝光图像(例如,最近的图像),一些实施例的图像捕捉模块将若干正常曝光图像返回到图像处理模块。图像处理模块随后从这一组图像中选取最清晰的和/或与所捕捉的曝光过度和曝光不足图像最佳匹配的正常曝光图像。作为替换,在一些实施例中,图像捕捉模块仅返回一张正常曝光图像,但试图确保该返回图像不是模糊的(即,是清晰的)。在不同的实施例中,图像捕捉模块试图以不同的方式确保该图像是清晰的。例如,在其中设备具有加速度计和/或陀螺仪的一些实施例中,图像捕捉模块使用由加速度计和/或陀螺仪记录的数据以确认正常曝光图像的模糊的可能性(例如,量化一个或多个运动相关的属性)以选取清晰的正常曝光图像。在一些实施例中,图像捕捉模块选取不太可能是模糊的(例如,具有低于特定运动阈值的运动相关的属性)最近的图像。作为使用运动检测传感器的代替或附加,一些实施例通过使用数字处理技术确定每张图像的频率内容来确定多张图像中的哪一张为最清晰的。在这类实施例中,具有最高频率内容的图像被确认为最清晰的图像。作为替换,在一些实施例中,代替使用来自帧缓冲器的正常曝光图像,在接收到HDR捕捉命令之后,移动设备以正常曝光拍摄一张或多张图像以及曝光过度和曝光不足图像。在一些这类实施例中,图像处理模块选取正常曝光图像中的一张(例如,最清晰的、最近的等等)用以生成合成的HDR图像。下文描述本发明的若干更详细的实施例。章节I描述一些实施例的用户界面如何使用户能够调用HDR模式并捕捉HDR图像。章节II随后描述媒体设备在一些实施例中使用以捕捉和处理HDR图像的软件架构。接着,章节III进一步描述一些实施例的移动设备的图像捕捉模块。章节IV随后描述在一些实施例中移动设备的图像处理模块的图像对齐处理。章节V随后描述在一些实施例中移动设备的图像处理模块的图像合成处理。最后,章节VI描述一些实施例的移动设备的系统架构。1. HDR模式的调用和HDR捕捉在一些实施例中,通过在移动设备的用户界面(UI)中的选择来指示HDR模式。图2A例示了在一些实施例的移动设备200中的HDR模式的调用和在该模式期间拍摄HDR图像。该图例示了在设备200的用户界面的六个阶段245、250、255、257、260和265中的这些操作。如图2A中所示,移动设备200包括显示区域220、图像捕捉M选项215、和闪光灯n选项210。显示区域220在一些实施例中显示由移动设备的传感器在移动设备已经被置于作为相机操作的模式下时所捕捉的场景图像。图像捕捉n选项215是用户可选项,其一旦由用户选取,就指示移动设备捕捉一张或多张图像。在一些实施例中,移动设备包括用于相机的闪光灯。因此,在这些实施例中,闪光灯UI选项210使用户能够打开或关闭闪光灯。如下文进一步描述的,闪光灯UI选项210还使用户能够将移动设备的相机置于HDR模式。现在将描述移动设备200捕捉HDR图像的操作。第一阶段245示出了在移动设备已被置于图像捕捉模式之后该移动设备的用户界面。在一些实施例中,用户可由选取在显示区域220中显示的相机图标而将设备置于该模式。在一些实施例中,当设备进入相机模式时,设备开始捕捉图像,将这些图片暂时存储在其帧缓冲器中,并且在显示区域220中瞬时地显示这些图像。但是,为了突显闪光灯选项210和所显示的n选项以及所执行的操作的顺序,图2A中的第一至第四阶段245-257并未示出在显示区域220中瞬时显示的任何所述图像。第二阶段250示出了用户选取闪光灯n选项210。如图2A中所示,用户能够通过触摸(例如,利用手指225)设备的位于闪光灯选项210处的触摸屏显示区域来进行这一选取。在一些实施例中,用户也可以通过其他n选择技术来选择这一选项。第三阶段255示出了对闪光灯选项210的选择导致闪光灯菜单230的显示。该菜单具有用于打开闪光灯的可选n选项280、用于关闭闪光灯的可选n选项285、用于将闪光灯设定为自动闪光模式的可选n选项290、以及用于打开HDR图像捕捉模式的可选n选项235。尽管可选HDR模式选项235对于一些实施例示出为图2A中的闪光灯菜单230的一部分,但是本领域普通技术人员将认识到,该选项235在一些实施例中可以在设备的n中具有不同的布置。第四阶段257例示了 HDR模式选择项235的用户选择。该选择通过触摸(例如,利用手指240)这一选项位于移动设备的显示触摸屏上的位置而进行。在一些实施例中,用户还可以通过其他n选择技术来选择这一模式。第五阶段260例示了用户通过触摸(例如,利用手指270)这一选项位于移动设备的显示触摸屏上的位置来选择图像捕捉选项215。与在显示区域中的其他可选项一样,在一些实施例中用户能够通过其他n选择技术来选择该图像捕捉选项。选项215的选择导致设备捕捉用户正在显示区域220中观察的HDR场景(在晴天站在窗户前的人)的HDR图像。同样地,即使在进入HDR模式并接收到对图像捕捉选项的选择之前,显示区域瞬时地显示相机在其进入相机模式时临时且反复捕捉的图像,例如预览图像262。但是,如上所述,这些瞬时显示的图像在图2A的阶段245-257中未示出以防止对UI选项的显示和各种UI选项的选择的混淆。第六阶段265例示了在选择图像捕捉选项215后即刻由相机捕捉和存储的HDR图像267。该图像在一些实施例中是设备在使其图像捕捉模块以不同曝光依序地捕捉若干图像且使其图像合成模块合成这些图像之后所产生的经图像处理的数字图像。在一些实施例中,HDR图像267包括在预览图像262中不可见的细节。例如,HDR图像267包括鸟275。如上所述,未在图2A中的显示中示出预览图像262以便防止对n选项的显示和它们的选择的混淆。因此,图2B例示了在关于图2A描述的HDR捕捉操作阶段期间预览图像262的显示。I1.软件架构图3概念性地例示了一些实施例的移动设备的软件架构300。在一些实施例中,该设备能够捕捉HDR场景的图像,能够处理这些图像以产生HDR图像,并且能够对这些图像进行编码(例如,作为JPEG图像)。为了执行这些操作,如图3中所示,该设备包括捕捉模块(CM)驱动器305、媒体交换模块310、编码器驱动器320、以及图像处理模块325。在一些实施例中,媒体交换模块310使设备上的程序(其为媒体内容的消费者和生产者)能够交换媒体内容和与媒体内容的处理相关的指令。因此,在一些实施例中,媒体交换模块310在图像处理模块325与CM驱动器305之间和在图像处理模块325与编码器驱动器320之间路由指令和媒体内容。为了促进这些指令和媒体内容的路由,一些实施例的媒体交换模块310提供了一组应用程序编程接口(API)以用于媒体内容的消费者和生产者使用。在一些这类实施例中,媒体交换模块310是作为在移动设备上运行的操作系统的一部分的一个或多个框架的集合。这种媒体交换模块310的一个示例是由苹果公司提供的核心媒体框架。图像处理模块325执行对由设备的相机所捕捉的图像的图像处理。这种操作的示例包括曝光调整操作、聚焦调整操作、透视校正、图像大小调整等。除了这些操作以外,图像处理模块325执行HDR图像处理操作。具体地,在一些实施例中,模块325包括图1的HDR图像处理模块110。利用该模块110,模块325执行以上参考图1描述的对齐和合成操作。通过媒体交换模块310,图像处理模块325如上所述与CM驱动器305和编码器驱动器320接口。CM驱动器305用作介于图像捕捉模块(ICM) 330与媒体交换模块310之间的通信接口。ICM330是移动设备中负责以不同分辨率捕捉产生HDR图像所需的图像序列的部件。CM驱动器305通过媒体交换模块310接收到来自图像处理模块325的设备已经进入HDR模式且HDR图像捕捉请求已经做出的指令。CM驱动器305将这类请求中继到ICM330,并且响应地接收到不同分辨率下的图像的必要集合以产生HDR图像。CM驱动器305随后通过媒体交换模块310将这些图像发送给图像处理模块325。编码器驱动器320用作介于媒体交换模块310与编码器硬件335(例如,编码器芯片、在芯片系统上的编码部件等等)之间的通信接口。在一些实施例中,编码器驱动器320通过媒体交换模块310接收来自图像处理模块325的图像(例如,所生成的HDR图像)并且请求对图像进行编码。编码器驱动器320将待编码的图像发送给编码器335,编码器335随后对图像执行图片编码(例如,JPEG编码)。当编码器驱动器320接收到来自编码器335的经编码的图像时,编码器驱动器320通过媒体交换模块310将经编码的图像发送回图像处理模块325。在一些实施例中,图像处理模块325能够对其从编码器接收到的经编码图像执行不同的操作。这种操作的示例包括将经编码的图像存储在设备的存储装置中、通过设备的网络接口将经编码的图像发送给另一设备等等。在一些实施例中,模块305、310、320和325中的一些或全部是该设备的操作系统的一部分。其他实施例将媒体交换模块310、CM驱动器305和编码器驱动器320实现为该设备的操作系统的一部分,同时将图像处理模块325作为在操作系统上运行的应用程序。模块300的其他实现也是可能的。 现在将参考图4描述在HDR图像捕捉会话期间图像处理模块325的操作。该图概念性地例示了代表图像处理模块325在一些实施例中执行的用以产生编码HDR图像的一系列操作的处理400。每次设备进入HDR模式时(例如,当选择在图2A中图示的示例中的HDR选择项235时),图像处理模块325执行该处理400。因此,如图4中所示,图像处理模块325初始进入(在405)该HDR模式。接下来,模块325通过媒体交换模块310和CM驱动器305指示(在410)图像捕捉模块330进入其HDR图像捕捉模式。一旦接收到该指令,图像捕捉模块330就计算在当前光照条件下产生曝光过度和曝光不足图像的曝光持续时间,正如上所述和在下文进一步描述的。此外,在该阶段,图像捕捉模块330捕捉正常曝光图像并且将它们暂时存储在帧缓冲器中。为了捕捉这种图像,图像捕捉模块330在设备处于其相机模式操作的同时反复计算曝光持续时间。在指示图像捕捉模块330进入其HDR模式之后,图像处理模块325指示(在415)已经接受到命令的图像捕捉模块330捕捉和产生HDR图像(例如,选择图2A中图示的示例中的图像捕捉选项后随即)。该指令通过媒体交换模块310和CM驱动器305被中继到图像捕捉模块330。响应于该指令,图像捕捉模块330以快速连续的方式捕捉曝光过度图像(其基于其先前针对当前光照条件所计算的曝光过度持续时间捕捉)和曝光不足图像(其基于其先前针对当前光照条件所计算的曝光不足持续时间捕捉)。除了这些图像以外,图像捕捉模块还检索其早先以正常曝光持续时间捕捉且存储在其帧缓冲器中的图像。通过CM驱动器305和媒体交换模块310,图像处理模块325从图像捕捉模块330接收(在415)三张图像中的每一张。在一些实施例中,图像处理模块325在相机捕捉图像的颜色空间中接收三张图像。例如,一些实施例的图像捕捉模块330在Y’ CbCr颜色空间中捕捉和提供这些图像。图像处理模块随后使所有三张图像彼此对齐(在420),这是由于相机可能在其捕捉这三张图像的时间期间已经移动。如上所述并将在下文进一步描述的,图像处理模块使用分层搜索技术使曝光过度和曝光不足图像与正常曝光图像成对地对齐。在对齐各图像之后,图像处理模块合成(在425)三张图像中的图像数据以产生合成的HDR图像。在不同的实施例中,图像处理模块使用不同的技术以合成三张图像。例如,一些实施例通过执行对于这些图像的亮度通道的、与对于这些图像的色度通道不同的操作组来合成这三张图像。此外,在生成HDR合成图像时,一些实施例可能产生超过期望值范围的亮度值和色度值。因此,当生成HDR图像时,一些实施例并行地执行缩放操作以确保HDR图像的亮度和色度值在其期望的范围内生成。在产生HDR图像之后,图像处理模块显示(在425)所生成的HDR图像。接下来,该模块指示(430)编码器335 (通过媒体交换模块310和编码器驱动器320)对HDR图像进行编码。编码器在一些实施例中对该图像进行编码(例如,将其编码为JPEG格式)并且返回经编码的HDR图像。图像处理模块在一些实施例中随后将经编码的HDR图像存储(在430)在设备的存储装置上。一些实施例的图像处理模块还可以对经编码的HDR图像执行其他操作。例如,在一些情况下,图像处理模块通过由设备的网络接口建立的网络连接将生成的经编码图像发送到另一设备。本领域普通技术人员将认识到,图像处理操作能够与上述那些示例不同地实现。例如,代替仅仅处理一张正常曝光图像,一些实施例的图像处理模块检查图像捕捉模块返回的若干正常曝光图像。图像处理模块从该组图像中选择最清晰的且与所捕捉的曝光过度和曝光不足图像最佳匹配的正常曝光图像。作为替换,在一些实施例中,代替使用来自帧缓冲器的正常曝光图像,在接收到HDR捕捉命令之后,移动设备以正常曝光拍摄一张或多张图像以及曝光过度和曝光不足图像。在一些这类实施例中,图像处理模块选择正常曝光图像中的一张(例如,最清晰的、最后的等)以用于生成合成的HDR图像。在一些实施例中,正常曝光图像在HDR捕捉命令之后被拍摄而非来自于帧缓冲器。本领域普通技术人员将理解,各方法(从帧缓冲器获得正常图像和在接收到HDR命令之后拍摄正常图像)具有优于另一种的一些优点。触摸HDR捕捉命令图标的动作使移动设备从其在帧缓冲器中的图像被拍摄时所处的位置移开。在使用来自帧缓冲器的图像时,通过触摸HDR捕捉命令图标所导致的移动设备的运动会在正常曝光图像和曝光过度与曝光不足图像的拍摄之间发生。如果替代地,在HDR捕捉命令图标被触摸之后拍摄新的正常曝光图像,则由触摸所导致的运动将在正常图像被拍摄之前发生而非在图像的捕捉之间发生。因此,拍摄新的正常曝光图像能够减小设备在捕捉三次曝光期间的运动的量。图像捕捉期间运动的减小会增大待合成的重叠区域。如上所述,一些实施例将来自帧缓冲器的最近图像显示为预览图像,并且使用预览图像中的一张作为正常曝光图像。使用来自帧缓冲器的正常图像的可能优点在于图像将看上去更像在接收到HDR捕捉命令之前所显示的预览图像。检索来自帧缓冲器的正常图像的另一可能优点在于在HDR命令被激活与合成的HDR图像被显示之间的时间会更短(例如,短上正常曝光图像的曝光持续时间)。由于一些实施例使用新捕捉的正常曝光而非来自帧缓冲器的图像,因此这些实施例中的一些在移动设备处于HDR模式时不拍摄正常曝光预览图像并将它们存储在帧缓冲器中。尽管如此,即使在其中使用在接收到HDR命令之后捕捉的正常曝光图像的实施例中,一些实施例仍然拍摄正常曝光图像以收集与光照条件相关的数据,确定何种正常曝光持续时间被采用,何种曝光值被采用等等。II1.图像收集模块图5A例示了本发明的一些实施例的图像捕捉模块330。在图像处理模块325的指导下,图像捕捉模块330指导设备的相机捕捉图像。例如,如上面提到的,图像捕捉模块330在一些实施例中指示相机在设备进入其相机操作模式时开始以特定帧速率捕捉正常曝光图像。此外,当相机进入其HDR模式时,模块330通过计算拍摄曝光过度和曝光不足图像的曝光持续时间而进入其HDR模式(在图像处理模块325的指导下)。随后,图像捕捉模块330在处于其HDR模式的同时接收到捕捉图像命令时,该模块330在一些实施例中(I)拍摄两张连续图像,一张以曝光过度持续时间而另一张以曝光不足持续时间,和(2)将这两张图像连同来自其帧缓冲器的一张或多张正常曝光图像一起返回。如图5A中所示,图像捕捉模块330包括传感器模块515、帧缓冲器520、图像处理流水线525、统计引擎530和控制器模块535。在一些实施例中,图像捕捉模块330的所有模块以硬件实现(例如,ASIC、FPGA、具有微控制器的SOC等等),而在其他实施例中,图像捕捉模块330的模块中的一些或全部以软件实现。传感器模块515通信耦接至设备相机的传感器接口 510和相机传感器505。在一些实施例中,相机传感器505是CMOS传感器,而传感器接口 510是相机传感器505的一部分。介于传感器模块与相机传感器/传感器接口之间的通信耦接通过任意数量的已知传感器接口便利化。通过该通信耦接,传感器模块515能够将指令转发到相机以控制相机操作的各个方面,例如其功率水平、缩放级别、对焦、曝光级别等等。在一些实施例中,这些指令通常源自于控制器模块535。此外,如下面进一步描述的,当图像处理模块325通过控制器模块535请求相机开始捕捉图像并且传感器模块515接收到该请求时,传感器模块515能够通过其与相机的通信耦接来指导相机传感器开始捕捉图像。在一些实施例中,Bayer滤波器被叠加到相机传感器之上并且由此相机传感器输出Bayer图案图像,这些图像被存储在与相机传感器相关联的传感器接口内。Bayer图案图像是其中每个像素只存储一个颜色值的图像红色、蓝色或绿色。通过其与传感器接口 510的耦接,传感器模块515检索存储在相机传感器接口 510内的原始Bayer图案图像。通过控制传感器模块515从相机的传感器接口检索图像的速率,传感器模块515能够控制正由特定相机捕捉的图像的巾贞速率。传感器模块515将其从传感器接口 510检索到的图像存储在帧缓冲器520中。存储在帧缓冲器520中的图像为原始的、未处理的图像。在图像处理模块325能够处理这些图像之前,图像捕捉模块330的图像处理流水线525需要对它们执行若干预处理操作。不同的实施例执行不同的预处理操作集合。例如,在一些实施例中,图像处理流水线525包括从存储在帧缓冲器520中的Bayer图案图像重构红、绿、蓝(RGB)图像的去马赛克模块(未示出),所述重构通过将每组颜色的色彩值内插到Bayer图案图像中而实现。此外,一些实施例的图像处理流水线525包括将RGB图像转换为Y’ CbCr图像的颜色空间转换模块(未示出)。包括在一些实施例的图像处理流水线525中的其他模块的示例包括执行以下的模块(I)坏像素去除以尝试校正从帧缓冲器中检索出的图像中的坏像素,(2)镜头阴影校正以校正由相机透镜所引起的图像缺陷,(3)白平衡校正以调整图像的颜色从而正确地呈现中性色调等等。如本文所用,从一种格式转换为另一种指的是使用来自一种格式的图像的数据生成不同格式的图像。在一些实施例中,新版本的图像替换旧图像;在其他实施例中,旧版本和新版本的图像均被保留。统计引擎530收集处于图像处理流水线525的不同阶段的图像数据。此外,在不同的实施例中,该引擎收集与图像处理流水线525的不同阶段不同的数据。统计引擎530处理所收集的数据,并且基于经处理的数据,通过控制器模块535和传感器模块515调节相机传感器505的操作。这种操作的示例包括曝光和调焦。在一些实施例中,曝光持续时间由传感器积分时间和传感器/捕捉模块的模拟/数字增益的组合来确定。尽管图5A示出了通过控制器模块535控制相机传感器的统计引擎530,但是统计引擎530在其他实施例中通过仅仅传感器模块515控制相机传感器。此外,尽管统计引擎530示出为与控制器模块535分开,但是该引擎的操作由控制器模块535执行。换言之,图5A中的统计引擎的模块化是由图像捕捉模块330执行的一系列操作的概念化。一些实施例的控制器模块535是控制图像捕捉模块330的操作的微控制器。例如,在一些实施例中,控制器模块535指示相机传感器505通过传感器模块15捕捉图像。此夕卜,在一些实施例中,控制器模块535控制⑴相机传感器通过传感器模块515的操作(例如,曝光量),(2)图像处理流水线525的操作,和(3)在一些实施例作为移动设备的一部分的闪光灯/选通脉冲(未示出)。代替从控制器模块535接收曝光设定,或者与这些设定相结合,一些实施例的相机传感器505或传感器模块515使用相机传感器操作的默认值。控制器模块535的一些实施例处理从统计引擎530和捕捉模块驱动器305接收到的指令。在一些实施例中,从捕捉模块驱动器305接收到的指令是来自移动设备的指令(即,从本地设备接收),而在其他实施例中,从捕捉模块驱动器305接收到的指令是来自另一设备的指令。基于经处理的指令,控制器模块535能够调节图像捕捉模块330的操作。图5B例示了本发明的一些其他实施例的图像捕捉模块330。在图5B中,传感器模块515不直接控制相机传感器505并且不接收来自控制器模块535的命令。在该图中,控制器模块535控制相机传感器505。在图5B中,传感器模块515将数据从传感器接口 10传递到帧缓冲器520,正如在图5A中的传感器模块515 —样。图6例示了处理600,其概念性地代表了图像捕捉模块330在HDR图像捕捉会话期间的一系列操作。该处理每次在设备进入其图像捕捉模式时开始。如图6中所示,该处理初始地开始(在605)以特定默认速率捕捉图像。基于所捕捉图像中的一张或多张的一个或多个品质(例如,直方图或总光照水平),控制器模块535在一些实施例中检测(在605)当前光照条件。基于当前光照条件,控制器模块限定(在605)用于捕捉正常曝光图像(下文称为EVO图像)的曝光持续时间并且将该曝光持续时间中继(在605)至传感器模块515。在其他实施例中,与相机传感器505或传感器模块515相关联的控制逻辑检测光照条件并限定用于正常曝光(下文称为EVO曝光)的曝光持续时间。在一些实施例中,该控制逻辑包括能够量化设备在其下操作的光照的量的光检测电路。无论在何处以及如何计算正常曝光持续时间,处理600开始以正常曝光持续时间捕捉图像并将捕捉的图像存储在帧缓冲器中。在一些实施例中,处理600在图像捕捉会话期间反复计算正常曝光持续时间以随着光照条件改变确认正常曝光持续时间。在605之后,控制器模块535接收(在610)指令,其已收通过CM驱动器305和媒体交换模块310从图像处理模块325接收到的HDR模式命令。基于该命令,控制器模块535计算(在615)用于在当前光照条件期间拍摄曝光过度和曝光不足图像(拍摄EV+和EV-图像)的曝光持续时间。在一些实施例中,控制器模块在HDR捕捉会话期间反复执行操作615以随着光照条件改变确认曝光过度和曝光不足的曝光持续时间。接下来在620,控制器模块535接收指令以拍摄图片。响应地,控制器模块535指导(在625和630)传感器模块以曝光 过度持续时间捕捉一张曝光过度图像并以曝光不足持续时间的曝光不足图像。控制器模块535随后指导(在635)图像处理流水线525从帧缓冲器检索所捕捉的EV+和EV-图像以及位于帧缓冲器中的一张或多张EVO图像。如上所述,在一些实施例中图像捕捉模块将若干EVO图像返回到图像处理模块325,以使模块325能够选择用于与EV+和EV-图像对齐的最佳EVO图像。作为替换,在一些实施例中,图像捕捉模块330仅仅返回一张正常曝光图像,但是试图确保该返回的图像是不模糊的(S卩,是清晰的)。在不同的实施例中,图像捕捉模块330以不同的方式试图确保该图像是清晰的。例如,在其中设备具有加速度计和/或陀螺仪的一些实施例中,图像捕捉模块使用由加速度计和/或陀螺仪记录的数据以确认正常曝光图像模糊的可能性以选择清晰的正常曝光图像。在不同的实施例中,控制器模块535不同地指导(在635)图像处理流水线525检索曝光过度图像、曝光不足图像和正常曝光图像。在一些实施例中,控制器模块535简单地向处理流水线525通知曝光过度图像和曝光不足图像正被捕捉,并且处理流水线525从帧缓冲器520检索正确的图像。图像处理流水线525预处理(在640)从帧缓冲器520检索出的每张图像。图像捕捉模块330将每张检索出且预处理的图像返回(在640)到图像处理模块325以用于HDR图像生成。在640之后,如果设备 不再处于HDR捕捉模式,则该处理结束,或者返回到620以等待另一“图片拍摄”命令。以上描述将所捕捉的图像确认为与光照条件相关的一个或多个信息源。但是,在一些实施例中,相机传感器505在不生成图像数据的情况下确定光照条件。一些实施例的移动设备使用另外的传感器作为相机传感器505的代替或者附加以确定光照条件。
IV.图像对齐A.介绍为了从由移动设备所拍摄的场景的三张图像获得合成图像,在示出了场景的特定部分的每张图像中的像素必须与在示出了场景的同一部分的其他图像中的每一张中的像素合成。如果移动设备在图像被拍摄时未移动,则在每张图像中代表场景的特定部分的像素将与在其他图像中的每一张中代表场景的同一部分的像素具有在图像中的相同坐标。这种图像可以表征为对齐。但是,如果移动设备在图像拍摄期间移动,则在一张图像中代表场景的特定部分的像素将与在其他图像中代表场景的同一部分的像素具有稍微不同的坐标。换言之,由移动设备拍摄的图像将会失准。在合成图像之前,一些实施例通过在合成图像之前对齐各图像来补偿移动设备的移动。也就是说,确定原始图像在竖直和水平方向上彼此偏移的像素数,使得移动设备随后能够将来自每张图像的、与场景的同一部分相对应的像素组合,即使对应的像素在原始图像的每一张中不具有相同的坐标。对齐两张图像中的相应像素的偏移能被表征为以像素为单位的偏移矢量。在相同场景拍摄的两张图像之间的偏移能够由移动设备在图像被拍摄时的旋转或平移导致。当用户命令一些实施例的移动设备拍摄高动态范围图像时,移动设备以快速连续的方式拍摄三张图像而在拍摄每张图像之间间隔的时间很短。然而,尽管在拍摄图像中的每一张之间间隔的时间很短,手持移动设备仍很可能在拍摄三张图像的处理中稍微移动。例如,触摸移动设备以命令其拍摄HDR图像的动作会使设备移动。由于移动设备的运动,因此每张图像将从稍微不同的位置拍摄。由于位置上的细微改变,原始图像将不会彼此对齐。在高动态范围处理能够合成以不同曝光拍摄的图像之前,必须(例如,由移动设备)通过找出将使得各图像对齐的特定偏移矢量而使图像彼此对齐。这种对齐是有时被称为“配准”的处理的一部分。图像彼此偏移的像素数取决于相机在拍摄图像时移动(通过平移和旋转)多远以及图像的标度(例如,图像中的每个像素代表场景的多少厘米或多大程度)。例如,相机的旋转或平移运动可能导致场景的两张图像失准IOcm (例如,一张图像比另一图像示出了场景的左侧的更多IOcm和场景的右侧的更少10cm)。在这种情况下,如果图像的标度使图像中的I个像素相当于场景中的1cm,则图像将失准10个像素。提供该标度用以解释图像相对于场景中的真实世界物品的位置的变化能够如何转化为图像相对于构成该图像的像素的变化。在一些实施例中,移动设备不测量图像的实际标度。一些实施例的移动设备不具有对设备在拍摄图片的处理中已经移动多远的准确测量。由此,在这种实施例中对齐各图像的偏移在图像被拍摄时是未知的。一些实施例的移动设备将通过测试偏移矢量范围来确认使两张图像对齐的偏移。在由移动设备测试的范围内以确定它们是否使给定的图像对相对齐的偏移矢量集在本文被称为“潜在偏移矢量”或“潜在偏移”。一些实施例的移动设备通过比较在不同偏移矢量值下的图像(或从图像导出的位图)来确定哪个潜在偏移矢量将对齐各图像。潜在偏移的范围在一些实施例中被限制在将在图像之间留下显著重叠的那些偏移。由于合成处理主要对图像的重叠部分进行,因此在这类实施例中不测试将无法得到显著重叠的偏移。移动设备在用户(其试图在拍摄图片时使移动设备保持稳定)的手中的运动有可能相对较小;由此对齐偏移相对于图像的尺寸通常较小。然而,一些实施例仅仅在运动比平常要大的情况下测试较大范围的偏移。在一些实施例中,一个或多个外部传感器(例如,陀螺仪、运动传感器等等)被用来估计移动设备的位移和/或旋转。这种估计在一些实施例中用来确定搜索偏移矢量的起点。在一些实施例中,所述估计被用来确定待搜索的偏移矢量的范围(例如,如果移动设备被保持非常稳定,则搜索范围比移动设备被保持不太稳定的情况窄)。即使在其中将潜在偏移的范围限制为在图像之间留下显著重叠的那些实施例中,潜在偏移的量也会较大。例如,如果潜在偏移范围是从1000个像素平方的图像的宽度和高度的0%至6. 4%,则潜在偏移矢量在任意方向(上、下、左或右)上将会介于0与64个像素之间。利用该范围的可能偏移矢量,可能偏移矢量的总数为大约16,000 (大约128个竖直像素乘以大约128个水平像素)。当存在待测试的数千潜在偏移矢量时,通过在每个可能偏移矢量下直接比较较大的图像(或较大的位图)来测试潜在偏移矢量需要非常大的计算数量。为了减小被执行用以找出实际偏移的计算数量,一些实施例执行分层对齐处理。一些实施例的分层对齐处理生成图像的低分辨率版本。低分辨率图像包含相同的场景,但是具有较大的缩放因数。例如,如果1000X1000 (像素X像素)的图像代表IOm宽的场景,则在图像中的一个像素长度代表在场景中的1cm。在由1000X1000的图像所生成的500X500分辨率的图像中的一个像素长度代表在场景中的2cm。类似地,在由500X500的图像所生成的250X250分辨率的图像中的一个像素长度代表在场景中的4cm。由于标度的差异(S卩,用更少的像素代表同样的场景),更低分辨率的潜在偏移矢量覆盖图像的相同分数,但是潜在偏移矢量的绝对数量更小。在上述示例中,将分辨率降低4倍(从1000个像素平方到250个像素平方)将可能偏移的范围从加或减64个像素减小到加或减16个像素(S卩,64个像素除 以4)。这一减少将可能偏移矢量的数量减小16倍(SP,从大约16,000个可能偏移矢量到大约1,000个可能偏移矢量)。这种处理开始于第一近似并且随后通过连续地精细近似确定实际偏移矢量以找出偏移矢量。一些实施例的处理计算偏移矢量的连续近似值,其通过以下使两张图像对齐生成原始图像的分辨率降低的版本,由图像的低分辨率版本生成I位位图,并且使位图对齐。位图对齐从使用最低分辨率位图开始。为了使位图对齐,该处理使用各种测试偏移矢量将两张位图相互比较以确定在位图之间的实际偏移矢量。一些实施例的处理则比较位图中的像素子集而非比较位图中的所有像素。在一些这类实施例中,在比较两张位图之前,所述处理将一张或两张位图分割成分块并且将含有大于黑色像素的阈值百分比或大于白色像素的阈值百分比的分块丢弃。这类处理随后比较在剩余分块中的像素以确定在位图之间的偏移矢量。使用针对每种分辨率的位图而确认的偏移矢量用作针对下一更高分辨率的位图来测试偏移矢量的起点。下文参考图7-11进一步描述这些处理。B.用于对齐的位图的产生一些实施例产生要被用来搜索将使两张图像对齐的偏移矢量的多个位图。图7例示了生成用于对齐各图像的这类系列位图的处理700的一些实施例。如本文所用,术语“位图”指的是带有一位每像素颜色深度的图像版本。在这类位图中的每个像素可被代表为黑色或白色。处理700接收(在710)初始图像。在一些实施例中,图像接收自移动设备的相机。一些实施例的移动设备的相机操作由独立于执行处理700的程序的程序控制。在这类操作的一些中,图像接收自控制相机操作的程序。在其他实施例中,单个程序控制相机的操作并且执行处理700。在这类操作的一些中,实施移动设备的位图生成处理700和相机操作两者的程序从相机硬件接收图像。作为从相机硬件接收图像的替代或附加,一些实施例的程序从移动设备的存储器接收图像。移动设备的不同实施例提供不同格式的图像。在一些实施例中,图像以针对每个像素的亮度值和一组颜色值表示。例如,在一些实施例中,该处理接收Y’CbCr (亮度、蓝色色度和红色色度)格式的图像。在一些实施例中,图像以不同颜色分量值表示。作为提供亮度/色度格式的图像的替代或附加,一些实施例的移动设备提供不同的颜色分量值的图像。一些实施例的颜色分量值提供为RGB格式(例如,sRGB图像)。在这类实施例中,作为接收操作的一部分,处理700将图像转化为亮度图像。该处理抽取(在720)初始亮度图像。初始图像的抽取生成初始图像一半分辨率(在每个维度上)的图像副本。例如,如果初始图像具有1920X1280的分辨率,则副本将具有960X640的分辨率。处理700执行特定次数的抽取以生成具有不同分辨率水平的多个图像以用于偏移矢量的连续近似,例如在图9-10的处理中例示的。各种实施例抽取图像不同的次数。在一些实施例中,抽取的次数影响潜在偏移的范围。给定图像的分辨率越低,针对图像的给定百分比的潜在偏移矢量的数量越小。因此,在一些实施例中,待测试的潜在偏移的范围越大,使用越高级别的抽取。在一些实施例中抽取级别的数量被预编程。例如,一些实施例提供初始图像和五个级别的抽取,其中最低分辨率的经抽取图像是初始图像分辨率的1/32(在每个维度上),并且具有1/1024的像素数。一些实施例提供初始图像和六个级别的抽取,其中最低分辨率的经抽取图像是初始图像分辨率的1/64 (在每个维度上)并且具有1/4096的像素数。分辨率的降低导致在图像给定分数中的潜在偏移矢量的数量相应降低。由此,像素数的I至4096倍的减小使在图像的给定分数中的潜在偏移矢量的数量减小4096倍。在一些实施例中,抽取的数目是预设的。然而,诸如抖动的手或低光照水平之类的局部条件会影响移动设备的运动。由此,作为使用预设(默认)数目的抽取的附加或替代,一些实施例允许用户确定抽取水平的数目或者允许移动设备响应于初始图像拍摄时刻可用的一个或多个变量动态地确定抽取水平的数目。例如,当用更长的总曝光持续时间(例如,在低光照条件下)拍摄三张HDR图像时,用户的手具有更多的时间移动,由此会以相同的速度移动更远。一些实施例通过增大抽取水平补偿用来移动的额外时间来对这些额外运动进行补偿。一些实施例的移动设备包括运动传感器,其至少提供用户的手如何快速移动的一些指示。在一些这类实施例中,移动设备在捕捉图像期间的更快运动使得移动设备产生更高的抽取水平。不管如何确定抽取数目,抽取数量是有限的。因此,该处理确定(在730)抽取是否已被重复足够次数以生成期望数量的经抽取图像。如果抽取尚未重复足够的次数,则该处理返回到720以对在上一轮抽取中产生的图像进行抽取。抽取(在720)的每次重复产生连续更小分辨率的图像的新副本。例如,如果抽取从具有1920X1280的分辨率的初始图像开始执行六次,则图像的总数将为七张(包括初始图像),具有分辨率1920X1280 (初始图像)、960X640 (经一次抽取的图像)、480 X 320 (经二次抽取的图像)、240 X 160 (经三次抽取的图像)、120X80 (经四次抽取的图像)、60X40 (经五次抽取的图像)和30X20 (经六次抽取的图像)。
抽取在一些实施例中通过任何已知的抽取图像方法执行。例如,一些实施例使用以下技术中的一种或多种(1)将像素分组为nXn正方形,其中n为抽取因数(例如2),随后求取正方形中的像素值的平均;(2)运动平均滤波器;(3)加权运动平均滤波器;(4)选定在每个n X n组中的一个像素值(例如,中位像素值或在组中的特定位置处的像素值);(5)使用最小二乘分析技术;(6)子采样;和(7)其他抽取方法。一旦处理700确定(在730)已从每张图像(即,初始亮度图像和源自抽取的每张图像)产生出了正确数量的经抽取图像,该处理就生成I位位图。位像由图像生成,这是由于找出在两张位图之间的偏移比直接找出在图像本身之间的偏移计算强度更小。用于生成位图的一些实施例的操作补偿亮度值的差异,该差异源自于待比较的图像的不同曝光水平。不管在每次曝光中的不同亮度值,每次曝光将示出场景的较亮部分为比场景的较暗部分更亮。更具体地,在一次曝光中更亮(和更暗)的一半像素在形状和位置上将与在其他曝光中更亮(和更暗)的一半像素紧密匹配。每张图像的中位亮度值用来将该图像中更亮的一半像素与该图像中更暗的一半像素分开。图像的中位亮度值是图像中的一半像素相比其具有更低亮度值(或相同亮度值)且图像中的一半像素相比其具有更高亮度值(或相同亮度值)的亮度值。由此,不考虑不同的曝光次数,使用该图像的中位亮度值对每张图像执行的阈值操作将生成与由其他图像所产生的位图大致相同的位图。因此,为了准备从亮度图像生成位图,处理700确认(在740)每张图像(包括初始图像和所有经抽取图像)的中位亮度值。该中位亮度值将被用于生成位图。如上所述,通过为每张图像使用单独的中位亮度值,对齐处理700补偿在不同曝光中的不同的亮度值范围。本领域普通技术人员将理解,一些实施例可以使用其他生成位图的方法。例如,一些实施例的阈值源自于中位亮度值(例如,阈值为中位亮度值除以2)而非中位亮度值。一些实施例的阈值由图像的一些其他特征确定(例如,阈值为亮度范围的均值而非亮度的中位值)。该处理随后通过使用该图像的中位亮度值作为阈值执行阈值操作来生成每张图像的I位位图版本。对亮度图像中的像素的阈值操作生成在位图中的对应像素。如果在图像中的对应像素比阈值亮度值亮,则阈值操作生成在位图中的白色像素,如果在图像中的对应像素比阈值亮度值暗,则阈值操作生成在位图中的黑色像素。由于在该操作中使用的阈值亮度值是用于生成位图的图像的中位亮度值,因此位图中的大约一半的像素将会是黑色的,而大约一半的像素将会是白色的。处理700随后结束。处理700在以上描述为包括若干特征。本领域普通技术人员将理解,并非上述特征的全部均在每个实施例中找出。此外,处理700的各种实施例具有作为上述特征中的一个或多个附加或者替代的其他特征。本领域普通技术人员将认识到,一些单独的实施例包括实施作为对彼此的替换方案而非在相同操作中实施的多个特征。例如,上述处理对亮度图像进行。但是,本领域普通技术人员将理解,一些实施例使用辉度图像(YCbCr图像的辉度分量)来代替亮度图像。其他实施例在一些情况下使用亮度图像而在其他情况下使用辉度图像作为替换方案。上述处理从亮度图像生成单独的位图,但是在一些实施例中,位图盖写对应的亮度图像。经抽取图像在一些实施例中在位图生成处理期间被盖写,或者在其对应位图已经被生成之后删除以节省存储器。尽管上述处理700在所有抽取图像已经产生之后从经抽取图像生成位图,但是本领域普通技术人员将理解,一些实施例在经抽取图像产生之后且在所有经抽取图像已产生之前从经抽取图像生成位图。上述实施例以因数2抽取图像。但是,本领域普通技术人员将理解,一些实施例以2以外的其他因数抽取图像。在上述处理中,每张经抽取图像从下一最高分辨率的经抽取图像生成。但是,在一些实施例中,经抽取图像使用下一最高分辨率的经抽取图像以外的其他图像生成(例如,经抽取图像可从初始亮度图像或者从两个分辨率水平以上的经抽取图像产生)。在上述处理中,在位图中的黑色像素对应于在亮度图像中的比中位亮度暗的像素,而在位图中的白色像素对应于在亮度图像中的比中位亮度亮的像素。但是,本领域普通技术人员将理解,“黑色”和“白色”表示颜色的任意选择以代表在位图中的像素的两个可能的二进制值。在一些实施例中,在图像中的较暗像素将在位图中表示为二进制值“O”,而在图像中的较亮像素将在位图中表示为二进制值“I”。在其他实施例中,在图像中的较暗像素将在位图中表示为二进制值“1”,而在图像中的较亮像素将在位图中表示为二进制值“O”。图8例示了可被用于搜索对齐的一些实施例的位图的示例。位图已从汽车的图像生成。在图8中的位图并未按比例绘制。该图包括初始图像800和805、位图810A-810C和815A-815C、以及分块位图820和825。初始图像800是由移动设备利用中等持续时间曝光拍摄的图像。初始图像805是由同一移动设备利用更短的持续时间曝光拍摄的图像。位图810A-810C是从初始图像800的副本生成的位图(具有不同的分辨率)。位图815A-815C是从初始图像805的副本生成的位图(具有不同的分辨率)。分块位图820是已经被概念性地分割成分块的位图810C的副本。分块位图825是已经被概念性分割成分块的位图815C的副本。可以相互比较该附图中的具有相同分辨率的位图以搜索初始图像800和805的偏移。图像800和805的偏移是矢量,其在应用到图像中的一张时使得该图像与另一张图像对齐。在这种情况下,图像800中的汽车更靠近其图像的右侧,而图像805中的汽车更靠近其图像的左侧。由此,向图像805施加使其像素朝向右侧移动正确的量的偏移将使其与图像800对齐。由于位图810A和815A直接从初始图像生成,因此位图810A和815A与图像800和805偏移相同的量。图像800和805的偏移可以通过找出位图810A和815A的偏移而得出。但是,仅仅通过尝试每个可能偏移以查看其是否使位图对齐来找出位图810A和815C的偏移会由于使两张高分辨率位图对齐的较大数量的待检验的可能偏移而导致代价高昂的计算。由此,一些实施例的处理经由连续近似的分层处理而非尝试高分辨率位图的所有可能的偏移矢量来查找正确的对齐。位图810C和815C的分辨率降低导致在使位图810C与815C对齐时的更少的待检验的可能偏移。但是,更低数量的待检验的可能偏移也意味着在该分辨率下找出的偏移精度较低。具体地,在位图810C与815C之间的一个像素的偏移代表在初始图像800与805之间的若干像素(例如,64个像素)的偏移,由此用于对齐位图810C与815C的偏移将无法精确规定使位图810A与815A对齐的偏移。但是,用于对齐位图810C与815C的偏移可被用作使位图810A与815A对齐的偏移的一级近似。用于对齐位图810C与815C的偏移是用于找出更高分辨率位图的偏移的分层处理的起点。连续变大的位图集合允许使用每个连续更高分辨率的位图来细化偏移的值。在图8中,在给定位图列中的每张相邻位图概念性地表示从具有用来生成该列中前一位图的图像分辨率的一半的图像所生成的位图,使得每张位图的偏移是下一最高分辨率的偏移的一半。例如,位图810A从分辨率为1920 X 1280 (初始)的初始图像800生成,而位图810B从分辨率为960X640 (经一次抽取的图像)的初始图像800的抽取副本(未示出)生成。在位图810B与815B之间的向右10个像素的偏移代表在位图810A与815A之间的向右20个像素(加或减一个像素)的偏移。当找出针对更高分辨率位图810A和815A的偏移时,用于查找的起点将为向右20个像素。如下面关于图9-图11进一步描述的,对齐处理随后将估计在起点的一个像素内的可能偏移以在向右19个像素、20个像素和21个像素处查找实际偏移。在图8中,在位图810B与810C之间的省略号省略了由每个具有前一经抽取图像的一半分辨率(在每个维度上)的经抽取图像生成的依次更小分辨率的位图。如参考图7,位图的抽取和生成对于一些特定数量的分辨率水平(例如,六个水平)继续。在图8中,位图810A-810C和815A-815C以及初始图像800和805未按照比例绘制。上述实施例描述从具有与所生成的位图相同分辨率的经抽取图像生成每张位图。作为替换,在一些实施例中,较低分辨率的位图可从较高分辨率的位图而非从经抽取图像生成。从较高分辨率的位图生成位图在一些实施例中比从经抽取图像生成位图要快。但是,从较高分辨率的位图而非从经抽取图像生成位图趋于在位图中生成伪像,而这会降低搜索偏移矢量的效率和/或精度。因此这种技术并未在所有实施例中使用。一些实施例通过将一张或两张位图分割成分块并且将在一些或全部分块中的像素与在其他位图中的对应像素相比较以找出导致每张图像的特征排齐的偏移矢量来使位图对齐。下文的简短描述针对的是在每个分辨率下使一张位图分块的实施例。一些实施例的处理使用多个测试偏移矢量多次比较两张位像。该比较将在一张位图(“分块位图”)中的像素与在第二位图(“目标位图”)中的对应像素进行系统化比较。该处理将在分块位图中的像素与在以偏移矢量偏移的目标位图中的像素进行比较。对于每个测试偏移矢量,一些实施例的处理计数彼此不同的对应像素的数量。测试偏移矢量越接近在两张图像之间的实际偏移,两位图中在分块位图与(移位的)目标位图之间不同的像素数越小。由经抽取图像生成的一些位图包括几乎全黑或几乎全白的分块。在一些实施例中,全黑、几乎全黑、全白、或几乎全白的分块从比较中的省略加速该比较而不会改变所确认的偏移矢量。由此,一些实施例将黑色、几乎全黑、白色和几乎全白的分块从比较中丢弃。因此,作为用于找出偏移矢量的处理(下文参考图9和图10描述)的一部分,一些实施例的位图被概念性地分割成分块,例如分块位图820和825。每个分块包含多个像素。在用于找出两张位图的偏移矢量的处理的一些实施例中,忽略全黑或白色分块小于某一阈值数目的几乎全黑的分块(例如,在分块位图820中的前轮的顶半部),并且忽略全白(例如,分块位图820的左边缘和顶边缘分块)或黑色分块小于某一阈值数目的几乎全白的分块(例如,分块位图820的前方雨刮)。也就是说,在搜索使这两张位图对齐的偏移矢量时,在这些分块内的像素并未被包括在所进行的两张位图的比较内。C.图像的分层对齐一旦以多种分辨率产生位图,一些实施例就使用这些位图找出对齐各图像的偏移矢量。图9-10例示了用于找出使两张图像对齐的偏移矢量的一些实施例的处理900和处理1000。为了清楚起见,对处理900的描述是对两张图像彼此对齐的描述。但是,在一些实施例中,处理900接收针对不同曝光的三张初始图像的三组位图并且使三张图像对齐。在对齐三张图像时,处理900首先使两张图像对齐并且随后使第三张图像与前两张图像中的一张对齐。处理900是分层处理,其通过使用低分辨率位图找出用于偏移的总体近似来找出两张图像之间的偏移,并在随后通过使用逐渐更大的分辨率位图依序找出与实际偏移矢量更接近的近似而收窄至实际偏移值。该处理测试各分辨率下的九个候选偏移矢量以找出哪个偏移矢量在其分辨率将位图带至最接近对齐。将参考图11描述图9-10。图11例示了在一些实施例中找出使两张图像对齐的偏移矢量的示例。该图示出了如何通过处理900以每次一个分层水平找出两张图像之间的偏移矢量。该图包括行/阶段1110-1140和列1165-1180。阶段1110-1140中的每一个概念性地代表在确认两张附图之间的偏移矢量时的分层级别。列1165-1180中的每一个代表每个阶段的显著特征。阶段1110-1140各自包括经抽取分辨率(在列1165中)、起始偏移矢量(在列1170中)、对偏移矢量的确认添加(在列1175中)、以及新的偏移矢量(在列1180中)。列1165的经抽取分辨率值确认在每个阶段中待比较的位图的分辨率。这概念性地例示了在处理900中的分辨率的选择(在920和970)。列1170的起始偏移矢量代表作为原点(候选矢量将绕其进行测试)的偏移矢量。列1175的每一行包括九个候选矢量。在列1175的各个阶段中的箭头(和圆圈)概念性地例示了由处理1000选择的、作为产生在该分辨率下的位图的最佳对齐的候选偏移矢量的候选矢量。列1180的新偏移矢量代表起始偏移矢量和在同一阶段在列1175中确认的矢量的和。在最终阶段1140在列1180中的偏移矢量代表两张初始、全分辨率图像的偏移。在一些实施例中,处理900使用由诸如图7的处理700之类的处理所产生的位图。处理900开始于接收(在910)两组位图。每组位图已经从来自移动设备的初始图像生成。所接收的位图组包括一定范围的分辨率,每个比下一较大分辨率小2倍。处理900选择(在920)最低分辨率位图作为进行操作的当前位图对(例如,为了找出使位图对齐的偏移矢量)。在图11的示例中,阶段1110代表最低分层水平。如在列1165中所示,阶段1110中的位图的分辨率为30X20。如以上关于分块位图820和825所描述的,位图可被概念性地分割为分块。处理900将每组中的当前位图分割成(在930)分块。一些实施例仅被每个位图对(具有共同分辨率)中的一张位图分割为分块。每个分块包含特定组的像素。在这一上下文中,分块被认为是在像素位于由该分块确认的位置范围内时包含该像素。例如,使用位图的下左像素作为坐标(0,0),特定分块可以包括X坐标介于10个像素与19个像素之间且y坐标介于20个像素与29个像素之间的所有分块。具有坐标(13,25)的分块将会是位于该分块中的像素,而具有坐标(22,25)的像素则将会是位于不同分块中的像素。本领域普通技术人员将会理解,分块在不同的实施例中可以具有不同的尺寸并且甚至在相同的实施例中也可以具有不同的尺寸。例如,不同分辨率的分块可以是不同的尺寸。一些实施例的分块相对于位图的分辨率具有不同的尺寸。一些分块包含显著数量的黑色像素和白色像素两者。其他分块包含全部(或几乎全部)的黑色像素或者全部(或几乎全部)的白色像素。为了加快找出使两个分块对齐的偏移矢量的后续比较,一些实施例的处理丢弃(在940)几乎只包含一种颜色的像素(黑色或白色)的所有分块。也就是说,当执行后续比较以找出候选偏移矢量使两张位图对齐至何种程度时,处理900将不包括来自在那些比较中被丢弃的分块的像素。在一些实施例中,如果分块具有小于阈值数目的少数颜色,则该分块被丢弃。阈值数目在一些实施例中为在分块中的像素的总数目的5%。在其他实施例中,少数颜色的阈值数目为在分块中的像素的一些其他百分比。在一些实施例中,位图对中仅有一张的分块被丢弃。在其他实施例中,两张位图都从中丢弃分块。处理900确认(在950)用于使当前分辨率的两张位图对齐的偏移矢量。用于找出偏移矢量的操作950作为图10的处理1000被进一步描述。图11概念性地在列1175中例示了操作950。例如,如在阶段1110的列1175所示,操作950评估在原点的一个像素内的所有矢量以找出提供在该分辨率(30X20)下各位图之间的最紧密对齐的偏移矢量。在阶段1110的列1175中的箭头表示最紧密对齐由偏移(1,I)生成。在最低分辨率阶段1110,操作950使初始图像分辨率的1/64 (在每个维度上)的位图对齐。确认的偏移矢量的值在每个阶段加倍,由此在一个阶段的候选偏移矢量的贡献在每个后续阶段加倍。例如,在阶段1110的列1180中选择的候选偏移矢量为(1,I)。该矢量在每个后续阶段中加倍(6次),使其总贡献为最终偏移矢量出4,64)。类似地,在阶段1120选择的候选偏移矢量(-1,-1)加倍4次,从而使其对最终偏移矢量的总贡献为矢量(-16,-16)。有效地,就在全分辨率(1920X1280)图像之间的实际偏移矢量而言,在阶段1110,操作950找出在两个全分辨率图像之间的偏移为(64,64) (S卩,64乘以所确认的偏移矢量)。偏移(64,64)是将在后续阶段被细化的粗略确定。例如,在阶段1115的操作950能够在每个方向上(竖直和水平)将偏移矢量改变0或±32 ;在阶段1120,其能够在每个方向上将偏移矢量改变0或± 16,并且依此类推直到能够在每个方向上将偏移矢量改变0或± I的阶段1140为止。因此,假设在后续阶段中的全范围的可能偏移,而非在图11中所示的特定偏移矢量,给定在最低分辨率下的偏移(1,I),在后续阶段,操作950能够找出在水平方向上的介于I个与127个像素之间并且在竖直方向上的介于I个与127个像素之间的图像最终偏移。类似地,在阶段1115,操作950使位图对齐,该位图为实际图像分辨率的1/32(在每个维度上)。就在全分 辨率(1920X 1280)图像之间的实际偏移而言,操作950找出在两个全分辨率图像之间的偏移为(96,64)(即,32乘以所确认的偏移矢量)。偏移(96,64)仍是将在后续阶段1120-1140被细化的粗略确定。后续阶段能够将矢量值向上或向下调节达31个像素。假设在后续阶段中的全范围的可能偏移而非在图11中所示的特定偏移矢量,给定偏移在该分辨率(60 X 40)下为(3,2),处理900在后续阶段中能够找出在水平方向上的介于33个与95个像素之间且在竖直方向上的介于65个与127个像素之间的图像最终偏移。一旦偏移矢量已在给定分辨率下找出,处理900就确定(在960)是否还有位图待对齐。如果该处理确定(在960)还有位图需要被评估,则处理选择(在970)下一最低分辨率位图作为当前位图。例如,在图11中,在阶段1110之后,操作970选择下一最低分辨率位图60X40。该处理随后加倍(在980)在操作950中所确认的偏移矢量以用作评估具有新分辨率的位图的候选偏移矢量的起点。例如,在图11中,在阶段1110的列1180中,偏移矢量(I, D从(1,D加倍到在阶段1115的列1170中的(2,2)。在每个阶段,起始偏移矢量是来自前一阶段的新偏移矢量的两倍以计及阶段的分辨率为前一阶段的分辨率的两倍的事实。有效地,位图的每个坐标从一个分辨率到下一分辨率加倍并且新的起始偏移矢量相应地加倍。如果该处理确定(在960)没有位图需要被评估(即,当最近比较的位图是全分辨率位图时),处理900已经找出将使两张初始图像对齐的偏移矢量。例如,在图11中,在阶段1140之后,不再有待评估的位图。因此,在阶段1140的列1180中的偏移矢量(具体地,偏移矢量(87,48))是使两张位图对齐的偏移矢量。得到了成功对齐的图像,处理900随后结束。如上所述,使给定分辨率的特定位图对对齐的操作950在图10中更详细地示出。图10例示了用于找出用于使两张位图对齐的偏移矢量的处理1000。处理1000将由各候选偏移矢量(和起始偏移矢量,如果存在)移位的两张位图的像素进行比较,并且找出哪个候选偏移矢量产生最接近的对齐。处理1000是处理900的一些实施例的一部分。处理1000选择(在1010)候选偏移矢量。候选偏移矢量是从一组可能偏移矢量中选出的矢量。可能偏移矢量是从原点竖直偏移零或加减一像素且水平偏移零或加减一像素的所有矢量。候选补偿矢量为(-1,-1)、(-1,0)、(-1,1)、(0,-1)、(0,0)、(0,1)、(1,-1)、(1, 0)和(1,1)。候选偏移矢量在图11的列1175中例示。处理将候选偏移矢量添加(在1020)到起始偏移矢量中以生成组合矢量。起始偏移矢量是由处理1000找出的使前一分辨率的位图(如果有的话)对齐的偏移矢量。在图11中,在阶段1110,最低分辨率位图被对齐。不存在前一分辨率,从而起始偏移矢量为(0,0)。在具有非零起始偏移矢量的第一阶段(即,阶段1115),处理1000评估位于起始偏移矢量(2,2)的一个像素内的所有可能偏移矢量。也就是说,在阶段1115,处理1000测试矢量(1, 1)、(1, 2)、(1, 3)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)和(3,3)。如上所述,当比较在图11中所示的示例中的两张位图时,在列1175中的箭头(以及在阶段1130中的圆圈)概念性地确认哪个候选偏移矢量产生最少数量的差异。在阶段1115的列1117中的箭头指示最接近的对齐在候选偏移矢量(1,0)被添加到起始偏移矢量(2,2)中时生成。当候选偏移矢量(1,0)被添加至起始偏移矢量(2,2)时,如在阶段1150的列1180中所示,结果得到偏移矢量(3,2)。该处理随后使用组合矢量作为测试偏移矢量来比较(在1030)两张位图。该比较将在分块位图中的每个未被丢弃的分块中的每个像素与在目标位图中的对应像素进行系统地比较。目标位图中的对应像素是其在目标位图中的坐标从在分块位图中的像素的坐标偏移测试偏移矢量的像素。例如,利用测试偏移矢量(25,30),在分块位图的坐标(x,y)处的像素将与在目标位图的坐标(x+25,y+30)处的像素进行比较。XOR操作在一些实施例中用来比较两个I位值(例如,在两张位图中的像素值)以找出它们是否彼此不同。如果所比较的像素不同(即,一个像素为黑色而另一个像素为白色),则XOR操作产生输出1,如果像素相同(即,两个像素均为黑色或两个像素均为白色),则XOR操作产生输出O。对于每个测试偏移矢量,一些实施例的处理1000计数彼此不同的对应像素的数目。测试矢量越接近在两张位图之间的实际偏移,在分块位图到(移位的)目标位图之间不同的两张位图中的像素的数目越小。在通过计数有多少像素在一张位图到(移位的)另一张位图之间不同来比较位图时,一些实施例的处理1000在比较时不包括被丢弃分块中的像素。改比较中仅包括黑色和白色像素两者均为显著量(例如,在一些实施例中大于5%)的分块中的像素。在其中仅将来自位图中的一张的分块丢弃的一些实施例中,来自分块位图的未丢弃的分块规定哪些像素将被比较。例如,利用测试偏移矢量(25,30),在分块位图的坐标(x,y)处的像素将通常与在目标位图的坐标(x+25, y+30)处的像素进行比较。但是,如果坐标(x,y)位于分块位图的丢弃分块内,则在这些坐标处的在分块位图中的像素将不与目标位图中的任何像素进行比较。换言之,当坐标(x,y)位于分块位图的丢弃分块中时,一些实施例的处理随后将简单地不运行在分块位图的(x,y)处的像素与在目标位图的(x+25,y+30)处的像素或目标位图的任何其他像素的比较。在一些实施例中,丢弃几乎全黑或几乎全白的分块的理由是这些分块不会显著影响结果。例如,如果所有白色分块均位于全白区域中,则任意小的偏移将使位于该分块中的白色像素与位于另一位图的对应区域中的另一组全白像素对齐。如果候选矢量中的每一个将导致该白色分块与不同组的全白像素进行比较,则在白色分块中的像素与在目标位图中的对应像素的比较将无法提供任何可被用来将该偏移矢量与其他偏移矢量加以区分的数据。该处理存储(在1440)利用给定测试偏移矢量找出由一张位图到另一张位图之间不同的像素的数目所确定的值。在一些实施例中,该值简单地是不同像素的数目。在其他实施例中,该值并非是不同像素的实际数目,而是从不同像素的数目导出。该处理随后确定(在1050)是否还有候选矢量需要被评估。如果还有候选矢量需要被评估,则处理返回到1010并且选择新的候选矢量。如果所有候选矢量均已经被评估,则处理基于对于每个候选矢量的存储值确认(在1060)提供位图的最佳对齐的候选矢量。例如,在一些实施例中,导致在分块位图与移位的目标位图之间的最低差异数目的候选矢量被确认为提供最佳对齐的候选矢量。最佳候选矢量被添加(在1070)至起始偏移矢量以提供新的偏移矢量。处理1000随后结束并且处理900在960处恢复。下一最高分辨率的位图对代表与当前分辨率相同但具有更细化标度的图像。由于标度更细化,新偏移矢量不确认下一最高分辨率的成对位图的精确偏移。但是,找出使位图在一个分辨率下最佳对齐的新偏移矢量缩小能够在下一最高分辨率下可能提供位图的最佳对齐的偏移矢量的范围。在其中于每个级别加倍分辨率的实施例中,在给定分辨率下的对齐精度仅为下一最高分辨率下的对齐精度的一半。由处理1000确认的新偏移矢量精确到在当前分辨率下小于一个像素。因此,当新偏移矢量向上定标至下一分辨率(例如,在操作980)时,对齐值的不确定性同样比例向上定标。也就是说,如果下一分辨率为当前分辨率的两倍,则起始偏移矢量将位于比在该分辨率下的实际偏移的两个像素(沿每个方向)小的范围内。距离起始偏移矢量小于两个像素的该组所有偏移矢量包括九个矢量。具体地,这九个矢量是起始偏移矢量和九个候选偏移矢量的矢量和。每个分辨率的起始偏移矢量源自使下一最低分辨率的两张位图对齐的新偏移矢量。对于最低分辨率位图不存在下一最低分辨率。因此,当其使最低分辨率位图对齐时,处理1000不具有起始偏移矢量。对于最低分辨率位图,可能偏移的范围尚未被收窄,由此,使最低分辨率的位图对齐的偏移矢量可能距离搜索起点大于一个像素。因此,在一些实施例中,相比于更高分辨率的位图,处理1000为最低分辨率位图评估更大范围的候选偏移矢量。
取决于在每个阶段哪些候选矢量被选出,在具有六个抽取级别的实施例中,由处理900的分层搜索找出的偏移矢量的可能值是水平地从-127至127,以及竖直地从-127至127。每个连续阶段将可能偏移矢量的范围收窄大约2倍。如果在每个级别选出的候选偏移矢量具有值1,则偏移的水平分量将达值127。在这种情况下,最低分辨率水平总共贡献64个像素;下一最低分辨率水平总共贡献32个像素,以此类推直到最高分辨率水平总共贡献I个像素。尽管前面的描述在每个分辨率包括9个候选矢量,但是本领域普通技术人员将理解,其他实施例可以使用不同数量的候选矢量。一些实施例通过除2以外的因数进行抽取。在这类实施例中,当从较低分辨率朝向较高分辨率时,候选矢量的数量增大以补偿分辨率的更大增加。例如,在一些实施例中在每个方向上以因数4抽取图像。在一些这类实施例中,起始偏移矢量以因数4定标(从一个分辨率到下一分辨率)并且候选矢量包括在起始偏移矢量的3个像素内的所有矢量。一些这种实施例使用49个候选矢量。尽管前面的描述包括丢弃在每个分辨率水平下的主要为白色的分块和主要为黑色的分块,但是一些实施例仅仅丢弃在较高分辨率水平下的分块。在低分辨率,在图像中的像素的数目较小,因此去除分块更可能影响搜索的结果。另外,即使在不丢弃分块的情况下,搜索使低分辨率位图对齐的偏移矢量也是理应更快的。由于当在低分辨率下丢弃分块时误差风险增大,并且对搜索偏移矢量速度的裨益降低,因此一些实施例仅仅对高于特定分辨率水平的像素丢弃分块。例如,一些实施例仅仅对由具有5级抽取的图像所生成的位图丢弃分块。类似地,一些实施例仅仅对由具有4、3、2、1或0级抽取的图像所生成的位图丢弃分块。仅仅对较高分辨率图像丢弃分块的一些实施例不会分块较低分辨率位图。一些这种实施例比较在低分辨率水平下的整个位图。一些实施例排除在一张或多张所述位图中的一个或多个边缘附近的像素以对每个偏移比较相同数目的像素。V.图像处理HDR图像生成和缩放A.介绍在摄像时,不同的场景以不同的曝光持续时间进行摄像。较长曝光持续时间提供用于暗哑物体的较高细节水平。较短曝光持续时间提供用于明亮物体的较高细节水平。但是,与被摄像的物体的明度(brightness)不匹配的曝光时间会生成较差的结果。例如,当拍摄明亮物体的图像时,太长的曝光持续时间导致该明亮物体的图像聚焦在其上的传感器饱和。由于高于饱和水平的任何光照水平仅仅呈现为白色(具有最大值),因此在该情况下损失细节。当所有像素显示为白色时,本应提供细节的光照水平差异没有被捕捉。较差结果的另一示例来自于利用太短的曝光持续时间拍摄暗哑物体的图像。太短的曝光持续时间提供对于暗哑物体的图像聚焦在其上的传感器灵敏度而言的不足光照。由于传感器不能准确地确认在所接收的已经较小的光照量中的较小百分比差异,因此损失细节。由于不同的场景利用不同的曝光持续时间看上去更好,因此摄影师和自动相机调整曝光持续时间以弥补光照条件。一些实施例的移动设备也根据他们正摄像的场景的光照条件调节曝光时间。较长曝光时间用来捕捉暗哑场景的细节;较短曝光持续时间用来捕捉明亮场景的细节;而中等曝光持续时间用来捕捉介于明亮与暗哑之间(中间调)的场景的细节。然而,当一个场景包含明亮和暗哑物体以及中间调物体时,长到足以捕捉暗哑物体的细节的曝光时间将使明亮物体在图像中饱和而中间调物体将过亮。短到足以捕捉明亮物体的细节的曝光时间将使暗哑物体几乎为黑色而中间调物体太暗。正好捕捉中间调物品的曝光时间将使暗哑物体太暗而明亮物体太亮。为了避免明亮物体的饱和和暗哑物体的低细节,一些实施例以不同的曝光(曝光过度、曝光不足和正常曝光)拍摄三张图像并且以强化在该特定曝光捕捉良好的每一个曝光中的细节的方式合成图像。曝光过度图像示出了在暗区中的良好细节;由此合成偏重于使用来自曝光过度图像的像素以生成在图像的暗区中的像素。曝光不足图像示出了在亮区中的良好细节;由此合成偏重于使用来自曝光不足图像的像素以生成在图像的亮区中的像素。正常曝光图像示出了在中间调区域中的良好细节;由此合成偏重于使用来自正常曝光图像的像素以用于图像的中间调区域。在对齐各图像之后,如在章节IV中描述的,一些实施例的图像处理模块执行三张对齐图像的合成以产生合成的HDR图像。在不同的实施例中,图像处理模块使用不同的技术以合成三张图像。一些实施例通过执行用于这些图像的亮度通道而非这些图像的色度通道的单独操作组来合成这三张图像。在一些实施例中,对色度通道图像的单独操作与对亮度图像的操作相同或相似。此外,在生成HDR合成图像时,一些实施例可能产生超过期望值范围的亮度值和色度值。因此,当生成HDR图像时,一些实施例并行地执行缩放操作以确保HDR图像的亮度值和色度值在其期望的范围内生成。在一些实施例中,最终HDR图像的生成被概念性地划分为HDR捕捉操作和HDR渲染操作。在HDR捕捉操作中,初始HDR图像从以不同曝光时间拍摄的多张图像生成。在一些实施例的HDR渲染操作中,初始HDR图像由一个或多个操作进行调节,包括增强图像阴影、衰减图像高光、图像直方图拉伸、以及图像色度分量的色度饱和。为了确认每张图像的哪些区域应被用于生成合成色度图像的对应区域,一些实施例生成三个蒙板。三个蒙板对应于三个曝光水平。为了确认在合成时待使用的每个曝光的区域,各蒙板提供在其对应曝光的每个点处的加权因子。在一些实施例中,正常曝光图像用来标识图像的亮区、暗区和中间调区域以生成三个蒙板。合成图像随后使用蒙板作为用于每个像素的加权因子而逐像素地生成。在用于特定像素的特定蒙板中的较高值意味着与该蒙板相对应的曝光中的像素将强烈地影响在合成图像中的对应像素。在用于特定像素的特定蒙板中的较低值意味着与该蒙板相对应的曝光中的像素将较弱地影响在合成图像中的对应像素。在该标度的极值端,用于在特定曝光的蒙板中的特定像素的值I意味着在合成中的对应像素的值将完全取决于在该曝光中的对应像素的值。类似地,用于在特定曝光的蒙板中的特定像素的值0意味着在合成中的对应像素的值将完全不取决于在该曝光中的对应像素的值。尽管蒙板加权独立像素,但是一些实施例也通过补偿每个曝光的相对曝光时间的因子来加权在每张图像中的所有像素。在一些实施例中,在这些计算中使用的曝光时间由移动设备的相机提供。在一些实施例中,为了利用亮度值正确进行颜色定标,图像的色度值也利用与亮度值相似的加权方案进行合成。也就是说,曝光的色度通道(Cb和Cr)利用与曝光的亮度通道相同的蒙板和定标进行合成。在一些实施例中,图像的中间调的颜色在合成期间或者在合成之后被增强。B.合成亮度或辉度
一些实施例的移动设备通过合成以不同曝光拍摄的多张图像生成HDR图像。在一些实施例中,图像的合成生成其中每个像素的值为在三张图像中的每一张中的对应像素的值的加权平均值的图像。在一些实施例中,合成是图像的亮度分量的加权平均。在其他实施例中,合成是图像的辉度分量的加权平均。也就是说,不同的实施例合成各种不同图像格式的图像。一些实施例执行对亮度(Y’)格式的图像的所有操作。在其他实施例中,所有操作对辉度(Y)格式的图像执行。在另一些实施例中,移动设备开始于亮度(Y’)格式的图像并且将亮度(Y’ )分量变换为辉度(Y)分量,随后执行对辉度(Y)分量的操作。在辉度图像被合成之后,一些实施例的移动设备将所得到的合成图像从辉度(Y)转换为亮度(Y’)。以下描述确认在合成处理中这些转换能够发生的一些位置;但是,本领域普通技术人员将理解,在其他实施例中,该转换能够在处理的其他部分期间发生。图12例示了用于合成相同场景的三张不同曝光的亮度通道图像并调节所得到的合成图像的各亮度值的处理1200。处理1200每次在合成模块120从对齐模块115接收到三张(在一些实施例中是经剪裁的)图像时执行。该处理将参考图13A描述,其中图13A例示了执行对特定场景的处理1200的示例。处理1200参考图13A中的物品进行解释,但是本领域普通技术人员将理解,这是为了解释方便并且计算不限于在该附图中的特定场景。图13A中的场景是停在山路上的汽车。该场景包括明亮的天空和暗色的背光山以及中间调的汽车和道路。图13A包括以不同曝光拍摄的三张图像(例如彩色图像)1310A-1310C、每一张图像的亮度通道图像(有时称为亮度图像)1320A-1320C、蒙板1330A-1330C、合成亮度图像1340、经高斯模糊的合成1350、高光衰减图像1360A和阴影增强图像1360B、合成图像1370以及最终亮度图像1380。以不同曝光1310A-1310C拍摄的三张图像代表以不同曝光水平拍摄的彩色图像。图像1310A为曝光不足图像、1310B为正常曝光图像、而1310C为曝光过度图像。在一些实施例中,图像1310A的曝光时间是图像1310B的1/4,而图像1310C的曝光时间是图像1310B的4倍。在相同实施例中或在其他实施例中,曝光时间之比可以是4以外的数值。亮度通道图像1320A-1320C仅代表彩色图像1310A-1310C的亮度信息。在一些实施例中,亮度通道数据与色度通道数据被分别提供,而在其他实施例中,亮度通道数据从彩色图像中获得。如关于图1描述的,一些实施例的移动设备使用对于每张图像的不同曝光时间生成三张图像(例如,图像1310A-1310C)。在一些实施例中,这些曝光时间由曝光值补偿(EV)量度。对于在移动设备上的相机的给定光圈,曝光时间的量与2的EV次幂成正比。例如,EV3使曝光时间增大8倍。在一些实施例中,相对于正常曝光图像,曝光过度图像以EV+2拍摄,而曝光不足图像以EV-2拍摄。在这类实施例中,曝光过度图像的曝光时间是正常曝光图像的4倍,而曝光不足图像的曝光时间是正常曝光图像的1/4。不同实施例使用与加减2不同的EV值。一些实施例针对不同的光照条件调节EV。例如,一些实施例基于正常曝光图像的直方图(例如,由正常曝光预览图像生成的直方图)确定要使用哪个曝光值。一些这类实施例维持在EV+值与EV-值之间的恒定差异。在一些实施例中,曝光过度的EV在一些光照条件下可以与曝光不足的EV的大小不同。例如,在非常明亮的场景下,一些实施例对于曝光不足和曝光过度图像分别使用EV-3和EV+1。在很暗的场景下,一些实施例对于曝光不足和曝光过度图像分别使用EV-1和EV+3。图12的合成处理1200初始地执行HDR捕捉操作,开始于以不同曝光时间拍摄的三张亮度图像(例如亮度图像1320A-1320C)。该处理根据正常曝光亮度图像1320B生成(在1210)与三张亮度图像1320A-1320C相对应的三个蒙板。正常曝光亮度图像1320B用来确认被摄像的场景的哪些部分为明亮的,哪些部分为中间调的,而哪些部分为暗的。在图13A中,正常曝光亮度图像1320B的亮区包括天空和汽车的车轮,暗区包括山,而中间调区域包括车身和道路。蒙板是用于合成像素的一组加权。在一些实施例中,每个蒙板具有与待合成的图像相同的分辨率。蒙板可被表示为图像,并且方便的是将蒙板中的值描述为像素值,尽管蒙板中的数据旨在于在合成计算中使用而非主要用于视觉显示。三个蒙板对应于三张亮度图像1320A-1320C。曝光不足亮度图像1320A提供在亮区中的最佳细节。由此,用于曝光不足亮度图像1320A的蒙板1330A具有用于与在正常曝光亮度图像1320B中的亮像素相对应的像素的较高值和用于与在正常亮度曝光图像1320B中的中间和暗像素相对应的像素的较低值。曝光过度亮度图像1320C提供在暗区中的最佳细节。由此,用于曝光过度亮度图像1320C的蒙板1330C具有用于与在正常曝光亮度图像1320B中的暗像素相对应的像素的较高值和用于与在正常亮度曝光图像1320B中的中间和亮像素相对应的像素的较低值。正常曝光亮度图像1320B提供在中间调区域中的最佳细节。由此,用于正常曝光亮 度图像1320B的蒙板1330B具有用于与在正常曝光亮度图像1320B中的中间调像素相对应的像素的较高值和用于与在正常亮度曝光图像1320B中的亮和暗像素相对应的像素的较低值。一些实施例提供了具有数值范围的蒙板以将来自不同亮度图像1320A-1320C的像素混合而非使用来自每张图像的单独像素。在蒙板中的像素值越高,在对应图像中的对应像素具有对在合成图像中的对应像素值越大的影响。为了易于确认每张图像的区域,在图13A中的蒙板1330A-1330C仅仅具有暗区和白区,但是,一些实施例的蒙板的视觉表示将包括灰色像素。这种灰色像素将表示影响但不完全确定在合成图像中的对应像素值的像素。以下方程(1)-(3)在一些实施例中用来生成蒙板。这些方程导致基于双曲正切的三个曲线,这三个曲线提供了三组加权值,这三组加权值向如上所述通过采用来自曝光过度图像的暗区的细节、采用来自曝光不足图像的亮区的细节和采用来自正常曝光图像的中间调的细节来合成HDR图像提供了初始偏置。代替使用基于双曲线切线的方程/曲线,其他实施例可以使用其他类型的反曲曲线或其他非线性函数/曲线以规定用于选择性加权图像以产生合成图像所用的蒙板值。本文的方程依照惯例,其中每个变量由单个大写字母表示,在某些情况下大写字母后面跟着单个小写字母,尤其是当用于不同蒙板或图像的相同功能的变量被使用时。具有用于在图像中的不同单个像素的不同值的变量由跟着首字母的[x,y]表示,以指示它们在方程中的值基于每个像素而确定,其中X和y代表像素在图像中的坐标。针对不同像素值不同的变量在图像中的整个范围像素内为每个像素进行计算。方程参考图13A中的物品进行解释,但是本领域普通技术人员将理解,这使为了解释方便并且计算不限于在该图中的特定场景。在一些实施例中,在蒙板1330A-1330C中的像素值使用以下方程生成Mb [x, y] = 0. 5* (tanh (-Sb* (Ln [x, y]-Tb))+1)(I)Mu [x, y] = 0. 5* (tanh (Su* (Ln [x, y]-Tu))+1)(2)
Mn [x, y] =1-Mb [x, y]-Mu [x, y](3)在方程⑴中,Mb[x,y]表示曝光过度蒙板1330C在坐标[x,y]处的值,并且是正常曝光亮度图像1320B的对应像素的亮度值Ln [x,y]的函数。Tb是曝光过度图像的阈值亮度值。Sb影响函数的斜率。在本文所出现的任何方程中,tanh是双曲正切值。代替实时执行tanh的计算,一些实施例使用查找表以确认对于给定输入而由tanh产生的值。一些实施例使用查找表代替tanh之外的其他计算或也代替tanh。在方程⑵中,Mu [X,y]表示曝光不足蒙板1330A在坐标[x,y]处的值。类似于Mb[x,y],其也是正常曝光亮度图像1320B的对应像素的亮度值Ln[x,y]的函数。Tu是曝光不足图像的阈值亮度值。Su影响函数的斜率。在方程(3)中,Mn[x,y]表示正常曝光蒙板1330B在坐标[X,y]处的值。曝光过度蒙板1330C的目的是为了提高在暗区(其中曝光过度亮度图像1320C提供良好细节)中的像素的影响并降低在亮区(其中曝光过度亮度图像1320C很可能饱和)中的像素的影响。因此,在方程(I)中,来自曝光过度亮度图像1320C的像素的加权是在正常曝光亮度图像1320B中的对应像素的亮度值的平滑递减函数。Sb在其前具有负号,指示Sb的正值(如在一些实施例中所用的)将导致随亮度值递减的函数。对于正值的Sb,在正常曝光亮度图像1320B中的像素越亮,在生成合成像素时向曝光过度图像中的对应像素给予的权重越小。如上所述,Tb是曝光过度图像的阈值亮度值。当在正常曝光亮度图像1320B中的像素具有低于Tb的值(比阈值暗)时,曝光过度蒙板1330C的对应像素具有大于1/2的值。当在正常曝光亮度图像1320B中的像素具有Tb的值(处于阈值)时,曝光过度蒙板1330C的对应像素具有1/2的值。当在正常曝光亮度图像1320B中的像素具有高于Tb的值(比阈值亮)时,曝光过度蒙板1330C的对应像素具有小于1/2的值。在一些实施例中,Tb的值通过将0.015除以在正常曝光亮度图像1320B中的像素的中位亮度值来确定。例如,如果在正常曝光亮度图像1320B中的像素的亮度的中位值为0. 1,则Tb的值将为0. 15。在一些实施例中,Tb的值通过将0. 02 (或一些其他值)除以在正常曝光亮度图像1320B中的像素的亮度的中位值来确定。一些实施例具有取决于图像特征的计算Tb的不同方式。例如,一些实施例基于亮度图像(例如,1320B)的平均(均值)亮度而非中位亮度计算Tb。Sb确定函数Mb [x,y]围绕阈值Tb多快地变化。极高的Sb值导致快速变化。对于较高的Sb值,在正常曝光亮度图像1320B中的亮度值刚刚高于阈值Tb的像素将导致对应像素在蒙板1330C中具有极低值。蒙板中极低的像素值意味着在曝光过度亮度图像1320C中的对应像素将对合成图像1340的对应像素的值几乎没有影响。正常曝光亮度图像1320B中亮度值刚刚低于阈值的像素将导致对应像素在蒙板1330C中具有极高值(最大值为I)。在曝光过度亮度图像1320C中的对应像素的值将几乎完全确定合成图像1340的对应像素的值。相比之下,较低的Sb值将在超过阈值时导致影响的渐变。对于较低的Sb值,正常曝光亮度图像1320B中亮度值刚刚低于阈值的像素将导致在蒙板1330C中的对应像素具有对合成图像1340的 对应像素的略大于50%的影响。对于较低的Sb值,正常曝光亮度图像1320B中亮度值刚刚高于 阈值的像素将导致在蒙板1330C中的对应像素具有对合成图像1340的对应像素的略小于50%的影响。在一些实施例中,Sb的值为10。曝光不足蒙板1330A的目的是为了提升在亮区(其中曝光不足亮度图像1320A提供良好细节)中的像素的影响并降低在暗区(其中曝光不足亮度图像1320A很可能太暗而无法显示细节)中的像素的影响。因此,在方程(2)中,在曝光不足蒙板1330A中的像素值应当为在正常曝光亮度图像1320B中的对应像素的亮度值的递增函数。该斜率确定Su在其前不具有负号,由此正值的Su导致亮度的正函数。在方程(2)中的阈值Tu与在方程(I)中的阈值Tb不同。在一些实施例中,Tu的值通过将正常曝光亮度图像1320B的中位亮度值乘以6 (或某些其他值)而确定。在一些实施例中,当中位亮度值和因数(例如,6)的乘积大于I时,Tu的值设为I。一些实施例具有取决于图像特征来计算Tu的不同方法。类似于对于Sb的情况,Su的大小确定曝光不足亮度图像1320A的像素(对合成图像1340)的影响作为在正常曝光亮度图像1320B中的对应像素的亮度值的函数多快地变化。当正常曝光亮度图像1320B的像素的亮度值从低于阈值Tu变化到高于阈值时,较高的Su值提供了从没有影响到较大影响的快速变化。当正常曝光亮度图像1320B的像素的亮度值从低于阈值Tu变化到高于阈值时,较低的Su值提供了从没有影响到较大影响的逐渐变化。正常曝光蒙板1330B的像素具有I减去在其他蒙板1330A和1330C中的对应像素值的值。正常曝光蒙板1330B在两个其他蒙板具有较低值时具有较高值并且在其他蒙板中的任一个(或它们的聚合)具有较高值时具有较低值。例如,假定Su值等于用来生成其他蒙板的Sb值,其他两个蒙板的组合值对于在Tb和Tu的平均值处的像素而言最低。由此,正常曝光蒙板1330B对于与在正常曝光亮度图像1320B中亮度值处于Tb和Tu平均处的像素相对应的像素而言具有其最高值。对具有从主导像素值的一个蒙板到主导像素值的另一蒙板的逐渐过渡(例如,具有较低大小的Su或Sb)的蒙板的可视化表示将包含与部分地由一个蒙板且部分地由另一蒙板影响的合成区域相对应的灰色区域。相比之下,对具有从一个蒙板到另一蒙板的突然过渡(例如,具有较高大小的Su或Sb)的蒙板的可视化表示将会几乎完全是黑色像素和白色像素,具有很少的灰色像素(如果有的话)。蒙板1330A-1330C使用极高的Su值和Sb值生成,由此它们不具有灰色像素。正常曝光亮度图像1320B中比阈值Tb要暗的任何像素导致在曝光过度蒙板1330C中的白色像素。正常曝光亮度图像1320B中比阈值Tb要亮的任何像素导致在曝光过度蒙板1330C中的黑色像素。正常曝光亮度图像1320B中比阈值Tu要暗的任何像素导致在曝光不足蒙板1330A中的黑色像素。正常曝光亮度图像1320B中比阈值Tu要亮的任何像素导致在曝光过度蒙板1330A中的白色像素。正常曝光亮度图像1320B中介于阈值Tu与Tb之间的像素导致在正常曝光蒙板1330B中的白色像素。正常曝光亮度图像1320B中不介于阈值Tu与Tb之间的像素导致在正常曝光蒙板1330B中的黑色像素。总之,曝光不足蒙板1330A提供亮像素的整个权重(在合成时),正常曝光蒙板1330B提供中等范围像素的整个权重,而曝光过度蒙板提供暗像素的整个权重。提供有蒙板1330A-1330C中的极值切除,这是由于它们使得易于确认在黑白图中的高低权重的不同区域。但是,在具有较低的Sb值和Su值的实施例中,对应蒙板将包括值范围。在视觉术语中,蒙板将包括表示对合成中的像素的亮度的共同影响的灰色区域。为了生成曝光过度图像蒙板,一些实施例将阈值亮度值Tb从上述值进行调节。一些实施例调节阈值亮度值Tb,这是由于曝光过度图像的信噪比随曝光时间的增大而减小(例如,更长的曝光时间导致图像中更多的噪声)。因此,为了减小合成图像中的噪声,一些实施例调节阈值亮度值Tb以在最终合成图像中包括较少的曝光过度图像。在一些实施例中,以下方程用来调节阈值Tb=Tb*0. 5* (tanh (4* (Fb-Ft)) I)(4)在方程⑷中,第一个Tb是调节后的阈值亮度值;第二个Tb是调节前的阈值亮度值。Fb是曝光过度图像以分贝(dB)为单位的信噪比。Ft是阈值信噪比。高于Ft阈值的信噪比增大曝光过度图像的阈值亮度,这又增大曝光过度图像中的对合成图像1340具有较高影响的像素数目。在一些实施例中,Ft为24dB。在一些实施例中,在移动设备(或移动设备的原型)的校准期间,为一系列光照水平(例如,5个光照水平)测量信噪比。这些测得的信噪比用来确定给定图像的信噪比。在一些实施例中,校准对每个移动设备执行。在其他实施例中,校准对移动设备的(一个或多个)样品执行以确定该型号移动设备的校准点,这些校准点随后用于同一型号的其他移动设备。一些实施例具有默认校准点,但是允许对特定移动设备计算新的校准点。特定图像的光照水平由移动设备在捕捉图像时确认。在具有校准的移动设备的实施例中,基于光照水平,图像的信噪比内插于校准点的信噪比。在一些实施例中,基于单独像素的蒙板会导致对比度的损失。当与附近像素不匹配的像素(本应为暗区中的亮像素等等)由提供用于该区域的最佳细节的图像而非由提供用于该像素值的最佳细节的图像更大影响时`,更多细节将被保留。例如,在这类实施例中,亮背景中暗像素的合成值将主要由更佳用于提供用于亮像素(类似于背景)的细节的曝光不足图像的对应像素而非由更佳用于提供用于暗像素的细节的曝光过度图像的对应像素影响。此外,在不模糊蒙板的情况下的合成会由于权重并非空间平滑而导致合成时由不同曝光导出的像素之间的高频转换。由此,作为模糊蒙板以改进在亮区与暗区之间的边界处的对比度的附加或者替代,一些实施例模糊蒙板以通过使权重空间平滑而降低合成时的高频转换。由此,在一些实施例中,处理1200调节(在1215)蒙板以改进亮区与暗区之间的边界处的对比度和/或降低合成时的高频转换。因此,一些实施例的蒙板在应用作为用于合成图像1340的权重之前被模糊。在一些这类实施例中,蒙板使用诸如如下方程模糊Mb [x, y] = filter (Mb [x, y], k)(5)Mu [x, y] =f ilter (Mu [x, y], k)(6)在方程(5)中,第一个Mb[x,y]表示在应用模糊滤波器之后的蒙板;第二个Mb[x, y]表示在应用模糊滤波器之前的蒙板。在方程(5)和¢)中的滤波器为使用滤波器k的2D滤波操作。项k为2D高斯滤波器内核。在一些实施例中,7X7或9X9的滤波器内核与为3的像素方差一起使用。在方程(6)中,第一个Mu[x,y]表示在应用模糊滤波器之后的蒙板;第二个Mu[x,y]表示在应用模糊滤波器之前的蒙板。滤波器内核(k)的大小能够影响模糊操作的结果。大k值能够导致大光晕效果,而小k值能够导致在区域内的对比度损失。模糊确保蒙板将提供基于像素所在区域的明度提供权重而非基于单独像素的明度来提供权重。在一些实施例中,这改进了在具有来自多个范围(暗、中间调和/或明亮)的像素的区域内的对比度。在一些实施例中,方程(5)和(6)在方程(3)之前执行,使得正常曝光蒙板1330B通过由方程(5)和(6)生成的经模糊蒙板而非由方程(I)和(2)生成的蒙板而生成。以上对蒙板生成的描述所描述的是使用来自正常曝光亮度图像1320B而非其他亮度图像1320A和1320C的数据生成蒙板。但是,使用正常曝光亮度图像1320B生成所有三个蒙板1330A-1330C可能导致其中过度曝光图像的过度渲染(例如,饱和)区域被使用的情况。其也可能导致其中曝光不足图像的过暗区域被使用的情况。因此,在一些实施例中,作为从正常图像的亮度值生成的附加或替代,使用来自曝光过度和曝光不足图像的亮度值生成从亮度图像生成的蒙板。图13B例示了执行处理1200以及从每张图像生成蒙板1330A-1330C的示例。在图13B中,曝光不足蒙板1330A从曝光不足亮度图像1320A生成,曝光过度蒙板1330C从曝光过度亮度图像1320C生成,而正常曝光蒙板1330B从曝光过度亮度图像1320C和曝光不足亮度图像1320A生成。尽管图13B示出了如使用曝光不足亮度图像1320A和曝光过度亮度图像1320C生成正常曝光蒙板,但是在一些实施例中,正常曝光蒙板1330B使用方程(3)由曝光不足蒙板1320A和曝光过度蒙板1320C生成。在一些实施例中,正常曝光蒙板1330B在曝光不足蒙板1320A和曝光过度蒙板1320C被模糊之后由曝光不足蒙板1320A和曝光过度蒙板1320C生成。在从曝光不足和曝光过度图像生成蒙板的一些实施例中,蒙板使用与方程(1)-(6)相似的方程生成,但是由曝光过度图像的亮度值(Lb[x,y])替代用于曝光过度蒙板的Ln[x,y],由曝光不足图像的亮度值(Lu[x,y])替代用于曝光不足蒙板的Ln[x,y],并且相应地调整阈值。在一些这类实施例中,用于计算曝光过度和曝光不足蒙板的阈值由相应图像的中位亮度值导出。在其他实施例中,阈值由正常曝光图像的中位亮度值导出(例如,以与由正常曝光图像生成蒙板的上述实施例相同的方式)。在其他实施例中,阈值设为用于Tb的0.4 (用于曝光过度蒙板)和用于Tu的0.5 (用于曝光不足蒙板)的默认值。在其他一些实施例中,阈值设为用于Tb的0. 5 (用于曝光过度蒙板)和用于Tu的0. 5 (用于曝光不足蒙板)的默认值。在处理1200已经生成(在1210)蒙板(例如,蒙板1330A-1330C)之后,该处理随后生成(在1220)合成亮度图像(例如,亮度图像1340),其包括从每个独立亮度曝光(例如,1320A-1320C)获得的细节。在合成亮度图像1340时,来自正常曝光亮度图像1320B的车身和道路的细节、来自曝光过度亮度图像1320C的山的细节、和来自曝光不足亮度图像1320A的天空和车轮的细节全被呈现。在一些实施例中,亮度图像1330A-1330C使用以下方程进行合成
权利要求
1.一种捕捉图像的设备的非暂态机器可读介质,所述介质存储在由至少一个处理单元执行时捕捉高动态范围(HDR)场景的图像的程序,所述程序包括用于以下的指令集 以第一曝光水平捕捉并存储多张图像; 当接收到捕捉所述HDR场景的命令时,就以第二曝光水平捕捉第一图像并以第三曝光水平捕捉第二图像; 从所捕捉的多张图像中选取第三图像;以及 合成第一、第二和第三图像以产生捕捉所述HDR场景的合成图像。
2.如权利要求1所述的机器可读介质,其中从多张图像中选取第三图像的指令集包括从所述多张图像中选取在接收到捕捉所述HDR场景的命令之前刚被捕捉到的图像的指令集。
3.如权利要求1所述的机器可读介质,其中从多张图像中选取第三图像的指令集包括从所述多张图像中选取如下图像的指令集(i)在接收到捕捉所述HDR场景的命令之前的一时间段内捕捉的图像;和(ii)当所述设备移动小于阈值时所捕捉的图像。
4.如权利要求3所述的机器可读介质,其中所述设备具有在多个不同时刻产生与所述设备的运动相关的多个不同值的电路,其中所述阈值的量与由所述电路产生的所述值相关。
5.如权利要求3所述的机器可读介质,其中所述设备具有在多个不同时刻产生与所述设备的运动相关的多个不同值的电路,其中选取所述图像的指令集包括用于以下的指令集 对于由所述电路产生的多个值中的每一个,计算表达所述设备在一时刻的运动的运动参数; 将在所述时间段内捕捉的所述图像中的每一张与一运动参数相关联; 基于在所述时间段内捕捉的每张图像的每个运动参数与所述阈值的量的比较,将在所述时间段内捕捉到的一张图像选取作为第三图像。
6.如权利要求1所述的机器可读介质,其中从多张图像中选取第三图像的指令集包括选取所述多张图像中的最清晰图像的指令集。
7.如权利要求6所述的机器可读介质,其中所述设备具有在多个不同时刻产生与所述设备的运动相关的多个不同值的电路,其中所述多张图像中的最清晰图像是在一时刻捕捉到的图像,所述电路在该时刻产生的值指示所述设备在该时刻移动最少。
8.如权利要求6所述的机器可读介质,其中所述程序还包括对以第一曝光水平捕捉并存储的一组图像中的每一张执行数字信号处理的指令集,其中所述多张图像中的最清晰图像是具有最高频含量的图像。
9.如权利要求1所述的机器可读介质,其中第一曝光水平是正常曝光水平,第二和第三曝光水平中的一个是曝光不足水平,并且第二和第三曝光水平中的另一个是曝光过度水平。
10.如权利要求1所述的机器可读介质,其中第一曝光水平是曝光过度水平,第二和第三曝光水平中的一个是正常曝光水平,并且第二和第三曝光水平中的另一个是曝光不足水平。
11.如权利要求1所述的机器可读介质,其中第一曝光水平是曝光不足水平,第二和第三曝光水平中的一个是正常曝光水平,并且第二和第三曝光水平中的另一个是曝光过度水平。
12.如权利要求1所述的机器可读介质,其中所述程序还包括捕捉所述场景的光照条件的指令集,其中所述曝光水平基于所捕捉的光照条件。
13.如权利要求12所述的机器可读介质,其中所述程序还包括根据所捕捉的光照条件计算第一曝光水平并根据第一曝光水平计算第二和第三曝光水平的指令集。
14.如权利要求13所述的机器可读介质,其中第二图像曝光持续时间是第一图像曝光持续时间的第一倍数,而第三图像曝光持续时间是第一图像曝光持续时间的第二倍数。
15.如权利要求14所述的机器可读介质,其中所述程序还包括基于所述多张图像中的至少一张的至少一个直方图计算第一倍数和第二倍数的指令集。
16.如权利要求13所述的机器可读介质,其中捕捉光照条件的指令集包括分析所述多张图像中的至少一张以认定所述光照条件的指令集。
17.如权利要求13所述的机器可读介质,其中捕捉光照条件的指令集包括分析由所述设备的电路产生的、量化所述光照条件的信号的指令集。
18.如权利要求1所述的机器可读介质,其中捕捉所述多张图像的指令集包括用于以下的指令集 当进入HDR模式时,就捕捉所述多张图像并且在接收到所述HDR捕捉命令之前将所述多张图像中的每一张存储在设备的存储装置中;以及 当进入所述HDR模式时,计算第二和第三曝光水平并且在接收到所述HDR捕捉命令时就通知所述设备的控制器准备以所述第二和第三曝光水平捕捉第二和第三图像。
19.一种捕捉图像的设备的非暂态机器可读介质,所述介质存储在由至少一个处理单元执行时捕捉高动态范围(HDR)场景的图像的程序,所述程序包括用于以下的指令集 当进入HDR模式时,就捕捉多张图像并且分析所述图像以确定第一、第二和第三曝光水平中的至少一个; 当接收到捕捉所述HDR场景的命令时,以所述第一曝光水平捕捉第一图像,以所述第二曝光水平捕捉第二图像,并且以所述第三曝光水平捕捉第三图像; 合成所述第一、第二和第三图像以产生捕捉所述HDR场景的合成图像。
20.如权利要求19所述的机器可读介质,其中第一曝光水平是正常曝光水平,第二和第三曝光水平中的一个是曝光不足水平,并且第二和第三曝光水平中的另一个是曝光过度水平。
21.如权利要求19所述的机器可读介质,其中第一曝光水平是曝光过度水平,第二和第三曝光水平中的一个是正常曝光水平,并且第二和第三曝光水平中的另一个是曝光不足水平。
22.如权利要求19所述的机器可读介质,其中第一曝光水平为是光不足水平,第二和第三曝光水平中的一个是正常曝光水平,并且第二和第三曝光水平中的另一个是曝光过度水平。
23.如权利要求19所述的机器可读介质,其中分析所述多张图像的指令集包括分析所述多张图像以捕捉所述场景的光照条件并且根据所捕捉的光照条件计算至少一个曝光水平的指令集。
24.如权利要求23所述的机器可读介质,其中所计算的曝光水平是第一曝光水平,其中所述程序还包括根据所述第一曝光水平计算第二和第三曝光水平的指令集。
25.如权利要求24所述的机器可读介质,其中第二图像曝光持续时间是第一图像曝光持续时间的第一倍数,而第三图像曝光持续时间是第一图像曝光持续时间的第二倍数。
26.如权利要求25所述的机器可读介质,其中所述程序还包括基于所述多张图像中的至少一张的至少一个直方图计算第一倍数和第二倍数的指令集。
27.如权利要求19所述的机器可读介质,其中捕捉所述光照条件的指令集包括分析由所述设备的电路所产生的、量化所述光照条件的信号的指令集。
28.如权利要求19所述的机器可读介质,其中捕捉所述多张图像的指令集包括用于以下的指令集 计算第一、第二和第三曝光水平; 在接收到所述HDR捕捉命令时就引导所述设备的控制器准备以所述第一、第二和第三曝光水平捕捉三张图像。
29.一种捕捉图像的设备的非暂态机器可读介质,所述介质存储在由至少一个处理单元执行时捕捉暗场景的图像的程序,所述程序包括用于以下的指令集 接收捕捉图像的命令; 捕捉以第一曝光持续时间捕捉到的第一图像; 在以至少与所述第一曝光持续时间一样长的第二曝光持续时间捕捉第二图像时用闪光灯源照明所述场景; 合成所述第一和第二图像以生成第三合成图像。
30.如权利要求29所述的机器可读介质,其中第三合成图像具有比用闪光灯源照明所捕捉的第二图像高的动态范围。
31.如权利要求29所述的机器可读介质,其中第二曝光持续时间比所述第一曝光持续时间长。
32.如权利要求29所述的机器可读介质,其中用闪光灯源照明所述场景的指令集包括仅在第一曝光持续时间比阈值长时激活所述闪光灯源的指令集。
33.如权利要求32所述的机器可读介质,其中所述阈值是所述移动设备的最大曝光持续时间的特定分数。
34.如权利要求32所述的机器可读介质,其中所述程序还包括用于以下的指令集 将第二曝光持续时间设为第一曝光持续时间的倍数;以及 当第一曝光持续时间比阈值长时减小所述倍数。
35.如权利要求29所述的机器可读介质,其中合成图像的指令集包括在合成所述图像集时使第二图像的权重小于第一图像的指令集。
36.一种操作设备以捕捉高动态范围(HDR)场景的方法,所述方法包括 当所述设备进入HDR模式时,就以第一曝光水平捕捉并存储多张图像; 当接收到捕捉所述HDR场景的命令时,就以第二曝光水平捕捉第一图像; 从所捕捉的多张图像中选取第二图像;以及 合成所述第一和第二图像以产生捕捉所述HDR场景的合成图像。
37.如权利要求36所述的方法,其中从所述多张图像中选取第二图像包括基于一组准则从所述多张图像中选取所述第二图像。
38.如权利要求36所述的方法,还包括 分析在所捕捉的多张图像中的至少一张所述图像以确定在所述场景内的光照条件; 当确定存在第一组光照条件时,在接收到捕捉所述HDR场景的命令之后仅捕捉第一图像; 当确定存在第二组光照条件时,捕捉第一图像并在接收到捕捉所述HDR场景的命令时就以第三曝光水平捕捉第三图像; 其中,合成所述第一和第二图像包括当存在所述第二组光照条件时合成所述第一、第二和第三图像以产生所述合成图像。
39.一种操作设备以捕捉低光照条件下的图像的方法,所述方法包括 以第一曝光水平捕捉并存储多张图像; 分析在捕捉到的多张图像中的至少一张所述图像以确定所述设备正在低光照条件下操作; 当接收到捕捉图像的命令时,合成以所述相同曝光水平捕捉所述相同场景的第一和第二图像以产生噪声减小的合成图像。
40.如权利要求39所述的方法,其中第一图像是来自所述多张图像中的图像,第二图像是在接收到捕捉图像的命令之后捕捉到的图像。
41.如权利要求39所述的方法,还包括在接收到捕捉图像的命令时以与第一曝光水平不同的第二曝光水平捕捉第三图像,其中合成第一和第二图像包括合成所述第一、第二和第三图像以产生合成图像。
全文摘要
本发明的一些实施例提供了一种操作设备以捕捉高动态范围(HDR)场景的图像的方法。当进入HDR模式时,该方法就以第一曝光水平捕捉多张图像并加以存储。当接收到捕捉所述HDR场景的命令时,该方法以第二曝光水平捕捉第一图像。该方法从捕捉到的多张图像中选取第二图像。该方法合成所述第一和第二图像以产生捕捉所述HDR场景的合成图像。在一些实施例中,该方法以多个不同的曝光水平捕捉多张图像。
文档编号H04N5/235GK103069453SQ201180039813
公开日2013年4月24日 申请日期2011年7月1日 优先权日2010年7月5日
发明者G·科泰, G·M·约翰逊, J·E·欧尔四世 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1