CN1210159C - 打印引擎/控制器和集成了引擎/控制器的打印头接口芯片 - Google Patents

打印引擎/控制器和集成了引擎/控制器的打印头接口芯片 Download PDF

Info

Publication number
CN1210159C
CN1210159C CN00819571.4A CN00819571A CN1210159C CN 1210159 C CN1210159 C CN 1210159C CN 00819571 A CN00819571 A CN 00819571A CN 1210159 C CN1210159 C CN 1210159C
Authority
CN
China
Prior art keywords
continuous
data
horizontal
plane
controller
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.)
Expired - Fee Related
Application number
CN00819571.4A
Other languages
English (en)
Other versions
CN1452558A (zh
Inventor
卡·西尔弗布鲁克
保罗·拉普斯顿
西蒙·罗伯特·瓦尔姆斯利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Memjet Technology Ltd
Original Assignee
Silverbrook Research Pty Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Silverbrook Research Pty Ltd filed Critical Silverbrook Research Pty Ltd
Publication of CN1452558A publication Critical patent/CN1452558A/zh
Application granted granted Critical
Publication of CN1210159C publication Critical patent/CN1210159C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3871Composing, repositioning or otherwise geometrically modifying originals the composed originals being of different kinds, e.g. low- and high-resolution originals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Ink Jet (AREA)
  • Image Processing (AREA)

Abstract

本发明提供了一种适合于与喷墨打印头一起使用的打印引擎/控制器。该打印引擎/控制器处理具有JPEG连续色调图像层和使用Group 4传真协议压缩的双水平图像平面的压缩的页面数据。它接收压缩的图像平面数据,对图像平面数据进行扩展,并以管道方式打印扩展后的图像平面数据。该打印引擎/控制器由一个高速串行接口(27)(例如标准的IEEE 1394接口)、一个标准的JPEG解码器(28)、一个标准的Group 4传真解码器(28)、一个半色调器/合成器单元(29)、一个用于把红外标记放入打印页面中的标记编码器(30)、一个通过接口(32)向打印头(33)提供数据的行装载器/格式器单元(31)构成。解码器(28,88)和解码器(30)向半色调器/合成器(29)缓冲数据。

Description

打印引擎/控制器和集成了引擎/控制器的打印头接口芯片
技术领域
本发明涉及一种适合于与各种打印机产品共同使用的打印引擎/控制器(PEC),尤其涉及一种嵌入在打印头接口芯片中的打印引擎/控制器。
背景技术
目前市场上有各种类型的打印机产品,这些打印机产品以点阵喷墨形式打印图像。在发明人Kia Silverbrook的“单片集成电路打印头的自调整制造和加工工艺”(美国专利号:6045710)发明中对墨滴可控的喷墨打印机的现有技术以及其制造工艺进行了评价。
微电机墨滴可控型打印头(称为Memjet打印头)在与本专利申请同时提交的同类国际专利申请中已有所描述,我们以交叉索引方式把与此有关的同类专利申请总结如下:
    PCT  申请号 参考号
    PCT/AU00/00591   MJ62
    PCT/AU00/00578   IJ52
    PCT/AU00/00579   IJM52
    PCT/AU00/00592   MJ63
    PCT/AU00/00590   MJ58
Memjet打印头从某些打印头产品中发展而来,这些打印头可以在全页宽范围内打印1600dpi(点每英寸)双层墨点。墨点之间相对独立,因此可以充分利用散布的墨点的抖动效果。彩色面能够非常好地重合,实现理想的重叠点打印效果。这种打印头支持使用微电机墨滴技术实现高速打印。
与本发明有关的各种方法、系统和装置在下列同类专利申请中揭示。
这些专利申请是本发明的专利申请人或受让人与本发明同时申请的:
PCT/AU00/00518,    PCT/AU00/00519,    PCT/AU00/00520,
PCT/AU00/00521,    PCT/AU00/00522,    PCT/AU00/00523,
PCT/AU00/00524,    PCT/AU00/00525,    PCT/AU00/00526,
PCT/AU00/00527,    PCT/AU00/00528,    PCT/AU00/00529,
PCT/AU00/00530,    PCT/AU00/00531,    PCT/AU00/00532,
PCT/AU00/00533,    PCT/AU00/00534,    PCT/AU00/00535,
PCT/AU00/00536,    PCT/AU00/00537,    PCT/AU00/00538,
PCT/AU00/00539,    PCT/AU00/00540,    PCT/AU00/00541,
PCT/AU00/00542,    PCT/AU00/00543,    PCT/AU00/00544,
PCT/AU00/00545,    PCT/AU00/00547,    PCT/AU00/00546,
PCT/AU00/00554,    PCT/AU00/00556,    PCT/AU00/00557,
PCT/AU00/00558,    PCT/AU00/00559,    PCT/AU00/00560,
PCT/AU00/00561,    PCT/AU00/00562,    PCT/AU00/00563,
PCT/AU00/00564,    PCT/AU00/00565,    PCT/AU00/00566,
PCT/AU00/00567,    PCT/AU00/00568,    PCT/AU00/00569,
PCT/AU00/00570,    PCT/AU00/00571,    PCT/AU00/00572,
PCT/AU00/00573,    PCT/AU00/00574,    PCT/AU00/00575,
PCT/AU00/00576,    PCT/AU00/00577,    PCT/AU00/00578,
PCT/AU00/00579,    PCT/AU00/00581,    PCT/AU00/00580,
PCT/AU00/00582,    PCT/AU00/00587,    PCT/AU00/00588,
PCT/AU00/00589,    PCT/AU00/00583,    PCT/AU00/00593,
PCT/AU00/00590,    PCT/AU00/00591,    PCT/AU00/00592,
PCT/AU00/00584,    PCT/AU00/00585,    PCT/AU00/00586,
PCT/AU00/00594,    PCT/AU00/00595,    PCT/AU00/00596,
PCT/AU00/00597,    PCT/AU00/00598,    PCT/AU00/00517,
PCT/AU00/00511,    PCT/AU00/00501,    PCT/AU00/00502,
PCT/AU00/00503,    PCT/AU00/00504,    PCT/AU00/00505,
PCT/AU00/00506,    PCT/AU00/00507,    PCT/AU00/00508,
PCT/AU00/00509,    PCT/AU00/00510,    PCT/AU00/00512,
PCT/AU00/00513,    PCT/AU00/00514,
PCT/AU00/00515
上述同类专利申请可作为相互参考。
上述打印头的性能由其引擎/控制器决定。高速打印是打印头和其引擎/控制器共同作用的结果。采用上述技术的页宽打印头需要能够快速提供墨滴控制信号的引擎/控制器。典型的页面版面可以包含混排的图像、图形和正文。由于上述微电机打印头的页宽特点,每一页都能以恒定的速度打印,从而避免产生可见的瑕疵。这意味着不需要改变打印速度来匹配输入数据速率。但是,这种打印方式需要把文档光栅化和文档打印分离开来,也就是说,为了保证以恒定速率向打印头提供数据,必须首先把页面内容完全光栅化,然后才能进行打印。理想情况下,在光栅化简单页面时,光栅化速度应该超过打印机的打印速度,以便留出时间对比较复杂的页面进行光栅化。而引擎/控制器的性能决定了光栅化工作的性能。
打印速度的提高同时取决于打印头和其引擎/控制器的性能的提高。打印引擎/控制器的体系结构必须能够以较高的速度为打印头提供大量数据。
发明内容
本发明的一种形式属于打印引擎/控制器,包括:
一个连续色调图像解码器;
一个双水平压缩解码器;以及
一个半调色器/合成器和一个打印头接口。
打印引擎/控制器为产生页面提供最终步骤,页面从计算机或打印分发系统提供的适当格式的压缩页面数据产生。上述步骤包括:扩大页面图像,抖动连续色调层,把黑色层合成到连续色调层上,向红外层增加红外标记,以及向打印头发送所得到的图像。
打印引擎/控制器最好使用高速串行接口接收压缩页面数据。连续色调图像平面由JPEG解码器解码,并在页边单元的控制下在半色调器/合成器中缩放。一个Group4传真解码器对双水平图像平面进行解码,双水平图像平面也在页边单元的控制下在半色调器/合成器中缩放。还可以使用一个红外标记编码器产生红外图像平面,然后把红外墨打印标记放入到打印页面中。半色调器/合成器包括一个抖动矩阵存取单元,以从压缩页面数据中提供抖动数据以抖动连续色调图像平面。
本发明还包括一个与墨滴打印头接口的打印/控制器芯片,包括:接口,在其处接收压缩页面数据;一个连续色调图像解码器,该解码器对所接收的压缩页面数据中的一些连续色调图像平面进行解码;一个双水平解码器,用于对接收的压缩页面数据中的双水平图像平面和抖动数据进行解码;一个半色调器/合成器,用于把任一双水平图像平面合成到任一连续色调图像平面上;以及一个打印头驱动器,该驱动器向打印头输出合成。
附图说明
图1所示为打印引擎/控制器的数据流和功能;
图2所示为在整体打印机系统体系结构中的打印引擎/控制器;
图3所示为打印引擎/控制器的体系结构;
图4所示为与图3中的半色调器/合成器单元(HCU)相连的外部接口;
图5所示为图4中的HCU的内部电路图;
图6是图5中的点合并单元内的处理过程框图;
图7所示为图5中的点重组单元内的处理过程示意图;
图8所示为图5中的行装载器/格式器单元(LLFU)中的处理过程;
图9所示为在图8的LLFU中生成彩色数据的内部电路图;
图10和图11所示为图9中的LLFU的部件。
具体实施方式
12英寸的打印头通常由一个或多个PEC控制,如下所述,以便能够在A4和信纸页面上实现全页宽打印。在本发明所述的打印环境中,最多使用6个彩色墨通道,包括:
·CMY,用于常规的彩色打印。
·K,用于黑色文本和其它黑色打印。
·IR(红外),用于支持标记的应用。
·F(固定剂),支持高速打印。
由于打印机能高速打印,所以应使用固定剂,使下一页打印完成前墨能够干燥,否则页面之间可能发生蹭色现象。在较低速度的打印环境中,不需要使用固定剂。
打印引擎/控制器可以制造在一个芯片中,以与打印头接口。该芯片应具有4级基本功能:
通过串行接口(例如IEEE 1394)接收压缩页面。
从压缩格式产生页面的打印引擎。该打印引擎的功能包括放大页面图像、抖动连续色调层、把黑色层合成到连续色调层上、增加红外标记(可选)、以及向打印头发送所得图像。
一个用于控制打印头和步进电机的打印控制器。
两个标准的低速串行端口,用于与两个QA芯片通信。需要注意的是,在验证过程中,为了保证较大的安全性,必须使用两个端口,而不是一个端口。
图1所示为从计算机系统向打印页面发送文档的数据流。文档在11处被接收,然后被装入到存储缓冲器12中,在缓冲器12中,可以生成页面布局,同时还可以增加一些所需的对象。从存储缓冲器12中送出的页面在13处被光栅化,在14处被压缩,然后被传送给打印机引擎控制器10。页面在打印机引擎控制器10中被接收为压缩的页面图像,送入缓冲器15中,然后从缓冲器15被送入到页面扩展器16中,页面图像在页面扩展器中被还原。在17处,可以对任何连续色调层进行任何必要的抖动。在18处,可以把黑色双水平层复合到连续色调层上,在19处还可以加入红外标记。在20处,合成后的页面数据被打印出来,产生页面21。
打印引擎/控制器接收压缩页面图像,对页面进行扩展,然后以管线方式打印。页面扩展和打印最好采用管线方式,因为在内存中存储可变大小的双水平CMYK+IR页面图像是不切实际的。
管线的第一个阶段扩展JPEG压缩的连续色调CMYK层(见下文的说明),扩展一个Group4传真压缩的双水平抖动矩阵选择图(见下文的说明),并且扩展一个Group4传真压缩的双水平黑色层(见下文的说明),所有扩展工作都以并行方式进行。与此并行的,标记编码器对压缩的页面图像编码双水平IR标记数据。第二个阶段使用由抖动矩阵选择图选择的抖动矩阵抖动连续色调CMYK层,合成双水平黑色层在上述所得的双水平K层上,并将IR层加入到页面。如果在C、M、Y、K、或IR通道中需要,那么在每个点的位置上还会产生一个固定剂层。最后一个阶段通过打印头经由打印头接口(见下文的说明)打印双水平CMYK+IR数据。
图2所示为打印引擎/控制器10与总体打印机系统体系的吻合。打印机系统的各种部件可能包括:
·一个打印引擎/控制器(PEC):一个PEC芯片10或多个芯片,其负责接收压缩的页面数据,并存储到存储缓冲器24中,执行页面扩展、黑色层复合,并把点数据发送给打印头23。它还可以与QA芯片25,26通信,并提供一种获得打印头特性的装置,以保证最佳打印效果。PEC是本发明的主体。
·一个存储缓冲器:存储缓冲器24用于存储压缩的页面图像,并且在打印特定页面的过程中取出使用。存储缓冲器的构造和原理是习知技术,在使用本发明的PEC时,可以利用相关的各种标准的芯片和技术。
·一个主QA芯片:主芯片25与可更换墨盒QA芯片26匹配。QA单元的构造和原理是一种习知技术,在使用本发明的PEC时,可以利用相关的各种现有QA过程。例如,在共同待批的美国专利申请中描述了一种QA芯片:
USSN 我们的备案号 我们的标题
TBA  AUTH01 验证协议和系统
09/112,763 AUTH02 用于保护芯片免受IDD波动冲击的电路
09/112,737  AUTH04 保护片上存储器(闪存和RAM)的方法
09/112,761  AUTH05 芯片的防篡改方法
09/113,223  AUTH06 鉴权物理对象的系统
TBA  AUTH07 验证协议和系统
TBA  AUTH08 验证协议和系统
09/505,003  AUTH09 消耗品的鉴权协议和系统
09/517,608  AUTH10 消耗品的鉴权协议和系统
09/505,147  AUTH11 消耗品的鉴权协议和系统
09/505,952  AUTH12 对存储在闪存中的数值的非法更改
TBA  AUTH13 操纵安全数据的系统
09/516,874  AUTH14 带有防电源冲击的鉴权芯片
TBA  AUTH15 秘密数据的保护操纵
QA芯片通信最好包含在PEC芯片的总体功能中,因为它在图像扩展和驱动物理打印头方面有一定的作用。通过定位QA芯片通信,可以保证打印页面时有足够的墨。优选地,使用一个鉴权芯片把QA芯片嵌入到打印头组件中。由于它是主QA芯片,所以只包含鉴权密钥,不包含用户数据。但是,该该芯片必须与墨盒的QA芯片匹配。墨盒中的QA芯片包含保证最佳打印质量所需的信息,且通过一个鉴权芯片来实现。优选的是使用64M位(8M字节)存储缓冲器存储压缩页面图像。这样,当向缓冲器中写入一个页面时,可以读取另一个(双缓冲)。另外,在打印页面时,PEC使用内存来缓冲计算得到的点信息。在打印页面N时,缓冲器用于:
·读取压缩页面N
·对于页面N读取和写入双水平点信息
·写入压缩页面N+1
优选的是PEC芯片包括一个简单的微控制器CPU核心35以执行下列功能:
·在打印页面过程中,经由串行接口36执行QA芯片鉴权协议
·在打印过程中,经由并行接口91运行步进电机(步进电机需要5KHz的处理频率)
·在打印过程中同步PEC芯片的各部分
·提供与外部数据请求(编程寄存器等)接口的一种装置
·提供与打印头段低速数据请求(例如读取属性向量和写入脉冲外形)接口的一种装置
·提供向外部DRAM写入横向(portrait)和纵向(landscape)标记的一种装置
由于所有图像处理都由专用的硬件执行,所以上述CPU不需要处理像素。因此,CPU可以非常简单。多种现有的CPU核心都可以胜任上述工作:任何一种具有足够处理能力执行所需计算和控制功能的处理器核心都可以使用。一个合适的核心的例子是运行在1MHz的Philips8051微控制器。可以为CPU核心35配备一个程序ROM和一个小的程序暂存(scratch)RAM。CPU通过内存映射I/O与PEC芯片内的其它单元通信。特定的地址范围可以映射到特定的单元,而且在每个范围内,映射到该特定单元的特定寄存器。这包括串口36和并口91。在PEC芯片中可以集成一个比较小的程序闪存ROM,其大小取决于所选的CPU,但是不能超过8KB。同样,可以在PEC芯片中集成一个小暂存RAM区。由于程序代码不需要控制图像,所以不需要大的RAM区。RAM的大小与所选的CPU有关(例如堆栈机制、子程序调用规定、寄存器大小等),但是不能超过2KB。
使用上述基于引用段的页宽打印头的PEC芯片可以在全点分辨率(通常为1600dpi)下再生黑色,但是需要使用半色调处理以较低的分辨率再生连续色调颜色。因此,页面描述被分为黑色双水平层和连续色调层。黑色双水平层被限定复合到连续色调层上。黑色双水平层由包含1位暗度/像素的位图构成。黑色层蒙罩的分辨率是打印机的点分辨率的一个整数因子。它所支持的最高分辨率是1600dpi,即打印机的全点分辨率。连续色调层由包含32位CMYK颜色/像素的一个位图构成,其中的K是可选的。这种连续色调图像的分辨率是打印机的点分辨率的一个整数因子。对于单个PEC来说,它所支持的最高分辨率是320ppi(像素每英寸)/12英寸,即打印机的点分辨率的1/5。对于更高的连续色调分辨率,需要使用多个PEC,其中的每个PEC产生输出页面的一条。为了简化RIP中的计算,连续色调分辨率通常还是黑色双水平分辨率的一个整数因子。但是,这不是一种强制要求。为了实现在打印机的内存中的高效存储,黑色双水平层和连续色调层都为压缩形式。
图3所示为打印引擎的体系结构。打印引擎的页面扩展和打印管线由一个高速串行接口27(例如标准的IEEE 1394接口)、一个标准的JPEG解码器28、一个标准的Group4传真解码器、一个定制的半色调器/合成器单元29、一个定制的标记编码器30、一个行装载器/格式器单元31、以及一个连接打印头33的定制接口32构成。解码器28,88和编码器30被缓冲到半色调器/合成器单元29。标记编码器30根据协议向页面建立一个或多个红外标记,协议与页面的使用有关,且标记的实际内容不是本发明的主题。
打印引擎以双缓冲方式工作。一个页面从高速串行接口27通过DRAM接口89和数据总线90被装载到DRAM34中,同时装载的前一个页面被从DRAM34读出,并被通过打印引擎管线传送。当完成页面的打印时,刚刚装入的页面成为被打印页面,同时通过高速串行接口27装入一个新页面。在第一个阶段,管线扩展所有JPEG压缩的连续色调(CMYK)层,并扩展两个Group4传真压缩的双水平数据流中的任一个。上述两个数据流是黑色层(虽然不知道PEC实际为彩色,而且该双水平层可以定向到任何输出墨)以及一个蒙罩(该蒙罩用于为连续色调的抖动选择抖动点阵,见下文的说明)。在第二个阶段,上述数据被并行地编码标记,以便随后以红外(IR)或黑色墨渲染。最后,在第三个阶段中,对连续色调层进行抖动处理,并把位置标记和双水平点1层复合到抖动后的双水平层上。然后,数据流被很好地调整,以便在打印头中的重合段之间产生平滑的渐变效果,同时补偿打印头中的故障喷嘴。在此阶段最多可以生成6个通道的双水平数据。但是需要注意,并不是全部6个通道都出现在打印头上。例如,打印头可能只是CMY的,此时K被推入CMY通道,而IR被忽略。可交替地,如果没有IR墨(或者出于测试目的),位置标记也可以被打印到K中。所得到的双水平CMYK-IR点数据被缓冲并格式化,然后被通过一套行缓冲器(见下文的说明)输出到打印头上。大多数行缓冲器可以在离线(off-chip)DRAM34中实现。在最后一个阶段中,通过打印头接口32打印上述6个通道的双水平点数据。
在使用PEC的打印系统中通常采用压缩处理。这是为了降低主机和PEC之间的带宽要求以及降低页面存储的内存要求。在267ppi下,连续色调CMYK数据的一个信页面的大小为25MB。使用有损连续色调压缩算法(例如JPEG,见下文的说明),连续色调图像的压缩比可达到10∶1,同时不会对质量产生明显影响,因此,压缩后的页面大小为2.5MB。在800dpi下,双水平数据的一个信页面的大小为7MB。连贯的数据(例如文本)的压缩效果很好。使用无损双水平压缩算法(例如Group4传真,见下文的说明),10点文本的压缩比可达到大约10∶1,因此上述压缩的页面大小为0.8MB。经过抖动后,一个CMYK连续色调图像数据页面为114MMB双水平数据。下文中所述的双层压缩页面图像格式利用了有损JPEG连续色调图像压缩和无损双水平文本压缩的相关力度。数据的格式已非常紧凑,实现了高效存储,同时保持了简单性,从而可以在打印过程中直接地、实时地扩展。由于文本和图像通常不重叠,所以在正常的最坏情况下,页面图像大小为2.5MB(即,只是图像),而在最佳情况下,页面图像大小为0.8MB(即,只是文本)。在极端最坏情况下,页面图像大小为3.3MB(即,文本在图像之上)。假设图像占1/4平均页面,则平均页面图像大小为1.2MB。
对于通过慢速线路或噪音较高的电话线路传输无损压缩双水平数据的情况,可以使用Group3传真压缩算法(见ANSI/EIA 538-1988,Group4传真设备的传真编码方案和编码控制功能(Facsimile Coding Schemesand Coding Control Cunctions for Group4 Facsimile Equipment),1988年8月)。双水平数据代表在白色背景上扫描的黑色文本和图形。而且,上述算法还针对此类图像进行了调整(例如对于半色调双水平图像没有进行明显地调整)。1D Group3算法以扫描宽度编码方法对每个扫描行进行编码,然后采用霍夫曼编码方法对所得到的扫描宽度编码。范围在0到63之间的扫描宽度使用终止编码处理;范围在64到2623之间的扫描宽度使用标记(make-up)编码被编码。每个标记编码为64的整数倍,后跟一个终止码。超过2623的扫描宽度使用多标记编码后跟一个终止码被编码。霍夫曼表是固定的,但是针对黑色和白色扫描分别进行了调整(但超过1728的标记编码除外,它们是通用的)。在可能的情况下,2DGroup3算法把一个扫描行作为一系列相对于前一个扫描行的短边偏移(delta)(0,±1、±2、±3)编码。delta符号是统一编码的(因此0偏移符号只占一位)。没有被delta编码2D编码行中的边以扫描宽度编码处理,并且被一个前缀标识。1D-和2D编码的扫描行采用不同的标记。不管实际需要与否,1D编码的扫描行都以正常间隔产生,以便保证解码器可以从行噪中恢复数据,同时尽可能小地损失图像质量。2D Group3实现高达6∶1的压缩比(见Urban,S.J.,“Review of standards for elelctronicimaging for facsimile systems”,电子成像杂志,1992年1月,Vol.1(1),第5-21页)。
对于通过无错通信线路(即,线路可实现真正无错传输,或者在较低的协议层进行纠错)传输数据的情况,Group4传真算法(见ANSI/EIA538-1988,Facsimile Coding Schemes and Coding Control Functions forGroup4 Equipment,1988年8月)可以无损压缩双水平数据。Group4算法以2D Group3算法为基础,其主要修改是:由于传输是无错的,所以不需要再为纠错而每隔一定间隔产生1D编码行。对于CCITT测试图像,Group4算法的压缩比在20∶1到60∶1之间。Group4压缩算法的设计目标和性能使其成为双水平层的一种理想压缩算法。但是,其霍夫曼表针对较低的扫描分辨率(100-400dpi)进行了调整,而且它会拙劣地编码超过2623的扫描宽度。在800dpi下,我们的最大扫描宽度是目前的6400。虽然Group4解码器核心可以在PEC中使用,它可能无法处理超过正常的400dpi传真应用中的扫描宽度,所以需要进行适当的修改。使用G4传真对黑色层(通常为1600dpi)进行无损压缩的典型压缩比为10∶1以上。使用G4传真对抖动矩阵选择层(通常为320dpi,与连续色调彩色层相配)进行无损压缩的典型压缩比为50∶1以上。
Group4(G4)传真解码器对双水平数据进行解压缩。双水平数据被限制为单点颜色(通常黑色用于文本和线图形),抖动矩阵选择位图用于对连续色调数据(由JPEG解码器解压缩)进行后续抖动。输入G4传真解码器的数据是从外部DRAM读取的双水平数据的2个平面。由G4传真解码器输出的是解压缩双水平数据的2个平面。解压缩后的双水平数据被送到半色调器/合成器单元(HCU)进行打印管道中的下一个阶段的处理。两个双水平缓冲器提供用于在G4传真解码器和HCU之间传送双水平数据的装置。每个解压缩的双水平层被输出到两个行缓冲器中。每个缓冲器能够以期望的最大分辨率容纳全12英寸整点行。采用两个行缓冲器允许HCU读取一行,同时G4传真解码器写另一行数据。这是重要的,因为单个双水平行通常低于1600dpi,所以必须在点和行方向上同时扩展。如果缓冲低于一个整行,那么G4传真解码器将对同一行多次解码——每次用于每个输出600dpi点行。
点颜色1能够使输出图像的单个彩色平面具有高分辨率的点数据。然而连续色调层为图像提供的足够的分辨率,点颜色1更适用于文本和线图形(通常为黑色)的应用。当点颜色用于文本和线图形时,压缩比通常可以超过10∶1。点颜色1对于最高打印质量允许可变分辨率达到1600dpi。因此,每个行缓冲器为总共2400B(12英寸×1600dpi=19200位)。
抖动矩阵选择图的分辨率应该较好地匹配连续色调分辨率。所以两个行缓冲器的每一个是480B(3840位),能够以320dpi存储12英寸。当图与连续色调的分辨率匹配时,压缩比一般可以超过50∶1。
为了支持下列功能:
·800dpi点颜色1层(通常为黑色)
·320dpi抖动矩阵选择层
为了实现1页/秒的性能(无论页宽是12英寸或8.5英寸),压缩带宽需求为9.05MB/秒,在最高打印速度性能时(30000行/秒),对于12英寸页面宽度和8.5英寸页面宽度,所需的压缩带宽分别为20MB/秒和14.2MB/秒。当解压缩数据被输出到行缓冲器中时,G4传真解码器可以快速地、一次从每个输出中解压缩一行。
G4传真解码器通过DRAM接口被直接从主内存中提供数据。压缩量决定了与外部DRAM之间的带宽要求。由于G4传真是无损的,所以图像的复杂程度影响数据量并因此影响带宽。通常一个800dpi黑色文本/图形层的压缩比超过10∶1,所以1页/秒的需要0.78MB/秒的带宽。同样,通常一个320dpi抖动选择阵的压缩在50∶1以上,所以导致0.025MB/秒的带宽。对于抖动选择阵的320dpi和对于点颜色1的800dpi的最快打印速度配置所需的带宽分别为1.72MB/秒和0.056MB/秒。因此,2MB/秒的总带宽完全可以满足DRAM的带宽要求。
G4传真解码功能通过G4传真解码器核心实现。可以使用各种G4传真解码器核心:只要这种G4传真解码器核心的处理速度足以执行所需的计算和控制功能。它必须能够处理在超过400dpi分辨率的传真应用中的扫描宽度,因此可能需要进行一些修改。
JPEG压缩算法(见ISO/IEC 19018-1:1994,Informationtechnology——Digital compression and coding of continuous-tone stillimages:Requirements and guidelines,1994)在特定质量等级上对连续色调图像进行有损压缩。在压缩比低于5∶1时,JPEG算法不会给图像质量带来可见影响。在压缩比低于10∶1时,图像质量的下降可以忽略(见Wallace,G.K.,“The JPEGStill Picture Compression Standard”,ACM通信,Vol.34,No.4,1991年4月,33-44)。JPEG通常首先把图像转化为一个颜色空间,该颜色空间把亮度和色度分离为独立的颜色通道。这样,色度通道可以被二次取样,同时不会使图像质量降低很多,因为人类视觉系统对亮度的敏感性要比对色度的敏感性强得多。经过第一步后,对每个颜色通道独立压缩,把图像分解为8×8的像素块。然后,通过离散余弦变换(DCT)把每个像素块变换为频域。这种变换相对较低的频率因子中的图像能量集中,从而较高频率因子能够自然地量化。这种量化是JPEG中的主要压缩源。下一步,根据频率排列因子,尽可能使零因子相邻,然后以扫描宽度编码处理零因子,从而实现进一步压缩。最终,对扫描宽度和非零频率因子进行统一编码。解压缩是压缩的反过程。
CMYK(或CMY)连续色调层被压缩为一个平面颜色JPEG字节流。如果出于表共享或色度二次取样的目的需要进行亮度/色度分离,那么CMYK将被转化为YCrCb和Cr,而Cb被适当地二次取样。JPEG字节流是完整的、自包容的。它包含解压缩所需的全部数据,包括量化和霍夫曼表。
JPEG解码器负责对连续色调数据层进行实时解压缩。向JPEG解码器输入的数据最多可以是4个平面的连续色调数据。输入数据通常可以是3个平面,代表CMY连续色调图像,也可以是4个平面,代表CMYK连续色调图像。虽然一般情况下所有彩色平面的分辨率是相同的,但是每个彩色平面的分辨率也可以不同。连续色调层从外部DRAM读取。JPEG解码器的输出是解压缩的连续色调数据,这些连续色调数据在独立的彩色平面中。解压缩后的连续色调图像被送到半色调器/合成器单元(HCU)29,进行打印管线的下一个阶段的处理。4个平面连续色调缓冲器用于在JPEG解码器和HCU29之间传送连续色调数据。
解压缩后的连续色调数据的每个彩色平面被输出到一套双行缓冲器(见下文的说明)中,每个行缓冲器的容量为3840B,因此可以存储12英寸的320ppi分辨率的单个彩色平面的像素。行缓冲的目的,当HCU从一个行缓冲器中读数据时,JPEG解码器可以向另一个行缓冲器写数据。这种能力是非常重要的,因为单个连续色调行通常低于1600ppi,所以必须在点和行方向上同时扩展。如果缓冲低于一个整行,那么JPEG解码器就必须对同一行多次解码——每次用于输出一个600dpi点行。虽然JPEG支持多种分辨率,但是必须在分辨率和可用带宽之间进行权衡。当分辨率和颜色数增加时,带宽要求也随之增加。另外,PEC芯片的目的段的数量也会影响带宽和可能的分辨率。注意,由于连续色调图像被以平面格式处理,所以每个彩色平面可以采用不同的分辨率存储(例如,CMY平面的分辨率可以高于K平面的分辨率)。所支持的最高连续色调分辨率是1600ppi(与打印机的全点分辨率匹配)。但是,输出行缓冲器的容量只能储存12英寸长320ppi行的连续色调像素。如果需要以更高连续色调分辨率输出完整的12英寸宽度,那么需要使用多个PEC,但是需要注意的是,打印机上的最终输出仍是双水平数据。如果支持320ppi的4种颜色,对于1页/秒的打印速度(页宽可以是12英寸或8.5英寸),解压缩后的输出带宽应为40MB/秒;对于最高的打印机速度性能(30000行/秒),12英寸和8.5英寸页宽所要求的解压缩输出带宽分别为88MB/秒和64MB/秒。
JPEG解码器通过DRAM接口直接从主内存接收数据。压缩量决定了外DRAM的带宽要求。当压缩水平提高时,带宽会相应降低,但是最终的输出图像的质量也同时降低。单个彩色平面的DRAM带宽可以通过将压缩比应用到输出带宽快速得出。例如,为了实现1页/秒的打印速度,压缩比为10∶1的320ppi的单个彩色平面所要求与DRAM通信的带宽为1MB/秒。
JPEG的功能由一个JPEG核心实现。有多种JPEG核心可用:只要它具有足够的处理能力来执行所需的计算和控制功能。例如,BTGX-March核心的解压缩速度最高可达140MB/秒,对于最高的打印机速度(1600dpi,30000行/秒),它可以对4个400ppi的连续色调彩色平面同时解压缩;对于1页/秒的打印机速度,它可以对4个800ppi的连续色调彩色平面同时解压缩。需要注意的是,上述JPEG核心只需要支持解压缩功能,因此,降低了对通用型JPEG压缩/解压缩核心的要求。由于解压缩数据被输出到行缓冲器中,所以JPEG解码器可以一次快速解压一个彩色平面的一整行,消除了在上下文中的行处理中的切换工作,同时简化了JPEG解码器的控制。此时,必须维护4个上下文(每个彩色平面使用一个上下文),每个上下文包含外部DRAM的当前地址以及适当的JPEG解码参数。
图4中显示的半色调器/合成器单元(HCU)29把半色调和连续色调(通常是CMYK)层合并为一个双水平层,并把点1双水平层复合到适当的半色调连续色调层上。如果打印机中没有K墨,那么HCU29可以把K适当地映射为CMY点。它还根据抖动矩阵选择图中的相应数值逐点选择抖动矩阵。HCU29的输入是(从JPEG解码器单元)通过缓冲器37输入的一个扩展的连续色调调层,通过缓冲器38输入的一个扩展的双水平点1层,通过缓冲器39输入的一个扩展的抖动矩阵选择位图(通常与连续色调层的分辨率一样),以及通过缓冲器40输入的全点分辨率的标记数据。HCU29最多可以使用从外部DRAM34读取的两个抖动矩阵。由HCU29向行装载器/格式器单元(LLFU)41的输出是一套打印机分辨率双水平图像行,最多可以达到6个彩色平面。连续色调层一般是CMYK或CMY,而双水平点1层是K。
图5中更详细地描述了HCU单元。在启动后,HCU不断运行,直到检测到一个页面结束条件或通过其控制寄存器被明确停止。HCU的第一个任务是把从缓冲器平面(例如42)中接收并存储到各个比例单元(例如比例单元43)中的数据在水平和垂直方向上同时缩放为打印机的分辨率。
比例单元提供了在水平和垂直方向上把连续色调数据或双水平数据缩放为打印机分辨率的一种方法。缩放是通过把上述两个方向上的数据值复制为该值的整数倍而实现的。缩放数据的处理过程是本领域的技术人员所熟知的。
页边单元57向比例单元43提供两个控制位:前进点和前进行。前进点位允许状态机为同一个点数据生成多个实例(用于页边和为打印头中的重叠段创建点数据)。前进行位允许状态机控制特定点行的结束时间,从而根据打印机的页边;截断数据。它还使比例单元不必执行特殊的行结束逻辑。比例单元的输入数据是一个整行缓冲器。该行被重复使用比例因子次,以便通过行复制实现垂直方向的缩放,在每一行中,每个值被重复使用比例因子次,以便通过像素复制实现水平方向的缩放。当输入行被重复使用比例因子次时(前进行位已经被设置为比例因子次),地址的输入缓存选择位被切换(双缓冲)。缩放单元的逻辑对于8位和1位的情况都是相同的,因为比例单元只产生地址。
由于每个连续色调层可以使用不同的分辨率,所以每个连续色调层被单独缩放。缓冲器45中的双水平点1层和缓冲器46中的抖动矩阵选择层也需要缩放。由于缓冲器47中的双水平标记数据是以正确的分辨率建立的,所以不需要缩放。缩放后的抖动矩阵选择位被抖动矩阵存取单元48用于从两个抖动矩阵中选择一个8位值。该8位值被输出到4个比较器44和49-51,在这些比较器中,它们与特定的8位连续色调值相比较。实际抖动矩阵的产生与打印头的结构有关,而产生抖动矩阵的过程是一种习知技术。如果连续色调值大于或等于上述8位抖动矩阵值,那么就输出1,否则输出0。在52-56中,这些位与从页边单元57而来的inPage位(指示特定点是否在页面的可打印区域内)进行“与(AND)”操作。HCU中的最后一个步骤是合成步骤。对于6个输出层中的每一层,都有一个单点合并单元(例如单元58),每个单点合并单元使用6个输入值。每个点合并单元的输出位是上述输入位的合并值。这样,点颜色就能够被放入到任何输出彩色平面中(包括用于测试的红外彩色平面),黑色被合并到青色中、品红色和黄色(CMY)中(如果打印头中没有黑色墨),而标记点数据被放入到一个可见平面中。定色剂颜色层也可以立即生成。点再生单元(DRU)59负责获取为特定颜色层产生的点流并将其组织为32位数值,这样,输出内容被按段排列,而在每一段中,输出内容被按点排列。由于叠加段的点不是以段顺序生成的,所以还需要进行稍许调整。
页边单元57向比例单元43提供两个控制位:前进点和前进行。前进点位允许状态机为同一个点数据生成多个实例(用于页边和为打印头中的重叠段创建点数据)。前进行位允许状态机控制特定点行的结束时间,从而根据打印机的页边;截断数据。它还使比例单元不必执行特殊的行结束逻辑。
比较器单元带有一个简单的8位“大于或等于”比较器。该比较器用于确定8位连续色调值是否大于或等于8位抖动矩阵值。因此,比较器单元使用两个8位输入,并产生一个1位长度的输出。
图6更详细地描述了点合并单元。点合并单元提供了一种把双水平抖动数据、点1颜色以及标记数据与实际打印头的输出墨映射的方法。每个点合并单元使用6个1位输入,产生一个1位长度的输出,该输出值代表彩色平面的输出点。在60处的输出位是输入位的合并值。这样,点颜色可以被放入到任何输出彩色平面中(包括用于测试的红外彩色平面),黑色被合并到青色中、品红色和黄色(CMY)中(如果打印头中没有黑色墨),而标记点数据被放入到一个可见平面中。定色剂颜色层可以通过简单地合并所有输入位生成。点合并器包含一个6位ColorMask寄存器61,该寄存器中的值作为6个输出位的掩码。每个输出位与相应的ColorMask寄存器位进行“与(AND)”操作,然后,把所得到的6位进行“或(OR)”操作,形成最终的输出位。
图7描述了点再生单元(DRU),该单元负责为特定彩色平面把生成的位流组织到为32位数值中,这样,输出内容被按段排列,而在每一段中,输出内容被按点排列。由于叠加段的点不是以段顺序生成的,所以还需要进行稍许调整。DRU带有一个32位移位寄存器,一个普通的32位寄存器、以及一个普通的16位寄存器。一个5位计数器跟踪所处理的位数。抖动矩阵存取单元(DMAU)发出的点前进信号被用于指令DRU输出具体位值。
图7中的寄存器(A)62每个周期移位一次。它包含32个由点合成器单元(DMU)最近产生的点。每过32个周期,寄存器(A)62中的全部32位值被复制到寄存器(B)63中,复制动作由DRU状态机64通过一个简单的5位计数器产生的WriteEnable信号触发。在WriteEnable脉冲的同时,寄存器(B)63中的16位奇位(1,3,5,7等)被复制到寄存器(C)65中。然后,一个32位多路器根据状态机中的2位在下列3个输出中作出选择:
·寄存器B中的全部32位
·由寄存器A中的16个偶数位(0,2,4,6等)和寄存器B中的16个偶数位构成的一个32位值。寄存器A的16个偶数位构成该32位值的0-15位,而寄存器B中的16个偶数位构成该32位值的16-31位。
由寄存器B中的16个奇数位(1,3,5,7等)和寄存器C中的16位构成的一个32位数值。寄存器C中的位构成该32位值的0-15位,而寄存器B中的16个奇数位构成该32位值的16-31位。
DRU的状态机如表1所示。状态机的起始状态为0,每隔32个周期改变状态。在一个32周期过程中,一个noOverlap位为该32周期累计所有dot advance位的“与(AND)”值(周期0的noOverlap=dot advance,周期1-31的noOverlap=noOverlap AND dot advance)。
表1.DRU的状态机
状态 NoOverlap 输出 输出有效 注释 下一个状态
0 X B 0 起始状态 1
1 1 B 1 正常的non-overlap 1
1 0 B 1 A包含第一个overlap 2
2 X 偶数  A,偶数B 1 A包含第二个overlapB包含第一个overlap 3
3 X C,奇数B 1 C包含第一个overlapB包含第二个overlap 1
图5中的页边单元(MU)57负责根据当前页的页边距把从抖动矩阵存取单元(DMAU)获得的前进点和前进行信号转化为一般控制信号。它还负责生成页面端条件。MU的计数器保存着当前页的点和行的数值。在一页开始时,这两个值都为0。每次当MU从DMAU接收一个dotadvance信号时,点计数器加1。当MU从DMAU接收到line advance信号时,行计数器加1,而点计数器被置0。在每个周期内,把当前行和点值与页边值进行比较,然后根据这些页边值输出dot advance、line advance,和within margin信号。DMAU只包含HCU的实际存储要求。
图8所示为行装载器/格式器单元(LLFU)。LLFU从HCU接收点信息,为特定的打印行把点装载到适当的缓冲器中(某些在芯片中,某些在外部DRAM34中),并把这些点数据格式化为打印头所需的顺序。图9为一个LLFU的外部接口的高级模块图。向LLFU的输入67是一套32位字和一个DataValid位,这些数据都由HCU产生。输出68是一套90位的值,代表6种颜色的15个打印头段的最大值。并不是所有输出位都有效,这与打印头中实际使用的颜色数有关。
本文中所述的打印头的喷嘴部分由两排喷嘴构成,也就是说,同一种颜色的奇数和偶数点在不同的行上打印,偶数点用于行L,而奇数点用于行L-2。另外,在一个颜色的点与另一种颜色的点之间有若干行。因为HCU同时计算相同点位置的6个彩色平面,所以必须为每个彩色平面延迟点数据,直到同一个点定位到相应的彩色喷嘴上。
每个缓冲行的大小取决于打印头的宽度。由于每个PEC为多达15个打印头段产生点数据,所以单个奇数缓冲行或偶数缓冲行由15套640点组成,总数据量为9600位(1200B)。例如,颜色6奇数点所需的缓冲器为45KB。
所有必要的缓冲器最好内建在PEC芯片中。否则,颜色2以上的缓冲器应存储在外部DRAM芯片中。这样,即使将来彩色平面之间的距离发生变化,PEC仍然可用。在PEC上保存颜色1的偶数点意义不大,因为所有内容都是相对于该特定点行(不需要额外的行缓冲器)打印的。另外,缓存颜色1奇数点所需的2个半行可节省实际的DRAM带宽。在打印页面前,各种行缓冲器(片上缓冲器和DRAM缓冲器)都需要预置0,使打印页面有一个空边。页面的结尾由HCU自动产生,所以页面将有一个空边。
图10是颜色N OESplit(见图9的OESplit70)的模块图,图9中的每个缓冲器E和F,71和72的模块图可以在图10和图11中找到。缓冲器EF是一种双缓存机制,用于向图3中显示的打印头接口(PHI)32传输数据。因此,缓冲器E和F具有相同的结构。在点行的处理过程中,当上述缓冲器E和F中一个用于写数据时,另一个用于读数据。这两个缓冲器在接收到从PHI发来的行同步信号时进行逻辑交换。缓冲器E和F都由6个子缓冲器构成,一个子缓冲器对应一个颜色,如图11所示。颜色1的子缓冲器编号为73。每个子缓冲器的容量是2400B,足以储存15个1280点/段的段。由于内存是以32位方式读写的,所以每个子缓冲器有600个地址(需要10个地址位)。在每个颜色的子缓冲器中,所有偶数点都被放在奇数点的前面。如果有未用的空间(用于少于15个段的打印),那么未用空间应位于每个颜色的子缓冲器的末端。每个子缓冲器实际使用的存储量与PEC实际编址的端数量直接相关。对于一个15段打印头,由1200B个偶数点,后跟1200B个奇数点,没有未用空间。所使用的子缓冲器的数量与打印头所用的颜色数直接相关。所支持的最多颜色数为6。
每个缓冲器E和F的寻址编码电路可以保证在一个特定周期中对所有6个子缓冲器进行一次32位访问——可以从所有6个缓冲器读取数据,也可以向其中的某个缓冲器写入数据。从每个颜色缓冲器中读取的32位中,只有一位被选择用来构成6个输出位的输出。这个过程在图11中示出。地址的15位中,10位地址用于选择32位数据,5位地址用于从所选的32位数据中选择1位,从而获得要读取的1位数据。每个子缓冲器73-78都有自己的WriteEnable行,因此,一个32位值可以在给定周期内写入特定的颜色缓冲器。这些WriteEnable行是通过上述WriteEnable输入与颜色选择的解码形式的“与(AND)”操作实现的。行79的DataIn的32位是共享的,因为实际上只有一个缓冲器接受数据。
用于从缓冲器E和F中读取数据的地址是直接生成的。每个周期产生一个用于为特定段取上述6位数值(1位/颜色)的位地址。通过向当前位地址上加640,可以转到下一个段中的对应点。加640而不是1280是因为,在缓冲器中奇数和偶数点是分离的。对上述动作重复NumSegments次,可以取回代表偶数点的数据,然后把这些位传送给PHI。当NumSegments=15时,位数为90(15×6位)。然后,为奇数点重复上述过程。因此,完整的偶数/奇数位生成过程需要重复动作640次,每次需对起始地址加1。采取这种方法,所有点数据都在640×2×NumSegments个周期中被以打印头所需要的顺序传递到PHI中。当NumSegments=15时,要经历19200个周期。需要注意的是,不管在打印头中实际使用的颜色数是多少,在给定读取周期中,都会产生6位数值(每位用于1个颜色缓冲器)。
另外,我们为写入到图9中的90位传输寄存器90产生TWriteEnable控制信号。由于LLFU在PHI之前开始,我们必须从PHI传送Advance脉冲前的第一个值。我们还必须为第一个Advance脉冲产生下一个值。方法是在NumSegments周期后把第一个值传送给传输寄存器,然后停止NumSegments个周期,等待Advance脉冲启动下一个NumSegments周期组。当第一个Advance脉冲到达时,LLFU将与PHI同步。
单个点行的读取过程在下面的伪代码中说明:
  DoneFirst=FALSE

  WantToXfer=FALSE

  For DotInSegment0=0 to 1279

  If(DotInSegment0:bit0==0)

  CurrAdr=DotInSegment0(high bits)(puts in range 0 to 639)

  EndIf

  XfersRemaining=NumSegments
        <!-- SIPO <DP n="23"> -->
        <dp n="d23"/>
  Do

  WantToXfer=(XfersRemaining==0)

  TWriteEnable=(WantToXfer AND NOT DoneFirst)OR

  PHI:ADVANCE

  DoneFirst=DoneFirst OR TWriteEnable

  Stall=WantToXfer AND(NOT TWriteEnable)

  SWriteEnable=NOT(Stall)

  If(SWriteEnable)

  Shift Register=Fetch 6 bits from

  EFSense[ReadBuffer]:CurrAdr

  CurrAdr=CurrAdr+640

  XfersRemaining=XfersRemaining-1

  EndIf

  Until(TWriteEnable)

  EndFor

  Wait until BufferEF Write process has finished

  EFSense=NOT(EFSense)
当读进程从E或F向PHI传送数据时,一个写进程正在准备另一个缓冲器中的下一个点行。
被写入E或F的数据是由HCU产生的颜色1数据以及从缓冲器D(由DRAM提供数据)提供的颜色2-6数据。每当HCU的OutputValid被置为真时,颜色1数据就被写入EF中;在其它时间,颜色2-6数据被从寄存器C中写入EF。
图9中的缓冲器OE1 81是一个32位寄存器,它用于存储某个HCU为颜色1产生的连续32个点的集合。虽然点在页面上是连续的,但是奇数和偶数点不是同时打印的。
缓冲器AB 82采用一种双缓存机制,它为颜色1把奇数点数据延迟2个点行。因此,缓冲器A和B的结构是相同的。在点行的处理过程中,一个点行被从缓冲器中读取,其中一个点行被读取,然后被写入。当整个点行处理完成后,这两个缓冲器互换逻辑。一个1位标志ABSense确定从哪个缓冲器中读取以及向哪个缓冲器写入。
每当输出有效控制标志被设置为真时(在第一个标志发送后,每隔32个周期设置一次),HCU提供颜色1的32位数据。这32位数据为一个点行定义了一个连续的32点集,其中有16个偶数点(位0、2、4等),16个奇数点(位1、3、5等)。输出有效控制器标志作为OE1寄存器81的WriteEnable控制标记。我们每隔2个OutputValid信号处理一次HCU数据。HCU颜色1的16个偶数位被与寄存器OE1的16个偶数位合并,产生32位的偶数颜色1数据。同样,HCU的16个奇数位被与寄存器OE1的16个奇数位合并,产生32位的奇数颜色1数据。在收到第一个OutputValid信号时,我们读取缓冲器AB的数据,把奇数数据传送给缓冲器EF中的颜色1,如图11中的73。在收到第二个OutputValid信号时,我们把奇数数据的32位写入上述缓冲器AB中,然后把偶数数据的32位写到缓冲器EF的颜色1中。
每当OutputValid被设置为真时,HCU就为每个彩色平面提供32位数据。这种动作每隔32个周期出现一次(不包括在特定启动时间内)。这32位数据为一个点行定义了一个连续的32点,其中包含16个偶数点(位0、2、4等)和16个奇数点(位1、3、5等)。
缓冲器OE1(图10中的83)用于为颜色1存储一个32位值,但是缓冲器OE2到OE6分别用于为颜色2到颜色6存储一个32位值。正如颜色1的点每隔64个周期(每隔两个OutputValid标志)被分为代表颜色1的奇数点的32位数据和代表颜色1的偶数点的32位数据一样,其它彩色平面的点也被划分为偶数和奇数点。
但是,点数据被延迟若干行,然后被通过缓冲器CD(图9中的84)输出到DRAM中,而不是直接写入缓冲器EF中。当特定行的点被写入DRAM时,前一行的点被从DRAM中读出,并被写入缓冲器EF 71,72。这个过程必须与把颜色1写入缓冲器EF的过程交错进行。
每次从HCU收到一个OutputValid标志时(如图10中的85行),颜色N的32位数据就被写入缓冲器OEN 83。每次收到第二个OutputValid标志时,合并后的64位数据就被写入颜色缓冲器N 86。对于彩色平面2-6,这个过程是并行进行的。颜色缓冲器N 86含有40套64位数据(320B),以便为两个完整的段存储点数据。这样,前一个段的数据(包括奇数和偶数点)在一个整段生成时间(20×64=1280周期)内被输出到DRAM中。写入操作的地址是直接生成的。行87的ColorNWriteEnable信号每隔两个OutputValid标志产生一次。地址从0开始,每隔两个OutputValid标记增加1,直到39。当地址到达39时,它将被重置为0,而不是步进到40,这样可以实现双缓冲方案。只要在OutputValid标记出现之间不发生读操作,上述工作就一直进行,并且前一个段的数据可以在产生单个段的数据的时间内被写入到DRAM中。下面的伪代码说明了上述过程:
adr=0

  firstEncountered=0

  While(NOT AdvanceLine)

  If(HCU_OutputValid)AND(firstEncountered))

  ColorNWriteEnable=TRUE

  ColorNAdr=adr

  If(adr==39)

  adr=0

  Else

  adr=adr+1

  EndIf
        <!-- SIPO <DP n="26"> -->
        <dp n="d26"/>
  Else

  ColorNWriteEnable=FALSE

  EndIf

  If(HCU_OutputValid)

  firstEncountered=NOT(firstEncountered)

  EndIf

  EndWhile
读操作的地址生成过程比较复杂一些,因为它与DRAM读写(包括读和写)、缓冲器EF的读写、以及颜色1的生成时间有关。读操作的地址生成过程在下面进一步说明。
缓冲器C、D、E、F和颜色N的地址生成都与DRAM读写的时间有关,并且不能影响与缓冲器E和F有关的颜色1的处理。地址生成的基本原理是,把颜色N(奇数点或偶数点)的一个段的数据从DRAM中通过缓冲器CD传送给缓冲器EF,当从DRAM中读出数据时,根据ColorBufferN中的值替换上述点,同样,对奇数和偶数点中的每种颜色执行相同的过程。当累积了一个完整段的所有点数据后(需要20个64周期),重新开始上述过程。当把给定行的所有段的数据在寄存器与DRAMA之间传输完成后,把该颜色的DRAM的当前地址步进1次,直到把该颜色的点行的特定数据从DRAM中读回。在本处理方法中,DRAM与一种FIFO非常相似。最终的结果是,颜色N(偶数或奇数点)被从DRAM中读入缓冲器D,同时颜色N(前述偶数或奇数点)被复制到缓冲器C中。向缓冲器C复制数据需要20或21个周期,具体周期数取决于OutputValid标志是否在20次传输过程中出现。当上述两个操作都完成后(通常,DRAM存取是一种较慢的工作),过程的第二部分开始。也就是说,把缓冲器C中的数据写入到DRAM中(写到上述读操作的同一个地点),并且把缓冲器D中的数据复制到缓冲器EF中(同样,由于正在传输颜色1的数据,所以当OutputValid标志出现时,不会传输颜色N的数据)。当上述两个操作完成后,为颜色N(奇数或偶数点)执行相同的过程,然后为每个剩余的颜色也执行相同的过程。上述的完整双过程被重复执行10次。然后,为下一行的处理更新DRAM中存储的每个当前行的地址。
在带宽方面,为点数据缓存区存取DRAM会占用从PEC访问DRAM的大部分带宽。对于每一个打印行,需要为颜色2-6读取整个点行,并且为颜色2-6写入整个点行。因此,15个段(最多)的数据量为2×5×15×1280位=192000位(24000B)/打印行。对于最快速的打印系统(30000行/秒),带宽必须为687MB/秒。对于1页/秒的打印系统,所要求的带宽为312MB/秒。由于所要求的带宽太高,所以必须针对所用的存储器类型优化DRAM中每种颜色的各种半行的地址。例如,在一个RDRAM存储器系统中,为了最大限度地增加DRAM存取的打印页面点数,必须为每种颜色把第一个半行缓冲区调整为1KB范围。当处理各种段时,如果下一段的起始位置在1KB页面中的960B处,那么640位存取会跨越2个页面。为此,可以使用DRAMMaxVal变量检查这种情况。如果这种情况发生,那么就需要把下一个半行缓冲区的地址调整为与页面对齐。这样虽然每13段会浪费64B存储空间,但是640位存取将完全发生在一个页面中。
上述的地址生成过程可以视为NumSegments需要10个(20×32位读操作+20×32位写操作)。下面的伪代码可以说明这种地址生成过程:
EFStartAdr=0

  Do NumSegments times:

  For CurrColor=0 to MaxHalfColors

  DRAMStartAddress=ColorCurrAdr[CurrColor]

  While reading 640bits from DRAMStartAddress into D(>=20
cycles)
        <!-- SIPO <DP n="28"> -->
        <dp n="d28"/>
  ColorNAdr=0

  While(ColorNAdr!=20)

  If(NOT HCU_OutputValid)

  Transfer ColorNBuffer[ColorNAdr|CurrColor_bit0] to
