用于将曲线效果应用于数字图像的系统和方法转让专利

申请号 : CN200680047654.3

文献号 : CN101331774B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·J·怀特

申请人 : 微软公司

摘要 :

用于将曲线效果应用到数字图像上的系统、方法和计算机可读介质。多个曲线效果被选择来聚集。将曲线效果应用到测试像素值上。这个应用的输出被用来生成一聚集的查找表。该聚集的查找表被用来将曲线效果应用到数字图像上。

权利要求 :

1.一种将曲线效果应用于数字图像的方法,所述方法包括:

标识将要应用于所述数字图像的多个曲线效果,其中所述数字图像包括多个像素值,其中,曲线效果是由像素值经历的变换操作;

通过将所述多个曲线效果应用于具有多个测试像素值的测试图像来生成一聚集的查找表,其中所述生成包括将所述多个曲线效果连续应用于所述测试图像来生成与所述测试图像相关的结果图像,以便得到所述聚集的查找表,其中所述聚集的查找表将一输出像素值与所述多个测试像素值的至少一部分中的每一个测试像素值相关联;以及使用所述聚集的查找表以便通过标识出与所述多个测试像素值的至少一部分中的每一个测试像素值相关联的所述输出像素值来将所述多个曲线效果应用于所述数字图像。

2.如权利要求1所述的方法,其特征在于,所述多个曲线效果被选出以便利用一效果流水线来应用。

3.如权利要求2所述的方法,其特征在于,所述方法还包括对所述效果流水线重新排序以使得所述多个曲线效果在所述效果流水线中成为邻接的操作。

4.如权利要求1所述的方法,其特征在于,所述多个曲线效果中的至少一部分与一个或多个查找表相关联。

5.如权利要求4所述的方法,其特征在于,所述生成所述聚集的查找表包括访问所述一个或多个查找表中的至少一部分。

6.如权利要求1所述的方法,其特征在于,所述多个测试像素值包括每个可用像素值。

7.如权利要求1所述的方法,其特征在于,所述聚集的查找表是一图像。

8.如权利要求1所述的方法,其特征在于,所述方法还包括向用户呈现通过将所述多个曲线效果应用于所述数字图像而生成的输出图像。

9.一种用于聚集对具有多个像素值的数字图像的曲线效果应用的系统,,其中,曲线效果是由像素值经历的变换操作,所述系统包括:被配置成选择要被聚集的多个曲线效果的效果选择器;

被配置成通过将所述多个曲线效果应用于具有多个测试像素值的测试图像来生成一聚集的查找表的查找表生成器,其中所述聚集的查找表将一输出像素值与所述多个测试像素值的至少一部分中的每一个测试像素值相关联,其中所述多个测试像素值包括每个可用像素值;以及被配置成通过使用所述聚集的查找表来标识与所述多个测试像素值的至少一部分中的每一个测试像素值相关联的输出像素值以便将所述多个曲线效果应用于所述数字图像的聚集器。

10.如权利要求9所述的系统,其特征在于,所述查找表生成器通过访问与所述多个曲线效果中的至少一个相关联的至少一个查找表来生成所述聚集的查找表。

11.如权利要求10所述的系统,其特征在于,所述至少一个查找表是来自至少一个计算机程序的、传送到所述查找表生成器的图像。

12.如权利要求9所述的系统,其特征在于,所述测试图像是梯度图像。

13.如权利要求9所述的系统,其特征在于,所述聚集器还被配置成存储包括所述标识出的输出像素值的输出图像。

14.如权利要求13所述的系统,其特征在于,还包括被配置成向用户呈现所述输出图像的用户界面组件。

15.一种将曲线效果应用于数字图像的方法,所述方法包括:

标识多个曲线效果,其中,曲线效果是由数字图像的像素值经历的变换操作;

对一效果流水线重新排序以使所述多个曲线效果在所述效果流水线中成为邻接的操作;

通过使用多个查找表将测试像素值转换成输出像素值来生成一聚集的查找表,其中所述生成包括将所述多个曲线效果连续应用于所述测试图像来生成与所述测试图像相关的结果图像,以便得到所述聚集的查找表,其中所述聚集的查找表将所述测试像素值的至少一部分中的每一个测试像素值与所述输出像素值之一相关联;以及使用所述聚集的查找表以将所述多个曲线效果应用于所述数字图像;

其中,所述生成一聚集的查找表是由图像处理单元执行的。

16.如权利要求15所述的方法,其特征在于,所述方法还包括向用户呈现一输出图像。

17.如权利要求15所述的方法,其特征在于,所述测试像素值包括每个可用像素值。

18.如权利要求15所述的方法,其特征在于,所述聚集的查找表是一图像。

19.如权利要求15所述的方法,其特征在于,所述使用包括通过使用所述聚集的查找表将所述数字图像转换成一输出图像。

20.如权利要求19所述的方法,其特征在于,所述将所述数字图像转换成所述输出图像是由图形处理单元来执行的。

说明书 :

用于将曲线效果应用于数字图像的系统和方法

[0001] 背景
[0002] 包括图像处理程序包的图形处理应用程序的领域已拓宽和成熟到许多图像处理程序和工具能够调整一系列图像特性。广而言之,许多这些调整围绕改变数字照片或其它图像的颜色组成或改变主题图像或文件的曝光或光照特性。在每种类别的任务中,市场上可获得的程序通常提供改变图像的像素中红、绿或蓝(RGB)成分或青、紫、黄或黑(CMYK)成分颜色的相对大小。
[0003] 为了改变图像的颜色组成,与图像的像素相关联的颜色值必需经历一变换操作。这些变换可被称为效果。某些效果使用线性操作来改变像素值。例如,级别效果(levels effect)使用具有线性斜率的一阶曲线来改变像素数据。作为线性操作的另一个示例,通道混合器效果是一个颜色的三维矩阵通道映射。
[0004] 非线性操作也可用来改变图像的颜色组成。例如,曲线效果是非线性、单个像素通道的变换。这些曲线效果基于一维映射或“曲线”将每个像素的RGB通道数据映射至新的值。通常,每个通道对应独立的曲线。所以,对于单个曲线效果,红、绿和蓝色通道可能对应不同曲线。曲线效果可与控件一起使用来改变对比度、亮度、饱和度或曝光度。 [0005] 效果流水线(effect pipeline)被经常用来对图像进行修改。如本领域的技术人员所知,效果流水线涉及一系列顺序执行的图像处理步骤。效果流水线一般被设计为在利用可用硬件的同时允许有效地处理数字图像。例如,流水线可在专用图形处理单元(GPU)上执行重要的操作。如今的效果流水线被用来“无破坏性地”动态修改图像数据。 “无破坏性编辑”或“无破坏性处理”指的是其中从未改变的、原始加载的图像数据开始发生渲染的编辑(或处理)。每次做出一个变化,改变作为添加到流水线的末尾的一个或多个调整(或效果)被添加。因此,流水线反映了图像的修改 历史(或结果)。
[0006] 常规的效果流水线的一个限制是无破坏性编辑方法是不能确定量度的。在长的效果流水线中,曲线效果的应用会大大增加延迟和处理时间。当调整被应用到流水线开始处附近的效果时,这个结果被加剧。由于对每次渲染需要重新应用每个随后的效果,所以延迟可能粗略地与所涉及的效果数目成正比。为了减小这个延迟,相邻的线性操作可聚集到一单个过程。如本领域的技术人员所知,各线性操作可容易地被结合到一单个操作以增强性能。当各线性调整不相邻时,经常可对流水线重新排序以将它们聚集在一起。然而,曲线效果不是那么容易被结合的。事实上,当前本领域中没有任何技术用于聚集任意的非线性像素效果或甚至是任意的非线性“曲线”效果。因此,多个曲线效果降低效果流水线的性能,并且引起经常对用户来说是明显的延迟-经常太多,以致于它使得无破化性处理模型变得不能实行。
[0007] 概述
[0008] 本发明通过提供用于将曲线效果运用到数字图像的系统和方法而满足了以上的需要并克服了现有技术中的一个或多个缺陷。选择多个连续的曲线效果聚集到一效果流水线中。曲线效果被应用到测试像素值。该应用的输出被用来生成一聚集的查找表。该聚集的查找表被用来将曲线效果应用到该数字图像上。
[0009] 应该注意的是,提供本概述以便以简化的形式从总体上向读者介绍将在以下详细描述中描述的一个或多个选择的概念。本概述并非意在确定所请求保护的主题的关键特征或必要特征,也并非意在用来帮助确定所请求保护的主题的范围。
[0010] 附图简述
[0011] 参考附图,在以下详细地描述本发明,在附图中:
[0012] 图1是适用于实现本发明的示例性计算系统环境的框图;
[0013] 图2是示出一种用于将曲线效果应用到输入数据的示例性系统的示意图; [0014] 图3是示出一种用于将多个曲线效果应用到输入数据的示例性系统的示意 图; [0015] 图4是示出根据本发明的一个实施例的一种用于将诸曲线效果聚集在一效果流水线中的系统的示意图;
[0016] 图5A和5B是示出根据本发明的一个实施例的一种示例性效果流水线的示意图; [0017] 图6A和6B是示出根据本发明的一个实施例的一种应用多个曲线效果的系统的示例图;以及
[0018] 图7示出根据本发明的一个实施例的一种应用曲线效果的方法。
[0019] 详细描述
[0020] 专门描述本发明的主题以符合法定要求。然而,描述本身并非意在限制本专利的范围。相反,发明人预期到所请求保护的主题还可能结合其它现在或今后的技术以其它方式来实施,从而包括类似于本文档中所描述的步骤的不同步骤或步骤的组合。此外,尽管术语“步骤”在此处被用来暗指所采用的方法中的不同元素,但是除非并且除了当明确描述各个步骤的顺序时,该术语不应被解释为暗示此处所公开的各步骤之间的任何特定的顺序。此外,参考附图,在以下详细地描述本发明,其中全部附图通过引用被纳入于此。 [0021] 下面描述本发明的一个示例性操作环境。首先参考图1,示出一用于实现本发明的示例性操作环境并且一般被指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且并非意在暗示对本发明的使用或功能的范围的任何限制。也不应将计算环境
100解释为对于所示出的组件中的任何一个或其组合具有任何依赖或要求。
[0022] 可在计算机代码或机器可使用的指令的一般上下文中描述本发明,这些计算机代码或机器可使用的指令包括正被计算机或诸如个人数据助理或其它手持设备等其它机器执行的诸如程序模块等计算机可执行指令。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。可采用包括手持设备、消费类电子产品、通用计算机、更专用的计算设备(例如,照相机和打印机)等的各种系统配置来实施本发明。本发明还可在分布式计算环境中被实施,在该环境中,由通过通信网络 链接的远程处理设备执行任务。
[0023] 参考图1,计算设备100包括直接或间接耦合下列设备的总线100:存储器112、中央处理单元(CPU)114、一个或多个呈现组件116、输入/输出端口118、输入/输出组件120、说明性的电源122和图形处理单元(GPU)124。总线110表示可能是一个或多个的总线(诸如地址总线、数据总线或其组合)。尽管为了简明起见,采用线条来示出图1的各种框,但是,在现实中,描绘各种组件是不那么清楚的,并且采用比喻方式的话,这些线更精确地来说应该是灰色和模糊的。例如,有人可将诸如显示设备等呈现组件认为是I/O组件。此外,CPU和GPU具有存储器。我们认识到这是技术的本质,并重申,图1的图示对于可结合本发明的一个或多个实施例来使用的示例性计算设备是说明性的。没有在诸如“工作站”、“服务器”、“膝上型设备”、“手持式设备”等类别之间做出明确区分,因为这些全部被认为是在图1的范围内和对“计算设备”的引用范围内的。
[0024] 计算设备100通常包括各种计算机可读介质。作为示例,而非限制,计算机可读介质可包括随机存取存储器(RAM)、只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其它存储技术;CDROM、数字多功能盘(DVD)或其它光学或全息介质;磁带盒、磁带、磁盘存储或其它磁性存储设备、可用来对希望的信息进行编码并能被计算设备100访问的载波或任何其它介质。
[0025] 存储器112包括采用易失性和/或非易失性存储器形式的计算机存储介质。该存储器可以是可移动的、不可移动的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括能从诸如存储器112或I/O组件120等各种实体处读取数据的一个或多个处理器。(诸)呈现组件116向用户或其它设备展示数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。
[0026] I/O端口118允许计算设备100逻辑地耦合到包括I/O组件120等其它设备,这些端口中的某些可以是内置的。示例性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等。
[0027] 如先前所述,本发明的实施例提供用于将效果应用于数字图像的系统和方 法。本领域的普通技术人员将理解和意识到,此处所使用的术语“数字图像”指的是包括静态和/或动态数字图像以及其任何和所有组合或变型的任何数字图像数据。使用此处所描述的系统和方法,像素数据可按各种方式变换。
[0028] 为了应用效果,可使用有向无环图(“图”)或效果流水线。通过使用GPU、CPU或两者的某种组合可实现一个图。GPU不同于CPU的是,它们使用非常高速的存储器并且将它与能够很有效地针对像素数据处理简单计算的专用处理器耦合。GPU不是通用处理器。GPU可执行快速像素变换以及三维几何变换,其速度比CPU完成同样的任务的速度要快得多。这主要归因于一个事实,即尽管CPU能足以执行各种一般任务,但是它们没有针对任何特定操作而被优化,而GPU使用非常专门的硬件来执行图形处理任务。
[0029] 此处描述的数字图像处理模型体系结构(即,效果流水线或图)由在此处被称为效果的元素组成。此处所使用的术语“效果”是一基本的图像处理类。即,效果基本上是像素操作单元。它们接受像素数据的一个或多个缓冲、操控数据并输出修改后的像素。例如,锐化效果接受图像像素、锐化像素边缘并输出比接受的图像像素更锐的图像。在另一个示例中,颜色平衡效果接受图像像素数据、调整像素的颜色平衡并输出具有从所接受的像素中修改后的颜色平衡的图像。因此,效果的首要功能是处理像素。
[0030] 例如遮蔽(masking)、混合、旋转等不同的效果可被定义来实现各种图像处理算法。在某些实施例中,允许用户将预先定义的效果捆绑在一起来实现期望的结果。如果需要,用户还可定义新的效果来实现有趣的图像处理算法。效果可处理任何数量的输入图像并产生任何数量的输出图像。
[0031] 图2示出一种用于将曲线效果202应用到数字图像的系统200。输入像素数据204馈给曲线效果202。输入像素数据204可从数字图像中获得。数字图像由像素组成并且这些像素中的每一个可具有指示该像素颜色的值。例如,一个像素可具有指示红、绿和蓝色值的数据。
[0032] 当曲线效果202被应用到输入像素数据204时,各种像素的颜色值被转换成新的值以便反映曲线效果202的应用。为了进行这个转换,使用一曲线查找表206。查找表206为输入像素数据204中的每个像素值提供一输出值。例如,输入图像可具有红色通道值为5的一像素。为了将曲线效果202应用到该像素 的红色通道值上,在该查找表206中找到与值为5的红色输入相关联的输出值。该输出值被存储为输出像素数据208。在一个实施例中,查找表206是一个图像,并且进入的像素数据204的值被用来在曲线查找表206中找出输出值的地址。此外,系统200可包括多个查找表。对于具有三个颜色通道的图像,可使用三个单独的查找表。在一个实施例中,从应用程序中加载查找表206并且从诸如曝光修正、对比度或胶片响应(film response)等参数值中计算该查找表。如本领域的技术人员将意识到的,输入图像的每个像素值可被系统200转换成输出值。
[0033] 应该注意的是,可采用诸如查找表206等查找表进行任何数目的曲线和非曲线变换。这些变换被称为“表查找效果”。例如,将输入数据映射到输出数据的任意静态或动态效果可以是表查找效果。本领域的技术人员将意识到,尽管此处经常使用术语“曲线效果”,但是本发明不限于曲线效果,并且本发明可用来聚集任何数量的表查找效果。 [0034] 在应用一系列曲线效果的效果流水线中,每个输出图像馈给下一个曲线效果的输入。图3示出一种将一系列曲线效果应用到数字图像的系统300。输入像素数据302馈给曲线效果304。曲线效果304使用曲线查找表306来生成输出数据。顺序地,该输出数据被馈给曲线效果310并然后馈给曲线效果312。数据按曲线查找表306和曲线查找表314所指示的被转换。然后,最终输出像素数据316可被用来形成一输出图像,该输出图像反映曲线效果306、310和314对输入图像的应用。如本领域的技术人员将意识到的,大量的图像数据必须在系统300的每个阶段被映射,以供典型的图像处理请求。由于必须为每个颜色通道执行分别的查找表,所以一系列曲线效果查找表会很快消耗GPU(或CPU)的资源。 [0035] 如先前所述的,将多个效果聚集到单个变换中可改善数字处理应用程序的性能。图4示出一种将各曲线效果的应用聚集到一效果流水线中的系统400。该系统400包括曲线效果选择器402。该曲线效果选择器402可被配置成标识要被聚集的多个曲线效果。可从各种源中标识出曲线效果。例如,曲线效果选择器402可针对顺序效果扫描一图。此外,图像处理应用程序可基于各种输入和参数自动选择效果。
[0036] 曲线效果选择器402还可被配置成对效果流水线中的操作进行重新排序,这样,被标识出的效果被分组成相邻接的串。换言之,曲线效果选择器402可对图像处理步骤的顺序重新排序,这样,被标识的各效果中的每一个可在流水线中逐个发生。图5A和5B提供对效果流水线的这种重新排序的示例。图5A示出一示例性效果流水线500。效果流水线500从将要被处理的图像中接受输入像素数据502,并且第一效果(曲线效果504)被应用到数据502。随后,通道混合器506将线性操作应用到该数据502。在应用了曲线效果508和曲线效果510之后,图像处理结束。如果不对效果流水线500进行重新排序,则由于线性操作(通道混合器506)位于线性效果504和508之间,使得曲线效果504、508和510不能被聚集。图5B示出对曲线效果504、508和510重新排序而产生的效果流水线500。在重新排序后,首先执行线性操作(通道混合器506),并接着应用曲线效果504、508和510。如本领域的技术人员将意识到的,只要裁剪和像素比特深度不是限制性因素,则各非线性步骤(例如,曝光、颜色和对比度修正)可容易地作为邻接的步骤来应用,而其它非聚集步骤(例如,饱和、通道混合和锐化)被移到流水线的其它部分。与可互相交换的线性操作不同,对于非线性操作来说顺序有时是重要的,并且在某些情况下,重新排序不是可选的方案。 [0037] 返回到图4,系统400还包括查找表生成器404。查找表生成器404可被配置成生成一聚集的查找表,以用于聚集的效果的应用。类似于图2的曲线查找表206,聚集的查找表提供与一组输入值相关联的输出值。一般而言,聚集的查找表提供的输出是犹如输入像素数据分别馈给每个曲线效果而产生的输出。例如,取代使图像数据经受诸如图3的系统
300等系统的许多查找,聚集的查找表允许使用单组查找来应用多个曲线效果。可使用各种技术来生成聚集的查找表,并且随同图6A的讨论,提供一种用于生成该聚集的查找表的示例性系统。
[0038] 系统400还包括一曲线聚集器406。该曲线聚集器406被配置成通过使用聚集的查找表将多个曲线效果应用到数字图像上。来自数字图像的像素值被馈给聚集的查找表中,并且输出值被标识。组合这些输出值以形成反映曲线效果的应用的输出图像。为了显示该输出图像,系统400包括一用户界面组件408。 本领域的技术人员将意识到,尽管仅需要一组查找操作,但系统400生成的输出图像应该实质上完全等同于由图3的系统300所生成的输出图像。
[0039] 根据一个实施例,图6A和6B提供一种用于生成一聚集的查找表并使用该表将曲线效果应用到图像数据的示例性系统600。应该注意的是,系统600仅作为示例来提供并且可使用众多系统和方法来生成该聚集的查找表。
[0040] 系统600包括一测试图像602。在一个实施例中,测试图像602被设计成提供每个可用或可能的输入值。本领域中熟知的这种图像的示例是梯度图像。可用输入的数目随图像的分辨率而不同。例如,如果使用8比特来描述一颜色,则将会有256(28)种可能的输入值。在这种情况下,测试图像可包括256个输入值。作为另一个示例,对于16比特的分辨率,则有65,536(216即2562)种可能的输入值。所以,一个256×256图像可用来精确地捕捉每个可用输入。梯度图像还可用于浮动图像(float image)。在诸如此类情况中,有些值可要求来自曲线中的内插读数。按类似的方式,如果使用熟知的内插技术(例如,双线性或双三次)对结果进行内插将导致使用较少的测试图像采样点就能准确映射,则不是每个可能的输入值都必须存在于测试图像602中。
[0041] 测试图像602被馈给曲线效果604,并且曲线查找表606用来将该测试图像602转换成一输出图像。接着,该输出图像被输入到曲线效果608中,这样它将如照曲线查找表610所确定的被改变。然后,通过使用曲线查找表614应用第三曲线效果(曲线效果612)。
曲线效果612的输出被存储为一聚集的查找表616。通过将测试图像602与聚集的查找表
616进行相关,可确定曲线效果604、608和612是如何改变每个可用像素值的。因此,聚集的查找表616是将输入值与输出相关联的曲线查找表。
[0042] 转到图6B,系统600可使用聚集的查找表616以作为将曲线效果604、608和612应用到图像数据的输入。曲线效果聚集器618被配置成接收输入像素数据620。如先前所述,聚集的查找表616具有针对每个可能的输入值的输出值。因此,可通过曲线效果聚集器618将输入像素数据620转换成输出像素数据622。输出像素数据622可存储为反映曲线效果604、608和612到输入图像上的应用的输出图像。如本领域的技术人员将意识到的,采用曲线效果聚集器618来应用多个曲线效果可减少应用这些效果所必需的时间和资源。 [0043] 图7示出一种将曲线效果应用到数字图像上的方法700。在702处,方法700标识效果流水线中的多个曲线效果。在704处,方法700对效果流水线重新排序以使得标识出的各效果成为流水线中的邻接的操作。
[0044] 在706处,方法700生成一聚集的查找表。在一个实施例中,方法700将标识出的曲线效果应用到一组测试像素上。该测试像素通过效果流水线被馈给,并使用最终输出像素来创建该聚集的查找表。
[0045] 在708处,方法700使用该聚集的查找表以便将标识出的曲线效果应用到数字图像上。取代使输入图像经受针对每个所选择的效果的查找的做法,方法700使用聚集的查找表来应用多个效果,就好像只应用一个效果一样。输入图像的像素值被转换成输出像素。在710处,方法700将这些输出像素呈现为一输出图像。
[0046] 当审阅包括附图的说明书时,本发明的替换实施例和实现将对涉及本领域的技术人员变得明显。因此,本发明的范围由所附的权利要求而不是以上的描述来定义。