技术领域
[0001] 本发明涉及用于处理图像数据的方法和装置。
相关背景技术
[0002] 图像传感器通常能够以比可由人类视觉系统感知的动态范围更小的动 态范围来捕获场景的图像,其中动态范围例如是图像内的最亮像素和最暗 像素的像素强度之间的比率。例如,人眼可感知超过55dB的动态范围, 然而图像传感器可以具有介于35dB与45dB之间的动态范围。当与由人类 实时地感知这样的场景相比较时,因此可以在由图像传感器捕获的图像中 降低高动态范围场景(诸如具有运动的室外场景或具有亮光的夜间场景) 的图像的质量。此外,成像系统(诸如透镜系统)的结构可导致光远离图 像的中心逐渐下降。
具体实施方式
[0016] 从参考图的以下描述中,根据示例的系统和方法的细节将变得显而易 见。在本描述中,出于说明的目的,阐述了某些示例的许多具体细节。在 本说明书中对“一个示例”或类似语言的引用意味着连同该示例一起描述 的特征、结构或特性被包括在至少该一个示例中,但是不一定在其他示例 中。应该进一步注意的是,为了易于说明并理解作为示例基础的构思,某 些示例被示意性地描述,同时某些特征被省略和/或必定简化。
[0017] 图1示意性地示出根据示例的处理图像数据110的方法100。图像数据 110表示图像的至少一部分并且可以使用图像传感器来捕获。图像传感器 通常包括传感器像素的阵列,所述传感器像素可以是用于捕获图像的任何 适合的光电传感器。例如,典型的传感器像素包括诸如光电二极管这样的 光敏元件,所述光电二极管可将入射光转换成电子信号或数据。传感器像 素可以例如是电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)。 曝光通常设置由图像传感器的每个传感器像素捕获光的时间段和/或由放大 器应用于通过每个传感器像素所生成的电信号的增益。图像传感器对入射 光的灵敏度因此通常通过曝光来确定。在图1的示例中,图像传感器可以 被布置为使用单次曝光来捕获图像数据110。例如,图像传感器的所有传 感器像素都可以在同一时间段期间或者在长度彼此相同的时间段期间捕获 光。然而,在其他示例中,与本文描述的示例一起使用的图像传感器可以 是多次曝光图像传感器,其被布置为使用具有至少两个不同的曝光的传感 器像素来捕获图像数据110。
[0018] 图像数据110例如可以表示由图像传感器捕获的光的至少一种特性。 图像数据110可以表示由每个传感器像素捕获的光的强度,所述强度可以 与由每个传感器像素捕获的光子的数量成比例。强度可以表示所捕获的光 的辉度,其例如是每单位面积的光的强度的量度而不是绝对强度。在其他 示例中,图像数据110可以表示捕获的光的亮度,所述亮度可以被认为对 应于辉度的感知,其可以或者可以不与辉度成比例。通常,图像数据110 可以表示可以用于表示通过图像数据110所表示的图像的视觉外观的任何 光度质量或特性。
图像数据110可以具有任何适合的格式,诸如原始图像 格式。例如,图像数据110可以在被保存到帧缓冲器情况下或者在不用被 保存到帧缓冲器的情况下被从图像传感器流式传输,而不用将原始图像数 据保存到文件。在此类情况下,然而,可以将在处理原始图像数据之后获 得的图像数据110保存到文件。
[0019] 在一些示例中,图像传感器可以包括滤色器阵列,所述滤色器阵列包 括滤色器元件的图案。滤色器元件对应于图像传感器的传感器像素的阵列 的相应的传感器像素。例如,滤色器阵列可以被认为形成马赛克或重复图 案。滤色器元件通常允许特定颜色的光通过到所对应的传感器像素。以这 种方式,滤色器阵列允许传感器像素的阵列的不同的传感器像素接收不同 的颜色的入射光,从而允许捕获全色图像。因为典型的光电传感器对传入 光的波长不敏感,所以典型的传感器像素将不能在没有滤色器阵列的情况 下从所检测到的光中提供颜色信息。然而,通过使用滤色器阵列来将传入 光分成与不同的颜色相对应的不同的波长范围,可探知这些不同的波长范 围中的光的强度,从而允许确定此颜色信息。
[0020] 应当领会的是,颜色可以指代光的波长的任何范围。例如,清晰的、 透明的或白色滤色器元件在该滤色器元件允许可见光谱中的这些特定波长 (诸如所有或基本上所有)波长被透射到底层传感器像素的意义上可以仍 然被认为是滤色器元件。在其他示例中,滤色器元件中的一些或全部可以 是非白色滤色器元件。
[0021] 滤色器元件的图案可以由滤色器元件的重复组形成。滤色器元件的组 可以例如包括红色滤色器元件、蓝色滤色器元件和两个绿色滤色器元件。 滤色器阵列因此可以对应于拜耳图案,但是在其他示例中其他组是可能的。 每个组可以与必要的传感器像素对应以获得适合质量的全色图像。在图2 中示出了通过传感器使用滤光器的这种布置所捕获的图像数据110的示例。
[0022] 图2的图像数据110包括与第一颜色通道(其在此示例中为绿色)相 关联的第一组像素、与第二颜色通道(其在此示例中为红色)相关联的第 二组像素以及与第三颜色通道(其在此示例中为蓝色)相关联的第三组像 素。第一组像素中的像素用‘G’标记,第二组像素中的像素用‘R’标记, 而第三组像素中的像素用‘B’标记。在此示例中,滤色器阵列的滤色器 元件被按照拜耳图案(如上所述)布置在一系列重复组中。拜耳图案或拜 耳滤光器马赛克是与滤色器相结合地使用图像传感器来获得的,其中滤光 器元件被按照拜耳图案布置。拜耳图案包括滤光器元件的重复组,所述滤 光器元件包括一个蓝色滤光器元件、两个绿色滤光器元件和一个红色滤光 器元件,如可通过区域210所示的。因此,从具有滤色器元件的拜耳图案 的图像传感器获得的图像将具有也按照拜耳图案(其例如包括一个蓝色像 素、两个绿色像素和一个红色像素的重复组)布置的像素。因此,在此示 例中,每个组包括第一组像素中的两个像素、第二组像素中的一像素和第 三组像素中的一像素。应领会的是,可以使用其他滤光器布置,诸如红色、 绿色、蓝色、翡翠(RGBE)或青色、黄色、绿色、品红色(CYGM)滤 光器布置。
[0023] 返回参考图1,方法100涉及处理由图像传感器收集的图像数据110以 便通过利用与和该图像传感器相关联的透镜系统有关的透镜遮光的效果来 扩展输入场景的图像数据110的可编码动态范围。透镜遮光或渐晕 (vignetting)可以具有许多原因。例如,物理障碍物可以防止视场内的光 到达相机图像传感器。物理障碍物可以是由透镜镜筒、滤光器、透镜遮光 罩或其他任何方式引起的,从而防止光到达透镜。这样的物理障碍物使强 暗圆形变暗在图像的角部中明显。其他示例包括光学渐晕,所述光学渐晕 可以是由光以强角度击中透镜光圈而引起的。可以在用与大光圈一起使用 的广角和大光圈透镜拍摄的图像上最经常注意到这种效果。透镜遮光的另 一个原因是像素渐晕,如上面所说明的那样包括测量/记录击中它们的光的 大量像素的图像传感器也具有深度。当光未击中像素它本身的背面时,这 也可引起渐晕效果。
[0024] 在方法100的项目120处,针对图像数据110的全体生成渐晕校正网 格,该校正网格例如可以是已针对特定透镜系统或图像传感器生成的预先 校准的输入。可替代地,校正网格可以由处理器(诸如在下面关于图7描 述的处理器)生成。校正网格用于调整图像数据110的像素的值,例如以 去除或者减小透镜遮光的效果。在一个方法中校正网格可以通过将图像数 据110中的像素值乘以亮度梯度的分布的倒数来实现这个。示例性渐晕校 正网格被示出在图3中。
[0025] 图3的渐晕校正网格300包括按照阵列布置的多个区域310a、310b、 310c,这些区域310a、310b、310c表示图像数据110中的像素。每个区域 310a、310b、310c包括用于调整图像数据110的像素值的调整值。在图3 的示例中,每个区域的值介于1与2之间,然而应领会的是在其他示例中, 这些区域可以具有大于1的值。在此示例中,值越接近于1,校正网格将 对像素值具有的影响越低,值越接近于2,校正网格将对像素值的影响越 高。如可在图3中看到的,校正网格朝向中心具有较低值(如通过区域320 所指示的),这如上面所说明的那样与透镜遮光的原因有关并且表示像素 值受渐晕影响最小的区域。
[0026] 渐晕校正网格可以是预先校准的输入,例如用于特定图像传感器的已 知校正网格。可替代地,渐晕校正网格可以作为图1的方法100的一部分 由处理器(诸如图像信号处理器)生成。为了生成渐晕校正网格,在一些 实施例中,可以捕获在已知照明条件下的平场图像并然后使它反转以生成 每颜色通道渐晕校正网格。在一些实施例中,然后可以计算适当的白平衡 系数并将它们应用于校正网格以计算单个强度网格(有效地为白平衡渐晕 校正网格)以组合来自不同的颜色通道的数据。然后可以使用此网格来扩 展可被捕获并保留在图像信号处理器的输出中的输入场景的动态范围。在 一些实施例中,可以在逐帧基础上通过软件来修改或者替换预先校准的渐 晕校正网格。
[0027] 返回到图1,在项目130处生成强度压缩曲线。这样的曲线的示例被 示出在下图6中。为了生成强度压缩曲线,首先可以生成局部最大输出强 度。为了生成局部最大输出强度,评估图像数据110的预定区域。评估区 域可以包括将渐晕校正网格的一部分(诸如图3的网格300)应用于图像 数据110的一部分。在图4中示出了这个的示例。
[0028] 图4示出对与渐晕校正网格300的对应校正部分420组合的图像数据 110的图像部分410的评估。应领会的是在某些示例中,渐晕校正网格300 的校正部分420当与图像数据110的图像部分410相比较时可以不是对应 部分。
[0029] 如图4中所示,图像部分410和校正部分420被组合以产生校正后的 图像部分430。经校正后的图像部分430表示图像部分410的中心像素410c 的局部白水平。也就是说局部校正后的图像部分表示中心像素410c处的点 源的最大可表示强度。
[0030] 图5示出在应用诸如图像处理方法100这样的图像处理方法之前的图 像数据的强度曲线500。强度曲线500示出沿着x轴的一系列输入值和沿着 y轴的一系列输出值,其中输出值表示图像信号处理器的输出。输入值表 示由输入设备(诸如图像传感器)捕获的图像数据(诸如图像数据110)。 如图5中所示,输入数据和输出数据具有基本上线性的关系,如510a处所 指示的,但是应领会的是,在一些实施例中,输入和输出数据可以具有基 本上非线性关系。输入和输出值在一些示例中可以超出输出值1,其中1是 最大输出。在归一化过程期间,通常遵循510b处指示的关系映射到大于1 (诸如m,其映射到m’)的输出的任何输入值可以在标准图像信号处理器 流水线中被削波回到1。也就是说输入值m将如通过点530所指示的那样 被削波到1。因此,输入与输出之间的关系通常遵循510a和510c,其中在 通过
520表示的输出值1处存在曲折点或拐点。校正(诸如图5中所示的 校正)通常导致存在于输入图像数据中各处但是当与在任何调整和/或校正 之前的输入图像数据相比较时在最中心处的信息的丢失。当图像强度如图 5中所示的那样被削波时,这导致高光的削波,因此导致存在于输入图像 数据中的动态范围的丢失。这可以是场景相关的,并且只有当在渐晕校正 之后发生此削波时才可能发生输入的动态范围的保留。方法(诸如图1的 方法100)使得输入图像数据能够在图像信号处理器的输出中保留其最高 动态范围内容。
[0031]
[0032] 图6示出通过图1的方法100基于上述图像数据110和渐晕校正网格 300的组合而生成的强度压缩曲线600。
[0033] 强度压缩曲线600示出沿着x轴的一系列输入值和沿着y轴的一系列 输出值,例如输出值可以表示由图像信号处理器确定的输出。如上面关于 图5所说明的,输入值表示由输入设备(诸如图像传感器)捕获的图像数 据,诸如图像数据110。输出值表示处理器(诸如图像信号处理器)的输 出。
[0034] 强度压缩曲线600中所示的输入表示从0到局部白水平L的输入值的 范围,表示在中心像素(诸如3x3区域的中心像素)处的点源的最大可表 示强度。可以如上面关于图4所描述的那样确定局部白水平L。局部白水 平值L被映射到表示如640处所示的处理器(诸如图像信号处理器)的最 大输出值的输出值1。强度压缩曲线600可以包括基本上线性部分,其中 输入值映射到对应的输出值,使得输入值等于输出值,如通过强度曲线的 第一段610a所表示的。第一分段/部分610a继续到预定义输入值。例如, 第一分段610a表示第一点(即零)与第二点620之间的输入值。在一些示 例(诸如图6中所示的强度压缩曲线600)中,此第一分段610a可以表示 局部白水平L的60%,并且优选地适用于输入值的至少50%,介于零与局 部白水平L之间。但是强度压缩曲线600的第一分段610a可以适用于输入 的任何百分比。应领会的是,局部白水平L可以适用于图像数据的任何部 分,并且在一些实施例中可以取决于图像传感器。类似地,第一分段610a 不需要是基本上线性的而是可以为非线性的。
[0035] 强度压缩曲线600的第二分段610b表示输入值的剩余部分,例如如图 6中所示,第二点620与局部白水平L之间的值。然而,应领会的是在其 他示例中,第一分段610a和第二分段610b可以表示强度压缩曲线600的 不同的比率。
[0036] 强度压缩曲线600的第二部分610b示出针对第二点620上方的值的映 射。这些值被压缩和/或缩放,使得作为局部白水平L的最高值映射到最大 输出,诸如1,如通过点640所指示的,并且剩余值(第二点620与局部白 水平L之间的那些值)被按比例缩放以便适合在通过点620所指示的输出 值与输出值1之间。虽然图6中描绘的第二部分610b示出通常线性的段, 但是应领会的是,第二部分610b可以是非线性的。
[0037] 例如,如上面关于图5所提及的m处的输入将通常被削波回到1,从 而减小在输出中表示的输入的动态范围。在图6中所示的实施例中,由此 输出的一部分被缩放和/或压缩,输出m将映射到m’,由此m’小于1。 输入m将经由第二部分610b强度压缩曲线在点630处映射到m’。映射第 二点620上方的值使得它们被转换为1或以下的输出意味着可一直跨越图 像维持图像的最高动态范围内容到ISP的输出,而不只基本上在中心中, 如同图5中所示的示例一样。
[0038] 返回到图1,在项目140处,强度压缩曲线(诸如图6的曲线600)用 于调整输入图像数据(诸如图像数据110)的像素值以产生输出,其中已 在空间上调整了在输出中编码的输入动态范围,使得输出数据表示输入图 像数据110的完全动态范围。这可以通过使用曲线600来针对特定输入值 计算输出值来实现。例如,输入值m将经过点630经由压缩曲线600的第 二部分610b被映射到m’。
[0039] 在图1的项目150处,输出经调整后的像素值。这可以涉及将经调整 后的值输出到系统(诸如在下面关于图8描述的系统)的存储装置,或者 可替代地,可以将经调整后的像素值输出到显示器(未示出)以用于呈现 给用户。
[0040] 图7示出与改变图像数据的输入动态范围的方法一起使用的处理器700, 所述输入动态范围被编码在方法(诸如图1的方法100)的输出中。处理 器700可以是中央处理单元(CPU)、图像信号处理器(ISP)、图形处理 单元(GPU),或诸如微处理器、通用处理器、数字信号处理器(DSP)、 专用集成电路(ASIC)、现场可编程门阵列(FPGA)、神经网络加速器 (NNA)、神经网络处理器(NNP)这样的替代处理器,或其他可编程逻 辑器件、分立门或晶体管逻辑、分立硬件组件,或被设计来执行本文描述 的功能的其任何适合的组合。
[0041] 处理器700包括用于生成在调整图像数据(诸如图像数据110)时使 用的分量的生成模块710。生成模块110包括渐晕校正网格模块720和强度 压缩曲线计算模块730。
[0042] 渐晕校正网格模块720生成/计算渐晕校正网格,诸如图3中所示的渐 晕校正网格300,并且将它应用于图像数据110,以产生如图4中所示的调 整后的输出430。类似地,强度压缩曲线计算模块730生成强度压缩曲线, 诸如图6中所示的强度压缩曲线600。
[0043] 然后在调整模块740中处理由生成模块710生成的分量,包括渐晕校 正网格(诸如网格300)和强度校正曲线(诸如曲线600)。调整模块740 将强度压缩曲线600应用于输入图像数据(诸如图像数据110),并且产 生扩展可在输出处保留的输入内容的动态范围的输出。
[0044] 可以使用图像处理系统800(诸如图8中示意性地示出的图像处理系 统)来实现本文描述的示例。
[0045] 图8的图像处理系统800包括图像传感器810,诸如上述的那些。在图 像传感器810处接收到的光被转换为图像数据,诸如图像数据110。图像 数据被转移到处理器700,诸如上面关于图7描述的处理器700,其通常被 配置为生成表示输出图像的至少一部分的输出图像数据。输出图像数据可 以在被转移到其他组件(未示出)例如以供存储或进一步处理之前经由编 码器820被编码。如上所述,处理器700通常包括被配置为对图像数据执 行各种处理以生成输出图像数据的许多模块或单元。处理器(诸如图8的 处理器700)可以包括中央处理单元(CPU)、图形处理单元(GPU)、 图像信号处理器(ISP)、微处理器、通用处理器、数字信号处理器 (DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他 可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件,或被设计来执行 本文描述的功能的其任何适合的组合。还可以将处理器实现为计算设备的 组合(例如,DSP和微处理器的组合)、多个微处理器、与DSP核心结合 的一个或多个微处理器或任何其他这样的配置。
[0046] 图8的示例中的处理器700被布置为执行渐晕校正过程以扩展保留在 输出(诸如本文描述的输出)中的输入图像数据的动态范围,并且因此可 以被认为包括图像处理系统800。可以将用于在图像处理系统800中使用 或者作为图像处理系统800的一部分生成的数据存储在图像处理系统800 的存储装置830中。存储装置830可以包括易失性存储器(诸如随机存取 存储器(RAM))和非易失性存储器(诸如只读存储器(ROM)或诸如 闪速存储器这样的固态驱动器(SSD))中的至少一个。存储装置830例 如是可以由图像信号处理器700相对快速地访问的片上存储器或缓冲器。 但是,在其他示例中,存储装置830可以包括另外的存储设备,例如磁、 光学或磁带介质、紧致盘(CD)、数字通用盘(DVD)或其他数据存储 介质。存储装置830可以是从图像处理系统800可移除的或不可移除的。 图8中的存储装置830通信地耦合到处理器700,使得可在存储装置830与 处理器700之间转移数据。存储装置830可以如上所述存储表示图像的至 少一部分的图像数据和输出数据。
[0047] 图8的图像处理系统800还包括用于控制图像传感器810的特征或特 性的控制器840。控制器840可以包括硬件或软件组件或硬件和软件的组 合。例如,控制器840可以包括固件842,所述固件842包括用于控制控制 器840的操作的软件。固件842可以被存储在控制器840的非易失性存储 器中或者存储在存储装置830(其可被控制器840访问)中。图8的控制器 840还包括自动图像增强系统844,所述自动图像增强系统844例如被配置 为执行处理以确定是否需要对图像处理系统800进行调整以改进图像质量。 例如,自动图像增强系统844可以包括自动曝光模块、自动白平衡模块和/ 或自动聚焦模块。控制器840还包括用于控制图像传感器810的操作的驱 动程序846。
[0048] 可以使用硬件(诸如控制器840的或处理器700的硬件)来执行扩展 可在输出中表示的图像数据的动态范围的渐晕校正过程。
[0049] 上述示例中的处理步骤的次序仅仅是示例。在其他示例中,可以按照 不同的次序执行这些处理步骤。
[0050] 应当理解的是,关于任何一个示例描述的任何特征可以被单独使用, 或者与所描述的其他特征相结合地使用,并且还可以被与任何其他示例或 任何其他示例的任何组合的一个或多个特征相结合地使用。此外,在不脱 离所附权利要求的范围的情况下,还可以采用上面未描述的等同物和修改。