高动态范围图像的捕捉和渲染的制作方法

文档序号:6361410阅读:338来源:国知局
专利名称:高动态范围图像的捕捉和渲染的制作方法
高动态范围图像的捕捉和渲染
背景技术
近年来,数码相机作为独立设备和作为更复杂设备例如蜂窝电话、智能电话、其他移动计算设备等的部件业已迅猛发展。随着这种迅猛发展,制造商已经快速增加在这些设备上的数码相机的技术特征。例如,很多移动设备如今通常包括五百万像素的相机,这对于产生高品质图像往往是需要的。不幸地,即使这种相机的技术规格已经被改进,但是由于这些相机的图像处理能力尚无法与其改进的硬件能力相匹配,因此这些相机往往不能捕捉和产生高品质的图像。例如,很多相机如今仍然不能很好地捕捉和产生具有高动态范围(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或O的像素值)。在每个级别,至少一张位图被划分为若干分块(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、图像捕捉Π选项215、和闪光灯Π选项210。显示区域220在一些实施例中显示由移动设备的传感器在移动设备已经被置于作为相机操作的模式下时所捕捉的场景图像。图像捕捉Π选项215是用户可选项,其一旦由用户选取,就指示移动设备捕捉一张或多张图像。在一些实施例中,移动设备包括用于相机的闪光灯。因此,在这些实施例中,闪光灯UI选项210使用户能够打开或关闭闪光灯。如下文进一步描述的,闪光灯UI选项210还使用户能够将移动设备的相机置于HDR模式。现在将描述移动设备200捕捉HDR图像的操作。第一阶段245示出了在移动设备已被置于图像捕捉模式之后该移动设备的用户界面。在一些实施例中,用户可由选取在显示区域220中显示的相机图标而将设备置于该模式。在一些实施例中,当设备进入相机模式时,设备开始捕捉图像,将这些图片暂时存储在其帧缓冲器中,并且在显示区域220中瞬时地显示这些图像。但是,为了突显闪光灯选项210和所显示的Π选项以及所执行的操作的顺序,图2A中的第一至第四阶段245-257并未示出在显示区域220中瞬时显示的任何所述图像。第二阶段250示出了用户选取闪光灯Π选项210。如图2A中所示,用户能够通过触摸(例如,利用手指225)设备的位于闪光灯选项210处的触摸屏显示区域来进行这一选取。在一些实施例中,用户也可以通过其他Π选择技术来选择这一选项。第三阶段255示出了对闪光灯选项210的选择导致闪光灯菜单230的显示。该菜单具有用于打开闪光灯的可选Π选项280、用于关闭闪光灯的可选Π选项285、用于将闪光灯设定为自动闪光模式的可选Π选项290、以及用于打开HDR图像捕捉模式的可选Π选项235。尽管可选HDR模式选项235对于一些实施例示出为图2A中的闪光灯菜单230的一部分,但是本领域普通技术人员将认识到,该选项235在一些实施例中可以在设备的Π中具有不同的布置。第四阶段257例示了 HDR模式选择项235的用户选择。该选择通过触摸(例如,利用手指240)这一选项位于移动设备的显示触摸屏上的位置而进行。在一些实施例中,用户还可以通过其他Π选择技术来选择这一模式。第五阶段260例示了用户通过触摸(例如,利用手指270)这一选项位于移动设备的显示触摸屏上的位置来选择图像捕捉选项215。与在显示区域中的其他可选项一样,在一些实施例中用户 能够通过其他Π选择技术来选择该图像捕捉选项。选项215的选择导致设备捕捉用户正在显示区域220中观察的HDR场景(在晴天站在窗户前的人)的HDR图像。同样地,即使在进入HDR模式并接收到对图像捕捉选项的选择之前,显示区域瞬时地显示相机在其进入相机模式时临时且反复捕捉的图像,例如预览图像262。但是,如上所述,这些瞬时显示的图像在图2A的阶段245-257中未示出以防止对UI选项的显示和各种UI选项的选择的混淆。第六阶段265例示了在选择图像捕捉选项215后即刻由相机捕捉和存储的HDR图像267。该图像在一些实施例中是设备在使其图像捕捉模块以不同曝光依序地捕捉若干图像且使其图像合成模块合成这些图像之后所产生的经图像处理的数字图像。在一些实施例中,HDR图像267包括在预览图像262中不可见的细节。例如,HDR图像267包括鸟275。如上所述,未在图2A中的显示中示出预览图像262以便防止对Π选项的显示和它们的选择的混淆。因此,图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%,则潜在偏移矢量在任意方向(上、下、左或右)上将会介于O与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正方形,其中η为抽取因数(例如2),随后求取正方形中的像素值的平均;(2)运动平均滤波器;(3)加权运动平均滤波器;(4)选定在每个η X η组中的一个像素值(例如,中位像素值或在组中的特定位置处的像素值);(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,O),特定分块可以包括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) (B卩,64乘以所确认的偏移矢量)。偏移(64,64)是将在后续阶段被细化的粗略确定。例如,在阶段1115的操作950能够在每个方向上(竖直和水平)将偏移矢量改变O或±32 ;在阶段1120,其能够在每个方向上将偏移矢量改变O或± 16,并且依此类推直到能够在每个方向上将偏移矢量改变O或± 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)没有位图需要被评估(B卩,当最近比较的位图是全分辨率位图时),处理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)、(I, O)和(1,I)。候选偏移矢量在图11的列1175中例示。处理将候选偏移矢量添加(在1020)到起始偏移矢量中以生成组合矢量。起始偏移矢量是由处理1000找出的使前一分辨率的位图(如果有的话)对齐的偏移矢量。在图11中,在阶段1110,最低分辨率位图被对齐。不存在前一分辨率,从而起始偏移矢量为(0,0)。在具有非零起始偏移矢量的第一阶段(即,阶段1115),处理1000评估位于起始偏移矢量(2,2)的一个像素内的所有可能偏移矢量。也就是说,在阶段1115,处理1000测试矢量(I, D、(I, 2)、(I, 3)、(2,I)、(2,2)、(2,3)、(3,I)、(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或O级抽取的图像所生成的位图丢弃分块。仅仅对较高分辨率图像丢弃分块的一些实施例不会分块较低分辨率位图。一些这种实施例比较在低分辨率水平下的整个位图。一些实施例排除在一张或多张所述位图中的一个或多个边缘附近的像素以对每个偏移比较相同数目的像素。V.图像处理HDR图像生成和缩放A.介绍在摄像时,不同的场景以不同的曝光持续时间进行摄像。较长曝光持续时间提供用于暗哑物体的较高细节水平。较短曝光持续时间提供用于明亮物体的较高细节水平。但是,与被摄像的物体的明度(brightness)不匹配的曝光时间会生成较差的结果。例如,当拍摄明亮物体的图像时,太长的曝光持续时间导致该明亮物体的图像聚焦在其上的传感器饱和。由于高于饱和水平的任何光照水平仅仅呈现为白色(具有最大值),因此在该情况下损失细节。当所有像素显示为白色时,本应提供细节的光照水平差异没有被捕捉。较差结果的另一示例来自于利用太短的曝光持续时间拍摄暗哑物体的图像。太短的曝光持续时间提供对于暗哑物体的图像聚焦在其上的传感器灵敏度而言的不足光照。由于传感器不能准确地确认在所接收的已经较小的光照量中的较小百分比差异,因此损失细节。由于不同的场景利用不同的曝光持续时间看上去更好,因此摄影师和自动相机调整曝光持续时间以弥补光照条件。一些实施例的移动设备也根据他们正摄像的场景的光照条件调节曝光时间。较长曝光时间用来捕捉暗哑场景的细节;较短曝光持续时间用来捕捉明亮场景的细节;而中等曝光持续时间用来捕捉介于明亮与暗哑之间(中间调)的场景的细节。然而,当一个场景包含明亮和暗哑物体以及中间调物体时,长到足以捕捉暗哑物体的细节的曝光时间将使明亮物体在图像中饱和而中间调物体将过亮。短到足以捕捉明亮物体的细节的曝光时间将使暗哑物体几乎为黑色而中间调物体太暗。正好捕捉中间调物品的曝光时间将使暗哑物体太暗而明亮物体太亮。为了避免明亮物体的饱和和暗哑物体的低细节,一些实施例以不同的曝光(曝光过度、曝光不足和正常曝光)拍摄三张图像并且以强化在该特定曝光捕捉良好的每一个曝光中的细节的方式合成图像。曝光过度图像示出了在暗区中的良好细节;由此合成偏重于使用来自曝光过度图像的像素以生成在图像的暗区中的像素。曝光不足图像示出了在亮区中的良好细节;由此合成偏重于使用来自曝光不足图像的像素以生成在图像的亮区中的像素。正常曝光图像示出了在中间调区域中的良好细节;由此合成偏重于使用来自正常曝光图像的像素以用于图像的中间调区域。在对齐各图像之后,如在章节IV中描述的,一些实施例的图像处理模块执行三张对齐图像的合成以产生合成的HDR图像。在不同的实施例中,图像处理模块使用不同的技术以合成三张图像。一些实施例通过执行用于这些图像的亮度通道而非这些图像的色度通道的单独操作组来合成这三张图像。在一些实施例中,对色度通道图像的单独操作与对亮度图像的操作相同或相似。此外,在生成HDR合成图像时,一些实施例可能产生超过期望值范围的亮度值和色度值。因此,当生成HDR图像时,一些实施例并行地执行缩放操作以确保HDR图像的亮度值和色度值在其期望的范围内生成。在一些实施例中,最终HDR图像的生成被概念性地划分为HDR捕捉操作和HDR渲染操作。在HDR捕捉操作中,初始HDR图像从以不同曝光时间拍摄的多张图像生成。在一些实施例的HDR渲染操作中,初始HDR图像由一个或多个操作进行调节,包括增强图像阴影、衰减图像高光、图像直方图拉伸、以及图像色度分量的色度饱和。为了确认每张图像的哪些区域应被用于生成合成色度图像的对应区域,一些实施例生成三个蒙板。三个蒙板对应于三个曝光水平。为了确认在合成时待使用的每个曝光的区域,各蒙板提供在其对应曝光的每个点处的加权因子。在一些实施例中,正常曝光图像用来标识图像的亮区、暗区和中间调区域以生成三个蒙板。合成图像随后使用蒙板作为用于每个像素的加权因子而逐像素地生成。在用于特定像素的特定蒙板中的较高值意味着与该蒙板相对应的曝光中的像素将强烈地影响在合成图像中的对应像素。在用于特定像素的特定蒙板中的较低值意味着与该蒙板相对应的曝光中的像素将较弱地影响在合成图像中的对应像素。在该标度的极值端,用于在特定曝光的蒙板中的特定像素的值I意味着在合成中的对应像素的值将完全取决于在该曝光中的对应像素的值。类似地,用于在特定曝光的蒙板中的特定像素的值O意味着在合成中的对应像素的值将完全不取决于在该曝光中的对应像素的值。尽管蒙板加权独立像素,但是一些实施例也通过补偿每个曝光的相对曝光时间的因子来加权在每张图像中的所有像素。在一些实施例中,在这些计算中使用的曝光时间由移动设备的相机提供。在一些实施例中,为了利用亮度值正确进行颜色定标,图像的色度值也利用与亮度值相似的加权方案进行合成。也就是说,曝光的色度通道(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] = O. 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)在方程(I)中,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的值通过将O. 015除以在正常曝光亮度图像1320B中的像素的中位亮度值来确定。例如,如果在正常曝光亮度图像1320B中的像素的亮度的中位值为O. 1,则Tb的值将为O. 15。在一些实施例中,Tb的值通过将O. 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的O. 4 (用于曝光过度蒙板)和用于Tu的O. 5 (用于曝光不足蒙板)的默认值。在其他一些实施例中,阈值设为用于Tb的O. 5 (用于曝光过度蒙板)和用于Tu的O. 5 (用于曝光不足蒙板)的默认值。在处理1200已经生成(在1210)蒙板(例如,蒙板1330A-1330C)之后,该处理随后生成(在1220)合成亮度图像(例如,亮度图像1340),其包括从每个独立亮度曝光(例如,1320A-1320C)获得的细节。在合成亮度图像1340时,来自正常曝光亮度图像1320B的车身和道路的细节、来自曝光过度亮度 图像1320C的山的细节、和来自曝光不足亮度图像1320A的天空和车轮的细节全被呈现。在一些实施例中,亮度图像1330A-1330C使用以下方程进行合成Lc [x, y] = Eb*Lb [x, y] *Mb [x, y]+En*Ln [x, y] *Mn [x, y]+Eu*Lu[x, y]*Mu[x, y](7A)在方程(7A)中,Lc[x, y]表示在合成图像1340中的坐标[x,y]处的像素的亮度值。Lb[x,y]为在曝光过度(亮)亮度图像1320C中的坐标[x,y]处的像素的亮度值。Ln [x,y]和Lu[x,y]分别为正常曝光亮度图像1320B和曝光不足亮度图像1320A的亮度值。Eb是用于曝光过度亮度图像1320C的曝光的曝光定标因子。En和Eu分别为正常曝光亮度图像1320B和曝光不足亮度图像1320A的对应曝光定标因子。Mb [x, y]表示曝光过度蒙板1330C在坐标[X,y]处的值。Mn[x,y]和Mu[x,y]分别表示正常曝光蒙板1330B和曝光不足蒙板1330A的值。在蒙板1330C中的像 素值确定曝光过度亮度图像1320C中的对应像素对合成图像具有多大影响。蒙板1330B中的像素值确定在正常曝光亮度图像1320B中的对应像素对合成图像具有多大影响。蒙板1330A中的像素值确定在曝光不足亮度图像1320A中的对应像素对合成图像具有多大影响。在每个蒙板1330A-1330C中,更高的值意味着对合成图像更多的影响。
曝光定标因子(Eu、En和Eb)补偿图像的不同曝光时间(例如,如果曝光过度图像具有正常曝光图像的曝光时间的4倍,则Eb=En/4 )。更多曝光的图像具有更高的亮度值,这是由于它们曝光更长而非由于它们的数据“更好”,或者由于它们代表图像的更亮部分。在不补偿更长曝光时间的情况下,来自曝光过度图像的数据将比它们的信息值所指示地更多主导结果。在一些实施例中,曝光时间之比可以是4以外的其他值。在一些实施例中,曝光不足持续时间与正常曝光持续时间之比不同于正常曝光持续时间与曝光过度持续时间之t匕。在这类实施例中,曝光定标因子将被调整以反映不同的曝光时间之比。在使用其中像素值是抵达对应传感器的光的线性函数的格式的实施例中,曝光定标因子均匀补偿由不同曝光时间所导致的像素值的差异。当像素值是抵达传感器的光的线性函数时,则在没有其他因素(例如,由特定传感器所捕捉的场景的一部分的变化的亮度)时,像素值在具有四倍于正常曝光持续时间的曝光过度图像中将比在相同场景的正常曝光图像中的对应像素值大四倍。以这种格式,在相同场景的每个曝光中的像素具有相对于彼此的相同值。也就是说,如果在正常曝光图像中的一个像素为在正常曝光图像中的另一像素值的两倍,则过度曝光图像的与在正常图像中的第一像素相对应的像素将在曝光过度图像中具有与在正常图像中的第二像素相对应的像素值的两倍。一些移动设备以包括为抵达传感器的光量(达饱和点)的线性函数的分量(例如,辉度)的格式捕捉图像。但是,一些这类设备使用非线性变换(例如,Y校正)将辉度图像自动转换为亮度图像。由于从辉度到亮度的非线性变换,亮度值将不是曝光时间的线性函数。由于伽马校正将在辉度范围底部附近的值改变多于在辉度范围中间和顶部附近的值,因此亮度值不是线性函数。利用较长曝光时间拍摄的曝光过度图像比正常曝光图像亮并且具有聚集在相机的辉度范围顶部附近的辉度值。利用较短曝光时间拍摄的曝光不足图像比正常曝光图像暗并且具有聚集在相机的辉度范围底部附近的辉度值。利用正常曝光拍摄的图像具有聚集在相机的辉度范围中部附近的辉度值。由于不同曝光的明度的不同水平,因此伽马校正能够不同地改变在不同曝光中的对应物体的相对明度。改变物体在不同曝光中的相对明度影响合成图像的结果。因此,为了将图像返回到其中值为曝光时间的线性函数的格式,一些实施例将图像的亮度(Y’ )分量的伽马校正反转以生成辉度(Y)图像。一些这种实施例执行对辉度图像的操作,并在操作之后应用新的伽马校正以生成具有亮度(Y’)分量的最终图像。在一些实施例中,在合成期间执行反伽马校正。一些这类实施例使用以下方程(7B)而非使用方程(7A)生成合成图像Lc [X,y] =Eb*Lb [xy]' (I/ Y ) *Mb [x, y]+En*Ln [x, y]" (I/ Y ) *Mn [x, y]+Eu*Lu [x, y]" (I/ Y ) *Mu [x, y](7B)方程(7B)与方程(7A)几乎相同,不同之处在于亮度值Lb[x,y]、Ln[x,y]和Lu[x, y]已经提升至(1/Y)次幂。并且Lc[x,y]值是辉度值而非亮度值。在一些实施例中,移动设备提供基于捕捉图像的辉度值的提升至伽马(Y)次幂(在一些实施例中,Y等于1/2. 2)的亮度值。一些实施例的移动设备提供伽马值作为所提供图像的元数据。在一些这类实施例中,当图像被合成时,所提供的伽马在方程(7B)中使用以重建初始辉度值。其他这类实施例在合成图像之前执行反伽马校正并且对以与合成操作分开的操作中生成的辉度值使用方程(7A)。类似地,尽管以上方程是针对由亮度图像生成的蒙板进行描述,但是本领域普通技术人员将理解,一些实施例的蒙板由其他格式的图像生成。例如,在一些实施例中,蒙板由一张或多张所述图像的辉度版本而非亮度版本生成。在一些实施例中,用来生成蒙板的图像类型(例如,亮度或辉度)与用来生成合成的图像类型相同。在其他实施例中,用来生成蒙板的图像类型(例如,亮度或辉度)与用来生成合成的图像类型不同。为了使用方程(7A)或(7B)生成合成图像,在一些实施例中,曝光过度图像的定标因子(Eb)根据曝光时间的实际比率进行调整。一些实施例使用以下方程调整曝光过度图像的定标因子Eb以增强阴影。Eb = En/ (Er+ (2/3* (Ts-0. 25) * (1-Er) * (1-tanh (12N—3. 5))))(8)在方程(8)中,Eb是曝光过度图像的定标因子;En是正常曝光图像的定标因子。Er是正常曝光图像的曝光时间与曝光过度图像的曝光时间之比(例如,如果曝光过度图像的曝光长度是正常曝光图像的曝光长度的4倍,则为1/4),Ts是阈值因子。在一些实施例中,Ts设为O. 4。N是中位亮度(在从O至I的亮度标度上)。在一些实施例中,中位辉度代替中位亮度而用于N。在一些实施例中,一旦方程(7A)或(7B)已经被执行,所计算的合成图像就通过归一化映射回(例如,再定标至)特定范围(例如,0-1、或0-255)Lc [X,y] _Ec*Lc [x, y] /max (Lc)(9A)在方程(9A)中,第一个Lc [x,y]是在归一化之后在合成图像1340中的坐标[x,y]处的像素的亮度,第二个Lc [X,y]为在归一化之前在合成图像1340中的坐标[x,y]处的像素的亮度,max(Lc)为在归一化之前在合成图像中的任何像素的最大亮度值,而Ec是规定该范围的定标因子。一些实施例通过最高可能像素值(其为l*Eu)进行归一化。这样做是为了在与EVO相比时避免使HDR图像的总明度变化。一些实施例应用不同的归一化因子而非Hiax(Lc)。方程(9B)提供了用于归一化合成图像的替换方程。Lc [X,y] =Ec*Lc [x, y] /Eu(9B)
在方程(9B)中,第一个Lc [x,y]是在归一化之后在合成图像1340中的坐标[x,y]处的像素的亮度,第二个Lc [x,y]是在归一化之前在合成图像中的坐标[x,y]处的像素的亮度,En/Eb是曝光过度图像的曝光的曝光定标因子(例如,如果曝光过度图像具有正常曝光的曝光时间的四倍,则En/Eb=4),而Ec是规定该范围的定标因子。在一些实施例中Ec设为1,在其他实施例中Ec设为1. 2,在再一些实施例中Ec设为其他值。在一些实施例中,捕捉操作在方程(9A)和(9B)的再定标之后结束。在这类实施例中,当处理1200生成(在1230)合成亮度图像1340的经高斯模糊的合成1350版本时,渲染操作于是开始。经高斯模糊的合成1350出于与创建单个蒙板的高斯模糊的理由相似的理由而生成。经高斯模糊的合成1350用作在处理1200的其他部分中调节其他图像的权重,并且模糊增强具有与其周围的像素非常不同值的像素的影响(对最终图像)。高斯模糊通过与方程(5)和¢)的蒙板模糊相似的处理生成。G[x, y] = filter (Lc[x, y], k)(10)在方程(10)中,G[x,y]表示经高斯模糊的合成1350。Lc[x,y]表示在合成图像1340的(x,y)处的像素的亮度。滤波器是使用滤波器k的2D滤波操作。项k是2D高斯滤波器。在一些实施例中,7X7或9X9滤波器与3的像素方差一起使用。在一些实施例中,相同的滤波器和内核用于以方程(5)和(6)模糊蒙板和以方程(10)模糊经高斯模糊的图像,在其他实施例中,使用不同的滤波器和/或内核。与蒙板一样,大k值能够导致大光晕效果,而小k值则会导致在区域内的对比度的损失。模糊确保经高斯模糊的合成1350将基于像素所在的区域的明度进行加权而非基于独立像素的明度进行加权。在一些实施例中,基于区域的加权改善在具有来自多个范围(暗、中等和/或亮)的像素的区域内的对比度。一旦生成经高斯模糊的合成1350,处理1200就生成(在1240)高光衰减图像1360A和阴影增强图像1360B。阴影增强图像1360B包括在图像的暗区中的扩大范围的光照水平和在亮区中的压缩范围的光照水平。换言之,在暗区中,亮度值之间的差异在阴影增强图像中被扩大。例如,在合成图像1340中的具有0. 02亮度的像素可被转变为在阴影增强图像中的0. 14的像素,而在合成图像1340中的具有0. 03亮度的像素可被转变为在阴影增强图像中的0. 19的像素。在每一情况下,像素的亮度值的大小增大,但更显著地,亮度值的大小的差异增大。对于在亮区中的像素,像素亮度值的大小也增大,但是在两个像素的亮度值大小之间的差异减小。换言之,阴影增强增大了整个范围内的明度值,但是在范围的低端,在相邻值之间的增加大于在该范围的高端的增加(即,暗区明度的增加大于亮区明度的增加)。类似地,高光衰减图像1360A扩大更亮像素的亮度的范围并且缩小合成图像1340的更暗像素的亮度范围。换言之,高光衰减减小整个范围内的明度值,但是在范围的高端,在相邻值之间的减小大于在范围的低端的减小(即,亮区明度的减小大于暗区明度的减小)。在一些实施例中,阴影增强图像1360B由以下方程生成Ls [x, y] = Lc [x, y] / (Bs*G[x, y] + (1-Bs))(11)在方程(11)中,Ls[x,y]是阴影增强图像1360B中的坐标[x,y]处的像素的亮度值。G[x,y]表示在经高斯模糊的合成1350中的坐标[x,y]处的像素值。Bs为定标因子。在一些实施例中,Bs等于O. 83。在其他实施例中,使用其他值。在一些实施例中,高光衰减图像1360A由以下方程生成Lh [x, y] =1- ( (1- L c [ x,y ] ) / ( (1- B h ) * (1- G [ x,y ] ) + B h ))
(12)在方程(12)中,Lh[x,y]是在高光衰减图像1360A中的坐标[x,y]处的像素的亮度值。G[x, y]表示在经高斯模糊的合成1350中的坐标[x, y]处的像素值。Bs是定标因子。在一些实施例中,Bs等于O. 7。在其他实施例中,为定标因子使用其他值。处理1200合成(在1250)阴影增强图像1360B和高光衰减图像1360A以创建合成图像1370。一些实施例的合成图像1370使用以下方程生成Lc [x, y] = (Ls [x, y] * (1~G[x, y])) + (Lh [x, y] *G[x, y])(13)在方程(13)中,Lc[x,y]是在合成图像1370中的坐标[x,y]处的像素的亮度值。Lh[x, y]是在高光衰减图像1360A中的坐标[x, y]处的像素的亮度值。G[x, y]是在经高斯模糊的合成1350中的坐标[x,y]处的像素值。Ls[x,y]是在阴影增强图像1360B中的坐标[X,y]处的像素的亮度值。阴影增强图像1360B和高光衰减图像1360A的组合如以方程(13)加权的那样具有强化在图像的亮区和暗区两者中的细节的净效果。在一些实施例中,作为合成阴影增强图像1360B和高光衰减图像1360A的一部分,任何具有比允许范围的顶部大的亮度的像素被减小至允许范围的顶部(例如,亮度1.1在从O至I的范围中将被降至亮度I)。一些实施例在此时停止增强及减弱亮度值,并且移动到操作1260。但是,在一些实施例中,合成图像1360A和1360B还包括中间调像素的增强。一些这种实施例实施以下方程以增强中间调Lc[x,y] = Lc[x,yr(2~((Bm*G[x,y]*(l_G[x,y]))~2)(14)在方程(14)中,第一个Lc[x,y]是在中间调像素增强之后在合成图像1370中的坐标[X,y]处的像素的亮度值。第二个Lc[x,y]是在中间调像素增强之前在合成图像1370中的坐标[x,y]处的像素的亮度值。G[x,y]是在经高斯模糊的合成1350中的坐标[x,y]处的像素值。Bm是确定增强曲线的定标因子。一些实施例使用其他方程来增强中间调。如上所述,一些实施例不增强中间调。在生成合成辉度图像1340 (例如,使用方程(7B))而非合成亮度图像1340 (例如,使用方程(7A))的一些实施例中,阴影增强图像1360B、高光衰减图像1360A和合成图像1370是辉度图像而非亮度图像。也就是说,图像1360A和1360B以及1370全都是辉度图像,这是由于它们由辉度图像1340 (直接或间接)而非亮度图像1340生成。在一些这类实施例中,辉度图像1370通过伽马校正(例如,将图像1370的辉度值升为Y次幂)转变为亮度图像1370。一些实施例的移动设备提供用来将辉度图像1370转变为亮度图像1370的伽马值。在一些实施例中,Y值为1/2.2。 各种合成处理会得到亮度值集中在有效值范围的一个小区域中的图像。例如,图像可能具有几乎全都比有效标尺的50%暗的像素或者具有几乎全都比有效标尺的50%亮的像素。为了增大在图像中的亮度值的范围以利用有效标尺的优点,一些实施例的处理1200对合成图像1370的亮度版本应用(在1260)直方图拉伸以使其返回到初始正常曝光亮度图像1320B的大致亮度分布。直方图拉伸生成合成图像1370的亮度直方图并为图像1370确定O. 5%与99. 5%之间的亮度的范围。该处理随后针对正常曝光亮度图像1320B的像素进行相同的确定。该处理随后将以下方程应用于合成图像1370的像素Lf [X,y] = (Lc [x, y] -LI) * ((H2-L2) / (Hl-Ll)) +12(15)在方程(15)中,Lf [X,y]是在最终合成图像1380中的坐标[x,y]处的像素的亮度。Lc[X,y]是在合成图像1370中的坐标[x,y]处的像素的亮度。LI为比在合成图像1370中的99. 5%的像素暗的亮度值。Hl为比在合成图像1370中的99. 5%的像素亮的亮度值。L2为比在正常曝光亮度图像1320B中的99. 5%的像素暗的亮度值。H2为比在正常曝光亮度图像1320B中的99. 5%的像素亮的亮度值。在一些实施例中,百分比可以不同。该直方图拉伸为图片提供了与正常曝光亮度图像1320B相同的总光照范围。百分数截取的原因是为了防止具有边远亮度的任何像素形成在与初始正常曝光亮度图像1320B相比时具有过分压缩或过于宽泛范围的图像。一些实施例随后将亮度值高于有效范围的顶部的像素的亮度值改变为该范围的顶部值。一些实施例将亮度值低于有效范围的底部的像素的亮度值改变为该范围的底部值。一些实施例将亮度值扩大到任意范围(例如,全有效范围)以利用有效亮度的全范围的优点。例如,当初始正常曝光亮度图像1320B具有较窄的亮度范围时,一些实施例将亮度扩大到全范围。在直方图拉伸之后,处理1200随后结束。以上对直方图拉伸的描述其所描述的是将直方图应用于亮度合成图像1370的实施例。但是,在一些实施例中,直方图拉伸被应用于辉度合成图像1370而伽马校正被应用于最终合成图像1380的辉度版本以产生合成图像1380的亮度版本。C.合成色度通道图像亮度、蓝色 色度、红色色度(Y’ CbCr )格式或辉度、蓝色色度、红色色度(YCbCr )格式的图像具有携带颜色信息的色度分量(Cb&Cr)。处理1200合成这些格式的图像的亮度(或辉度)分量,但是一些实施例与亮度分量合成分开地合成图像1310A-1310C的色度通道图像。在一些实施例中,在合成色度图像中使用与在合成亮度图像中所使用的相同的蒙板。图14例示了用于合成色度通道图像的处理1400的一些实施例。图14将参考图15进行描述。图15例示了在一些实施例中合成色度通道图像的示例。图15包括曝光不足色度通道图像1520A、正常曝光色度通道图像1520B、曝光过度色度通道图像1520C、合成色度特定图像1530、和从亮度合成导入的数据1540。曝光不足色度通道图像1520A包括来自图像1310A的色度值(例如,Cr和Cb)。正常曝光色度通道图像1520B包括来自图像1310B的色度值(例如,Cr和Cb)。曝光过度色度通道图像1520C包括来自图像1310C的色度值(例如,Cr和Cb)。在一些实施例中,每组色度通道图像(Cb和Cr)具有对其执行的相同操作。一些实施例的合成色度图像1530还包括两个通道的色度数据。本领域普通技术人员将理解,在一些这类实施例中,合成处理对每个色度通道分开执行。但是,为了清楚起见,下面对色度合成处理的描述有时称为“合成图像的像素”而非“合成图像的一个通道的像素”。处理1400开始于接收(在1410)曝光过度、曝光不足和正常曝光蒙板(例如在亮度合成处理1200期间生成的蒙板)。在图15中,导入的数据1540包括这些蒙板。在一些实施例中,这种蒙板由处理1400独立地生成,并非是亮度合成处理中的蒙板的副本。在一些实施例中,用于色度合成的蒙板不同于用于亮度合成的蒙板。例如,在一些实施例中,用于色度合成的蒙板由最终亮度合成图像生成。一些实施例由正常曝光亮度图像生成一组蒙板,而由单独的亮度图像生成另一组蒙板,并且使用每组蒙板以用于合成不同类型的图像分量(例如,一个用于亮度而另一个用于色度)。在接收(或生成)蒙板之后,处理1400从蒙板(例如,蒙板1330A-1330C)和色度图像1520A-1520C的一个通道(Cb或Cr)生成(在1420)合成图像的一个色度通道。在一些实施例中,色度图像1520A-1520C的通道使用以下方程合成Ce [X,y] = Eb*Cb [x, y] *Mb [x, y]+En*Cn[x, y]*Mn[x, y]+Eu*Cu [x, y] *Mu [x, y](16)在方程(16)中,Ce [x,y]表示在(图15的)合成色度通道图像1530中的坐标[x,y]处的像素的色度值。Cb[x,y]表示在曝光过度(亮)色度通道图像1520C中的坐标[x,y]处的像素的色度值。Cn [X,y]和Cu[x,y]分别是正常色度通道图像1520B和曝光不足色度通道图像1520A的色度值。Eb是曝光过度色度通道图像1520C的曝光定标因子。En和Eu分别是正常色度通道图像1520B和曝光不足色度通道图像1520A的曝光定标因子。Mb[x,y]表示曝光过度蒙板1330C在坐标[X,y]处的值。Mn[x,y]和Mu[x,y]分别表示正常曝光蒙板1330B和曝光不足蒙板1330A的值。在蒙板1330C中的像素值确定在曝光过度色度通道图像1520C中的对应像素对合成色度具有多大影响。在蒙板1330B中的像素值确定在正常曝光色度通道图像1520B中的对应像素对合成色度具有多大影响。在蒙板1330A中像素的值确定在曝光不足色度通道图像1520A中的对应像素对合成色度具有多大影响。在每个蒙板1330A-1330C中,更高的值表示更大的影响。通过使用与亮度图像相同的蒙板,色度调节确保在色度通道图像1520A-1520C中的每个像素的颜色数据将与亮度图像中的每个像素的对应亮度数据相匹配。例如,从曝光过度亮度图像1320C中的对应像素获得其亮度值的62%的特定像素也将从曝光过度色度通道图像1520C的对应像素获得其色度值的62%。处理1400接收(在1430)经高斯模糊的蒙板。在一些实施例中,其为由亮度合成图像1340生成的同一经高斯模糊的合成1350的副本。本领域普通技术人员将理解,经高斯模糊的合成1350还可以在处理1400的较早或较后时刻被接收。处理1400接收(在1440)直方图拉伸值(例如(H2-L2)/(Hl-Ll),如在方程(15)中所见)。在一些实施例中,该值在处理1400期间被独立计算,而非在处理1200期间存储并在处理1400期间被接收。处理1400随后使用经高斯模糊的合成1350和直方图拉伸值来调节(在1450)合成色度。在一些实施例中,这种调节也涉及将合成色度图像乘以饱和因子。一些实施例提供预编程的饱和因子。在一些实施例中,作为预编程饱和因子的附加或代替,设有用户可调饱和因子。在再一些实施例中,色度图像调节由方程(17)-(19)确定F [X,y] = 1+ (H2-L2) / (Hl-Ll) *X*G [x,y] * (1_G [x,y]))(17)在方程(17)中的饱和因子F[x,y]在一些实施例中用来调节在坐标[x,y]处的像素的色度,如下在方程(19)中所示的。LI是比在(图13A或图13B的)合成图像1370中的像素的99. 5%暗的亮度值。Hl是比在合成图像1370中的像素的99. 5%亮的亮度值。L2是比在正常曝光亮度图像1320B中的像素的99. 5%暗的亮度值。H2是比在正常曝光亮度图像1320B中的像素的99. 5%亮的亮度值。X是饱和因子(例如1. 2),其在不同的实施例中不同并且在一些实施例中可被改变(例如,通过用户或移动设备)。在一些实施例中,用来计算直方图拉伸因子的百分数可以不同于`以上所示的那些。G[x,y]是在经高斯模糊的合成1350中的坐标[x,y]处的像素的值。因子G* (1-G)在G=O. 5时最大并且在G=I或G=O时最小。因此,以这种方式使用经高斯模糊的合成1350将图像的具有中间调亮度的那些部分的色度值增强得比图像的具有亮或暗像素的那些部分的色度值更多。增强中间调像素的颜色提供了与均匀增强颜色不同的最终图像。在一些实施例中,合成色度通过将色度值除以使用以下方程生成的归一化因子而归一化(在1460):N[x, y] = (Eb*Mb[x, y]) + (En*Mn[x, y]) + (Eu*Mu[x, y])(18)在方程(18)中的归一化因子N[x,y]在一些实施例中用来调节在坐标[x,y]处的像素的色度,如在方程(19)中所示的。Eb是曝光过度色度通道图像1520C的曝光定标因子。En和Eu分别是正常曝光色度通道图像1520B和曝光不足色度通道图像1520A的曝光定标因子。Mb [x, y]表示曝光过度蒙板1330C在坐标[x, y]处的值。Mn[x, y]和Mu[x,y]分别表示正常曝光蒙板1330B和曝光不足蒙板1330A的值。因此,在一些实施例中,最终合成色度通道图像1530由以下方程确定Cf[x,y] = Ce [x, y] *F[x, y]/N[x, y](19)
在方程(19)中,Cf[x,y]是在合成色度通道图像1530 (在饱和之后)中的坐标[X,y]处的像素的色度值。N[X, y]是用来除以合成色度图像的色度值的归一化因子(例如,来自方程(18)的归一化因子)。Cc[x, y]是在合成色度通道图像1530中的坐标[x,y]处的像素的色度值。F[x, y]为用来乘以在坐标[X,y]处的像素的色度的饱和因子(例如,来自方程(17)的饱和因子)。在进行这些调节的实施例中,调节产生最终合成色度通道图像1530。本领域普通技术人员将理解,使用方程(19)的一些实施例使用与方程(17)和(18)不同的方程计算F[x, y]和N[x, y]。处理1400随后确定(在1470)是否存在待合成的另一色度通道图像。如果存在待合成的另一色度通道(例如,如果处理1400已经完成合成Cb色度图像,但是尚未完成Cr色度图像,则其将调节Cr色度图像),处理1400返回到操作1420以将蒙板应用于新的色度通道图像。在一些实施例中,对每个色度通道图像依次执行独立的操作而非对一个色度通道图像执行操作1420-1460并在随后对另一色度通道图像执行1420-1460。处理1400在一些实施例中对所有色度通道执行。尽管以上色度相关的方程描述了图像的色度分量(具有与图像的对应亮度(或辉度)分量相同的分辨率)的合成,但是本领域普通技术人员将理解,在一些实施例中,图像的色度分量具有与图像的亮度(或辉度)分量不同的分辨率。在一些这类实施例中,蒙板被调节以计及分辨率的差异。例如,一些实施例采用4 :2 :2格式,其中在图像的色度分量中的每个像素对应于在图像的亮度/辉度分量中的两个水平相邻的像素。由于一些实施例的蒙板具有与图像的亮度/辉度分量相同的分辨率,因此在图像的色度分量中的每个像素对应于在对应蒙板中的两个水平相邻的像素。在一些这类实施例中,图像的色度像素的值通过在对应蒙板中的水平相邻像素的相应对的平均值加权。在其他这类实施例中,色度像素的值通过在蒙板中的相应水平相邻像素对中的一个或另一个的值加权(例如,该对的最左像素的值)。类似地,一些实施例采用4 2 0格式,其中每个色度像素对应于在亮度/辉度分量中(和在蒙板中)的2*2方块的像素。在一些这类实施例中,色度像素的值通过在蒙板中的对应的四个像素的平均值加权。在其他这类实施例中,色度像素的值通过在蒙板中的四个对应像素中的一个的值加权(例如,四个中的左上像素的值)。作为替换,在一些实施例中,色度分量的合成以蒙板的分辨率执行,从而生成具有与合成亮度/辉度分量相同分辨率的合成色度分量。在一些这类实施例中,合成色度分量在某一时刻转换回初始色度分量的分辨率。一些实施例的合成模块将(图13A或图13B的)最终亮度图像1380以及(图15的)最终合成色度通道图像1530的每个通道结合以产生最终HDR图像。作为替换,合成模块在一些实施例中将最终亮度图像1380和最终合成色度通道图像1530转变为RGB格式(例如,sRGB)以产生最终HDR图像。D.调节曝光条件一些实施例的移动设备自动调节正常曝光图像的曝光时间以计及在移动设备拍摄图像之时的局部光照条件。在一些实施例中,曝光持续时间为介于相机的CMOS传感器的刷新之间的时间。移动设备通过增大正常时间曝光的曝光时间来补偿较低的光照条件。在一些这类实施例中,移动设备也具有曝光持续时间的上限。曝光过度图像的曝光持续时间在一些实施例中是正常曝光持续时间的倍数(例如,正常曝光持续时间的4倍)。在较低光照条件下,正常曝光的增大的持续时间和曝光过度图像的曝光持续时间的默认倍数可能导致长于移动设备的上限所允许的曝光过度图像的曝光持续时间。为了调节这些条件,一些实施例使用低于默认值(例如,2倍而非默认的4倍)的曝光过度图像的曝光倍数。一些实施例的合成处理相应地增大定标因子Eb。在某些情况下,光照如此暗淡而使得正常曝光持续时间位于所允许的曝光持续时间的上限处或附近。在这种情况下,曝光过度时间将被强制为不长于与正常曝光持续时间相同的长度(或几乎相同的长度)。一些实施例的移动设备以与正常曝光图像相同的时间量(或者几乎相同的时间量)拍摄曝光过度图像,并且仍然执行合成。本领域普通技术人员将理解,在其中正常曝光图像和曝光过度图像以相同曝光持续时间拍摄的情况下,图像可以指代两张正常曝光图像而非正常曝光图像和曝光过度图像。在其中正常曝光持续时间是移动设备的最大允许曝光的情况下,一些实施例合成以相同曝光持续时间拍摄的两张正常曝光图片以减小在最终图像中的噪声水平。在其中正常曝光持续时间接近移动设备的最大允许曝光的情况下,过度曝光图像以仅比正常曝光图像的曝光持续时间略长的曝光持续时间拍摄。由于曝光持续时间之比较低,在这种情况下的曝光过度图像不会如同其通常那样地增大动态范围。但是,一些实施例合成曝光过度图像和正常曝光图像以用于动态范围的较小增大和/或减小在最终图像中的噪声水平。在其中曝光持续时间受限的实施例中,当曝光过度时间有上限时,定标因子Eb根据曝光时间的变化的比率而增大。在一些相同或其他实施例中,移动设备在拍摄曝光过度图像时使用闪光灯而在拍摄正常曝光图像时不使用闪光灯以补偿曝光过度图像的较长曝光持续时间的缺乏。在一些实施例中,闪光灯在正常曝光持续时间落于最大曝光持续时间的某些特定阈值内时被使用。例如,在一些实施例中,当正常曝光持续时间大于最大曝光持续时间的50%时使用闪光灯。在其他实施例中,其他百分比用作阈值。在一些实施例中,当正常曝光持续时间高于阈值时,过度曝光持续时间设定至最大曝光持续时间(例如,比在更亮光照条件下使用的正常曝光持续时间更低倍数)并且闪光灯用于过度曝光持续时间而非正常曝光持续时间或曝光不足持续时间。在一些实施例中,在其中闪光灯被使用的情况下,移动设备捕捉并合成曝光过度和正常曝光图像,但是不捕捉曝光不足图像和/或不将曝光不足图像与其他两张图像进行合成。一些实施例的移动设备具有对曝光长度的下限。在这类实施例中,在明亮光照条件下,曝光不足图像的曝光持续时间的默认乘数可以导致曝光持续时间比移动设备所允许的下限短。在一些这类实施例中,曝光不足图像使用比其本应的乘数要高的曝光乘数(例如,1/2的曝光乘数而非1/4的默认曝光乘数)。在一些情况下,光过于明亮而使得正常曝光持续时间位于所允许曝光持续时间的下限处。在该情况下,曝光不足以与正常曝光图像相同的时间量拍摄(从而导致两张正常曝光图像)并且在合成时使用以减小在最终图像中的噪声水平。在一些这类实施例中,定标因子Eu根据曝光持续时间的变化的比率而减小。尽管对本文的实施例中的很多的描述涉及拍摄和合成三张图像(例如,曝光不足图像、正常曝光图像和曝光过度图像),但是本领域普通技术人员将理解,在其他实施例中可以拍摄和/或合成其他数量的图像。例如,一些实施例合成两张图像(例如,曝光不足图像和正常曝光图像)而非三张图像。此外,一些实施例基于光照条件拍摄不同数量的图像。例如,一些这类实施例在移动设备捕捉具有暗区和亮区两者的场景的图像时合成三张图像,而在移动设备捕捉没有或几乎没有暗区或者没有或几乎没有亮区的图像时合成两张图像。当场景没有或几乎没有暗区时,一些这类实施例合成正常曝光图像和曝光不足图像。当场景没有或几乎没有亮区时,一些这类实施例合成正常曝光图像和曝光过度图像。一些这类实施例使用一张或多张图像(例如,预览图像)的直方图来确定场景是否没有或几乎没有亮区或者没有或几乎没有暗区。当没有或几乎没有亮区或暗区之一时合成两张图像的一些实施例在没有或几乎没有亮区和暗区两者(即,主要为中间调的场景)时仍然使用三张图像。作为替换,不同于基于待捕捉的场景的单独区域的品质排除图像的类型,一些实施例在捕捉高于特定总光照水平的场景时排除曝光过度图像,而一些实施例在捕捉低于特定总光照水平的场景时排除曝光不足图像。尽管以上描述包括用于多组数据的“一张图像”或“多张图像”(例如,高斯模糊图像、阴影增强图像、曝光过度图像等),但是本领域普通技术人员将理解,在一些实施例中,在实施实施例的正常过程中,这些“图像”中的数据没有显示为视觉形式。在这类实施例中,“图像”中的数据用来操纵和调节最终以视觉形式显示的其他数据。一些实施例仅显示最终产品,即HDR图像。但是,其他实施例显示其他图像中的一张或多张以及最终HDR图像。将一张闪光灯照明的图像与一张或多张非闪光灯照明的图像相组合的实施例允许设备的HDR图像捕捉模式与设备的闪光灯模式相结合地操作。但是,其他实施例可以仅允许设备以闪光灯模式或者HDR模式操作。因此,当使能自动闪光灯模式时,这些实施例禁用HDR图像捕捉模式。E.图像格式上述实施例中的许多以一种或多种图像格式进行描述。本领域普通技术人员将理解,不同的实施例提供和操纵不同格式的图像。在一些实施例中,彩色图像提供为三个信息通道,例如亮度通道和两个色度通道。用于这种类型信息的一种颜色格式为Y’ CbCr(亮度,蓝色色度,红色色度)颜色格式。一些实施例的移动设备的相机功能自动提供Y’ CbCr格式的图像。移动设备的光传感器(例如,电荷耦联器件)测量抵达每个传感器的光强度并且生成与该强度成比例的辉度值(Y)。移动设备通过以下生成图像的Y’分量采用从相机的光传感器接收的辉度数据并且向该辉度数据应用伽马校正(例如,将辉度值数学地增强到某一幂,例如1/2. 2次幂)。在Y’CbCr格式中,亮度(Y’)通道携带图像的明度信息;Cb (有时在外部引用时写成Cb)通道携带图像的蓝色值与亮度(Y’)值有多少不同的信息;而& (有时在外部引用时写成Ck)通道携带图像的红色值与亮度(Y’)值有多少不同的信息。有效地,亮度通道(Y’ )提供黑色&白色(和灰色)图像,而颜色通道(Cb和Cr)向图像添加颜色。在一些实施例中,Y’ CbCr值的标度可被任意改变。对于本文的计算,亮度(Y’)为计算定标至最大值I和最小值0,而色度(Cb&Cr)则定标为-O. 5至O. 5。但是,在一些实施例的范围内,其他标度是可能的。例如,在一些实施例中,亮度(Y’ )定标为从O至255。其他实施例将亮度定标为从16至235,并且将色度定标为从16至240。在一些实施例中使用其他颜色格式例如YUV等。一些移动设备直接捕捉YCbCr颜色格式的图像,并在随后将图像转换为RGB图像(例如,标准RGB)或Y’CbCr图像。在一些实施例中,上述操作对以Y’CbCr格式捕捉的图像(带有来自移动设备标度的任何必要的再定标)执行。在其他实施例中,操作对最初以RGB格式接收且随后转换为Y’ CbCr的图像执行。前述的操作和数学方程假设Y’ CbCr颜色格式,但是其他实施例也可使用其他颜色格式(例如,YUV等)。在具有其他颜色格式的一些实施例中,操作和方程被相应调整。类似地,当生成用来如上所述地对齐各图像的抽取图像和位图时,一些实施例使用辉度值而非亮度值。尽管上述处理和方程就特定图像格式进行描述,但是本领域普通技术人员将理解,在一些实施例中,处理和方程能够用于其他图像格式。例如,在一些地方上述描述涉及亮度数据,而在一些地方其涉及辉度数据。但是,除非另外指明,本文的在一些实施例中应用于亮度值的方程和处理可以在其他实施例中应用于辉度值,并且反之亦然。本领域普通技术人员将理解,亮度和辉度仅仅为用于图像强度数据的格式的两个示例,并且本文的涉及辉度和亮度的处理和方程可以在一些实施例中应用于存储强度信息的其他格式。例如,一些实施例对RGB格式、sRGB格式、R’ G’ B’格式(即,伽马校正的RGB格式)、或不将强度数据和颜色数据提供为单独分量的其他格式的图像的红色、蓝色和绿色分量执行上述操作。执行对红色、蓝色和绿色分量的这种操作的一些实施例使用上述相同的操作或相似的操作执行在伽马校正与非伽马校正格式之间的转换。类似地,本文的应用于色度数据的方程和处理可以在一些实施例中应用于将颜色数据独立于强度数据存储的其他格式。此外,尽管以上描述指出处理的在其中能够发生从一种格式向另一种格式的转换(例如,从亮度到辉度或者从RGB到亮度)的一些特定部分,但是本领域普通技术人员将理解,在一些实施例中,从一种图像格式向另一种的转换可以在处理的任何阶段或多个阶段发生。V1.移动设备图16是一些实施例的移动计算设备1600的示例。移动计算设备的实现包括一个或多个处理单元1605、存储器接口 1610和外设接口 1615。构成计算设备架构的这些部件中的每一个可以是分立的部件或是集成到一个或多个集成电路中。这些不同的部件还可以通过一个或多个通信总线或信号线路耦接至一起。外设接口 1615耦接至各传感器和子系统,包括相机子系统1620、一个或多个无线通信子系统1625、音频子系统1630、I/O子系统1635等。外设接口 1615使能在处理器与外设之间的通信。外设例如定向传感器1645或加速度传感器1650可被耦接至外设接口 1615以促进定向和加速度功能。相机子系统1620能够耦接至一个或多个光学传感器1640 (例如,电荷耦联器件(CCD)光学传感器、互补金属氧化物半导体(捕捉模块)光学传感器)以用于设备的一个或多个相机。在一些实施例中,设备仅具有一个相机,而在其他实施例中,设备具有一个以上(例如,两个)相机。在一些实施例中,设备具有位于设备的多个侧面上的相机(例如,位于设备的前侧上的相机和位于设备的背侧上的相机)。与传感器耦接的相机子系统1620可以促进相机功能,例如图像和/或视频数据捕捉。无线通信子系统1625可以用来促进通信功能。无线通信子系统1625可以包括射频接收器和发射器、以及光学接收器和发射器。它们可以实现为在一个或多个通信网络例如GSM网络、W1-Fi网络、蓝牙网络等上工作。音频子系统1630耦接至扬声器1631和麦克风1632以促进语音使能功能,例如语音识别、数字记录等。I/O子系统1635涉及在输入/输出外围装置例如显示器、触摸屏等与CPU的数据总线之间的通过外设接口 1615的传输。I/O子系统1635能够包括触摸屏控制器1655和其他输入控制器1660以促进这些功能。触摸屏控制器1655能够耦接至触摸屏1665并且使用多种触摸敏感技术中的任一种检测在屏幕上的接触和运动。其他输入控制器1660能够耦接至其他输入/控制设备,例如一个或多个按钮。存储器接口 1610能够耦接至存储器1670,存储器1670能够包括高速随机存取存储器和/或非易失性存储器,例如闪存存储器。存储器能够存储操作系统(OS) 1672。OS1672能够包括用于处理基本系统服务和用于执行硬件相关任务的指令。存储器还能够包括通信指令1674以促进与一个或多个附加设备的通信;图形用户界面指令1676以促进图形用户界面处理;图像处理指令1678以促进图像相关的处理和功能;电话指令1680以促进电话相关的处理和功能;媒体交换和处理指令1682以促进媒体通信和处理相关的处理和功能;相机指令1684以促进相机相关的处理和功能;以及HDR图像生成指令1686以促进HDR生成处理和功能。以上标识的指令不需要被实现为分立软件程序或模块。移动计算设备的各种功能能够以硬件和/或软件实现,包括一个或多个信号处理和/或专用集成电路。图17例示了触摸I/O设备。上述实施例可以包括能够经由有线或无线通信通道1702接收触摸输入以用于与计算系统1703交互的触摸I/O设备1701,如图17中所示。触摸I/O设备1701可以用来代替其他输入设备例如键盘、鼠标等或与其组合以向计算系统1703提供用户输入。一个或多个触摸I/O设备1701可以用于向计算系统1703提供用户输入。触摸I/O设备1701可以是计算系统1703的集成部分(例如,膝上型计算机上的触摸屏)或者可以与计算系统1703分开。触摸I/O设备1701可以包括完全或部分透明的、半透明的、非透明的、不透明的或是上述任意组合的触敏面板。触摸I/O设备1701可被具体化为触摸屏、触摸板、起到触摸板作用的触摸屏(例如,替代膝上型计算机的触摸板的触摸屏)、与任意其他输入设备相结合或并入其中的触摸屏或触摸板(例如,设置在键盘上的触摸屏或触摸板)或具有用于接收触摸输入的触敏表面的任何多个维度的对象。在一个示例中,具体化为触摸屏的触摸I/O设备1701可以包括部分或完全设置在显示器的至少一部分上的透明和/或半透明触敏面板。根据该实施例,触摸I/o设备1701用来显示从计算系统1703 (和/或另一源)传送的图形数据并且还用来接收用户输入。在其他实施例中,触摸I/O设备1701可被具体化为一体式触摸屏,其中触敏组件/设备与显示部件/设备集成。在又一些实施例中,触摸屏可被用作显示作为主显示器的补充或相同图形数据的补充或附加显示屏,并接收触摸输入。触摸I/O设备1701可被配置为基于电容、电阻、光、声、电感、机械、化学测量结果或能够因靠近设备1701的一次或多次触摸或接近触摸的发生测量的任何现象来检测在设备1701上的一次或多次触摸或接近触摸的位置。软件、硬件、固件或它们的任意组合可以用来处理所检测的触摸的测量结果以识别并跟踪一个或多个手势。手势可以对应于在触摸I/O设备1701上的固定或不固定的、单个或多个触摸或接近触摸。手势可以通过以特定方式例如点击、按压、摆动、刷过、扭曲、改变定向、利用变化的压力按压等等在触摸I/O设备1701上基本同时地、连续地或依序地移动一根或多根手指或其他物体而执行。手势可由如下表征(但不限于此)夹持、滑动、刷过、旋转、折曲、拖动、或在手指之间或利用任意其他手指的点击运动。单个手势可以利用一只或多只手、通过一个或多个用户或者它们的任意组合执行。计算系统1703可以用图形数据驱动显示器以显示图形用户界面(⑶I)。⑶I可被配置为经由触摸I/o设备1701接收触摸输入。具体化为触摸屏,触摸I/O设备1701可以显示⑶I。作为替换,⑶I可被显示在与触摸I/O设备1701分开的显示器上。⑶I可以包括在接口内的特定位置处显示的图形元素。图形元素可以包括但不限于各种显示的虚拟输入设备,包括虚拟滚轮、虚拟键盘、虚拟旋钮、虚拟按键、任意虚拟Π等等。用户可以在触摸I/O设备1701上的与GUI的图形元素相关联的一个或多个特定位置处执行手势。在其他实施例中,用户可以在触摸I/O设备1701上的独立于GUI的图形元素的一个或多个特定位置处执行手势。在触摸I/O设备1701上执行的手势可以直接或间接地操纵、控制、修改、移动、激活、启动或一般地影响图形元素例如光标、图标、媒体文件、列表、文本、图像的全部或部分、或GUI内的类似对象。例如,在触摸屏的情况下,用户可以通过对在触摸屏上的图形元素执行手势而直接与图形元素交互。作为替换,触摸板通常提供间接的交互。手势也可能影响非显示的GUI元素(例如,导致用户界面出现)或者可以影响在计算系统1703内的其他动作(例如,影响GU1、应用程序或操作系统的状态或模式)。手势可以也可以不与所显示的光标相结合地在触摸I/O设备1701上执行。例如,在其中手势在触摸板上执行的情况下,光标(或指针)可以显示在显示屏或触摸屏上,并且光标可以经由在触摸板上的触摸输入进行控制以与在显示屏上的图形对象交互。在其中手势直接在触摸屏上执行的其他实施例中,用户可以利用或不利用显示在触摸屏上的光标或指针而直接与在触摸屏上的对象交互。
`
响应于或基于在触摸I/O设备1701上的触摸或接近触摸,反馈可以经由通信通道1702提供给用户。反馈可以光学地、机械地、电子地、嗅觉地、听觉地等等或以上述的任意组合并且以可变或不变的方式发送。上述这些功能可被实现为数字电子电路、计算机软件、固件或硬件。该技术能够使用一个或多个计算机程序产品实现。可编程处理器和计算机能够包括在移动设备中或打包作为移动设备。处理和逻辑流程可以由一个或多个可编程处理器和一个或多个可编程逻辑电路执行。通用和专用计算设备和存储设备能够通过通信网络互连。一些实施例包括电子元件,例如微处理器、以机器可读或计算机可读介质存储计算机程序指令(也可被称为计算机可读存储介质、机器可读介质、或机器可读存储介质)的存储装置和存储器。这种计算机可读介质的一些示例包括RAM、R0M、只读致密盘(⑶-ROM)、可刻录致密盘(⑶-R)、可重写致密盘(⑶-RW)、只读数字通用盘(例如DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM,DVD-RW,DVD+RW等)、闪速存储器(例如,SD卡,迷你SD卡,微型SD卡等)、磁场和/或固态硬盘驱动器、只读和可刻录Biu-Ray 盘、超密度光盘、任何其他光学或磁介质和软盘。计算机可读介质可以存储能够由至少一个处理单元执行且包括用于执行各操作的指令集的计算机程序。计算机程序或计算机代码的示例包括机器代码,其例如由编译器产生;和文件,其包括由计算机、电子元件、或微处理器使用解释器执行的更高级的代码。尽管以上讨论主要涉及执行软件的微处理器或多核处理器,但是一些实施例通过一个或多个集成电路例如专用集成电路(ASIC)或现场可编程门阵列(FPGA)执行。在一些实施例中,这种集成电路执行存储在其电路本身上的指令。
如在本申请的说明书和任意权利要求中所使用的,术语“计算机”、“服务器”、“处理器”和“存储器”全都指的是电子或其他技术设备。这些术语排除人或人群。为了本说明书的目的,术语显示或正在显示意味着在电子设备上的显示。如在本申请的说明书和任意权利要求中所使用的,术语“计算机可读介质”、或“机器可读介质”完全受限于以由计算机、计算设备、或其他电子设备(具有一个或多个处理单元)可读的形式存储信息的有形物理对象。这些术语排除任何无线信号、有线下载信号、和任何其他短暂信号。尽管已经参照多个具体细节描述了本发明,但是本领域普通技术人员将认识到,本发明可被具体化为其他具体形式而不背离本发明的精神。例如,尽管若干实施例在以上针对移动设备描述,但是本领域普通技术人员将认识到,其他实施例中的设备可以是非移动设备例如台式计算机。另外,多个附图(包括图4、图6、图7、图9、图10、图12和图14)概念性地例示了处理。这些处理的特定操作可能不需要以示出和描述的确切顺序执行。特定操作可以不以操作的一个连续序列执行,并且不同的操作可以在不同的实施例中执行。此外,处理能够使用若干子处理、或者作为较大的宏处理的一部分而被实现。另外,依序显示的操作可以按交错的方式执行。由此,本领域普通技术人员将理解,本发明不限于前面说明性的细节,而是由所附权利要求限定。
权利要求
1.一种捕捉图像的移动设备,所述设备包括 a)相机,用于以不同的图像曝光持续时间捕捉至少三张图像;以及 b)图像处理模块,用于合成所捕捉的三张图像以产生合成图像。
2.如权利要求1所述的移动设备,其中所捕捉的三张图像是捕捉高动态范围(HDR)场景的图像。
3.如权利要求2所述的移动设备,其中所述HDR场景具有亮区和暗区,并且所述合成图像是显示所述HDR场景的亮区和暗区内的细节的图像。
4.如权利要求1所述的移动设备,其中所述图像处理模块通过以下来合成所捕捉的三张图像确认在所捕捉的三张图像中的像素的加权值,以及基于所确认的加权值选择性地组合所述像素的分量颜色值。
5.如权利要求4所述的移动设备,其中所述图像处理模块基于所述像素的明度确认所述像素的加权值。
6.如权利要求4所述的移动设备,其中所述图像处理模块基于在每张图像中的每个像素的特定范围内的相邻像素的明度值确认该像素的加权值。
7.如权利要求1所述的移动设备,其中所述图像处理模块在由亮度和色度通道定义的颜色空间中接收所捕捉的三张图像,其中所述图像处理模块通过以下来合成所述三张图像(i)选择性地加权和组合所述三张图像中的像素的亮度值以产生合成亮度通道数据;和(ii)选择性地加权和组合所述三张图像中的像素的色度值以产生合成色度通道数据。
8.如权利要求7所述的移动设备,其中在合成所述三张图像的同时,所述图像处理模块将所述亮度和色度值缩放至期望的值范围。
9.如权利要求1所述的移动设备,其中所捕捉的三张图像包括亮度通道数据,其中所述图像处理模块执行将所述亮度通道数据变换为辉度通道数据的线性化操作。
10.如权利要求9所述的移动设备,其中所述线性化操作在合成所述三张图像之前执行。
11.如权利要求9所述的移动设备,其中所述线性化操作在合成所述三张图像期间执行。
12.如权利要求1所述的移动设备,其中所捕捉的三张图像是在所述移动设备被指示拍摄场景的图片后的一间隔时间内捕捉的。
13.如权利要求1所述的移动设备,其中所述图像处理模块包括 a)用于对齐所捕捉的三张图像的对齐模块; b)用于在所捕捉的三张图像对齐之后合成所述三张图像的合成模块。
14.如权利要求1所述的移动设备,其中所述相机包括 a)用于检测来自场景的光的相机传感器; b)用于与所述相机传感器接口以捕捉所述三张图像的图像捕捉模块。
15.如权利要求1所述的移动设备,其中所述移动设备是相机。
16.如权利要求1所述的移动设备,其中所述移动设备是智能电话、平板电脑、或膝上型计算机。
17.一种捕捉图像的设备的非暂态机器可读介质,所述介质存储用于产生一张高动态范围(HDR)图像的程序,所述程序包括指令集用于以多个不同图像曝光水平捕捉多张图像; 针对每张图像生成蒙板,所述蒙板规定该图像的要在所述HDR图像中使用的部分;以及 使用所述蒙板合成所捕捉的图像以产生所述HDR图像。
18.如权利要求17所述的机器可读介质,其中每个蒙板包括规定该图像要在所述HDR图像中使用的部分的多个蒙板值,其中用于使用所述蒙板合成所述图像的指令集包括用于使用蒙板值作为加权因子以选择性组合所述图像内的像素的分量颜色值的指令集。
19.如权利要求18所述的机器可读介质,其中针对每张图像的蒙板值基于至少一张所述图像中的像素的明度。
20.如权利要求18所述的机器可读介质,其中针对每张图像的蒙板包括针对该图像的每个像素的蒙板值,其中针对每个特定像素的蒙板值基于与该特定像素相邻的像素的明度。
21.如权利要求18所述的机器可读介质,其中所述程序还包括用于调节针对每个像素的蒙板值以改进所述图像的暗区与亮区之间的边界处的对比度的指令集。
22.如权利要求17所述的机器可读介质,其中每张图像的每个蒙板量化到该图像的每个部分在所述合成中应被使用的程度。
23.如权利要求17所述的机器可读介质,其中所述程序还包括用于在合成所捕捉的图像之前对齐这些图像的指令集。
24.如权利要求17所述的机器可读介质,其中所述设备是智能手机、相机、膝上型计算机、或桌上型计算机。
25.一种用于生成高动态范围(HDR)图像的方法,所述方法包括 接收以不同曝光值拍摄的多张图像; 针对每张图像,生成蒙板,所述蒙板包含针对该图像的多个像素中的每个像素的蒙板值; 针对每张图像,调节该图像的所述多个像素中的每个像素的分量颜色值,所述调节基于该像素的对应蒙板值以及与用来捕捉该图像的曝光值相关的因子;以及 通过组合来自所述图像中的每一张的对应像素的经调节的分量颜色值,生成合成HDR图像。
26.如权利要求25所述的方法,其中每个像素的经调节的分量颜色值是亮度值。
27.如权利要求25所述的方法,其中每个像素的经调节的分量颜色值是辉度值。
28.如权利要求25所述的方法,其中每个像素的经调节的分量颜色值是色度值。
29.如权利要求25所述的方法,其中生成蒙板包括 针对至少两张图像中的每一张,基于该图像的像素的明度值生成蒙板; 针对至少第三图像,基于另外的至少两张图像的蒙板来生成蒙板。
30.如权利要求25所述的方法,其中生成蒙板包括针对第一和第二图像中的每一张,生成至少一个蒙板,该蒙板从第三图像中的像素的明度值生成。
31.如权利要求30所述的方法,其中生成蒙板还包括基于第三图像中的像素的明度值生成针对该第三图像的第三蒙板。
32.如权利要求25所述的方法,还包括模糊所述蒙板中的每一个蒙板以使所述蒙板值空间平滑,从而减小曝光之间的高频转换。
33.如权利要求32所述的方法,其中减小曝光之间的高频转换减小在所述合成HDR图像中的、在该图像中的暗区与亮区之间的边界处的对比度的损失。
34.如权利要求25所述的方法,其中生成合成HDR图像包括 从所组合的经调节的分量颜色值定义初始合成图像; 通过调节所组合述分量颜色值从所述初始合成图像生成经模糊的图像; 基于所述初始合成图像和所述经模糊的图像生成所述初始合成图像的阴影增强版本; 基于所述初始合成图像和所述经模糊的图像生成所述初始合成图像的高光衰减版本; 基于所述初始合成图像的所述阴影增强版本和所述高光衰减版本生成所述合成HDR图像。
35.如权利要求25所述的方法,其中所述经调节的分量颜色值是亮度值或辉度值。
36.如权利要求25所述的方法,其中所接收的图像是捕捉高动态范围(HDR)场景的图像,而所述合成图像是显示该HDR场景内的细节的图像。
全文摘要
本发明的一些实施例提供了一种捕捉并产生具有高动态范围的图像的移动设备。为了捕捉和产生高动态范围图像,一些实施例的移动设备包括新颖的图像捕捉和处理模块。在一些实施例中,移动设备如下产生高动态范围(HDR)图像(1)使其图像捕捉模块以不同的图像曝光持续时间快速捕捉一连串图像;以及(2)使其图像处理模块合成这些图像以产生HDR图像。
文档编号G06T5/50GK103069454SQ201180039814
公开日2013年4月24日 申请日期2011年7月1日 优先权日2010年7月5日
发明者G·M·约翰逊, G·科泰, J·E·欧尔四世 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1