具体实施方式
在以下对各种说明性实施例的描述中,对附图作出引用,附图作为本发明的一部分,并以说明可实践本发明的各种实施例的方式示出。可以理解,在不脱离本发明的范围的情况下可以使用其它实施例并可以作出结构和功能上的更改。
图1示出了色彩管理解决方案100的框图。图1示出了包括多媒体应用程序120的主机110。主机110耦合至数码相机130和打印机140。通过多媒体应用120处理来自数码相机130的输入色彩对象数据,并输出到打印机140。在色彩管理解决方案100中,诸如摄影师等系统的用户可使用数码相机130拍摄一个物体的照片,并在打印机140上打印出该照片的图像。然而,在色彩管理解决方案100中,摄影师无法分辨是多媒体应用程序120还是打印机140在执行任何色彩管理,还是两者都在执行色彩管理。
图2是耦合至各种设备的计算机图形处理系统201的示意图。如图2所示,计算机图形处理系统201包括图形引擎214,它负责控制并执行各种计算机图形和色彩操作。图形库212包括大量的基于矩阵且基于查阅表(LUT)的数据文件。图形库212可以包括在应用程序230中,或如图2所示单独地定义。图形库212可包括用于与各种组件和/或销售商产品交互的应用编程接口(API)。计算机图形处理系统210还包括存储器或存储空间216以及配置文件组件218。配置文件组件218本质上是LUT,它具有一组对应于设备控制信号的条目以及另一组对应于该控制信号所生成的实际色彩的条目。
计算机图形处理系统201的配置文件组件218被分成不同的类,如输入配置文件(描述扫描仪和数码相机)、显示配置文件(描述监视器和LCD显示器)和输出配置文件(描述打印和印刷机)。配置文件218通常包含关于描述诸如打印机255等设备如何操作的三个变量的信息。这些值包括设备的色移、设备的动态范围以及设备的色调再现特性。其它配置文件218包括关于用于处理色移失常颜色的指令的信息、更详细的色调再现信息或其它设备特定信息。
接口220是准许计算机图形处理系统201的用户输入要完成和/或执行的色彩管理输入参数的用户接口。应用程序230可包括API。应用程序230是处理各种色彩管理变量的平台。应用程序230具有设置和函数,允许用户指定源和目标配置文件并执行变换或可选地将变换推迟到诸如打印机255等目标设备。如图所示,应用程序230使用各种图形接口API 282、284、286和288操作。图形接口API 282-288可包括各种多媒体API、产品特定API和/或销售商特定API。计算机图形处理系统201的应用程序230允许任一图形接口API 282-288访问硬件单元,允许每一API对其它API未知的每一特定参数对图像和/或对象进行色彩管理。在计算机图形处理系统201中,一个图形接口API 282与另一图形接口API 284、286或288完全无关地执行色彩管理解决方案。
仅作示例,计算机图形处理系统201包括三个设备驱动器,即数码相机设备驱动器240、打印机设备驱动器250和显示器设备驱动器260。每一设备驱动器耦合至应用程序230。每一设备驱动器对每一设备是特定的,并允许在诸如显示器265等设备和计算机图形处理系统201之间的操作和兼容性。耦合至每一设备驱动器的是对应的设备,数码相机245耦合至数码相机设备驱动器240,打印机255耦合至打印机设备驱动器250,显示器265耦合至显示器设备驱动器260。
在计算机图形处理系统201中,任一图形接口API 282-288可访问硬件以执行和/或实现具体的色彩管理解决方案,如过程、政策和/或协议。在不同的图形接口API 282-288之间没有协调。因此,在不允许用户知道哪一色彩管理已完成、色彩管理在何处执行和/或谁实际执行了色彩管理的情况下,要进行色彩管理的一部分数据可多次被进行色彩管理,或者完全不被管理。
图3示出了适合在其中实现本发明的计算系统环境300的一个示例。计算系统环境300仅为合适的计算环境的一个示例,并非对本发明的使用或功能的范围提出任何局限。也不应将计算环境300解释为对示例性操作环境300中示出的任一组件或其组合具有依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明可以在计算机可执行指令的一般上下文环境中描述,计算机可执行指令如由计算机执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质中,如存储器存储设备。
参考图3,用于实现本发明的示例系统包括以计算机310形式的通用计算装置。计算机310的组件可包括但不限于,处理单元320、系统存储器330以及将包括系统存储器的各类系统组件耦合至处理单元320的系统总线321。系统总线321可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的本地总线。作为示例而非局限,这类结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)本地总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机310通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机310访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质,信息如计算机可读指令、数据结构、程序模块或其它数据。计算机存储媒质包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机310访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
系统存储器330包括以易失和/或非易失存储器形式的计算机存储媒质,如ROM 331和RAM 332。基本输入/输出系统333(BIOS)包括如在启动时帮助在计算机310内的元件之间传输信息的基本例程,通常储存在ROM331中。RAM332通常包含处理单元320立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图3示出了操作系统334、应用程序335、其它程序模块336和程序数据337。
计算机310也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图3示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器340、对可移动、非易失磁盘352进行读写的磁盘驱动器351以及对可移动、非易失光盘356,如CD ROM或其它光媒质进行读写的光盘驱动器355。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器341通常通过不可移动存储器接口,如接口340连接到系统总线321,磁盘驱动器351和光盘驱动器355通常通过可移动存储器接口,如接口350连接到系统总线321。
图3讨论并示出的驱动器及其关联的计算机存储媒质为计算机310提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图3中,示出硬盘驱动器341储存操作系统344、应用程序345、其它程序模块346和程序数据347。注意,这些组件可以与操作系统334、应用程序335、其它程序模块336和程序数据337相同,也可以与它们不同。这里对操作系统344、应用程序345、其它程序模块346和程序数据347给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如数码相机363、键盘362和定位设备361(通常指鼠标、轨迹球或触摸板)向计算机310输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口360连接至处理单元320,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器391或其它类型的显示设备也通过接口,如视频接口390连接至系统总线321。监视器391也可以与触摸屏面板或其类似物组合。除监视器之外,计算机也可包括其它外围输出设备,如扬声器397和打印机396,通过输出外围接口395连接。
计算机310可以在使用到一个或多个远程计算机,如远程计算机380的逻辑连接的网络化环境中操作。远程计算机380可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机310相关的元件,尽管在图3中仅示出了存储器存储设备381。图3描述的逻辑连接包括局域网(LAN)371和广域网(WAN)373,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机310通过网络接口或适配器370连接至LAN371。当在WAN网络环境中使用时,计算机310通常包括调制解调器372或其它装置,用于通过WAN373,如因特网建立通信。调制解调器372可以是内置或外置的,通过用户输入接口360或其它合适的机制连接至系统总线321。在网络化环境中,描述的与计算机310相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图3示出了远程应用程序385驻留在存储器设备381中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
可以理解,示出的网络连接是示例性的,可以使用在计算机之间建立通信链路的其它装置。假定存在各种众所周知的协议,如TCP/IP、以太网、FTP、HTTP等的任一种,系统可以在客户机-服务器的配置中操作,以准许用户从基于web的服务器上检索web页。可以使用各种常规web浏览器的任一个来显示并操纵web页上的数据。
参考图4,示出了依照本发明的至少一个方面的计算机图形处理系统401的示意图。示出的计算机图形处理系统401分别通过对应的设备驱动器240、250和260耦合至数码相机245、打印机255和显示器265。也示出计算机图形处理系统401包括接口220,允许计算机图形处理系统401的用户输入要执行和/或实行的色彩管理输入参数。
依照本发明的至少一个方面,计算机图形处理系统401包括图形引擎414、图形库412、存储器或存储空间416、配置文件组件418以及应用程序430。图形引擎414可以是主机的操作系统的一部分。例如,图形引擎414可以是Microsoft公司的WindowsXP操作系统的Graphics Device Interface Plus(GDI+)库的一部分。可选地,图形引擎414可以是诸如用于编辑并打印由数码相机拍摄的摄影图片的各种软件产品之一的单独的计算机软件应用的一部分。图形库412和/或图形引擎414可包括转换程序,允许将图像/对象数据转换到无限制的中间色彩空间,如scRGB。scRGB色彩空间在IEC 61966-2-2中定义,它被设计成填充由ICC配置文件提供的色彩管理和sRGB的能力之间的间隙。图形引擎414可采用一组绘图原语,如矢量图形、静止图像、文本符号以及视频,并将它们呈递给软件和硬件图形表面。图形库414可包括一组功能,它们包括具有创建、操纵和管理图形原语的能力的图形引擎。
应用程序430通过准许用户监控、检查、询问、纠正、修改和/或忽略色彩管理工作流来允许健壮的色彩管理。通过使用扼流点435,应用程序430向用户保证已执行或将执行哪一色彩管理、何时已执行或将执行色彩管理、以及由谁已执行或将执行或应当执行色彩管理。扼流点被定义为对某一操作的预定义接触点,其中,通过一点发送色彩对象数据的所有像素。系统可采用一组有限的扼流点来代替单个扼流点,使得通过该组扼流点之一来发送色彩对象数据的像素。每一像素通过工作流中一个且仅一个扼流点进行,但是不同的像素可通过不同的扼流点。
在一个实施例中,有七(7)种具体的操作:点操作、显示操作、捕捉操作、加载操作、保存操作、复制操作和粘贴操作。每一操作具有关联的API,API操作来方便通过一个接触点,即扼流点的像素的协调。由此,可以对任一应用协调色彩对象数据的色彩管理。对定义的每一具体的操作,不可以使用特定的API操作的传统设备的对应操作允许使用该传统设备来实现。以下给出对扼流点的进一步描述。
如图所示,应用程序430使用各种图形接口API282、284、286和288来操作。如下文更充分地描述的,每一图形接口API282-288通过扼流点435操作。由于这些扼流点435,用户可确定是否由图形应用程序、用户、设备和/或操作来分配用于色彩管理的特定的政策。政策查询导入的色彩对象数据中关联的隐式配置文件或显式地嵌入的配置文件,并将该配置文件(或配置文件的缺乏)与当前的工作空间进行比较,以作出色彩管理决定。此外,用户可监控色彩管理来确定变化何时何处出现和/或是否在特定的时间在工作流中而不只在目标设备上实现另外的色彩管理,如后绑定,或者一旦进入平台就实现另外的色彩管理,如先绑定。
现在参考图5,依照本发明的至少一个方面示出了色彩管理体系结构的一个说明性实施例的框图。图5所示的色彩管理体系结构包括计算机图形处理系统501。计算机图形处理系统501包括扼流点520、混合工作流生成器530、变换器540和色彩管理系统550。对于图5所示的示例,诸如打印机等目标设备560耦合至计算机图形处理系统501。
每一操作510-519具有与其关联的具体的API,它将操作来通过一个接触点,即扼流点方便像素的协调。由此,可以对任一应用协调色彩对象数据的色彩管理。对于定义的每一具体操作,用于无法直接使用具体API操作的传统设备的对应的操作511、513、515、517和519允许使用传统设备来实现。传统设备具有一组小的潜在操作。上述API可用于以依照用户所选择的UI政策对传统设备优化地进行色彩管理的方式来方便像素的协调。具体地,打印操作510和传统打印操作511与打印色彩对象数据所采取的行动相关。显示操作512和传统显示操作514与显示色彩对象数据所采取的行动相关。捕捉操作514和传统捕捉操作515与如由数码相机捕捉色彩对象数据所采取的行动相关。加载操作516和传统加载操作517与如从存储空间加载色彩对象数据所采取的行动相关。保存操作518和传统保存操作519与如向存储设备保存色彩对象数据所采取的行动相关。
操作510-519通过各自的扼流点520耦合。对各自的操作启动API以与计算机图形处理系统510接口。在进入扼流点520时,计算机图形处理系统501可以确定,是否将色彩对象数据的变换推迟到目标设备560,或在应用端,如在计算机图形处理系统501内执行该变换。如果计算机图形处理系统501确定推迟变换,则混合工作流生成器530生成一混合工作流以推迟色彩变换,直到目标设备560上的呈现时刻。可选地,如果计算机图形处理系统501确定在应用程序端执行变换,则变换器540将该色彩对象数据变换到一中间色彩空间,如scRGB。优化了变化过程的性能,因为该变换在说明时刻而非呈现时刻发生。
在色彩对象数据被变换到诸如无限制中间色彩空间等中间色彩空间之后,色彩管理系统550可将来自标准色彩空间、ICC配置文件和非ICC配置文件的管理输入混合到中间色彩空间中。色彩管理系统550可响应于用户特定的输入、应用编程和/或先前建立的政策来操作。用户特定输入包括对捕捉的图像数据启动特定的添加、增加、纠正、修改等等,和/或仅监视或者检查先前已执行或将要执行的色彩管理行动。应用程序可以是用户对一程序,如来自加利福尼亚州圣何塞市的Adobe系统有限公司的Photoshop所建立的具体的色彩管理操作,和/或用于特定应用的默认色彩管理解决方案。
政策系统允许用户跨多个设备、操作和用户定义并协调色彩管理。政策可基于当前使用计算机图形处理系统501的特定用户;执行的特定操作,如捕捉操作或传统打印操作;特定类型的设备,如数码相机或扫描仪;特定销售商的特定设备、设备的特定型号;以及甚至是该型号上设定的特定校正设置。色彩管理系统550包括基于某一其它标准和/或默认标准实现色彩管理的能力。
在中间色彩空间上通过扼流点操作的色彩管理系统550允许用户确定在色彩对象数据上已发生哪一色彩管理,如果有的话。此外,色彩管理系统550允许用户监控变换的色彩对象数据去往何处以及将由目标设备560实现的色彩管理解决方案。通过计算机图形处理系统501,用户可以在处理过程内的任一处调查、管理、监控、干预、纠正或操纵或控制色彩对象数据。在处理过程内的任一处监控、管理、调查、干预、纠正或操纵或控制色彩对象数据的能力可通过用户接口政策来达到。
目标设备560包括硬件卡565。硬件卡565,不管是包括在打印机还是某一其它的目标设备560中,提供了动态色彩色移映射。硬件卡565被配置成适应于由用户、应用程序或政策启动的改变色彩变换。硬件卡565被配置成使用计算机图形处理系统501内的中间色彩空间和色彩管理系统550来操作。可选地,硬件卡565可以嵌入到显示器本身中,与计算机中的图形卡不同。
图6示出了依照本发明的一个示例性实施例说明执行捕捉操作来维护精确的色彩管理的步骤的流程图,它可以结合图4描述的计算机图形处理系统401来操作。在步骤605,由数码相机捕捉图像,并储存在某一内部存储器中。在步骤610,图像数据在捕获扼流点进入应用平台。该图像数据的所有像素必须通过该扼流点,由此允许增强的色彩管理。在步骤615作出判断,是否应当创建可任选的混合工作流以将色彩变换推迟到呈现时刻。这一可任选步骤620允许用户将性能密集型色彩变换直到一个较晚的时刻从源延迟到目标设备。
如果不创建任何混合工作流,在步骤625,发生到诸如scRGB的无限制中间色彩空间的色彩变换。在步骤630作出判断,是否已启动了任一类型的用户干预。如果用户决定实现色彩管理,在步骤635,用户可通过接口220以任一多种方式对变换的图像数据进行色彩管理,方式包括对捕捉的图像数据启动特定的添加、增加、纠正、修改等等,和/或仅监视或检查先前已执行或将要执行的色彩管理行动。
在步骤640作出判断,应用程序或政策是否对捕捉的图像数据有效果。如果应用程序或政策有效,则在步骤645,基于该应用程序或政策实现色彩管理。如上所述,政策可以基于特定的用户、执行的特定操作、诸如照相机或扫描仪等特定类型的设备、特定销售商的特定设备、该设备的特定型号以及甚至是该模型上特定的校准设置。如果应用程序或政策无效,则在步骤650,基于某一其它的标准和/或默认标准实现色彩管理。
本领域的技术人员应当理解,依照本发明可实现多种类型的色彩管理。基于用户干预的色彩管理可以在基于已建立的政策的色彩管理之后、同时或之前。此外,色彩管理可完全不包括任何性能。另外,本领域的技术人员应当理解,图6示出并描述的示例性说明可适用于其它操作,如显示、打印、加载和保存。
尽管示出了这里描述的实施了本发明的各方面的说明性系统和方法,本领域的技术人员可以理解,本发明并非局限于这些实施例。本领域的技术人员尤其是根据上述教导可以作出修改。例如,上述实施例的每一元件可以单独使用或与其它实施例的元件组合或子组合来使用。也应当认可并理解,可以在不脱离本发明的真实精神和范围的情况下作出修改。因此,该描述应当被认为是说明性的而非对本发明的限制。