用于开发分层平台组件的方法和系统
技术领域
本发明涉及开发分层平台组件的技术。
背景
在操作系统平台中提供新功能可以是困难且有问题的尝试。一般地,这要求修改或替换硬编码的平台组件和与这些组件相关联的应用程序接口(API)。例如,考虑包括提供能够使用新图像数据和相关联的元数据的另外的或更为复杂的色彩处理功能的经升级的色彩管理系统的新操作系统平台版本。通常,改变与该新功能和数据/元数据相关联的API模块中的那些API以便能够识别和适应该新信息。然而,这种改变通常导致相对于被设计成在正被改变的传统API上运行的传统应用程序和/或设备的兼容性问题。为了保持与API兼容,设备厂商由此经常被迫替换或修改其产品——这通常需要在作出必要的程序改变之前熟悉API模块中新的或经修改的API。
虽然有一些解决方案,诸如将传统对象作为传统对象对待,并将高级对象作为高级对象对待,但厂商仍然有在每次发布新版本时修改或替换他们的应用程序/设备的负担,这通常限制了对单个升级过程的修改和替换。
发明内容
下文中描述的方法和系统提供了开发诸如色彩管理系统等操作系统平台组件的分层方法。在至少某些实施例中,这可以通过提供新功能和通过使用包括现有API的现有API模块来接收可以与当前功能、传统功能或新功能相关联的输入来实现。此外,概念上位于操作系统现有公共API模块下面的基于规则的模块可被用来确定用于所接收到的输入的适当的处理功能——接着可以相应地处理所述接收到的输入。这样,可以使用逐步分阶段的方式将处理功能添加到平台,而无需改变现有的API来适应该功能。
附图简述
图1示出了依照一个实施例的其中可采用本发明原理的合适的计算环境。
图2示出了依照一个实施例的示例性系统。
图3是依照一个实施例的描述方法中各步骤的流程图。
图4示出了依照一个实施例的示例性色彩管理系统。
图5是依照一个实施例的描述用于色彩管理系统的方法中的各步骤的流程图。
图6A-6C示出了依照一个实施例的示例性用户界面的用户界面屏幕。
图7示出了依照一个实施例的基于规则的逻辑的示例。
详细描述
概览
下文中描述的方法和系统提供了用于开发诸如色彩管理系统等操作系统平台组件的分层方法。在至少某些实施例中,这可以通过提供新功能和通过使用包括现有API的现有API模块来接收可以与当前功能、传统功能或新功能相关联的输入来实现。该输入可以包括诸如数据、元数据等对象。更具体地,在至少某些实施例中,对象可以包括与处理功能相关联的各种算法处理实现的控制参数。此外,概念上位于操作系统现有公共API模块下面的基于规则的模块可被用于确定用于接收到的输入的适当的处理功能——接着可以相应地处理所述接收到的输入。这样,可以使用逐步分阶段的方式将处理功能添加到平台,而无需改变现有的API来适应功能。
示例性计算环境
图1示出了其中可实现下文中描述的系统和相关方法的合适的计算环境100的示例。可以理解计算环境100仅是合适的计算环境的一个示例,而并非旨在对系统的使用范围或功能的提出任何限制。这样,各个所描述的实施例可以使用众多其它通用或专用计算系统环境或配置来操作。也不应将计算环境100解释为对此处所示的任何一个组件或其组合有任何依赖或要求。
在该示例中,计算环境100包括一个或多个计算设备102,其中每个包括一个或多个处理器104以及一个或多个计算机可读介质106。一个或多个计算 机可读介质106进而包括操作系统108以及一个或多个软件应用程序110,两者都是处理器可执行的。应用程序可以包括任何合适类型的应用程序,包括作为其功能的一部分呈现用户界面以允许与用户的交互的那些应用程序。
虽然以台式计算机的形式示出了计算设备102,但是可以明白和理解可以使用其它计算设备而不背离所要求保护的主题的精神和范围。作为示例而非限制,其它计算设备可以包括便携式计算机、诸如个人数字助理(PDA)等手持式计算机、蜂窝电话、图形输入板计算机、智能电话等。
系统也包括其它设备。具体地,监视器设备130a、打印机设备103b以及数字照相机设备130c被示为通信上直接耦合到计算设备102并且能够将输出发送到计算设备102和/或从计算设备102接收输入。虽然并未明确示出,但是本领域的技术人员可以理解这些设备就其操作和通信而言可以使用软件(例如应用程序等)、固件或它们的组合。
合适的环境可以包括物理上远程而通信上耦合的设备和/或应用程序,而不背离所要求保护的主题的精神和范围。相应地,系统100包括设备130d到130g,这些设备经由网络120通信上耦合到计算设备102并且能够将输出发送到计算设备102和/或从计算设备102接收输入。可以使用任何适当的网络,因特网是一个示例。这些设备就其操作和通信而言可以使用软件、固件或它们的组合。此外,类似于计算设备102,计算设备130f包括一个或多个软件和/或固件应用程序,这些应用程序中的至少一个能够将输入发送到诸如计算设备102等计算设备和/或从该计算设备接收输入。最后,请注意在扫描仪设备130g通信上直接耦合到计算设备130f的同时,它也经由计算设备130f和网络120通信上耦合到计算设备102。
请注意虽然在该示例中设备130a到130g与发送和/或接收图像相关数据相关联,但是可以使用能够发送输出和/或接收输入的任何合适的设备而不背离所要求保护的主题的精神和范围。
示例性实施例
图2概括地在系统200处示出了依照一个实施例的系统。该系统可被用来提供开发操作系统平台组件的分层方法。操作系统平台组件可以包括许多不同类型的组件。例如,一种组件类型是属于提供传统、当前和新色彩处理功能的 色彩管理系统。然而,也可以使用其它组件类型。作为示例而非限制,另一组件类型可以是提供简单图像缩放(例如简单像素复制)以及更复杂/详细的图像缩放解决方案(例如卷积和平滑算法以及调整这些算法的参数)的图像缩放组件。可以使用的组件类型的又一个示例是不提供文本平滑、提供简单文本平滑(例如简单抗混叠)以及提供复杂文本平滑(例如Cleartype亚像素抗混叠)的文本平滑组件。
开发操作系统平台组件的该分层方法可以通过使用包括现有API的现有的API模块以接收可以与当前功能、传统功能或新功能相关联的输入来实现。接着基于规则的模块可被用于确定用于接收到的输入的适当的处理功能——接着可以相应地处理所述接收到的输入。
系统200包括操作系统平台组件202、操作系统API模块208、应用程序/设备210和用户界面组件220。
在该示例中,操作系统平台组件202包括一个或多个处理模块204和一基于规则的模块206。处理模块204提供了用于处理可以提供给系统200的各种输入的处理功能。这种输入可以包括诸如数据和元数据等由操作系统应用程序接口模块(API)208接收或以其它方式处理的对象。此外,输入可以由诸如此处所述的应用程序/设备210等任何合适的应用程序或设备来提供。
如本领域技术人员所理解的,出于公开的目的,操作系统API模块208可以被认为包括公众可用且展示给设备和软件应用程序并且向设备和应用程序提供了与操作系统交互的直接方式的那些API。这种模块的一个市场上可购买到的示例是Windows
API(非正式地称为WinAPI),它包括微软Windows
操作系统中的一组核心的可用API。注意,在该实施例中,API模块208被描述为与操作系统平台组件202相分离。然而,在其它实施例中,API模块的全部或部分可以被包括在平台组件中,而不背离所要求保护的主题的精神和范围。
继续,基于规则的模块206在通信上耦合到API模块208和处理模块204。此外,基于规则的模块206具体化可用来基于准则确定应该使用哪一处理功能来处理接收到的包括诸如数据和元数据等对象的输入的逻辑。如将在下文中更详细描述的,这些准则可以包括在基于规则的模块中或在任何其它合适的位置 中所表达的处理偏好。此外,这些准则也可以包括与对象自身相关联的特征,诸如对处理功能或与例如处理功能的一个或多个级别相关联的参数的显式引用。
注意,在该实施例中,操作系统平台组件202被描述为包括基于规则的模块206。然而,在其它实施例中,该基于规则的模块的一些或全部对于该平台组件而言可以是外部的,而不背离所要求保护的主题的精神和范围。此外,基于规则的模块206可以用任何合适的形式来体现,使得它可以被用于确定哪一处理模块和处理功能适用于处理诸如数据和元数据等输入对象。作为示例而非限制,合适的形式可以包括:注册表数据库、硬编码的软件、可扩展标记语言(XML)数据库、基于文本的远程文件、结构化查询语言(SQL)数据库、文档偏好等。最后,在至少某些实施例中,用户可以用任何合适的手段来定义、修改或覆盖基于规则的模块206中所包含的逻辑。作为示例而非限制,这可以包括经由诸如此处所示的用户界面220等用户界面接收到的用户输入。
注意,由于基于规则的模块206是独立的并且在概念上或逻辑上位于操作系统API模块208的下面的事实,可以使得新处理功能可用并且可用于处理接收到的输入(包括诸如数据和元数据等对象),而无需替换或修改API模块208中的现有API。如下文中更详细讨论的,这是由于即使在现有API不能识别与新处理功能相关联的对象的结构和/或内容时,现有API也可用于适应包括该对象新的输入。换言之,现有API无需识别与新处理功能相关联的输入对象或者直接将这些对象与新处理功能相连接。相反,现有API仅需将这些对象与基于规则的模块206相连接,其中接着可以确定适当的处理功能。
这允许将新功能添加到操作系统平台并使其可用,而无需用户或厂商等待操作系统的新版本(具有新的或经修改的API)可用。此外,减轻了厂商必须替换或修改他们的应用程序和/或设备以与新的或经修改的操作系统API兼容的负担。相反,每个厂商可以确定他们何时或是否要修改或替换他们的产品以便利用新功能。此外,厂商和用户可以通过用逐步的、分阶段的方式引入新功能来逐渐地革新。
示例性方法
图3是依照一个实施例的描述了方法中的各步骤的流程图。该方法可以结 合任何合适的硬件、软件、固件或其组合来实现。在一个实施例中,至少某些步骤可以用与一个或多个计算设备相关联的操作系统平台形式的软件实现。
步骤300提供了具有新处理功能的与现有应用程序接口(API)相关联的新操作系统平台组件。现有API通常包括诸如在上文中描述并在图2中示出的操作系统API模块208等API模块的全部或部分。此外,就对一个或多个对象执行某一操作序列而言,新处理功能可以是先前对该平台组件不可用的任何功能。仅作为一个示例,这将在下文中更详细地描述,可以通过使新色表模型对操作系统的色彩管理系统可用新来提供新色彩处理功能。
步骤302经由一个或多个未改变的现有API来接收与新处理功能相关联的输入。应该注意,与当前操作系统功能或传统操作系统功能相关联的输入也可以由现有API以相同方式接收。如上文简要示出的,步骤302是可能的,因为API模块中的现有API能够引用和/或适应诸如数据和元数据等输入对象,而无需被修改或改变。这可以用任何合适的方式来实现。例如,在至少某些实施例中,API未识别的结构可以被嵌入在该API已识别的结构的标记部分中。这样,API通过简单地忽略未被识别的元数据结构并将其进行传递来适应它。
步骤304使用基于规则的逻辑来确定用于输入的适当的处理功能。该确定反映了基于规则的模块中的逻辑,这可基于任何准则并且可以反映用包括用户经由用户界面和/或应用程序来定义在内的任何合适的手段来定义的偏好或默认。作为示例而非限制,元数据形式的特别引用特定功能的输入对象可以使用该特定功能来处理。此外,也可以包括失败偏好,以便在元数据没有引用特定功能的情况下可以使用可用的最复杂的处理功能。
步骤306将输入与适当的处理功能相关联。这可以用任何合适的手段来实现。在至少某些实施例中,这需要使用一个或多个内部的非公共接口。
步骤308处理与输入相关联的对象。如上所述,这些对象可以包括与该数据相关联的数据和元数据。例如,在至少某些实施例中,数据可以是图像和描述图像的元数据信息——包括图像应该如何呈现或以其它方式消费。就此,处理可以包括将数据和/或元数据转换为最适于由应用程序和/或设备呈现或以其它方式消费的形式。
色彩管理
如上所述,所描述的原理和方法可以在作为色彩管理系统的操作系统模块的上下文中使用。相应地,在以下讨论中描述了在该上下文中的示例性实现。该讨论假设读者一般熟悉色表模型和色彩管理概念。有关色表模型的概述,读者可以参考由Mark D.Fairchild写的题为“Color Appearance Models(色表模型)”的文本的第215-229页,该文本由Addison Wesley Longman(有限)公司出版,版权1998。相对于数字色彩再现系统的色彩关系概念的讨论,读者可以参考http://download.microsoft.com/download/1/61/161ba512-40e2-4cc9-843a-923143f3456c/ColorMgmtConcepts.doc-(copyright2001)获得的、由Michael Stokes写的题为“Color Management Concepts(色彩管理概念)”的论文。此外,一般地有关色彩管理的信息,读者可以参考国际色彩协会的网站http://www.color.org。最后,关于在微软Windows
操作系统上下文中色彩管理的讨论,读者一般地可以参考微软的网站http://www.microsoft.com/windowsxp/using/digitalphotography/prophoto/colormgmt.mpx,特别参考http://www.microsoft.com/whdc/device/display/color/default.mspx以及http://msdn.microsoft.com/library/default.asp?rl=/library/en-us/dnicm/html/icmwp.asp。
虽然本文假设读者一般熟悉色表模型和色彩管理概念,然而仍然包括了对以下术语的定义以便于读者理解本文。
色彩管理——色彩管理是确保与图像或记录在一个设备上的其它媒体相关联的色彩在另一设备上被尽可能精确地呈现或以其它方式再现的过程。就此,目标是达到“true(真实)”或“what-you-see-is-what-you-get(所见即所得)”(WYSIWYG)色彩呈现。由于用户对色彩的感知是基于到达他们的眼睛的波长的,所以这会是困难的,因为诸如扫描仪、监视器、照相机、打印机等各种设备都使用特定的色彩定义系统,并且其所有都具有它们能够再现的特定的色彩范围和亮度值(设备的“色域”)。
色彩空间——理论的色彩系统,其中所记录的原始电压值可以相对于人眼可视的色彩来引用。每个尺寸近似地与感知到的亮度、色度和色调有关。特定 设备可以基于各种不同的色彩空间,诸如“红、绿和蓝(RGB)”、“青、紫、黄和黑”(CMYK)以及AdobeRGB。这样,色彩管理系统必须能够将来自一个色彩空间的色彩转换到另一个。
色彩管理系统——色彩管理系统使用用于色彩再现的一个或多个模型和算法,并提供将色彩数据转换成可呈现的或以其它方式可再现的结果所必须的技术。如上所述,色彩管理系统将色彩从一个色彩空间转换到另一个。此外,它在具有不同色域的设备之间映射色彩,并且理想地向用户提供精确的图像或者如有必要允许他们提供输入的其它媒体预览。操作系统中的色彩管理系统提供了用于与不同的色彩空间以及由此与不同的色彩简档相关联的设备之间的一致交换的标准手段。例如,用户可以使用扫描设备来将图像输入到计算设备的操作系统以用于显示和可能的打印。操作系统色彩管理系统进而能够接着处理该输入图像,使得它能够经由应用程序和/或打印机尽可能精确地被显示、呈现或以其它方式再现。
作为示例而非限制,Windows Vista
操作系统包括被设计成确保色彩图像和其它媒体尽可能接近地于他们的原始意图而被呈现在任何设备或应用程序上的Windows色彩系统(WCS)
——而不管输入和呈现设备/应用程序之间的成像系统和色域的差异。
色表模型——色表模型是使用参数和算法来计算在色彩空间中编码的色彩的抽象数学模型。它可以被认为包括色表属性的预测程序,色表属性包括亮度、色度和色调。相应地,一些色彩空间可以被认为是色表模型。最一般地,各种色表模型与使用数据和元数据并将色彩从一个色彩空间转换成另一个的各种级别的色彩处理功能相关联。这样,与不同色表模型相关联的不同的操作系统平台——以及不同版本的操作系统——可以包括不同级别的处理功能。作为示例而非限制,诸如微软的Windows 95
Windows 98
以及Windows XP
等传统操作系统包括称为图像色彩管理(ICM)
的色彩管理系统,它包括与诸如sRGB和CIELAB等色彩空间/色表模型相关联的色彩处理功能。然而,如上所述,Windows Vista
操作系统包括由于与色表模型CIECAM02相关联的事实而包括更高级的色彩处理功能的Windows色彩系统(WCS)
例如,不同于sRGB或CIELAB、CIECAM02支持诸如亮度和背 景性质(background nature)等镜象效应。最后,当前在CIECAM02中没有提供的诸如对光谱、光泽、半透明、空间和时间效应的支持等另外的处理功能可以在其它色表模型中获得。
图像和其它媒体数据和元数据——与图像和其它媒体相关联的数据和元数据结构提供了用于传递色彩信息以及有关色彩处理功能的参数的手段。具体地,就数字图像而言,数据提供了构成图像的像素值,而元数据是与该图像相关联的其它信息。
色彩管理系统的示例性实施例
图4概括在400处示出了其中可以实现下文中所描述的原理和方法的一个实施例。这些原理和方法可以被用于提供分层方式来开发作为色彩管理系统的操作系统平台组件。然而,可以明白和理解,这仅组成一个示例,而非用于限制所要求保护的主题的应用。相反,如上所述,可以在其它背景中采用这些原理和方法,而不背离所要求保护的主题的精神和范围。
系统400包括可以作为任何合适的操作系统平台的组件来实现的色彩管理系统402。色彩管理系统402尤其包括提供某种级别的色彩处理功能的一个或多个色彩处理模块404。此处,请注意色彩处理模块404被示为提供比当前操作系统(“当前平台”)原先所提供的更多的功能。如上所述,可以用任何合适的手段来提供该功能,诸如通过添加一个或多个新色表模型。
色彩管理系统402也包括经由一个或多个内部接口与色彩处理模块404在通信上耦合的基于规则的模块406,该内部接口不同于API模块406中的API,它不能对设备和软件应用程序公共可用。基于规则的模块406经由任何合适的接口也在通信上耦合到操作系统API模块408。注意,在该实施例中,色彩管理系统402被描述为包括基于规则的模块406。然而,在其它实施例中,基于规则的模块的一些或全部对色彩管理系统而言可以是外部的,而不背离所要求保护的主题的精神和范围。
如同上文中的基于规则的模块206,基于规则的模块406可以用任何合适的形式来体现,以使得其逻辑反映出关于适用于处理诸如数据和元数据等输入对象的偏好和/或默认的处理功能。例如,如果新功能在色彩管理系统中可用,则可以经由用户界面或其它合适的手段来容易地改变规则以便于当接收到适 当的元数据时将该功能用于该元数据。另选地或另外地,可以构造规则使得自动选择可用的最复杂的功能,从而消除了对改变用于新添加的功能的规则的需求。
继续,操作系统API模块408包括对诸如源应用程序/设备410、目的应用程序/设备430以及用户界面420等应用程序和/或设备公共可用的API。这允许源应用程序/设备410经由一个或多个API输入诸如数据和元数据414等图像或其它媒体对象以便由色彩管理系统402处理。这也允许目的应用程序/设备430接收适用于呈现、打印或以其它方式消耗的经处理的诸如数据和元数据434等图像/媒体对象。此外,这允许用户经由用户界面420输入可以定义、修改或覆盖基于规则的模块406中包含的逻辑的偏好和/或默认422。
虽然源应用程序/设备410和目的应用程序/设备430在此处被示为不同的实体,但是可以理解,一些应用程序/设备可以既是图像/媒体数据和元数据的源又是目的,而不背离所要求保护的主题的精神和范围。此外,为了简明起见,用户界面420在此处被示为不同于应用程序/设备410和目的应用程序/设备430。然而,这并非旨在解释为意味着应用程序/设备410或应用程序/设备430不能也包括用户界面。最后,注意,在该实施例中,系统API模块408被描述为与色彩管理系统402分开。然而,在其它实施例中,该API模块的全部或部分可以被包括在该管理系统中,而不背离所要求保护的主题的精神和范围。
回想上述讨论,API模块408中的现有API可被用来适应与新处理功能相关联的诸如数据和元数据等输入对象,即使现有API不能识别这些对象的结构和/或内容。这样,可以将传统和新数据和元数据结构传递给基于规则的模块406,以便于确定适当的处理功能。这允许色彩管理系统402提供与对色彩处理模块404可用的任何可用色表模型相关联的任何色彩处理功能,而不管它是与传统操作系统(传统平台)还是与当前操作系统版本(当前平台)(在安装时)相关联。此外,在安装了当前操作系统版本之后也可以提供对色彩处理模块404可用的新色彩处理功能,因为无需修改或替换API模块408中硬编码的API。换言之,可以使得新色表模型或其它插件功能对色彩处理模块404(以及由此的色彩管理系统402)可用,并且可在任何时候将其用于处理而无需API改变。
为了帮助读者理解该发明性特征,再次考虑以上涉及包括WCS
色彩管理系统的Windows Vista
操作系统示例,WCS
色彩管理系统至少在第一版本中包括与CIECAM02色表模型相关联的处理功能。在图4的上下文中,当前平台处的色彩处理功能(“B”)是相对于CIECAM02模型可用的功能。同样,注意,由传统Windows
操作系统版本提供的功能(“A”)(与诸如sRGB和CIELAB等先前的色表模型相关联)也可以仍然可用。最后,如上所述,新功能(“C”)可以被添加到当前操作系统版本,并以逐步分阶段的方式使其可用。如上所述,新功能的示例可以包括对功能“A”或“B”不可用的光谱、光泽或半透明效应的支持。这样,可以采取分层方式来开发色彩管理系统402——其中厂商和用户可以在他们认为适当的任何时候引入新色彩处理功能和/或可以由该功能使用的输入数据/元数据。
色彩管理系统的示例性方法
图5是依照色彩管理系统的上下文中的一个实施例的描述了方法中的各步骤的流程图。该方法可以结合任何合适的硬件、软件、固件或其组合来实现。在一个实施例中,该方法以与一个或多个计算设备相关联的操作系统平台形式的软件来实现。
步骤500经由应用程序接口(API)向基于规则的模块提供输入。在至少一些实施例中,该输入包括诸如源图像和元数据等可以用任何合适的方式来提供的对象。更具体地,在一些实施例中,对象可以包括与相关联于处理功能的各种算法处理实现的控制参数相关联的源图像数据和元数据。例如,如以上在图1中示出的,诸如打印机、摄像机、打印机、扫描仪和计算设备等设备(它们可以使用软件、固件或其组合)以及应用程序可以将源图像数据和元数据输入到包括操作系统API模块和基于规则的模块的计算设备。
此外,回想即使API未识别输入数据和元数据的结构和/或内容,API也可适应它,。换言之,传统API可用于提供它们原先没有设计成识别或适应的新图像数据/元数据。这可以用任何合适的方式来实现。例如,在至少一些实施例中,为传统标记图像文件格式(TIFF)结构设计的API可以通过将XML嵌入在专用TIFF标记中,来适应基于可扩展标记语言(XML)的新图像数据/元数据结构。这样,API通过简单地忽略元数据结构并将其进行传递来适应它。
步骤502提供了用于处理输入的选项。如上所述,这些选项包括由诸如图4中描述的色彩处理模块404等一个或多个色彩处理模块提供的可用的色彩处理功能。回想由于无需改变API,因此这些选项可以包括传统处理能力、当前处理能力以及作出任何API改变后可用的新处理能力。
步骤504确定要使用哪一选项来处理输入。这通过使用基于规则的模块的逻辑来确定用于数据和元数据的适当的色彩处理功能来实现。如上所述,该逻辑可以基于任何准则,并且可以反映用包括经由用户界面或其它合适的方法在内的任何合适的手段定义的偏好和/或默认。例如,再次考虑上述实施例,其中包括基于XML的新图像数据/元数据的输入被嵌入在专用TIFF标记中,使得它能由现有API适应。至少部分基于该信息在专用TIFF标记中的存在,基于规则的逻辑可用于确定要使用哪一处理功能。
步骤506向适当的处理模块提供输入。如上所述,这可以用诸如通过使用内部接口等任何合适的手段来实现。其后,步骤508处理数据/元数据并将经处理的数据/元数据提供给应用程序和/或设备。如以上简要描述的以及本领域的技术人员可以明白和理解的,这通常包括转换和映射图像/媒体数据和/或元数据,使得应用程序和/或设备可以使用所得的经处理的数据和/或元数据来尽可能精确地显示、呈现或以其它方式再现图像或其它媒体。
实现示例
图6A-6C示出了其中可以实现上述的原理和方法的示例性用户界面。虽然这些示例示出了在Windows Vista
操作系统的上下文中实现的特定用户界面,应该注意,在该说明书中描述的原理可以结合任何应用程序中的任何用户界面来使用。此外,可以明白和理解,这仅构成一个示例,而非用于限制所要求保护的主题的应用。相反,如上所述,在该说明书中描述的原理可以在其它上下文中采用而不背离所要求保护的主题的精神和范围。
在该示例中,标记为“色彩管理”的用户界面包括三个选项卡,其每一个都与用户屏幕相关,所述用户屏幕向用户提供可用于指定偏好和/或默认的窗口、按钮和/或复选框。如上所述,这些偏好和/或默认可以反映在色彩管理系统所使用的基于规则的模块的逻辑中。图6A示出了标记为“设备”的用户界面屏幕。图6B示出了标记为“所有简档”的界面屏幕,以及图6C示出了标 记为“高级”的界面屏幕。
图6A中标记为“设备”的界面屏幕包括与可通过使用下拉选择窗口从一组可能的设备中选出的特定设备相关联的简档列表,此处该设备在下拉选择窗口602A中被示为“Printer:Fabrikam Printomatic BCJ 4300”。与下拉选择窗口602A相关的是允许用户选择是否对窗口602A中所选的设备使用用户的设置的复选框604A。同样与窗口602A相关的是允许用户选择是手动选择一个或多个简档以便与窗口602A中标识的设备相关联还是另选地自动选择简档的下拉屏幕606A。这些简档是根据国际色彩协会(ICC)所定义的标准格式来定义的,并且通过定义将输入发送到色彩管理系统的设备以及接收来自色彩管理系统的输出的设备之间的映射来描述特定设备的色彩属性。回想各种设备使用各种色彩定义系统(色彩空间)并具有它们能够再现的特定范围的色彩和亮度值(它们的“色域”)。相应地,色彩管理系统将色彩从一个系统(色彩空间)转换到另一个,并且在设备之间执行色域映射。通过根据标准ICC格式来定义这些简档,可以便于该变换和映射。
此外,注意在图6A中所示的界面屏幕包括允许用户通过点击添加按钮(“添加…”)来查看和选择可用简档的简档按钮,所述可用简档可以与在窗口602A(“简档”)中标识的设备相关联。此外,提供了允许用户移除和设置在窗口602A中选择和标识的设备的默认简档的按钮(“移除”和“设置为默认简档”)。与在窗口602A中标识的设备相关联的这些简档在窗口608A中为用户列出,并且可以如上所述由用户选择和移除或设置为默认。
此外,注意,在图6A中所示的界面屏幕向用户呈现出标记为“理解色彩管理设置”的链接,用户可以跟随它来学习有关色彩管理和可用设置的更多内容。最后,包括在界面屏幕底部的是使用户能够关闭色彩管理用户界面的按钮(“关闭”)。
图6B中的标记为“所有简档”的界面屏幕包括滚动选择窗口602B,它列出了安装在系统上的所有色彩简档。注意,这些简档在逻辑上被分类为“WCS设备简档”、“WCS查看条件简档”或“WCS色域映射简档”。这些分类对应于与设备、查看条件和色域映射相关联的色彩简档,如在上文中部分简要描述的以及本领域的技术人员所理解的。
此外,注意图6B中所示的界面屏幕包括窗口604B,它提供了对窗口602B中标识的每个所选简档的详细描述。还包括了使用户能够向系统添加或从中移除所选色彩简档的两个按钮(“添加…”和“移除”)。最后在界面屏幕底部包括的是使用户能够关闭色彩管理用户界面的按钮(“关闭”)。
图6C中标记为“高级”的界面屏幕包括使用户能够指定色彩管理系统的默认的多个下拉选择窗口。这些默认包括设备简档默认(下拉框602C)、查看条件简档默认(下拉框604C)以及对色域映射默认的呈现意图(下拉框606C)。如本领域技术人员理解和明白的,设备简档默认描述了独立于任何查看条件的设备的特定实例,而查看条件简档默认描述了特定查看条件的参数(诸如白点,周围亮度等)——如色表模型所描述的。此外,对色域映射默认的呈现意图可用于确定相对于具有不同色域的应用程序/设备要使用哪种类型的色域映射。
此外,注意,这些默认对应于每个特定用户。相应地,提供了使用户能够对新用户和共享打印机作出默认改变的系统默认按钮(“改变系统默认…”)。最后,在界面屏幕底部包括的是使用户能够关闭色彩管理用户界面的按钮(“关闭”)。
图7示出了依照一个实施例的、反映相对于用于数据和元数据的处理功能的偏好和/或默认的、流程图的形式的示例性的基于规则的逻辑。该逻辑仅提供了可以如何实现上述原理和方法的一个示例。因此,可以明白和理解,可以使用实现所述实施例的其它手段而不背离所要求保护的主题的精神和范围。此外,回想上文,诸如该示例中的逻辑等基于规则的逻辑可以经由诸如在以上描述的并在图6A-6C中示出的用户界面等用户界面来容易地改变。
步骤700接收要由基于规则的逻辑分析的输入图像元数据。步骤710接着判定元数据是否引用被插入到系统中的功能(“插件”)。功能可以用任何合适的方式插入到系统中。例如,在至少一些实施例中,可以使用动态链接库(DLL)模块来提供与先前不可用的第三方色表模型相关联的色彩处理功能。这里,如果不是(“否”分支),则逻辑前进到步骤730,如下所述。然而,如果是(“是”分支),则步骤712判定插件是否可用。如果不可用(“否”分支),则逻辑前进到步骤720,如下所述。然而,如果可用(“是”分支), 则步骤714判定元数据是否包含完整插件参数。完整插件参数可以被认为是插件处理元数据所必须的那些参数。如果元数据不包含完整插件参数(“否”分支),则步骤716从默认获取缺少的元数据参数,并且接着步骤718用插件处理元数据。然而,如果元数据确实包含完整插件参数(“是”分支),则不采取步骤716,且步骤718用插件处理元数据。
现在参考步骤720,在元数据引用的插件不可用的情况下采取该步骤,该步骤判定元数据是否包含处理该元数据所必须的完整基准参数。如果不是(“否”分支),则步骤722从默认获取该缺少的元数据信息,接着步骤724使用基准参数来处理元数据。然而,如果元数据确实包含完整基准参数(“是”分支),则不采取步骤722,且步骤724用基准参数处理元数据。
现在参考步骤730,在元数据没有引用插件的情况下采取该步骤,该步骤判定关于使用指定为“L4”的处理功能级别或最复杂的可用功能是否有偏好。注意,在该示例中,最复杂的可用处理功能级别是L4,逻辑上在指定为L3-L1的较不复杂的级别之前考虑它。这样,基于规则的逻辑能够提供失败机制,其中当偏好如此指示时可用的最复杂的功能可用于元数据输入。此外,如上所述,在色彩处理的上下文中,这些级别的功能通常与不同的色表模型相关联。作为示例而非限制,处理功能级别L4可以与被称为“sCAM”的色表模型相关联,而级别L3-L1可以分别与“iCAM”、“CAM”和“CAT”相关联。这里,如果没有对于使用L4或最复杂的可用功能的偏好(“否”分支),则逻辑前进到步骤740,如下所述。然而,如果有这样的偏好(“是”分支),则步骤732判定元数据是否包含L4细节。这些细节可以被认为是一个或多个L4算法所要求的那些参数。如果不是(“否”分支),则步骤734从默认获取该缺少的元数据信息,接着步骤736通过使用L4功能来处理元数据(“使用L4基线来处理元数据”)。然而,如果元数据确实包含L4细节(“是”分支),则不采取步骤734,而步骤736通过使用L4功能来处理元数据。
现在参考步骤740,在没有对于使用L4功能或最为复杂的功能的偏好的情况下采取该步骤,该步骤判定是否有对于使用指定为“L3”的处理功能级别的偏好。注意,在该示例中,L3是L4之后下一个最为复杂的功能级别——L2和L1是较不复杂的级别。这里,如果没有这样的偏好(“否”分支),则逻 辑前进到步骤750,如下所述。然而,如果有这种偏好(“是”分支),则步骤742确定元数据是否包含L3细节。如果不包含(“否”分支),则步骤744从默认获取该缺少的元数据信息,接着步骤746通过使用L3功能来处理元数据(“用L3基线来处理元数据”)。然而,如果元数据确实包含L3细节(“是”分支),则不采取步骤744,而步骤746通过使用L3功能来处理元数据。
现在参考步骤750,在没有对于使用L3功能的偏好的情况下采取该步骤,该步骤判定是否有对于使用指定为“L2”的处理功能级别的偏好。这里,如果没有这样的偏好(“否”分支),则逻辑前进到步骤760,如下所述。然而,如果有这种偏好(“是”分支),则步骤752确定元数据是否包含L2细节。如果不包含(“否”分支),则步骤754从默认获取该缺少的元数据信息,接着步骤746通过使用L2功能来处理元数据(“用L2基线来处理元数据”)。然而,如果元数据确实包含L2细节(“是”分支),则不采取步骤754,而步骤756通过使用L2功能来处理元数据。
现在参考步骤760,在没有对于使用L2功能的偏好的情况下采取该步骤,该步骤判定元数据是否包含L1细节。注意,在该示例中,L1功能是在偏好没有指示应该使用最复杂的功能的情况下用于元数据的处理功能的失败级别。这样,没有对是否有使用该级别的偏好的判定,因为未被更复杂的功能处理的所有元数据默认地是通过使用L1功能来处理的。这里,如果元数据不包含L1细节(“否”分支),则步骤762从默认获取该缺少的元数据信息,接着步骤764通过使用L1功能来处理元数据(“用L1基线来处理元数据”)。然而,如果元数据确实包含L1细节(“是”分支),则不采取步骤762,而步骤764通过使用L1功能来处理元数据。
结论
尽管用对结构特征和/或方法步骤专用的语言描述了本发明,但可以理解,所附权利要求书中定义的发明不必限于上述具体特征或步骤。相反,具体特征和步骤作为实现所要求保护的发明的优选形式公开的。