C[ColorNAdr]

  ColorNAdr=ColorNAdr+1

  EndIf

  EndWhile

  EndWhile-wait until read has finished

  While writing 640bits from C into DRAMStartAddress(>=20
cycles)

  ColorNAdr=0

  EFAdr=EFStartAdr

  While(ColorNAdr!=20)

  If(NOT HCU_OutputValid)

  Transfer D[ColorNAdr]to EF[CurrColor|EFAdr]

  If((ColorNAdr==19)AND(CurrColor ==
NumHalfColors))

  EFStartAdr=EFAdr+1

  Else

  EFAdr=EFAdr+1

  EndIf

  ColorNAdr=ColorNAdr+1

  EndIf

  EndWhile

  EndWhile-wait until write has finished
        <!-- SIPO <DP n="29"> -->
        <dp n="d29"/>
  If(DRAMStartAddress==DRAMMaxVal)

  ColorCurrAdr[currColor]=round up DRAMStartAddress to
next 1KByte page

  Else

  ColorCurrAdr[currColor]=DRAMStartAddress+640bits

  EndIf

  If(Segment==maxSegments)

  If(ColorCurrRow[CurrColor]==ColorMaxRow[CurrColor])

  ColorCurrRow[currColor]=ColorStartRow[currColor]

  ColorCurrAdr[currColor]=ColorStartAdr[currColor]

  Else

  ColorStartRow[currColor]=ColorCurrRow[currColor]+1

  EndIf

  EndIf

  EndFor

  EndDo

  Wait until next Advance signal from PHI
