CN106341572A - 用于支持对于预乘数据的颜色变换的方法 - Google Patents
用于支持对于预乘数据的颜色变换的方法 Download PDFInfo
- Publication number
- CN106341572A CN106341572A CN201610523303.0A CN201610523303A CN106341572A CN 106341572 A CN106341572 A CN 106341572A CN 201610523303 A CN201610523303 A CN 201610523303A CN 106341572 A CN106341572 A CN 106341572A
- Authority
- CN
- China
- Prior art keywords
- multiplied
- color data
- color
- data
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 30
- 239000003086 colorant Substances 0.000 claims description 17
- 230000001131 transforming effect Effects 0.000 claims 3
- 230000008569 process Effects 0.000 description 13
- 230000008901 benefit Effects 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000018199 S phase Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/60—Colour correction or control
- H04N1/6016—Conversion to subtractive colour signals
- H04N1/6022—Generating a fourth subtractive colour signal, e.g. under colour removal, black masking
- H04N1/6025—Generating a fourth subtractive colour signal, e.g. under colour removal, black masking using look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/60—Colour correction or control
- H04N1/603—Colour correction or control controlled by characteristics of the picture signal generator or the picture reproducer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
- H04N9/74—Circuits for processing colour signals for obtaining special effects
- H04N9/76—Circuits for processing colour signals for obtaining special effects for mixing of colour signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/56—Processing of colour picture signals
- H04N1/60—Colour correction or control
- H04N1/6016—Conversion to subtractive colour signals
- H04N1/6022—Generating a fourth subtractive colour signal, e.g. under colour removal, black masking
Abstract
一种用于变换颜色数据的方法,包括:从存储器读取在第一颜色空间中表示的颜色数据;将该颜色数据变换为去预乘的颜色数据;将去预乘的颜色数据从第一颜色空间变换到第二颜色空间;将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据;和向存储器写入该第一预乘颜色数据。
Description
技术领域
本发明涉及用于变换颜色数据的方法和颜色变换系统。
背景技术
通常需要颜色空间变换用于在诸如个人计算机(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)。
颜色变换模块(102)可装载从另一系统或应用提供的未预乘颜色数据(150)或预乘颜色数据(160),并将颜色数据从一个颜色空间变换为另一颜色空间。颜色变换模块(102)可输出被颜色变换的未预乘(即,直接)颜色数据(155)或预乘颜色数据(165)。未预乘颜色数据(150,155)和预乘颜色数据(160,165)可包括但不限于文档数据、图像数据、视频数据等。
颜色变换模块(102)可装载颜色空间变换所需要的一个或多个颜色配置文件(170)。每一颜色配置文件是从一个颜色空间到另一颜色空间映射颜色值的表格。颜色配置文件的细节是本领域公知的并所以省略。颜色配置文件可被存储在系统(100)的内部存储器或储存器中。
这些组件(104)–(112)中的每一个可位于相同计算装置(例如,打印机、桌面计算机、服务器计算机、膝上计算机、平板、智能电话、可穿戴装置等),或者可位于通过具有有线和/或无线片段的网络连接的不同计算装置上。此外,这些组件(104)–(112)中的一个或多个可由一个或多个处理器、图形处理器、或对于颜色变换优化的其它专用硬件运行。尽管图中没有示出,但是可在系统(100)中准备储存器,以存储已由其它前述组件之一处理和/或将由其它前述组件之一处理的任何数据。
在本发明的一个或多个实施例中,接口(104)可从存储器(例如,RAM或主存储器)或储存装置(例如,硬盘驱动器(HDD)或固态驱动器(SSD))读取在诸如RGB的颜色空间中表示的未预乘颜色数据(150)或预乘颜色数据(160)。在本发明的一个或多个实施例中,接口(104)可从另一系统或应用接收未预乘颜色数据(150)或预乘颜色数据(160)。例如,接口(104)可以被硬件或软件编程用于从另一系统或应用接收颜色数据。
读取或接收的输入颜色数据(150,160)可被存储在数据高速缓存(112)中。数据高速缓存(112)可由CPU数据高速缓存实现,其是比主存储器更快的存储器。数据高速缓存(112)可暂时存储输入颜色数据(150,160)以及输出颜色数据(155,165)。中间颜色数据(即,去预乘的颜色数据、重新预乘之前的颜色变换的颜色数据)可被存储在CPU寄存器中。在本发明的一个或多个实施例中,当颜色变换模块(102)被实现为专用硬件模块或芯片时,数据高速缓存(112)可由专用高速缓存存储器实现。
此外,接口(104)可连同颜色数据一起读取或接收附加信息。例如,接口(104)可读取或接收表示是否对输入颜色数据进行预乘的标志(例如,0或假指示未预乘数据,并且1或真指示预乘数据)以及指示是否应对输出颜色数据进行预乘的标志(例如,0或假指示未预乘数据,并且1或真指示预乘数据)。可附加或替换提供其它信息,诸如表示输入文档格式(例如,XPS、OOXML等)的格式信息、以及表示输入和输出颜色数据的颜色空间的变换信息。通过接收这样的附加信息,颜色变换模块可被通知是否预乘输入数据以及是否应预乘输出数据。根据一个或多个实施例,该步骤对应于前述新步骤1。
在本发明的一个或多个实施例中,颜色变换器(106)可使用颜色配置文件(170)将经由接口(104)读取或接收的颜色数据从原始颜色空间变换为另一颜色空间。在变换颜色数据之前,颜色变换器(106)确定是否对颜色数据进行预乘。例如,颜色变换器(106)可读取指示对颜色数据进行预乘的标志。颜色变换器(106)可采用用于这样的确定的任何方法。作为选择,颜色变换器(106)可基于前述格式信息知道输入文档数据的格式,并确定该格式需要预乘颜色数据。例如,当文档格式是XPS或OOXML时,颜色变换器(106)可确定对颜色数据进行预乘。
当颜色变换器(106)确定对输入数据进行预乘时,颜色变换器(106)命令去预乘器(108)对颜色数据进行去预乘,并使用颜色配置文件(170)执行颜色变换。在变换之后,当颜色变换器(106)确定应对输出数据进行预乘时,颜色变换器(106)命令预乘器(110)对变换的颜色数据进行预乘,并经由接口(104)输出预乘的颜色数据(165)。根据一个或多个实施例,这些步骤对应于前述新步骤2。
另一方面,当颜色变换器(106)确定不对输入数据进行预乘时,颜色变换器(106)可在没有去预乘的情况下变换颜色数据,并且当颜色变换器(106)确定不应对输出数据进行预乘时,颜色变换器(106)可在没有重新预乘的情况下输出变换的颜色数据。
在本发明的一个或多个实施例中,颜色变换器(106)可参考作为附加信息向接口(104)输入的、指示是否应对输出颜色数据进行预乘的另一标志。即使当颜色变换器(106)确定对输入颜色数据进行预乘时,颜色变换器(106)可基于所述另一标志在没有重新预乘的情况下输出变换的颜色数据。在该情况下,颜色变换器(106)可连同变换的去预乘颜色数据一起输出原始阿尔法通道值。
在本发明的一个或多个实施例中,去预乘器(108)可将输入颜色数据变换为去预乘颜色数据(即,去预乘)。去预乘器(108)可运行用于去预乘的任何方法。
例如,去预乘器(108)可根据图5中所示算法来运行去预乘。在该算法中,“orig_color_pixel”指示每一预乘的颜色分量(例如,RGB颜色空间中的红、绿或蓝分量),并且“alpha_pixel”指示阿尔法通道分量。在该示例中,用于表示每一分量的最大值是255。当alpha_pixel为非零时,可通过以下等式计算去预乘颜色数据“color_new”的每一分量:
color_new=(orig_color_pixel*255)/alpha_pixel
并且当alpha_pixel为零时,可通过以下等式计算:
color_new=0
在本发明的一个或多个实施例中,预乘器(110)可将去预乘的颜色变换后的数据变换为预乘颜色数据(即,重新预乘)。预乘器(110)可运行用于预乘的任何方法。例如,预乘器(110)可根据图6中所示算法来运行预乘。在该算法中,“converted_color_pixel”指示每一变换的颜色分量(例如,CMYK颜色空间中的青、品红、黄、或黑分量),并且“alpha_pixel”指示原始阿尔法通道分量。可通过以下等式计算重新预乘颜色数据“color_new”的每一分量。
color_new=(converted_color_pixel*alpha_pixel)/255
尽管图1为了图示目的示出了组件的一个特定配置,但是可在不脱离本发明的范围的情况下使用其它配置。例如,可组合各个组件以形成单一组件。作为另一示例,可通过两个或更多组件执行单一组件所执行的功能性。
图2示出了根据本发明一个或多个实施例的流程图。可使用图2中描绘的处理,以根据需要利用去预乘和重新预乘,将颜色数据从一个颜色空间变换到另一颜色空间。图2中的步骤的一个或多个可由系统(100)的组件执行,如上面参考图1讨论的那样。在本发明的一个或多个实施例中,图2中示出的步骤的一个或多个可被省略、重复、和/或按照与图2中示出的顺序不同的顺序执行。因此,本发明的范围不限于图2中示出的步骤的特定安排。
初始地,接口(104)可从存储器读取在颜色空间中表示的输入颜色数据、和作为附加信息的标志(步骤202)。从存储器读取的输入颜色数据可被存储在数据高速缓存(112)中。接下来,颜色变换器(106)可基于该标志确定是否对输入颜色数据进行预乘(步骤204)。例如,如果该标志指示对输入颜色数据进行预乘,则颜色变换器(106)确定对输入颜色数据进行预乘。此外,如果该标志不指示对输入颜色数据进行预乘,则颜色变换器(106)确定不对该数据进行预乘。
如果颜色变换器(106)确定不对输入颜色数据进行预乘,则执行以下变换处理。即,如果颜色变换器(106)确定不对输入颜色数据进行预乘(步骤204的否),则颜色变换器(106)可将输入颜色数据从颜色空间(例如,RGB)变换为另一颜色空间(例如,CMYK)(步骤212),并向存储器写入所变换的颜色数据(步骤214)。
如果颜色变换器(106)确定对输入颜色数据进行预乘,则执行以下变换处理。即,如果颜色变换器(106)确定对输入颜色数据进行预乘(步骤204的是),则颜色变换器(106)可命令去预乘器(108)将预乘的输入颜色数据变换为去预乘的颜色数据(步骤206)。去预乘器(108)可例如根据图5中示出的算法来运行去预乘处理。在去预乘之后,颜色变换器(106)可将去预乘的输入颜色数据从颜色空间(例如,RGB)变换为另一颜色空间(例如,CMYK)(步骤208)。接下来,颜色变换器(106)可命令预乘器(110)将颜色变换的颜色数据变换为预乘的颜色数据(步骤210)。预乘器(110)可例如根据图6中示出的算法来运行预乘处理。在预乘之后,接口(104)可向存储器写入预乘的颜色数据(步骤214)。
在本发明的一个或多个实施例中,颜色变换模块(102)可跳过步骤210,并可在没有重新预乘的情况下将第二颜色空间中的去预乘颜色数据输出到存储器。
在本发明的一个或多个实施例中,接口可从另一系统或应用接收输入颜色数据和标志。此外,接口可在颜色变换之后向其它系统或应用输出颜色数据(预乘的或去预乘的)。
在本发明的一个或多个实施例中,颜色变换模块(102)可以是中央处理单元(CPU)、图形处理单元(GPU)、或系统(100)中的其它专用硬件所运行的程序,并且接口(104)是用于与系统(100)中安装的其它程序通信的程序接口。另外,系统(100)可连接到网络,并且颜色变换模块(102)可从网络上的另一系统或应用接收颜色数据和标志。系统(100)可经由网络向另一系统输出变换的颜色数据。
在本发明的一个或多个实施例中,接口(104)可连同颜色数据一起接收附加信息。例如,接口(104)可接收表示输入和输出颜色数据的颜色空间的变换信息、和/或表示是否应预乘输出数据的另一标志。颜色变换器(106)可读取指定的输入和输出颜色空间之间的颜色变换所需的颜色配置文件,并运行颜色空间变换。此外,即使当没有对输入颜色数据进行预乘时,颜色变换器(106)也可在输出前对颜色变换的输入数据进行预乘,并且反之亦然。
图3示出了根据本发明一个或多个实施例的流程图。可使用图3中描绘的处理,以根据需要利用去预乘和重新预乘,将具有特定格式的文档的颜色数据从一个颜色空间变换为另一颜色空间。图3中的步骤的一个或多个可由系统(100)的组件执行,如上面参考图1讨论的那样。在本发明的一个或多个实施例中,图3中示出的一个或多个步骤可被省略、重复、和/或按照与图3中示出的顺序不同的顺序执行。因此,本发明的范围不限于图3中示出的步骤的特定安排。
根据图3中描绘的处理的一个或多个实施例,接口(104)可从存储器读取具有诸如PCL、XL、PostScript、PPML、PDF、XPS或OOXML的特定格式的文档数据(步骤302)。接下来,解析模块(未示出)可解析文档数据,并标识用于颜色变换器(106)的其格式(步骤304)。例如,解析模块可通过在文档数据中搜索指示该格式的标记(例如,“%ps”以指明PostScript)来标识格式。作为选择,解析模块可采用拭探法(heuristic)来确定文档格式。基于解析模块所标识的文档格式,颜色变换器(106)可确定是否对文档的颜色数据进行预乘(步骤306),因为已知一些格式需要预乘颜色数据。例如,当格式是XPS或OOXML时,颜色变换器(106)可确定对颜色数据进行预乘。
如果颜色变换器(106)确定不对颜色数据进行预乘(步骤306的否),则颜色变换器(106)可将输入文档数据从颜色空间(例如,RGB)变换为另一颜色空间(例如,CMYK)(步骤314),并向存储器写入所变换的颜色数据(步骤316)。
如果颜色变换器(106)确定对颜色数据进行预乘(步骤306的是),则颜色变换器(106)可命令去预乘器(108)将文档的预乘的颜色数据变换为去预乘的颜色数据(步骤308)。随后步骤310-316与上面图示的步骤208-214类似。
在本发明的一个或多个实施例中,颜色变换模块(102)可跳过步骤312,并在没有重新预乘的情况下将第二颜色空间中的去预乘颜色数据输出到存储器。
在本发明的一个或多个实施例中,接口(104)可从解析模块接收表示输入数据格式(诸如,PCL、XL、PostScript、PPML、PDF、XPS、OOXML等)的格式信息。在颜色变换之前,颜色变换器(106)可通过读取格式信息代替解析文档数据,来标识输入文档数据的数据格式。然而,在一个或多个实施例中,颜色变换器(106)可解析文档数据并标识其格式,而不依赖于单独解析模块。
图4示出了根据本发明一个或多个实施例的流程图。可使用图4中描绘的处理来运行颜色变换,并取决于外部系统或应用给出的附加信息而输出预乘或去预乘的颜色数据。图4中的步骤的一个或多个可由系统(100)的组件执行,如上面参考图1讨论的那样。在本发明的一个或多个实施例中,图4中示出的步骤的一个或多个可被省略、重复、和/或按照与图4中示出的顺序不同的顺序执行。因此,本发明的范围不限于图4中示出的步骤的特定安排。
初始地,接口(104)可读取颜色空间中表示的输入颜色数据、以及包括以下的附加信息:(1)表示是否对输入颜色数据进行预乘的第一标志;和(2)表示是否应对输出数据进行预乘的第二标志(步骤402)。从存储器读取的输入颜色数据可被存储在数据高速缓存(112)中。接下来,颜色变换器(106)可基于接收的第一标志,来确定是否对输入颜色数据进行预乘(步骤404)。
如果颜色变换器(106)确定对输入颜色数据进行预乘(步骤404的是),则颜色变换器(106)可命令去预乘器(108)将预乘的输入颜色数据变换为去预乘的颜色数据(步骤406)。接下来,颜色变换器(106)可将输入颜色数据从颜色空间(例如,RGB)变换为另一颜色空间(例如,CMYK)(步骤408)。
另一方面,如果颜色变换器(106)确定不对输入颜色数据进行预乘(步骤404的否),则颜色变换器(106)可将输入颜色数据从颜色空间(例如,RGB)变换为另一颜色空间(例如,CMYK)(步骤408)。
接下来,颜色变换器(106)可基于接收的第二标志来确定是否应对输出颜色数据进行预乘(步骤410)。如果如果颜色变换器(106)确定应对输出颜色数据进行预乘(步骤410的是),则颜色变换器(106)可命令预乘器(110)将颜色变换的颜色数据变换为预乘的颜色数据(步骤412)。在预乘之后,接口(104)可向存储器写入预乘的颜色数据(步骤414)。
另一方面,如果颜色变换器(106)确定不应对输出颜色数据进行预乘(步骤410的否),则接口(104)可在没有预乘的情况下向存储器写入颜色变换的颜色数据(步骤414)。
根据本发明的一个或多个实施例,系统(100)可直接处置预乘和去预乘颜色数据两者,由此降低除了颜色变换模块之外的程序所需的存储器访问。这导致更有效的吞吐量,特别是当要变换的像素的数目大时。
本发明的实施例可实际上在任何类型计算系统上实现,而不管使用的平台。例如,计算系统可以是一个或多个移动装置(例如,膝上计算机、智能电话、个人数字助理、平板计算机、或其它移动装置)、桌面计算机、服务器、服务器机箱中的刀片(blades)、或包括执行本发明一个或多个实施例的至少最小处理电力、存储器、以及输入和输出装置的任何其它类型(多个)计算装置。
例如,如图7中所示,计算系统(700)可包括一个或多个CPU(722),其每一个具有一个或多个高速缓存(732)、关联存储器(724)(例如,随机存取存储器(RAM)、高速缓存存储器、闪存等)、一个或多个储存装置(726)(例如,硬盘、诸如紧密盘(CD)驱动器或数字多功能盘(DVD)驱动器的光学驱动器、闪存棒等)、网络装置(728)(例如,网络接口卡、无线LAN模块、广域网模块、蓝牙模块、ZigBee模块、红外通信模块等)、一个或多个GPU(730)、以及许多其它元素和功能性。
CPU(722)可以是用于处理指令的集成电路。例如,计算机处理器可以是处理器的一个或更多内核、或微内核。CPU(722)可具有一个或多个高速缓存(732),其是比(主)存储器(724)更快的存储器。计算系统(700)还可以包括一个或多个输入装置(740),诸如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔、或任何其它类型输入装置。此外,计算系统(700)可包括一个或多个输出装置(760),诸如屏幕(例如,液晶显示器(LCD)、等离子显示器、触摸屏、阴极射线管(CRT)监视器、投影仪、或其它显示装置)、打印机或绘图仪、外部储存器、或任何其它输出装置。输出装置的一个或多个可以与输入装置相同或不同。计算系统(700)可经由网络接口连接(未示出)连接到网络(780)(例如,局域网(LAN)、诸如因特网的广域网(WAN)、移动网络、或任何其它类型网络)。输入和输出装置可本地或远程(例如,经由网络(780))连接到CPU(722)、存储器(724)、储存装置(726)、网络装置(728)和GPU(730)。存在许多不同类型计算系统,并且前述输入和输出装置可采取其它形式。
可在诸如CD、DVD、储存装置、盘、带、闪存、物理存储器、或任何其它计算机可读储存介质的非瞬时计算机可读介质上,全部或部分、暂时或永久存储执行本发明的实施例的计算机可读程序代码形式的软件指令。特别是,这些软件指令可对应于以下计算机可读程序代码,当由处理器运行时,被配置为执行本发明的实施例。
此外,前述计算系统(700)的一个或多个元件可位于远程地点并通过网络(780)连接到其它元件。此外,本发明的一个或更多实施例可在具有多个节点的分布系统上实现,其中本发明的每一部分可位于分布系统内的不同节点上。在本发明的一个实施例中,节点对应于区别计算装置。作为选择,节点可对应于具有关联物理存储器的计算机处理器。节点可作为选择对应于具有共享存储器和/或资源的计算机处理器或计算机处理器的微内核。
尽管已针对有限数目实施例描述了本发明,但是受益于该公开的本领域技术人员将理解的是,能设计不脱离这里公开的本发明的范围的其它实施例。因此,本发明的范围应仅由所附权利要求限制。
Claims (20)
1.一种用于变换颜色数据的方法,包括:
从存储器读取在第一颜色空间中表示的颜色数据;
将该颜色数据变换为去预乘的颜色数据;
将去预乘的颜色数据从第一颜色空间变换到第二颜色空间;
将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据;和
向存储器写入该第一预乘颜色数据。
2.根据权利要求1的方法,其中
所述将该颜色数据变换为去预乘的颜色数据、将去预乘的颜色数据变换到第二颜色空间、将去预乘的颜色数据变换为第一预乘颜色数据的步骤中的每一个进一步包括在高速缓存上存储颜色数据。
3.根据权利要求1的方法,进一步包括:
从该存储器读取第一颜色空间中表示的另一颜色数据;
确定是否对所述另一颜色数据进行预乘;和
当该确定步骤确定不对所述另一颜色数据进行预乘时,
将所述另一颜色数据从第一颜色空间变换到第二颜色空间,和
向存储器写入变换到第二颜色空间的所述另一颜色数据。
4.根据权利要求3的方法,进一步包括:
接收与所述另一颜色数据相关的附加信息,其中
该确定步骤基于该附加信息。
5.根据权利要求4的方法,其中
该附加信息包括表示是否对所述另一颜色数据进行预乘的第一标志、或表示第一颜色空间和第二颜色空间的变换信息。
6.根据权利要求4的方法,其中
该附加信息包括表示文档数据的格式的格式信息,和
该确定步骤包括,当该文档格式是XPS或OOXML时,确定对所述另一颜色数据进行预乘。
7.根据权利要求4的方法,其中
该附加信息包括表示是否对要写入存储器的变换到第二颜色空间的另一颜色数据进行预乘的第二标志,和
当该第二标志表示对要写入的另一颜色数据进行预乘时,所述向存储器写入变换到第二颜色空间的另一颜色数据的步骤进一步包括:
将第二颜色空间中的另一颜色数据变换为第二预乘颜色数据;和
向存储器写入第二预乘颜色数据。
8.根据权利要求7的方法,其中
当第二标志表示不对要写入的另一颜色数据进行预乘时,该方法进一步包括
向存储器写入第二颜色空间中的去预乘的颜色数据。
9.根据权利要求1的方法,其中
该颜色数据由红、绿、蓝和阿尔法分量表示,和
所述将颜色数据变换为去预乘的颜色数据的步骤进一步包括:
将红、绿和蓝分量的每一个与用于表示每一分量的最大值相乘;和将相乘的红、绿和蓝分量的每一个除以阿尔法分量。
10.根据权利要求9的方法,其中
所述将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据的步骤进一步包括:
将去预乘颜色数据的红、绿和蓝分量的每一个与阿尔法分量相乘;和
将与阿尔法分量相乘的红、绿和蓝分量的每一个除以该最大值。
11.一种颜色变换系统,包括:
存储器,存储第一颜色空间中表示的颜色数据;和
处理器
从该存储器读取颜色数据,
将该颜色数据变换为去预乘的颜色数据,
将去预乘的颜色数据从第一颜色空间变换到第二颜色空间,
将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据,和
向存储器写入该第一预乘颜色数据。
12.根据权利要求11的颜色变换系统,其中
该处理器利用该处理器的高速缓存将该颜色数据变换为去预乘的颜色数据、将去预乘的颜色数据变换到第二颜色空间、将去预乘的颜色数据变换为第一预乘颜色数据。
13.根据权利要求11的颜色变换系统,其中
该处理器:
从该存储器读取在第一颜色空间中表示的另一颜色数据;
确定是否对所述另一颜色数据进行预乘,和
当该处理器确定不对所述另一颜色数据进行预乘时,
将所述另一颜色数据从第一颜色空间变换到第二颜色空间,和向存储器写入变换到第二颜色空间的所述另一颜色数据。
14.根据权利要求13的颜色变换系统,其中
该处理器:
接收与所述另一颜色数据相关的附加信息,和
基于该附加信息来确定是否对所述另一颜色数据进行预乘。
15.根据权利要求14的颜色变换系统,其中
该附加信息包括表示是否对所述另一颜色数据进行预乘的第一标志、或表示第一颜色空间和第二颜色空间的变换信息。
16.根据权利要求14的颜色变换系统,其中
该附加信息包括表示文档数据的格式的格式信息,和
当该文档格式是XPS或OOXML时,该处理器确定对所述另一颜色数据进行预乘。
17.根据权利要求14的颜色变换系统,其中
该附加信息包括表示是否对要写入存储器的变换到第二颜色空间的另一颜色数据进行预乘的第二标志,和
当该第二标志表示对要写入的另一颜色数据进行预乘时,
该处理器:
将变换到第二颜色空间的另一颜色数据变换为第二预乘颜色数据;和
向存储器写入第二预乘颜色数据。
18.根据权利要求17的颜色变换系统,其中
当第二标志表示不对要写入的另一颜色数据进行预乘时,该处理器
向存储器写入第二颜色空间中的去预乘的颜色数据。
19.根据权利要求11的颜色变换系统,其中
该颜色数据由红、绿、蓝和阿尔法分量表示,和
所述将颜色数据变换为去预乘的颜色数据进一步包括,该处理器:
将红、绿和蓝分量的每一个与用于表示每一分量的最大值相乘,
将相乘的红、绿和蓝分量的每一个除以阿尔法分量,和
将相除的红、绿和蓝分量从第一颜色空间变换到第二颜色空间。
20.根据权利要求19的颜色变换系统,其中所述将第二颜色空间中的去预乘的颜色数据变换为第一预乘颜色数据进一步包括,该处理器:
将变换的红、绿和蓝分量的每一个与颜色数据的阿尔法分量相乘,
将与阿尔法分量相乘的红、绿和蓝分量的每一个除以该最大值,和
向存储器写入相除后的红、绿和蓝分量以及阿尔法分量作为第一预乘颜色数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/792,274 US9621765B2 (en) | 2015-07-06 | 2015-07-06 | Method for supporting color conversion on premultiplied data |
US14/792,274 | 2015-07-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106341572A true CN106341572A (zh) | 2017-01-18 |
CN106341572B CN106341572B (zh) | 2019-05-21 |
Family
ID=56101350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610523303.0A Active CN106341572B (zh) | 2015-07-06 | 2016-07-05 | 用于支持对于预乘数据的颜色变换的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9621765B2 (zh) |
EP (1) | EP3116225B1 (zh) |
JP (1) | JP6404865B2 (zh) |
CN (1) | CN106341572B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9865038B2 (en) * | 2015-11-25 | 2018-01-09 | Konica Minolta Laboratory U.S.A., Inc. | Offsetting rotated tables in images |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689306A (zh) * | 2007-02-16 | 2010-03-31 | 高通股份有限公司 | 有效的二维及三维图形处理 |
CN103533352A (zh) * | 2013-09-27 | 2014-01-22 | 桂林力港网络科技有限公司 | 带透明度的图像的压缩方法及装置、解压缩方法及装置 |
US20150054843A1 (en) * | 2013-08-20 | 2015-02-26 | Nvidia Corporation | Color-correct alpha blending texture filter and method of use thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8189908B2 (en) * | 2005-09-02 | 2012-05-29 | Adobe Systems, Inc. | System and method for compressing video data and alpha channel data using a single stream |
JP5732935B2 (ja) * | 2011-03-15 | 2015-06-10 | 株式会社リコー | 情報処理装置と印刷制御プログラムとコンピュータ読み取り可能な記録媒体 |
-
2015
- 2015-07-06 US US14/792,274 patent/US9621765B2/en not_active Expired - Fee Related
-
2016
- 2016-06-03 EP EP16172940.5A patent/EP3116225B1/en active Active
- 2016-07-04 JP JP2016132139A patent/JP6404865B2/ja active Active
- 2016-07-05 CN CN201610523303.0A patent/CN106341572B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689306A (zh) * | 2007-02-16 | 2010-03-31 | 高通股份有限公司 | 有效的二维及三维图形处理 |
US20150054843A1 (en) * | 2013-08-20 | 2015-02-26 | Nvidia Corporation | Color-correct alpha blending texture filter and method of use thereof |
CN103533352A (zh) * | 2013-09-27 | 2014-01-22 | 桂林力港网络科技有限公司 | 带透明度的图像的压缩方法及装置、解压缩方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3116225B1 (en) | 2019-01-09 |
EP3116225A1 (en) | 2017-01-11 |
CN106341572B (zh) | 2019-05-21 |
JP2017050851A (ja) | 2017-03-09 |
US20170013173A1 (en) | 2017-01-12 |
US9621765B2 (en) | 2017-04-11 |
JP6404865B2 (ja) | 2018-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4917642B2 (ja) | デジタル・カラー印刷のためのトラッピングシステム及び方法 | |
US10068518B2 (en) | Method, apparatus and system for dithering an image | |
JP4886043B2 (ja) | 高速フィルタ型のyuvからrgbへの変換 | |
US8503025B2 (en) | Image processing apparatus, image processing method, and computer program product | |
CN110214338A (zh) | 增量颜色压缩到视频的应用 | |
US20190371048A1 (en) | Radial gradient module | |
CN1423771A (zh) | 数字文件处理 | |
CN106341572B (zh) | 用于支持对于预乘数据的颜色变换的方法 | |
US20120013938A1 (en) | Image processing device, hardware accelerator, and image processing method | |
US8373903B2 (en) | Efficient implementation of raster operations flow | |
JP6135329B2 (ja) | 印刷データ処理装置、プログラム、及びシステム | |
JP2012224066A (ja) | 画像形成装置、描画処理方法及びプログラム | |
US8860971B2 (en) | Printing device and printing method of printing device | |
US8477326B2 (en) | Image formation apparatus, printing data generation apparatus, computer-readable recording medium, and printing data generation method | |
US11238321B2 (en) | Smart document format system | |
US10540788B2 (en) | Radial gradient module | |
US6882444B1 (en) | Image drawing apparatus, image drawing method, and computer-readable recording medium recorded with program for making computer execute image drawing method | |
JP2010162802A (ja) | 画像処理装置、画像処理方法、及び、コンピュータプログラム | |
JP5033746B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
CN112000303B (zh) | 可实现水印打印的处理方法、装置、电子设备和存储介质 | |
JP5033747B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP5223762B2 (ja) | 画像処理装置及び画像処理方法 | |
JP5028373B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
US20190310810A1 (en) | Image processing apparatus and image processing method | |
JP2003289449A (ja) | 画像処理装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |