用于生成光栅对象的方法、系统、程序和数据结构的制作方法

文档序号:6555907阅读:210来源:国知局
专利名称:用于生成光栅对象的方法、系统、程序和数据结构的制作方法
本申请涉及题目为“从为象素提供的许多艺术线条(line work)数据对象中选择艺术线条和控制数据的方法、系统和逻辑”,申请人为David E.Finlay和Phillip K.Hoskins,律师存档为BLD9-2000-0015US1的共同未决、共同受让专利申请,这里全文引用作为参考。
本发明涉及用于生成光栅对象的方法、系统、程序和数据结构,光栅对象用于生成输出光栅数据的进一步处理,而输出光栅数据用于控制设备以生成输出。
为了打印图像,此处称为光栅图像处理器的打印引擎处理器,将页面描述语言或矢量图形格式的图像,转换为位像,后者指示要在该图像的各个象素上打印的值。将位像发送到打印机,以使打印头根据位图中的信息,在各象素处打印指定的彩色值。如果打印机具有许多打印头,如用于不同颜色的打印头,则生成各打印头的位图。打印头将各位图定义的图像覆盖到打印介质上。
为了生成打印头的位图,光栅图像处理器在打印图像上执行许多变换,打印图像可以包括不同类型的数据,诸如艺术线条(line art)(如文本和图形)以及连续色调,如图像。在生成要打印的光栅位图时,光栅图像处理器通常执行诸如数据压缩、颜色空间转换、和半色调处理之类的操作。在将打印图像分解为诸如颜色分量、艺术文本、连续色调、图像等之类的不同组件后,光栅图像处理器必需将不同组件合并起来,从而为彩色平面处理重构以前划分为不同组件的原始图像。
当更新的打印机以更高的分辨率和更高的速度打印时,生成打印作业所需要的数据量也相应增加。提高打印机速度和改善打印机性能的主要问题之一是,优化光栅化打印数据所需要的时间,特别是光栅图像处理器将图像分解为不同对象组件,然后重新装配、解压缩、屏蔽(screen)并将这些组件合并为最终位像所需要的时间。
因此,需要一种在技术上将诸如文本、矢量图形、图像和光栅数据之类的打印数据,更及时地转换为最终的光栅化位图,以增加打印吞吐量的改进方法、系统和程序。
为了克服以上说明的现有技术中的限制,最佳实施方式公开了一种用于生成光栅对象的方法、系统、程序和数据结构。接收许多输入连续色调和艺术线条对象,这些对象包含一页上至少有一个象素的连续色调或艺术线条数据。对于每个输入连续色调对象,生成至少一个输出连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据。对于各输入艺术线条对象,生成至少一个输出艺术线条对象,该对象包含输入打印数据对象中各象素的颜色数据。生成各象素的控制数据,该数据表示是从该象素的输出艺术线条对象中选择数据,还是从该象素的输出连续色调对象中选择数据,其中逻辑使用控制数据以便从象素数据的输出艺术线条对象或从象素数据的输出连续色调对象中选择颜色数据,从而发送到输出设备以绘制象素数据。
在其他实施方式中,为各输入艺术线条对象,生成一个中间艺术线条对象,该对象包含输入艺术线条对象中各象素的颜色数据。从一个中间艺术线条对象生成输出艺术线条对象。为各输入连续色调对象,生成一个中间连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据。从一个中间连续色调对象,生成输出连续色调对象。判定与一条扫描线相交的中间艺术线条对象的数目是否超过最大值。如果这样的话,即与一条扫描线相交的中间艺术线条对象的数目超过最大值,则将多个中间艺术线条对象合并为一个合并后的输出艺术线条对象。为合并后的中间艺术线条对象生成一个输出艺术线条对象,从而所生成的与一条扫描线相交的输出艺术线条对象的数目小于最大值。
最佳实施方式提供一种算法和数据结构,以便光栅图像处理器用来从独立的可显示对象(IDO)生成一组光栅对象,诸如处理器或硬件卡之类的其他逻辑组件可进一步处理IDO。由光栅图像处理器生成的一组光栅对象,包含来自艺术线条或连续色调对象的颜色数据以及控制位,控制位表示使用哪个光栅对象来选择象素的颜色数据。这样,将许多合并、屏蔽和解压缩操作被卸载到外部硬件卡或处理器上,从而减轻了光栅图像处理器的大量处理负担。通过减轻光栅图像处理器的负担,提高了光栅生成处理的性能,并且由于允许以更快的速度向打印机提供最终的输出光栅数据,最终提高了打印速度。
以下参照附图,其中在整个附图中,相同参考号表示相应部分