需要注意的是,MaxHalfColors寄存器应小于需要对奇数颜色和偶数颜色单独处理的颜色(但不包括颜色1)数。例如,对于一个标准的6颜色打印系统,需要处理的总颜色数(包括奇数颜色和偶数颜色)为10(颜色2-6的奇数和偶数色),所以应该把MaxHalfColors设置为9。
LLFU需要2个NumSegments周期来为PHI准备数据的第一个180位。因此,必须在已经LLFU启动2个NumSegments周期的时间后才能启动打印头和开始第一个LineSync脉冲。这样Transfer的初始值才有效,也才能向传输寄存器中装入下90位数据。
打印头接口(PHI)是处理器向打印头装载要打印点的途径,它控制着实际的点打印过程。它从LLFU接收数据,并把数据输出给打印头。必须能处理各种打印头宽度和格式。PHI的内部结构应支持6种打印颜色、每次传输8个段、以及2个段组。这样才能满足能够以全页宽打印A4/信封幅面的15段(8.5英寸)打印机的要求。
上述描述内容的主要目的是阐述本发明的优选实施例,但该描述和所述实例不应限制本发明的范围。本领域的技术人员可以很容易地根据本发明的具体实施例进行多种变化。任何根据本发明的具体实施例进行的修改都在本发明的保护范畴内。

Claims (14)

1.一种驱动墨滴打印头的打印引擎/控制器,包括:
接口,用于接收压缩的页面数据;
连续色调图像解码器,用于对接收到的压缩页面数据中的压缩的连续色调图像平面进行解码;
双水平解码器,用于对接收到的压缩页面数据中的压缩的双水平图像平面解码;
半色调器/合成器,用于抖动一些连续色调图像平面和把双水平图像平面数据与任一输出平面合成;以及
打印头驱动器,用于向打印头输出合成。
2.如权利要求1所述的打印引擎/控制器,其中所述接口是一种高速串行接口。
3.如权利要求1所述的打印引擎/控制器,其中所述连续色调图像解码器是一个JPEG解码器。
4.如权利要求1所述的打印引擎/控制器,其中所述连续色调图像解码器向所述半色调器/合成器前端的独立缓冲器输出解码后的图像的独立的彩色平面。
5.如权利要求1所述的打印引擎/控制器,其中所述每个连续色调图像平面中的页面数据在半色调器/合成器中被缩放。
6.如权利要求1所述的打印引擎/控制器,其中所述双水平解码器是一个Group 4传真解码器。
7.如权利要求1所述的打印引擎/控制器,其中所述双水平解码器把接收到的压缩图像平面中的压缩双水平图像平面解码到所述半色调器/合成器前端的相应的缓冲器中。
8.如权利要求1所述的打印引擎/控制器,其中所述双水平图像平面中的页面数据在半色调器/合成器中被缩放。
9.如权利要求1所述的打印引擎/控制器,还包括一个红外标记编码器,用于产生红外图像平面,以便把红外墨打印的标记放入到所打印的页面中。
10.一种驱动墨滴打印头的打印引擎/控制器,包括:
连续色调图像解码器,用于对接收到的压缩页面数据中的压缩的连续色调图像平面进行解码;
双水平解码器,用于对压缩的双水平图像平面解码;以及
半色调器/合成器,包括一个由彩色蒙罩控制的点合并单元,用于使用打印头中提供的墨整合图像平面。
11.一种驱动墨滴打印头的打印引擎/控制器,包括:
连续色调图像解码器,用于对接收到的压缩页面数据中的压缩的连续色调图像平面进行解码;
双水平解码器,用于对压缩的双水平图像平面解码;以及
半色调器/合成器,包括一个页边单元,用于在合成过程中将页边数据用于相应的图像平面。
12.一种与墨滴打印头接口的打印引擎/控制器芯片,包括:
接口,在其处接收压缩的页面数据;
连续色调图像解码器,用于对接收到的压缩页面数据中的连续色调图像平面进行解码;
双水平解码器,用于对接收到的压缩页面数据中的双水平图像平面解码;
半色调器/合成器,用于抖动连续色调图像平面和把双水平图像平面数据与任一输出平面合成;
打印头驱动器,用于向打印头输出合成。
13.一种由打印引擎/控制器驱动的墨滴打印机,包括:
接口,在其处接收压缩的页面数据;
连续色调图像解码器,用于对接收到的压缩页面数据中的连续色调图像平面进行解码;
双水平解码器,用于对接收到的压缩页面数据中的双水平图像平面解码;
半色调器/合成器,用于抖动连续色调图像平面和把双水平图像平面数据与任一输出平面合成;
打印头驱动器,用于向打印头输出合成;以及
打印头。
14.一种操作墨滴打印机的方法,包括:
接收压缩的页面数据;
把接收到的压缩页面数据中的一些连续色调图像平面进行解码,以产生输出平面;
把接收到的压缩页面数据中的一些双水平图像平面解码,以产生一个输出平面;
抖动一些连续色调图像平面;
把双水平图像平面数据与输出平面合成;以及
把合成后的数据转发给打印头。
CN00819571.4A 2000-05-24 2000-05-24 打印引擎/控制器和集成了引擎/控制器的打印头接口芯片 Expired - Fee Related CN1210159C (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/AU2000/000516 WO2001089851A1 (en) 2000-05-24 2000-05-24 Print engine/controller and printhead interface chip incorporating the engine/controller

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN 200510072033 Division CN1689814B (zh) 2000-05-24 2000-05-24 打印引擎控制器、打印机和处理图像数据的方法

Publications (2)

Publication Number Publication Date
CN1452558A CN1452558A (zh) 2003-10-29
CN1210159C true CN1210159C (zh) 2005-07-13

Family

ID=3700804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN00819571.4A Expired - Fee Related CN1210159C (zh) 2000-05-24 2000-05-24 打印引擎/控制器和集成了引擎/控制器的打印头接口芯片

Country Status (7)

Country Link
US (2) US7369270B1 (zh)
EP (1) EP1289766A4 (zh)
JP (1) JP4694086B2 (zh)
CN (1) CN1210159C (zh)
AU (3) AU2000247255B2 (zh)
WO (1) WO2001089851A1 (zh)
ZA (1) ZA200209799B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3703337B2 (ja) * 1999-06-30 2005-10-05 キヤノン株式会社 画像通信装置及び画像通信方法
US7457001B2 (en) 2000-05-23 2008-11-25 Silverbrook Research Pty Ltd Half-toner compositor for use in a print engine/controller
US6859289B1 (en) * 2000-05-23 2005-02-22 Silverbrook Research Pty Ltd Print engine/controller with color mask
US8270023B2 (en) 2000-05-23 2012-09-18 Zamtec Limited Print engine controller for double-buffered processing
DE60039634D1 (de) 2000-05-24 2008-09-04 Silverbrook Res Pty Ltd Druckgerät/steuerung mit farbmaske
AU2000253744B2 (en) * 2000-06-30 2004-07-08 Memjet Technology Limited Print engine/controller to work in multiples and a printhead driven by multiple print engine/controllers
US6977751B1 (en) 2000-06-30 2005-12-20 Silverbrook Research Pty Ltd Print engine/controller to work in multiples and a printhead driven by multiple print engine/controllers
US8823969B1 (en) * 2004-10-18 2014-09-02 Kla-Tencor Corporation Image processing architecture
US8149469B2 (en) * 2007-08-03 2012-04-03 Canon Kabushiki Kaisha Image reading apparatus and image reading method
JP6234417B2 (ja) * 2015-10-26 2017-11-22 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
CN112394887A (zh) * 2019-08-17 2021-02-23 森大(深圳)技术有限公司 Onepass打印数据高效率处理方法、装置、设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6424565A (en) * 1987-07-20 1989-01-26 Sharp Kk System for storing plural kinds of picture data
JPH0686032A (ja) * 1992-05-06 1994-03-25 Xerox Corp プリンタ出力コントローラ
JP2732342B2 (ja) * 1993-04-09 1998-03-30 大日精化工業株式会社 オンデマンド型プリンティング方式による記録方法
GB2279530B (en) * 1993-06-21 1997-07-16 Quantel Ltd An image processing apparatus for and a method of preparing data representing a colour image
US5552898A (en) * 1994-07-06 1996-09-03 Agfa-Gevaert Lossy and lossless compression in raster image processor
US5737455A (en) * 1994-12-12 1998-04-07 Xerox Corporation Antialiasing with grey masking techniques
JPH08244246A (ja) * 1995-03-09 1996-09-24 Ricoh Co Ltd 印字装置
US5909227A (en) * 1995-04-12 1999-06-01 Eastman Kodak Company Photograph processing and copying system using coincident force drop-on-demand ink jet printing
US5914737A (en) * 1995-04-12 1999-06-22 Eastman Kodak Company Color printer having concurrent drop selection and drop separation, the printer being adapted for connection to a computer
US5805178A (en) * 1995-04-12 1998-09-08 Eastman Kodak Company Ink jet halftoning with different ink concentrations
US6061501A (en) * 1997-03-25 2000-05-09 International Business Machines Corporation System, method and program for converting an externally defined four colorant (CMYK) into an equivalent four dimensional colorant defined in terms of the four inks (C'M'Y'K') that are associated with a given printer
US6020978A (en) * 1997-09-30 2000-02-01 Lexmark International, Inc. Method and apparatus for color halftoning using interlocked threshold arrays
US6441921B1 (en) * 1997-10-28 2002-08-27 Eastman Kodak Company System and method for imprinting and reading a sound message on a greeting card
JP3707517B2 (ja) * 1998-01-27 2005-10-19 富士ゼロックス株式会社 画像中継装置、画像中継システム、画像送信方法
US6239818B1 (en) * 1998-08-28 2001-05-29 Fuji Photo Film Co., Ltd. Printing method and apparatus
JP3102417B2 (ja) * 1998-10-30 2000-10-23 富士ゼロックス株式会社 画像処理装置および画像処理方法
CN1284673C (zh) * 1998-11-09 2006-11-15 西尔弗布鲁克研究有限公司 数字打印系统
AUPP702498A0 (en) * 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART77)
US6795215B1 (en) * 2000-05-23 2004-09-21 Silverbrook Research Pty Ltd Print engine/controller and printhead interface chip incorporating the engine/controller
JP2000350003A (ja) 1999-06-02 2000-12-15 Matsushita Graphic Communication Systems Inc 画像処理装置及び画像処理方法
US6361916B1 (en) * 1999-12-14 2002-03-26 Eastman Kodak Company Loaded latex compositions with dye and stabilizer
US6859289B1 (en) * 2000-05-23 2005-02-22 Silverbrook Research Pty Ltd Print engine/controller with color mask
JP2004506254A (ja) * 2000-05-24 2004-02-26 シルバーブルック リサーチ ピーティワイ リミテッド 印刷ページタグエンコーダ

