提供颜色管理的系统和方法

xiaoxiao2020-6-26  10

专利名称:提供颜色管理的系统和方法
技术领域
本发明涉及用于提供颜色管理的系统和方法。更具体地,本发明涉及用于提供与具有不同颜色显示特征的多种设备相关的颜色管理的系统和方法。
背景技术
彩色空间是一种在数值上用三维或更多维坐标来表示颜色的模型,例如RGB彩色空间以红色、绿色和蓝色坐标来表示颜色。
要想以一种可预知的方式通过不同的设备和材料来重现颜色,则必须用一种与用以生成颜色的机制和材料的特征相独立的方式来描述颜色。例如,阴极射线管(CTR)和彩色打印机使用完全不同的机制来重现颜色。为了解决这个问题,当前的方法需要用与设备无关的颜色坐标来描述颜色,然后再为每一个设备将这些与设备无关的颜色坐标转换为与设备相关的颜色坐标。目前,由设备本身来提供用于转换成与设备相关的系统的机制。
在这点上,颜色管理是描述一种将对象(例如,图像、图形或文本)的颜色从当前彩色空间转换到输出设备(例如监视器、打印机等)的彩色空间的技术或系统的术语。
在早期,通过申明支持一种特定的彩色空间,例如RGB,操作系统来支持彩色。但是,因为RGB在设备间存在不同,颜色不能可靠地通过不同设备来重现。
因为这种传统的彩色支持方法是不充分的,各种操作系统增加了对使用国际颜色联盟(ICC,International Color Consortium)的概要(profile)的支持,以通过与设备无关的方式描述与设备相关的颜色特征。ICC的设备特征概要规范是公共开放的并且是可以得到的,例如从ICC的网站上,即www.color.org。ICC使用产生图像的输入设备和显示图像的输出设备的概要,并创建一种将图像从输入设备的彩色空间转移到输出设备的彩色空间的变换。虽然这可以带来非常准确的颜色,但也增加了连同图像一起传送输入设备的概要及在变换中管理图像的开销。
然后技术进一步发展到试图提供中间的与设备无关的标准彩色空间。这些颜色管理技术中的一些现在已经存在于操作系统和应用之中,例如MICROSOFT WINDOW操作系统和MICROSOFTOFFICE平台。除了ICC彩色空间外,彩色空间还包括标准彩色空间或简称为sRGB(国际工程联盟(IEC)第61966-2-1号标准),它已经开始在WINDOWS98和OFFICE中作为一项核心技术被支持。颜色管理技术已继续发展到制订标准扩展彩色空间或简称为scRGB(IEC的第61966-2-2号标准)。
综合ICC、sRGB和scRGB,当涉及各种各样的支持彩色的输入和输出的计算设备时,存在大量的需要解决的问题。目前,sRGB是Windows中基于IEC 61966-2-1标准的默认彩色空间。一个sRGB兼容的设备不用提供一个概要或其它的颜色管理支持来正常工作。
在这点上,sRGB、scRGB和ICC彩色空间的结构具有一种固定的和明确的含义,它们是本发明的技术背景。参考这些彩色空间对本领域中的一般技术人员来说就具有了足够的识别信息,虽然如此,下面还是给出一般性描述,并且可以被各彩色空间的任何公共开放的标准规范来补充。
标准RGB彩色空间sRGB包括描述了RGB感知空间的色调响应与物理亮度空间之间的非线性关系的1-D查询表(LUT),例如CIEXYZ;一个描述了原色红、绿和蓝对应CIEXYZ值的3×3矩阵;感知意义上的白点值,例如CIEXYZ标准的D65,与6500K色温时的日光相关;以及任选的影响最终用户对目标设备颜色的感知的观看条件,如边缘、背景、亮度。
标准扩展彩色空间scRGB与sRGB相似,但是颜色值可以扩展到颜色的可视范围之外。
ICC概要一般是一个包括了将设备相关的颜色和它们等同的人类视觉感知颜色相关联的元数据结构。ICC概要的某些实例还可以提供任何两个彩色空间(或者是与设备无关的,或者是与设备相关的)之间的转换信息。
X协议发展于二十世纪八十年代中期,是为了满足主要为UNIX操作系统提供一种网络透明的图形用户接口(GUI)的需要。X协议使用与MICROSOFT WINDOW和IBM的显示管理器(Presentation Manager)非常类似的方式,规定了关于图形信息的显示和管理。
X协议的体系和其它平台的颜色管理技术的关键不同在于X协议的结构。WINDOW和其它的平台,如IBM的显示管理器(Presentation Manager),只显示PC机本地的图形应用,而X协议通过在应用层规定一种客户-服务器关系来分配应用的处理。应用的“做什么”部分被称为一个X客户,将它与称作X服务器的“怎么做”部分(显示部分)分离开。典型的情况是X客户运行在具有额外计算能力而显示在X服务器上的远端机器上。它的好处就是真正的客户-服务器结构和分布式处理。
如图1A所示,X协议在一个应用210a、210b和它的显示240之间定义了一种客户-服务器关系。为此,被称作X客户的应用210a、210b与作为X服务器240的显示脱离开了。X客户210a、210b包括一个X库220及一个可选的工具包230。X服务器240包括用来驱动设备260的设备驱动器250。如图1B所示,X协议通过规定一个设备相关层200b和设备无关层200a,并基于在X客户210和X服务器240间通信的异步网络协议,还提供了一个公共的开窗系统。X协议有效地隐藏了操作系统和下面的硬件的特征。这种对于体系结构和工程上的不同的掩蔽,简化了X客户的发展,并为X Window系统的高度可移植性提供了跳板。
X协议方法的优点包括(1)基于本地和网络的计算使得用户和开发人员看到和感觉到的是相同的;(2)X服务器的高度可移植性允许支持各种各样的语言和操作系统;(3)X客户同样具有高度可移植性;(4)X协议可以支持本地或远端的、任何面向字节流的网络协议;(5)应用不经受性能恶化。
这样,X协议的设计就规定了一种应用和它的显示之间的客户-服务器关系。在X协议中,管理单一屏幕、键盘和鼠标的软件被认为是X服务器。X客户是显示在X服务器上的应用,有时就是指“应用”X客户向X服务器发送请求,例如一个绘图或信息请求。X服务器从多个客户端接收请求,并向X客户返回对信息请求、用户输入和错误的答复。
X服务器运行在本地机器上,接收和解复用基于网络的或本地的进程间通信(IPC)的X客户请求,并根据它们操作。X服务器(1)在屏显示绘图请求;(2)答复信息请求;(3)报告请求中的错误;(4)管理键盘、鼠标和显示设备;(5)将键盘和鼠标输入复用到网络上,或经由本地IPC复用到各X客户;(6)创建、绘制和消除窗口;(7)在窗口中写和绘图。
X客户基本上是在库例如利用X协议的Xlib和Xt的帮助下写成的应用。X客户(1)向服务器发送请求;(2)从服务器端接收事件;(3)从服务器端接收错误。
关于请求,X客户为了产生某个动作,例如创建窗口,而向X服务器发送请求。为了提高性能,X客户通常既不期待也不等待响应。取而代之的是,请求在典型情况下是留给可靠的网络层去传送的。X协议的请求是4字节的任何倍数。
关于答复,X服务器响应需要答复的一定X客户的请求。应当注意并不是所有的请求都需要答复。X协议的答复最小长度是32字节,并是4字节的任何倍数。
关于事件,X服务器向X客户转发应用所期望的事件,包括键盘或鼠标的输入。为了使网络业务量最少,只将所期望的事件发送给X客户。X协议的事件是32字节的。
关于错误,X服务器向X客户报告请求中的错误。错误与事件相似但处理不同。X协议的错误与事件的长度相同以简化对它们的处理。它们按32字节的长度发送给X客户的错误处理例程。
X服务器的设计很大程度上依赖于它在其上执行的平台硬件和操作系统。随着下层技术的能力提高,X服务器的能力也随着提高了。
如前所述,图1A示出存在一个X服务器的设备相关层200b和设备无关层200a。设备相关层200b负责将X服务器本地化为本地的环境,不管是WINDOWS还是Solaris,并利用不同字节排序从机器交换数据字节,字节排序是在每一个X协议请求中注明的。层200b隐藏了硬件和操作系统中的结构区别,也为键盘、鼠标和视频保持设备驱动器相关性。
对于一个单线程的结构,X服务器是一个单时序进程,它使用本地的时间片结构来在X客户之间调度解复用请求、复用答复、事件和错误。
对于一个多线程结构,X服务器是一个能够通过将作业拆散为多个线程供操作系统和硬件来执行而利用操作系统的性质的多线程进程。真正的抢先式多任务处理、多线程环境为X服务器提供了一个高级别的能力。
现今的X服务器包括工作站、X终端和PC X服务器。工作站有足够的能力来处理复杂的计算需求和一般显示本地X客户以及一小部分网络(远端)X客户。X终端是具有图形能力的哑终端。X服务器软件从一个主机上下载。X终端比工作站便宜并且更容易维护。PC X服务器将PC和对远端应用服务器的访问集成到一个公用桌面,利用现有的PC投资和用户的技巧集(桌面操作和访问),可依据用户的偏爱提供本地或远端的窗口管理并且使用简单。
X协议联盟建立了X11图形体系结构。在过去的几年中,桌面已经从一种生产率或以用户为中心的环境演变为一种集中于被万维网协议和基于浏览器的用户接口的适应所围绕的集中管理的环境。由X协议联盟最新发布的X Window系统-X11R6.5.1或简称X11或X11R6—已经涉及集成X协议应用和浏览器以便能够不需要再编码和加密而实现快速配置的问题。
最新发布的X11图形结构已公开在万维网(WWW)上,至少可以在X协议联盟的网站上找到,www.x.org。简而言之,X11R6颜色管理系统是一个图形协议,通过借助包括白点适应、色域映射、矩阵变换和一维(1-D)查询表(LUT)的操作,(1)支持可插入的颜色管理功能,以及(2)支持将设备无关的应用内容转换成设备相关的颜色值。
当X协议联盟建立X11时,X11只支持一种很简单的颜色管理机制,通过使用一个3×3的矩阵和3个1-D LUT来将标准的RGB颜色转换为特定的显示设备的RGB颜色。随着X11R6的到来,X颜色管理系统(Xcms)的结构基于Tektronix的扩展了原先的简单方案的工作而被合并,以提供将多种与设备无关的彩色空间转换为与显示设备相关的颜色。这个方案集中于加入白点色适应支持和色域压缩支持。这样,X11R6颜色管理系统采取了一种以三通道与设备无关颜色开始、并转换为与显示设备相关的颜色的工作流程。
这样X11R6结构就具有两个颜色管理方案。第一个方案是普遍用来刻画简单显示设备(如CRT)的特征的简单的3×3矩阵和3个1-DLUT。第二个方案是主要包含白点转换和色域压缩的Xcms。由于Xcms的引入,颜色管理得到发展,并发现仅限于这两种技术的解决方案是不够的,因为大多数情况都采用源和目标设备,其中X11只支持目标设备并假定源是与设备无关的。
同样,基于元数据设备表征概要的现代颜色管理方案,例如ICC,采取了开始及结束于三、四或更多通道的与设备相关的颜色的工作流程。目前,X11只允许一种开始于三个与设备无关的颜色并结束于与RGB显示设备相关的颜色的工作流程。基于标准彩色空间的现代颜色管理方案,例如sRGB和scRGB,除了元数据被包含在设备本身内之外,与现代的元数据解决方案是类似的,使得工作流程表现为独立于源和目标设备之外完全与设备无关。基本上,在设备颜色和标准彩色空间之间转换的元数据只存在于源和目标设备的硬件本身之中。这就允许通过简单得多的用户经验就可以进行操作,及在开放网络中交换颜色内容,同样允许包含多个应用和用户的复杂的工作流程。
其它的现有技术解决方案目前并没有与X11R6相结合,因此仅限于单个应用。因此,剪切和粘贴、应用间和复杂的工作流程在目前的解决方案中非常有限。另外,目前的解决方案在支持青色、品红色、黄色和黑色(CMYK)和其它彩色空间方面非常有限。这样,就需要一种使标准的X11R6图形平台能够支持分别建立在ICC、sRGB和scRGB颜色管理系统的基础上的事实上的工业元数据颜色管理标准的机制。此外,还需要一种允许支持开始及结束于与设备相关的颜色的现代颜色管理标准(例如ICC、sRGB和scRGB)的机制。

