打印系统中的图象处理
发明领域
本发明涉及打印系统中图象的处理,以产生所述系统的图象生成元件用的驱动信号。在图象生成元件的页宽阵列(PWA)中,本发明有特别的用途。
背景发明
打印机中的图象生成元件可以作为喷墨嘴、点阵元件或激光打印机中的LED阵列而有所不同。这样的元件响应打印流水线内产生的,把图象数据转换为能使图象生成元件以较高或较低的保真度在介质上重现所述图象的驱动信号而动作。(所述介质可能是一种直接把图象打印于其上的介质(例如,纸张)或者可以是诸如激光打印机的能感光的转鼓由此进行最终打印的中间介质。″打印流水线″在这里定义为一组组件或者一系列的处理,它对图象数据进行操作(诸如,例如PostScript(页面描述语言)或者可移植文档格式(PDF)文件[PostScript和PDF均为Adobe Systems(公司)的商标]、连续色调图象数据或者半色调图象数据),以产生对直接或者间接驱动若干图象生成元件有效的信号。一般,所述打印流水线可以包括负责以下工作的组件:对图象文件进行颜色映射,对图象数据进行线性化,从线性化的连续色调图象建立半色调图象,把打印遮片施加在半色调图象上并输出驱动信号,以驱动所述图象生成元件(例如,喷墨打印头中的喷墨嘴)以重现想要的图象。打印流水线不限于作为所涉及的典型工艺示例给出的步骤的特定集合。
传统的喷墨式打印机使用设置在滑架上的一个或多个打印头,当打印介质逐步前进经过所述扫描轴时打印头重复地在扫描轴上扫描。所述打印头在所述打印介质两次步进之间在每个扫描过程中喷下一行墨水。
在一种传统的高速打印机中,打印作业的每一页都用专用的光栅图象处理器(RIP)进行颜色映射(从一种计算机输出格式,诸如Postscript(商标)或者可移植文档格式(商标)转换为像素的连续色调映射)。
光栅化的页面被缓冲,然后用专用集成电路(ASIC)处理,后者把位图转换为由半色调图象数据组成的半色调图象。最基本彩色打印将使用青色、洋红和黄色的组合(CMY),以形成不同的颜色,或者为了提高质量,还可以采用真黑墨水(CMYK)。对于高质量的影象,还可使用另外两种墨水,淡青色和淡洋红,以提供增强的保真度,特别是带有较淡的色调,诸如肉色(CcMmYK打印)。
每一种墨水传统上都由单独的打印头打印。打印头受打印头控制器控制,所述控制器分析半色调图象数据并指定喷嘴的喷射顺序,使打印头在所述页面的正确点上喷下墨水,使得打印的图象或多或少忠实地再现原版输入图象。
喷墨式打印技术持续的目标是改善受若干因素限制的打印速度,这些因素包括横跨页面扫描所用的时间,在采用多路径打印方式的地方,这个时间成倍增大(其中打印的图象的每一个区域由多次扫描覆盖,以改善打印质量)。
缩短打印时间的一种途径是,采用打印头的页宽阵列(PWA)。在PWA打印机中,在打印过程中打印头阵列横跨整个宽度伸展,页码维持在静态位置上,而介质在PWA下步进,消除扫描时间。然而,随着打印头数量增大,打印机的处理要求相似地增大。
具体地说,瓶颈很可能出现在贮存光栅化页面的缓冲区和建立半色调图象的ASIC(专用集成电路)之间,因为ASIC必须实时操作,以便向打印头控制器提供他们据以操作以便为它们自己的打印头建立打印遮片所需的半色调图象。
出现在PWA打印机上的另一个问题涉及图象生成元件阵列在实际上不太可能在整个阵列上同样地操作这一事实。在喷墨式打印机的情况下,打印头中的喷嘴一般分成组,其中每一个都定义在芯片或者晶园片上。芯片受制造上参数变动的影响,而这又会导致喷射墨滴体积的变动(这本身又显著地影响图象质量)。
这样的问题不限于喷墨式打印机。若在施加同样的驱动信号的情况下LED的性能改变,则具有给能感光的转鼓照明的LED阵列的激光打印机(使得转鼓的特性变化,影响碳粉对转鼓的粘着)也将遇到类似的问题。
发明摘要
本发明提供一种打印系统,包括:
打印流水线,用以处理图象数据以产生驱动图象生成元件用的驱动信号,和
多组图象生成元件,每一组的特征在于操作特性并排列成产生要打印的图象的单独部分;
其中至少图象数据处理的一部分取决于设置,该设置取决于生成的结果驱动信号所驱动的组的操作特性;和
其中在所述处理的一部分利用第二设置施加于与图象的第二部分对应的第二数据集合之前,所述处理的一部分利用第一设置施加于与所述第一图象部分对应的第一数据集合。
通过把图象数据的处理排序为对应于要由不同组的图象生成元件打印的图象部分的数据集合或数据块,所述处理可以得到改善。补偿要打印一部分图象的组的操作特性变动所需的设置可以装入存储器,并在该数据块处理时使用。然后,可以装入适用于另一组图象生成元件的设置,并装入要由该组打印的图象部分用的图象数据块,并在处理中使用。
图象生成元件组的一个例子是其中形成喷墨嘴的打印头芯片。在同一打印机的一个芯片和另一个之间,在墨滴体积上可以有显著变化(7%或更大),这同样是不可预测的,而且导致不同的芯片产生不同的强度的颜色,结果图象分带。
传统的图象处理是逐行像素进行的。若有人想要横跨一行补偿打印头芯片中个别打印头操作特性的变动,则必须在横跨每一个行时对要求的设置进行多次调整,这使处理速度降低。
在具有模块子阵列内建LED阵列的激光打印机中,可以发生类似的变动,因为这样的子阵列可能是彼此独立地制造的,由此也许对所施加的驱动信号具有不同的响应。
最好各组图象生成元件使用时每一个都固定在适当位置,以提供一个其宽度定义打印区域的图象生成阵列。
这样一个阵列最好是打印元件的页宽阵列。
最好所述流水线包括光栅图象处理器(RIP),用以从所述打印系统的输入所接收的打印作业生成光栅化数据,其中所述处理的一部分是在RIP中进行的。
所述流水线还可包括线性化处理器,用以对图象数据进行线性化,以补偿所述打印流水线和/或图象生成元件的特性,其中所述处理的一部分是在所述线性化处理器中进行的。
另一个实施例中,所述流水线包括半色调处理器,用以对图象数据进行半色调处理,其中所述处理的一部分是在半色调处理器中进行的。
另一个实施例中,所述流水线包括图象生成元件控制器,用以接收半色调数据并由此生成用以驱动所述图象生成元件的驱动信号,其中所述处理的一部分是在所述图象生成元件控制器中进行的。
最好所述图象生成元件是喷墨嘴,而所述组包括一个或多个公用芯片所携带的一组喷嘴。
最好所述组是来自多个芯片的一组喷嘴,其中所述芯片排列成彼此协作地在介质同一部分进行打印。
所述喷嘴可配置成以单色墨水打印协作打印遮片,或者,所述喷嘴配置成以不同成分的墨水颜色打印图象的共同部分。
当所述图象生成元件是喷墨嘴时,最好操作特性是来自一组喷嘴的平均滴重。
本发明还提供一种处理打印流水线内的图象数据以产生驱动图象生成元件用的驱动信号的方法,包括以下步骤:
接收与要由第一组图象生成元件打印的图象的一部分有关的第一组图象数据元素,每一组图象生成元件的特征在于操作特性并排列成可以产生要打印的图象的单独部分;
贮存取决于所述操作特性的第一设置,并根据所述第一设置处理所述第一组图象数据元素;
接收与要由第二组图象生成元件打印的图象的一部分有关的第二组图象数据元素,每一组图象生成元件的特征在于操作特性并排列成可以产生要打印的图象的单独部分;
贮存取决于所述操作特性的第二设置并根据所述第二设置处理所述第二组图象数据元素。
本发明还提供一种计算机程序,包括执行时执行权利要求12的方法的一组指令。
另一方面,本发明提供一种打印系统,包括多个打印引擎,其中每个都配置成打印一个图象的不同窄条,其中窄条之间的边界平行于打印介质步进方向,其中每一个引擎包括:
a)半色调处理器,用以对要处理的窄条中的图象数据进行操作,并由此产生半色调数据;和
b)打印元件控制器,用以从所述半色调处理器接收半色调数据,并由此生成打印元件控制指令,传送给一组打印元件;
其中所述半色调处理器通过依次处理图象数据元素列来处理所述图象窄条,所述列在所述打印的图象中沿着所述打印介质步进的方向延伸。
利用不同的打印引擎以便处理和打印整个图象的不同部分,每个页面的处理次数可以显著地减少。
而且,因为每一个打印引擎利用单独一组打印元件,与另一个的打印引擎无关地处理和打印图象部分,本发明为打印处理线路提供一种可以放大以便加宽打印头阵列的模块层次结构,或者它可以分层次地放大,以便使每一个打印头具有更大的可用处理能力,亦即每个处理器较少的打印头。这样,计算机输出和打印头之间的任何瓶颈都可以减少,而且把打印速度提高到一个由打印头速度、墨水特性和纸张步进速度所决定的极限。
通过以指定方式把所述图象分成窄条,喷墨打印头阵列垂直于打印介质的步进方向,可以再分成个别打印引擎的若干组,而每一个打印引擎处理不同的窄条并用它自己的一组打印头打印该窄条。
所述打印系统处理处于沿着打印介质步进方向的列中的,而不是垂直于步进方向的行中的数据元素。据认为,用传统的处理所获得的优点是,所述系统可以开始打印页面的前沿,而同时向着后沿的图象仍在处理中。然而已经发现,由于若干因素按列处理在速度和质量上提高较多,这些因素包括以下几点:
1.许多色处理调算法属于误差前向扩散类型,其中半色调像素处理中的误差项会向前带进与相邻像素产生有关的计算。当平行的打印引擎与行垂直地操作时,处理相邻窄条中的相邻像素时,必须把所述误差项从一个引擎送入另一个引擎。处理每一行的过程中,这要求误差项在引擎之间多次传送。反之,通过对数据元素列的操作,每一个处理器可以处理一整个窄条,而没有从引擎到引擎的相互作用,边界处除外。这意味着,在整个页面的处理过程中,只有一组误差项可能需要从一个引擎送到另一个引擎。
2.在页宽阵列打印机中,不同的打印头横跨整个页面宽度排成阵列。当前技术把每一个打印头设置在一个芯片上,其中形成个别的打印元件(例如喷嘴)。由于制造上的限制,不同的芯片将提供不同的打印特性,最显著的是由于不同的芯片的喷嘴之间墨滴体积的变动。这样的变动通过调整图象处理算法(最好在线性化、半色调处理、或者屏蔽级处),以便导致每一个芯片发出的激发指令的变动。在半色调处理是跨行完成的地方,每当处理对应于不同的芯片的图象数据元素时,所述设置便需要改变。因此,这可能意味着跨行的多次变化。反之,按列处理的顺序使一个芯片的设置可以装入与打印引擎相关的存储器,然后在处理与相邻芯片有关的列以前,装入下一组设置。因此,针对一个芯片的每一组设置每一个页面只需要装入存储器一次,而不是每行一次。
3.已经为扫描打印机开发的(或者将来会有的)半色调处理和屏蔽技术可以直接进入逐列半色调处理算法操作的页宽阵列打印机(因为所述图象可以用和传统扫描打印机上会打印的单行同样的方法进行处理,除了所涉及的笔数以外)。
喷墨式打印系统最好还包括一组连接到所述通信装置并横跨打印介质步进方向而延伸的喷墨打印元件。
打印元件控制器的功能可以集成在半色调处理器中,使得所述图象在所述处理器内利用半色调处理算法进行半色调处理,然后当页面在打印头下面移动时,集成在所述处理器内的打印元件控制器模块为打印头产生指令以便从指定的喷嘴发射小墨滴指定次数。于是,打印元件控制器用打印遮片产生驱动信号(在喷墨打印机的情况下,发射指令)。然而当前最好是,单独执行生成打印数据组(例如半色调数据)和把所述数据组转换为打印指令(打印遮片)的任务。还可以设想,打印组件可以具有足够高级的电路,以便解释半色调数据并直接产生它们自己的打印指令。
最好打印元件控制器和每一个打印引擎的打印元件之间的通信通过仅供引擎使用的专用通信信道提供。
传统的打印机在打印头和打印头控制器之间使用通用总线。通过为每一个打印引擎提供单独的总线,打印数据在若干个完全独立的信道之间分开,从处理器向前,从而消除瓶颈。
每一个处理器最好具有多个与此相关的打印元件控制器,而且所述打印元件控制器中的每一个最好都具有一组或多组喷墨打印元件在其控制之下。
这样,例如4个打印组件控制器的层次结构,每一个都具有4个打印头,可以处在单一处理器的控制下,为求最佳打印速度,这种层次结构平行重复若干次。
此外,最好各组打印元件使用时各自固定在适当位置,以形成其宽度定义打印区域的打印元件阵列。
打印机还可以任选地包括光栅图象处理器(RIP),用以从由喷墨式打印系统的输入接收的打印作业生成光栅化数据,并旨在向半色调处理器提供光栅化数据。或者,在送往打印机之前,可以通过PC(个人计算机)或者打印服务器使所述打印机所接收的文件光栅化。
提供光栅化数据的装置最好包括信道,把所述RIP链接到半色调处理器的公共的通信信道,每一个半色调处理器包括识别和从通过所述公共的通信信道到达的所述光栅化数据选择一个对应于一部分要打印的图象的数据子集。
于是,所述处理器本身具有把图象分成窄条的能力,通过从经由通用总线到达的光栅化数据流选择对应于它们负责的图象窄条的那些数据元素。
在一个实施例中,所述列结束于第一和第二端,所述半色调处理器通过以下进行操作:
从第一端到第二端依次处理第一列的图象数据元素;
从第二端到第一端依次处理相邻未处理的列的图象数据元素;
在所述前一列的处理结束开始直至所述窄条的全部列均已处理完毕为止,持续依次处理相邻未处理的列的图象数据元素。
最好每一个半色调处理器执行误差前向扩散算法,因此,由于在交替两端开始的所述列的蛇形处理方式,使从处理图象数据元素所得的误差项,总可以带进相邻图象数据元素。
而且最好负责处理所述图象一侧的第一窄条的第一打印引擎的第一半色调处理器,配置成以与所述图象边缘对应的列为起点,并在该窄条处理完成时,把从处理所述窄条所得的最后的误差项传送到负责处理所述紧接着的(第二)窄条的打印引擎的半色调处理器。
最好所述图象的所述窄条是横跨所述图象依次处理的,因此,在半色调处理器开始对它的窄条的处理之前,把特定的窄条完成时所得的误差项送到负责处理下一个相邻的未处理的窄条的半色调处理器。
最好在具有至少n页的多页打印作业中,当给定的页面半色调处理完成时,每一个半色调处理器都配置成对下一页的窄条进行半色调处理,因此,当第一半色调处理器正在处理第n页面的第一窄条时,其误差项要送往的所述处理器正在处理第(n-1)页面的第二窄条。
在另一个实施例中,所述列结束于第一和第二端,所述半色调处理器通过从第一端到第二端依次处理所述列的图象数据元素进行操作。
最好横跨所述图象窄条地依次处理相邻列,所述图象开始于沿着其一个边界的列并结束于沿着其相对边界的列。
在打印介质步进通过所述打印系统时,所述第一端可对应于所述图象窄条最靠近所述打印介质的前沿或后沿的一端。
在优选的打印系统中,每一个打印引擎都为设置在分立的打印头芯片上的多个打印元件产生打印元件控制指令,其中每一个芯片都有与此相关的一组设置,供半色调处理和/或打印元件控制指令的产生之用,因此,给定的芯片用的所有打印数据都可以在所述设置为下一个芯片改变以前产生。
另一方面,本发明提供一种半色调处理器,包括:输入;数据选择装置,用以从所述输入可用的光栅化数据识别和选择一组操作数据,其中所述光栅化数据代表页面的图象,所述一组操作数据只代表图象窄条,其宽度比所述页面完全图象的宽度小并具有沿着打印介质步进方向伸展的边界;算法执行装置,用以对所述操作数据组执行算法,以便产生与所述操作数据组有关的半色调数据;输出,用以输出所述半色调数据,其中所述算法用以依次处理代表沿着所述打印介质步进方向伸展的图象元素列的数据元素。
最好所述光栅化数据包括多个数据项,每一个都具有一个或多个使所述数据项与在所代表的图象中的位置相关的位置识别符,其中所述数据选择装置用以确定与一部分图象对应的一组位置识别符,并用以从所述光栅化数据选择那些在所述确定的组中具有位置识别符的数据项。
最好所述数据项代表具有长度和宽度的图象中的像素,而所述位置识别符对标识所述像素在所述图象中的位置是有用的,其中所述数据选择装置用以确定所述沿着所述图象的宽度处于指定位置范围内的像素组的位置识别符。
本发明还提供上述的半色调处理器的阵列,每个都具有连接到公共的数据源的输入和连接到专用和单独的通信信道的输出,用以给唯一的一组打印组件供应所述半色调数据。
另一方面,本发明提供一种处理代表由打印系统打印的图象的输入数据的方法,所述方法包括以下步骤:
a)选择第一组与要打印的所述图象的第一窄条有关的数据项;
b)选择第二组与要打印的所述图象的第二窄条有关的数据项;
c)用第一打印引擎处理所述第一组数据项和打印所述图象的第一部分;和
d)用第二打印引擎处理所述第二组数据项和打印所述图象的所述第二部分;
其中所述第一和第二打印引擎并行操作,同步在打印介质上打印所述图象的所述第一和第二部分,所述打印介质在打印介质步进方向上通过所述打印引擎,和所述窄条共享与打印介质步进方向平行的边界,其中每一个引擎沿着与所述打印介质的步进方向平行的列在每一个窄条内依次处理数据项。
最好步骤a)和b)各包括:为要选择的所述图象的一部分确定一组区分与该部分有关的输入数据项的位置识别符。
该方法的优选实施例还包括:
选择一个或多个与要打印所述图象的一个或多个附加部分有关的附加的组数据项;
用一个或多个附加的打印引擎处理所述附加的组数据项,和打印所述图象的所述附加的部分;
其中所有打印引擎都并行操作,以便同时把所述图象的所述部分打印在打印介质上,而且其中打印引擎的数量等于形成要打印的整个图象的图象部分的数量。
最好每一个打印引擎包括:
1)半色调处理器,用以对要处理的窄条内的图象数据进行操作,和由此产生半色调数据;和
2)打印元件控制器,用以从所述半色调处理器接收半色调数据,并由此生成打印元件控制指令,传送到一组打印元件。
在最简单的推荐配置中,打印引擎的数量等于形成要打印的整个图象的平行窄条的数量。
另一方面,本发明还提供一种计算机程序,包括一组指令,当执行时执行本发明的方法。
所述计算机程序,可在计算机中、在喷墨式打印系统的线路中,或者分散在计算机和喷墨式打印系统中执行。
另一方面,本发明提供一种打印系统,包括多个打印引擎,其中每个都配置成打印图象的不同窄条,其中窄条之间的边界平行于打印介质步进方向,其中每一个引擎包括:
a)图象处理器,用以从输入的一组图象数据项生成打印数据;和
b)打印元件控制器,用以从所述处理器接收打印数据,并由此生成打印元件控制指令,传送给一组打印元件;
其中所述图象处理器通过依次处理图象数据元素列来处理所述图象窄条,所述列在所述打印的图象中沿着所述打印介质的步进方向伸展。
这里用的术语″打印元件″是指各打印建立装置,诸如喷墨打印头或笔。该术语还包括其它类型的打印建立组件,诸如点阵式打印头或者可以排列成阵列的其他装置,因此,使每一个装置都横跨页面打印一部分图象的任何其它类型的装置。本发明的打印机可以配置成以阵列方式接收这样的打印组件,因而所述打印组件不必形成所述打印机的一部分,并且可以是可更换的。所述接收阵列的装置可以是简单的安装轴,其上所述组件用适当的固定装置固定就位。
在本发明的这个方面,最好每组打印数据都包括与之相关的图象的窄条用的半色调数据。然而,对于通过打印半色调以外的图象操作的打印机,由所述处理器产生相应不同的打印数据组。
为了避免生疑,术语″最好″和有类似含意的单词和词组,当在这里使用时是指示它们所指的特征是本发明的基本特征。
附图的简要描述
现将通过以下对参照附图只以举例的方式给出的实施例的描述举例说明本发明,其中:
图1是按照本发明一个实施例的一种打印机层次结构的方框图;
图2是送往打印机打印的图象文件的描述;
图3是图2的图象的光栅化版本的描述;
图4显示送往图1的三个单独的半色调处理器处理的图3的光栅化图象的窄条;
图5是窄条的放大视图,举例说明三个处理器利用矩阵算法对光栅位图象素进行处理顺序;
图6是一个窄条的放大视图,举例说明三个处理器利用线性误差前向扩散算法处理所述光栅位图象素的顺序;
图7是一个窄条的放大视图,举例说明所述三个处理器利用第一蛇形误差前向扩散算法处理所述光栅位图象素的顺序;
图8是窄条的放大视图,举例说明所述三个处理器利用第二蛇形误差前向扩散算法处理所述光栅位图象素的顺序;
图9A-9D简要举例说明图象窄条处理的另外四个顺序;
图10是按照本发明第二实施例的打印机的体系结构的方框图;
图11是按照本发明第三实施例的打印机的体系结构的方框图;以及
图12举例说明打印引擎打印的窄条和要由图象生成元件组打印的部分之间的关系。
推荐实施例的详细描述
图1显示按照本发明一个实施例的打印机的主要的组件,它通过并行口10从直接连接到打印机的计算机接收打印作业。同样的打印机可以用来从局域网连接或从广域网连接,例如通过互联网进行打印。
打印作业由打印机接收,采取若干种支持形式中的任何一种,诸如用Postscript(商标)的文件(虽然,本专业技术人员会意识到,作为打印作业接收的文件性质可以按照通行的和打印机的用途而改变)。
光栅成像处理器(RIP)12接收到来的打印作业,并以已知的方式将其转换成光栅化位图。在所描述的实施例中,RIP的输出是半色调图象文件。所述打印作业以逐页的方式处理,每一个页面轮流光栅化,并经由桥14到RAM(随机存储器)缓冲区16,后者储存多个页面以便打印作业可以迅速地发送到ASIC(专用IC)作进一步处理,并避免由于其他原因而出现的图象的实时处理造成的延迟。
在本实施例中,RIP还对半色调图象数据实现传统的线性化处理。在其他实施例中这可以由打印流水线中的其它操作元件完成。于是,对图象数据进行变换,以避免或减小打印输出中的不连续性或由于给定的打印机系统的建立而造成的其它缺陷。
造成不连续的首要原因之一很可能是不同的打印头芯片上喷嘴输出体积之间的变动造成的纵向带条。
所述RIP以传统的方式进行线性化。在这处理过程中还可以针对不同的芯片的不同的墨滴体积修改数据。此外,所述RIP按数据要求作为数据块进行一般纠错的顺序处理图象数据。这样,可以在开始处理每一个数据块时把纠正每一组的设置装入存储器。
装入每一个打印头组用的参数或者设置(亦即每一组四个打印重叠点图案的打印头,诸如打印头24a,24c,24e,24g),并首先对由这四个打印头打印的图象带条进行线性化。
然后装入下一组(24b,24d,24f,24h)用的设置,对要由这组打印的图象部分进行线性化。现将更详细地描述这个处理过程。
该桥在RIP或者RAM缓冲区之间提供一条通往公用I/O总线的链路,所述总线连接到三个平行的半色调处理ASIC18,20,22。每一个ASIC都基本相同,并包括专用半色调处理器,设计来把连续色调位图输入转换为打印机上设置的墨水颜色所指定的半色调输出。在举例说明的实施例中,所述打印机是一种CMYK打印机,因而所述半色调图象将作为四种CMYK颜色的一个或多个半色调点的结合,指定所述半色调图象的每一个像素。
页面每一个ASIC 18,20,22都是专门用来处理所述图象的特定平行窄条的,其中所述图象分成三个相等的带条。带条的边界沿着页面步进方向伸展,使得对于任何要由打印头的PWA打印的特定图象行(见下述),每一个ASIC负责指定1/3面积(swath)中打印的点。
每一个ASIC的输出为一组8支笔24a-h,26a-h,28a-h指定半色调位图。这些位图通过相应一组三个打印头控制器30,32,34,转换为笔发射指令。打印头控制器是ASIC,它分析在其控制下所述窄条的半色调位图,并从所述位图为覆盖该窄条的所述笔产生一组发射指令(亦即把半色调像素转换为特定颜色的墨滴规格)。尽管半色调处理ASIC可以驱动多个打印头控制器,但是举例说明的实施例每个半色调处理ASIC只有一个打印头控制器。
于是,举例说明的实施例具有三个打印引擎。第一打印引擎包括半色调处理ASIC18、打印头控制器30和笔24a-h。第二个打印引擎包括半色调处理ASIC20、打印头控制器32和笔26a-h,而第三个打印引擎包括半色调处理ASIC22、打印头控制器34和笔28a-h。
每一组笔24,26,28包括2支黄色笔(24a,24b),(26a,26b),(28a,28b)、2支洋红笔(24c,24d),(26c,26d),(28c,28d)、2支青色笔(24e,24f),(26e,26f),(28e,28f)和2支黑笔(24g,24h),(26g,26h),(28g,28h),每支笔都是一个传统的喷墨打印头,包括沿着所述笔的方向延伸的紧密隔开的喷嘴线性系列。所述笔排列成四个平行阵列ab,cd,ef,gh,横跨所述页面的宽度42而延伸,略微重叠,使得来自该颜色的6支笔的任何特定的颜色的喷嘴都提供可打印区域的页面宽度覆盖区。
尽管在例图中未示出,所述打印机可以装有同样原色的笔的附加阵列,以便提供喷嘴冗余。在这种情况下所述打印头控制器30,32,34把半色调点分布在同样颜色那些按照屏蔽或相似的算法共享页面部分的笔中间。
这样,所述页面可以按三个窄条打印,图1中显示为窄条1,2和3。窄条1的左侧,例如,从笔24a,c,e,g接收所述四个墨水颜色的小滴,而右侧从笔24b,d,f,h接收。
所述技术是可以缩小放大的,并通过一种给定的页面宽度具有三个以上的窄条,可以达到更大的通过量。而且,通过增加专用于每一支笔的处理能力的量,可以提高打印速度,这是通过把打印机配置为较窄的窄条达到的。
图2显示一种作为打印作业发送给打印机的简单图象。图象44由RIP12接收,并光栅化以便提供一种不同的颜色像素48,50(为简单起见,图2和3中所示的图象是黑白的,但会认识到,彩色图象会产生大量的不同的颜色的像素)的图象像素化的图象46(图3)。
在每一数据块对应于沿着同样打印头阵列部分打印的一个芯片或者一组芯片的地方,光栅化图象按数据块依次处理,以便补偿打印头芯片打印特性(诸如墨滴体积)之间的变动。
如图4所示,然后任选地对光栅化图象进行缓冲,并馈送到半色调处理器18,20,22,在这里图象拆分成三个平行窄条52,54,56。
在实践中,随着半色调处理ASIC从RAM缓冲区通过所述I/O总线捕获图象文件,出现所述拆分。所述半色调处理器配置成挑选出指定给每一个半色调处理ASIC的特定的窄条中的像素。这可以简单地通过读取缓冲区的适当的DRAM地址达到。每一个ASIC确定,对于给定的宽度W的页面(W是像素的数目),宜负责每行W/3个像素。第一ASIC每行从读取编号1到W/3的像素。第二ASIC读取编号从(W/3+1)到2W/3的像素,而第三个ASIC每行读取从(2W/3+1)到W的像素。
通过这个装置光栅化连续色调图象一分为三,以便进一步处理,并且每一个半色调ASIC18,20,22对它自己的像素进行操作,以便产生所述页面窄条的打印数据组,例如利用一种传统的半色调处理算法。然而,在该半色调处理中,所用的算法可以是传统的,对图象数据元素的操作顺序是逐列,而不是逐行完成。
图5举例说明处理连续色调位图的平行处理。在图5所述例子中,半色调处理ASIC利用不包含误差项前向扩散的矩阵算法对像素进行操作。于是,处理器18将按1a,2a,3a,4a,...的像素顺序对它的连续色调位图进行操作,而对其他处理器不作任何的引用。相似地,处理器20对像素1b,2b,3b,4b进行操作,而处理器22对像素1c,2c,3c,4c进行操作,如此等等。
随着半色调图象产生,将它们送往打印头控制器30,32,34,进行发射指令的实时产生。
图6中显示一种更高级的半色调处理算法,它依靠位图中误差项的前向项扩散。所用算法是一种线性算法,依次横跨三个窄条进行操作。于是,在处理器18的第一处理像素1a,2a,..,7a,8a之后,它向处理器20发出误差项,此刻处理器18可以开始处理下一个行9a,10a,..,因为没有其他相关关系。处理器20把误差项从像素8a向前携带,以便在交给处理器22以前,处理像素1b,2b,...,7b,8b。于是,处理器18比处理器20领先一行,处理器20本身又领先处理器22一行,如此所述3个处理器以流水线方式工作。
一旦所述流水线已经填充了三个平行工作的处理器。递交误差项的机制可以不是通过同样I/O总线就是通过处理器之间的专用链路链接完成的。
图7显示该算法的变体,其中不是从左到右的线性处理顺序,而是以蛇形方式为每一行翻转处理方向,而同时以上面针对图6描述的顺序进行处理,处理器22开始处理第二行,在图7中该像素显示为25。这蛇形误差扩散算法可以达到较高质量的输出,但是在两个方向上建立相关。于是,处理器18在处理了像素8之后停住,直至它从处理器20为像素41收到误差项为止。处理器20和22也用类似的方法停住。于是,这蛇形误差扩散算法不提供平行处理,而在任何时刻只有一个处理器在工作,而其他处理器停住。
图8显示一种特别推荐的实施例,它通过对页面的个别窄条的纵向的而不是横向的半色调处理克服了这种困难。于是,处理器18不是横跨像素行,而是沿列上下地按顺序1a,2a,3a,...等完成蛇形算法。一旦它完成所述窄条,处理器18便把全行的误差项递送给处理器20。此刻,处理器18可以开始处理打印作业下一个页面的左侧窄条,然后处理器20空出来,按1b,2b,3b,4b,...等的顺序处理它的窄条。当处理器20完成第一页面的中央窄条时,它把该行的误差项递送给处理器22。
此刻,处理器18将已经完成页面2左侧窄条的处理,并把页面2的误差项给予处理器20,然后后者可以开始处理页面2的中央窄条(允许处理器18开始处理页面3)。
处理器20类似地把它的来自页面1的误差项行递送给处理器22,使处理器22可以开始处理第一页面的右侧窄条。于是,处理器18领先处理器20一个页面,处理器20本身又领先处理器22一个页面,于是3个处理器以流水线方式工作。一旦所述流水线填满,所述三个处理器便平行工作。
下表举例说明n页打印作业的相继页上不同窄条的处理顺序。在该表中,时隙是处理器接收与窄条的像素相关的误差项所需的时间长短,然后处理所述窄条,最后把来自该窄条的误差项递交给下一个处理器(若有)。于是从时隙3往后,每一处理器与其他处理器平行地进行处理,但是处理器18分别领先处理器20和22一页和两页。
时隙# |
处理器18(左侧窄条) |
处理器20(中间窄条) |
处理器22(右侧窄条) |
1 |
页码1 |
空闲 |
空闲 |
2 |
页码2 |
页码1 |
空闲 |
3 |
页码3 |
页码2 |
页码1 |
4 |
页码4 |
页码3 |
页码2 |
5 |
页码5 |
页码4 |
页码3 |
... |
... |
... |
... |
... |
... |
... |
... |
n-1 |
页码n-1 |
页码n-2 |
页码n-3 |
N |
页码n |
页码n-1 |
页码n-2 |
N+1 |
空闲 |
页码n |
页码n-1 |
N+2 |
空闲 |
空闲 |
页码n |
这样,利用误差前向扩散算法的精巧,而同时减少每一个处理器所依赖于另一个的结果的程度。这种算法是有利的,因为它提供高质量的半色调输出,但假若对各行(亦即象素1a,72a,73a,...,1b,...,1c)采用同样的算法,则将在该算法横跨各行向后和向前工作时在两者方向上都建立关系。于是,处理器18在处理它的窄条的顶行最右的像素之后,就会停住直至它从处理器20收到像素2b的误差项为止。处理器20和22也会类似地停止工作。于是,这种蛇形误差扩散算法不提供并行执行,而在任何时刻只有一个处理器在工作,而其他停止。
图9A-9D显示处理像素的替代处理顺序。图9A简要地举例说明按列处理像素的第一替代方式。为简单起见,把图象显示成分为三个窄条40,42,44,每一个窄条由不同的半色调处理器处理。粗箭头46指示打印介质的步进方向。第一半色调处理器的处理从列1a开始到列7A结束,依次处理窄条40各列(当然,在具有代表性的打印图象窄条中像素列会超过7列,但是该原理图的目的是举例说明,所述像素是从前沿到后沿进行处理的,在左侧边界开始,到右侧边界结束)。第二和第三半色调处理器对所述列进行类似的处理,从前沿到后沿,在左侧边界开始,到右侧边界结束。因此,与图图5的蛇形处理不同,没有误差项的逐列传送。相应地,所用算法不包括任何误差前向扩散。
在图9B中,采用相似的算法,但是每一列从后沿开始处理,在前沿结束。图9C和9D分别举例说明与图9a和9B的处理相同的处理像素列的方法,但是其中每一个窄条中要处理的第一列是在右侧边沿,而最后一列在左侧边沿。
在图9A-9D所示的所有处理顺序的情况下,尽管不使用蛇形算法,但还是可以利用本发明所提供的优点,具体地说,装入第一笔用的设置,对要由该笔打印的全部图象数据元素进行半色调处理和屏蔽,然后在装入下一个笔用的设置以前放弃那些设置。另外,负责打印窄条40,42和44的三行之间没有关系。
图10显示打印系统的另一个实施例,其中所述打印流水线包括RIP60、专用线性化ASIC62、贮存线性化了的连续色调数据用的RAM缓冲区64和打印头控制器68。(和前一实施例不同,该实施例用单一个半色调处理ASIC对整个页面宽度图象进行半色调处理,而不是把图象拆分为单独的窄条,进行独立的半色调处理。)
打印喷嘴的页宽阵列包括四个打印条70,72,74,76(分别打印C,Y,M和K墨水)。每一个打印条由六个打印头70a-70f,72a-72f,74a-74f,76a-76f构成,每一个打印头作为单独的芯片设置。每一个打印头具有独特的操作特性(在墨滴体积变动、喷嘴不完善性等等方面)。因此,在打印流水线中处理图象数据可以像在这里论述的进行标准化或者调整,以补偿打印头之间操作特性的变动。
所述标准化可以在所述打印流水线内任何一点完成,诸如打印头控制器、半色调处理器、线性化处理器或者RIP内。一般最好对连续色调数据进行调整,诸如在线性化过程中,而不是对半色调数据进行。这样做的原因是连续色调数据组可以更精确地改变,就因为把图象指定为一组连续半色调平面,后者可以精细地改变,作出细小的补偿。另一方面,在一个半色调数据组中所述图象不太容易作程度小的改变。
线性化ASIC用打印头芯片的数目关系和空间关系编程。因此,它″知道″每一组喷嘴负责所述页面宽度给定的部分A,B,C,D,E或者F上某一颜色的墨水的打印。于是,所述图象按照打印头特性按以下方法一部分一部分地进行调整:
-从存储器装入补偿所关心的四个打印头70a,72a,74a,76a的操作特性的设置,并用以补偿或者调整与图象页面整个部分的连续色调数据,亦即要由第一打印头组70a,72a,74a,76a打印的部分;
-把所述图象部分A的调整后的数据组贮存入缓冲区,并放弃所述设置;把补偿第二打印头组70b,72b,74b,76b用的设置装入存储器,用以补偿或者调整对应于图象页面的整个部分B的连续色调数据,亦即要由第一打印头组70b,72b,74b,76b打印的部分等等;
-对每一部分A-F重复所述补偿,只涉及补偿参数的五个变化。
在上述实施例中,已经描述了两种类型的效率:(i)把页面看作是一组平行″窄条″,并独立地对这些窄条进行半色调处理,具体地说对列中相继出现的像素执行半色调处理算法;和(ii)在图象处理的至少在一步骤上进行调整,通过处理数据块(对应于每一组依次打印的图象部分)考虑图象生成元件组操作特性的差异,并随着处理的每一个数据块,依次为每一组装入新的设置。正如图1的描述所表明的,这些概念最好一起使用,尽管它们可以彼此独立实现(诸如在图10的实施例中)。
图11举例说明一个可以更清楚看出所述图象″窄条″(对于平行半色调处理)的实施例和图象″部分″(用具有不同特性的组打印)的概念、如图1所示,三个平行打印引擎对半色调数据进行操作,并(分别通过三个半色调处理器18,20,22和三个打印头控制器30,32,34)产生打印头发射指令。这些引擎负责在该图底部标识的三个窄条中的每一个打印流水线的末级。在每一个窄条内(亦即在给定的打印头控制器的控制下)是一组16个打印头(四种墨水颜色中每种四个相邻的打印头),总共48个打印头。
因此,当看做是四种颜色复合图象时,所述页面由12个部分组成,对应于所述12个打印头组。当看做是四个重叠的颜色平面时,所述图象具有48个部分(4种颜色x每种颜色12个打印头或喷嘴组)。
因此,根据所述图象在进行调整的时刻如何处理,对于要由一″组″图象生成元件打印的图象的各″部分″可以作不同的定义。若要补偿的图象数据包括全部颜色,则图象的每一部分将利用打印该图象的该组,就是说不同的颜色打印头上的一组喷嘴的设置进行调整。另一方面,若对每种颜色的数据单独进行处理,则每一部分便是必须针对打印该颜色的图象生成元件的特性进行调整的单色部分,亦即该″组″将定义为刚好打印该部分(亦即颜色)的一组喷嘴。
每一组打印头(或者每一组相应的四个喷嘴组)负责打印12个图象部分A-L中的各自一个。若对不同的操作特性的补偿是在RIP上完成的,则RIP将要因此处理12个数据块中的页面数据。所述块A-L与图象本身的关系可以在图12中看出。
图12中的图象分成三个窄条,而每个窄条都由四个部分组成(因而,例如,窄条2由部分E,F,G,H组成)。在该实施例中,给定的窄条中四个部分的每一个都由不同的一组四个交错的打印头打印,并因此所述四个打印头构成一组。每一部分图12中都表示为2个像素宽,但当然这些部分在实际上可以由比这多得多的像素组成。
半色调处理可以用设置或者参数逐个窄条调整,以改变输出,来补偿打印头特性的变动,或者所述补偿可以发生在所述打印流水线的其他位置(诸如在RIP中、在线性化步骤或者甚至在打印头控制器内,在它施加打印遮片上时)。
若每个窄条的半色调处理在补偿时进行,则每个窄条的半色调处理应该按照列的顺序进行(与其余两个窄条平行进行)(见图,8和9A-9D,与图5-7相反)。这将使与一个打印头相应的列能够利用该打印头的设置进行半色调处理,然后在处理下一个打印头的列之前装入新的设置等等直至对应于所述个别打印头的窄条的所有部分均已依次进行半色调处理为止。
尽管上述的实施例已经描述为彩色打印机,但它们不必是彩色打印机,单色操作的打印机(诸如″黑白″或者其它单一彩色打印机)由于数据处理的改善,也可以受益于本发明的优点。例如,带有一组多余的打印头的黑白打印机,可以使每一组打印头特性都按照本发明进行补偿,改善通过所述打印机的数据流速率。
本发明不限于这里描述的实施例,在不脱离本发明的精神的情况下可以作出种种改变。