首页> 中国专利> 用于图像信号处理的时域滤波技术

用于图像信号处理的时域滤波技术

摘要

提供了用于对图像传感器获取的原始图像数据进行时域滤波的各种技术。在一个实施例中,时域滤波器确定当前像素的空间位置,并识别来自前一帧的至少一个同位置参考像素。至少部分基于该当前像素及其同位置参考像素来确定运动增量值。接下来,基于运动增量值和与当前像素的空间位置相对应但是来自前一帧的运动历史值来确定索引。利用该索引,可从运动表中选择第一滤波系数。在选择第一滤波系数之后,可以基于当前像素的值从亮度表中选择衰减因子,并且随后可以基于所选择的衰减因子和第一滤波系数来确定第二滤波系数。然后可以基于第二滤波系数、当前像素和同位置参考像素来计算与当前像素相对应的时域滤波输出值。

著录项

  • 公开/公告号CN102640184A

    专利类型发明专利

  • 公开/公告日2012-08-15

    原文格式PDF

  • 申请/专利权人 苹果公司;

    申请/专利号CN201080054781.2

  • 发明设计人 G·科特;J·E·弗莱德瑞克森;

    申请日2010-10-12

  • 分类号G06T5/50(20060101);H04N5/232(20060101);H04N5/14(20060101);H04N9/04(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人陈新

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 06:20:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-08

    授权

    授权

  • 2012-10-03

    实质审查的生效 IPC(主分类):G06T5/50 申请日:20101012

    实质审查的生效

  • 2012-08-15

    公开

    公开

说明书

本申请是2009年10月20日提交的美国专利申请No.12/582,414 的部分继续。

技术领域

本公开一般涉及数字成像设备,具体而言,涉及用于处理使用数 字成像设备的图像传感器而获得的图像数据的系统和方法。

背景技术

该部分用于向阅读者介绍涉及以下所描述和/或请求保护的本技 术的多个方面的领域的多个方面。相信该讨论有助于向阅读者提供背 景信息以使其更好地理解本公开的多个方面。因此,需要理解的是就 此而论这些陈述是用来阅读的,而非承认是它们是现有技术。

在近些年,数字成像设备已经变得更加普及,这至少得益于这些 设备对于一般消费者来说变得越来越消费得起。此外,除了一些刚上 市的独立数码相机之外,数字成像设备整合为另一个电子设备(例如 膝上或笔记本电脑、蜂窝电话或便携媒体播放器)的一部分也很常 见。

为了获取图像数据,大多数数字成像设备包括图像传感器,其提 供多个被配置为将图像传感器检测到的光转换为电信号的光检测元件 (例如光电检测器)。图像传感器还可包括滤色器阵列,其对由图像 传感器捕捉的光进行滤波以获得颜色信息。接着通过图像处理流水线 来处理由图像传感器捕捉的图像数据,该图像处理流水线可以对图像 数据应用多种图像处理操作以生成可被显示在显示设备(例如监视 器)上以供观看的全彩图像。

传统图像处理技术一般致力于产生在主观上和客观上都使观看者 愉悦的可观看图像,这样的传统技术可能无法充分地解决图像数据中 由成像设备和/或图像传感器引入的错误和/或失真。例如,可能因制 造缺陷或操作错误而导致的图像传感器中的缺陷像素可能无法准确地 感测光线水平,并且如果不加校正,可能会在得到的经处理图像中产 生伪影(artifact)。此外,可能因镜头制造的不完美而导致的在图 像传感器的边缘处的光强度下降,可能对特性测量有不利影响,并且 可能导致一张图像内的整体光强度不均匀。图像处理流水线还可执行 一个或多个处理以锐化图像。然而传统锐化技术可能未充分地计及图 像信号中存在的噪声,或者可能无法将噪声与图像中的边缘和纹理区 域区分开。在这些情况下,传统锐化技术可能实际上增加了图像中噪 声的显现,而这通常是不期望发生的。

可被应用于由图像传感器获得的图像数据的另一个图像处理操作 是去马赛克(demosaicing)操作。因为滤色器阵列一般为每个传感 器像素提供一个波长的颜色数据,所以一般针对每个颜色通道进行内 插得到颜色数据的完整集合,以再现全彩图像(例如RGB图像)。 通常,传统去马赛克技术一般依据某种类型的固定阈值,在水平或垂 直方向上内插缺失的颜色数据的值。然而,这些传统去马赛克技术可 能未充分计及图像内各边缘的位置和方向,这可能导致引入到全彩图 像中的特别是沿着图像内的对角边缘的边缘伪影,例如混叠 (aliasing)、棋盘格伪影或彩虹伪影。

因此,当处理由数码相机或其他成像设备获得的数字图像时,应 当注意多种考虑以提高结果图像的外观。具体而言,以下公开的特定 方面可以解决以上简要提及的一个或多个缺点。

发明内容

以下将阐述此处公开的特定实施例的概述。可以理解的是这里仅 仅呈现这些方面以向阅读者提供这些特定实施例的简要概述,并且这 些方面并不限制本公开的范围。实际上,本公开可以涵盖以下没有阐 述的多个方面。

本公开提供了用于处理利用数字图像传感器获取的图像数据的各 种技术。根据本公开的一些方面,一种这样的技术可涉及原始图像数 据的时域滤波,例如,以便减少由于运动伪影引起的噪声。在一个实 施例中,时域滤波器可接收利用图像传感器获取的原始图像数据。对 于每个像素,时域滤波器可确定当前像素的空间位置,并从前一帧中 识别至少一个同位置的参考像素(例如,位于相同的空间位置)。可 至少部分基于当前像素及其同位置的参考像素来确定运动增量值。接 着,可基于该运动增量值和与当前像素的空间位置相对应但是来自前 一帧的运动历史值,来确定第一索引值。使用该第一索引,可以从运 动表中选择第一滤波系数。在选择第一滤波系数之后,可基于当前像 素的值(例如,作为索引)从亮度表(luma table)中选择衰减因 子,并且随后可基于所选择的衰减因子和第一滤波系数来确定第二滤 波系数。然后可基于第二滤波系数、当前像素和同位置的参考像素, 来计算与当前像素相对应的时域滤波输出值。

在一个实施例中,当原始图像数据包括多个颜色分量时,可利用 取决于颜色的增益来减小各颜色通道之间的信噪比差异。例如,在确 定运动表的索引和亮度表的索引之前,根据当前像素的颜色,可以将 适当的增益应用到当前像素。在另一个实施例中,可以为原始图像数 据的每个相应的颜色提供单独的颜色相关的运动和亮度表,并且,基 于当前像素的颜色,可以从与当前颜色相对应的运动和亮度表中选择 第一滤波系数和衰减因子。

以上所示特征的多种细化存在于本公开涉及的多个方面。其他特 征也可并入到这些方面。这些细化和附加特征可独立存在或组合地存 在。例如,以下讨论的涉及一个或多个示例实施例的多种特征可被单 独或任意组合地并入到本公开的上述方面中。再次,以上呈现的简要 概述仅旨在使阅读者熟悉本公开的实施例的特定方面和内容,而非对 要求保护的主题的限制。

附图说明

本专利或申请文件包括至少一张彩色附图。将由官方根据请求和 支付必要费用来提供具有彩色附图的该专利或专利申请公开的拷贝。

阅读以下详细描述以及参考附图可以更好的理解本公开的多个方 面,在附图中:

图1是描述包括被配置为实现本公开中阐述的一个或多个图像处 理技术的成像设备和图像处理电路的电子设备的一个例子的部件的简 单方框图;

图2示出了在图1的成像设备中实现的拜耳滤色器阵列的2×2 像素块的示意图;

图3是依照本公开的一些方面的膝上型计算设备形式的图1的电 子设备的透视图;

图4是依照本公开的一些方面的桌上型计算设备形式的图1的电 子设备的前视图;

图5是依照本公开的一些方面的手持便携型电子设备形式的图1 的电子设备的前视图;

图6是图5所示的电子设备的后视图;

图7是例示了依照本公开的一些方面的可以在图1的图像处理电 路中实现的前端图像信号处理(ISP)逻辑和ISP流水处理逻辑的方 框图;

图8是示出了依照本公开的一些方面的图7的ISP前端逻辑的实 施例的更详细的方框图;

图9是依照本公开的一些方面的可在由图像传感器捕捉的源图像 帧中定义的各种成像区域的图解说明;

图10是依照本公开的一些方面的提供对如图8的ISP前端逻辑 中所示的ISP前端像素处理单元的一个实施例的更详细视图的方框 图;

图11是依照一个实施例的例示了如何将时域滤波应用到由图10 所示的ISP前端像素处理单元接收到的图像像素数据的处理框图;

图12例示了可被用于确定图11所示的时域滤波处理的一个或多 个参数的一组参考图像像素和一组对应的当前图像像素;

图13是例示了依照一个实施例的用于将时域滤波应用到一组图 像数据中的当前图像像素的处理的流程图;

图14是示出了依照一个实施例的用于计算图13的当前图像像素 的时域滤波所使用的运动增量值的技术的流程图;

图15是例示了依照另一个实施例的用于将时域滤波应用到一组 图像数据的当前图像像素的另一个处理的流程图,该处理包括对图像 数据的各个颜色分量使用不同增益;

图16是例示了依照另一个实施例,时域滤波技术如何对由图10 所示的ISP前端像素处理单元接收到的图像像素数据的每个颜色分量 使用单独的运动和亮度表的处理框图;

图17是例示了依照另一个实施例,使用如图16所示的运动和亮 度表将时域滤波应用到一组图像数据中的当前图像像素的处理的流程 图;

图18是示出了依照本公开一些方面的可在图10的ISP前端像素 处理单元中实现的像素合并补偿滤波器的一个实施例的更详细视图;

图19示出依照一个实施例的使用图18的像素合并补偿滤波器来 缩放图像数据的处理;

图20是示出了依照本公开一些方面的可在图8所示的ISP前端 处理逻辑中实现的统计处理单元的实施例的更详细方框图;

图21示出了依照本公开一些方面的当应用用于在图20的统计处 理单元进行统计处理时检测和校正缺陷像素的技术时可能要考虑的各 种图像帧边界情况;

图22是例示了依照一个实施例的用于在统计处理过程中执行缺 陷像素检测和校正的处理的流程图;

图23示出了描绘成像设备的传统镜头的光强度相对于像素位置 的三维分布;

图24是表现图像中不均匀光强度的有色图,这可能是镜头明暗 (lens shading)不规则的结果;

图25是依照本公开一些方面的包括镜头明暗纠正区域和增益栅 格(gain grid)的原始成像帧的图解例示;

图26例示了依照本公开一些方面的用于被周围四个栅格增益点 包围的图像像素的增益值的内插;

图27是例示了依照本技术一个实施例的用于确定在镜头明暗校 正操作期间可被应用到成像像素的内插增益值的处理的流程图;

图28是描绘了依照本公开一些方面的当执行镜头明暗校正时, 可被应用到表现出图23所示的光强度特性的图像的内插增益值的三 维分布;

图29示出了依照本公开一些方面的来自图24的有色图在应用了 镜头明暗校正操作之后表现出改进的光强度均匀性的有色图;

图30图解例示了依照一个实施例的可以如何计算和使用当前像 素和图像的中心之间的径向距离来确定用于镜头明暗校正的径向增益 分量;

图31是例示了依照本技术一个实施例的使用来自增益栅格的径 向增益和内插增益来确定总增益的处理的流程图,在镜头明暗校正操 作期间可将该总增益应用到成像像素;

图32是示出了依照本公开一些方面的图7的ISP流水处理逻辑 的一个实施例的方框图;

图33是示出了依照本公开一些方面的可在图32的ISP流水处理 逻辑中实现的原始像素处理块的一个实施例的更详细视图;

图34示出了依照本公开一些方面的当在图33所示的原始像素处 理块执行处理期间应用用于检测和校正缺陷像素的技术时要考虑的各 种图像帧边界情况;

图35-37是依照一个实施例的描绘可由图33的原始像素处理块 执行的用于检测和校正缺陷像素的多种处理的流程图;

图38示出了依照本公开一些方面的在图33的原始像素处理逻辑 执行处理期间应用绿色非均匀性校正技术时可进行内插的拜耳图像传 感器的2×2像素块内的两个绿色像素的位置;

图39例示了依照本公开一些方面的包括中心像素和关联的水平 邻近像素在内的可被用作用于降噪的水平滤波处理的一部分的像素集 合;

图40例示了依照本公开一些方面的包括中心像素和关联的垂直 邻近像素在内的可被用作用于降噪的垂直滤波处理的一部分的像素集 合;

图41是描绘了如何将去马赛克应用到原始拜耳图像模式 (pattern)以产生全彩RGB图像的简化流程图;

图42表示依照一个实施例的拜耳图像模式的像素集合,在该拜 耳图像模式的去马赛克期间,可以从其中导出用于内插绿色值的水平 和垂直能量分量;

图43示出了依照本技术一些方面的水平像素集合,在拜耳图像 模式的去马赛克期间,可对其应用滤波以确定内插的绿色值的水平分 量;

图44示出了依照本技术一些方面的垂直像素集合,在拜耳图像 模式的去马赛克期间,可对其应用滤波以确定内插的绿色值的垂直分 量;

图45示出了依照本技术一些方面的多种3x3像素块,在拜耳图 像模式的去马赛克期间,可对其应用滤波以确定内插的红色和蓝色 值;

图46-49提供依照一个实施例的描绘在拜耳图像模式的去马赛克 期间用于内插绿色、红色和蓝色值的各种处理的流程图;

图50示出了可由图像传感器捕捉的并依照此处公开的去马赛克 技术的一些方面而处理的初始图像场景的有色图;

图51示出了如图50所示的图像场景的拜耳图像模式的有色图;

图52示出了使用传统去马赛克技术基于图51的拜耳图像模式而 重构的RGB图像的有色图;

图53示出了依照此处公开的去马赛克技术的一些方面从图51的 拜耳图像模式重构的RGB图像的有色图;

图54是示出了依照本公开一些方面的可在图32的ISP流水处理 逻辑中实现的RGB处理块的一个实施例的更详细视图;

图55是示出了依照本公开一些方面的可在图32的ISP流水处理 逻辑中实现的YCbCr处理块的一个实施例的更详细视图;

图56是依照本公开一些方面的在使用1平面格式的源缓冲器内 定义的用于亮度(luma)和色度(chroma)的活动源区域的图解描 绘;

图57是依照本公开一些方面的在使用2平面格式的源缓冲器内 定义的用于亮度和色度的活动源区域的图解描绘;

图58是例示了依照一个实施例的可在如图55所示的YCbCr处 理块中实现的图像锐化逻辑的方框图;

图59是例示了依照一个实施例的可在如图55所示的YCbCr处 理块中实现的边缘增强逻辑的方框图;

图60是示出了依照本公开一些方面的色度衰减因子与锐化的亮 度值之间的关系的图;

图61是例示了依照一个实施例的可在如图55所示的YCbCr处 理块中实现的图像明亮度(brightness)、对比度(contrast)和颜色 (BCC)调整逻辑的方框图;以及

图62示出了在如图61所示的BCC调整逻辑执行颜色调整期间 可以在定义各种色相(hue)角和饱和度(saturation)值的YCbCr 颜色空间中应用的色相和饱和度颜色轮(color wheel)。

具体实施方式

以下将描述本公开的一个或多个特定实施例。这些描述的实施例 都仅是当前公开的技术的示例。此外,为了提供这些实施例的简明描 述,可能不会在说明书中描述实际实现的全部特征。应当明了的是在 任意这些实际实现的开发中,如同在任何工程或设计项目中一样,都 必须做出众多特定于实现的决定以达到开发者的特定目的,例如顺从 因实现的不同而变化的涉及系统的和涉及商业的限制。此外,应当明 了的是这样的开发努力可能是复杂且很耗时间的,但仍然是从本公开 获益的本领域技术人员的日常设计、生产和制造任务。

当介绍本公开的多个实施例的要素时,冠词“a”、“an”和“the”旨 在表示一个或多个要素。术语“包含”、“包括”和“具有”旨在是开放 的,并且表示除了所列的要素之外还可能有额外的要素。此外,应当 理解的是,对于本公开“一个实施例”或“一实施例”的提及并不旨在将 其解释为排除同样具有所列举的特征的其他实施例的存在。

如以下将要描述的,本公开一般涉及用于处理经由一个或多个图 像感测设备获取的图像数据的技术。具体而言,本公开的特定方面可 以涉及用于检测和校正缺陷像素的技术,用于对原始图像模式进行去 马赛克的技术,用于使用多尺度虚光蒙版来锐化亮度图像的技术,以 及用于应用镜头明暗增益以校正镜头明暗不规则的技术。此外,应当 理解的是这里公开的技术可被应用到静态图像和运动图像(例如视 频)这两者,并且可被用于任何合适类型的成像应用,例如数码相 机、具有集成数码相机的电子设备、安全或视频监视系统、医疗成像 系统等等。

留意以上要点,图1是例示电子设备10的一个示例的方框图, 所述电子设备10可以提供使用以上简单提及的一个或多个图像处理 技术对图像数据进行的处理。电子设备10可以是任何类型的电子设 备,例如膝上或桌上型计算机、移动电话、数字媒体播放器等等,其 被配置为接收和处理图像数据,例如使用一个或多个图像感测部件获 取的数据。仅作为示例,电子设备10可以是便携式电子设备,例如 可从加利福尼亚州库比蒂诺的苹果公司获得的的模 型。此外,电子设备10可以是桌上或膝上型计算机,例如可从苹果 公司获得的MacBookMini或Mac的模型。在另外的实施例中,电子设备10 还可以是来自其他制造商的能够获取并处理图像数据的电子设备的模 型。

无关其形式(例如便携式或非便携式),应当理解的是电子设备 10可以提供使用以上简要讨论的一个或多个图像处理技术对图像数 据进行的处理,这些技术可包括缺陷像素校正和/或检测技术、镜头 明暗校正技术、去马赛克技术、或图像锐化技术,等等。在某些实施 例中,电子设备10可将这样的图像处理技术应用到存储在电子设备 10的存储器中的图像数据。在其他实施例中,电子设备10可包括一 个或多个被配置为获得图像数据的成像设备,例如集成的或外置的数 码相机,于是电子设备10可使用一个或多个以上提及的图像处理技 术来处理这些图像数据。以下将在图3-6中进一步讨论示出电子设备 10的便携式和非便携式实施例的实施例。

如图1所示,电子设备10可包括各种用于实现设备10的功能的 内置和/或外置部件。本领域技术人员可以理解如图1所示的各种功 能块可包括硬件要素(包括电路)、软件要素(包括存储在计算机可 读介质上的计算机代码)或硬件和软件要素这两者的组合。例如,在 当前所示的实施例中,电子设备10可包括输入/输出(I/O)端口 12、输入结构14、一个或多个处理器16、存储器设备18、非易失性 存储器20、(一个或多个)扩展卡22、联网设备24、电源26和显示 器28。此外,电子设备10可包括一个或多个成像设备30(例如数码 相机)以及图像处理电路32。如下所要进一步讨论的,图像处理电 路32可被配置为在处理图像数据时执行一个或多个以上讨论的图像 处理技术。可以明了的是,可以从存储器18和/或非易失性存储设备 20检索或者可以使用成像设备30获得供图像处理电路32处理的图 像数据。

在继续之前,应当理解的是如图1所示的设备10的系统方框图 旨在表示描述可能包括在该设备10中的各部件的高级控制框图。也 就是说,在如图1所示的每个独立元件之间的连接线并不是一定表示 在设备10的各部件之间的数据流动或传输的路径或方向。实际上, 如下所讨论的,在某些实施例中,描绘的(一个或多个)处理器16 可以包括多个处理器,例如主处理器(例如CPU)和专用图像和/或 视频处理器。在这样的实施例中,可主要由这些专用处理器来执行对 图像数据的处理,有效地使得主处理器(CPU)免于装载这样的任 务。

关于图1所示的每个元件,I/O端口12可包括被配置为连接多 种外置设备的端口,这些外置设备例如是电源、音频输出设备(例如 耳机或头戴受话器)、或其他电子设备(例如手持设备和/或计算机、 打印机、投影仪、外置显示器、调制解调器、坞站(docking  station)等等)。在一个实施例中,I/O端口12可被配置为连接到外 置成像设备,例如数码相机,用以获取可使用图像处理电路32处理 的图像数据。I/O端口12可以支持任何适合类型的接口,例如通用 串行总线(USB)端口、串行连接端口、IEEE-1394(FireWire)端 口、以太网或调制解调器端口、和/或AC/DC电源连接端口。

在某些实施例中,特定的I/O端口12可被配置为提供多于一种 功能。例如,在一个实施例中,I/O端口12可包括苹果公司专有的 端口,其功能不仅在于方便在电子设备10和外部源之间进行数据传 输,还将设备10耦合到电源充电接口,例如被设计为从墙壁插座提 供电力的电源适配器,或者耦合到被配置为从诸如桌上或膝上型计算 机的另一个电子设备吸取电力以用于对电源26(其可包括一个或多 个可充电电池)进行充电的接口电缆。以此方式,例如,取决于通过 I/O端口12被耦合到设备10的外置元件,I/O端口12可被配置为具 有数据传输端口和AC/DC电源连接端口的双重功能。

输入结构14可向(一个或多个)处理器16提供用户输入或反 馈。例如,输入结构14可被配置为控制电子设备10的一个或多个功 能,例如在电子设备10中运行的应用。仅作为示例,输入结构14可 包括按钮、滑块、开关、控制板、按键、旋钮、滚轮、键盘、鼠标、 触摸板等,或以上这些的某些组合。在一个实施例中,输入结构14 可以允许用户导航在设备10上显示的图形用户界面(GUI)。此外, 输入结构14可包括与显示器28一起提供的触摸敏感机构。在这些实 施例中,用户可通过触摸敏感机构来选择所显示的界面元素或与之交 互。

输入结构14可包括多种设备、电路和路径,通过这些将用户的 输入或反馈提供给一个或多个处理器16。这样的输入结构14可被配 置为控制设备10的功能、在设备10上运行的应用和/或连接到电子 设备10或被电子设备10使用的任何接口或设备。例如,输入结构 14可允许用户导航显示的用户界面或应用界面。输入结构14的示例 可包括按钮、滑块、开关、控制板、按键、旋钮、滚轮、键盘、鼠 标、触摸板等等。

在特定实施例中,输入结构14和显示器28可被一并提供,例如 “触摸屏”的情况,籍此与显示器28一并提供触摸敏感机构。在这样 的实施例中,用户可通过触摸敏感机构来选择所显示的界面元素或与 之交互。以此方式,显示的界面可提供交互功能,允许用户通过触摸 显示器28来导航显示的界面。例如,利用输入结构14进行的用户交 互,例如与用户交互或与显示在显示器28上的应用界面交互,可生 成指示用户输入的电信号。这些输入信号可以通过合适的路径(例如 输入集线器或数据总线)被路由到一个或多个处理器16以做进一步 处理。

除了处理通过(一个或多个)输入结构14接收到的各种输入信 号之外,(一个或多个)处理器16还控制设备10的一般操作。例 如,处理器16可提供处理能力以运行操作系统、程序、用户和应用 界面、以及电子设备10的任何其他功能。(一个或多个)处理器16 可包括一个或多个微处理器,例如一个或多个“通用”微处理器、一 个或多个专用微处理器和/或特定于应用的微处理器(ASIC)、或这 些处理部件的组合。例如,(一个或多个)处理器16可包括一个或多 个指令集(例如RISC)处理器,以及图形处理器(GPU)、视频处 理器、音频处理器和/或相关芯片组。将明了的是,(一个或多个)处 理器16可耦合到一个或多个用于在设备10的各个部件之间传输数据 和指令的数据总线。在特定实施例中,(一个或多个)处理器16可提 供处理能力以在电子设备10中运行成像应用,例如可从苹果公司获 得的Photo或由苹果公 司提供的“相机”和/或“照片”应用,这些都是的模型上可用 的。

将由(一个或多个)处理器16处理的指令或数据可被存储在计 算机可读介质中,例如存储器设备18中。存储器设备18可以被提供 为易失性存储器,例如随机存取存储器(RAM),或非易失性存储 器,例如只读存储器(ROM),或一个或多个RAM和ROM设备的 组合。存储器18可存储多种信息并被用于各种用途。例如,存储器 18可存储用于电子设备10的固件,例如基本输入/输出系统 (BIOS)、操作系统、各种程序、应用或可在电子设备10中上运行的 任何其他例程,包括用户界面功能、处理器功能等等。此外,在电子 设备10的操作期间,存储器18可被用来缓冲或高速缓存。例如,在 一个实施例中,存储器18包括一个或多个帧缓冲器,用以缓冲要被 输出到显示器28的视频数据。

除了存储器设备18,电子设备10还可包括非易失性存储器20 以用于持久存储数据和/或指令。非易失性存储器20可以包括闪存、 硬盘驱动器或任何其他光学、磁和/或固态存储介质,或以上这些的 组合。因此,尽管为了清楚的目的只在图1中描绘了单个设备,但是 应当理解的是(一个或多个)非易失性存储器20可以包括一个或多 个以上列出的与(一个或多个)处理器16一起操作的存储设备的组 合。非易失性存储器20可被用来存储固件、数据文件、图像数据、 软件程序和应用、无线连接信息、个人信息、用户偏好和任何其他合 适的数据。依照本公开一些方面,在输出到显示器之前,可通过图像 处理电路32来处理存储在非易失性存储器20和/或存储器设备18中 的图像数据。

如图1所示的实施例还可包括一个或多个卡槽或扩展槽。卡槽可 被配置为接收扩展卡22,其可被用于增加电子设备10的功能,例如 额外的存储器、I/O功能或联网能力。这样的扩展卡22可通过任何 类型的合适连接器被连接到设备上,并且可以相对于电子设备10的 壳体而被内部地或外部地访问。例如,在一个实施例中,扩展卡22 可以是闪存卡,例如安全数字(SD)卡、迷你或微SD、紧凑闪存卡 等,或者可以是PCMCIA设备。此外,对于提供移动电话能力的电 子设备10的实施例,扩展卡22可以是订户标识模块(SIM)卡。

电子设备10还包括网络设备24,其可以是通过无线802.11标准 或任何其他合适的联网标准(例如局域网(LAN)、广域网 (WAN),例如GSM演进的增强数据率(EDGE)网络、3G数据网 络或因特网)而提供网络连接的网络控制器或网络接口卡(NIC)。 在特定实施例中,网络设备24可以提供至在线数字媒体内容提供商 (例如可从苹果公司获得的音乐服务)的连接。

设备10的电源26可包括在非便携和便携设置下向设备10供电 的能力。例如,在便携设置下,设备10可包括一个或多个用于向设 备10供电的电池,例如锂离子电池。可以通过将设备10连接到外部 电源(例如墙壁插座)来对电池重新充电。在非便携设置下,电源 26可包括供电单元(PSU),其被配置为从墙壁插座取得电力,并将 所述电力分配给非便携电子设备(例如桌上型计算系统)的各个部 件。

显示器28可被用于显示由设备10生成的各种图像,例如用于操 作系统的GUI,或由图像处理电路32处理的图像数据(包括静止图 像和视频数据),以下将对其进行进一步讨论。如上所述,图像数据 可包括使用成像设备30获取的图像数据或从存储器18和/或非易失 性存储器20检索出的图像数据。显示器28可以是任何合适类型的显 示器,例如液晶显示器(LCD)、等离子显示器或有机发光二极管 (OLED)显示器。此外,如上所讨论的,显示器28可以具有可作为 电子设备10的控制界面的一部分的、如上所述的触摸敏感机构(例 如触摸屏)。

所例示的(一个或多个)成像设备30还可被提供为被配置以获 取静态图像和运动图像(例如视频)的数码相机的形式。相机30可 包括镜头和一个或多个被配置为捕捉光并将光转换为电信号的图像传 感器。仅作为示例,图像传感器可包括CMOS图像传感器(例如 CMOS有源像素传感器(APS))或CCD(电荷耦合器件)传感器。 一般来说,相机30中的图像传感器包括具有像素阵列的集成电路, 其中每个像素包括一个用于感测光的光电检测器。本领域技术人员应 当明了,成像像素中的光电检测器一般检测通过相机镜头捕捉的光的 强度。然而,光电检测器一般无法自己检测所捕捉的光的波长,因 此,无法确定颜色信息。

因此,图像传感器可进一步包括滤色器阵列(CFA),其可覆盖 图像传感器的像素阵列或被置于像素阵列之上,以捕捉颜色信息。滤 色器阵列可包括小型滤色器的阵列,每一个小型滤色器可以覆盖图像 传感器的一个相应像素,并且按波长对捕捉的光进行滤波。因此,当 一并使用时,滤色器阵列和光电检测器可提供关于通过相机所获得的 光的波长和强度信息,这可以表示所捕捉的图像。

在一个实施例中,滤色器阵列可包括拜耳滤色器阵列,其提供 50%绿色元素,25%红色元素和25%蓝色元素的滤波器模式。例 如,图2示出了包括2个绿色元素(Gr和Gb),1个红色元素(R) 和1个蓝色元素(B)的拜耳CFA的2×2像素块。因此,利用拜耳 滤色器阵列的图像传感器可提供关于相机30在绿色、红色和蓝色波 长处接收到的光的强度的信息,由此每个图像像素仅记录三种颜色 (RGB)之一。被称为“原始图像数据”或“原始域”中的数据的这一信 息随后被使用一种或多种去马赛克技术进行处理,由此将原始图像数 据转换为全彩图像,这一般是通过为每个像素内插一组红色、绿色和 蓝色值而实现的。如以下将描述的那样,可由图像处理电路32来执 行这样的去马赛克技术。

如上所述,图像处理电路32可提供各种图像处理步骤,例如缺 陷像素检测/校正、镜头明暗校正、去马赛克、以及图像锐化、降 噪、伽马校正、图像增强、颜色空间变换、图像压缩、色度亚采样和 图像缩放操作等等。在一些实施例中,图像处理电路32可包括多个 子部件和/或离散的逻辑单元,其集合地形成用于执行各个图像处理 步骤中的每一个步骤的图像处理“流水线”。可以使用硬件(例如数字 信号处理器或ASIC)或软件,或通过硬件和软件部件的组合来实现 这些子部件。以下将更加详细的描述可由图像处理电路32提供的各 种图像处理操作,尤其是涉及缺陷像素检测/校正、镜头明暗校正、 去马赛克和图像锐化的那些处理操作。

在继续之前,应当注意的是虽然以下所讨论的各种图像处理技术 的多个实施例可以利用拜耳CFA,但是当前公开的技术并不限于 此。实际上,本领域技术人员将明了此处提供的图像处理技术可适用 于任何适合类型的滤色器阵列,包括RGBW滤色器、CYGM滤色器 等。

再次参考电子设备10,图3-6例示了电子设备10可采用的各种 形式。如上所述,电子设备10可采用计算机的形式,包括通常便携 的计算机(例如膝上型、笔记本和平板计算机)以及通常不便携的计 算机(例如桌上型计算机、工作站和/或服务器),或其他类型的电子 设备,例如手持便携电子设备(例如数字媒体播放器或移动电话)。 具体而言,图3和图4分别描绘了膝上型计算机40形式和桌上型计 算机50形式的电子设备10。图5和图6分别示出了手持便携设备60 形式的电子设备10的前视图和后视图。

如图3所示,描绘的膝上型计算机40包括壳体42、显示器28、 I/O端口12和输入结构14。输入结构14可包括与壳体42集成的键 盘和触摸板鼠标。此外,输入结构14可包括多种可用于与计算机40 交互(例如给计算机加电或启动计算机)的其他按钮和/或开关,以 操作GUI或在计算机40中运行的应用,以及调整多种涉及计算机 40操作的其他方面(例如音量、显示器亮度等)。计算机40还可包 括提供至其他设备的连接的多种I/O端口12,如上所述,例如 或USB端口、高清多媒体接口(HDMI)端口或任何其他 类型的适于连接到外部设备的端口。此外,计算机40可包括如以上 图1所示的网络连接(例如网络设备26)、存储器(例如存储器20) 和存储能力(例如存储设备22)。

另外,在所示的实施例中,膝上型计算机40可包括集成的成像 设备30(例如相机)。在另一个实施例中,膝上型计算机40可利用 连接到一个或多个I/O端口12的外置相机(例如外置USB相机或 “摄像头”)以作为集成相机30的替代或附加。例如,外置相机可以 是可从苹果公司得到的相机。不管集成的还是外置的,相机 30可以提供图像的捕捉和记录。接着这些图像可由用户使用图像观 看应用来观看,或者可以被其他应用来使用,包括视频会议应用,例 如以及图像编辑/观看应用,例如可从苹果公司得到的 Photo在特定实施例 中,所描绘的膝上型计算机40可以是可从苹果公司获得的 MacBook或的模 型。此外,在一个实施例中,计算机40可以是便携式平板计算设 备,例如同样可从苹果公司获得的平板计算机的模型。

图4进一步例示了电子设备10被提供作为桌上型计算机50的一 个实施例。将明了的是,桌上型计算机50可包括多种与由图4所示 的膝上型计算机40提供的大致类似的特征,但是也可能具有通常更 大的整体形状。如图所示,桌上型计算机50可被装入包括显示器28 和如图1所示的方框图中所讨论的各种其他部件的外壳42中。另 外,桌上型计算机50可包括通过一个或多个I/O端口(例如USB) 耦合至该计算机50的、或能够与该计算机50无线通信(例如通过 RF、蓝牙等)的外置键盘和鼠标(输入结构14)。如上所述,桌上 型计算机50还可包括可以是集成的或外置相机的成像设备30。在特 定实施例中,所描绘的桌上型计算机50可以是可从苹果公司获得的 或Mac的模型。

如进一步所示,显示器28可被配置为生成可被用户观看的各种 图像。例如,在计算机50的操作期间,显示器28可显示图形用户界 面(“GUI”)52以允许用户与在计算机50中运行的操作系统和/或应 用进行交互。GUI52可包括各种层、窗口、屏幕、模板或可在整个 或部分显示设备28上显示的其他图形元素。例如,在所描绘的实施 例中,操作系统GUI52可包括各种图形图标54,每一种图标可对应 于可基于检测到用户的选择(例如通过键盘/鼠标或触摸屏输入)被 打开或执行的各种应用。图标54可被显示在停靠栏56中或在屏幕上 显示的一个或多个图形窗口元素58内。在一些实施例中,对图标54 的选择可导致分级导航处理,使得对图标54的选择导致一个屏幕或 打开另一个包括一个或多个附加图标或其他GUI元素的图形窗口。 仅作为示例,图4显示的操作系统GUI 52可以是来自可从苹果公司 获得的Mac操作系统的一个版本。

继续至图5和6,电子设备10进一步被例示为便携手持电子设 备60的形式,其可以是可从苹果公司获得的或的模 型。在所描绘的实施例中,手持设备60包括外壳42,其可以起到保 护内部部件免于物理损伤同时屏蔽电磁干扰的作用。外壳42可由任 何合适的材料或这些材料的组合来形成,例如塑料、金属或复合材 料,并且能够允许特定频率的电磁辐射(例如无线联网信号)穿透以 到达如图5所示的可置于外壳42内的无线通信电路(例如网络设备 24)。

外壳42还包括各种用户输入结构14,通过这些输入结构14用 户可与手持设备60交互。例如,每个输入结构14可被配置为在被按 压或启动时控制一个或多个相应的设备功能。作为示例,一个或多个 输入结构14可被配置为调用“home”屏幕(主屏幕)42或菜单以便显 示,被配置为在睡眠、唤醒或开机/关机模式之间切换,被配置为使 蜂窝电话应用的铃声静音,被配置为增加或减小音量输出等等。应当 理解的是所例示的输入结构14仅是示例性的,并且手持设备60可包 括任意数量的合适的用户输入结构,其可以具有各种形式,包括按 钮、开关、按键、旋钮、滚轮等等。

如图5所示,手持设备60可包括各种I/O端口12。例如,所描 绘的I/O端口12可包括用于传输和接收数据文件或用于给电源26充 电的专有连接端口12a,和用于将设备60连接到音频输出设备(例 如头戴式耳机或扬声器)的音频连接端口12b。此外,在手持设备60 提供移动电话功能的实施例中,设备60可包括用于接收订户标识模 块(SIM)卡(例如扩展卡22)的I/O端口12c。

显示设备28可以是LCD、OLED或任何适合类型的显示器,其 可以显示由手持设备60生成的各种图像。例如,显示器28可以显示 向用户提供关于手持设备60的一个或多个状态(例如电源状态、信 号强度、外置设备连接等)的反馈的各种系统指示符64。参考以上 图4所讨论的,显示器还可显示GUI52以允许用户与设备60交 互。GUI52可以包括图形元素,例如图标54,其可以对应于基于检 测到用户对相应图标54的选择而打开或执行的各种应用。作为示 例,图标54之一可以表示可与相机30(如图5中的虚线所示)一并 使用以获取图像的相机应用66。简单地参考图6,例示了在图5中所 描绘的手持电子设备60的后视图,其示出了相机30被集成于壳体 42且位于手持设备60背面。

如上所述,用相机30获得的图像数据可使用图像处理电路32进 行处理,所述图像处理电路32可以包括硬件(例如位于外壳42内 部)和/或存储在设备60的一个或多个存储设备(例如存储器18或 非易失性存储器20)中的软件。使用相机应用66和相机30获得的 图像可被存储到设备60(例如在存储设备20中),并且可使用照片 观看应用68在稍后观看这些图像。

手持设备60还可包括各种音频输入和输出元件。例如,一般地 由参考标记70所描绘的音频输入/输出元件可以包括输入接收器,例 如一个或多个麦克风。例如,在手持设备60包括蜂窝电话功能的情 况下,输入接收器可被配置为接收用户音频输入,例如用户语音。此 外,音频输入/输出元件70可包括一个或多个输出发射器。这些输出 发射器可包括一个或多个扬声器,其可以例如在使用媒体播放器应用 72回放音乐数据时起到将音频信号传送给用户的作用。此外,在手 持设备60包括蜂窝电话应用的实施例中,如图5所示,还可提供附 加的音频输出发射器74。类似于音频输入/输出元件70的输出发射 器,输出发射器74也可包括一个或多个被配置为将音频信号(例如 在电话呼叫期间接收到的语音数据)传送至用户的扬声器。因此,音 频输入/输出元件70和74可联合地操作以作为电话的音频接收和发 射元件。

现已提供了一些关于电子设备10可采用的多种形式的背景,于 是本公开将关注于图1所描绘的图像处理电路32。如上所述,图像 处理电路32可使用硬件和/或软件部件来实现,并且可以包括定义图 像信号处理(ISP)流水线的各种处理单元。具体而言,以下讨论会 关注在本公开中阐述的图像处理技术的各方面,尤其是涉及缺陷像素 检测/校正技术、镜头明暗校正技术、去马赛克技术和图像锐化技术 的那些方面。

现在参考图7,例示了依照当前公开的技术的一个实施例的描绘 了可实现为图像处理电路32的一部分的多个功能性部件的简化顶层 方框图。具体地,图7旨在依照至少一个实施例来例示图像数据可如 何流过图像处理电路32。为了提供对图像处理电路32的一般概观, 这里参考图7提供了这些功能性部件如何操作以处理图像数据的一般 描述,同时,后面将进一步提供所示的功能性部件的每一个及其各自 的子部件的更具体的描述。

参考所示的实施例,图像处理电路32可包括图像信号处理 (ISP)前端处理逻辑80、ISP流水处理逻辑82和控制逻辑84。由成 像设备30捕捉的图像数据首先由ISP前端逻辑80处理,并对其进行 分析以获得可被用于确定ISP流水逻辑82和/或成像设备30的一个 或多个控制参数的图像统计信息。ISP前端逻辑80可被配置为从图 像传感器输入信号获得图像数据。例如,如图7所示,成像设备30 可包括具有一个或多个镜头88和(一个或多个)图像传感器90的相 机。如上所述,(一个或多个)图像传感器90可以包括滤色器阵列 (例如拜耳滤波器),并且因此可以提供由图像传感器90的每个成像 像素获得的光强和波长信息,从而提供可由ISP前端逻辑80处理的 一组原始图像数据。例如,成像设备30的输出92可由传感器接口 94接收,随后例如基于传感器接口类型,传感器接口94可将原始图 像数据96提供给ISP前端逻辑80。作为示例,传感器接口94可利 用标准移动成像架构(SMIA)接口或移动工业处理器接口 (MIPI),或它们的某些组合。在特定实施例中,ISP前端逻辑80可 在其自身的时钟域内操作,并且可以向传感器接口94提供异步接口 以支持具有不同大小和定时需求的图像传感器。

原始图像数据96可被提供给ISP前端逻辑80,并以多种格式被 逐像素地处理。例如,每个图像像素可具有8,10,12或14位的位 深。ISP前端逻辑80可对原始图像数据96执行一个或多个图像处理 操作,并收集关于图像数据96的统计数据。可以以相同的或不同的 位深精度来执行图像处理操作和统计数据的收集。例如,在一个实施 例中,可以以14位精度来执行原始图像像素数据96的处理。在这些 实施例中,由ISP前端逻辑80接收到的具有小于14位(例如8位, 10位,12位)位深的原始像素数据被上采样至14位以用于图像处理 目的。在另一个实施例中,可以以8位精度进行统计处理,因此具有 更高位深的原始像素数据可被下采样至8位格式用以统计目的。可以 明了的是,下采样至8位可降低硬件大小(例如面积)并且还能减少 用于统计数据的处理/计算复杂度。此外,原始图像数据可被空间平 均以允许统计数据对噪声更为鲁棒。

此外,如图7所示,ISP前端逻辑80还可从存储器108接收像 素数据。例如,如参考标记98所示,原始像素数据可从传感器接口 94被发送到存储器108。如参考标记100所示,驻留在存储器108中 的原始像素数据随后可被提供给ISP前端逻辑80以供处理。存储器 108可以是存储设备20、存储器设备18的一部分,或者可以是电子 设备10内的单独的专用存储器并且可包括直接存储器访问(DMA) 特征。此外,在特定实施例中,ISP前端逻辑80可在其本身的时钟 域内操作,并且向传感器接口94提供异步接口以支持不同大小并且 具有不同定时需求的传感器。

一旦接收到原始图像数据96(从传感器接口94)或100(从存 储器108),ISP前端逻辑80可以执行一个或多个图像处理操作,例 如时域滤波和/或像素合并补偿滤波。经处理的图像数据随后可被提 供给ISP流水逻辑82(输出信号109)以便在被显示(例如在显示设 备28上)之前进行其他处理,或者可被发送到存储器(输出信号 110)。ISP流水逻辑82直接从ISP前端逻辑80或者从存储器108 (输入信号112)接收“前端”经处理的数据,并且提供对原始域中以 及RGB和YCbCr颜色空间中的图像数据的其他处理。由ISP流水 逻辑82处理后的图像数据随后可被输出(信号114)到显示器28以 供用户观看和/或可由图形引擎或GUP进行进一步处理。此外,ISP 流水逻辑82的输出可被发送到存储器108(信号115),并且显示器 28可从在特定实施例中被配置为实现一个或多个帧缓冲器的存储器 108(信号116)读取图像数据。此外,在一些实施方式中,ISP流水 逻辑82的输出还可被提供给压缩/解压缩引擎118(信号117)以用 于编码/解码图像数据。经编码的图像数据可被存储,并在随后在被 显示在显示器28设备上(信号119)之前进行解压缩。作为示例, 压缩引擎或“编码器”118可以是用于编码静态图像的JPEG压缩引 擎,或用于编码视频图像的H.264压缩引擎,或它们的组合,用于解 码图像数据的相应的解压缩引擎也是如此。后面将参考图32-62来更 加详细的讨论可在ISP流水逻辑82中提供的关于图像处理操作的附 加信息。同样的,应当注意的是ISP流水逻辑82还可从存储器108 接收原始图像数据,其被描述为输入信号112。

由ISP前端逻辑80确定的统计数据102可被提供给控制逻辑单 元84。统计数据102可包括,例如关于自动曝光、自动白平衡、自 动对焦、闪烁检测、黑度补偿(BLC)、镜头明暗校正等的图像传感 器统计信息。控制逻辑84可包括处理器和/或微控制器,其被配置为 执行一个或多个例程(例如固件),所述例程可被配置为基于接收到 的统计数据102来确定用于成像设备30的控制参数104和用于ISP 流水处理逻辑82的控制参数106。仅作为示例,控制参数104可包 括传感器控制参数(例如增益、曝光控制的累积时间)、相机闪光灯 控制参数、镜头控制参数(例如对焦的对焦长度或变焦的焦距)或这 些参数的组合。ISP控制参数106可包括用于自动白平衡和颜色调整 (例如在RGB处理期间)的增益等级和颜色校正矩阵(CCM)系 数,以及如下所讨论的可基于白点平衡参数而确定的镜头明暗校正参 数。在一些实施例中,除了分析统计数据102之外,控制逻辑84还 可分析可存储在电子设备10上(例如存储器18或存储器20内)的 历史统计信息。

由于此处所示的图像处理电路32的总体复杂设计,如下所示, 将关于ISP前端逻辑80和ISP流水处理逻辑82的讨论划分为单独 的部分会是有益的。具体而言,本申请的图8至31可涉及ISP前端 逻辑80的多个实施例和各方面的讨论,而本申请的图32至62可涉 及ISP流水处理逻辑82的多个实施例和各方面的讨论。

ISP前端处理逻辑

图8是示出了依照一个实施例的可在ISP前端逻辑80中实现的 功能性逻辑块的更详细方框图。基于成像设备30和/或传感器接94 的构造,如图7所示,可由一个或多个图像传感器90将原始图像数 据提供给ISP前端逻辑80。在所描绘的实施例中,可通过第一图像 传感器90a(传感器0)和第二图像传感器90b(传感器1)将原始图 像数据提供给ISP前端逻辑80。如图所示,图像传感器90a和90b 可分别提供原始图像数据作为信号Sif0和Sif1。图像传感器90a和 90b中的每一个可与相应的统计处理单元120和122相关联。

进一步地,应当注意,原始图像数据Sif0和Sif1可直接提供给 它们相应的处理单元120和122,或者可以存储在或写入存储器108 中并随后分别作为信号SifIn0和SifIn1被检索。因而,ISP前端逻辑 80可包括选择逻辑124,选择逻辑124可以向统计处理单元120提供 表示由传感器0(90a)捕捉的原始图像数据的Sif0或SifIn0信号, 并且,ISP前端逻辑80还可以包括选择逻辑126,选择逻辑126可以 向统计处理单元122提供表示由传感器1(90b)捕捉的原始图像数 据的Sif1或SifIn1信号。每一个统计处理单元120和122可确定通 过分析原始图像传感器数据所获得的各种统计数据,并且可以确定相 应的统计信息集合,如输出信号Stats0和Stats1所示。如上所述, 统计数据(Stats0和Stats1)可被提供给控制逻辑84以用于各控制 参数的确定,这些控制参数可被用于操作成像设备30和/或ISP流水 处理逻辑82。

除了统计处理单元120和122,ISP前端逻辑80可进一步包括像 素处理单元130。像素处理单元130可逐像素地对原始图像数据执行 各种图像处理操作。如所示的,通过选择逻辑132,像素处理单元 130可接收原始图像信号Sif0(来自传感器0)或Sif1(来自传感器 1),或者可以接收来自存储器108的原始图像数据FEProcIn。如同 可以明了的,可由任何适合类型的逻辑来提供图8所示的选择逻辑块 (120、122和132),例如响应于控制信号而选择多个输入信号中的一 个的多路复用器。在执行以下将进一步讨论的像素处理操作时, FEProc130还可接收和输出多种信号(例如可表示在时域滤波期间使 用的运动历史和亮度数据的Rin、Hin、Hout和Yout)。然后,像素 处理单元130的输出109(FEProcOut)可诸如通过一个或多个先进 先出(FIFO)队列被转发到ISP流水逻辑82,或者可被发送到存储 器108。

在继续图8的ISP前端逻辑80中描绘的统计处理和像素处理操 作的更详细描述之前,相信关于各种ISP帧区域的定义的简要介绍会 有助于更好的理解本技术方案。带着这样的想法,图9例示了在图像 源帧内定义的各种帧区域。提供给图像处理电路32的源帧的格式可 以使用以上所述的分块或线性寻址模式,并且可利用8、10、12或 14位精度的像素格式。如图9所示的图像源帧150可包括传感器帧 区域152、原始帧区域154和活动区域156。传感器帧152一般是图 像传感器90可以提供给图像处理电路32的最大帧大小。原始帧区域 154可被定义为传感器帧152的被发送到ISP前端处理逻辑80的区 域。活动区域256可被定义为源帧150的一部分,其是典型地位于原 始帧区域156内并对其进行具体图像处理操作的那部分。依照本技术 的实施例,对于不同的图像处理操作,活动区域156可以相同或不 同。

依照本技术的一些方面,ISP前端逻辑80仅接收原始帧154。因 此,出于本讨论的目的,用于ISP前端处理逻辑80的全局帧大小可 假设为由宽158和高160确定的原始帧大小。在一些实施例中,可以 通过控制逻辑84确定和/或保存从传感器帧152到原始帧154的边界 偏移量。例如,控制逻辑84可包括基于输入参数来确定原始帧区域 154的固件,所述输入参数诸如是所指定的相对于传感器帧152的x 偏移量162和y偏移量164。此外,在一些情况下,在ISP前端逻辑 80或ISP流水逻辑82内的处理单元可具有预定义的活动区域,使得 在原始帧内但在活动区域156外的像素将不被处理,即,保持不变。 例如,可基于相对于原始帧154的x偏移量170和y偏移量172来定 义用于具体处理单元的具有宽166和高168的活动区域156。此外, 对于活动区域没有被具体定义的情况,图像处理电路32的一个实施 例可以假设活动区域156与原始帧154相同(例如x偏移量170和y 偏移量172都等于0)。因此,为了对图像数据进行图像处理操作, 关于原始帧154或活动区域156的边界,可以定义边界条件。

带着这样的想法并参考图10,例示了依照本技术一个实施例的 ISP前端像素处理逻辑130(之前在图8中讨论了)的更详细视图。 如图所示,ISP前端像素处理逻辑130包括时域滤波器180和像素合 并补偿滤波器182。时域滤波器180可接收输入图像信号Sif0、Sif1 或FEProcIn中的一个,并且可在执行任何附加处理之前对原始像素 数据进行操作。例如,时域滤波器180可首先处理图像数据以通过在 时间方向上对图像帧进行平均而降低噪声。

时域滤波器180可以是基于运动和明亮度特征而像素自适应的。 例如,当像素运动较大时,可降低滤波强度以避免得到的经处理的图 像中出现“拖尾”或“重影伪像”,反之当检测到轻微运动或无运动时, 可增加滤波强度。此外,还可基于明亮度数据(例如“亮度”)来调整 滤波强度。例如,随着图像明亮度增加,滤波伪影变得更容易被人眼 察觉。因此,当像素具有较高明亮度水平时应当进一步降低滤波强 度。

在应用时域滤波时,时域滤波器180可接收可来自于前一经滤波 的帧或初始帧的参考像素数据(Rin)和运动历史输入数据(Hin)。 使用这些参数,时域滤波器180可提供运动历史输出数据(Hout) 和经滤波的像素输出(Yout)。接着经滤波的像素输出Yout被传递到 像素合并补偿滤波器182,后者可被配置为对经滤波的像素输出数据 Yout执行一个或多个缩放操作以产生输出信号FEProcOut。接着, 经处理的像素数据FEProcOut可被转发至如上所述的ISP流水处理 逻辑82。

参考图11,例示了根据第一实施例描绘的可由图10所示的时域 滤波器执行的时域滤波处理190的处理框图。时域滤波器180可包括 2抽头滤波器,其中滤波器系数可至少部分基于运动和明亮度数据而 逐像素地进行自适应调整。例如,可将具有表示时间值的变量“t”的 输入像素x(t)与在前一经滤波的帧或前一初始帧中的参考像素r(t-1) 作比较,以生成在可包含滤波器系数的运动历史表(M)192中的运 动索引查找。此外,基于运动历史输入数据h(t-1),可以确定对应于 当前输入像素x(t)的运动历史输出h(t)。

可基于运动增量d(j,i,t)来确定运动历史输出h(t)和滤波器系数 K,其中(j,i)表示当前像素x(j,i,t)的空间位置的坐标。可通过确定对 于具有相同颜色的水平方向同位置的三个像素的初始和参考像素之间 的三个绝对增量的最大值来计算运动增量d(j,i,t)。例如,简单参考图 12,例示了对应于初始输入像素206、208和210的三个同位置参考 像素200、202和204的空间位置。在一个实施例中,可使用以下的 公式基于这些初始和参考像素来计算运动增量:

d(j,i,t)=max3[abs(x(j,i-2,t)-r(j,i-2,t-1)),

(abs(x(j,i,t)-r(j,i,t-1)),                (1a)

(abs(x(j,i+2,t)-r(j,i+2,t-1))]

在以下图14中进一步例示了描绘这一用于确定运动增量值的技 术的流程图。此外,应当理解的是如以上等式1a(以及以下图14 中)所示的用于计算运动增量值的技术仅旨在提供一个用于确定运动 增量值的实施例。

在其他实施例中,可以估计相同颜色像素的阵列以确定运动增量 值。例如,除了等式1a中提到的三个像素外,一个用于确定运动增 量值的实施例还可以包括估计来自参考像素206、208和210上两行 (例如j-2;假设为拜耳模式)的相同颜色的像素与其对应的同位置像 素之间的绝对增量,以及来自参考像素206、208和210下两行(例 如j+2;假设为拜耳模式)的该相同颜色的像素与其对应的同位置像 素之间的绝对增量。例如,在一个实施例中,运动增量值可如下表 示:

d(j,i,t)=max9[abs(x(j,i-2,t)-r(j,i-2,t-1)),

(abs(x(j,i,t)-r(j,i,t-1)),

(abs(x(j,i+2,t)-r(j,i+2,t-1)),

(abs(x(j-2,i-2,t)-r(j-2,i-2,t-1)),

(abs(x(j-2,i,t)-r(j-2,i,t-1)),            (1b)

(abs(x(j-2,i+2,t)-r(j-2,i+2,t-1)),

(abs(x(j+2,i-2,t)-r(j+2,i-2,t-1))

(abs(x(j+2,i,t)-r(j+2,i,t-1)),

(abs(x(j+2,i+2,t)-r(j+2,i+2,t-1))]

从而,在由等式1b所描绘的实施例中,可通过比较相同颜色像素的 3x3阵列之间的绝对增量来确定运动增量值,其中当前像素(208) 位于该3x3阵列(例如,如果算上不同颜色的像素,实际上是拜耳颜 色模式的5x5阵列)的中心。应当明了的是,可以分析其中当前像素 (例如208)位于阵列中心的任何合适的相同颜色像素的二维阵列 (例如,包括所有像素在同一行中的阵列(例如等式1a)或所有像素 在同一列中的阵列)以确定运动增量值。此外,虽然运动增量值可被 确定为绝对增量的最大值(例如,如等式1a和1b所示),但是在其 他实施例中,运动增量值可被选择为绝对增量的平均值或中位值。此 外,前述技术还可被应用于其他类型的滤色器阵列(例如RGBW, CYGM等),并非旨在为拜耳模式所独有。

参考回图11,一旦确定了运动增量值,可以通过将用于当前像 素(例如在空间位置(j,i))的运动增量d(t)与运动历史输入h(t-1)相加 来计算可被用来从运动表(M)192中选择滤波器系数K的运动索引 查找。例如,可通过以下等式来确定滤波器系数K:

K=M[d(j,i,t)+h(j,i,t-1)]    (2a)

此外,可使用以下公式来确定运动历史输出h(t):

h(j,i,t)=d(j,i,t)+(1-K)×h(j,i,t-1)    (3a)

接着,可以使用当前输入像素x(t)的明亮度来生成亮度表(L) 194内的亮度索引查找。在一个实施例中,亮度表可包括可位于0和 1之间且可基于亮度索引而被选择的衰减因子。可通过将第一滤波器 系数K乘上亮度衰减因子来计算第二滤波器系数K’,如以下等式所 示:

K'=K×L[x(j,i,t)]    (4a)

所确定的值K’随后可被用作时域滤波器180的滤波系数。如上 所述,时域滤波器180可以是2抽头滤波器。此外,时域滤波器180 可被配置为使用前一经滤波的帧的无限冲激响应(IIR)滤波器,或 使用前一初始帧的有限冲激响应(FIR)滤波器。时域滤波器180可 以使用当前输入像素x(t)、参考像素r(t-1)和滤波器系数K’通过以下 公式来计算经滤波的输出像素y(t)(Yout):

y(j,i,t)=r(j,i,t-1)+K'(x(j,i,t)-r(j,i,t-1))    (5a)

如上所讨论的,可逐像素地执行如图11所示的时域滤波处理190。 在一个实施例中,可以对于所有颜色分量(例如R、G和B)使用相 同的运动表M和亮度表L。此外,一些实施例可提供旁路机制,其 中可以例如响应于来自控制逻辑84的控制信号而旁路时域滤波。此 外,如以下将关于图16和17所讨论的,时域滤波器180的一个实施 例可以为图像数据的每个颜色分量使用单独的运动和亮度表。

参考图13可以更好的理解参考图11和12所描述的时域滤波技 术的实施例,其中图13描绘了例示依照上述实施例的方法214的流 程图。方法214开始于步骤216,其中时域滤波系统190接收位于图 像数据的当前帧的空间位置(j,i)的当前像素x(t)。在步骤218,至少 部分地基于来自图像数据的前一帧(例如紧挨在当前帧之前的图像 帧)的一个或多个同位置的参考像素(例如r(t-1))来确定用于当前 像素x(t)的运动增量值d(t)。以下将参考图14来进一步说明在步骤 218中用于确定运动增量值d(t)的技术,其可依照上述的等式1a而 执行。

一旦从步骤218获得了运动增量值d(t),如步骤220所示,可使 用运动增量值d(t)和来自前一帧的对应于空间位置(j,i)的运动历史输 入值h(t-1)来确定运动表查找索引。此外,尽管未示出,一旦知道了 运动增量值d(t),在步骤220中还可以例如通过使用上述的等式3a 来确定对应于当前像素x(t)的运动历史值h(t)。此后,在步骤222, 可使用来自步骤220的运动表查找索引从运动表192中选择第一滤波 器系数K。可以依照上述的等式2a来执行运动表查找索引的确定和 从运动表中对第一滤波器系数K的选择。

接着,在步骤224,可以从亮度表194中选择衰减因子。例如, 亮度表194可包括范围大致从0至1的衰减因子,并且可以使用当前 像素x(t)的值作为查找索引来从亮度表194中选择衰减因子。一旦选 择了衰减因子,在步骤226,如以上公式4a所示,可使用选择的衰 减因子和第一滤波器系数K(来自步骤222)来确定第二滤波器系数 K’。接着在步骤228,可基于第二滤波器系数K’(来自步骤224)、 同位置的参考像素r(t-1)的值和输入像素x(t)的值来确定对应于当前 输入像素x(t)的时域滤波输出值y(t)。例如,在一个实施例中,可依 照上述的等式5a来确定输出值y(t)。

参考图14,更详细地例示了依照一个实施例的来自方法214的 用于确定运动增量值d(t)的步骤218。具体而言,运动增量值d(t)的 确定一般对应于依照以上等式1a所描述的操作。如图所示,步骤 218可包括子步骤232-238。其开始于子步骤232,识别与当前输入 像素x(t)具有相同颜色值的三个水平相邻像素的集合。作为示例,依 照图12所示的实施例,图像数据可包括拜耳图像数据,并且三个水 平相邻像素可包括当前输入像素x(t)(208)、在当前输入像素208左 边的相同颜色的第二像素206和在当前输入像素208右边的相同颜色 的第三像素。

接着,在子步骤234,识别与所选择的三个水平相邻像素206、 208和210的集合相对应的来自前一帧的三个同位置参考像素200、 202和204。使用选择的像素206、208和210以及三个同位置参考像 素200、202和204,在子步骤236中确定分别在三个选择的像素 206、208和210中的每一个与其对应的同位置参考像素200、202和 204之间的差的绝对值。随后,在子步骤238,将来自子步骤236的 三个差的最大值选为用于当前输入像素x(t)的运动增量值d(t)。如上 所述,例示了如等式1a所示的运动增量值计算技术的图14仅旨在提 供一个实施例。实际上,如上所述,可以使用其中当前像素位于阵列 中心处的任何合适的具有相同颜色像素的二维阵列来确定运动增量值 (例如,等式1b)。

图15中进一步描绘了用于对图像数据应用时域滤波的技术的另 一个实施例。例如,因为图像数据的不同颜色分量的信噪比可能不 同,增益可被应用到当前像素,使得当前像素可在从运动表192和亮 度表194中选择运动和亮度值之前进行增益。通过应用取决于颜色的 相应增益,不同颜色分量的信噪比可以更趋于一致。仅作为示例,在 一种使用原始拜耳图像数据的实现中,相对于绿色(Gr和Gb)颜色 通道,红色和蓝色颜色通道可能一般更加灵敏。因此,通过对每个经 处理的像素应用合适的取决于颜色的增益,一般可以降低各个颜色分 量之间的信噪比差异,由此(尤其)降低重影伪像(ghosting  artifacts),并改善在自动白平衡增益之后不同颜色之间的一致性。

带着这样的思想,图15提供了一种依照这样一个实施例的描绘 用于对由前端处理单元130接收到的图像数据应用时域滤波的方法 240的流程图。其开始于步骤242,时域滤波系统190接收位于图像 数据当前帧的空间位置(j,i)处的当前像素x(t)。在步骤244,至少部 分地基于来自该图像数据的前一帧(例如紧挨在当前帧之前的图像 帧)的一个或多个同位置的参考像素(例如r(t-1))来确定用于当前 像素x(t)的运动增量值d(t)。步骤244与图13的步骤218相类似, 并且可以利用以上等式1所示的运算。

接着,在步骤246,可使用运动增量值d(t)、来自前一帧的对应 于空间位置(j,i)的运动历史输入值h(t-1)(例如对应于同位置的的参 考像素r(t-1))、和与当前像素的颜色相关联的增益,来确定运动表查 找索引。此后,在步骤248,可使用步骤246确定的运动表查找索引 来从运动表304中选择第一滤波器系数K。仅作为示例,在一个实施 例中,可如下确定滤波器系数K和运动表查找索引:

K=M[gain[c]×(d(j,i,t)+h(j,i,t-1))],    (2b)

其中M表示运动表,并且其中gain[c]对应于与当前像素的颜色相关 联的增益。此外,尽管未在图15中示出,应当理解用于当前像素的 运动历史输出值h(t)也可被确定,并可被用于对随后图像帧(例如 下一帧)的同位置的像素应用时域滤波。在本实施例中,可使用如下 公式来确定用于当前像素x(t)的运动历史输出h(t):

h(j,i,t)=d(j,i,t)+K[h(j,i,t-1)-d(j,i,t)]    (3b)

接着在步骤250,可使用基于与当前像素x(t)的颜色相关联的增 益(gain[c])而确定的亮度表查找索引来从亮度表194中选择衰减因 子。如上所述,存储在亮度表中的衰减因子可具有大致从0至1的范 围。此后,在步骤252,可基于衰减因子(来自步骤250)和第一滤 波器系数K(来自步骤248)来计算第二滤波器系数K’。仅作为示 例,在一个实施例中,可如下确定第二滤波器系数K’和亮度表查找 索引:

K'=K×L[gain[c]×x(j,i,t)]    (4b)

接着,在步骤254,基于第二滤波器系数K’(来自步骤252)、 同位置的参考像素r(t-1)的值和输入像素x(t)的值,确定对应于当前 输入像素x(t)的时域滤波输出值y(t)。例如,在一个实施例中,可如 下确定输出值y(t):

y(j,i,t)=x(j,i,t)+K'(r(j,i,t-1)-x(j,i,t))    (5b)

继续到图16,描绘了时域滤波处理260的另一实施例。这里, 可按照与图15所讨论的实施例相类似的方式来完成时域滤波处理 260,不同之处在于,代替对每个输入像素应用取决于颜色的增益 (例如gain[c])和使用共享的运动和亮度表,为每个颜色分量提供单 独的运动和亮度表。例如,如图16所示,运动表192可包括对应于 第一种颜色的运动表192a,对应于第二种颜色的运动表192b和对应 于第n种颜色的运动表192c,其中n取决于原始图像数据中存在的 颜色的数量。类似的,亮度表194可包括对应于第一种颜色的亮度表 194a,对应于第二种颜色的亮度表194b和对应于第n种颜色的亮度 表194c。因此,在原始图像数据是拜耳图像数据的实施例中,可以 提供三个运动和亮度表分别用于红色、蓝色和绿色颜色分量。如上所 述,滤波系数K和衰减因子的选择可以取决于为当前颜色(例如当 前输入像素的颜色)所选择的运动和亮度表。

图17示出了一种例示使用取决于颜色的运动和亮度表来进行时 域滤波的另一个实施例的方法270。将明了的是,方法270可采用的 各种计算和公式可以与如图13所示的实施例相似,但其为每个颜色 选择特定的运动和亮度表;或者与如图15所示的实施例相似,但其 用取决于颜色的运动和亮度表的选择来代替取决于颜色的增益gain[c] 的使用。

开始于步骤272,时域滤波系统260(图16)接收位于图像数据 的当前帧的空间位置(j,i)的当前像素x(t)。在步骤274,至少部分地 基于来自图像数据的前一帧(例如紧挨在当前帧之前的图像帧)的一 个或多个同位置的参考像素(例如r(t-1))来为当前像素x(t)确定运 动增量值d(t)。步骤274可以与图13中的步骤218类似,并且可以 利用如上述等式1所示的运算。

接着,在步骤276,可使用运动增量值d(t)和来自前一帧的与空 间位置(j,i)相对应的运动历史输入值h(t-1)(例如对应于同位置的参 考像素r(t-1))来确定运动表查找索引。此后在步骤278,可基于当 前输入像素的颜色从可用的运动表(例如192a、192b、192c)之一 中选择第一滤波器系数K。例如,一旦识别出合适的运动表,可使用 在步骤276中确定的运动表查找索引选择第一滤波器系数K。

在选择了第一滤波器系数K之后,如步骤280所示,选择对应 于当前颜色的亮度表,并且基于当前像素x(t)的值从选择的亮度表中 选择衰减因子。此后,在步骤282,基于衰减因子(来自步骤280) 和第一滤波器系数K(步骤278)确定第二滤波器系数K’。接着, 在步骤284,基于第二滤波器系数K’(来自步骤282)、同位置的的 参考像素r(t-1)的值和输入像素x(t)的值来确定对应于当前输入像素 x(t)的时域滤波输出值y(t)。虽然图17所示的技术实现起来可能成本 更高(例如因为需要用于存储附加的运动和亮度表的存储器),但在 某些情况下,其可以对重影伪像以及自动白平衡增益之后的不同颜色 间的一致性提供进一步的改善。

依照另一个实施例,由时域滤波器180提供的时域滤波处理可以 利用取决于颜色的增益和特定于颜色的运动和/或亮度表的组合对输 入像素应用时域滤波。例如,在这样的一个实施例中,为所有颜色分 量提供单个运动表,并且可基于取决于颜色的增益来确定用于从运动 表中选择第一滤波系数(K)的运动表查找索引(例如,如图15中 的步骤246-248所示),而亮度表查找索引则可不被应用以取决于颜 色的增益,而是可被用于从取决于当前输入像素的颜色的多个亮度表 之一中选择明亮度衰减因子(例如如图17所示的步骤280)。作为替 换,在另一个实施例中,可提供多个运动表,并且可使用运动表查找 索引(没有应用取决于颜色的增益)从对应于当前输入像素的颜色的 运动表中选择第一滤波系数(K)(例如如图17所示的步骤278),然 而可为所有颜色分量提供单个亮度表,并且其中可基于取决于颜色的 增益来确定用于选择明亮度衰减因子的亮度表查找索引(例如,如图 15所示的步骤250-252)。此外,在利用拜耳滤色器阵列的一个实施 例中,可以为红色(R)和蓝色(B)颜色分量中的每一个提供一个 运动表和/或亮度表,而可以为两个绿色颜色分量(Gr和Gb)提供 共用的运动表和/或亮度表。

随后可将时域滤波器180的输出发送到像素合并补偿滤波器 (BCF)182,后者可处理图像像素以补偿颜色样本的非线性分布,使 得随后在ISP流水逻辑82中的取决于颜色样本的线性分布的图像处 理操作(例如去马赛克等)能够正确运行。此外,BCF182还可通过 应用一个或多个缩放操作,诸如垂直和/或水平缩放,来处理像素数 据。图18示出了依照一个公开的实施例的可包括缩放逻辑292和微 分分析器294的像素合并补偿滤波器182的框图,并且图19示出了 可用于执行缩放操作的处理296。

如图18所示,缩放逻辑292可产生输出FEProcOut(109),如 上所述的,FEProcOut(109)可被转发到ISP流水逻辑82以供其 它处理,下面将对此进行进一步讨论。在一个实施例中,可使用一 个或多个多抽头多相滤波器来执行由BCF182的执行的(一个或多 个)缩放操作,该多抽头多相滤波器可从源图像中选择像素,将每 个像素乘以加权因子,然后计算像素值的总和以形成目的像素。应 当理解,缩放操作中所使用的像素的选择可至少部分取决于当前像 素位置和滤波器提供的抽头数量。此外,滤波操作可以使用相同颜 色的像素对每个颜色分量进行,并且加权因子(或系数)可以从查 找表获得并基于当前的像素间分数位置来确定。

在所描绘的实施例中,微分分析器294可以是数字微分分析器 (DDA),并且可以被配置为在缩放操作期间控制当前像素位置。仅 作为示例,DDA294可被提供为32位数据寄存器,其包含具有12 位整数部分和20位分数部分的二进制补码定点数。12位整数部分可 被用于确定当前像素位置。分数部分被用作到系数表中的索引。在一 个实施例中,垂直和水平缩放部件可利用8深度系数表,由此20位 分数部分的3个高位被用于索引。

为了提供基于32位DDA寄存器(DDA[31:0])的例子,当前中 心源像素位置(currPixel)可由12位整数部分DDA[21:20]来定义, 并且如果下一位DDA[19]为1则可以向上取整(+1)。然后,与 currPixel邻近的像素的源像素值可以根据滤波器提供的抽头数量来 获得。例如,在一个实施例中,垂直缩放可以用3抽头多相滤波器来 执行,从而currPixel每一侧的具有相同颜色的一个像素被选择(例 如,-1,0,+1),而水平缩放可以用5抽头多相滤波器来执行,其中 currPixel每一侧的具有相同颜色的两个像素被选择(例如,-2,-1, 0,+1,+2)。进一步地,每个抽头可具有其自己相应的系数表。因 而,可以为3抽头垂直缩放滤波器提供三个8深度表,并且可以为5 抽头水平缩放滤波器提供五个8深度表。当前系数索引 (currIndex)可以由DDA[19:16](分数部分DDA[19:0]的3个高 位)来定义,并且如果下一位DDA[15]为1则可以向上取整(+1)。

因此,在BCF182中发生的滤波处理可包括获取在中心像素 (currPixel)周围的源像素值,并将它们乘以利用currIndex从表中 访问得到的合适的系数。一旦完成了针对给定像素的滤波处理,步进 值(DDAstep)可被加到DDA 294以确定下一像素的位置,并且可 以为该随后的像素重复滤波/缩放操作。这进一步由图19中说明的处 理296示出。例如,在步骤298开始,DDA294被初始化并且当前 像素位置被识别。如上面所讨论的,当DDA294包括32位寄存器以 用于存储二进制补码定点数时,当前像素位置可以由寄存器数据的高 12位(整数部分)来指定。

在步骤300,为垂直和水平缩放二者执行多抽头滤波。例如,假 设分别为垂直和水平滤波使用3抽头和5抽头多相滤波器,并且假设 图像传感器90使用拜耳颜色滤波器模式(图2),则垂直缩放部件可 包括四个分开的3抽头多相滤波器,各自用于一个颜色分量:Gr、 R、B和Gb。每个3抽头滤波器可使用一个DDA来控制当前中心像 素的步进和用于系数的索引。同样,水平缩放部件可包括四个分开的 5抽头多相滤波器,各自用于一个颜色分量:Gr、R、B和Gb。每 个5抽头滤波器可使用一个DDA来控制当前中心像素的步进和用于 系数的索引。对于边界的情况,水平和垂直滤波处理中所使用的像素 可取决于由DDA所确立的当前像素的位置。例如,如果DDA值表 明当前像素(currPixel)靠近帧边界,从而滤波器所需的源像素中的 一个或多个位于边界之外,则可以重复边界像素。

最后,如步骤302所示,一旦针对给定当前像素(currPixel)的 垂直和水平缩放操作已经完成,DDA294可步进到下一像素的位 置,并且处理296可返回步骤300以便对下一像素执行垂直和水平缩 放。如上所述的,BCF182的输出(其可以是输出FEProcOut (109))可被转发到ISP流水处理逻辑82以供其他处理。然而,在将 该讨论的焦点转移到ISP流水处理逻辑82之前,首先将给出对可在 ISP前端逻辑80中实现的统计处理单元(例如122和124)可提供的 各种功能的更详细描述。

重新参考统计处理单元120和122的一般描述,这些单元可被配 置为收集关于捕捉并提供原始图像信号(Sif0和Sif1)的图像传感器 的各种统计信息,例如关于自动曝光、自动白平衡、自动对焦、闪烁 检测、黑度补偿和镜头明暗校正等的统计信息。因此,统计处理单元 120和122首先可向它们各自的输入信号Sif0(来自传感器0)和 Sif1(来自传感器1)应用一个或多个图像处理操作。

例如,参考图20,例示了依照一个实施例的与传感器0(90a) 相关联的统计处理单元120的更详细方框图视图。如图所示,统计处 理单元120可包括以下功能块:缺陷像素检测和校正逻辑304、黑度 补偿(BLC)逻辑306、镜头明暗校正逻辑308、逆BLC逻辑310和 统计信息收集逻辑312。以下将讨论这些功能块的每一个。此外,应 当理解的是可以通过类似的方式来实现与传感器1(90b)相关联的 统计处理单元122。

首先,通过前端缺陷像素校正逻辑304来接收选择逻辑124的输 出(Sif0或SifIn0)。将明了的是,“缺陷像素”可以理解为在图像传 感器90内的无法准确感应光水平的成像像素。缺陷像素可归咎于一 些因素,并且其可包括“燥点(hot pixel)”(或漏电像素)、“亮点 (stuck pixel)”和“坏点(dead pixel)”。“燥点”一般表现为比对于在 相同空间位置的给予相同光亮的非缺陷像素更亮。燥点的产生可归因 于重置失败和/或高泄漏。例如,燥点可呈现出比非缺陷像素的正常 电荷泄漏更高的电荷泄漏,因此可能比非缺陷像素表现得更亮。此 外,“坏点”和“亮点”可能是诸如灰尘或其他微量材料之类的杂质在制 造和/或装配过程中污染了图像传感器的结果,其可导致某些缺陷像 素比非缺陷像素更暗或更亮,或者可导致缺陷像素固定在特定值而不 管其实际曝光的光量。此外,在图像传感器操作期间发生的电路故障 也可导致坏点和亮点。作为示例,亮点可以看上去为常开(全充电) 并且因此看上去更亮,而坏点则看上去为常关。

在ISP前端逻辑80中的缺陷像素检测和校正(DPDC)逻辑304 可在统计信息收集(例如312)中考虑缺陷像素之前对这些缺陷像素 进行校正(例如替换缺陷像素值)。在一个实施例中,对于每个颜色 分量(例如拜耳模式的R、B、Gr和Gb)独立地执行缺陷像素校 正。一般来说,前端DPDC逻辑304可提供动态缺陷校正,其中可 基于使用相同颜色的邻近像素算出的方向性梯度来自动地确定缺陷像 素的位置。将理解的是,在给定时刻将某个像素认为是有缺陷的像素 可取决于邻近像素中的图像数据,在此意义上缺陷可以是“动态的”。 作为示例,如果总是处于最大亮度的亮点的位置处于当前图像的由更 亮颜色或白色主导的区域内,那么该亮点可能不会被认为是缺陷像 素。相反,如果亮点处于当前图像的由黑色或更暗颜色主导的区域, 则在由DPDC逻辑304处理期间该亮点可被识别为缺陷像素,并被 相应地校正。

DPDC逻辑304可利用在当前像素每一侧的一个或多个具有相同 颜色的水平邻近像素,使用像素至像素方向性梯度来确定当前像素是 否有缺陷。如果当前像素被识别为缺陷的,可使用水平邻近像素的值 来代替缺陷像素的值。例如,在一个实施例中,使用在原始帧154 (图9)边界内的五个具有相同颜色的水平邻近像素,其中这五个水 平邻近像素包括当前像素和每一侧的两个邻近像素。因此,如图21 所示,对于给定的颜色分量c和当前像素P,DPDC逻辑304可考虑 水平的邻居像素P0、P1、P2和P3。然而,应当注意的是,取决于 当前像素P的位置,当计算像素至像素梯度时,不考虑在原始帧154 之外的像素。

例如,如图21所示,在“左边缘”情况314中,当前像素P位于 原始帧154的最左边,因此不考虑在原始帧154之外的邻近像素P0 和P1,仅留下像素P、P2和P3(N=3)。在“左边缘+1”情况316 中,当前像素P离原始帧154的最左边一个单位像素,因此不考虑 像素P0。仅留下像素P1、P、P2和P3(N=4)。此外,在“居中”情 况318中,在当前像素P左侧的像素P0和P1和在当前像素右侧的 像素P2和P3都处于原始帧154边界之内,因此在计算像素至像素 梯度时考虑所有邻近像素P0、P1、P2和P3(N=5)。此外,还可遇 到接近原始帧154的最右边的类似情况320和322。例如,在“右边 缘-1”情况320中,当前像素P离原始帧154的最右边一个单位像 素,因此不考虑像素P3(N=4)。同样的,在“右边缘”情况322中, 当前像素P处于原始帧154的最右边,因此不考虑邻近像素P2和 P3(N=3)。

在所示的实施例中,对于在图片(例如原始帧154)边界内的每 个邻近像素(k=0至3),可如下计算像素至像素梯度:

Gk=abs(P-Pk),对于0≤k≤3(仅对于在原始帧内的k)    (6)

一旦确定了像素至像素梯度,将由DPDC逻辑304执行如下的缺陷 像素检测。首先,如果一定数量的像素梯度Gk等于或小于由变量 dprTh表示的特定阈值,则假设该像素是有缺陷的。因此对于每个像 素,图片边界内的邻近像素等于或小于阈值dprTh的梯度数量的计 数(C)被累加。作为示例,对于原始帧154内的每个邻居像素,可 如下的计算等于或小于阈值dprTh的梯度Gk的累加计数C:

C=ΣkN(GkdprTh),---(7)

对于0≤k≤3(仅对于在原始帧内的k)

将明了的是,取决于颜色分量,阈值dprTh可以是变化的。接着, 如果累加的计数C被确定为小于或等于由变量dprMaxC表示的最大 计数,则像素可被考虑为是有缺陷的。该逻辑由以下表示:

if(C≤dprMaxC),then像素是有缺陷的。(8)

使用多种替代约定来对缺陷像素进行替代。例如,在一个实施例 中,可使用紧靠其左边的像素P1来代替缺陷像素。在一种边界情况 下(例如P1位于原始帧154之外),可使用紧靠其右边的像素P2来 代替缺陷像素。此外,应当理解的是,替代值可被保留或传播以用于 后续的缺陷像素检测操作。例如,参考如图21所示的水平像素集 合,如果P0或P1在之前被DPDC逻辑304识别为缺陷像素,则它 们对应的替代值可被用于当前像素P的缺陷像素检测和替代。

为了总结上述的缺陷像素检测和校正技术,图22提供了描绘这 种处理的流程图,并由参考标记330指代。如图所示,处理330开始 于步骤332,其中接收当前像素(P)并识别一组邻居像素。依照以 上所述的实施例,邻居像素可包括来自当前像素相对两侧的具有相同 颜色分量的两个水平像素(例如P0、P1、P2和P3)。接着,在步骤 334,如以上等式6所述,针对原始帧154内的每个邻近像素计算水 平方向的像素至像素梯度。此后,在步骤336,确定小于或等于特定 阈值dprTh的梯度的数量的计数C。如判定逻辑338所示,如果C 小于或等于dprMaxC,则处理330继续到步骤340,并且当前像素 被识别为有缺陷的。接着在步骤342使用替代值来校正缺陷像素。另 外,再参考判定逻辑338,如果C大于dprMaxC,则处理继续到步 骤344,并且当前像素被识别为没有缺陷,且其值不被改变。

应当注意的是在ISP前端统计处理期间应用的缺陷像素检测/校 正技术可能比在ISP流水逻辑82中执行的缺陷像素检测/校正的鲁棒 性要差。例如,如以下将进一步详细讨论的,在ISP流水逻辑82中 执行的缺陷像素检测/校正除了动态缺陷校正之外还可提供固定缺陷 校正,其中可先验得知缺陷像素的位置,并将其载入一个或多个缺陷 表。此外,如下所述,在ISP流水逻辑82中的动态缺陷校正还可以 考虑水平和垂直方向两者上的像素梯度,并且还可以提供对斑点 (speckle)的检测/校正。

回到图20,DPDC逻辑304的输出随后被传送到黑度补偿 (BLC)逻辑306。BLC逻辑306可为每个颜色分量“c”(例如拜耳的 R、B、Gr和Gb)中用于统计信息收集的像素独立地提供数字增 益、偏移和截短(clipping)。例如,如以下运算所示,首先通过带符 号的值来偏移当前像素的输入值,接着将其乘上增益。

Y=(X+O[c])×G[c],    (9)

其中X表示给定颜色分量c(例如R、B、Gr或Gb)的输入像素 值,O[c]表示当前颜色分量c的带符号的16位偏移量,以及G[c]表 示该颜色分量c的增益值。在一个实施例中,增益G[c]可以是具有2 个整数位和14个分数位的16位无符号数(例如以浮点表示的 2.14),并且可对增益G[c]应用舍入。仅作为示例,增益G[c]可具有 在0至4X(例如输入像素值的四倍)之间的范围。

接着,如以下等式10所示,可将计算得到的带符号的值Y截短 到最小值和最大值范围:

Y=(Y<min[c])?min[c]:(Y>max[c])?max[c]:Y)    (10)

变量min[c]和max[c]分别表示最小和最大输出值的带符号的16 位截短值。在一个实施例中,BLC逻辑306还可被配置成分别为每 个颜色分量保存在最大值之上和在最小值之下而被截短的像素的数量 的计数。

随后,BLC逻辑306的输出被转发到镜头明暗校正(LSC)逻 辑308。LSC逻辑308可被配置为逐像素地应用合适的增益以补偿强 度的衰落,该强度衰落一般大致正比于与成像设备30的镜头88的光 学中心的距离。可以明了的是,这种衰落可能是镜头的几何光学的结 果。作为示例,具有理想光学性质的镜头可被建模为入射角余弦的四 次方,即cos4(θ),其被称为cos4定律。然而,由于镜头制造工艺并 非完美,镜头中的各种不规则性可能导致光学性质偏离假设的cos4模型。例如,镜头的较薄的边缘(thinner edged)通常呈现最大的不 规则性。另外,镜头明暗图案的不规则性也可能是在图像传感器内的 微透镜阵列没有与滤色器阵列完美对齐的结果。此外,在一些镜头中 的红外(IR)滤波器也可能导致衰落取决于发光体,于是可以根据 检测到的光源来调整镜头明暗增益。

参考图23,例示了用于描述典型镜头的光强度相对于像素位置 的三维分布346。如图所示,光强度从镜头的中心348附近向镜头的 角落或边缘350逐渐降低。可通过图24更好的例示图23中所描绘的 镜头明暗不规则性,图24示出了展示向着角落和边缘而光强度降低 的图像352的有色图。更具体的,应当注意的是在大致位于图像中心 的光强度看上去比位于图像的角落和/或边缘的光强度更亮。

依据本技术的一些实施例,镜头明暗校正增益可被指定为每个颜 色通道(例如用于拜耳滤波器的Gr、R、B、Gb)一个二维增益栅 格。增益栅格点可在原始帧154(图24)内以固定的水平和垂直间隔 分布。如以上图9所讨论的,原始帧154可包括活动区域156,其定 义了由特定图像处理操作对其执行处理的区域。关于镜头明暗校正操 作,在原始帧区域154内定义了可被称为LSC区域的活动处理区 域。如以下将讨论的那样,LSC区域必须完全在增益栅格边界内或 边界处,否则结果可能是不明确的。

例如,参考图25,示出了可在原始帧154内定义的LSC区域 354和增益栅格356。LSC区域354可具有宽358和高360,并且可 由相对于原始帧154边界的x偏移量362和y偏移量364来定义。还 可提供从增益栅格356的基准370到LSC区域354内的第一个像素 372的栅格偏移量(例如栅格x偏移量366和栅格y偏移量368)。这 些偏移量可以位于用于给定颜色分量的第一栅格间隔内。可分别为每 个颜色通道独立地指定水平(x方向)和垂直(y方向)栅格点间隔 374和376。

如上所述,假设使用了拜耳滤色器阵列,则可定义4个具有栅格 增益的颜色通道(R、B、Gr和Gb)。在一个实施例中,总共有4K (4096)个栅格点可用,并且例如可通过使用指示器,为每个颜色通 道提供用于栅格增益的开始位置的基准地址。此外,还可以以在一个 颜色平面的分辨率下的像素为单位来定义水平(374)和垂直(376) 栅格点间隔,在特定实施例中,在水平和垂直方向上可分别提供2的 幂(例如8、16、32、64或128等)个像素的栅格点间隔。可以明了 的是,通过利用2的幂,可以使用移位(例如除法)和相加操作来获 得增益内插的有效实现。使用这些参数,即使图像传感器裁剪区域发 生改变仍可使用相同的增益值。例如,只有少数参数需要被更新以将 栅格点对齐到裁剪区域(例如更新栅格偏移量374和376),而非更 新所有的栅格增益值。仅作为示例,这在数字变焦操作期间使用裁剪 时可能是有益的。此外,虽然如图25的实施例所示的增益栅格356 被描绘为具有基本相等间隔的栅格点,但是应当理解在其他实施例 中,栅格点不是必须相等间隔。例如,在一些实施例中,栅格点可以 非均匀地分布(例如对数分布),使得栅格点在LSC区域354的中心 较不集中,而向着LSC区域354的角落(通常在那里镜头明暗失真 更容易被察觉)更为集中。

依照此处公开的镜头明暗校正技术,在当前像素位置位于LSC 区域354之外时,不应用增益(例如像素未经改变地通过)。在当前 像素位置位于增益栅格位置时,可以使用该特定栅格点处的增益值。 然而,在当前像素位置位于栅格点之间时,可使用双线性内插来内插 增益。以下图26提供了一种为像素位置“G”内插增益的例子。

如图26所示,像素G位于栅格点G0、G1、G2和G3之间, G0、G1、G2和G3可分别对应于当前像素位置G的左上、右上、 左下和右下增益。栅格间隔的水平和垂直大小分别由X和Y表示。 另外,ii和jj分别表示相对于左上增益G0的位置的水平和垂直像素 偏移量。基于这些因子,可如下内插对应于位置G的增益:

G=(G0(Y-jj)(X-ii))+(G1(Y-jj)(ii))+(G2(jj)(X-ii))+(G3(ii)(jj))XY---(11a)

随后可组合以上等式11a中的各项以获得下述表达式:

G=G0[XY-X(jj)-Y(ii)+(ii)(jj)]+G1[Y(ii)-(ii)(jj)]+G2[X(jj)-(ii)(jj)]+G3[(ii)(jj)]XY---(11b)

在一个实施例中,可以增量方式执行该内插法,以代替对每个像素使 用乘法器,从而降低计算复杂度。例如,可使用可在增益栅格356的 位置(0,0)处被初始化为0并每次当前列号增大一个像素时以当前行号 作为增量的加法器来实现项(ii)(jj)。如上所述,因为可将X和Y的值 选为2的幂,于是可以使用简单的移位操作来实现增益内插。因此, 仅在栅格点G0(而非每个像素)处需要乘法器,并且仅需要加法操 作以确定用于剩下的像素的内插增益。

在特定实施例中,在栅格点之间的增益的内插可使用14位精 度,且栅格增益可以是具有2个整数位和8个分数位的不带符号的 10位值(例如2.8浮点表示)。使用该约定,增益可具有在0至4X 之间的范围,并且在栅格点之间的增益分辨率可以是1/256。

镜头明暗校正技术可由图27所示的处理380进一步例示。如图 所示,处理380开始于步骤382,其中确定当前像素相对于图25的 LSC区域354边界的位置。接着,判定逻辑384确定当前像素位置 是否在LSC区域354之内。如果当前像素位置在LSC区域354之 外,处理380继续到步骤386,并且不对当前像素应用增益(例如, 像素未经改变地通过)。

如果当前像素位置在LSC区域354之内,处理380继续到判定 逻辑388,在此进一步确定当前像素位置是否对应于在增益栅格354 内的栅格点。如果当前像素位置对应于栅格点,则如步骤390所示, 选择在该栅格点的增益值并将其应用到当前像素。如果当前像素位置 不对应于栅格点,则处理380继续到步骤392,并基于其周围的栅格 点(例如图26的G0、G1、G2和G3)来内插增益。例如,可依照 如上所述的等式11a和11b来计算内插增益。此后,处理380结束于 步骤394,在此将来自步骤392的内插增益应用至当前像素。

将明了的是,可对图像数据的每个像素重复处理380。例如,如 图28所示,例示了描绘可被应用到LSC区域(例如354)内的每个 像素位置的增益的三维分布。如图所示,应用到图像角落396的增益 通常可大于应用到图像中心398的增益,这是因为如图23和24所 示,角落具有更大的光强度衰落。使用此处描述的镜头明暗校正技 术,可以减少或基本上消除图像中呈现出的光强度衰落。例如,图 29提供一个在应用了镜头明暗校正之后来自图24的图像352的有色 图将如何呈现的例子。如图所示,相比于来自图24的初始图像,全 幅图像的整体光强度基本上更为均匀。更具体的,在图像近似中心处 的光强度可与在图像的角落和/或边缘处的光强度值大致地相等。另 外,如上所述,在一些实施例中,内插增益的计算(等式11a和 11b)可通过利用顺序的列和行增量结构而用栅格点之间的加性“增 量”来代替。将明了的是,这会降低计算复杂度。

在进一步的实施例中,除了使用栅格增益,还为每个颜色分量使 用一个全局增益,其根据与图像中心的距离而缩放。图像中心可被提 供为输入参数,且可通过分析被均匀照明的图像内每个图像像素的光 强度幅度而估计所述图像中心。如下所示,于是可以使用在识别的中 心像素和当前像素之间的径向距离来获得经线性缩放的径向增益 Gr

Gr=Gp[c]×R,    (12)

其中Gp[c]表示用于每个颜色分量c(例如拜耳模式的R、B、Gr和 Gb分量)的全局增益参数,并且其中R表示中心像素和当前像素之 间的径向距离。

参考示出了以上讨论的LSC区域354的图30,可使用多种技术 来计算或估计距离R。如图所示,对应于图像中心的像素C可具有 坐标(x0,y0),并且当前像素G可具有坐标(xG,yG)。在一个实施例 中,LSC逻辑308可使用以下等式来计算距离R:

R=(xG-x0)2+(yg-y0)2---(13)

在另一个实施例中,可利用以下所示的更简单的估计公式来获得 R的估计值:

R=α×max(abs(xG-x0),abs(yG-y0))+β×min(abs(xG-x0),abs(yG-y0))  (14)

在等式14中,估计系数α和β可被缩放至8位值。仅作为示例,在一 个实施例中,α可大致等于123/128,且β可大致等于51/128,以提 供R的估计值。使用这些系数值,最大误差可大致为4%,中间误差 大致为1.3%。因此,尽管该估计技术的准确度多少会低于利用计算 技术(等式13)来确定R,但是误差幅度还是足够低以使得估计值 或R适用于确定本发明镜头明暗校正技术的径向增益分量。

接着可将径向增益Gr乘上用于当前像素的内插栅格增益值G (等式11a和11b)以确定可被应用到当前像素的总增益。如下所 示,通过将输入像素值X乘上总增益来获得输出像素Y:

Y=(G×Gr×X)                 (15)

因此,依照本技术,可仅使用内插增益或者使用内插增益和径向增益 分量两者来执行镜头明暗校正。作为替换,可仅使用径向增益连同补 偿径向近似误差的径向栅格表来完成镜头明暗校正。例如,可以提供 具有定义径向和角向的增益的多个栅格点的径向增益栅格以代替如图 25所示的矩形增益栅格356。因此,当确定增益要被应用到未与 LSC区域354内的径向栅格点之一对齐的像素时,可以使用四个围 绕该像素的栅格点来应用内插以确定合适的内插镜头明暗增益。

参考图31,由处理400例示了镜头明暗校正中内插和径向增益 分量的使用。应当注意的是,处理400可以包括与在图27中描述的 处理380相似的步骤。因而,这样的步骤被标记为相同的参考标号。 其开始于步骤382,接收当前像素并确定其相对于LSC区域354的 位置。接着,判定逻辑384确定当前像素位置是否处于LSC区域 354之内。如果当前像素位置在LSC区域354之外,处理400继续 到步骤386,并且不对当前像素应用增益(例如,像素未经改变地通 过)。如果当前像素位置处于LSC区域354之内,则处理400可同时 继续到步骤402和判定逻辑388。首先参考步骤402,检索用于识别 图像中心的数据。如上所述,确定图像中心可包括分析在均匀照明下 的像素的光强度幅度。例如,这可在校准期间发生。因此,应当理解 的是步骤402没有必要包括为处理每个像素而重复计算图像中心,而 是可涉及检索出先前确定的图像中心的数据(例如,坐标)。一旦识 别了图像中心,处理400可继续到步骤404,其中确定图像中心和当 前像素位置之间的距离(R)。如上所述,可以计算(等式13)或估 计(等式14)R的值。接着,在步骤406,可使用距离R和与当前 像素的颜色分量相对应的全局增益参数来计算径向增益分量Gr(等 式12)。如以下将在步骤410要讨论的那样,径向增益分量Gr可被 用于确定总增益。

参考回判定逻辑388,其确定当前像素位置是否对应于处于增益 栅格354之内的栅格点。如果当前像素位置对应于栅格点,则如步骤 408所示,确定在栅格点上的增益值。如果当前像素位置不对应于栅 格点,则处理400继续到步骤392,并且基于其周围的栅格点(例 如,图26的G0、G1、G2和G3)来计算内插增益。例如,可依照 以上讨论的等式11a和11b来计算内插增益。接着,在步骤410,基 于在步骤406确定的径向增益以及栅格增益(步骤408)或内插增益 (392)之一来确定总增益。可以明了的是,这可取决于在处理400期 间判定逻辑388采用哪一个分支。然后如步骤412所示,将总增益应 用到当前像素。再次,应当注意的是,类似于处理380,也可以为图 像数据的每个像素重复处理400。

径向增益连同栅格增益的使用可提供多种优点。例如,使用径向 增益允许对所有颜色分量使用单个共用增益栅格。这将大大减少用于 为每个颜色分量存储的单独的增益栅格所需要的总存储空间。例如, 在拜耳图像传感器中,为所有R、B、Gr和Gb分量都使用单个增 益栅格可以减少大约75%的增益栅格数据。将明了的是,栅格增益 数据的这一减少可降低实现成本,因为栅格增益数据表可能会占用图 像处理硬件中存储器或芯片区域的很大部分。此外,取决于硬件实 现,使用单个增益栅格值集合还可提供其他优点,例如降低总芯片面 积(例如当增益栅格值被存储在芯片上的存储器内时)以及降低存储 器带宽需求(例如当增益栅格值被存储在芯片外的外部存储器内 时)。

在透彻描述了如图20所示的镜头明暗校正逻辑308的功能后, LSC逻辑308的输出随后被转发给逆黑度补偿(IBLC)逻辑310。 IBLC逻辑310为每个颜色分量(例如R、B、Gr和Gb)独立地提 供增益、偏移和截短,并且通常执行BLC逻辑306的逆功能。例 如,如以下运算所示,首先将输入像素值乘上增益,接着使用带符号 的值进行偏移。

Y=(X×G[c])+O[c],    (16)

其中X表示给定颜色分量c(例如R、B、Gr或Gb)的输入像素 值,O[c]表示用于当前颜色分量c的带符号的16位偏移量,以及 G[c]表示用于颜色分量c的增益值。在一个实施例中,增益G[c]可具 有大约在0至4X(输入像素值X的四倍)之间的范围。应当注意的 是,这些变量可以是如上所讨论的等式9中的相同变量。使用例如等 式10,计算出的值Y可被截短到最小值和最大值范围。在一个实施 例中,IBLC逻辑310可被配置成为每个颜色分量保存分别在最大值 之上和在最小值之下而被截短的像素数量计数。

此后,由统计信息收集块312来接收IBLC逻辑310的输出,该 统计信息收集块312可提供关于(一个或多个)图像传感器90的各 种统计数据点的收集,例如关于自动曝光(AE)、自动白平衡 (AWB)、自动对焦(AF)、闪烁检测等的统计数据点。以下提供简 要概述来讨论AWB、AE和AF统计信息的意义。

关于白平衡,图像传感器在每个像素上的响应可以取决于照明 源,因为光源从图像场景中的物体被反射。于是,图像场景中所记录 的每个像素值与光源的色温有关。当以低色温照明白色物体时,该物 体在被捕捉的图像中可能看上去偏红。反之,以高色温照明白色物体 时,该物体在被捕捉的图像中可能看上去偏蓝。因此,白平衡的目的 是调整RGB值,以使得图像在人眼看上去像是在规范光下拍摄的。 于是,在关于白平衡的成像统计信息的情况中,收集关于白色物体的 颜色信息以确定光源的色温。一般来说,白平衡算法可包括两个主要 步骤。首先,估计光源的色温。其次,使用估计的色温来调整颜色增 益值和/或确定/调整颜色校正矩阵的系数。这样的增益可以是模拟和 数字图像传感器增益以及ISP数字增益的组合。

接下来,自动曝光通常指的是调整像素积分时间和增益以控制所 捕捉图像的亮度的处理。例如,自动曝光可通过设置积分时间来控制 由(一个或多个)图像传感器捕捉的场景的光量。此外,自动对焦可 以指确定镜头的最佳对焦长度以充分地优化图像的对焦。因此,可经 由统计信息收集块312来确定并收集尤其是这些各种类型的统计信 息。如所示的,统计信息收集块312的输出STATS0可被发送到存储 器108并且然后被路由到控制逻辑84,或者可替换地,可被直接发 送到控制逻辑84。

如上所述,控制逻辑84可处理收集到的统计数据以确定用于控 制成像设备30和/或图像处理电路32的一个或多个控制参数。例 如,这样的控制参数可以包括用于操作图像传感器90的镜头的参数 (例如对焦长度调整参数)、图像传感器参数(例如模拟和/或数字增 益、积分时间)以及ISP流水处理参数(例如数字增益值、颜色校正 矩阵(CCM)系数)。另外,如上所述,在特定实施例中,可以8位 的精度来进行统计处理,因此,具有更高位深的原始像素数据可被下 采样到8位格式以用于统计目的。如上所述,下采样到8位(或任何 其他更低位分辨率)可减小硬件尺寸(例如面积),还能降低处理复 杂度,并且使得统计数据对于噪声更为鲁棒(例如使用图像数据的空 间平均)。

在对ISP前端逻辑80下游的ISP流水逻辑82进行详细讨论之 前,应当理解的是在统计处理单元120和122中的各种功能性逻辑块 (例如逻辑块304、306、308、310和312),以及ISP前端像素处理 单元130中的各种功能性逻辑块(例如逻辑块180和182)的布置仅 旨在例示本技术的一个实施例。实际上,在其他实施例中,可以按照 不同顺序来布置此处例示的逻辑块,或者可包括用于执行未在此处特 别描述的附加图像处理功能的附加逻辑块。此外,应当理解的是在统 计处理单元(例如120和122)中执行的图像处理操作,例如镜头明 暗校正、缺陷像素检测/校正和黑度补偿,是出于收集统计数据的目 的而在统计处理单元内执行的。因此,对由统计处理单元接收到的图 像数据执行的处理操作实际上没有反映在从ISP前端像素处理逻辑 130输出并被转发到ISP流水处理逻辑82的图像信号109上 (FEProcOut)。

在继续之前,还应当注意的是,假设充足的处理时间和此处所描 述的各种操作的许多处理需求之间的相似性,有可能重新配置此处所 示的功能块以顺序方式来执行图像处理,而不是流水线性质。将会理 解,这可能进一步降低整体硬件实现成本,但是可能增加到外部存储 器的带宽(例如为了高速缓存/存储中间结果/数据)。

ISP流水线(“流水”)处理逻辑

以上已详细描述了ISP前端逻辑80,现在本讨论将其重点转移 到ISP流水处理逻辑82。一般来说,ISP流水逻辑82的功能是接收 可由ISP前端逻辑80提供的或从存储器108检索出的原始图像数 据,并且对其执行附加图像处理操作,也就是在将图像数据输出到显 示设备28之前进行处理。

图32描绘了示出ISP流水逻辑82的一个实施例的方框图。如图 所示,ISP流水逻辑82可包括原始处理逻辑414、RGB处理逻辑 416和YCbCr处理逻辑418。原始处理逻辑414可执行多种图像处 理操作,例如以下将进一步讨论的缺陷像素检测和校正、镜头明暗校 正、去马赛克、以及为自动白平衡应用增益和/或设置黑度。如本实 施例所示,取决于选择逻辑420的当前配置,到原始处理逻辑414的 输入信号422可以是来自ISP前端逻辑80的原始像素输出109(信 号FEProcOut)或来自存储器108的原始像素数据112。

作为在原始处理逻辑414内执行去马赛克操作的结果,图像信号 输出424可以处于RGB域,并可以在随后被转发至RGB处理逻辑 416。例如,如图32所示,RGB处理逻辑416接收信号430,取决 于选择逻辑428的当前配置,该信号430可以是输出信号424或来自 存储器108的RGB图像信号426。RGB处理逻辑416可提供多种 RGB颜色调整操作,包括以下将进一步讨论的颜色校正(例如使用 颜色校正矩阵)、用于自动白平衡的颜色增益的应用、以及全局色调 映射。RGB处理逻辑418还可提供RGB图像数据到YCbCr(亮度/ 色度)颜色空间的颜色空间变换。于是,图像信号输出432可以处于 YCbCr域,并可在随后被转发至YCbCr处理逻辑418。

例如,如图32所示,YCbCr处理逻辑418接收信号438,取决 于选择逻辑436的当前配置,该信号438可以是来自RGB处理逻辑 416的输出信号432,或是来自存储器108的YCbCr信号434。如以 下将进一步进行详细讨论的,YCbCr处理逻辑418可提供在YCbCr 颜色空间内的图像处理操作,包括缩放,色度抑制,亮度锐化,亮 度、对比度和颜色(BCC)调整,YCbCr伽马映射,色度抽选等。 YCbCr处理逻辑418的图像信号输出440可被发送到存储器108, 或可作为图像信号114(图7)从ISP流水处理逻辑82输出。图像信 号114可被发送到显示设备28(直接地或通过存储器108),以供用 户观看,或者可使用压缩引擎(例如编码器118)、CPU/GPU、图形 引擎等而被进一步处理。

依照本技术的实施例,ISP流水逻辑82可支持8位、10位、12 位或14位格式的原始像素数据的处理。例如在一个实施例中,8 位、10位或12位的输入数据可在原始处理逻辑414的输出处被变换 为14位,并且可使用14位精度来执行原始处理和RGB处理操作。 在后一个实施例中,可在将RGB数据变换到YCbCr颜色空间之 前,将14位图像数据下采样到10位,并且可以使用10位精度来执 行YCbCr处理(逻辑418)。

为了提供对由ISP流水处理逻辑82所提供的多种功能的全面描 述,以下将顺序的讨论原始处理逻辑414、RGB处理逻辑416和 YCbCr处理逻辑418中的每一个,以及可在各个逻辑单元414、416 和418中实现的用于执行各种图像处理操作的内部逻辑,首先从原始 处理逻辑414开始。例如,现在参考图33,根据本技术的一个实施 例,例示了示出原始处理逻辑414的一个实施例的更详细视图的方框 图。如图所示,原始处理逻辑414包括增益、偏移和钳位(GOC) 逻辑442,缺陷像素检测/校正(DPDC)逻辑444,降噪逻辑446, 镜头明暗校正逻辑448,GOC逻辑450和去马赛克逻辑452。此外, 虽然以下所讨论的例子假设结合(一个或多个)图像传感器90使用 拜耳滤色器阵列,但是应当理解本技术的其他实施例也可利用不同类 型的滤色器。

可以是原始图像信号的输入信号422首先由增益、偏移和钳位 (GOC)逻辑442接收。GOC逻辑442可以提供与如以上图20中所 讨论的有关ISP前端逻辑80的统计处理单元120的BLC逻辑306 类似的功能,并以类似的方式来实现。例如GOC逻辑442可为拜耳 图像传感器的每个颜色分量R、B、Gr和Gb独立地提供数字增益、 偏移和钳位(截短)。更具体的,GOC逻辑442可以执行自动白平衡 或设置原始图像数据的黑度。此外,在一些实施例中,GOC逻辑 442还可被用来校正或补偿Gr和Gb颜色分量之间的偏移。

在操作中,当前像素的输入值首先由带符号的值来偏移,并与增 益相乘。该操作可使用以上在等式9中示出的公式来执行,其中X 表示用于给定颜色分量R、B、Gr或Gb的输入像素值,O[c]表示用 于当前颜色分量c的带符号的16位偏移量,G[c]表示用于颜色分量c 的增益值。可在统计处理期间(例如在ISP前端块80中)预先确定 G[c]的值。在一个实施例中,增益G[c]可以是具有2个整数位和14 个分数位的16位无符号数(例如2.14浮点表示),还可对增益G[c] 应用舍入。仅作为示例,增益G[c]可具有0至4X之间的范围。

接着依照等式10将由等式9计算出的像素值Y(其包括增益 G[c]和偏移量O[c])截短到最小值和最大值范围。如上所述,变量 min[c]和max[c]可分别表示用于最小和最大输出值的带符号的16位 “截短值”。在一个实施例中,GOC逻辑442还可被配置为保存每个 颜色分量的分别在最大值范围之上和在最小值范围之下而被截短的像 素的数量的计数。

随后,GOC逻辑442的输出被转发到缺陷像素检测和校正逻辑 444。如以上参考图20所述(DPDC逻辑304),缺陷像素可归咎于 一些因素,并且可包括“燥点”(或漏电像素)、“亮点”和“坏点”,其 中燥点相对于非缺陷像素呈现出高于正常电荷泄漏的泄漏,因此可能 比非缺陷像素看上去更亮;并且其中亮点看上去为常开(例如,全充 电)并且因此表现的更亮,而坏点则看上去为常关。因此,希望能得 到一种足够鲁棒以识别和解决不同类型的故障情形的像素检测方案。 更具体的,当与可能仅能提供动态缺陷检测/校正的前端DPDC逻辑 304相比较时,流水DPDC逻辑444可提供固定或静态缺陷检测/校 正、动态缺陷检测/校正以及斑点移除。

依照此处公开的技术的实施例,由DPDC逻辑444执行的缺陷 像素校正/检测可以为每个颜色分量(例如R、B、Gr和Gb)独立地 进行,并且可包括多种用于检测缺陷像素的操作和多种用于校正检测 到的缺陷像素的操作。例如,在一个实施例中,缺陷像素检测操作可 提供对静态缺陷、动态缺陷的检测以及对斑点的检测,斑点可以指的 是可能存在于成像传感器中的电干扰或噪声(例如光子噪声)。作为 类比,斑点可能作为看上去的随机噪声伪影出现在图像中,类似于静 态噪声可出现在诸如电视显示器的显示器上的方式。此外,如上所 述,动态缺陷校正被在如下意义上认为是动态的:在给定的时刻将像 素认为是有缺陷可取决于邻近像素中的图像数据。例如,如果总是处 于最大亮度的亮点位于当前图像中由明亮白色主导的区域,则该亮点 可能不被认为是缺陷像素。反之,如果亮点处于当前图像中由黑色或 暗色主导的区域,则该亮点在经由DPDC逻辑444进行处理期间可 被识别为缺陷像素,并被相应地校正。

关于静态缺陷检测,将每个像素的位置与静态缺陷表相比较,该 表可存储了对应于已知有缺陷的像素的位置的数据。例如,在一个实 施例中,DPDC逻辑444可监视缺陷像素的检测(例如使用计数器机 制或寄存器),并且如果某特定像素被观察到重复地失败,该像素的 位置被存储到静态缺陷表。因此,在静态缺陷检测期间,如果确定当 前像素的位置处于静态缺陷表中,当前像素于是被识别为缺陷像素, 并且一替代值被确定并临时存储。在一个实施例中,替代值可以是相 同颜色分量的前一像素的值(基于扫描顺序)。如下所述,替代值可 被用来在动态/斑点缺陷检测和校正期间校正静态缺陷。另外,如果 前一像素处于原始帧154之外(图9),则不使用该前一像素的值, 并可在动态缺陷校正处理期间校正静态缺陷。此外,考虑到存储器, 静态缺陷表可存储有限数量的位置条目。例如,在一个实施例中,静 态缺陷表可被实现为FIFO队列,其被配置为针对图像数据的每两条 线存储共计16个位置。虽然如此,在静态缺陷表中定义的位置将使 用前一像素替代值(而不是通过以下讨论的动态缺陷检测处理)来校 正。如上所述,本技术的实施例还能够随时间间歇地更新静态缺陷 表。

实施例可提供在片上存储器或片外存储器中实现的静态缺陷表。 将明了的是,使用片上实现可能增加总体芯片面积/尺寸,而使用片 外实现可降低芯片面积/尺寸,但会增加存储器带宽需求。因此,应 当理解可取决于特定实现需求(即,将要存储在静态缺陷表中的像素 的总数),片上或片外地实现该静态缺陷表。

动态缺陷和斑点检测处理可以相对于上述讨论的静态缺陷检测处 理具有时移。例如,在一个实施例中,动态缺陷和斑点检测处理可于 静态缺陷检测处理已经分析了两条扫描线(例如,行)的像素之后开 始。可以明了的是,这允许在动态/斑点检测发生之前确定静态缺陷 的识别以及它们各自的替代值。例如,在动态/斑点检测处理期间, 如果当前像素在先前就被标记为静态缺陷,则使用先前估计的替代值 来对静态缺陷进行简单校正,而不是应用动态/斑点检测操作。

关于动态缺陷和斑点检测,这些处理可顺序的或并行的发生。由 DPDC逻辑444执行的动态缺陷和斑点检测和校正可依赖于使用像素 至像素方向性梯度的自适应边缘检测。在一个实施例中,DPDC逻辑 444可在所使用的原始帧154(图9)内选择当前像素的具有相同颜 色分量的八个直接相邻的像素。换而言之,如下图34所示,当前像 素及其八个直接相邻的像素P0、P1、P2、P3、P4、P5、P6和P7可 形成3x3区域。

然而,应当注意的是,取决于当前像素P的位置,当计算像素 至像素梯度时不考虑在原始帧154之外的像素。例如,对于如图34 所示的“左上”情况454,当前像素P处于原始帧154的左上角,因此 不考虑在原始帧154之外的邻近像素P0、P1、P2、P3和P5,仅剩 下像素P4、P6和P7(N=3)。在“上”情况456,当前像素P处于原 始帧154的最上边缘,因此不考虑在原始帧154之外的邻近像素 P0、P1和P2,仅剩下像素P3、P4、P5、P6和P7(N=5)。接着, 在“右上”情况458,当前像素P处于原始帧154的右上角,因此不考 虑在原始帧154之外的邻近像素P0、P1、P2、P4和P7,仅剩下像 素P3、P5和P6(N=3)。在“左”情况460,当前像素P处于原始帧 154的最左边缘,因此不考虑在原始帧154之外的邻近像素P0、P3 和P5,仅剩下像素P1、P2、P4、P6和P7(N=5)。

在“中心”情况462,所有像素P0-P7都位于原始帧154内,于是 都被用来确定像素至像素梯度(N=8)。在“右”情况464,当前像素P 处于原始帧154的最右边缘,因此不考虑在原始帧154之外的邻近像 素P2、P4和P7,仅剩下像素P0、P1、P3、P5和P6(N=5)。另 外,在“左下”情况466,当前像素P处于原始帧154的左下角,因此 不考虑在原始帧154之外的邻近像素P0、P3、P5、P6和P7,仅剩 下像素P1、P2和P4(N=3)。在“下”情况468,当前像素P处于原 始帧154的最下边缘,因此不考虑在原始帧154之外的邻近像素 P5、P6和P7,仅剩下像素P0、P1、P2、P3和P4(N=5)。最后, 在“右下”情况470,当前像素P处于原始帧154的右下角,因此不考 虑在原始帧154之外的邻近像素P2、P4、P5、P6和P7,仅剩下像 素P0、P1和P3(N=3)。

因此,取决于当前像素P的位置,被用于确定像素至像素梯度 的像素数量可能是3、5或8。在所示的实施例中,对于在图片(例 如原始帧154)边界内的每个邻近像素(k=0至7),可如下的计算像 素至像素梯度:

Gk=abs(P-Pk),对于0≤k≤7(仅对于在原始帧内的k)    (17)

另外,可通过如下所示的等式来计算当前像素和其周围像素的平均 Pav之间的差作为平均梯度Gav

Pav=(ΣkNPk)N,其中N=3,5或8(取决于像素位置)    (18)

Gav=abs(P-Pav)                (19)

像素至像素梯度值(等式17)可被用来确定动态缺陷情况,邻近像 素的平均(等式18和19)可被用来识别以下所讨论的斑点情况。

在一个实施例中,DPDC逻辑444可如下地执行动态缺陷检测。 首先,如果一定数量的梯度Gk等于或低于由变量dynTh(动态缺陷 阈值)表示的特定阈值,则假设该像素是有缺陷的。因此,对于每个 像素,在图片边界内的邻近像素的等于或低于阈值dynTh的梯度的 数量的计数(C)被累加。阈值dynTh可以是固定阈值分量和可取决 于周围像素中出现的“活动性”的动态阈值分量的组合。例如,在一个 实施例中,可通过计算高频分量值Phf来确定dynTh的动态阈值分 量,计算高频分量值Phf则基于对平均像素值Pav(等式18)和每个 邻近像素之间的差的绝对值求和,如下所示:

Phf=8NΣkNabs(Pav-Pk),其中N=3,5或8    (20)

在像素位于图像一角(N=3)或位于图像边缘(N=5)的情况下,Phf可分别乘上8/3或8/5。可以明了的是,这保证了基于八个邻近像素 (N=8)来归一化高频分量Phf

一旦确定了Phf,可如下所示计算动态缺陷检测阈值dynTh:

dynTh=dynTh1+(dynTh2×Phf),    (21)

其中dynTh1表示固定阈值分量,dynTh2表示动态阈值分量,并且 是等式21中用于Phf的乘数。可以为各个颜色分量提供不同的固定 阈值分量dynTh1,但是对于每个相同颜色的像素,dynTh1是相同 的。仅作为示例,可以设置dynTh1以使得其至少大于图像中的噪声 方差。

可基于图像的某些特征来确定动态阈值分量dynTh2。例如,在 一个实施例中,可使用存储的关于曝光和/或传感器积分时间的经验 数据来确定dynTh2。该经验数据可在图像传感器(例如,90)的校 准期间确定,并可将可为dynTh2选择的动态阈值分量值与多个数据 点的每一个相关联。于是,基于可在由ISP前端逻辑80执行的统计 处理期间确定的当前曝光和/或传感器积分时间值,可通过从存储的 经验数据中选择对应于当前曝光和/或传感器积分时间值的动态阈值 分量值来确定dynTh2。另外,如果当前曝光和/或传感器积分时间值 没有直接对应于经验数据点中的一个点,则可通过对与当前曝光和/ 或传感器积分时间值落入其间的数据点相关联的动态阈值分量值进行 内插而确定dynTh2。此外,类似于固定阈值分量dynTh1,对于每个 颜色分量,动态阈值分量dynTh2可具有不同的值。因此,对于每个 颜色分量(例如R、B、Gr、Gb),组合阈值dynTh可以不同。

如上所述,针对每个像素,确定在图片边界内的邻近像素的等于 或低于阈值dynTh的梯度的数量的计数C。例如,对于在原始帧154 内的每个邻近像素,可以如下计算等于或低于阈值dynTh的梯度Gk的累加计数C:

C=ΣkN(GkdynTh)---(22)

对于0≤k≤7(仅对于在原始帧内的k)

接着,如果累加计数C被确定为小于或等于由变量dynMaxC表示的 最大计数,则该像素可被认为是动态缺陷。在一个实施例中,可为 N=3(角)、N=5(边缘)和N=8的情况提供dynMaxC的不同值。 该逻辑被表达为如下:

if(C≤d ynMaxC),then当前像素P是有缺陷的。    (23)

如上所述,缺陷像素的位置可被存储到静态缺陷表。在一些实施 例中,在用于当前像素的动态缺陷检测期间计算的最小梯度值 (min(Gk))可被存储并被用于分类缺陷像素,使得更大的最小梯度值 指示缺陷的更大的“严重性”,并且应当在像素校正期间在不那么严重 的缺陷被校正之前被校正。在一个实施例中,像素在被存储到静态缺 陷表之前可能需要对其进行跨多个成像帧的处理,例如通过随着时间 而过滤缺陷像素的位置。在后一实施例中,可仅当缺陷出现在特定数 量的连续图像的相同位置时才将该缺陷像素的位置存储到静态缺陷表 中。此外,在一些实施例中,静态缺陷表可被配置为基于最小梯度值 来分类所存储的缺陷像素位置。例如,最高的最小梯度值可指示缺陷 具有更大的“严重性”。通过以这种方式来对位置排序,可以设置静 态缺陷校正的优先级,使得可以首先校正最严重或重要的缺陷。另 外,静态缺陷表可随着时间被更新以包括新检测到的静态缺陷,并且 由此基于它们各自的最小梯度值来对其进行排序。

可以通过确定值Gav(等式19)是否高于斑点检测阈值spkTh 来执行可与以上所述的动态缺陷检测处理并行发生的斑点检测。类似 于动态缺陷阈值dynTh,斑点阈值spkTh也可包括固定和动态分 量,其分别由spkTh1和spkTh2指代。一般来说,相比于dynTh1和 dynTh2值,固定和动态分量spkTh1和spkTh2可被更“侵略性地”设 置,以避免在可能具有较重纹理或其他(例如文字、树叶、特定织物 图案等)的图像区域中错误地检测斑点。因而,在一个实施例中,动 态斑点阈值分量spkTh2可以针对图像的高纹理区域有所增加,而对 于“更平缓”或更均匀的区域则有所减小。可如下所示计算斑点检测阈 值spkTh:

spkTh=spkTh1+(spkTh2×Phf),    (24)

其中spkTh1表示固定阈值分量,并且其中spkTh2表示动态阈值分 量。随后可依照以下表达式来确定斑点的检测:

if(Gav>spkTh),then当前像素P是斑点。    (25)

一旦识别了缺陷像素,DPDC逻辑444可取决于检测到的缺陷类 型来应用像素校正操作。例如,如果缺陷像素被识别为静态缺陷,则 如上所述使用存储的替代值(例如相同颜色分量的前一像素的值)来 代替该像素。如果像素被识别为动态缺陷或斑点,则可如下的执行像 素校正。首先,如下所示,梯度在四个方向(水平(h)方向、垂直(v) 方向、正对角方向(dp)和负对角方向(dn))上被计算为当前像素与 第一和第二邻居像素之间的差的绝对值(例如等式17对Gk的计算) 之和:

Gh=G3+G4    (26)

Gv=G1+G6    (27)

Gdp=G2+G5   (28)

Gdn=G0+G7   (29)

接着,经由与方向性梯度Gh、Gv、Gdp和Gdn中具有最小值的方 向性梯度相关联的两个邻近像素的线性内插来确定校正像素值PC。 例如,在一个实施例中,以下的逻辑陈述可表示对PC的计算:

if(min==Gh)    (30)

PC=P3+P42;

else if(min==Gv)

PC=P1+P62;

else if(min==Gdp)

PC=P2+P52;

else if(min==Gdn)

PC=P0+P72;

由DPDC逻辑444实现的像素校正技术还可考虑到边界条件处的例 外。例如,如果关联于所选择的内插方向的两个邻近像素中的一个在 原始帧之外,则用在原始帧内的那个邻居像素的值来代替。因此,使 用该技术,校正像素值将等于在原始帧内的该邻居像素的值。

应当注意的是,在ISP流水处理期间由DPDC逻辑444应用的 缺陷像素检测/校正技术相比于在ISP前端逻辑80中的DPDC逻辑 304更为鲁棒。如以上实施例所讨论,DPDC逻辑304仅使用水平方 向上的邻近像素来仅仅执行动态缺陷检测和校正,反之,DPDC逻辑 444使用水平和垂直两方向上的邻近像素提供静态缺陷、动态缺陷和 斑点的检测和校正。

将明了的是,使用静态缺陷表存储缺陷像素的位置可以以较低的 存储器需求提供对缺陷像素的时域滤波。例如,相比于那些存储整个 图像并随时间应用时域滤波以识别静态缺陷的传统技术,本技术的实 施例仅存储缺陷像素的位置,这典型地可使用存储整个图像帧所需的 存储器的仅仅一小部分就能实现。此外,如上所讨论,最小梯度值 (min(Gk))的存储允许有效使用对缺陷像素被校正的位置的顺序区分 优先级(例如开始于那些最显著的像素)的静态缺陷表。

另外,使用包括动态分量(例如,dynTh2和spkTh2)的阈值可 有助于减少错误的缺陷检测,这是传统图像处理系统在处理图像的高 纹理区域(例如文字、树叶、特定织物图案等)时经常遇到的问题。 此外,使用方向性梯度(例如h、v、dp、dn)来进行像素校正可降 低当发生错误的缺陷检测时可视伪影的出现。例如,在最小梯度方向 上的滤波可导致即使在错误检测的情况下,仍然能产生在大多数情况 下可接受的结果的校正。另外,在梯度计算中包括当前像素P可提 高梯度检测的准确度,尤其是在燥点的情况下。

以上所讨论的由DPDC逻辑444所实现的缺陷像素检测和校正 技术可总结为图35-37所提供的一系列流程图。例如,首先参考图 35,例示了用于检测静态缺陷的处理472。其开始于步骤474,在第 一时间T0接收到输入像素P。接着,在步骤476,将像素P的位置 与存储在静态缺陷表中的值相比较。判定逻辑478确定是否在静态缺 陷表中找到像素P的位置。如果P的位置在静态缺陷表中,则处理 472继续到步骤480,其中像素P被标记为静态缺陷并且确定替代 值。如上所述,可基于相同颜色分量的前一像素(以扫描顺序)的值 来确定替代值。处理472接着继续到步骤482,在这里,处理472进 行到如图36所示的动态和斑点检测处理484。另外,如果判定逻辑 478确定像素P的位置不在静态缺陷表中,则处理472进行到步骤 482而不执行步骤480。

继续到图36,如步骤486所示,在时间T1接收输入像素P以供 处理来确定是否存在动态缺陷或斑点。时间T1可表示相对于图35 的静态缺陷检测处理472的时移。如上所讨论,可在静态缺陷检测处 理已经分析了两条扫描线(例如行)的像素之后开始动态缺陷和斑点 检测处理,从而允许在动态/斑点检测发生之前具有用于识别静态缺 陷及确定他们各自的替代值的时间。

判定逻辑488确定输入像素P是否先前被标记为静态缺陷(例 如通过处理472的步骤480)。如果P被标记为静态缺陷,则处理 484可继续到如图37所示的像素校正处理,并且了绕过图36所示的 其他步骤。如果判定逻辑488确定输入像素P不是静态缺陷,则处 理继续到步骤490,并且识别可在动态缺陷和斑点处理中使用的邻近 像素。例如,依照以上讨论并在图34中所示的实施例,邻近像素可 包括像素P的8个直接相邻的像素(例如P0-P7),从而形成3x3像 素区域。接着,在步骤492,如以上等式17所示,计算关于原始帧 154内每个邻近像素的像素至像素梯度。另外,如等式18和19所 示,将当前像素和其周围像素的平均值之差计算为平均梯度(Gav)。

处理484随后分支到用于动态缺陷检测的步骤494以及用于斑点 检测的判定逻辑502。如上所述,在一些实施例中,可以并行地进行 动态缺陷检测和斑点检测。在步骤494,确定小于或等于阈值dynTh 的梯度的数量的计数C。如上所述,阈值dynTh可包括固定和动态 分量,并且在一个实施例中,可依照以上等式21而被确定。如果C 小于或等于最大计数dynMaxC,则处理484继续到步骤500,并且 当前像素被标记为动态缺陷。此后,处理484可继续到以下将讨论的 如图37所示的像素校正处理。

参考回步骤492之后的分支,对于斑点检测,判定逻辑502确定 平均梯度Gav是否大于同样包括固定和动态分量的斑点检测阈值 spkTh。如果Gav大于阈值spkTh,在步骤504将像素P标记为包含 斑点,此后,处理484继续到图37用于斑点像素的校正。此外,如 果判定逻辑块496和502两者的输出都为“否”,这指示像素P不包 括动态缺陷、斑点或静态缺陷(判定逻辑488)。因此,当判定逻辑 496和502的输出都为“否”时,处理484可结束于步骤498,由此使 像素P不经改变的通过,因为没有检测到缺陷(例如静态、动态或 斑点)。

继续到图37,提供了依照上述技术的像素校正处理506。在步骤 508,从图36的处理484接收输入像素P。应当注意的是处理506可 从步骤488(静态缺陷)或从步骤500(动态缺陷)和504(斑点缺 陷)接收像素P。接着判定逻辑510确定像素P是否被标记为静态缺 陷。如果像素P是静态缺陷,则步骤506继续并结束于步骤512,在 此使用在步骤480(图35)确定的替代值来校正静态缺陷。

如果像素P没有被识别为静态缺陷,则处理506从判定逻辑510 继续到步骤514,并且计算方向性梯度。例如,如以上参考等式26- 29所讨论的,将梯度计算为针对四个方向(h、v、dp和dn),中心 像素与第一和第二邻近像素之差的绝对值之和。接着,在步骤516, 识别具有最小值的方向性梯度,并在此后,判定逻辑518估计关联于 该最小梯度的两个邻近像素中的一个是否位于图像帧(例如原始帧 154)之外。如果两个邻近像素都在图像帧之内,则处理506继续到 步骤520,并且如等式30所示,通过对这两个邻近像素的值应用线 性内插以确定像素校正值(PC)。此后,如步骤562所示,可使用经 内插得到的像素校正值PC来校正输入像素P。

回到判定逻辑518,如果其确定两个邻近像素中的一个位于图像 帧(例如原始帧165)之外,则如步骤522所示,代替使用该外部像 素(Pout)的值,DPDC逻辑444可使用位于图像帧内的另一个邻近 像素(Pin)的值来代替该Pout的值。此后,在步骤524,通过对 Pin的值以及Pout的替代值进行内插而确定像素校正值PC。换而言 之,在这种情况下,PC可等于Pin的值。结束于步骤526,使用值 PC来校正像素P。在继续之前,应当理解此处所讨论的参考DPDC 逻辑444的特定缺陷像素检测和校正处理仅旨在反映本技术的一个可 能的实施例。实际上,取决于设计和/或成本约束,可以做出多种改 变,并且可以增加或移除一些特征,使得缺陷检测/校正逻辑的整体 复杂度和鲁棒性介于在ISP前端块80中实现的较为简单的检测/校正 逻辑304和此处参考DPDC逻辑444所讨论的缺陷检测/校正逻辑之 间。

参考回图33,校正后的像素数据被从DPDC逻辑444输出,并 被降噪逻辑446接收以做进一步处理。在一个实施例中,降噪逻辑 446可被配置为在维持细节和纹理的同时,实现二维边缘自适应低通 滤波以降低图像数据中的噪声。可基于当前光照水平来设置(例如通 过控制逻辑84)边缘自适应阈值,使得在弱光条件下可以增强滤 波。此外,如同以上确定dynTh和spkTh值时曾简要提及的,可提 前为给定传感器确定噪声方差,以使得降噪阈值被设置为刚好在噪声 方差之上,因此在降噪处理期间,噪声被降低而不会显著影响场景的 纹理和细节(例如,避免/减少错误检测)。假设为拜耳滤色器实施方 式,降噪逻辑446可以使用可分离的7抽头水平滤波器和5抽头垂直 滤波器来独立地处理每个颜色分量Gr、R、B和Gb。在一个实施例 中,可通过校正绿色颜色分量(Gb和Gr)中的不均匀性,并在随后 执行水平滤波和垂直滤波来开展所述降噪处理。

一般通过在均匀地照明平坦表面的情况下Gr和Gb像素之间的 微小的明亮度差来表征绿色不均匀性(GNU)。如果不对这种不均匀 性进行校正或补偿,在去马赛克之后,例如“迷宫式”伪影的特定伪影 可能出现在全彩图像上。绿色不均匀性处理期间可包括为原始拜耳图 像数据中的每个绿色像素确定当前绿色像素(G1)和当前绿色像素 右下方的绿色像素(G2)之差的绝对值是否小于GNU校正阈值 (gnuTh)。图38例示了在拜耳模式的2×2区域中的G1和G2像素的 位置。如图所示,G1周围的像素的颜色可取决于当前绿色像素是 Gb还是Gr像素。例如,如果G1是Gr,则G2是Gb,G1右边的 像素是R(红色),G1下边的像素是B(蓝色)。作为替换,如果G1 是Gb,则G2是Gr,G1右边的像素是B,而G1下边的像素是R。 如果G1和G2之差的绝对值小于GNU校正阈值,则用G1和G2的 平均值来代替当前绿色像素G1,其如以下逻辑所示:

if(abs(G1-G2)≤gnuTh);G1=G1+G22---(31)

可以明了的是,通过这种方式来应用绿色不均匀性校正可以有助于防 止G1和G2像素被跨边缘平均,由此改善和/或保留锐度。

水平滤波可在绿色不均匀性校正之后应用,并且在一个实施例中 可提供7抽头水平滤波器。计算每个滤波器抽头的跨边缘梯度,并且 如果其大于水平边缘阈值(horzTh),则如下面将例示的,滤波器抽 头被折叠到中心像素。水平滤波器可以针对每个颜色分量(R、B、 Gr、Gb)独立处理所述图像数据,并可使用未经滤波的值作为输入 值。

作为示例,图39示出了用于一组水平像素P0-P6的图形表示, 其中中心抽头位于P3。基于如图39所示的像素,可如下计算对于每 个滤波器抽头的边缘梯度:

Eh0=abs(P0-P1)    (32)

Eh1=abs(P1-P2)    (33)

Eh2=abs(P2-P3)    (34)

Eh3=abs(P3-P4)    (35)

Eh4=abs(P4-P5)    (36)

Eh5=abs(P5-P6)    (37)

边缘梯度Eh0-Eh5于是可被水平滤波器部件利用以使用如下所示的 公式38来确定水平滤波输出Phorz

Phorz=C0×[(Eh2>horzTh[c])?P3:(Eh1>horzTh[c])?P2:(Eh0> horzTh[c])?P 1:P0]+

C1×[(Eh2>horzTh[c])?P3:(Eh1>horzTh[c])?P2:P1]+

C2×[(Eh2>horzTh[c])?P3:P2]+

C3×P3+                                                (38)

C4×[(Eh3>horzTh[c])?P3:P4]+

C5×[(Eh3>horzTh[c])?P3:(Eh4>horzTh[c])?P4:P5]+

C6×[(Eh3>horzTh[c])?P3:(Eh4>horzTh[c])?P4:(Eh5> horzTh[c])?P5:P6],

其中horzTh[c]是用于每个颜色分量c(例如R、B、Gr和Gb)的水 平边缘阈值,并且其中C0-C6分别是对应于像素P0-P6的滤波器抽 头系数。水平滤波器输出Phorz可被应用到中心像素P3的位置。在一 个实施例中,滤波器抽头系数C0-C6可以是16位二进制补码值,其 具有3个整数位和13个分数位(3.13浮点)。此外,应当注意的是滤 波器抽头系数C0-C6不是必须要关于中心像素P3对称。

在绿色不均匀性校正和水平滤波处理之后由降噪逻辑446应用垂 直滤波。在一个实施例中,如图40所示,垂直滤波操作可提供5抽 头滤波器,其中垂直滤波器的中心抽头位于P2。可以按照如同以上 所述的水平滤波处理类似的方式来进行垂直滤波处理。例如,计算每 个滤波器抽头的跨边缘的梯度,如果其大于垂直边缘阈值 (vertTh),滤波器抽头被折叠到中心像素P2。垂直滤波器可针对每 个颜色分量(R、B、Gr、Gb)独立处理图像数据,并且可以使用未 经滤波的值作为输入值。

基于如图40所示的像素,可如下计算每个滤波器抽头的垂直边 缘梯度:

Ev0=abs(P0-P1)    (39)

Ev1=abs(P1-P2)    (40)

Ev2=abs(P2-P3)    (41)

Ev3=abs(P3-P4)    (42)

边缘梯度Ev0-Ev5于是可由垂直滤波器利用,以使用如下所示的公 式43来确定垂直滤波输出Pvert

Pvert=C0×[(Ev1>vertTh[c])?P2:(Ev0>vertTh[c])?P1:P0]+

      C1×[(Ev1>vertTh[c])?P2:P1]+

      C2×P2+                                              (43)

      C3×[(Ev2>vertTh[c])?P2:P3]+

      C4×[(Ev2>vertTh[c])?P2:(Eh3>vertTh[c])?P3:P4],

其中vertTh[c]是用于每个颜色分量c(例如R、B、Gr和Gb)的垂 直边缘阈值,并且其中C0-C4分别是对应于图40中的像素P0-P4的 滤波器抽头系数。垂直滤波输出Pvert可被应用到中心像素P2的位 置。在一个实施例中,滤波器抽头系数C0-C4可以是16位二进制补 码值,其具有3个整数位和13个分数位(3.13浮点)。此外,应当注 意的是滤波器抽头系数C0-C4不是必须要关于中心像素P2对称。

另外,关于边界条件,当邻近像素在原始帧154(图9)之外 时,使用在原始帧的边缘处的相同颜色像素的值来复制边界外像素的 值。该约定可对水平和垂直滤波操作两者实施。作为示例,再次参考 图39,在水平滤波的情况下,如果像素P2是位于原始帧最左边的边 缘像素,并且像素P0和P1处于原始帧之外,则使用像素P2的值来 代替像素P0和P1的值以用于水平滤波。

再次参考回图33中所示的原始处理逻辑414的方框图,降噪逻 辑446的输出被随后发送到镜头明暗校正(LSC)逻辑448以供处 理。如上所讨论的,镜头明暗校正技术可包括逐像素应用合适的增益 以补偿光强度的衰落,该光强度的衰落可能是由镜头的几何光学、制 造缺陷、微镜头阵列和颜色阵列滤波器之间的未对准等导致的。此 外,在一些镜头中的红外(IR)滤波器也可导致衰落取决于发光 体,并且于是镜头明暗增益可以取决于检测到的光源而被修改。

在所描绘的实施例中,ISP流水82的LSC逻辑448可以按照类 似的方式来实现,并且于是一般地提供与以上参考图23-31所讨论的 ISP前端块80的LSC逻辑308相同的功能。因此,为了避免冗余, 应当理解的是此处例示实施例的LSC逻辑448被配置为以与LSC逻 辑304大体相同的方式操作,因此在此将不再重复以上提供的对镜头 明暗校正技术的描述。然而,为了一般性地总结,应当理解的是 LSC逻辑448可以独立地处理原始像素数据流的每个颜色分量以确 定将应用到当前像素的增益。依照以上所述的实施例,可基于跨成像 帧分布的一组定义的增益栅格点来确定镜头明暗校正增益,其中由多 个像素(例如8个像素,16个像素等)来定义每个栅格点之间的间 隔。如果当前像素的位置对应于栅格点,则将关联于该栅格点的增益 值应用到当前像素。然而,如果当前像素的位置在栅格点之间(例如 图26的G0、G1、G2和G3),则可通过对当前像素位于其间的栅格 点进行内插来计算LSC增益值(等式11a和11b)。该处理由图27 的处理380所描绘。此外,如参考图25所提及的,在一些实施例 中,栅格点可被非均匀地分布(例如对数分布),使得栅格点在LSC 区域354的中心较不集中,而是朝向LSC区域354的各角(通常在 那里镜头明暗失真更容易被察觉)更为集中。

另外,如参考图30和31所讨论的,LSC逻辑448还可与栅格 增益值一起应用径向增益分量。径向增益分量可基于当前像素与图像 的中心像素的距离来确定(等式12-14)。如所述的,使用径向增益 允许对所有颜色分量使用单个共用增益栅格,这将大大地减少为每个 颜色分量存储单独的增益栅格所需的总存储空间。栅格增益数据的这 一减少可降低实现成本,因为栅格增益数据表会占据图像处理硬件中 的存储器或芯片区域的很大一部分。

接着,再次参考图33的原始处理逻辑方框图414,LSC逻辑 448的输出随后被传递到第二增益、偏移和钳位(GOC)块450。 GOC逻辑450可在去马赛克(通过逻辑块452)之前被应用,并且 可被用来对LSC逻辑448的输出执行自动白平衡。在所描绘的实施 例中,GOC逻辑450可以按照与GOC逻辑442(和BLC逻辑 306)相同的方式来实现。因此,依照以上的等式9,由GOC逻辑 450接收到的输入首先被偏移一个带符号的值,随后乘以增益。结果 值然后依照等式10被截短到最小值和最大值范围。

此后,GOC逻辑450的输出被转发到去马赛克逻辑452以供处 理,从而基于原始拜耳输入数据产生全彩(RGB)图像。将明了的 是,使用滤色器阵列(例如拜耳滤波器)的图像传感器的原始输出在 以下意义上是“不完整的”:每个像素被滤波以仅获取单个颜色分量。 因此仅为单个像素收集的数据不足以确定颜色。因此,去马赛克技术 可被用来通过为每个像素内插缺失的颜色数据而从原始拜耳数据生成 全彩图像。

现在参考图41,例示了提供关于可如何将去马赛克应用到原始 拜耳图像模式532以产生全彩RGB的一般概观的图形处理流程 530。如图所示,原始拜耳图像532的4×4部分534可包括用于每个 颜色分量的分开的通道,包括绿色通道536、红色通道538和蓝色通 道540。因为在拜耳传感器中的每个成像像素仅获取关于一种颜色的 数据,所以每个颜色通道536、538和540的颜色数据是不完整的, 其由符号“?”指示。通过应用去马赛克技术542,可以进行内插得到 每个通道的缺失颜色样本。例如,如参考标记544所示,经内插得到 的数据G’可被用来填充绿色颜色通道中的缺失样本,类似地,经内 插得到的数据R’可(与经内插得到的数据G’544组合)被用来填充 红色颜色通道546中的缺失样本,经内插得到的数据B’可(与经内 插得到的数据G’544组合)被用来填充蓝色颜色通道548中的缺失 样本。因此,作为去马赛克处理的结果,每个颜色通道(R、G、 B)将具有一组完整的颜色数据,这些数据随后可被用来重构全彩 RGB图像550。

现将依照一个实施例描述可由去马赛克逻辑452实现的去马赛克 技术。在绿色颜色通道中,可对已知的绿色样本使用低通方向性滤波 器并对相邻的颜色通道(例如红色和蓝色)使用高通(或梯度)滤波 器来内插缺失的颜色样本。对于红色和蓝色颜色通道,可通过类似的 方式来内插缺失的颜色样本,但是对已知的红色或蓝色值使用低通滤 波并且对同一位置的(co-located)内插绿色值使用高通滤波。此 外,在一个实施例中,对绿色颜色通道的去马赛克可利用基于初始拜 耳颜色数据的5×5像素块边缘自适应滤波器。如以下将进一步讨论 的那样,使用边缘自适应滤波器可提供以经水平和垂直滤波的值的梯 度为基础的连续加权,这可减少传统去马赛克技术中常见的某些伪影 的出现,例如混叠、“棋盘格”或“彩虹”伪影。

在对绿色通道去马赛克期间,使用拜耳图像模式的绿色像素 (Gr和Gb像素)的初始值。然而,为了获得用于绿色通道的一组完 整数据,可在拜耳图像模式的红色和蓝色像素处内插绿色像素值。依 照本技术,基于上述的5×5像素块,首先在红色和蓝色像素处计算 分别被称为Eh和Ev的水平和垂直能量分量。如以下将进一步讨论 的那样,Eh和Ev的值可被用于获得来自水平和垂直滤波步骤的边 缘加权的经滤波值。

作为示例,图42例示了对位于5×5像素块中心位置(j,i)的红色 像素的Eh和Ev值的计算,其中j对应于行而i对应于列。如图所 示,Eh的计算考虑了5×5像素块的中间三行(j-1,j,j+1),Ev的计算 考虑了5×5像素块的中间三列(i-1,i,i+1)。为了计算Eh,将在红色列 (i-2,i,i+2)中被乘上对应系数(例如-1用于列i-2和i+2,2用于列 i)的像素的每一个的和的绝对值与在蓝色列(i-1,i+1)中被乘上对应系 数(例如1用于列i-1,-1用于列i+1)的像素的每一个的和的绝对 值相加。为了计算Ev,将在红色行(j-2,j,j+2)中被乘上对应系数(例 如-1用于行j-2和j+2,2用于行j)的像素的每一个的和的绝对值与 在蓝色行(j-1,j+1)中被乘上对应系数(例如1用于行j-1,-1用于行 j+1)的像素的每一个的和的绝对值相加。这些计算可由以下的等式 44和45所例示:

Eh=abs[2((P(j-1,i)+P(j,i)+P(j+1,i))–    (44)

   (P(j-1,i-2)+P(j,i-2)+P(j+1,i-2))–

   (P(j-1,i+2)+P(j,i+2)+P(j+1,i+2)]+

   abs[(P(j-1,i-1)+P(j,i-1)+P(j+1,i-1))–

   (P(j-1,i+1)+P(j,i+1)+P(j+1,i+1)]

Ev=abs[2(P(j,i-1)+P(j,i)+P(j,i+1))–     (45)

   (P(j-2,i-1)+P(j-2,i)+P(j-2,i+1))–

   (P(j+2,i-1)+P(j+2,i)+P(j+2,i+1]+

   abs[(P(j-1,i-1)+P(j-1,i)+P(j-1,i+1))–

   (P(j+1,i-1)+P(j+1,i)+P(j+1,i+1)]

因此,总能量和可被表达为:Eh+Ev。此外,虽然如图42所示的例 子例示了对于在(j,i)的红色中心像素的Eh和Ev的计算,但应当理 解的是可以通过类似的方式确定用于蓝色中心像素的Eh和Ev值。

接着,水平和垂直滤波可被应用到拜耳模式以获得经垂直和水平 滤波的值Gh和Gv,其分别可表示在水平和垂直方向上的内插的绿 色值。除了使用相邻颜色(R和B)的方向性梯度以在缺失的绿色样 本的位置处获得高频信号之外,还可对已知的邻近绿色样本使用低通 滤波器,从而确定经滤波的值Gh和Gv。例如,参考图43,现将例 示用于确定Gh的水平内插的例子。

如图43所示,可以在确定Gh时考虑拜耳图像的红色行552的 五个水平像素(R0、G1、R2、G3和R4),其中假设R2是位于(j,i) 的中心像素。分别关联于这五个像素的滤波系数由参考标记554指 示。因此,可以如下确定用于中心像素R2的、被称为G2’的绿色值 的插值:

G2,=G1+G32+2R2-(R0+R22)-(R2+R42)2---(46)

于是可以利用多种数学运算来产生如以下等式47和48所示的G2’的 表达式:

G2,=2G1+2G34+4R2-R0-R2-R2-R44---(47)

G2,=2G1+2G3+2R2-R0-R44---(48)

因此,参考图43和以上的等式46-48,可以导出用于在(j,i)处的绿色 值的水平插值的一般表达式:

Gh=(2P(j,i-1)+2P(j,i+1)+2P(j,i)-P(j,i-2)-P(j,i+2))4---(49)

可以通过与Gh类似的方式来确定垂直滤波分量Gv。例如,参 考图44,在确定Gv时考虑拜耳图像的红色列556的五个垂直像素 (R0、G1、R2、G3和R4)以及它们各自的滤波系数558,其中假设 R2是位于(j,i)处的中心像素。在垂直方向上,对已知的绿色样本使 用低通滤波,对红色通道使用高通滤波,可以导出如下用于Gv的表 达式:

Gv=(2P(j-1,i)+2P(j+1,i)+2P(j,i)-P(j-2,i)-P(j+2,i))4---(50)

虽然此处所讨论的例子已经示出了对红色像素进行绿色值的内插,但 应当理解的是,等式49和50中阐述的表达式还可被用于对蓝色像素 进行绿色值的水平和垂直内插。

可通过使用如上讨论的能量分量(Eh和Ev)对水平和垂直滤波 器输出(Gh和Gv)进行加权来确定用于中心像素(j,i)的最终的内插 绿色值G’,以产生如下等式:

G,(j,i)=(EvEh+Ev)Gh+(EhEh+Ev)Gv---(51)

如上所述,能量分量Eh和Ev可提供水平和垂直滤波器输出Gh和 Gv的边缘自适应加权,这可有助于减少重构的RGB图像中的图像 伪影,例如彩虹、混叠或棋盘格伪影。另外,去马赛克逻辑452可提 供通过将Eh和Ev值分别设为1来旁路边缘自适应加权特征的可选 项,使得Gh和Gv被相等地加权。

在一个实施例中,如上述等式51所示的水平和垂直加权系数可 被量化,以将加权系数的精度降低到一组“粗略”值。例如,在一个实 施例中,加权系数可被量化为八个可能的权重比率:1/8、2/8、3/8、 4/8、5/8、6/8、7/8和8/8。其他实施例可将加权系数量化为16个值 (例如1/16至16/16),32个值(1/32至32/32)等。可以明了的是, 当与使用全精度值(例如32位浮点值)相比较时,加权系数的量化 可降低在确定加权系数并将其应用到水平和垂直滤波器输出的情况下 的实现复杂度。

在其他实施例中,除了确定和使用水平和垂直能量分量以将加权 系数应用到经水平(Gh)和垂直(Gv)滤波的值之外,此处公开的 技术还可在正对角和负对角方向上确定和利用能量分量。例如,在这 样的实施例中,也可将滤波应用到正对角和负对角方向。滤波器输出 的加权可包括选择两个最高能量分量,以及使用所选择的能量分量来 加权它们各自的滤波器输出。例如,假设两个最高能量分量对应于垂 直和正对角方向,则垂直和正对角能量分量被用来加权垂直和正对角 滤波器输出以确定内插的绿色值(例如在拜耳模式中的红色或蓝色像 素位置处)。

接着,可通过在拜耳图像模式的绿色像素处内插红色和蓝色值、 在拜耳图像模式的蓝色像素处内插红色值和在拜耳图像模式的红色像 素处内插蓝色值,而执行对红色和蓝色颜色通道的去马赛克。依照此 处讨论的技术,可通过使用基于已知的邻近红色和蓝色像素的低通滤 波和基于相同位置的绿色像素值(取决于当前像素的位置,其可能是 初始值或内插的值(来自上述的绿色通道去马赛克处理))的高通滤 波,来内插缺失的红色和蓝色像素值。因此,关于这个实施例,应当 理解的是可以首先执行缺失的绿色值的内插,以使得在内插缺失的红 色和蓝色样本时可以使用完整的绿色值集合(初始值和内插值两 者)。

可参考图45来描述红色和蓝色像素值的内插,图45表示拜耳图 像模式的可对其应用红色和蓝色去马赛克的各种3×3块,以及在对 绿色通道去马赛克期间已经获得的内插绿色值(表示为G’)。首先参 考块560,可如下确定用于Gr像素(G11)的内插红色值R’11

R11=(R10+R12)2+(2G11-G10-G12)2,---(52)

其中G’10和G’12表示内插绿色值,如参考标记568所示。同样地, 可如下确定用于Gr像素(G11)的内插蓝色值B’11

B11=(B01+B21)2+(2G11-G01-G21)2,---(53)

其中G’01和G’21表示内插绿色值(568)。

接着,参考像素块562,其中中心像素是Gb像素(G11),可根 据以下所示的等式54和55来确定内插的红色值R’11和蓝色值B’11

R11=(R01+R21)2+(2G11-G01-G21)2---(54)

B11=(B10+B12)2+(2G11-G10-G12)2---(55)

此外,参考像素块564,可如下确定对蓝色像素B11进行的红色 值的内插:

R11=(R00+R02+R20+R22)4+(4G11-G00-G02-G20-G22)4,---(56)

其中,G’00、G’02、G’11、G’20和G’22表示内插绿色值,如参考标记 570所示。最后,如像素块566所示,可如下计算对红色像素进行的 蓝色值的内插:

B11=(B00+B02+B20+B22)4+(4G11-G00-G02-G20-G22)4,---(57)

虽然以上所讨论的实施例依赖于颜色差(例如梯度)来确定红 色和蓝色内插值,另一个实施例可使用颜色比值来提供内插的红色和 蓝色值。例如,内插的绿色值(块568和570)可被用来获得在拜耳 图像模式的红色和蓝色像素位置处的颜色比值,并且这些比值的线性 内插可被用来确定用于缺失的颜色样本的内插颜色比值。将可以是内 插值或初始值的绿色值与内插颜色比值相乘以获得最终的内插颜色 值。例如,可依照以下公式来执行使用颜色比值的红色和蓝色像素值 的内插,其中等式58和59表示用于Gr像素的红色和蓝色值的内 插,等式60和61表示用于Gb像素的红色和蓝色值的内插,等式 62表示对蓝色像素进行的红色值的内插,等式63表示对红色像素进 行的蓝色值的内插:

R11=G11(R10G10)+(R12G12)2---(58)

(当G11是Gr像素时内插的R’11

B11=G11(B01G01)+(B21G21)2---(59)

(当G11是Gr像素时内插的B’11

R11=G11(R01G01)+(R21G21)2---(60)

(当G11是Gb像素时内插的R’11

B11=G11(B10G10)+(B12G12)2---(61)

(当G11是Gb像素时内插的B’11

R11=G11(R00G00)+(R02G02)+(R20G20)+(R22G22)4---(62)

(对蓝色像素B11内插的R’11

B11=G11(B00G00)+(B02G02)+(B20G20)+(B22G22)4---(63)

(对红色像素R11内插的B’11

一旦为来自拜耳图像模式的每个图像像素内插了缺失的颜色样 本,可将用于红色、蓝色和绿色颜色通道(例如图41中的544、546 和548)的每一个的颜色值的完整样本组合在一起以生成全彩RGB 图像。例如,回去参考图32和33,原始像素处理逻辑414的输出 424可以是以8、10、12或14位格式的RGB图像信号。

现在参考图46-49,其表示依照公开的实施例的描述用于对原始 拜耳图像模式去马赛克的处理的多种流程图。特别地,图46的处理 572描述对于给定的输入像素P,确定哪些颜色分量将被内插。基于 处理572的确定,可以执行(例如通过去马赛克逻辑452)用于内插 绿色值的处理584(图47)、用于内插红色值的处理596(图48)或 用于内插蓝色值的处理608(图49)中的一个或多个。

从图46开始,当接收到输入像素P时,处理572从步骤574开 始。判定逻辑576确定输入像素的颜色。例如,这可能取决于位于拜 耳图像模式内的像素的位置。因此,如果P被识别为绿色像素(例 如Gr或Gb),处理器572进行到步骤578以获得用于P的内插红色 和蓝色值。这可包括,例如分别继续到图48和49的处理596和 608。如果P被识别为红色像素,则处理572进行到步骤580以获得 用于P的内插绿色和蓝色值。这可包括进一步分别执行图47和49 的处理584和608。另外,如果P被识别为蓝色像素,则处理572进 行到步骤582以获得用于P的内插绿色和红色值。这可包括进一步 分别执行图47和48的处理584和596。以下将进一步讨论处理 584、596和608的每一个。

图47表示用于确定输入像素P的内插绿色值的处理584,其包 括步骤586-594。在步骤586,接收到输入像素P(例如来自处理 572)。接着,在步骤588,识别形成5×5像素块的邻近像素集合,其 中P处于该5×5块的中心。此后,在步骤590分析该像素块以确定 水平和垂直能量分量。例如,可依照用于计算Eh和Ev的等式44和 45来分别确定水平和垂直能量分量。如上所述,能量分量Eh和Ev 可被用作加权系数以提供边缘自适应滤波,从而在最终图像中降低特 定去马赛克伪影的出现。在步骤592,将低通滤波和高通滤波应用到 水平和垂直方向上以确定水平和垂直滤波输出。例如,可依照等式 49和50来计算水平和垂直滤波输出Gh和Gv。接着,处理572继 续到步骤594,如等式51所示,其基于使用能量分量Eh和Ev加权 后的Gh和Gv的值来进行内插以得到内插绿色值G’。

接着,关于图48的处理596,红色值的内插开始于步骤598,其 接收输入像素P(例如来自处理572)。在步骤600,识别形成3×3像 素块的邻近像素集合,其中P处于该3×3像素块的中心。此后,在 步骤602,将低通滤波应用到该3×3块内的邻近红色像素,将高通滤 波应用到(步骤604)相同位置的绿色邻近值(其可能是由拜耳图像 传感器捕捉的初始绿色值或内插的值(例如通过图47的处理584确 定的))。如步骤606所示,可基于低通和高通滤波输出来确定用于P 的内插红色值R’。基于P的颜色,可依照等式52、54或56中的一 个来确定R’。

关于蓝色值的内插,可以应用图49的处理608。其步骤610和 612与处理596(图48)的步骤598和600大体相同。在步骤614, 将低通滤波应用到3×3块内的邻近蓝色像素,在步骤616,将高通滤 波应用到相同位置的绿色邻近值(其可能是由拜耳图像传感器捕捉的 初始绿色值或内插的值(例如通过图47的处理584确定的))。如步 骤618所示,可基于低通和高通滤波输出来确定用于P的内插蓝色 值B’。基于P的颜色,可依照等式53、55或57中的一个来确定 B’。此外,如上所述,可使用颜色差(等式52-57)或颜色比值(等 式58-63)来确定红色和蓝色值的内插。同样,应当理解的是可首先 执行缺失的绿色值的内插,这样当内插缺失的红色和蓝色样本时可以 使用绿色值的完整集合(初始的和内插的值两者)。例如,在分别执 行图48和49的处理596和608之前可应用图47的处理584以内插 所有缺失的绿色颜色样本。

参考图50-53,其提供了由ISP流水82中的原始像素处理逻辑 414处理的图像的有色图的例子。图50表示可由成像设备30的图像 传感器90捕捉的初始图像场景620。图51示出可表示由图像传感器 90捕捉的原始像素数据的原始拜耳图像622。如上所述,传统的去马 赛克技术可能无法提供基于图像数据中对边缘(例如在两个或更多个 颜色区域之间的边界)的检测的自适应滤波,这可能在得到的重构全 彩RGB图像中产生不期望的伪影。例如,图52表示使用传统去马 赛克技术来重构的RGB图像624,其可能包括伪影,例如在边缘 628处的“棋盘格”伪影626。然而,将图像624与图53的RGB图像 630相比较,图53可以是使用以上描述的去马赛克技术来重构的图 像的一个例子,可见在图52中出现的棋盘格伪影626不再出现,或 者至少在边缘628处充分降低了伪影的外观。因此,如图50-53所示 的图像旨在图示出此处公开的去马赛克技术相对于传统方法的至少一 个优点。

回去参考图32,现在已经彻底地描述了原始像素处理逻辑414 的操作,其可输出RGB图像信号424,本讨论现在将关注于描述由 RGB处理逻辑416对RGB图像信号424的处理。如图所示,RGB 图像信号424可被发送到选择逻辑428和/或存储器108。RGB处理 逻辑416可接收输入信号430,输入信号430可以是来自信号424或 来自存储器108的如信号426所示的RGB图像数据,这取决于选择 逻辑428的配置。可通过RGB处理逻辑416来处理RGB图像数据 430以执行包括颜色校正(例如使用颜色校正矩阵)的颜色调整操 作、用于自动白平衡的颜色增益的应用以及全局色调映射等。

图54表示用于描述RGB处理逻辑416的一个实施例的更详细 视图的方框图。如图所示,RGB处理逻辑416包括增益、偏移和钳 位(GOC)逻辑640,RGB颜色校正逻辑642,GOC逻辑644, RGB伽马调整逻辑和颜色空间变换逻辑648。输入信号430首先被 增益、偏移和钳位(GOC)逻辑640接收。在所示的实施例中,在 颜色校正逻辑642执行处理之前,GOC逻辑640可应用增益以在 R、G或B颜色通道的一个或多个上执行自动白平衡。

GOC逻辑640可与原始图像处理逻辑414的GOC逻辑442类 似,除了处理的是RGB域的颜色分量而不是拜耳图像数据的R、 B、Gr和Gb分量。在操作中,如以上的等式9所示,首先使用带符 号的值O[c]来偏移当前像素的输入值,接着将其乘上增益G[c],其 中c表示R、G和B。如上所述,增益G[c]可以是16位的无符号 数,其具有2个整数位和14个分数位(例如2.14浮点表示),可预 先在统计处理期间(例如在ISP前端块80)确定增益G[c]的值。接 着依照等式10将计算得到的像素值Y(基于等式9)截短到最小值 和最大值范围。如上所述,变量min[c]和max[c]分别表示用于最小 和最大输出值的带符号的16位“截短值”。在一个实施例中,GOC逻 辑640还可被配置为为每个颜色分量R、G和B保存分别在最大值 之上和在最小值之下而被截短的像素的数量的计数。

接着GOC逻辑640的输出被转发到颜色校正逻辑642。依照此 处公开的技术,颜色校正逻辑642可被配置为使用颜色校正矩阵 (CCM)而应用颜色校正到RGB图像数据。在一个实施例中,CCM 可以是3×3RGB变换矩阵,尽管其他实施例还可以利用其他尺寸的 矩阵(例如4×3等)。因此,可如下的表示对具有R、G和B分量的 输入像素执行颜色校正的处理:

RGB=CCM00CCM01CCM02CCM10CCM11CCM12CCM20CCM21CCM22×RGB,---(64)

其中R、G和B表示输入像素的当前红色、绿色和蓝色值,CCM00- CCM22表示颜色校正矩阵的系数,以及R’、G’和B’表示输入像素 的校正后的红色、绿色和蓝色值。因此,可依照以下的等式65-67来 计算校正颜色值:

R'=(CCM00×R)+(CCM01×G)+(CCM02×B)    (65)

G'=(CCM10×R)+(CCM11×G)+(CCM12×B)    (66)

B'=(CCM20×R)+(CCM21×G)+(CCM22×B)    (67)

如上所述,可以在ISP前端块80的统计处理期间确定CCM的 系数(CCM00-CCM22)。在一个实施例中,可以选择用于给定颜色 通道的系数,以使得这些系数(例如用于红色颜色校正的CCM00、 CCM01和CCM02)之和等于1,这可有助于维持明亮度和颜色平 衡。此外,系数通常被选择为使得正增益将被应用到要被校正的颜 色。例如,对于红色颜色校正,系数CCM00可以大于1,而系数 CCM01和CCM02的一个或两个可小于1。通过这样的方式来设置 系数可以增强在得到的经校正的R’值中的红色(R)分量,同时减弱 蓝色(B)和绿色(G)分量。将明了的是,这可以应对在获取初始 拜耳图像期间可能发生的颜色重叠的问题,这一问题是因为用于特定 颜色像素的经滤波的光的一部分可能“渗透”(bleed)到不同颜色的 邻近像素中。在一个实施例中,CCM的系数可被提供为16位的二 进制补码数,其具有4个整数位和12个分数位(表示为4.12浮 点)。另外,如果该值超过最大值或小于最小值,颜色校正逻辑642 可提供对计算出的经校正颜色值的截短。

接着将RGB颜色校正逻辑642的输出传递给另一个GOC逻辑 块644。GOC逻辑644可以按照跟GOC逻辑640相同的方式来实 现,因此,这里不再重复对增益、偏移和钳位功能的详细描述。在一 个实施例中,在颜色校正之后应用GOC逻辑644可提供基于校正后 的颜色值的图像数据的自动白平衡,并且其还可以调整红色与绿色比 以及蓝色与绿色比的传感器变化。

接着,GOC逻辑644的输出被发送到RGB伽马调整逻辑646 以供进一步处理。例如,RGB伽马调整逻辑646可提供伽马校正、 色调映射、直方图匹配等。依照公开的实施例,伽马调整逻辑646可 将输入RGB值映射成相应的输出RGB值。例如,伽马调整逻辑可 提供包括三个查找表的集合,每个表用于R、G和B分量的一个。 作为示例,每个查找表可被配置为存储10位值的256个条目,每个 值表示一个输出等级。表条目可均匀的分布在输入像素值的范围内, 从而当输入值落入在两个条目之间时,可进行线性内插得到输出值。 在一个实施例中,可复制用于R、G和B的三个查找表的每一个, 以使得查找表被“双重缓存”于存储器中,从而允许在处理期间使用一 个表时还能对其拷贝进行更新。基于以上所述的10位输出值,应当 注意的是通过本实施例中的伽马校正处理,14位RGB图像信号将被 有效地下采样至10位。

伽马调整逻辑646的输出可被发送到存储器108和/或颜色空间 变换逻辑648。颜色空间变换(CSC)逻辑648可被配置为将来自伽 马调整逻辑646的RGB输出变换到YCbCr格式,其中Y表示亮度 分量,Cb表示蓝色差色度分量,Cr表示红色差色度分量,由于在伽 马调整操作期间执行了将RGB数据从14位变换为10位的位深变 换,以上这些分量都可以是10位格式。如上所述,在一个实施例 中,伽马调整逻辑646的RGB输出可被下采样到10位,并通过 CSC逻辑648将其变换到10位YCbCr值,接着可将10位YCbCr 值转发到以下将进一步描述的YCbCr处理逻辑418。

可使用颜色空间变换矩阵(CSCM)来执行从RGB域到YCbCr 颜色空间的变换。例如,在一个实施例中,CSCM可以是3×3变换 矩阵。可依照已知的变换等式,例如BT.601和BT.709标准,来设置 CSCM的系数。另外,CSCM系数可灵活地基于期望的输入和输出 的范围。因此,在一些实施例中,可基于在ISP前端块80中的统计 处理期间收集的数据来确定和编程CSCM系数。

用于对RGB输入像素执行YCbCr颜色空间变换的处理可如下 表示:

YCbCr=CSCM00CSCM01CSCM02CSCM10CSCM11CSCM12CSCM20CSCM21CSCM22×RGB,---(68)

其中R、G和B表示输入像素的10位格式的当前红色、绿色和蓝色 值(例如通过伽马调整逻辑646的处理),CSCM00-CSCM22表示颜 色空间变换矩阵的系数,Y、Cb和Cr表示得到的输入像素的亮度和 色度分量。因此,可依照以下的等式69-71来计算Y、Cb和Cr的 值:

Y=(CSCM00×R)+(CSCM01×G)+(CSCM02×B)     (69)

Cb=(CSCM10×R)+(CSCM11×G)+(CSCM12×B)    (70)

Cr=(CSCM20×R)+(CSCM21×G)+(CSCM22×B)    (71)

如以下将讨论的,在颜色空间变换操作之后,得到的YCbCr值可从 CSC逻辑648输出作为信号432,其可由YCbCr处理逻辑418处 理。

在一个实施例中,CSCM的系数可以是16位的二进制补码数, 其具有4个整数位和12个分数位(4.12)。在另一个实施例中,CSC 逻辑648可进一步被配置为应用偏移量到Y、Cb和Cr值的每一 个,并将结果值截短到最小和最大值。仅作为示例,假设YCbCr值 是10位格式,偏移量可在-512至512的范围内,并且最小和最大值 可以分别是0和1023。

再次参考图32中的ISP流水逻辑82的方框图,YCbCr信号 432可被发送到选择逻辑436和/或存储器108。YCbCr处理逻辑418 可接收输入信号438,其可以是来自信号432或来自存储器108的如 信号434所示的YCbCr图像数据,这取决于选择逻辑436的配置。 接着可通过YCbCr处理逻辑418来处理YCbCR图像数据438以执 行亮度锐化,色度抑制,色度降噪,以及亮度、对比度和颜色调整 等。此外,YCbCr处理逻辑418可提供在水平和垂直方向上对经处 理的图像数据的伽马映射和缩放。

图55表示描述YCbCr处理逻辑418的一个实施例的更详细的 视图的方框图。如图所示,YCbCr处理逻辑418包括图像锐化逻辑 660,用于调整亮度、对比度和/或颜色的逻辑662,YCbCr伽马调整 逻辑664,色度抽选逻辑668以及缩放逻辑670。YCbCr处理逻辑 418可被配置为使用1平面、2平面或3平面存储器配置来处理 4:4:4、4:2:2或4:2:0格式的像素数据。此外,在一个实施例中, YCbCr输入信号438可提供10位值的亮度和色度信息。

将明了的是,提到1平面、2平面或3平面,指的是在图片存储 器中利用的成像平面的数量。例如,在3平面格式中,Y、Cb和Cr 分量的每一个都可利用单独的各自的存储器平面。在2平面格式中, 第一平面可被提供给亮度分量(Y),并且交织Cb和Cr样本的第二 平面可被提供给色度分量(Cb和Cr)。在1平面格式中,存储器中 的单个平面以亮度和色度样本相交织。此外,关于4:4:4、4:2:2和 4:2:0格式,可以明了的是4:4:4格式表示以相同的速率对三个 YCbCr分量中的每一个进行采样的采样格式。在4:2:2格式中,以亮 度分量Y的采样率的一半对色度分量Cb和Cr进行亚采样,从而将 色度分量Cb和Cr的分辨率在水平方向上降低一半。同样的,4:2:0 格式在垂直和水平方向上都亚采样色度分量Cb和Cr。

YCbCr信息的处理可发生在源缓冲器内定义的活动的源区域 中,其中该活动源区域包含“有效的”像素数据。例如,参考图56, 其表示在其内定义了活动源区域678的源缓冲器676。在所示的例子 中,源缓冲器可表示提供10位值的源像素的4:4:4的1平面格式。 可分别地为亮度(Y)样本和色度样本(Cb和Cr)来指定活动源区 域678。因此,应当理解的是活动源区域678可实际上包括用于亮度 和色度样本的多个活动源区域。可基于从源缓冲器的基地址(0,0)680 偏移的偏移量而确定用于亮度和色度的活动源区域678的起点。例 如,可通过相对于基地址680的x偏移量686和y偏移量690来定义 用于亮度活动源区域的开始位置(Lm_X,Lm_Y)682。同样的,可 通过相对于基地址680的x偏移量688和y偏移量692来定义用于色 度活动源区域的开始位置(Ch_X,Ch_Y)684。应当注意的是,在本 例子中,分别用于亮度和色度的y偏移量688和692可以相等。基于 开始位置682,可通过宽度694和高度696来定义亮度活动源区域, 宽度694和高度696可分别表示在x和y方向上的亮度样本的数量。 另外,基于开始位置684,可通过宽度698和高度700来定义色度活 动源区域,宽度698和高度700可分别表示在x和y方向上的色度样 本的数量。

图57进一步提供了表示可如何在2平面格式中确定用于亮度和 色度样本的活动源区域的例子。例如,如图所示,可在第一源缓冲器 676(具有基地址680)中通过由相对于开始位置682的宽度694和 高度696所指定的区域来定义亮度活动源区域678。可在第二源缓冲 器702(具有基地址680)中通过相对于开始位置684的宽度698和 高度700所指定的区域来定义色度活动源区域704。

带着上述的思想回去参考图55,首先通过图像锐化逻辑660来 接收YCbCr信号438。图像锐化逻辑660可被配置为执行图片锐化 和边缘增强处理以增加图像中的纹理和边缘细节。将明了的是,图像 锐化可提高所感知的图像分辨率。然而,通常希望图像中的现有噪声 不被检测为纹理和/或边缘,从而在锐化处理期间不被放大。

依照本技术,图像锐化逻辑660可使用多尺度虚光蒙版滤波器对 YCbCr信号的亮度(Y)分量执行图片锐化。在一个实施例中,可 以提供具有不同尺度大小的两个或更多个低通高斯滤波器。例如,在 提供了两个高斯滤波器的实施例中,从具有第二半径(y)的第二高 斯滤波器的输出中减去具有第一半径(x)的第一高斯滤波器的输出 (例如高斯模糊)以生成虚光蒙版,其中x大于y。还可通过从Y输 入中减去高斯滤波器的输出来获得额外的虚光蒙版。在特定实施例 中,该技术还可提供自适应核阈值(coring threshold)比较操作,可 使用虚光蒙版来执行该操作,使得基于比较结果,可为基本图像增加 增益量以生成最终输出,其中该基本图像可被选择为初始Y输入图 像或高斯滤波器之一的输出。

参考图58,其表示依照此处公开的技术的实施例描述用于执行 图像锐化的示例性逻辑710的方框图。逻辑710表示可被应用到输入 亮度图像Yin的多尺度虚光蒙版。例如,如图所示,两个低通高斯滤 波器712(G1)和714(G2)接收并处理Yin。在该例子中,滤波器 712可以是3×3滤波器,滤波器714可以是5×5滤波器。然而应当明 了的是,在其他实施例中,还可以使用包括不同尺度的滤波器的多于 两个高斯滤波器(例如7×7,9×9等)。将明了的是,因为低通滤波 处理,可将一般对应于噪声的高频分量从G1和G2的输出中移除以 生成“虚光(unsharp)”图像(G1out和G2out)。如以下将讨论的, 使用虚光输入图像作为基本图像将会允许降噪作为锐化滤波器的一部 分。

可如下的定义3×3高斯滤波器712和5×5高斯滤波器714:

G1=G11G11G11G11G10G11G11G11G11256G2=G22G22G22G22G22G22G21G21G21G22G22G21G20G21G22G22G21G21G21G22G22G22G22G22G22256

仅作为示例,在一个实施例中可如下的选择高斯滤波器G1和G2的 值:

G1=282828283228282828256G2=9999991212129912161299121212999999256

基于Yin、G1out和G2out可以生成三个虚光蒙版Sharp1、 Sharp2和Sharp3。可通过从高斯滤波器712的虚光图像G1out中减 去高斯滤波器714的虚光图像G2out而确定Sharp1。因为Sharp1 本质上是两个低通滤波器之差,其可被称为“中间带(mid band)” 蒙版,因为更高频率的噪声分量已从G1out和G2out虚光图像中被 滤除了。另外,可通过从输入亮度图像Yin中减去G2out来计算 Sharp2,从输入亮度图像Yin中减去G1out来计算Sharp3。如以下 将描述的那样,可使用虚光蒙版Sharp1、Sharp2和Sharp3来应用 自适应阈值核方案。

参考选择逻辑716,可基于控制信号UnsharpSel来选择基本图 像。在所示的实施例中,基本图像可以是输入图像Yin或滤波输出 G1out或G2out。将明了的是,当初始图像具有高噪声方差时(例如 基本与信号方差一样高),使用初始图像Yin作为执行锐化的基本图 像可能无法在锐化期间充分地降低噪声分量。因此,当在输入图像中 检测到特定阈值的噪声含量时,选择逻辑716可被适配为选择已降低 了包括噪声在内的高频含量的低通滤波输出G1out或G2out中的一 个。在一个实施例中,可通过分析在ISP前端块80的统计处理期间 获取的统计数据来确定图像的噪声含量,以确定控制信号 UnsharpSel的值。作为示例,如果输入图像Yin具有低的噪声含 量,从而在锐化处理的结果中表现出的噪声可能不会增加,则输入图 像Yin可被选为基本图像(例如UnsharpSel=0)。如果输入图像Yin 被确定为包含明显的噪声水平,从而锐化处理可能放大这些噪声,则 可选择滤波后的图像G1out或G2out中的一个(例如分别地, UnsharpSel=1或2)。因此,通过应用用来选择基本图像的自适应技 术,逻辑710实质上提供降噪功能。

接着,依照如上所述的自适应核阈值方案,可将增益应用到 Sharp1、Sharp2或Sharp3蒙版中的一个或多个。接着,通过比较器 块718、720和722,可将虚光值Sharp1、Sharp2和Sharp3与多个 阈值SharpThd1、SharpThd2和SharpThd3(不必须是分别的)作 比较。例如,Sharp1值总是在比较器块718中与SharpThd1作比 较。关于比较器块720,阈值SharpThd2可与Sharp1或Sharp2作 比较,这取决于选择逻辑726。例如,选择逻辑726可根据控制信号 SharpCmp2的状态来选择Sharp 1或Sharp2(例如SharpCmp2=1 选择Sharp1;SharpCmp2=0选择Sharp2)。例如,在一个实施例 中,可根据输入图像(Yin)的噪声方差/含量来确定SharpCmp2的 状态。

在所示的实施例中,一般优选的是设置SharpCmp2和 SharpCmp3值以选择Sharp1,除非检测到图像数据具有相对低的噪 声量。这是因为Sharp1作为高斯低通滤波器G1和G2的输出之 差,其一般对噪声不太敏感,因此这可有助于降低在“嘈杂”图像数 据中因噪声水平的波动而导致的SharpAmt1、SharpAmt2和 SharpAmt3值的变化量。例如,如果初始图像具有高噪声方差,当 使用固定阈值时,一些高频分量可能没被捕捉到,因此可能在锐化处 理期间被放大。因此,如果输入图像的噪声含量高,则在Sharp2中 可能会出现一些噪声含量。在这种情况下,可将SharpCmp2设为1 以选择以上所述的中间带蒙版Sharp1,Sharp1由于是两个低通滤波 器输出之差,所以具有降低的高频含量,并且因此对噪声不太敏感。

将明了的是,类似的操作可应用到选择逻辑724在SharpCmp3 的控制下执行的Sharp1或Sharp3的选择。在一个实施例中, SharpCmp2和SharpCmp3被缺省的设置为1(例如使用Sharp1), 并且仅在输入图像被识别为一般具有低噪声方差时被设为0。这实质 上提供了一种自适应核阈值方案,其中比较值的选择(Sharp1、 Sharp2或Sharp3)是基于输入图像的噪声方差而自适应的。

基于比较器块718、720和722的输出,可通过对基本图像(例 如通过逻辑716选择的)应用增益虚光蒙版而确定经锐化的输出图像 Ysharp。例如,首先参考比较器块722,SharpThd3与选择逻辑724 提供的B输入作比较,B输入在这里被称为“SharpAbs”,并且基于 SharpCmp3的状态而可能等于Sharp1或Sharp3。如果SharpAbs 大于阈值SharpThd3,则将增益SharpAmt3应用到Sharp3,并且将 结果值加到基本图像上。如果SharpAbs小于阈值SharpThd3,则可 以应用衰减增益Att3。在一个实施例中,可如下的确定衰减增益 Att3:

Att3=SharpAmt3×SharpAbsSharpThd3---(72)

其中,SharpAbs是由选择逻辑724确定的Sharp1或Sharp3。可通 过选择逻辑728基于比较器块722的输出来执行对加上了完整增益 (SharpAmt3)或衰减增益(Att3)的基本图像的选择。将明了的 是,衰减增益的使用可应对SharpAbs不大于阈值(例如 SharpThd3),但是图像的噪声方差还是接近该给定阈值的情况。其 可有助于降低在锐利和不锐利像素之间的显著的转变。例如,如果在 这种情况下直接传递未使用衰减增益的图像数据,所得到的像素可能 表现为缺陷像素(例如亮点)。

接着,对比较器块720也可应用类似的处理。例如,根据 SharpCmp2的状态,选择逻辑726可提供Sharp1或Sharp2作为到 比较器块720的输入以与阈值SharpThd2作比较。如上所述,根据 比较器块720的输出,将增益SharpAmt2或基于SharpAmt2的衰减 增益Att2应用到Sharp2,并将其加入到以上所述选择逻辑728的输 出。将明了的是,可以按照与以上的等式72类似的方式来计算衰减 增益Att2,不同之处在于对SharpAbs应用的是增益SharpAmt2和 阈值SharpThd2,其中SharpAbs可被选择为Sharp1或Sharp2。

此后,增益SharpAmt1或衰减增益Att1被应用到Sharp1,并 且将结果值加上选择逻辑730的输出以生成锐化的像素输出 Ysharp。可基于比较Sharp1和阈值SharpThd1的比较器块718的 输出来确定是应用增益SharpAmt1还是应用衰减增益Att1这一选 择。同样,可通过与以上的等式72类似的方式来确定衰减增益 Att1,不同之处在于对Sharp1应用的是增益SharpAmt1和阈值 SharpThd1。使用三个蒙版中的每一个进行缩放所得到锐化像素值被 增加到输入像素Yin中以生成锐化的输出Ysharp,在一个实施例 中,可将锐化的输出Ysharp截短到10位(假设YCbCr处理以10 位精度进行)。

将明了的是,当与传统虚光蒙版技术相比时,本公开中所阐述的 图像锐化技术可以提供纹理和边缘的增强,同时还降低输出图像中的 噪声。特别是,本技术可以很好地适用于使用例如CMOS图像传感 器捕捉的图像(例如在低光照条件下使用集成在便携式设备(例如移 动电话)中的低分辨率相机所拍摄的图像)具有较差信噪比的应用。 例如,当噪声方差与信号方差可比时,对于锐化使用固定阈值是困难 的事,因为一些噪声分量会与纹理和边缘一起被锐化。因此如上所 述,此处所提供的技术可使用多尺度高斯滤波器来将噪声从输入图像 中滤除,以从虚光图像(例如G1out和G2out)中提取特征,从而 提供降低了噪声含量的锐化图像。

在继续之前,应当理解的是所示的逻辑710仅旨在提供本技术的 一个示例性实施例。在其他实施例中,图像锐化逻辑660可以提供额 外的或更少的特征。例如,在一些实施例中,逻辑710可简单的传输 基本值而不是应用衰减增益。另外,一些实施例可以不包括选择逻辑 块724、726或716。例如,比较器块720和722可分别简单地接收 Sharp2和Sharp3的值,而不是分别接收来自选择逻辑块724和726 的选择输出。虽然这些实施例可能没有提供如同图58所示的实施方 式一样鲁棒的用于锐化和/或降噪特征,应当明了的是这样的设计选 择是成本和/或商业相关限制的结果。

在本实施例中,一旦获得了锐化的图像输出YSharp,图像锐化 逻辑660还可提供边缘增强和色度抑制特征。以下将讨论这些附加特 征的每一个。首先参考图59,其表示依照一个实施例的可在图58所 示的锐化逻辑710的下游实现的用于执行边缘增强的示例性逻辑 738。如图所示,通过Sobel滤波器740来处理初始输入值Yin以进 行边缘检测。Sobel滤波器740可基于初始图像的3×3像素块(称为 “A”)(其中Yin是该3×3块的中心像素)来确定梯度值YEdge。在 一个实施例中,Sobel滤波器740可通过对初始图像数据进行卷积以 检测水平和垂直方向上的变化来计算YEdge。该处理如以下的等式 73-75所示:

Sx=10-120-210-1Sy=121000-1-2-1

Gx=Sx×A,        (73)

Gy=Sy×A,        (74)

YEdge=Gx×Gy,    (75)

其中Sx和Sy分别表示用于在水平和垂直方向上的梯度边缘强度检测 的矩阵算子,以及其中Gx和Gy分别表示包含水平和垂直变化导数的 梯度图像。因此可由Gx和Gy的乘积来确定输出YEdge。

如以上图58中所述,接着选择逻辑744可以接收YEdge以及中 间带Sharp1蒙版。基于控制信号EdgeCmp,在比较器块742中将 Sharp1或YEdge与阈值EdgeThd相比较。例如可根据图像中的噪 声含量来确定EdgeCmp的状态,从而提供用于边缘检测和增强的自 适应核阈值方案。接着比较器块742的输出可被提供给选择逻辑 746,并可应用完整增益或衰减增益。例如,当到比较器块742的所 选择的B输入(Sharp1或YEdge)大于EdgeThd时,将YEdge乘 上边缘增益EdgeAmt以确定将要应用的边缘增强的量。如果比较器 块742的B输入小于EdgeThd,则可应用衰减边缘增益AttEdge以 避免增强的边缘与初始像素之间的显著转变。将明了的是,可以通过 与以上的等式72所示的类似的方式来计算AttEdge,但是其中 EdgeAmt和EdgeThd被应用到“SharpAbs”,取决于选择逻辑744的 输出,SharpAbs可以是Sharp1或YEdge。因此,使用增益 (EdgeAmt)或衰减增益(AttEdge)而增强的边缘像素可被加入到 YSharp(图58的逻辑710的输出)以获得边缘增强的输出像素 Yout,在一个实施例中,Yout可被截短到10位(假设YCbCr处理 以10位精度进行)。

关于由图像锐化逻辑660提供的色度抑制特征,这种特征可在亮 度边缘处对色度进行衰减。一般来说,可通过应用小于1的色度增益 (衰减因子)来执行色度抑制,该色度增益取决于从以上所述的亮度 锐化和/或边缘增强步骤获得的值(YSharp,Yout)。作为示例,图 60表示包括曲线752的图表750,曲线752表示可以为相应的经锐化 的亮度值(YSharp)选择的色度增益。图750表示的数据可被实现 为YSharp值和相应的在0和1之间的色度增益(衰减因子)的查找 表。查找表被用来近似曲线752。对于同样位于查找表中的两个衰减 因子之间的YSharp值,可对与位于当前YSharp值之上和之下的 YSharp值相对应的两个衰减因子应用线性内插。此外,在其他实施 例中,输入亮度值还可被选择为如以上图58所述的由逻辑710确定 的Sharp1、Sharp2或Sharp3值中的一个,或者如图59所述的由逻 辑738确定的YEdge值。

接着,通过亮度、对比度和颜色(BCC)调整逻辑662来处理 图像锐化逻辑660(图55)的输出。图61表示BCC调整逻辑662 的一个实施例的功能性方框图。如图所示,逻辑662包括明亮度和对 比度处理块760、全局色相控制块762和饱和度控制块764。此处所 示的实施例提供对10位精度的YCbCr数据的处理,尽管其他实施 例可利用不同位深。以下讨论每个块760、762和764的功能。

首先参考明亮度和对比度处理块760,首先从亮度(Y)数据中 减去偏移量YOffset以将黑度设为0。这是为了保证对比度调整不会 改变黑度。接着,将亮度值乘上对比度增益值以应用对比度控制。作 为示例,对比度增益值可以是包括2个整数位和10个分数位的12位 无符号值,从而提供高达四倍于像素值的对比度增益范围。此后,可 通过向亮度数据增加(或减去)明亮度偏移值来实现明亮度调整。作 为示例,本实施例中的明亮度偏移量可以是具有-512至+512之间的 范围的10位的二进制补码值。此外,应当注意的是,在对比度调整 之后执行明亮度调整,以避免在改变对比度时发生DC偏移量的变 化。此后,初始的YOffset被加回到调整后的亮度数据以重定位黑 度。

块762和764提供基于Cb和Cr数据的色相特性的颜色调整。 如图所示,首先从Cb和Cr数据中减去512的偏移量(假设是10位 处理)以将范围大致定位到0。接着依照以下等式来调整色相:

Cbadj=Cb cos(θ)+Cr sin(θ),    (76)

Cradj=Cr cos(θ)-Cb sin(θ),    (77)

其中Cbadj和Cradj表示调整后的Cb和Cr值,以及其中θ表示色相 角,可如下的计算得到θ:

θ=arctan(CrCb)---(78)

以上操作都由全局色相控制块762内的逻辑来表示,并且可由以下矩 阵运算来表示:

CbadjCradj=KaKb-KbKaCbCr,---(79)

其中,Ka=cos(θ),Kb=sin(θ),θ在以上等式78中已定义。

接着,如饱和度控制块764所示,饱和度控制可被应用到Cbadj和Cradj值。在所示实施例中,通过为Cb和Cr值的每一个应用全局 饱和度乘子和基于色相的饱和度乘子来执行饱和度控制。基于色相的 饱和度控制可提高色彩的再现。颜色的色相可在YCbCr颜色空间中 表示,如图62中的颜色轮图770所示。将明了的是,可通过将相同 的颜色轮在HSV颜色空间(色相、饱和度和强度)中移位大约109 度而导出YCbCr色调和饱和度颜色轮770。如图所示,图表770包 括在范围0至1内的表示饱和度乘子(S)的圆周值,以及在0°至 360°范围内的表示以上定义的θ的角度值。每个θ可表示一种不同的 颜色(例如49°=品红,109°=红色,229°=绿色等)。可通过选择合适 的饱和度乘子S来调整在特定色相角θ处的颜色的色相。

回去参考图61,色相角θ(在全局色相控制块762中计算得到 的)可被用作用于Cb饱和度查找表766和Cr饱和度查找表768的 索引。在一个实施例中,饱和度查找表766和768可包括256个在 0-360°色相范围内均匀分布的饱和度值(例如第一个查找表条目在 0°,最后一个条目在360°),并且可以通过对查找表中刚刚低于和高 于当前色相角θ的饱和度值进行线性内插而确定给定像素处的饱和度 值S。可通过将全局饱和度值(可以是用于Cb和Cr的每一个的全 局对比度)乘上所确定的基于色相的饱和度值来获得用于Cb和Cr 分量的每一个的最终饱和度值。因此,如基于色相的饱和度控制块 764所示,可通过将Cbadj和Cradj乘上它们各自的最终饱和度值来确 定最终校正的Cb’和Cr’值。

此后,BCC逻辑662的输出被传送到YCbCr伽马调整逻辑 664,如图55所示。在一个实施例中,伽马调整逻辑664可提供Y、 Cb和Cr通道的非线性映射功能。例如,输入Y、Cb和Cr值被映 射到相应的输出值。再次,假设以10位来处理YCbCr数据,可以 利用内插型10位256条目查找表。可以提供三个这样的查找表,每 个用于Y、Cb和Cr信道之一。可均匀地分布256个条目的每一 个,并且可通过对映射到刚刚在当前输入索引之上和之下的索引的输 出值进行线性内插而确定输出。在一些实施例中,也可以使用具有 1024个条目(对于10位数据)的非内插型查找表,但其可能具有高 得多的存储器需求。将明了的是,通过调整查找表的输出值, YCbCr伽马调整功能可被用来执行特定图像滤波效果,例如黑白、 褐色调、负片、过曝等。

接着,色度抽选逻辑668可将色度抽选应用到伽马调整逻辑664 的输出。在一个实施例中,色度抽选逻辑668可被配置为执行水平抽 选以将YCbCr数据从4:4:4格式转换为4:2:2格式,其中以亮度数据 的速率的一半对色度(Cr和Cb)信息进行亚采样。仅作为示例,可 通过对7个水平像素组成的集合应用7抽头低通滤波器(例如半带 lanczos滤波器)来执行抽选,如下所示:

Out=C0×in(i-3)+C1×in(i-2)+C2×in(i-1)+C3×in(i)+C4×in(i+1)+C5×in(i+2)+C6×in(i+3)512,---(80)

其中,in(i)表示输入像素(Cb或Cr),以及C0-C6表示7抽头滤波 器的滤波系数。每个输入像素具有独立的滤波器系数(C0-C6)以允 许为色度滤波样本应用灵活的相位偏移。

此外,在某些情况下,还可不使用滤波来执行色度抽选。当初始 接收到的源图像是4:2:2格式,但其被上采样到了4:4:4格式以用于 YCbCr处理时,这是有益的。在该情况下,得到的抽选的4:2:2图像 与初始图像相同。

随后,在从YCbCr处理块418中输出之前,可使用缩放逻辑 670来缩放从色度抽选逻辑668输出的YCbCr数据。缩放逻辑670 的功能与如上参考图18所述的前端像素处理单元130的像素合并补 偿滤波器182中的缩放逻辑292的功能类似。例如,缩放逻辑670可 通过两个步骤来执行水平和垂直缩放。在一个实施例中,5抽头多相 滤波器可被用于垂直缩放,9抽头多相滤波器可被用于水平缩放。多 抽头多相滤波器可将从源图像中选择的像素乘上加权因子(例如滤波 器系数),并且接着对输出求和以形成目的像素。可根据当前像素位 置和滤波器抽头的数量来选择所选的像素。例如,对于垂直5抽头滤 波器,可以选择在当前像素的每个垂直侧的两个邻近像素,对于水平 9抽头滤波器,可以选择当前像素的每个水平侧的四个邻近像素。可 由查找表提供滤波系数,并可通过当前的像素间分数位置来确定滤波 系数。接着将缩放逻辑670的输出440从YCbCr处理块418输出。

回去参考图32,经处理的输出信号440可被发送到存储器108, 或者可作为图像信号114从ISP流水处理逻辑82中输出给显示硬件 (例如显示器28)以供用户观看,或输出给压缩引擎(例如编码器 118)。在一些实施例中,图像信号114可在被解压缩和提供给显示器 之前由图形处理单元和/或压缩引擎进一步处理并被存储。另外,还 可提供一个或多个帧缓冲器以控制输出到显示器的图像数据的缓冲, 特别是视频图像数据。

应当理解的是,此处仅以示例方式提供了以上所描述的各种图像 处理技术及涉及的缺陷像素检测和校正、镜头明暗校正、去马赛克和 图像锐化,等等。因此,应当理解的是本公开不应当被解释为仅限制 于以上所提供的例子。实际上,此处描述的示例性逻辑可在其他实施 例中经历多种变形和/或其他特征。此外,应当明了的是还可以通过 任何合适的方式来实现以上所述的技术。例如可使用硬件(例如恰当 配置的电路)、软件(通过包括存储在一个或多个有形计算机可读介 质上的可执行代码的计算机程序),或者通过硬件和软件元素的组合 来实现图像处理电路32的部件,尤其是ISP前端块80和ISP流水 块82。

以上所描述的特定实施例仅是作为示例,应当理解的是这些实施 例具有多种变形和替换形式。还应当理解的是权利要求不是旨在限制 于此处公开的特定形式,而是旨在覆盖落入本公开的精神和范围内的 所有修改、等同形式和替换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号