Also Published As

Publication number Publication date
EP1289766A1 (en) 2003-03-12
WO2001089851A1 (en) 2001-11-29
US7369270B1 (en) 2008-05-06
US20080186517A1 (en) 2008-08-07
AU4725500A (en) 2001-12-03
JP4694086B2 (ja) 2011-06-01
CN1452558A (zh) 2003-10-29
EP1289766A4 (en) 2005-12-21
AU2004202408A1 (en) 2004-06-17
JP2003534172A (ja) 2003-11-18
ZA200209799B (en) 2003-06-11
AU2000247255B2 (en) 2004-03-25
AU2004202408B2 (en) 2006-01-05

Similar Documents

Publication Publication Date Title
US7270391B2 (en) Method for processing an image
US7980648B2 (en) Print engine controller utilizing on and off chip memory for dot data formatting
CN1210159C (zh) 打印引擎/控制器和集成了引擎/控制器的打印头接口芯片
EP1296834B1 (en) Print engine/controller with color mask
CN1192896C (zh) 协作的打印引擎/控制器和具有由协作的打印引擎/控制器驱动的打印头的喷墨打印机
AU2000247250A1 (en) Print engine/controller with color mask
AU2000247255A1 (en) Print engine/controller and printhead interface chip incorporating the engine/controller
CN1454158A (zh) 使用多段打印头打印
CN1689814A (zh) 用于页宽喷墨打印头的打印引擎控制器
US7957011B2 (en) Printer printing composited print image planes
US7092112B2 (en) Ink drop printer with print engine controller
KR100702464B1 (ko) 프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩
KR100702467B1 (ko) 컬러 마스크를 갖는 프린트 엔진/컨트롤러
US8346001B2 (en) Image processing apparatus, printing apparatus, and image processing method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: ZAMTEC LTD.

Free format text: FORMER OWNER: SILVERBROOK RESEARCH PTY. LTD.

Effective date: 20140326

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140326

Address after: Dublin, Ireland

Patentee after: Silverbrook Research Pty Ltd.

Address before: New South Wales Australia

Patentee before: Silverbrook Research Pty. Ltd.

C56 Change in the name or address of the patentee

Owner name: MAGTE TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: ZAMTEC LTD.

CP01 Change in the name or title of a patent holder

Address after: Dublin, Ireland

Patentee after: MEMJET TECHNOLOGY LTD.

Address before: Dublin, Ireland

Patentee before: Silverbrook Research Pty Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050713

Termination date: 20170524

CF01 Termination of patent right due to non-payment of annual fee