用于支持对于预乘数据的颜色变换的方法技术

技术编号:14453432 阅读:53 留言:0更新日期:2017-01-19 00:40
一种用于变换颜色数据的方法,包括:从存储器读取在第一颜色空间中表示的颜色数据;将该颜色数据变换为去预乘的颜色数据;将去预乘的颜色数据从第一颜色空间变换到第二颜色空间;将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据;和向存储器写入该第一预乘颜色数据。

【技术实现步骤摘要】

本专利技术涉及用于变换颜色数据的方法和颜色变换系统。
技术介绍
通常需要颜色空间变换用于在诸如个人计算机(PC)或打印机系统的不同计算系统上处置电子文档或图像的颜色数据。一般来说,取决于计算系统来选择适当颜色空间。例如,一般使用RGB颜色空间用于由PC在监视器上显示电子文档和图像,并且使用CMYK颜色空间用于由打印机系统在纸张上输出打印数据。由此,打印机系统必须在打印之前将打印数据从RGB转换为CMYK。一些颜色数据可需要在颜色空间变换之前和之后的附加变换。这样的颜色数据可包括颜色值(例如,RGB颜色空间中的红、绿和蓝)以及正常用作不透明性通道的阿尔法通道值(例如,0–100%)。为了表示透明程度,每一颜色值与阿尔法通道值相乘。一般来说,已知用于用不透明性来表示相同颜色的两类表示——直接和预乘。在直接表示中,颜色值(即,红、绿和蓝)不与阿尔法通道相乘。另一方面,在预乘表示中,颜色值与阿尔法值相乘。例如,如果电子文档规定50%透明的(阿尔法=127)RGB颜色空间(RGB=255,0,0)中的红色像素,则预乘颜色数据将实际为RGBa=(127,0,0,127)。然而,传统颜色管理模块严格聚焦于将颜色从一个颜色空间变换为另一颜色空间。由此,将预乘的颜色馈送到颜色管理模块中可导致不正确的输出。继续以上示例,颜色变换半透明预乘红色像素将需要将RGB=(127,0,0)输入到颜色管理模块中。尽管预期的颜色是纯红色,但是将由颜色变换产生的颜色数据实际上是新颜色空间中的暗红色。因此,需要被颜色变换的任何预乘输入数据必须首先被“去预乘(un-premultiplied)”。此外,变换的颜色数据需要被“重新预乘(re-premultiplied)”用于期望预乘颜色数据的应用。传统上,已执行以下步骤以运行预乘颜色数据从RGBa(RGB+阿尔法通道)到CMYKa(CMYK+阿尔法通道)的颜色变换:-步骤1:去预乘所有颜色像素(RGBa)以将颜色数据恢复为传统颜色变换模块所期望的表示。-步骤2:向传统颜色变换模块发送所有颜色像素,以将颜色从RGBa变换为CMYKa。-步骤3:如果对数据的附加处理期望预乘状态,则重新预乘所有颜色像素,以将颜色数据恢复为预乘状态(CMYKa)。尽管“去预乘”步骤(步骤1)和“重新预乘”步骤(步骤3)不存在显著CPU成本,但是存在显著存储器成本。首先,计算系统必须将四个通道(RGBa)的整个扫描线“去预乘”为三个通道(RGB)的单独缓冲器。这需要访问存储器以一次读取和写入扫描线中的每一像素。然后,颜色管理模块将3个通道(RGB)的整个扫描线变换为4个通道(CMYK)的单独缓冲器,再次访问存储器以一次读取和写入每一像素。然后,需要第三遍(pass)来将4个通道(CMYK)的整个扫描线“重新预乘”为5个通道(CMYKa)的单独缓冲器,需要第三存储器访问以读取和写入每一像素。尽管该计算不是昂贵的,但是该三步骤变换需要过度存储器访问并对运行颜色变换的系统的性能产生消极影响。
技术实现思路
一般来说,本专利技术涉及用于将颜色数据从一个颜色空间变换为另一颜色空间的方法。在根据一个或多个实施例的一个方面中,一种用于变换颜色数据的方法包括:从存储器读取在第一颜色空间中表示的颜色数据;将该颜色数据变换为去预乘的颜色数据;将去预乘的颜色数据从第一颜色空间变换到第二颜色空间;将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据;和向存储器写入该第一预乘颜色数据。在根据一个或多个实施例的另一方面中,一种颜色变换系统包括:存储器,存储第一颜色空间中表示的颜色数据;和处理器,从该存储器读取颜色数据,将该颜色数据变换为去预乘的颜色数据,将去预乘的颜色数据从第一颜色空间变换到第二颜色空间,将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据,和向存储器写入该第一预乘颜色数据。本专利技术的其它方面将根据以下描述和所附权利要求而清楚。附图说明图1示出了根据本专利技术一个或多个实施例的系统的框图。图2-4的每一个示出了根据本专利技术一个或多个实施例的流程图。图5和6的每一个示出了根据本专利技术一个或多个实施例的用于对颜色数据进行去预乘或预乘的示例代码。图7示出了根据本专利技术一个或多个实施例的计算机系统。具体实施方式现在将参考附图来详细描述本专利技术的特定实施例。为了一致用相同附图标记来表示各个图中的相同元件。在本专利技术实施例的以下详细描述中,阐明多个特定细节以提供本专利技术的更全面理解。然而,本领域技术人员将清楚的是,可在没有这些特定细节的情况下实践本专利技术。在其它实例中,还没有详细描述公知特征,以避免使得描述不必要的复杂。一般来说,本专利技术的实施例提供了用于将颜色数据从一个颜色空间(例如,RGB、GRAY、CMY、HSL等)变换为另一颜色空间的方法、系统、和非瞬时计算机可读介质(CRM)。该系统的示例包括但不限于打印系统、数字视频系统、图形编辑系统、以及诸如PC、平板或智能电话的处置颜色数据的其它计算系统。仅为了图示的目的,在以下的实施例的描述中主要使用打印系统。当响应于来自客户机PC的请求打印在页面描述语言(PDL)中表示的电子文档时,打印系统实现用于支持从一个颜色空间到另一颜色空间的颜色变换的颜色变换模块。颜色变换模块可由硬件、软件或其组合实现。例如,PDL可描述RGB颜色空间中的页面的颜色数据,但是在打印系统打印之前,该颜色数据必须变换为用于物理打印机一般使用的CMYK颜色空间。如上面阐明的,传统地,已要求前述三个步骤(步骤1-3)将预乘的颜色像素的扫描线从RGBa变换为CMYKa。为了改进性能,本专利技术的一个或多个实施例在颜色变换模块中直接处置预乘的颜色通道。由于运行从一个颜色空间向另一颜色空间的颜色的实际变换要求颜色变换模块访问每一单一像素(以上步骤2),所以添加“去预乘”和“重新预乘”作为颜色变换处理的一部分变得不重要。代替前述三步骤处理,本专利技术的一个或多个实施例执行以下两步骤处理。-新步骤1:向颜色变换模块通知对输入数据进行预乘、以及是否应对输出进行预乘。-新步骤2:向颜色变换模块发送所有颜色像素与阿尔法像素,以将颜色从RGBa变换为CMYKa。作为变换的一部分,其将首先“去预乘”像素,将像素变换为新颜色空间,并然后如果需要的话“重新预乘”像素。对于每一变换处理,可将中间颜色数据暂时存储在诸如CPU寄存器的高速缓存存储器中。在根据一个或多个实施例的该两步骤处理中,调用颜色变换模块的另一系统或应用不再需要进行前一遍(pre-pass)以首先“去预乘”预乘颜色和后一遍(post-pass)以“重新预乘”变换颜色,由此节约这两个存储器访问。结果,本专利技术的实施例提供了用于颜色变换的改进性能,并且改进程度变得更显著,因为数据量变得更大。除了该颜色变换模块之外,采用前述新的两步骤处理的根据本专利技术一个或多个实施例的方法允许用户在颜色变换之后利用预乘的颜色格式继续工作。现在将参考图来描述本专利技术的实施例的附加细节。图1示出了根据本专利技术一个或多个实施例的系统(100)。如图1中所示,系统(100)包括颜色变换模块(102),并且该颜色变换模块(102)包括接口(104)、颜色变换器(106)、去预乘器(108)、预乘器(110)、和数据高速缓存(112)。颜色本文档来自技高网
...