发明内容
考虑到前述的内容,本发明提供了用来提供与各种各样的具有不同颜色显示特征的计算设备相关的颜色管理的系统和方法。更具体地,本发明提供了使X11图形平台支持开始及结束于与设备相关的颜色的颜色管理系统(例如ICC、sRGB和scRGB)的方法。本发明也提供了用以支持CMYK彩色空间和X11R6内的扩展的RGB彩色空间的方法,这样就将X11R6图形平台扩展为支持任何现代颜色管理标准。
在本发明的各种实施例中,提供了与颜色管理系统相关的方法、计算机可读取的媒体和计算设备。这些实施例包括从源设备处接收与设备无关的颜色数据以转换到目标设备;生成一个表示源设备和目标设备之间的颜色特征差异的设备连接概要;假冒(spoof)颜色管理系统的至少一个应用编程接口功能,并调用功能来为目标设备生成与目标设备相关的颜色值。
本发明的其它特征和实施例将在下面进行描述。


根据本发明用来提供颜色管理的系统和方法将参考附图给出进一步的描述,其中图1A和1B示出了X协议联盟的X协议的一些基本方面。
图2A是一个表示本发明可以在其中实施的具有各种计算设备的示例性的网络环境的方块图。
图2B是一个表示一个本发明可以在其中实施的示例性的无限制的计算设备的方块图。
图3A示出了X11R5颜色管理系统结构的示例性的操作。
图3B示出了X11R6颜色管理系统结构的示例性的操作。
图4A示出了X11R6颜色管理系统结构的另外的示例性方面。
图4B示出了颜色管理模块(CMM)的颜色管理结构的示例性操作。
图4C示出了本发明所提供的颜色管理的结构。
图5A到5C示出了与各种彩色空间相关的本发明的示例性使用。
具体实施例方式
综述本发明提供了在X11R6图形平台的结构限制内,使用各种目前已被采用的解决方案来实现现代颜色管理的方法和系统。如前所述,X11采取了一种开始于三种与设备无关的颜色及结束于与RGB显示设备相关的颜色的颜色管理工作流程结构。由此,本发明提供了一种能支持开始及结束于与设备相关的颜色的现代颜色管理(例如ICC、sRGB和scRGB)的机制。本发明还可以用来支持CMYK彩色空间和X11R6内扩展的RGB彩色空间,这样就将X11R6图形平台扩展为支持所有的现代颜色管理技术。
示例性的网络化的和分布式的环境本领域普通技术人员可以明白计算机或其它客户或服务器设备都可以被配置作为计算机网的一部分,或配置在分布式计算环境中。在这点上,本发明适合任何包含任意数量的存储器或存储单元、和任意数量的存在于任意数量的存储单元或存储体中的应用和进程(可以与颜色管理进程相关使用)的计算机系统。本发明可以应用到具有远程或本地存储、被配置在网络环境或分布式计算环境中的服务器和客户计算机的环境。本发明还可以应用于具有编程语言功能、以及用于生成、接收和发送与远程或本地颜色管理业务相关的信息的解释和执行能力的独立的计算设备。
分布式计算通过在计算设备和系统间直接交换有助于计算机资源和服务的共享。这些资源和服务包括信息交换、高速缓存和文件的磁盘存储。分布式计算利用网络的连通性,使得客户利用它们的集体能力,从而使整个公司受益。在这点上,各种各样设备可以具有与可使用本发明的技术的颜色管理进程有一定关系的应用、对象或资源。
图2A提供了一个示例性的网络化的或分布式的计算环境的示意图。此分布式计算环境包括计算对象10a、10b等等,以及计算对象或设备110a、110b、110c等等。这些对象可能包括程序、方法、数据存储、可编程逻辑等等。这些对象可能包含部分相同或不同的设备,例如个人数字助理(PDA)、电视机、活动图像专家组(MPEG-1)的音频层-3(MP3)播放器、个人计算机等等。每一个对象可以通过通信网络14与其它的对象通信。这个网络本身可以包括为图2A的系统提供服务的其它的计算对象和计算设备。根据本发明的一个方面,每一个对象10a、10b等或110a、110b、110c等等可以包含一个可能会请求颜色管理服务的应用。
在一个分布式计算结构中,传统意义上可能只被用作客户机的计算机,直接在它们自身之间通信并既可以担当客户机又可以担当服务器,在网络中充当最有效的角色。这样减少了服务器上的负担,并使得所有的客户机可以访问其它客户机上可用的资源,因此增加了整个网络的性能和效率。这样,依据本发明的颜色管理服务就可以分布在客户机和服务器之中,以一种对整个网络有效的方式工作。
分布式计算可以使商业投递业务及能力在不同的地理分界区域内更加有效。另外,分布式计算可以将数据转移到更靠近使用数据的、充当网络高速缓存机构的点上。分布式计算同样使得计算网络同时使用智能代理动态工作。代理驻留在对等计算机上,并来回传递各种信息。代理还可以以其它对等系统的名义发起任务。例如,智能代理可以用来在网络上优先化任务、改变业务流、在本地搜索文件或判定异常行为(如病毒)并在它影响网络之前阻止它。所有其它各种服务也同样可以期望。因为图形对象或其它颜色数据实际上可能物理上存在于一个或更多的位置,所以在这样一个系统中分布颜色管理服务的能力具有很大的实用性。
同样可以理解,一个对象例如110c可以被放置在另外的计算设备上,如10a、10b、110a、110b等。因此,虽然所述的物理环境可以将连接的设备显示为计算机,这种举例说明只是示意性的,并且还可以将物理环境可选地描述或说明为包括各种数字设备,例如PDA、电视机、MP3播放器等等,和软件对象,例如接口、COM对象等。
存在各种各样的支持分布式计算环境的系统、部件和网络配置。例如,计算系统可以通过有线线路或无线系统,通过本地网络或大范围分布式网络而连接在一起。目前,许多这种网络都与提供了大范围分布式计算的基础设施和包含许多不同网络的因特网连接在一起。
在家用网络环境中,存在至少四种全异的且每一种都支持唯一的协议的网络传输媒体,例如电力线,数据(无线和有线)、语音(如电话)、和娱乐媒体。多数家用控制设备(如电灯开关)和电器可能使用电力线来连接。数据业务可能使用或者无线,例如家用射频(HomeRF)或802.11b,或者有线,例如家用电话线联网设备(PNA)、Cat 5,甚至电力线连接的方式进入家用作为宽带(如DSL或电缆调制解调器)并在家用内可用。语音业务或者作为有线的,如Cat 3,或者无线的,如蜂窝电话机,而进入家庭,还可能使用Cat 3布线而分配于家庭内。娱乐媒体或其它的图形数据,可以通过卫星或电缆而进入家用,并且典型的情况是使用同轴电缆分配于家庭内。IEEE 1394和DVI也作为用于媒体设备群集的数字互连而出现。所有这些网络环境和其它可能出现的作为协议标准的环境可能会被连接在一起,以形成一个通过因特网的方式连接外部的企业内部网。简而言之,存在各种各样的用于存储和传输数据的全异的资源,因此随着技术的向前发展,计算设备将需要多种方式来共享数据,例如图像对象的颜色管理附带的被访问或使用的数据,或根据本发明的其它颜色数据。
另外,颜色是一种可以有效的表示各种物理或其它现象的手段,因此不管数据是磁共振图像数据、超声波数据还是图形均衡数据等等,颜色通常是一种恰当的向人们表示数据以进行快速感性分析的方法。因此,颜色数据源如这里所期望的那样是无限的,并且可能要在被认为是“颜色”数据之间经历一系列的变换。
因特网一般是指使用传输控制协议/接口程序(TCP/IP)的协议组合的网络和网关的集合,这在计算机网络领域是众所周知的。因特网可以被描述为一个通过计算机执行使得用户可以在网络上交互和共享信息的网络协议,而连接在一起的地理上分布式的远程计算机网。因为这种广泛传播的信息共享,远程网络如因特网因而通常演变为一个开放式的系统,因此开发人员可以设计完成专门操作或服务的软件应用,而且基本上没有限制。
因此,这种网络基础设施可兼容许多网络拓扑(如客户/服务器、对等或混合结构)。“客户”是一个类或组中的成员,使用另外一个与之不相关的类或组的服务。因此在计算技术中,一个客户就是一个程序,也就是大致上需要别的程序提供的服务的指令或任务的集合。客户进程在不需要“知道”其它程序或服务本身的任何工作细节的情况下,使用所请求的服务。在客户/服务器结构中,特别是一个网络化的系统中,客户通常是一个访问别的计算机(如服务器)所提供的共享网络资源的计算机。在图2A的例子中,计算机110a、110b等等可以被认为是客户,而计算机10a、10b等等可以被认为是服务器,其中服务器10a、10b等等保存之后将在客户计算机110a、110b等等上被复制的数据。
典型的情况下,服务器是一个可以通过远程网络(如因特网)来访问的远程计算机。客户进程可以是工作于第一计算机系统中的,而服务器进程可以工作于第二计算机系统中,它们通过一个通信媒体而相互通信,这样就提供了分布式的功能,并使得多个客户可以利用服务器的信息收集能力。
客户和计算机使用协议层所提供的功能来互相通信。例如,超文本传输协议(HTTP)是一种结合万维网(WWW)而使用的公共协议。典型地,计算机网络地址,如统一资源定位符(URL)或网际协议(IP)地址被用来彼此区分服务器或客户计算机。网络地址可以指一个URL地址。例如,可以通过一个通信媒体来提供通信。特别地,为了大容量的通信,客户和服务器可以通过TCP/IP连接而结合在一起。
图2A图示了一个示例性的可以将本发明应用其中的网络化的或分布式的环境,其中服务器通过网络/总线与客户计算机通信。更详细地,若干服务器10a、10b等等通过一个通信网络/总线14(可以是一个LAN、WAN、企业内部网、因特网等等),与许多客户或远程计算设备110a、110b、110c、110d、110e等等相互连接在一起,后者如便携式计算机、手持计算机、瘦客户、网络化的设备、或其它设备,如录像机(VCR)、电视机(TV)、烤箱、灯、加热器或根据本发明的类似设备。因此,将本发明应用于任何希望用来处理或显示图形对象或任何其它颜色数据的计算设备都是所期望的。
例如在一个通信网络/总线14是因特网的网络环境中,服务器10a、10b等等可以是Web服务器,客户110a、110b、110c、110d、110e等等通过大量已知的协议(如HTTP)中的任何一种与这些服务器通信。如分布式计算环境所具有的特征,服务器10a、10b等等同样可以作为客户110a、110b、110c、110d、110e等等。通信可以是有线的或无线的,只要适合就行。客户设备110a、110b、110c、110d、110e等等可以或不可以通过通信网络/总线14来通信,还可能具有与之相关的独立的通信。例如,在电视和VCR的情况下,可能有或没有网络方面来控制它。每一个客户计算机110a、110b、110c、110d、110e等等和服务器计算机10a、10b等等可能装备有各种应用程序模块或对象135,并且还连接有或可以访问各种类型的存储部件或对象,可以将文件存储在这些存储部件中,或将部分文件下载到或转移到这些存储部件中。任何计算机10a、10b、110a、110b等等可以根据本发明负责维护和更新数据库20或其它的存储部件,如用来存储依据本发明的颜色对象或数据或中间颜色对象或处理过的数据的数据库或存储器20。这样,本发明就可以应用于具有可以访问和与计算机网络/总线14进行交互的客户计算机110a、110b等等、可以与客户计算机110a、110b等等进行交互的服务器计算机10a、10b等等、其它类似的设备以及数据库20的计算机网络环境中。
示例性的计算设备图2B和随后的讨论的意图是为本发明可以在其中实施的适合的计算环境提供一个简要的一般描述。然而应当明白,如上所述,手持、便携式和其它的计算设备及各种计算对象都是本发明所期望使用的。因此,虽然下面描述的是通用计算机,但这只是一个例子,本发明还可能通过其它的计算设备(如具有网络/总线互操作性和交互作用的瘦客户)而实现。因此,本发明可以实现于只涉及非常小或最少的客户资源的网络化的主机服务环境中,例如一种在其中客户设备只作为至网络/总线的接口(如放置于设备或其它计算设备和对象中的一个对象)的网络化的环境。基本上,任何数据可以存储或从中可以获得数据的地方都是一个理想的或适合的用于运行本发明的颜色管理技术的环境。
尽管不是必需的,本发明可以通过一个操作系统来实现,以为用于设备或对象的服务的开发人员所使用,和/或包含于与本发明的颜色管理技术一起运行的应用软件之中。软件可以在一般意义上描述为计算机可以执行的指令,例如被一个或多个计算机(如客户工作站、服务器或其它设备)执行的程序模块。一般说来,程序模块包括例行程序、程序、对象、组件、数据结构和类似的执行特定任务或实现特定抽象数据类型的东西。典型的情况下,程序模块的功能可以根据不同的实施例的需要被合并或分散。另外,本领域中的技术人员还会明白本发明可以在其它的计算机系统的配置下运行。其它已知的适合本发明使用的计算机系统、环境、和/或配置,包括但并不限于个人计算机(PC)、自动取款机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子设备、网络PC、器具、电灯、环境控制部件、小型计算机、大型计算机等。本发明还可以实践于其中的任务由通过通信网/总线或其它数据传输媒体相连的远程处理设备来执行的分布式计算环境中。在分布式计算环境中,程序模块可以既存在于本地又存在于远程计算机的包括内存存储设备的存储媒体中,以及客户节点还可以作为服务器节点。
图2B图示了一个本发明可以在其中实现的一个适合的计算系统环境100,尽管上面已经进行了清楚的描述,但是计算系统环境100只是一个适合的计算环境的例子,目的并不是为本发明的使用或功能范围提出任何限制。计算环境100也不应该被解释为对示例性的操作环境100中所图示的任何一个部件或部件的组合有任何的依赖或必需。
参考图2B,用于实现本发明的示例性的系统包括一个计算机110形式的通用计算设备。计算机110的部件可以包括但并不仅限于一个处理单元120、一个系统存储器130、和一个将各种系统部件包括系统存储器连接到处理单元120的系统总线121。系统总线121可以是几种总线结构中的任一种,包括一个存储器总线或存储器控制器、一个外围总线、和一个使用各种总线结构中的任一种的局部总线。作为例子,而不是限制,这些结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型的ISA(EISA)总线、视频电子标准协会(VESA)局部总线、和外围部件互连(PCI)总线(也叫Mezzanine总线)。
典型情况下,计算机110包括各种各样的计算机可读取的媒体。计算机可读取的媒体可以是任何可以被计算机110读取的可用媒体,包括易失性和非易失性媒体、可移动和不可移动媒体。作为例子,而不是限制,计算机可读取的媒体可包括计算机存储媒体和通信媒体。计算机存储媒体包括以任何方法和技术实现的用于存储信息(如计算机可读取的指令、数据结构、程序模块或其它数据)的易失性和非易失性媒体、可移动和不可移动媒体。计算机存储媒体包括但并不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程序只读存储器(EEPROM)、闪存或其它存储器技术、只读光盘(CDROM)、数字多功能光盘(DVD)或其它的光盘存储器、盒式磁带、磁带、磁盘存储器或其它的磁存储设备、或任何其它的可以用来存储所期望的信息并可以被计算机110存取的媒体。典型情况下,通信媒体以调制数据信号表示计算机可读取的指令、数据结构、程序模块或其它数据,如载波或其它传输机制,通信媒体包含任何信息传送媒体。术语“调制数据信号”表示一种其自身的一个或多个特征被设置或改变以将信息编码到信号中的信号。作为例子,而不是限制,通信媒体包括有线媒体(如有线网络或直接有线连接)、和无线媒体(如声波、RF、红外或其它的无线媒体)。上述的任何组合都应当包含在计算机可读取媒体的范围内。
系统存储器130包括易失性和/或非易失性存储器(如ROM 131和RAM 132)形式的计算机存储媒体。包括在计算机110内的部件之间传输信息(如在启动过程中)的基本例程的基本输入/输出系统133(BIOS),典型情况下存储于ROM 131。典型情况下,RAM 132包含能被立即访问或当前正在被处理单元120运行的数据和/或程序模块。作为例子,而不是限制,图2B图示了操作系统134、应用程序135、其它程序模块136、和程序数据137。
计算机110还包括其它的可移动/不可移动、易失性/非易失性计算机存储媒体。仅作为例子,图2B图示了一个对不可移动、非易失性磁媒体读取或写入的硬盘驱动器141,一个对可移动、非易失性磁盘152读取或写入的磁盘驱动器151,和一个对可移动、非易失性光盘156(如CD ROM或其它光媒体)读取或写入的光盘驱动器155。其它的可用于示例性的操作环境中的可移动/不可移动、易失性/非易失性计算机存储媒体包括但并不限于盒式磁带、闪存卡、数字多功能光盘、数字录像带、固态RAM、固态ROM等。典型情况下,硬盘驱动器141通过一个不可移动存储器接口(如接口140)与系统总线121相连;磁盘驱动器151和光盘驱动器155通过一个可移动存储器接口(如接口150)与系统总线121相连。
上面已讨论过的并由图2B所图示的驱动器和相关的计算机存储媒体,为计算机110提供了对计算机可读取的指令、数据结构、程序模块和其它数据的存储。例如在图2B中,硬盘驱动器141被图示为存储操作系统144、应用程序145、其它程序模块146、和程序数据147。注意,这些部件与操作系统134、应用程序135、其它程序模块136、和程序数据137可以相同也可以不同。操作系统144、应用程序145、其它程序模块146、和程序数据147在这里被给出了不同的号码,为了说明在最低程度上它们是不同的拷贝。用户可以通过输入设备(如键盘162和定位设备161(一般指鼠标、跟踪球或触摸板))来向计算机110输入命令和信息。其它输入设备(未示出)可能包括话筒、操纵杆、游戏键盘、圆盘式卫星电视天线、扫描仪或类似的。这些及其它的输入设备通常是通过一个与系统总线121连接的用户输入接口160与处理单元120相连,但也可以通过其它接口和总线结构来连接,如串口、游戏端口或通用串行总线(USB)。图形接口182,如Northbridge,也可以与系统总线121相连。Northbridge是一个与CPU或主机处理单元120通信的芯片组,负责图形加速端口(AGP)的通信。一个或多个图形处理单元(GPU)184可能与图形接口182通信。在这点上,GPU 184通常包括片上存储器,例如寄存器存储器,并且GPU 184与视频存储器186通信。然而GPU 184只是一个协处理器的例子,各种各样的协处理设备可以包含到计算机110中。监视器191或其它类型的显示设备也通过接口与系统总线121相连,如与视频存储器186通信的视频接口190。除了监视器191外,计算机还可以包括其它的外围输出设备如可通过输出外设接口195相连的扬声器197和打印机196。
计算机110可以通过使用与一个或多个远程计算机(如远程计算机180)相连的逻辑连接而运行于网络化的或分布式的环境中。远程计算机180可以是个人计算机、一个服务器、一个路由器、一个网络PC、一个对等设备或其它通用网络节点,典型情况下,尽管图2B只显示了一个存储器设备181,但它包含上述的与计算机110相关的许多或所有部件。图2B中所描述的逻辑连接包括一个局域网(LAN)171和一个广域网(WAN)173,但也可以包括其它的网络/总线。这样的网络环境在家用、办公室、企业范围内的计算机网、企业内部网和因特网中是很常见的。
当被应用于LAN网络环境中时,计算机110通过一个网络接口或适配器170来与LAN 171相连。当被应用于WAN网络环境中时,典型情况下,计算机110包含一个调制解调器172或其它的可以在WAN 173如因特网上建立通信的装置。可以是内置的或外部的调制解调器172,可以通过用户输入接口160或其它适当的方法与系统总线121相连。在网络环境中,所描述的与计算机110相联系的程序模块或其某些部分,可以被存储在远程存储器设备中。作为例子,而不是限制,图2B将远程应用程序185图示为驻留于存储器设备181中。应该明白,所显示的网络连接只是示例性的,其它的在计算机间建立通信连接的方法也是可用的。
示例性的分布式计算框架或结构各种不同的分布式计算框架已经并且正在依据个人计算和因特网的汇聚而发展。个人和商业用户同样被提供一种用于应用和计算设备的无缝地可互操作的和Web使能的接口,使得计算行为日益面向Web浏览器或网络。
例如,MICROFT的.NET平台包括服务器、积木式组件服务,如基于Web的数据存储和可下载的设备软件。一般而言,.NET平台提供了(1)使全部范围内的计算设备一起工作及使用户信息自动在它们之中更新和同步的能力;(2)通过使用XML代替HTML而增加的用于Web网站的交互能力;(3)以定制访问和从管理各种应用(如电子邮件)或软件如Office.NET的中心起始点向用户发送产品和服务为特色的在线服务;(4)可以增加信息存取的效率和简单性及在用户和设备中的信息同步的集中化的数据存储;(5)集成各种通信媒体(如电子邮件、传真和电话)的能力;(6)为开发人员提供创建可重用模块的能力,从而增加生产率而减少编程出错的数量;以及(7)许多其它的跨平台集成特征。
虽然此处示例性的实施例是与计算设备中的软件一起描述的,但是本发明的一个或多个部分还可以通过操作系统、应用编程接口(API)、或处于协处理器和请求对象之间的“中间人”对象来实现,使得颜色管理服务可以通过所有的.NET语言和服务和在其它的分布式计算框架中执行、支持和访问。
X11中的颜色管理如背景技术中所叙述的,X11R6颜色管理系统是一种图形协议,它通过包括白点适应、色域映射、矩阵变换和1-D LUT的操作,而支持可插入的颜色管理功能,和支持将与设备无关的应用内容转换成与设备相关的颜色值。
X11R6结构具有两种颜色管理方案。第一种是通常用来刻画简单的显示器(如CRT)的简单的3×3矩阵和3个1-D LUT。第二种是主要包含白点转换和色域压缩的Xcms。由于Xcms的引入,颜色管理得到发展并发现仅限于这两种技术的解决方案是不够的,因为大多数都使用源和目标设备,其中X11只支持一个目标设备并假定源是与设备无关的。幸运的是,Xcms在这种结构中允许更灵活的实现。
CIELAB是由CIE在1976年采纳的系统,作为一种在表示人类视觉系统(HVS)方面比以前的CIELUV更好地在它们的值中显示了统一彩色空间的模型。CIELAB是基于早期(1942)的叫作L.a.b的Richard Hunter系统的对立颜色系统。在1960年代中期发现,颜色对立与视神经和大脑之间的某个地方相关,视网膜颜色刺激被转换成亮和暗、红和绿、蓝和黄之间的差异。CIELAB用三个轴L*、a*和b*来表示这些值。术语的全称是1976年的CIE L*a*b*空间。
中心的竖轴代表光亮度,表示为L*,光亮度值从0(黑色)变化到100(白色)。颜色轴以一种颜色不能既是红色又是绿色,或既是蓝色又是黄色这一事实为基础,因为这些颜色是相互对立的。在每一个轴上值从正变化到负。在a-a’轴上,正值代表红色的数量,而负值代表绿色的数量。在b-b’轴上,黄色为正,蓝色为负。对于这两个轴,零是中性的灰色。CIEXYZ数据结构是被X11所使用的数据结构,它包括一个特定颜色在特定的彩色空间中的x、y和z坐标。
图3A图示了一个X11R5如何工作的例子,它在X11中采取了直接彩色或真彩色表面。通过3×3矩阵300,从与设备无关的RGB值产生与显示设备相关的、相对亮度为线性的RGB值。然后,与显示设备相关的非线性RGB值在给定γ值(如γ=1.0)的情况下,通过3个1-D LUT 310来产生。这些与设备相关的值然后再由显示设备320来重现。在这点上,设备320提供了为显示设备320所特有的3×3矩阵和1-D LUT。
特别地,X彩色空间变换上下文(XCCC)支持两类功能指针,toCIEXYZ和fromCIEXYZ。图3B图示了一个X11R6如何工作的例子。通过X11库(Xlib)中的标准彩色空间变换机制,从与设备无关的颜色值,如CIELAB、CIELUV、CIEYxy、CIEXYZ、TekHVC、cmdPad,产生CIEXYZ值。然后通过Xcms的白点变换部件330来生成设备白点CIEXYZ值。然后通过Xcms的色域压缩部件340来生成设备的色域CIEXYZ值。然后或者按照上面讨论过的ZX11r5机制,或者通过XCCC的fromCIEXYZ机制生成与设备相关的RGB值。
这样,如图4A所示,X协议平台中的颜色管理就通过toCIEXYZ和fromCIEXYZ功能而实现,toCIEXYZ和fromCIEXYZ功能生成X11数据结构或将X11数据结构变换成与设备相关的值。
图4B图示了标准WINDOWS颜色管理模块(CMM)的操作。从各种各样的源设备相关彩色空间和设备概要,CMM可以通过标准CMM功能转换成与设备无关的彩色空间,如ICC、sRGB和scRGB。然后,通过目标设备概要,将独立的彩色空间值转换成适于目标设备的彩色空间。
如图4C所示,本发明提供了一种通过标准ICC概要和颜色管理方法所提供的支持而增强XCCC的toCIEXYX和fromCIEXYZ功能的机制。
为了实现此目的,首先或者明确地通过用户接口(UI)或隐含地通过设备关联,来确定适当的源和目标概要。从这两个设备概要,用户可以使用标准的WINDOWSCMM功能来创建直接由源设备转换到目标设备的设备连接概要,此概要处理源设备和目标设备的颜色特征差异间的最终关系。将X11结构引入该进程中,用以通过使fromCIEXYZ功能的指针指向一个标准的基于CMM的、使用设备连接概要将源转换成目标颜色或图像的颜色转换功能,而实现将值从源设备传送到目标设备。可以将标准CMM支持从WINDOWS图像颜色匹配(ICM)接口或其它的ICC颜色管理系统接口移植到X11中。
图5A到图5C图示了本发明的几个例子。在这些例子中,为了描述的简单,白点、色域压缩和其它的功能对空操作(null operations)来说是默认的。
在图5A中,RGB或sRGB源设备颜色存在于源设备端。在计算完源设备和目标设备之间的设备连接概要后,本发明假冒X系统认为源设备RGB为CIEXYZ。然后,通过fromCIEXYZ功能(包括设备连接概要作为一个变元)产生与设备相关的目标颜色。
在图5B中,CMYK源设备颜色存在于源设备端。在计算完源设备和目标设备之间的设备连接概要后,本发明通过将源设备RGB认定为cmsPad XcmsColor类型而对X系统进行假冒。然后,通过fromCIEXYZ功能(包括设备连接概要作为一个变元)产生与设备相关的目标颜色。
在图5C中,scRGB源设备颜色存在于源设备端。在计算完源设备和目标设备之间的设备连接概要后,通过fromCIEXYZ功能(包含设备连接概要)产生与设备相关的目标颜色。或者,通过fromCIEXYZ功能(包含设备连接概要)产生扩展的与设备相关的目标颜色。在这个转换中,由于Xcms颜色是无符号的短型,而scRGB是有符号的浮点型,所以提供了补偿。可选地,色调压缩可以通过附加的3个1-DLUT独立完成。
其它的颜色管理方案,如RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)、esRGB(HP/PIMA),也可以通过使用图5C的例子而得到支持。在上述的每一个本发明例子中,X功能fromCIEXYZ和toCIEXYZ被假冒以从现代颜色管理系统中接收数据。
关于对API的假冒的细节,这里建议了两个非限定性的选择。第一个,当从与设备无关的应用内容移动到与设备相关的颜色值时,本发明对fromCIEXYZ功能进行假冒,以在实际中从与设备相关的颜色值转变为CIEXYZ,然后使用3×3矩阵和1-D LUT来刻画特定输出设备的特征。为了将与设备相关(dd)的值转变为与设备无关(di)的值,本过程被反转并且对toCIEXYZ API进行假冒。
或者,当从与设备无关的应用内容移动到与设备相关的颜色值时,本发明对fromCIEXYZ API进行假冒,以在实际中从与设备相关的颜色值转变为CIEXYZ,然后将3×3矩阵设置为等同矩阵及将1-DLUT设置为等同LUT,以支持复杂的不能被矩阵和LUT所刻画的目标设备。为了将与设备相关(dd)的值转变为与设备无关(di)的值,本过程被反转并且对toCIEXYZ API进行假冒。
在此,“假冒fromCIEXYZ”或“假冒toCIEXYZ”的意思是,将指针所指向的协议默认提供的功能替换为一个定制功能,此用户功能实际上在ICC兼容的颜色管理模块中进行调用,并将颜色由dd转换为di或由dd转换为dd。
如上面所提及的,虽然本发明的示例性的实施例是和各种各样的计算设备和网络结构一起描述的,但是基本概念可以应用到颜色管理系统所希望的任何计算设备或系统中。因此,依据本发明提供改进的信号处理的技术可以应用于各种应用和设备中。例如,本发明的算法可以应用于一个计算设备的操作系统中,该计算设备作为设备上独立对象,作为另一个对象的部分,作为一个可以从服务器上下载的对象,作为一个设备或对象与网络间的“中间人”,作为一个分布式的对象等等。虽然此处所选择的示例性的编程语言、名字和例子分别代表不同的选择,但这些语言、名字和例子的目的并不是作为限制。本领域中的一般技术人员会明白,有大量的方法可以提供实现相同、类似或等价于本发明实现的颜色管理系统的目标代码。
此处所描述的各种技术可以和硬件或软件,或在适当的情况下与这两者的结合一起来实现。因此,本发明的方法和设备,或者它的某些方面或部分,其形式可以是体现于有形媒体(如软盘、CD-ROM、硬盘或其它任何机器可读取的存储媒体)中的程序代码(即指令),其中,当程序代码被加载到机器(如计算机)中并被执行时,该机器就成为了一个实施本发明的设备。在程序代码在可编程计算机上执行的情况下,计算设备通常包括一个处理器、一个处理器可读取的存储媒体(包括易失性的和非易失性的存储器和/或存储部件)、至少一个输入设备和至少一个输出设备。可使用本发明的信号处理服务的一个或多个程序,例如通过使用数据处理API等,最好是用高级别程序化的或面向对象的编程语言来实现的,以便与计算机系统通信。但是如果需要,程序可以用汇编或机器语言来实现。在任何情况下,语言可以是被编译或解释语言,并与硬件实现相结合。
本发明的方法和设备还可以通过具体表现为通过某种传输媒体(如通过电线或电缆,通过光纤或通过其它的任何传输形式)而传输的程序代码形式通信来实现,其中,当程序代码被接收和加载到机器中并被执行时,如EPROM、门阵列、可编程逻辑器件(PLD)、客户计算机、录像机等,或一个具有上述实施例中所述信号处理能力的接收机,就变成了实现本发明的设备。当在一个通用处理器上实现时,程序代码和处理器一起来提供一个调用本发明的功能的独特的设备。另外,与本发明相关的任何存储技术可以总是硬件和软件的结合。
虽然本发明是与各个附图所示优选实施例一起来描述的,但是应该明白,其它类似的实施例也可以使用,或者可以对所描述的实施例进行修改和增加来执行与本发明相同的功能,而不背离本发明。例如,虽然本发明示例性的网络环境是以网络化环境的上下文来描述的,如对等网络化环境,但本领域中的技术人员可以理解本发明并不局限于此,并且在本申请中所描述的方法可以应用到任何计算设备或环境中,如游戏控制台、手持计算机、便携式计算机等等,无论是有线的或无线的,并且可以应用于任何数量的通过通信网络相连并在网络中交互的这种计算设备中。另外,应当强调,各种计算机平台,包括手持设备操作系统和其它应用所特有的操作系统,都是所预期的,特别是在无线网络设备的数量在继续增长的情况下。还有,本发明可以通过大量处理芯片或设备实现,存储同样可通过大量设备实现。因此,本发明不应该被限制于任何单一的实施例,而是应该根据附属的权利要求的广度和范围被解释。
权利要求
1.一种提供颜色管理的方法,包括从至少一个源设备处接收与设备无关的颜色数据,以将其转换到至少一个目标设备;生成表示所述至少一个源设备和所述至少一个目标设备之间的至少一个颜色特征差异的设备连接概要;对颜色管理系统的至少一个应用编程接口功能进行假冒;以及调用所述至少一个应用编程接口功能来为所述至少一个目标设备生成与目标设备相关的颜色值。
2.如权利要求1所述的方法,其中所述假冒包括对至少一个X11应用编程接口功能进行假冒。
3.如权利要求2所述的方法,其中所述假冒包括假冒toCIEXYZ功能和fromCIEXYZ功能中至少之一。
4.如权利要求1所述的方法,其中所述假冒包括为至少一个应用编程接口功能提供设备连接概要。
5.如权利要求1所述的方法,其中所述至少一个源设备和所述至少一个目标设备包括计算设备和软件对象中至少之一。
6.如权利要求1所述的方法,还包括调用第二个颜色管理系统的至少一个功能。
7.如权利要求6所述的方法,其中所述调用第二个颜色管理系统的至少一个功能包括调用颜色管理模块(CMM)。
8.如权利要求1所述的方法,其中所述与设备无关的颜色数据包括标准彩色空间(sRGB)数据、标准扩展彩色空间(scRGB)数据、国际颜色联盟(ICC)概要数据、以及青色、品红色、黄色和黑色(CMYK)数据中至少之一。
9.如权利要求1所述的方法,其中所述与设备无关的颜色数据包括scRGB、RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)和esRGB(HP/PIMA)颜色数据中至少之一。
10.如权利要求9所述的方法,还包括将有符号的符点数转换为无符号短型数。
11.如权利要求9所述的方法,其中所述调用包括在设备连接概要中通过3个1-D查询表(LUT)来提供色调压缩。
12.如权利要求1所述的方法,其中所述假冒包括对至少一个应用编程接口功能进行假冒以将与设备相关的颜色值转换为CIEXYZ值;以及下面两者之一(1)在设备连接概要中使用3×3矩阵和1-D查询表(LUT)来刻画特定输出设备的特征;(2)将设备连接概要的3×3矩阵设置为等同矩阵及将设备连接概要的1-D LUT设置为等同LUT。
13.如权利要求1所述的方法,其中所述方法是可反向的,它反过来将与设备相关的颜色值转换为与设备无关的值,所述假冒包括对应用编程接口的toCIEXYZ功能进行假冒。
14.如权利要求1所述的方法,其中所述假冒包括将指针所指向的提供给所述至少一个应用编程接口功能的协议默认功能,替换为调用ICC兼容的颜色管理模块的定制功能。
15.用于提供权利要求1的可控纹理样例的操作系统、驱动器代码、应用编程接口、工具箱和协处理器中的至少一个。
16.一种传载用于执行权利要求1的方法的计算机可执行指令的调制数据信号。
17.一种包含用于执行权利要求1的方法的装置的计算设备。
18.一种提供颜色管理的计算机可读取的媒体,在其上存储有计算机可执行指令以执行一种方法,该方法包括从至少一个源设备处接收与设备无关的颜色数据,以将其转换到至少一个目标设备;生成表示所述至少一个源设备和所述至少一个目标设备之间的至少一个颜色特征差异的设备连接概要;对颜色管理系统的至少一个应用编程接口功能进行假冒;以及调用所述至少一个应用编程接口功能来为所述至少一个目标设备生成与目标设备相关的颜色值。
19.如权利要求18所述的计算机可读取的媒体,其中所述假冒包括对至少一个X11应用编程接口功能进行假冒。
20.如权利要求19所述的计算机可读取的媒体,其中所述假冒包括对toCIEXYZ和fromCIEXYZ功能中至少之一进行假冒。
21.如权利要求18所述的计算机可读取的媒体,其中所述假冒包括为至少一个应用编程接口功能提供设备连接概要。
22.如权利要求18所述的计算机可读取的媒体,其中所述至少一个源设备和所述至少一个目标设备包括计算设备和软件对象中至少之一。
23.如权利要求18所述的计算机可读取的媒体,还包括调用第二个颜色管理系统的至少一个功能。
24.如权利要求23所述的计算机可读取的媒体,其中所述调用第二个颜色管理系统的至少一个功能包括调用颜色管理模块(CMM)。
25.如权利要求18所述的计算机可读取的媒体,其中所述与设备无关的颜色数据包括标准彩色空间(sRGB)数据、标准扩展彩色空间(scRGB)数据、国际颜色联盟(ICC)概要数据、以及青色、品红色、黄色和黑色(CMYK)数据中至少之一。
26.如权利要求18所述的计算机可读取的媒体,其中所述与设备无关的颜色数据包括scRGB、RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)和esRGB(HP/PIMA)颜色数据中至少之一。
27.如权利要求26所述的计算机可读取的媒体,还包括将有符号的符点数转换为无符号短型数。
28.如权利要求26所述的计算机可读取的媒体,其中所述调用包括在设备连接概要中通过3个1-D查询表(LUT)来提供色调压缩。
29.如权利要求18所述的计算机可读取的媒体,其中所述假冒包括对至少一个应用编程接口功能进行假冒以将与设备相关的颜色值转换为CIEXYZ值;以及下面两者之一(1)在设备连接概要中使用3×3矩阵和1-D查询表(LUT)来刻画特定输出设备的特征;(2)将设备连接概要的3×3矩阵设置为等同矩阵及将设备连接概要的1-D LUT设置为等同LUT。
30.如权利要求18所述的计算机可读取的媒体,其中所述方法的操作是可反向的,它反过来将与设备相关的颜色值转换为与设备无关的值,所述假冒包括对应用编程接口的toCIEXYZ功能进行假冒。
31.如权利要求18所述的计算机可读取的媒体,其中所述假冒包括将指针所指向的提供给所述至少一个应用编程接口功能的协议默认功能,替换为调用ICC兼容的颜色管理模块的定制功能。
32.一种用于与颜色管理一起使用的计算设备,包括从至少一个源设备处接收与设备无关的颜色数据以将其转换到至少一个目标设备的输入部件;生成表示所述至少一个源设备和所述至少一个目标设备之间的至少一个颜色特征差异的设备连接概要的处理部件;对颜色管理系统的至少一个应用编程接口功能进行假冒的假冒部件;以及调用所述至少一个应用编程接口功能来为所述至少一个目标设备生成与目标设备相关的颜色值的输出部件。
33.如权利要求32所述的计算设备,其中所述假冒部件对至少一个X11应用编程接口功能进行假冒。
34.如权利要求33所述的计算设备,其中所述假冒部件对toCIEXYZ功能和fromCIEXYZ功能中至少之一进行假冒。
35.如权利要求32所述的计算设备,其中所述假冒部件为至少一个应用编程接口功能提供设备连接概要。
36.如权利要求32所述的计算设备,其中所述至少一个源设备和所述至少一个目标设备包括计算设备和软件对象中至少之一。
37.如权利要求32所述的计算设备,还包括调用第二个颜色管理系统的至少一个功能的调用部件。
38.如权利要求37所述的计算设备,其中所述调用部件调用第二个颜色管理系统的至少一个功能包括调用颜色管理模块(CMM)。
39.如权利要求32所述的计算设备,其中所述与设备无关的颜色数据包括标准彩色空间(sRGB)数据、标准扩展彩色空间(scRGB)数据、国际颜色联盟(ICC)概要数据、以及青色、品红色、黄色和黑色(CMYK)数据中至少之一。
40.如权利要求32所述的计算设备,其中所述与设备无关的颜色数据包括scRGB、RIMM RGB(EK/PIMA)、ROMM RGB(EK/PIMA)和esRGB(HP/PIMA)颜色数据中至少之一。
41.如权利要求40所述的计算设备,还包括将有符号的符点数转换为无符号短型数的转换部件。
42.如权利要求40所述的计算设备,其中所述调用部件在设备连接概要中通过3个1-D查询表(LUT)来提供色调压缩。
43.如权利要求32所述的计算设备,其中所述假冒部件对至少一个应用编程接口功能进行假冒以将与设备相关的颜色值转换为CIEXYZ值,和下面两者之一(1)在设备连接概要中使用3×3矩阵和1-D查询表(LUT)来刻画特定输出设备的特征;(2)将设备连接概要的3×3矩阵设置为等同矩阵及将设备连接概要的1-D LUT设置为等同LUT。
44.如权利要求32所述的计算设备,其中所述部件的操作是可反向的,它反过来将与设备相关的颜色值转换为与设备无关的值,所述假冒部件对应用编程接口的toCIEXYZ功能进行假冒。
45.如权利要求32所述的计算设备,其中所述假冒部件将指针所指向的提供给所述至少一个应用编程接口功能的协议默认功能,替换为调用ICC兼容的颜色管理模块的定制功能。
46.一种提供颜色管理的方法,包括从至少一个源设备处接收与设备无关的颜色数据,以将其转换到至少一个目标设备;生成表示所述至少一个源设备和所述至少一个目标设备之间的至少一个颜色特征差异的设备连接概要;对至少一个X11应用编程接口功能进行假冒;以及调用所述至少一个X11应用编程接口功能来为所述至少一个目标设备生成与目标设备相关的颜色值。
47.如权利要求46所述的方法,其中所述假冒包括假冒toCIEXYZ功能和fromCIEXYZ功能中至少之一。
48.如权利要求46所述的方法,其中所述假冒包括为至少一个X11应用编程接口功能提供设备连接概要。
49.如权利要求46所述的方法,还包括调用颜色管理模块(CMM)系统的至少一个功能。
50.如权利要求46所述的方法,其中所述假冒包括对至少一个X11应用编程接口功能进行假冒以将与设备相关的颜色值转换为CIEXYZ值;以及下面两者之一(1)在设备连接概要中使用3×3矩阵和1-D查询表(LUT)来刻画特定输出设备的特征;(2)将设备连接概要的3×3矩阵设置为等同矩阵及将设备连接概要的1-D LUT设置为等同LUT。
51.如权利要求46所述的方法,其中所述方法是可反向的,它反过来将与设备相关的颜色值转换为与设备无关的值,所述假冒包括对X11应用编程接口的toCIEXYZ功能进行假冒。
52.如权利要求46所述的方法,其中所述假冒包括将指针所指向的提供给所述至少一个X11应用编程接口功能的协议默认功能,替换为定制功能。
53.提供颜色管理、在其上存储大量计算机可执行模块包括计算机可执行指令的至少一种计算机可读取的媒体,这些模块包括用于从至少一个源设备处接收与设备无关的颜色数据,以将其转换到至少一个目标设备的方法;用于生成表示所述至少一个源设备和所述至少一个目标设备之间的至少一个颜色特征差异的设备连接概要的方法;用于对颜色管理系统的至少一个应用编程接口功能进行假冒的方法;以及用于调用所述至少一个应用编程接口功能来为所述至少一个目标设备生成与目标设备相关的颜色值的方法。
54.如权利要求53所述的至少一种计算机可读取的媒体,其中所述用于假冒的方法对至少一个X11应用编程接口功能进行假冒。
55.一种与颜色管理系统一起使用的计算设备,包括用于从至少一个源设备处接收与设备无关的颜色数据以将其转换到至少一个目标设备的装置;用于生成表示所述至少一个源设备和所述至少一个目标设备之间的至少一个颜色特征差异的设备连接概要的装置;用于对颜色管理系统的至少一个应用编程接口功能进行假冒的装置;以及用于调用所述至少一个应用编程接口功能来为所述至少一个目标设备生成与目标设备相关的颜色值的装置。
56.如权利要求55所述的计算设备,其中所述用于假冒的装置对至少一个X11应用编程接口功能进行假冒。
全文摘要
提供与各种具有不同颜色显示特征的计算设备相关的颜色管理的系统和方法。X11图形平台得到扩展以支持开始并结束于与设备相关的颜色的颜色管理系统,如ICC、sRGB和scRGB。同时支持CMYK彩色空间和X11R6中的扩展RGB彩色空间,从而将X11R6图形平面扩展为支持任意的现代颜色管理标准。
文档编号G09G5/06GK1467655SQ031105
公开日2004年1月14日 申请日期2003年4月10日 优先权日2002年6月24日
发明者迈克尔·D·斯托克斯, 艾德利恩·塞切, 恩 塞切, 迈克尔 D 斯托克斯 申请人:微软公司

最新回复(0)