图1表示实施本发明最佳实施方式的打印环境;图2、5a、5b和6表示根据本发明之最佳实施方式,生成艺术线条和光栅对象的逻辑;图3表示根据本发明之最佳实施方式的双级显示项目的组件对象的示例;图4表示根据本发明之最佳实施方式,定义一页包含许多艺术线条或连续色调显示项目的纸张的屏蔽区域的方法。
在以下说明中,将参照构成本发明之一部分并且说明本发明之一些不同实施方式的附图。应该理解,可以利用其他实施方式,并且可以进行结构和操作改变而并不背离本发明的范围。
图1表示实施最佳实施方式的打印环境。主机2生成打印作业4,后者可以包含图像(连续色调)和艺术线条(文本)组件。主机2通过电缆或网络传输线路,将打印作业4传送到打印机控制器6。打印机控制器6由单机处理器或计算机组成,如IBM RS/6000(IBM公司的注册商标)处理器。打印机控制器6包含一个光栅图像处理器8,最好用RS/6000主处理器和随附固件实现光栅图像处理器。在最佳实施方式中,光栅图像处理器8生成包含光栅数据的光栅对象10a、b、c、d。各光栅对象10a、b、c、d包含成像系统12的一个颜色分量的象素信息。例如,如果成像系统12打印青(C)、品红(M)、黄(Y)和黑(K),则需要打印扫描线的各颜色分量的一个光栅对象。此外,艺术线条和连续色调(图像)可能有独立的光栅对象10a、b、c、d,因此为扫描线的艺术线条和连续色调组件,提供该扫描线的各颜色分量的8个独立光栅对象。可以使用诸如国际商业机器公司(IBM)的Infoprint(IBM公司的注册商标)彩色打印机之类的同一大型打印机中,或者利用独立服务器和通过网络进行通信的单机打印机,或者直接使用串口或并口进行连接,实现打印机控制器6和成像系统12组件。
最佳实施方式包括一个彩色接口卡(CIC)14,最好在硬件卡,如使用现场可编程门阵列(FPGA)逻辑的PCI卡上实现CIC 14。可以将CIC卡14插入到打印机控制器6底板上的PCI插槽中。在将光栅对象10发送到成像系统12进行打印之前,CIC卡14对光栅对象10进行进一步的处理。
在某些实现中,一块CIC卡14能够生成两个色面(color plane)的打印数据。这样,为了生成全部4个色面的输出设备的最终光栅,需要两块CIC卡。在打印机同时打印纸张的两面的双面实现中,需要使用4块CIC卡,每面两块,以便同时生成光栅数据供打印头在两面上打印。
生成要由CIC卡使用的光栅对象最佳实施方式提供一种算法和数据结构,供光栅图像处理器8用来生成发送到CIC卡14的独立艺术线条和连续色调对象,以组合并生成最终的打印输出。光栅图像处理器8利用标题信息对艺术线条和连续色调对象进行编码,标题信息使CIC卡14逻辑能够将每条扫描线中的多个艺术线条和连续色调对象,能够组合为最终的打印输出。这样,可以将许多光栅处理操作卸载到独立的硬件卡中,从而减轻了光栅图像处理器8之许多处理器密集的光栅操作。这本身又显著提高了最终的打印机速度和性能,其原因在于,通过将许多光栅处理操作卸载到在CIC卡14内实现的专用硬件逻辑,能够更快地生成打印机(或其他输出设备)所使用的最终光栅输出数据。
在所述实现中,CIC卡14包含处理多达每扫描线每色4个艺术线条和4个连续色调对象(共计每扫描线16个艺术线条和16个连续色调)的硬件逻辑。鉴于此,如果光栅图像处理器8接收包含每扫描线多于4个连续色调或艺术线条对象的输入打印数据对象,则光栅图像处理器8必须合并某些对象,以符合CIC卡14的硬件限制。如果CIC卡14能够处理每扫描线或多或少的艺术线条或连续色调对象,如n个对象,则光栅图像处理器8必须合并输入打印数据对象,以确保每扫描线不多于n个艺术线条或n个连续色调对象。
图2、5a、5b和6表示根据本发明之最佳实施方式,由光栅图像处理器8执行的、用来生成供CIC卡14使用的光栅对象10a、b、c、d的逻辑。图2表示光栅图像处理器8执行的逻辑,该逻辑用于将输入的独立可显示对象(IDO),包含文本、双级、矢量图形、页面描述命令或可由应用程序生成的任意其他数据格式,转换为称为显示项目的中间对象,其中显示项目包含来自输入打印数据对象的打印信息。打印信息由位图或页面描述语言命令组成,位图表示一页中特定象素的彩色值,而页面描述语言命令指示该彩色值在该页上的特定位置。控制从框100开始,光栅图像处理器8接收一个或多个独立的可显示对象(IDO)。IDO包含文本、图像、图形、压缩图像、非压缩图像、矩形、条形码、页面描述语言命令等。光栅图像处理器8将艺术线条(LW)和连续色调(CT)优先级变量设置为0。对于各接收的IDO(在框104),光栅图像处理器8生成(在框106)一个显示项目。
显示项目包含数据的位图,位图表示如何显示一条或多条扫描线上的象素。光栅图像处理器8会进一步生成(在框108)各艺术线条和连续色调显示对象的一组属性和一个控制掩码,属性表示显示项目的大小以及彩色值在该页上的位置信息。控制掩码表示是显示(不透明)还是不显示(透明)该显示项目中特定象素的彩色值。显示项目类型包括实体矩形、双级位图、JPEG(联合图像专家组)图像等。
实体矩形显示项目会包含该实体形状的CMYK彩色数据、高度和宽度数据以及在该页上的位置数据。
为独立的可显示对象(IDO),包含文本、双级图像以及仅有一种颜色的条形码,生成一个双级显示项目。双级显示项目包含4色面CMYK的4个1字节的彩色对象以及一个艺术线条掩码。在CMYK彩色对象中指定的4个色面的每个色面的颜色的组合,一起定义双级显示项目的颜色。艺术线条掩码包含双级图像区域中各象素的位值。“on”值表示该双级图像为与“on”值(不透明数据)相对应的象素提供颜色。而“off”掩码值表示该象素不使用彩色数据(透明)。图3提供文本串“abc”的双级显示对象的组件对象的示例。艺术线条对象152、154、156和158均提供C、M、Y、K之一的1字节的彩色值,和一个艺术线条掩码150。艺术线条掩码150的白色部分表示使用CMYK由对象152-158定义的颜色的不透明象素,而黑色区域表示不使用颜色数据的透明部分。因此,通过控制掩码中指示的不透明象素,字母出现。
JPEG显示项目用于定义JPEG压缩的连续色调图像。JPEG显示项目会包含该图像之32位彩色值的JPEG连续色调压缩版本。在最佳实施方式中,由应用程序(输入到系统中的IDO的生成器)控制损失量。
光栅图像处理器8将为在输入数据流中接收的不同类型的独立可显示对象,生成不同的艺术线条和连续色调显示项目。
如果生成的显示项目是用于艺术线条的,则光栅图像处理器8将该显示项目的指针,添加(在框112)到艺术线条(LW)显示列表中,并将当前艺术线条(LW)的优先级值,分配给该显示列表中的显示项目条目。将艺术线条(LW)的优先级值加1(在框114)。否则,如果生成的显示项目为连续色调对象,则将该显示项目的指针,添加(在框116)到连续色调(CT)显示列表中,并将连续色调(CT)的优先级值,分配给CT显示列表中的显示项目条目。然后将连续色调(CT)的优先级值加1(在框118)。光栅图像处理器随后创建(在框120)一个连续色调(CT)影象显示项目,该显示项目与连续色调(CT)显示项目的大小和位置相同,并且具有一个包含该连续色调(CT)显示项目中各象素值的位图,其中象素值表示该连续色调(CT)显示项目是否提供该象素的彩色值。然后,将连续色调(CT)影象显示项目的指针,添加(在框122)到艺术线条显示列表中,并且为连续色调(CT)影象显示项目而分配艺术线条优先级变量的优先级值。控制随后转移到框114。这样,艺术线条(LW)显示列表保持所有艺术线条和连续色调对象的信息,该信息提供一页的象素数据以及所提供象素数据的相对优先级。当确定要设置的艺术线条对象中艺术线条控制(LWC)位的值时,即象素数据应来自一个连续色调对象还是来自一个艺术线条对象时,使用上述连续色调(CT)影象对象。
对每页所接收的各独立可显示对象(IDO),发生从框106到框122的上述过程。图2中逻辑的最终结果为艺术线条和连续色调显示列表,该列表具有显示项目的指针,显示项目具有优先级值,该值表示接收独立可显示对象的顺序。在最佳实施方式中,光栅图像处理器8根据要显示的优先级,接收独立可显示对象(IDO),从而后接收的IDO的优先级,高于具有先接收的IDO的任意重叠部分的优先级。因此,为显示列表中的显示项目分配的连续色调(CT)和艺术线条(LW)优先级值,表示要相对于其他连续色调和艺术线条显示项目显示的连续色调和艺术线条显示项目的打印数据的优先级。此外,艺术线条(LW)显示列表还表示(通过使用连续色调(CT)影象显示项目)连续色调显示对象是否还提供数据,以及该连续色调(CT)显示项目提供的此类连续色调数据的优先级。
如上所述,在最佳实现中,CIC卡14硬件逻辑仅能处理各色面(CMYK)之每条扫描线的至多4个连续色调对象和4个艺术线条对象。图5a、b表示光栅图像处理器8为确保与一条扫描线相交的对象数不超过CIC卡14硬件逻辑能够处理的最大值,而合并连续色调和艺术线条显示项目数据所执行的逻辑。此外,图5a、b的逻辑提供利用两个艺术线条控制(LWC)位,对该艺术线条对象中所表示的各象素进行编码的逻辑,其中艺术线条控制位表示选择艺术线条、选择连续色调还是透明。选择艺术线条值,指示CIC卡14逻辑可使用该象素的当前艺术线条对象中提供的数据。选择连续色调,指示CIC卡14逻辑可使用表示该象素之最高优先级连续色调对象的数据。透明值表示可考虑该象素之下一个最高优先级的艺术线条对象。
在最佳实施方式中,作为合并过程的一部分,为各自显示列表中的连续色调和艺术线条显示项目,而定义独立的艺术线条和连续色调扫描区域。扫描区域定义一条或多条包围一个或多个对象的扫描线。通过处理各条扫描线创建扫描区域。每当一个新的对象边界、起点或终点出现在扫描线上时,就将当前扫描区域划分为两个扫描区域—位于扫描线之前的扫描区域和位于该扫描线之后的扫描区域。初始扫描区域从一页上的第一条扫描线开始。当到达第一对象或一个新对象的边界时,将此初始扫描区域划分为该边界之前的一个区域,以及在该边界之后的第二区域,其中当到达其他起点和终点边界时,可以进一步细分第二区域。在定义了连续色调和艺术线条显示列表的扫描区域之后,光栅图像处理器8把与各定义的扫描区域相交的显示项目的指针列表,包含到各扫描区域中。
图4表示包含(艺术线条或连续色调)对象A、B、C、D和E的一张纸250。根据X、Y坐标位置,在纸张250上表示上述对象。将各扫描区域定义为具有起点扫描线和终点扫描线。起点和终点扫描线位于显示项目开始或显示项目结束的地方。在一种实施方式中,将扫描区域的起点和终点限制在该纸张内的位置的固定组内,从而各扫描区域包含最小数目的扫描线。仅当项目的起点或终点落在最小扫描区域边界之外时,才创建新区域。这样,保证各扫描区域可包含最小数目的扫描线,以便减少扫描区域的数目,从而创建对象。各对象需要处理器系统开销,以生成标题信息,并且在CIC卡14中独立处理。因此,在增加扫描区域的扫描线大小和光栅对象的范围内,提高了性能。上述扫描区域最小值线的要求避免了生成降低性能的非常小的扫描区域。
图5a、b表示在光栅图像处理器8中实现的、用于创建各色面的光栅对象10a、b、c、d的逻辑。如上所述,如果有4个以上的连续色调(CT)或4个以上的艺术线条(LW)显示对象与一条扫描线重叠,则必须将相同范围内的许多显示项目中的部分项目的打印数据,合并到艺术线条或连续色调光栅对象中。此外,在合并过程中,光栅图像处理器使用掩码数据或其他生成数据,在输出艺术线条光栅对象10a、b、c、d中设置两个艺术线条控制(LWC)位,以便指示控制CIC卡14是使用当前的艺术线条光栅对象,还是使用最高优先级的连续色调对象,抑或考虑特定象素的下一个最高优先级的艺术线条对象。
参照图5a,在生成了所有连续色调和艺术线条扫描区域之后,生成CIC卡14使用的最终连续色调和艺术线条光栅对象10a、b、c、d的过程,从框300开始。在框304到338中,光栅图像处理器8对纸张上的各扫描区域i,执行循环操作306到336,以生成艺术线条对象的颜色数据和艺术线条控制(LWC)位,以及连续色调对象的颜色数据。其结果为各色面CMYK的独立艺术线条和连续色调对象。
在框306,光栅图像处理器8按照其优先级(在图2中框112分配的优先级),对扫描区域i中的所有艺术线条(LW)对象排序。光栅图像处理器8随后将显示项目分为(在框306)1到4组。在最佳实施方式中,各组具有排序时确定的邻接优先级的显示项目。然而,在备择实施方式中,可以根据诸如显示项目中相关类型数据之类的因素而不是根据邻接优先级,将显示项目分配到组中,例如对具有某种压缩格式的数据、具有某种颜色数据格式的数据及类似数据的所有显示项目进行分组。此外,也可以将具有非邻接优先级的显示项目,分配到同一组中。然后将各组分配到一个代理对象,该对象是为光栅图像处理器8的存储器中的扫描区域创建的。在当前实现中,一个扫描区域至多可以有4个代理对象。各代理对象包含扫描区域i中各象素的象素信息。艺术线条代理对象是一个占位符,其中为扫描区域i中的各象素,编码一个色面的8位颜色数据以及两位艺术线条控制(LWC)数据。代理对象是作为生成能由CIC卡14处理的最终艺术线条光栅对象10a、b、c、d的过程的一部分创建的。
从框308到328,光栅图像处理器8对扫描区域i中的各代理对象执行循环。对于各代理对象以及艺术线条代理对象中的各象素j,光栅图像处理器执行框310到328。在框312,光栅图像处理器8考虑具有最高优先级的代理对象中的艺术线条(LW)显示项目。如果(在框314)考虑的LW显示项目为表示象素j的连续色调(CT)数据的连续色调影象显示项目,则应最终选择由连续色调(CT)影象对象表示的连续色调显示项目中的连续色调彩色值,以适合于CIC卡14选择的最终打印输出。鉴于此,光栅图像处理器将艺术线条控制(LWC)位设置为(在框316)选择连续色调(CT),使CIC卡14稍后选择各色面中各象素j的最高优先级的不透明连续色调彩色值。
如果(在框314)考虑的(LW)显示项目不是连续色调(CT)影象项目,则光栅图像处理器确定(在框318)正在考虑的艺术线条显示项目是否具有用于象素j的不透明彩色值。这可以根据控制掩码进行确定,当存在不透明数据时象素的控制掩码为“on”值,而提供的颜色数据为透明即不使用时具有“off”值。如果艺术线条(LW)显示项目提供不透明的象素数据,则光栅图像处理器8将该色面的8位颜色数据,设置为(在框320)色面(CMYK)中象素j的艺术线条显示对象中的值,并且设置两个艺术线条控制(LWC)位以使用艺术线条(LW),从而指示CIC卡14使用象素j的艺术线条数据。
如果(在框318)考虑的艺术线条(LW)显示项目控制掩码表示象素j透明,则光栅图像处理器8确定(在框322)是否还有未考虑的分配到代理对象的其他显示项目。如果没有,则光栅图像处理器8将象素j的各色面的艺术线条控制(LWC)位,设置为(在框324)透明。否则,如果(在框322)该代理对象还有未考虑的显示项目,则光栅图像处理器8考虑(在框326)下一个最高优先级的显示项目(可以为艺术线条或连续色调影象项目),然后返回到框314,以便使用正在考虑的艺术线条控制(LWC)显示项目,确定各色面的代理对象中象素j的数据。在设置了在框316、320或324合并后的代理对象的各色面的象素j的值之后,控制进行到框328,以继续第(j+1)个象素的循环。在对各色面的当前代理对象中的所有象素数据的颜色数据和艺术线条控制(LWC)位进行编码后,将合并后的代理对象的优先级,设置为(在框330)分配给该代理对象的显示项目的最高优先级。在框322,控制返回到框308,以考虑扫描区域i的下一个代理对象以及分配到该对象的所有艺术线条显示项目。
作为形成一页纸的代理对象的一部分,光栅图像处理器8还按照代理对象向该页提供象素数据的顺序,保持一个X-Y列表,该列表包含代理对象的指针链表。为了形成X-Y列表,在处理了扫描区域i的所有代理对象之后,光栅图像处理器8根据该扫描区域中所有代理对象的优先级(从低到高),对其进行排序(在框334)。然后根据排序次序,将该扫描区域中各代理对象的指针添加(在框336)到X-Y列表中。链接X-Y列表中的条目即指针,从而该列表中的各条目具有一个代理对象的指针,以及一个随后添加到该列表中的代理对象的指针。控制然后返回到框304,以考虑第(i+1)个扫描区域。图5a、b中的逻辑的执行,产生包含8位颜色数据和两位艺术线条控制位的艺术线条代理对象,其中控制位指示处理器使用来自代理对象(LW选择)的颜色数据,使用最高优先级的连续色调对象(CT选择),或者考虑下一个艺术线条代理对象(透明)。
如果某个扫描区域的连续色调显示项目多于4个,则光栅图像处理器8必须合并连续色调(CT)中的连续色调(CT)显示对象,以将连续色调(CT)显示项目的数目减少至4个。上述合并过程必须考虑最高优先级连续色调(CT)显示项目中的象素是否为透明的,以及是否应在合并后的连续色调(CT)代理对象中,使用来自较低优先级连续色调(CT)显示项目的数据。然而,在最佳实施方式中,连续色调对象中没有诸如艺术线条控制(LWC)位之类的控制位,这是由于要根据艺术线条光栅对象10a、b、c、d中的艺术线条控制(LWC)位,确定是使用连续色调还是使用艺术线条数据的缘故。
在生成了艺术线条(LW)和连续色调(CT)代理对象的颜色数据之后,光栅图像处理器8将执行图6的逻辑(从框400开始),以生成代理对象的标题信息。以下是光栅图像处理器8为各代理对象的各色面(CMYK)而生成的标题对象中的字段。此时,艺术线条(LW)和连续色调(CT)代理对象成为CIC卡14要访问的光栅对象10a、b、c、d。
序号对于该页顶部的光栅(代理)对象,可以从零开始对各颜色的光栅对象连续编号。新号码就是序号。对于下页上的第一对象的各颜色,将序号复位为零。因此,根据其序号的排序,在纸张上打印光栅对象。在最佳实现中,最大序号为15。在达到15之后,序号从零开始。序号用于确定接收光栅对象的顺序是否正确。
对象类型表示对象是某页上的第一光栅对象,还是最后对象,抑或是下一对象,其中下一对象为第一光栅对象和最后光栅对象之间的任意对象。对象类型还表示该对象是否为整个打印作业的最后光栅对象,以及是否打印空白页。在最佳实施方式中,利用一个5位编码来表示对象类型,其中第一位表示该光栅对象是该页上的第一对象;第二位表示该光栅对象是下一对象,即在该页上的第一对象之后;第三位表示该光栅对象是该页上的最后对象;第四位表示该光栅对象是打印作业的最后光栅对象;而第五位表示,例如,如果某种颜色将不出现在该页上,或者该页没有艺术线条或连续色调对象,则打印当前的整个空白页。为了打印空白页,必须为各色面生成表示打印空白页的空值连续色调(CT)和艺术线条(LW)对象。美国序列号为09/499,722,申请日期为2000年2月8日,题目为“用于错误校验光栅对象的方法、系统和程序”的共同未决、共同受让美国专利申请,描述了使用对象类型信息来检查对象之接收顺序的方法,这里全文引用该申请作为参考。
压缩类型用于压缩光栅对象的压缩算法的信息。
优先级表示与同一扫描线重叠的对象的优先级。以每象素为基础,优先打印具有较高优先级的对象,而不是其他对象。因此,较高优先级的象素的对象将出现在较低优先级的象素的对象上,除非高优先级对象是透明的,以允许象素的较低优先级的对象通过较高优先级的对象出现。因此,优先级表示覆盖与扫描线重叠的对象的顺序。选择优先级数以符合覆盖同一集的一个或多个扫描线的4个对象的优先级。
开始和停止传送地址表示沿传送方向占据纸张的光栅对象的第一坐标和最后坐标。
开始和停止扫描地址表示沿扫描方向占据纸张的光栅对象的第一坐标和最后坐标。
传送方向上的开始和停止裁剪表示沿传送方向裁剪图像的起点和终点。例如,如果开始传送地址小于开始裁剪地址,则对于开始裁剪地址之前的象素,不裁剪、不打印图像。如果停止传送地址大于停止裁剪传送地址,则裁剪该图像。
扫描方向上的开始和停止裁剪表示沿扫描方向裁剪图像的起点和终点。
链接地址由标题表示的艺术线条或连续色调数据的指针。艺术线条标题的链接地址,确定艺术线条数据(8位)和艺术线条控制(LWC)位的地址。
光栅图像处理器8还根据各代理对象在X-Y列表中的顺序,生成(在框402)各代理对象的序号,即在链表的顶部从零开始,连续编号到达X-Y链表的底部。光栅图像处理器8随后根据对应光栅对象的序号,生成(在框404)标题指针的链表。然后,光栅图像处理器在存储器中保存(在框406)作为光栅对象的代理对象以及其标题对象,从而在CIC卡14访问并释放它们之前,操作系统不会重写或修改存储器中的光栅对象和标题地址。通过允许CIC卡14直接从高速、易失存储器中检索光栅对象和标题对象,上述存储器管理进一步提高了性能。
然后,CIC卡14硬件可以使用在存储器中生成的光栅对象10a、b、c、d,以生成用于输出设备(如打印机)的最终光栅输出,如同题目为“从为象素提供的许多艺术线条数据对象中选择艺术线条和控制数据的方法、系统和逻辑”,律师卷号为BLD9-2000-0015US1的相关共同未决专利申请中说明的那样,这里全文引用该申请作为参考。
最佳实施方式使光栅图像处理器8,将输入的独立可显示对象(IDO)转换为显示项目,然后转换为许多光栅对象,随后将光栅对象提供给硬件卡,如CIC卡14,进行进一步处理,以生成最终的打印输出。这样,在最佳实施方式中,利用硬件逻辑(CIC卡14),处理现有技术在光栅图像处理器中实现的大量光栅处理操作。
就生成光栅数据而言,最佳实施方式显著提高了光栅图像处理器8的性能,这是由于在最佳实施方式中,光栅图像处理器8仅执行生成独立艺术线条和连续色调对象所需要的光栅步骤,这些对象由硬件逻辑实现艺术线条和连续色调对象的进一步处理,如解压缩、合并和屏蔽,从而将许多处理器高度密集的操作卸载到专用硬件逻辑上,而专用硬件逻辑执行此类操作的速度,通常比光栅图像处理器8的软件或程序更快。此外,通过使用两个处理器执行现有技术中单一光栅图像处理器执行的光栅操作,能够显著提高性能。因此,最佳实施方式提供将特定光栅操作分配到光栅图像处理器8和其他处理部件(如CIC卡14)的改进方法,以便提高光栅图像处理的速度和性能。
备择实施方式和结论以下说明实现本发明的某些备择实施方式。
可以按照一种使用标准编程和/或工程技术来生产软件、固件、硬件或其任意组合的方法、装置或信息承载介质的方式,实现最佳实施方式。可以通过各种信息载体,包括但不限于,计算机可读设备,载体、或介质,如磁存储器介质,“软盘”,CD-ROM,通过网络传输线路提供程序访问的文件服务器,无线传输介质,在空中传播的信号,无线电波,红外信号等,将定义最佳实施方式的功能的程序,交付计算机使用。当然,熟练技术人员可以理解,可以对上述配置进行许多修改,而并不背离本发明的范围。上述承载介质,当携带控制本发明之功能的计算机可读指令时,表示本发明的备择实施方式。
在最佳实施方式中,光栅对象具有用于确定是否以正确顺序接收对象的特定信息,如对象类型,序号等。在备择实施方式中,光栅对象中可以包括进一步的信息或经过修改的信息,以确保以正确顺序处理光栅对象。同时,除本文讨论的对象类型外,还可以有不同的对象类型或附加对象类型。
在最佳实施方式中,处理所生成的光栅对象的CIC卡包含硬件逻辑。在备择实施方式中,可以使用附加处理器以进一步处理根据最佳实施方式生成的光栅对象。
在最佳实施方式中,生成打印机使用的光栅对象,以控制打印机操作。然而,在备择实施方式中,光栅对象可以为诸如计算机图形卡或显示引擎之类的其他设备,提供颜色数据,以便在生成输出显示数据时使用。
另外,可以以硬件方式,而不是以打印机控制器底板上的PCI卡的方式,实现CIC卡。再者,可以将在光栅图像处理器中执行的操作,移动到CIC卡或备择光栅逻辑中。
图2、5a、b、和6中的逻辑,以特定顺序发生的方式,描述光栅操作。然而,在备择实施方式中,可以以不同顺序执行光栅操作,并且可以修改、添加或删除操作步骤。再者,也可以顺序地执行光栅操作,也可以并行地执行某些操作以提高性能。
在最佳实施方式中,独立对象成为显示项目。然而,在备择实施方式中,可以以许多方式对项目进行分组,以生成提供相同显示特征的中间对象。
总而言之,最佳实施方式公开了一种用于生成光栅对象的方法、系统、程序和数据结构。接收许多输入连续色调和艺术线条对象,这些对象包含一页上至少一个象素的连续色调或艺术线条数据。对于每个输入连续色调对象,生成至少一个输出连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据。对于各输入艺术线条对象,生成至少一个输出艺术线条对象,该对象包含输入打印数据对象中各象素的颜色数据。生成各象素的控制数据,该数据表示是从该象素的输出艺术线条对象中选择数据,还是从该象素的输出连续色调对象中选择数据,其中逻辑使用控制数据来从象素数据的输出艺术线条对象或从象素数据的输出连续色调对象中选择颜色数据,以便发送到输出设备来绘制象素数据。
本发明之最佳实施方式的上述描述用于说明和描述目的。其意图并不是穷尽本发明或将本发明限制在所公开的明确形式中。可以根据上述说明作出许多修改和变更。其意图是,由附属权利要求书而不是由上述详细说明限制本发明的范围。上述说明书、示例和数据提供本发明之组件的制作和使用的完整说明。由于可以作出许多实施方式而并不背离本发明的实质和范围,所以本发明归属于下文附属的权利要求书。
权利要求
1.一种用于生成光栅对象的方法,包括接收多个输入连续色调和艺术线条对象,这些对象包含一页上至少一个象素的连续色调或艺术线条数据;对于各输入连续色调对象,生成至少一个输出连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据;对于各输入艺术线条对象,生成至少一个输出艺术线条对象,该对象包含输入艺术线条对象中各象素的颜色数据;以及生成各象素的控制数据,该数据表示是从该象素的输出艺术线条对象中选择数据,还是从该象素的输出连续色调对象中选择数据,其中由逻辑使用控制数据来从象素数据的输出艺术线条对象或从象素数据的输出连续色调对象中选择颜色数据,以便发送到输出设备绘制象素数据。
2.权利要求1的方法,还包括对于各输入连续色调和艺术线条对象,生成颜色数据的各颜色分量的一个输出连续色调和艺术线条对象。
3.权利要求1的方法,还包括根据各输入艺术线条对象,生成一个中间艺术线条对象,该对象包含输入艺术线条对象中各象素的颜色数据,其中输出艺术线条对象是根据一个中间艺术线条对象生成的;根据各输入连续色调对象,生成一个中间连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据,其中输出连续色调对象是根据一个中间连续色调对象生成的;判定与一条扫描线相交的中间艺术线条对象的数目是否超过最大值;以及如果与一条扫描线相交的中间艺术线条对象的数目超过最大值,则将多个中间艺术线条对象合并为一个合并后的输出艺术线条对象,其中为合并后的中间艺术线条对象而生成一个输出艺术线条对象,从而所生成的与一条扫描线相交的输出艺术线条对象的数目小于最大值。
4.权利要求3的方法,其中合并中间艺术线条对象还包括确定包含一条或多条与一组中的一个或多个中间艺术线条对象相交的扫描线的区域,其中与唯一一组中间艺术线条对象相交的每组扫描线,均有一个独立区域;以及对于各区域,确定与该区域相交的一组中间艺术线条对象,其中为各区域生成输出艺术线条对象,并且对于与该区域相交的其中间艺术线条对象数超过最大值的各区域,生成一个合并后的输出艺术线条对象。
5.权利要求3的方法,其中各中间艺术线条对象具有一个相关的优先级值,其中要在具有较低相关优先级的中间艺术线条对象的颜色数据上,显示一个中间艺术线条对象的颜色数据,该方法还包括选择至少两个中间艺术线条对象来合并成该区域的一个合并后的输出艺术线条对象,其中不存在其优先级介于与所选艺术线条对象关联的诸优先级之间的中间艺术线条对象。
6.权利要求1的方法,其中生成各输出艺术线条对象包括执行以下处理将优先级值与具有相关优先级值的各中间艺术线条和连续色调对象关联起来;定义至少一组中的一个或多个艺术线条对象,该组对象为同组中的一条或多条扫描线提供象素数据;为定义的各组艺术线条对象,选择一组输入艺术线条对象中的最高优先级输入艺术线条对象;以及根据为所选输入艺术线条对象之象素提供的不透明颜色数据,为定义的各组艺术线条对象,生成输出艺术线条对象中各象素的颜色数据,并且如果不存在包含以下象素,即其优先级高于所选输入艺术线条对象之优先级的象素,的不透明颜色数据的输入连续色调对象,则将该象素的控制数据设置为使用输出艺术线条对象中的颜色数据。
7.权利要求6的方法,还包括如果提供不透明颜色数据的输入连续色调对象的优先级高于所选输入艺术线条对象的优先级,则将所选输入艺术线条对象的输出艺术线条对象中的各象素的控制数据,设置为使用该象素的输出连续色调对象中的不透明颜色数据。
8.权利要求6的方法,还包括如果输出艺术线条对象的输入艺术线条对象具有该象素的透明颜色数据,并且不存在其优先级高于为该象素提供不透明颜色数据的所选输入艺术线条对象之优先级的输入连续色调对象,则将输出艺术线条对象中该象素的控制数据,设置为透明,其中设置透明的控制数据表示考虑下一个较低优先级的输出艺术线条对象,以确定该象素的颜色数据,或者表示不为该象素提供颜色数据。
9.权利要求1的方法,还包括生成各输出艺术线条对象和输出连续色调对象的标题对象,该对象包括标识存储器中对应输出艺术线条或连续色调对象之位置的信息。
10.权利要求9的方法,还包括生成与输出艺术线条和连续色调对象相对应的标题对象的指针的链表,其中根据与用于生成输出艺术线条和连续色调对象的输入艺术线条和连续色调对象关联的优先级,对指针列表进行排序。
11.一种用于生成光栅对象的系统,包括用于接收多个输入连续色调和艺术线条对象的装置,这些对象包含一页上至少一个象素的连续色调或艺术线条数据;对于各输入连续色调对象,生成至少一个输出连续色调对象的装置,该输出连续色调对象包含输入连续色调对象中各象素的颜色数据;对于各输入艺术线条对象,生成至少一个输出艺术线条对象的装置,该输出艺术线条对象包含输入艺术线条对象中各象素的颜色数据;以及生成各象素的控制数据的装置,该数据表示是从该象素的输出艺术线条对象中选择数据,还是从该象素的输出连续色调对象中选择数据,其中逻辑使用控制数据来从象素数据的输出艺术线条对象或从象素数据的输出连续色调对象中选择颜色数据,以便发送到输出设备绘制象素数据。
12.权利要求11的系统,还包括对于各输入连续色调和艺术线条对象,生成颜色数据的各颜色分量的一个输出连续色调和艺术线条对象的装置。
13.权利要求11的系统,还包括根据各输入艺术线条对象,生成一个中间艺术线条对象的装置,该中间艺术线条对象包含输入艺术线条对象中各象素的颜色数据,其中输出艺术线条对象是根据一个中间艺术线条对象生成的;根据各输入连续色调对象,生成一个中间连续色调对象的装置,该中间连续色调对象包含输入连续色调对象中各象素的颜色数据,其中输出连续色调对象是根据一个中间连续色调对象生成的;判定与一条扫描线相交的中间艺术线条对象的数目是否超过最大值的装置;以及如果与一条扫描线相交的中间艺术线条对象的数目超过最大值,则将多个中间艺术线条对象合并为一个合并后的输出艺术线条对象的装置,其中为合并后的中间艺术线条对象而生成一个输出艺术线条对象,从而所生成的与一条扫描线相交的输出艺术线条对象的数目小于最大值。
14.权利要求13的系统,其中用于合并中间艺术线条对象的装置还包括确定包含一条或多条与一组中的一个或多个中间艺术线条对象相交的扫描线之区域的装置,其中与唯一一组中间艺术线条对象相交的每组扫描线,均有一个独立区域;以及对于各区域,确定与该区域相交的一组中间艺术线条对象的装置,其中为各区域生成输出艺术线条对象,并且对于与该区域相交的其中间艺术线条对象数超过最大值的各区域,生成一个合并后的输出艺术线条对象。
15.权利要求13的系统,其中各中间艺术线条对象具有一个相关的优先级值,其中要在具有较低相关优先级的中间艺术线条对象的颜色数据上,显示一个中间艺术线条对象的颜色数据,该系统还包括用于选择至少两个中间艺术线条对象来合并成该区域的一个合并后的输出艺术线条对象的装置,其中不存在其优先级介于与所选艺术线条对象关联的诸优先级之间的中间艺术线条对象。
16.权利要求11的系统,其中用于生成各输出艺术线条对象的装置还包括将优先级值与具有相关优先级值的各中间艺术线条和连续色调对象关联起来的装置;定义至少一组中的一个或多个艺术线条对象的装置,该组对象为同组中的一条或多条扫描线提供象素数据;为定义的各组艺术线条对象,选择一组输入艺术线条对象中的最高优先级输入艺术线条对象的装置;以及根据为所选输入艺术线条对象之象素提供的不透明颜色数据,为定义的各组艺术线条对象,生成输出艺术线条对象中各象素的颜色数据的装置,并且该装置还用于,如果不存在包含以下象素,即其优先级高于所选输入艺术线条对象之优先级的象素,的不透明颜色数据的输入连续色调对象,则将该象素的控制数据设置为使用输出艺术线条对象中的颜色数据。
17.权利要求16的系统,还包括用于如果提供不透明颜色数据的输入连续色调对象的优先级高于所选输入艺术线条对象的优先级,则将所选输入艺术线条对象的输出艺术线条对象中的各象素的控制数据,设置为使用该象素的输出连续色调对象中的不透明颜色数据的装置。
18.权利要求16的系统,还包括用于如果输出艺术线条对象的输入艺术线条对象具有该象素的透明颜色数据,并且不存在其优先级高于为该象素提供不透明颜色数据的所选输入艺术线条对象之优先级的输入连续色调对象,则将输出艺术线条对象中的该象素的控制数据,设置为透明的装置,其中设置透明的控制数据表示考虑下一个较低优先级的输出艺术线条对象,以确定该象素的颜色数据,或者表示不为该象素提供颜色数据。
19.权利要求11的系统,还包括生成各输出艺术线条对象和输出连续色调对象的标题对象的装置,该标题对象包括标识存储器中对应输出输出艺术线条或连续色调对象之位置的信息。
20.权利要求19的系统,还包括生成与输出艺术线条和连续色调对象相对应的标题对象的指针的链表的装置,其中根据与用于生成输出艺术线条和连续色调对象的输入艺术线条和连续色调对象关联的优先级,对指针列表进行排序。
21.一种用于生成光栅对象的信息承载介质,其中该信息承载介质包含能使处理器执行以下处理的代码接收多个输入连续色调和艺术线条对象,这些对象包含一页上至少一个象素的连续色调或艺术线条数据;对于各输入连续色调对象,生成至少一个输出连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据;对于各输入艺术线条对象,生成至少一个输出艺术线条对象,该对象包含输入艺术线条对象中各象素的颜色数据;以及生成各象素的控制数据,该数据表示是从该象素的输出艺术线条对象中选择数据,还是从该象素的输出连续色调对象中选择数据,其中逻辑使用控制数据来从象素数据的输出艺术线条对象或从象素数据的输出连续色调对象中选择颜色数据,以便发送到输出设备绘制象素数据。
22.权利要求21的信息承载介质,其中该代码还能使处理器执行以下处理对于各输入连续色调和艺术线条对象,生成颜色数据的各颜色分量的一个输出连续色调和艺术线条对象。
23.权利要求21的信息承载介质,其中该代码还能使处理器执行以下处理根据各输入艺术线条对象,生成一个中间艺术线条对象,该对象包含输入艺术线条对象中各象素的颜色数据,其中输出艺术线条对象是根据一个中间艺术线条对象生成的;根据各输入连续色调对象,生成一个中间连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据,其中输出连续色调对象是根据一个中间连续色调对象生成的;判定与一条扫描线相交的中间艺术线条对象的数目是否超过最大值;以及如果与一条扫描线相交的中间艺术线条对象的数目超过最大值,则将多个中间艺术线条对象合并为一个合并后的输出艺术线条对象,其中为合并后的中间艺术线条对象而生成一个输出艺术线条对象,从而所生成的与一条扫描线相交的输出艺术线条对象的数目小于最大值。
24.权利要求23的信息承载介质,其中合并中间艺术线条对象还包括确定包含一条或多条与一组中的一个或多个中间艺术线条对象相交的扫描线的区域,其中与唯一一组中间艺术线条对象相交的每组扫描线,均有一个独立区域;以及对于各区域,确定与该区域相交的一组中间艺术线条对象,其中为各区域生成输出艺术线条对象,并且对于与该区域相交的其中间艺术线条对象数超过最大值的各区域,生成一个合并后的输出艺术线条对象。
25.权利要求23的信息承载介质,其中各中间艺术线条对象具有一个相关的优先级值,其中将在具有较低相关优先级的中间艺术线条对象的颜色数据上,显示一个中间艺术线条对象的颜色数据,该方法还包括选择至少两个中间艺术线条对象来合并成该区域的一个合并后的输出艺术线条对象,其中不存在其优先级介于与所选艺术线条对象关联的诸优先级之间的中间艺术线条对象。
26.权利要求21的信息承载介质,其中用于生成各输出艺术线条对象的代码,还能使处理器执行以下处理将优先级值与具有相关优先级值的各中间艺术线条和连续色调对象关联起来;定义至少一组中的一个或多个艺术线条对象,该组对象为同组中的一条或多条扫描线提供象素数据;为定义的各组艺术线条对象,选择一组输入艺术线条对象中的最高优先级输入艺术线条对象;以及根据为所选输入艺术线条对象之象素提供的不透明颜色数据,为定义的各组艺术线条对象,生成输出艺术线条对象中各象素的颜色数据,并且如果不存在包含以下象素,即其优先级高于所选输入艺术线条对象之优先级的象素,的不透明颜色数据的输入连续色调对象,则将该象素的控制数据设置为使用输出艺术线条对象中的颜色数据。
27.权利要求26的信息承载介质,其中该代码还能使处理器执行以下处理如果提供不透明颜色数据的输入连续色调对象的优先级高于所选输入艺术线条对象的优先级,则将所选输入艺术线条对象的输出艺术线条对象中的各象素的控制数据,设置为使用该象素的输出连续色调对象中的不透明颜色数据。
28.权利要求26的信息承载介质,其中该代码还能使处理器执行以下处理如果输出艺术线条对象的输入艺术线条对象具有该象素的透明颜色数据,并且不存在其优先级高于为该象素提供不透明颜色数据的所选输入艺术线条对象之优先级的输入连续色调对象,则将输出艺术线条对象中的该象素的控制数据,设置为透明,其中设置透明的控制数据表示考虑下一个较低优先级的输出艺术线条对象,以确定该象素的颜色数据,或者表示不为该象素提供颜色数据。
29.权利要求21的信息承载介质,其中该代码还能使处理器执行以下处理生成各输出艺术线条对象和输出连续色调对象的标题对象,该对象包括标识存储器中对应输出艺术线条或连续色调对象之位置的信息。
30.权利要求21的信息承载介质,其中该代码还能使处理器执行以下处理生成与输出艺术线条和连续色调对象相对应的标题对象的指针的链表,其中根据与用于生成输出艺术线条和连续色调对象的输入艺术线条和连续色调对象关联的优先级,对指针列表进行排序。
31.一种包含光栅对象数据结构的计算机可读介质,包括至少一个输出艺术线条对象,该对象包括各象素的艺术线条颜色数据,而各象素的颜色数据是在至少一个输入艺术线条对象中提供的,其中一个输出艺术线条对象是为各输入艺术线条对象生成的;至少一个输出连续色调对象,该对象包括各象素的连续色调颜色数据,而各象素的颜色数据是在至少一个输入连续色调对象中提供的,其中一个输出艺术线条对象是为各输入连续色调对象生成的;各象素的控制数据,该控制数据表示是从该象素的输出艺术线条对象中选择数据,还是从该象素的输出连续色调对象中选择数据,其中逻辑使用控制数据来从象素数据的输出艺术线条对象或从象素数据的输出连续色调对象中选择颜色数据,以便发送到输出设备绘制象素数据。
32.权利要求31的计算机可读介质,其中对于各输入连续色调和艺术线条对象,分别生成颜色数据的各颜色分量的一个输出连续色调和艺术线条对象。
33.权利要求31的计算机可读介质,还包括至少一个中间艺术线条对象,该对象包含输入艺术线条对象中各象素的颜色数据,其中一个中间艺术线条对象是为各输入艺术线条对象生成的,而输出艺术线条对象是根据一个中间艺术线条对象生成的;至少一个中间连续色调对象,该对象包含输入连续色调对象中各象素的颜色数据,并且是为各输入连续色调对象生成的,其中输出连续色调对象是根据一个中间连续色调对象生成的;一个合并后的输出艺术线条对象,如果与一条扫描线相交的中间艺术线条对象的数目超过最大值,则通过合并多个中间艺术线条对象生成该对象,其中为合并后的中间艺术线条对象生成一个输出艺术线条对象,从而所生成的与一条扫描线相交的输出艺术线条对象的数目小于最大值。
34.权利要求33的计算机可读介质,其中各中间艺术线条对象具有一个相关的优先级值,其中要在具有较低相关优先级的中间艺术线条对象的颜色数据上,显示一个中间艺术线条对象的颜色数据,其中不存在其优先级介于与所选艺术线条对象关联的诸优先级之间的中间艺术线条对象。
35.权利要求31的计算机可读介质,还包括各输出艺术线条对象和输出连续色调对象的标题对象,该对象包括标识存储器中对应输出艺术线条或连续色调对象之位置的信息。
36.权利要求35的计算机可读介质,还包括与输出艺术线条和连续色调对象相对应的标题对象的指针的链表,其中根据与用于生成输出艺术线条和连续色调对象的输入艺术线条和连续色调对象关联的优先级,对指针列表进行排序。
全文摘要
公开了一种用于生成光栅对象的方法、系统、程序和数据结构。接收多个输入连续色调和艺术线条对象。对于每个输入连续色调对象,生成至少一个输出连续色调对象。对于各输入艺术线条对象,生成至少一个输出艺术线条对象。生成各象素的控制数据,该数据表示是从该象素的输出艺术线条对象中选择数据,还是从该象素的输出连续色调对象中选择数据,其中由逻辑使用控制数据从象素数据的输出艺术线条对象或从象素数据的输出连续色调对象中选择颜色数据,以便发送到输出设备绘制象素数据。
文档编号G06K15/02GK1333519SQ0111791
公开日2002年1月30日 申请日期2001年5月11日 优先权日2000年5月12日
发明者让·M·阿申布兰纳, 克里斯托弗·S·库什, 约翰·T·瓦格 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1