【技术保护点】
一种用于变换颜色数据的方法,包括:从存储器读取在第一颜色空间中表示的颜色数据;将该颜色数据变换为去预乘的颜色数据;将去预乘的颜色数据从第一颜色空间变换到第二颜色空间;将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据;和向存储器写入该第一预乘颜色数据。

【技术特征摘要】
2015.07.06 US 14/792,2741.一种用于变换颜色数据的方法,包括:从存储器读取在第一颜色空间中表示的颜色数据;将该颜色数据变换为去预乘的颜色数据;将去预乘的颜色数据从第一颜色空间变换到第二颜色空间;将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据;和向存储器写入该第一预乘颜色数据。2.根据权利要求1的方法,其中所述将该颜色数据变换为去预乘的颜色数据、将去预乘的颜色数据变换到第二颜色空间、将去预乘的颜色数据变换为第一预乘颜色数据的步骤中的每一个进一步包括在高速缓存上存储颜色数据。3.根据权利要求1的方法,进一步包括:从该存储器读取第一颜色空间中表示的另一颜色数据;确定是否对所述另一颜色数据进行预乘;和当该确定步骤确定不对所述另一颜色数据进行预乘时,将所述另一颜色数据从第一颜色空间变换到第二颜色空间,和向存储器写入变换到第二颜色空间的所述另一颜色数据。4.根据权利要求3的方法,进一步包括:接收与所述另一颜色数据相关的附加信息,其中该确定步骤基于该附加信息。5.根据权利要求4的方法,其中该附加信息包括表示是否对所述另一颜色数据进行预乘的第一标志、或表示第一颜色空间和第二颜色空间的变换信息。6.根据权利要求4的方法,其中该附加信息包括表示文档数据的格式的格式信息,和该确定步骤包括,当该文档格式是XPS或OOXML时,确定对所述另一颜色数据进行预乘。7.根据权利要求4的方法,其中该附加信息包括表示是否对要写入存储器的变换到第二颜色空间的另一颜色数据进行预乘的第二标志,和当该第二标志表示对要写入的另一颜色数据进行预乘时,所述向存储器写入变换到第二颜色空间的另一颜色数据的步骤进一步包括:将第二颜色空间中的另一颜色数据变换为第二预乘颜色数据;和向存储器写入第二预乘颜色数据。8.根据权利要求7的方法,其中当第二标志表示不对要写入的另一颜色数据进行预乘时,该方法进一步包括向存储器写入第二颜色空间中的去预乘的颜色数据。9.根据权利要求1的方法,其中该颜色数据由红、绿、蓝和阿尔法分量表示,和所述将颜色数据变换为去预乘的颜色数据的步骤进一步包括:将红、绿和蓝分量的每一个与用于表示每一分量的最大值相乘;和将相乘的红、绿和蓝分量的每一个除以阿尔法分量。10.根据权利要求9的方法,其中所述将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据的步骤进一步包括:将去预乘颜色数据的红、绿和蓝分量的每一个与阿尔法分量相乘;和将与阿尔法分量相乘的红、绿和蓝分量的每一个除以该最大值。11.一种颜色变换系统,包括:存储器,存储第一颜色...

【专利技术属性】
技术研发人员:达雷尔E贝勒特
申请(专利权)人:柯尼卡美能达美国研究所有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1