CN1689814A - 用于页宽喷墨打印头的打印引擎控制器 - Google Patents

用于页宽喷墨打印头的打印引擎控制器 Download PDF

Info

Publication number
CN1689814A
CN1689814A CN 200510072033 CN200510072033A CN1689814A CN 1689814 A CN1689814 A CN 1689814A CN 200510072033 CN200510072033 CN 200510072033 CN 200510072033 A CN200510072033 A CN 200510072033A CN 1689814 A CN1689814 A CN 1689814A
Authority
CN
China
Prior art keywords
data
page
image
diadic
input interface
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
Application number
CN 200510072033
Other languages
English (en)
Other versions
CN1689814B (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
Priority to CN 200510072033 priority Critical patent/CN1689814B/zh
Publication of CN1689814A publication Critical patent/CN1689814A/zh
Application granted granted Critical
Publication of CN1689814B publication Critical patent/CN1689814B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)

Abstract

一种用于页宽喷墨打印头的打印引擎控制器,其包括至少一个集成电路。该电路限定一输入接口,该接口被配置以接收表示被压缩页的数据。连续色调图像数据解码器被连接到该输入接口以解码从该输入接口接收的表示被压缩的连续色调图像的任何数据。双值图像数据解码器被连接到该输入接口以解码从该输入接口接收的表示被压缩的双值图像数据的任何数据。半色调器被连接到该输入接口,用于抖动连续色调图像。合成器被连接到该输入接口,用于合成双值图像。打印头接口被配置以接收表示抖动和合成图像的数据并产生该喷墨打印头可读的数据。

Description

用于页宽喷墨打印头的打印引擎控制器
本申请为2002年11月25日提交中国国家知识产权局的国家申请号为00819571.4,国际申请号为PCT/AU00/00516,发明名称为“打印引擎/控制器和集成了引擎/控制器的打印头接口芯片”的中国专利申请的分案申请。
技术领域
本发明涉及一种适合于与各种打印机产品共同使用的打印引擎/控制器(PEC)。本发明进一步涉及一种在打印头接口芯片中实施的打印引擎/控制器。
背景技术
已经演变了各种类型的将墨以点格式选择性地施加到页来构建图像的打印机。在发明人Kia Silverbrook的题为“Self-aligned constructionand manufacturing process for monolithic print heads”的美国专利号6045710中展示了对按需供滴打印机及其制造工艺的现有技术评价。
微机电按需供滴打印头,以下被称为Memjet打印头在以下申请中已有所描述,在此以交叉引用的方式来引入:
  PCT申请号   参考号
  PCT/AU00/00591   MJ62
  PCT/AU00/00578   IJ52
  PCT/AU00/00579   IJM52
  PCT/AU00/00592   MJ63
  PCT/AU00/00590   MJ58
Memjet打印头是从能够例如在全页宽范围内产生1600点每英寸(dpi)双值点(bi-level dot)液体墨的打印头段发展而来。点容易被隔离产生,因此可以充分利用分散点的抖动。色平面可以非常好地对准打印,实现理想的点对点(dot-on-dot)打印。这种打印头通过使用微机电墨滴技术来使能高速打印。
与本发明有关的各种方法、系统和装置在下列共同未决专利申请中揭示,这些专利申请是本发明的专利申请人或受让人与本发明同时申请的:
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
上述共同未决申请的公开内容通过交叉引用被结合在此。
上述打印头的性能由其引擎/控制器决定。高速打印是开发打印头和其引擎/控制器两者的事情。由上述技术使能的页宽打印头需要能够向其递送高速率滴控制信号的引擎/控制器。典型的页布局可以包含图像、图表和文本的混合。由于上述微机电打印头的页宽特点,每一页都能以恒定的速度打印,从而避免产生可见的伪像。这意味着不需要改变打印速度来匹配输入数据速率。文档栅格化(rasterization)和文档打印可被分离开来。为了保证以恒定速率向打印头提供数据,页不应被打印,直到其被完全栅格化。理想情况下,在栅格化简单页时,栅格化应该能够在打印机之前进行,以便留出时间对比较复杂的页进行栅格化。引擎/控制器决定这些功能可被实现的程度。
打印头更高的速度取决于打印头及其引擎/控制器两者的发展。打印引擎/控制器的体系结构需要被设计成以高速度将大量数据推向打印头。
发明内容
在一种形式上,本发明在于一种打印引擎/控制器,其包括:
连续色调(contone)图像解码器;
双值压缩解码器;以及
半色调器/合成器(compositor)和打印头接口。
该打印引擎/控制器为从被压缩的页数据产生页提供最终步骤,该被压缩数据由计算机或打印分配系统为其适当格式化,所述步骤为:展开页图像,抖动连续色调层,把黑层合成到连续色调层上,向红外层添加红外标签,以及向打印头发送所得到的图像。
打印引擎/控制器优选使用高速串行接口以在其上接收被压缩的页数据。连续色调图像平面由JPEG解码器解码,并在页边单元(marginunit)的控制下在半色调器/合成器中缩放。Group4传真解码器对双值图像平面进行解码,该双值图像平面也在页边单元的控制下在半色调器/合成器中缩放。任选地,红外标签编码器用来产生红外图像平面,以将经红外墨打印的标签放入到打印页中。半色调器/合成器包括抖动矩阵访问单元,以从压缩的页数据供给抖动数据从而通过它来抖动连续色调图像平面。
本发明还包括与墨滴打印头对接的打印引擎/控制器芯片,包括:接口,在这里接收压缩的页数据;连续色调图像解码器,用于解码所接收的压缩页数据中的任何连续色调图像平面;双值解码器,用于解码所接收的压缩页数据中的任何双值图像平面和抖动数据;半色调器/合成器,用于将任何双值图像平面合成到任何连续色调图像平面上;以及打印头驱动器,用于将合成(composite)输出到打印头。
附图说明
图1是说明数据流和由打印引擎控制器执行的功能的图;
图2所示为在总体打印机系统体系结构情况下的打印引擎/控制器;
图3所示为打印引擎/控制器的体系结构;
图4所示为到图3的半色调器/合成器单元(HCU)的外部接口;
图5所示为图4中的HCU的内部电路图;
图6是图5中的点合并单元(dot merger unit)内的过程的框图;
图7所示为图5中的点重组单元(dot reorganization unit)内的过程的图;
图8所示为图5中的行加载器/格式单元(LLFU)中的过程的图;
图9所示为在图8的LLFU中生成色数据的内部电路的图;
图10和图11所示为图9中看到的LLFU的部件。
具体实施方式
典型为12英寸的打印头宽度由一个或多个PEC控制,如下所述,以便能够实现A4和信函页的全出血(full-bleed)打印。在当前打印环境中,最多期望6个有色墨通道,包括:
·CMY,用于常规的彩色打印。
·K,用于黑文本和其它黑打印。
·IR(红外),用于标签使能的应用。
·F(固定剂),使能高速打印。
由于打印机是要能够高速打印,所以将需要固定剂以使下一页的较高速度打印完成前墨能够干燥。否则页之间可能相互洇渗(bleed)。在较低速度的打印环境中,不需要使用固定剂。
PEC可被建立在单个芯片中,以与打印头对接。它应具有4级基本功能:
·通过串行接口,如IEEE 1394来接收压缩页。
·用于从压缩形式产生页的打印引擎。该打印引擎的功能性包括展开页图像、抖动连续色调层、把黑层合成到连续色调层上、任选地添加红外标签、以及向打印头发送所得图像。
·用于控制打印头和步进马达的打印控制器。
·两个标准的低速串行端口,用于与两个QA芯片通信。需要注意的是,必须有两个端口,而不是单个端口,以保证在鉴权过程中强的安全性。
图1所示为从计算机系统向打印页发送文档的数据流。文档在11处被接收,并被加载到存储器缓冲器12中,其中可以实现页布局,并且可能添加任何所需的对象。在传送给打印引擎控制器10之前,来自存储器12的页在13处被栅格化,并且在14处被压缩。在打印引擎控制器10中,页作为压缩的页图像被接收到存储器缓冲器15中,然后从缓冲器15被馈送到页展开器(page expander)16,页图像在页展开器中被还原(retrieve)。在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用于存储压缩页图像,并且用于打印给定页的过程中的暂存使用(scratch use)。存储器缓冲器的构造和工作是本领域技术人员所已知的,并且在使用本发明的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
[30]优选地,PEC芯片结合简单的微控制器CPU芯35以执行下列功能:
·在打印页之间,经由串行接口36执行QA芯片鉴权协议
·在打印过程中,经由并行接口91运行步进马达(步进马达需要5KHz过程)
·在打印过程中同步化PEC芯片的各部分
·提供与外部数据请求(编程寄存器等)对接的装置
·提供与打印头段低速数据请求(如读取特征向量和写入脉冲外形(pulse profile)对接的装置
·提供向外部DRAM写入横向(纵向)和纵向(横向)标签结构的装置
[31]由于所有图像处理都由专用的硬件执行,所以CPU不必处理像素。因此,CPU可以非常简单。多种现有的CPU芯是适合的:任何一种具有足够处理能力足够快地执行所需计算和控制功能的处理器芯都可以使用。一个合适的芯的例子是运行在大约1MHz的Philips 8051微控制器。与CPU芯35关联的可以是程序ROM和小程序暂存RAM。CPU通过存储器映射I/O与PEC芯片内的其它单元通信。特定的地址范围可以映射到特定的单元,而且在每个范围内,映射到该特定单元的特定寄存器。这包括串行36和并行91接口。在PEC芯片中可以结合小程序快闪ROM。其大小取决于所选的CPU,但是不应超过8KB。同样,可以在PEC芯片中结合小暂存RAM区。由于程序代码不必操纵图像,所以不需要大的暂存区。RAM的大小取决于所选的CPU(例如堆栈机制、子程序调用约定、寄存器大小等),但是不能超过2KB。
[32]使用基于上述引用段的页宽打印头的PEC芯片可以在全点分辨率(典型为1600dpi)下再现黑,但是使用半色调以较低的分辨率再现连续色调颜色。因此,页描述被分为黑双值层和连续色调层。黑双值层被限定合成于连续色调层上。黑双值层由包含用于每个象素的1位暗度(opacity)的位图构成。该黑层蒙罩(matte)的分辨率是打印机的点分辨率的整数倍。它所支持的最高分辨率是1600dpi,即打印机的全点分辨率。连续色调层由包含用于每个象素的32位CMYK色的位图构成,其中的K是任选的。这种连续色调图像的分辨率是打印机的点分辨率的整数倍。对于单个PEC来说,它所支持的最高分辨率在12英寸上是320像素每英寸(ppi),即打印机的点分辨率的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。诸如文本的相干数据(coherent data)压缩效果很好。使用诸如Group4传真的无损双值压缩算法(见以下),十点文本以大约10∶1的比率压缩,因此上述压缩页大小为0.8MB。一旦被抖动,一页CMYK连续色调图像数据由114MB双值数据组成。下文中所述的双层压缩页图像格式利用了有损JPEG连续色调图像压缩和无损双值文本压缩的相对强度。该格式足够紧凑以实现高效存储,并且足够简单以在打印过程中直接地、实时地展开。由于文本和图像通常不重叠,所以在正常的最坏情况下,页图像大小为2.5MB(即,只是图像),而在最佳情况下,页图像大小为0.8MB(即,只是文本)。在绝对最坏情况下,页图像大小为3.3MB(即,文本在图像之上)。假设图像占1/4平均页,则平均页图像大小为1.2MB。
Group3传真压缩算法(见ANSI/EIA 538-1988,Facsimile CodingSchemes and Coding Control Functions for Group4 Facsimile Equipment,1988年8月)可被用于无损压缩双值数据以便于通过慢速并有噪音的电话线路传输。双值数据表示在白背景上的所扫描的黑文本和图形,而且上述算法还被调节用于此类图像(对于例如半色调化的双值图像,它不进行明显地调节)。1D Group3算法对每个扫描行进行行程长度编码(runlength encode),然后对所得到的行程长度进行霍夫曼编码。范围在0到63的行程长度使用终止码(terminating code)来编码。范围在64到2623的行程长度使用构成码(make-up code)来编码,每个表示64的倍数,后跟一个终止码。超过2623的行程长度使用后跟终止码的多构成码来编码。霍夫曼表是固定的,但是针对黑和白行程(run)被分开调节(但1728以上的构成码除外,它们是公用的)。在可能的情况下,2DGroup3算法根据前一个扫描行把扫描行编码为一组短边德耳塔(0,±1、±2、±3)。德耳塔符号被平均信息量编码(entropy-encoded)(因此零德耳塔符号仅一位长,等等)。不能被德耳塔编码的2D编码的行内的边被行程长度编码,并且由前缀来标识。1D和2D编码的行被不同地标记。不管实际需要与否,1D编码的行都以规则的间隔产生,以便保证解码器可以从行噪中以最小的图像降级来恢复数据。2D Group3实现高达6∶1的压缩比(见Urban,S.J.,“Review of standards for electronic imagingfor facsimile systems”,Journal of Electronic Imaging,Vol.1(1),1992年1月,第5-21页)。
Group4传真算法(见ANSI/EIA 538-1988,Facsimile Coding Schemesand Coding Control Functions for Group4 Facsimile Equipment,1988年8月)无损压缩通过无错通信线路(即,线路是真正无错的传输,或者在较低的协议层进行纠错)传输的双值数据。Group4算法是以2D Group3算法为基础,其主要修改是:由于假定传输是无错的,所以不需要再以规则的间隔产生1D编码的行作为错误恢复的帮助。对于CCITT测试图像组,Group 4算法所实现的压缩比范围在20∶1到60∶1之间。Group4压缩算法的设计目标和性能使其能够作为用于双值层的压缩算法。但是,其霍夫曼表被调节到较低的扫描分辨率(100-400dpi),而且它编码超过2623的行程长度是困难的。在800dpi下,我们的最大行程长度是目前的6400。虽然Group 4解码器芯可以在PEC中使用,它可能无法处理超过在400dpi传真应用中所正常遇到的行程长度的行程长度,所以需要进行修改。使用G4Fax对黑层(典型为1600dpi)进行无损压缩的典型压缩比为10∶1以上。使用G4Fax对与连续色调颜色层匹配的抖动矩阵选择层(典型为320dpi)进行无损压缩的典型压缩比为50∶1以上。
Group 4Fax(G4Fax)解码器负责解压缩双值数据。双值数据被限制为单个斑点色(典型为用于文本和线图形的黑),以及抖动矩阵选择位图,用于对连续色调数据(由JPEG解码器解压缩)进行后续抖动。输入到G4Fax解码器的是从外部DRAM读取的2个平面的双值数据。由G4Fax解码器输出的是2个平面的解压缩的双值数据。该解压缩的双值数据被送到半色调器/合成器单元(HCU)用于打印流水线中的下一级。两个双值缓冲器提供用于在G4Fax解码器和HCU之间传送双值数据的装置。每个解压缩的双值层被输出到两个行缓冲器。每个缓冲器能够以期望的最大分辨率容纳全12英寸点行。采用两个行缓冲器允许一行被HCU读取,同时另一行被G4Fax解码器写入。这是重要的,因为单个双值行典型低于1600dpi,并且因此必须在点和行两个尺度上展开。如果该缓冲低于一整行,那么G4Fax解码器将必须对相同的行多次解码,每个输出600dpi点行一次。
斑点色1被设计成允许高分辨率的点数据用于输出图像的单个色平面。尽管连续色调层为图像提供的足够的分辨率,斑点色1目标用于诸如文本和行图形(典型为黑)的应用。当被用作文本和行图形时,压缩比通常超过10∶1。斑点色1对于最高打印质量允许可变分辨率达到1600dpi。因此,两个行缓冲器中的每个为总共2400字节(12英寸×1600dpi=19200位)。
抖动矩阵选择图的分辨率应该理想地匹配连续色调分辨率。所以两个行缓冲器的每个是480字节(3840位),能够以320dpi存储12英寸。当该图与连续色调分辨率匹配时,典型的压缩比可以超过50∶1。
为了对下列提供支持:
·800dpi斑点色1层(典型为黑)
·320dpi抖动矩阵选择层
对于1页/秒的性能(无论页宽是12英寸或8.5英寸),解压缩带宽要求为9.05MB/秒,在最高打印机速度性能时(30,000行/秒),对于12英寸页宽度和8.5英寸页宽度,所需的解压缩带宽分别为20MB/秒和14.2MB/秒。当解压缩的数据被输出到行缓冲器时,G4Fax解码器可以容易地一次从每个输出中解压缩一行。
G4Fax解码器通过DRAM接口直接从主存储器接收数据。压缩量决定了到外部DRAM的带宽要求。由于G4Fax是无损的,所以图像的复杂程度影响数据量并因此影响带宽。典型地,800dpi黑文本/图形层超过10∶1的压缩,所以每秒打印1页所需要的带宽为0.78MB/秒。类似地,典型的320dpi抖动选择矩阵以超过50∶1来压缩,导致0.025MB/秒的带宽。对于抖动选择矩阵的320dpi和对于斑点色1的800dpi的最快打印速度配置分别需要1.72MB/秒和0.056MB/秒的带宽。因此,2MB/秒的总带宽完全可以满足DRAM的带宽要求。G4Fax解码功能性通过G4Fax解码器芯实施。多种G4Fax解码器芯是合适的:它可以是任何具有足够处理能力以足够快地执行所需计算和控制功能的芯。它必须能够处理超过在400dpi的传真应用中所遇到的行程长度的行程长度,因此可能需要进行修改。
JPEG压缩算法(见ISO/IEC 19018-1:1994,Informationtechnology-Digital compression and coding of continuous-tone still images:Requirements and guidelines,1994)以特定质量水平对连续色调图像进行有损压缩。在压缩比低于5∶1时,JPEG算法引入不可察觉的图像降级,并且在压缩比低于10∶1时,引入可忽略的图像降级(见Wallace,G.K.,“The JPEG Still Picture Compression Standard”,Communication of theACM,Vol.34,No.4,1991年4月,第30-44页)。JPEG典型地首先把图像变换为一个色空间,该色空间把亮度和色度分离为分开的色通道。这允许色度通道可以被二次取样而没有显著的损失,因为人类视觉系统对亮度的敏感性要比对色度的敏感性相对大。经过该第一步后,对每个色通道被分开压缩。把图像划分为8×8的像素块。然后,通过离散余弦变换(DCT)把每个块变换到频域中。这种变换具有以相对较低的频率系数来集中图像能量的效果,这允许较高频率系数被较粗地(morecrudely)量化。这种量化是JPEG中压缩的主要来源。通过根据频率对系数定阶以最大化相邻零系数的可能性,然后对零行程进行行程长度编码,从而实现进一步压缩。最终,对行程长度和非零频率系数进行平均信息量编码。解压缩是压缩的反过程。
CMYK(或CMY)连续色调层被压缩为平面的色JPEG字节流。如果出于表共享的目的或者为了色度二次取样而认为进行亮度/色度分离是必要的,那么CMYK将被转换为YCrCb并且Cr和Cb被适时地二次取样。JPEG字节流是完整的和自包含的。它包含解压缩所需的全部数据,包括量化和霍夫曼表。
JPEG解码器负责对连续色调数据层进行忙碌的(on-the-fly)解压缩。向JPEG解码器输入的是多达4个平面的连续色调数据。其典型地是表示CMY连续色调图像的3个平面,或者是表示CMYK连续色调图像的4个平面。每个色平面可以处于不同的分辨率,尽管典型地所有色平面将是相同的分辨率。连续色调层从外部DRAM读取。JPEG解码器的输出是分到平面中的解压缩的连续色调数据。解压缩的连续色调图像被发送到半色调器/合成器单元(HCU)29,用于打印流水线中的下一级。4平面连续色调缓冲器提供用于在JPEG解码器和HCU 29之间传送连续色调数据的装置。
解压缩的连续色调数据的每个色平面被输出到一组两个行缓冲器(见以下),每个行缓冲器为3840字节,因此能够以320ppi容纳12英寸的单个色平面的像素。行缓冲允许当HCU从一个行缓冲器读取时,JPEG解码器可以向另一个行缓冲器写入。这是非常重要的,因为单个连续色调行通常低于1600ppi,并且因此必须在点和行两个尺度上展开。如果缓冲低于一整行,那么JPEG解码器就必须对同一行多次解码,每个输出600dpi点行一次。虽然多种分辨率被支持,但是在分辨率和可用带宽之间有权衡。当分辨率和颜色数增加时,带宽要求也增加。另外,PEC芯片的目标段的数目也会影响带宽和可能的分辨率。注意,由于连续色调图像被以平面格式处理,所以每个色平面可以采用不同的分辨率存储(例如,CMY平面可以是高于K平面的分辨率)。所支持的最高连续色调分辨率是1600ppi(与打印机的全点分辨率匹配)。但是只有足够容纳12英寸长度的320ppi行的足够连续色调像素的输出行缓冲器。如果需要以较高连续色调分辨率输出全12英寸,那么需要多个PEC芯片,尽管需要注意,打印机上的最终输出仍将仅是双值。如果支持320ppi的4种颜色,对于每秒1页的性能(不管页宽是12英寸或8.5英寸),解压缩输出带宽要求为40MB/秒,而在最高打印机速度性能(30,000行/秒)时,12英寸和8.5英寸页宽所需的解压缩输出带宽分别为88MB/秒和64MB/秒。
JPEG解码器通过DRAM接口直接从主存储器接收数据。压缩量决定了到外部DRAM的带宽要求。当压缩水平提高时,带宽降低,但是最终的输出图像的质量也降低。用于单个色平面的DRAM带宽可以通过将压缩因子应用到输出带宽而容易地算出。例如,具有10∶1压缩因子的320ppi的单个色平面需要1MB/秒的对DRAM的存取从而每秒钟产生一个单页。JPEG功能性由JPEG芯实施。多种JPEG芯是合适的:它可以是任何具有足够处理能力以足够快地执行所需计算和控制功能的芯。例如,BTG X-March芯具有高达140MB/秒的解压缩速度,这允许对4个高达400ppi连续色调分辨率的色平面的解压缩用于最高的打印机速度(1600dpi,30,000行/秒)以及800ppi用于1页/秒的打印机速度。需要注意的是,所述芯只需要支持解压缩,由此降低了由较通用的JPEG压缩/解压缩芯所施加的要求。该芯的大小预期不超过100,000个门。假定解压缩的数据被输出到行缓冲器,JPEG解码器可以每次容易地为每个色平面一次一个地解压缩一个整行,由此节省了一行期间的根据前后关系(on context)的切换,并简化了JPEG解码器的控制。4个前后关系必须被保持(每个色平面一个前后关系),并且包括外部DRAM中的当前地址以及适当的JPEG解码参数。
在图4中,半色调器/合成器单元(HCU)29组合了把连续色调(典型为CMYK)层半色调化为其双值版本的功能和把斑点1双值层合成到适当的已被半色调化的连续色调层上的功能。如果打印机中没有K墨,那么HCU29能够把K适当地映射为CMY点。它还根据抖动矩阵选择图中的对应值在两个抖动矩阵之间逐象素选择。到HCU29的输入是(来自JPEG解码器单元)通过缓冲器37输入的展开的连续色调层,通过缓冲器38输入的展开的双值斑点1层,通过缓冲器39输入的展开的典型与连续色调层的分辨率一样的抖动矩阵选择位图,以及通过缓冲器40输入的全点分辨率的标签数据。HCU29使用从外部DRAM34读取的达两个抖动矩阵。在41处,从HCU29向行加载器/格式单元(LLFU)输出的是高达6个色平面中的一组打印机分辨率双值图像行。典型地,连续色调层是CMYK或CMY,并且双值斑点1层是K。
图5中更详细地描述了HCU。一旦启动,则HCU继续进行直到它检测到页结束(end-of-page)条件,或通过其控制寄存器被明确停止。HCU的第一任务是在诸如缩放单元43的相应缩放单元中把诸如42的缓冲器平面中所接收的所有数据在水平和垂直两个方向上缩放为打印机的分辨率。
缩放单元提供了在水平和垂直两个方向上把连续色调数据或双值数据缩放为打印机分辨率的一种装置。缩放是通过在上述两个尺度上将数据值复制整数次数而实现的。缩放数据的过程是本领域的技术人员所熟知的。
页边单元57向缩放单元43提供两个控制位:前进点(advance dot)和前进行(advance line)。前进点位允许状态机生成相同点数据的多个实例(对于页的页边是有用的并且为重叠打印头中的段创建点数据)。前进行位允许状态机控制何时完成特定点行,从而允许根据打印机的页边截断数据。它还使缩放单元节省了专门的行结束逻辑的需要。到缩放单元的输入是全行缓冲器。该行被使用了缩放因子的次数,以通过行复制实现垂直方向的放大,并且在每一行中,每个值被使用了比例因子的次数,以通过像素复制实现水平方向的放大。一旦输入行被使用了比例因子的次数(前进行位已经被设置了比例因子的次数),则地址的输入缓冲器选择位被轮转(toggle)(双缓冲)。缩放单元的逻辑对于8位和1位的情况是相同的,因为缩放单元只产生地址。
由于每个连续色调层可以是不同的分辨率,所以它们被独立地缩放。缓冲器45中的双值斑点1层和缓冲器46中的抖动矩阵选择层也需要被缩放。缓冲器47中的双值标签数据是以正确的分辨率建立的,所以不需要缩放。放大的抖动矩阵选择位被抖动矩阵访问单元48用于从两个抖动矩阵中选择单个8位值。该8位值被输出到4个比较器44和49到51,这些比较器将该8位值与特定的8位连续色调值简单地比较。实际抖动矩阵的产生依赖于打印头的结构,而产生抖动矩阵的一般过程将是本领域的技术人员所熟知的。如果连续色调值大于或等于上述8位抖动矩阵值,那么就输出1。否则就输出0。然后在52到56中,这些位都与来自页边单元57的inPage位(不论特定点是否在页的可打印区域内)进行AND运算。HCU中的最后级是合成级。对于6个输出层中的每一层,都有单个点合并单元,例如单元58,每个具有6个输入。来自每个点合并单元的单个输出位是任何或者所有输入位的组合。这允许斑点色被放入到任何输出色平面中(包括用于测试目的的红外),黑被合并到青、品红和黄中(如果打印头中没有黑墨),而标签点数据被放入到一个可视的平面中。固定剂色平面也可以容易地生成。点重组(reorg)单元(DRU)59负责获取为给定的色平面而产生的点流并将其组织为32位的数量,使得输出处于段顺序,并且在段内处于点顺序。由于用于重叠段的点不是以段顺序生成的,所以需要进行最小的重新排序。
页边单元57向缩放单元提供两个控制位:前进点和前进行。前进点位允许状态机生成相同点数据的多个实例(对于页的页边是有用的并且为重叠打印头中的段创建点数据)。前进行位允许状态机控制何时完成特定点行,从而根据打印机的页边截断数据。它还使缩放单元节省了对专门的行结束逻辑的需要。
比较器单元包含简单的8位“大于或等于”比较器。它被用于确定8位连续色调值是否大于或等于8位抖动矩阵值。同样,比较器单元采用两个8位输入并产生单个1位输出。
图6更详细地描述了点合并单元。点合并器单元提供了把双值抖动的数据、斑点1颜色以及标签数据映射到实际打印头中的输出墨的装置。每个点合并单元采用6个1位输入并产生单个位的输出,其表示该色平面的输出点。在60处的输出位是任何或者所有输入位的组合。这样使斑点色被放入到任何输出色平面中(包括用于测试目的的红外),黑被合并到青、品红和黄中(如果打印头中没有黑墨),而标签点数据被放入到一个可视平面中。用于固定剂的输出可以通过简单地组合所有输入位而容易地生成。点合并单元包含6位ColorMask寄存器61,其被用作对6个输入位的掩蔽。每个输出位与对应的ColorMask寄存器位进行AND运算,并且然后把所得到的6位一起进行OR运算,以形成最终的输出位。
图7描述了点重组单元(DRU),该单元负责获取为给定的色平面而生成的点流并将其组织为32位的数量,使得输出处于段顺序,而在段中处于点顺序。由于用于重叠段的点不是以段顺序生成的,所以需要进行最小的重新排序。DRU包含32位移位寄存器,常规的32位寄存器、以及常规的16位寄存器。5位计数器跟踪到目前为止所处理的位数。来自抖动矩阵访问单元(DMAU)的点前进信号被用于指示DRU哪些位应该被输出到它。
图7中的寄存器(A)62每个周期被钟控一次。它包含32个由点合并单元(DMU)最近期产生的点。借助于由DRU状态机64通过简单的5位计数器产生的WriteEnable信号每32个周期将全32位值拷贝到寄存器(B)63。用相同的WriteEnable脉冲,来自寄存器(B)63中的16个奇数位(位1,3,5,7等)被拷贝到寄存器(C)65中。然后,32位复用器66根据来自状态机的2个位在下列3个输出之间选择:
·来自寄存器B的全32位
·由寄存器A中的16个偶数位(位0,2,4,6等)和寄存器B中的16个偶数位构成的32位值。来自寄存器A的16个偶数位形成位0到15,而来自寄存器B的16个偶数位形成位16到31。
·由寄存器B中的16个奇数位(位1,3,5,7等)和寄存器C中的16位构成的32位值。寄存器C中的位形成位0到15,而来自寄存器B中的奇数位形成位16到31。
[56]DRU的状态机如表1所示。它以状态0开始。每32个周期改变状态。在该32个周期过程中,单个noOverlap位收集该32个周期的所有点前进位的AND(对于周期0,noOverlap=点前进,对于周期1到31,noOverlap=noOverlap AND点前进)。
表1.DRU的状态机
  状态  NoOverlap   输出   输出有效  注释   下一个状态
  0   X   B   0  启动状态   1
  1   1   B   1  常规的非重叠   1
  1   0   B   1  A包含第一重叠   2
 2  X   偶数A,偶数B  1  A包含第二重叠B包含第一重叠  3
 3  X   C,奇数B  1  C包含第一重叠B包含第二重叠  1
图5中的页边单元(MU)57负责根据当前页的页边把来自抖动矩阵访问单元(DMAU)48的前进点和前进行信号转变成一般控制信号。它还负责生成页结束条件。MU保持页上的点和行的计数器。在页的开始,二者都被置为0。每次当MU从DMAU接收点前进信号时,点计数前进1。当MU从DMAU接收到行前进信号时,行计数被增量1,而点计数被复位到0。每个周期都把当前行和点值与页的页边进行比较,并根据这些页边给出适当的输出点前进、行前进和页边内的信号。DMAU包含对HCU的仅仅基本的存储器要求。
图8所示为行加载器/格式单元(LLFU)。它从HCU接收点信息,将用于给定打印行的点加载到适当的缓冲器存储中(一些在芯片上,一些在外部DRAM34中),并将它们格式化为打印头所需的顺序。图9中示出了根据其外部接口的LLFU的高级块图。到LLFU的输入67是一组32位的字和DataValid位,都由HCU生成。输出68是一组90个位,表示6种颜色的15个打印头段的最大值。并不是所有输出位都有效,这取决于打印头中实际使用的颜色数。
上述打印头上的触发(firing)喷嘴,即两个有偏差的行中的喷嘴的物理布置意味着相同色的奇数和偶数点用于两个不同的行。偶数点用于行L,而奇数点用于行L-2。另外,在一种颜色的点与另一种颜色的点之间有许多行。因为HCU一次算出用于相同点位置的6个色平面,所以需要延迟用于每个色平面的点数据,直到相同的点被定位到适当的色喷嘴下。
每个缓冲器行的大小取决于打印头的宽度。由于单个PEC为多达15个打印头段生成点,所以单个奇数或偶数缓冲行是15组的640点,总共为9600位(1200字节)。例如,颜色6奇数点所需的缓冲总共为几乎45KByte。
当制造技术能够时,整组的必备缓冲器可被提供在PEC芯片上。否则,颜色2向前(onward)的缓冲器可被存储在外部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的行同步(line-sync)信号时进行逻辑上的交换(swap)。缓冲器E和F两者都由6个子缓冲器构成,每种颜色一个子缓冲器,如图11所示,颜色1的子缓冲器编号为73。每个子缓冲器的大小是2400字节,足以以1280点/段容纳15个段。由于存储器一次被存取32位,所以每个子缓冲器具有600个地址(需要10个地址位)。在每种颜色的子缓冲器中,所有偶数点都在奇数点之前被放置。如果有任何未用的空间(对于少于15个段的打印),那么它被放置在每种颜色的子缓冲器的结尾。每个子缓冲器实际使用的存储器量与PEC实际寻址的段的数目直接相关。对于15段打印头,有1200字节的偶数点,后跟1200字节的奇数点,没有未用空间。有利地(gainfully)使用的子缓冲器的数目与打印头中所用的颜色数直接相关。所支持的最多颜色数为6。
缓冲器E和F的每个的寻址解码电路是这样的:在给定的周期中,可以对所有6个子缓冲器进行单个的32位存取-或者从所有6个中读取,或者写入到6个中的一个。从每种颜色缓冲器中读取的32位中,只有一位被选择,总共6个输出位。这个过程在图11中示出。15个地址位允许借助于正被用于选择32个位的10个地址位来读取特定位,而5个地址位从那32位中选择1位。由于所有颜色子缓冲器共享该逻辑,所以单个15位地址给出总共6个位,每种颜色一个位。73到78的每个子缓冲器都有它自己的WriteEnable线,因此,允许在给定的周期内将单个32位值写入特定颜色缓冲器。各个WriteEnable是通过将单个WriteEnable输入与解码形式的ColorSelect进行AND运算而生成的。线79上的32位的DataIn被共享,因为只有一个缓冲器将实际上将数据钟控进入。
用于从缓冲器E和F中读取的地址生成是直接的。每个周期产生一位地址,其用于取来用于特定段的表示每种颜色1位的6个位。通过向当前位地址添加640,我们前进到下一段中的相当的点。我们添加640(不是1280)是因为在缓冲器中奇数和偶数点是分开的。对上述动作进行NumSegments次,以还原表示偶数点的数据,然后把这些位传送给PHI。当NumSegments=15时,位数为90(15×6位)。然后,为奇数点重复上述过程。整个偶数/奇数位生成过程被重复640次,每次都增量起始地址。采取这种方法,所有点值都在640×2×NumSegments个周期中被以打印头所需要的顺序传递到PHI中。当NumSegments=15时,周期数目为19,200个周期。需要注意的是,不管在打印头中实际使用的颜色数是多少,在给定读取周期中,都会产生6个位(每个颜色缓冲器一个位)。
另外,我们为写入到图9中的90位传递寄存器90产生TWriteEnable控制信号。由于LLFU在PHI之前开始,我们必须在来自PHI的前进脉冲之前传递第一值。我们还必须为第一前进脉冲产生做好准备的下一个值。解决方案是在NumSegments个周期后把第一值传递给传递寄存器,然后停止随后的NumSegments个周期,等待前进脉冲以开始下一个NumSegments周期组。一旦第一前进脉冲到达,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

        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 6bits 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的颜色2-6数据(由DRAM提供)。每当HCU的OutputValid旗标被置位时,颜色1的数据就被写入EF中,而在其它时间,颜色2-6的数据被从寄存器C中写入。
图9中的缓冲器OE1 81是32位寄存器,它用于容纳颜色1的单个HCU产生的一组相连的32个点。虽然点在页上是相连的,但是奇数和偶数点是在不同的时间被打印的。
缓冲器AB82采用一种双缓存机构,用于将颜色1的奇数点数据延迟2个点行。因此,缓冲器A和B具有相同的结构。在一行点的处理过程中,两个缓冲器中的一个被读取,然后被写入。当整个点行被处理完成后,这两个缓冲器被逻辑上交换。单个位旗标ABSense确定两个缓冲器中的哪一个被读取以及被写入。
每当输出有效控制旗标被置位时,HCU提供32位的颜色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颜色1数据的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个周期被分为表示颜色1奇数点的32位和表示颜色1偶数点的32位(每两个OutputValid旗标一次),其余色平面也被分为偶数和奇数点。
但是,点数据被延迟许多行,并通过缓冲器CD(图9中的84)写出到DRAM,而不是直接被写入缓冲器EF。当给定行的点被写入DRAM时,先前行的点被从DRAM中读取,并被写入缓冲器EF(71,72)。这个过程必须与把颜色1写入缓冲器EF的过程交错进行。
每次在如图10中的线85上接收来自HCU的OutputValid旗标时,32位的颜色N数据就被写入缓冲器OEN(83)。每次收到第二OutputValid旗标时,经组合的64位值就被写入颜色缓冲器N(86)。这个过程与所有色平面2到6是并行进行的。颜色缓冲器N(86)包含有40组64位(320字节),以便使两个完整段的点能够被存储。这样,先前段的数据(包括奇数和偶数点)在完整段生成时间(20×64=1280个周期)内被写出到DRAM中。写入操作的地址生成是直接的。线87上的ColorNWriteEnable信号在每第二个OutputValid旗标时被给出。地址从0开始,在每第二个OutputValid旗标时增加1,直到39。它将被复位为0,而不是前进到40,这样可以提供双缓冲方案。只要在OutputValid旗标期间不发生读操作,并且先前段的数据可在产生单个段的数据所花费的时间内被写入到DRAM中,所述方案就起作用。下面的伪代码示出了上述过程:
        adr=0

        firstEncountered=0

        While(NOT AdvanceLine)

           If(HCU_OutputValid)AND(firstEncountered))

                 ColorNWriteEnable=TRUE

                 ColorNAdr=adr

                 If(adr=39)
        <!-- SIPO <DP n="25"> -->
        <dp n="d25"/>
                 adr=0

              Else

                 adr=adr+1

              EndIf

       Else

          ColorNWriteEnable=FALSE

       EndIf

       If(HCU_OutputValid)

          firstEncountered=NOT(firstEncountered)

       EndIf

    EndWhile
读操作的地址生成较为复杂,因为它依赖于DRAM存取(包括读和写两者)、缓冲器EF的存取、以及由此颜色1生成的时序有关。下面对其进一步说明。
颜色N和缓冲器C、D、E、F的地址生成都与DRAM存取的时序有关,并且不能干扰与缓冲器E和F有关的颜色1的处理。其基本原理是,把颜色N(奇数点或偶数点)的单个段的数据从DRAM中通过缓冲器CD传送给缓冲器EF。一旦数据从DRAM中被读取,根据ColorBufferN中的值替换上述点。对奇数和偶数点中的每种颜色执行相同的过程。在累积了相当于完整段的点之后(20组64周期),重新开始上述过程。一旦把给定的打印行中的所有段的数据在DRAM往返传送后,前进该颜色的DRAM缓冲器的当前地址,使得它为适当的行数,直到把该颜色的行的特定数据从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位=192,000位(24,000字节)每打印行。对于最快的打印系统(30,000行/秒),这相当于687MB/秒。对于1页/秒的打印,所需带宽为312MB/秒。由于所需带宽太高,所以应该针对所用的存储器类型来优化DRAM中每种颜色的各种半行的地址。例如,在RDRAM存储器系统中,为了最大化DRAM访问的分页计次(page-hit),为每种颜色把正好第一半行缓冲器对准到1KByte边界。当处理各种段时,必须保证如果下一段的起始将被对准在1KByte页中的字节960处,那么640位的存取将跨接2个页。为此,可以使用可变的DRAMMaxVal来检查这种情况,如果这种情况发生,那么把要页对准的下一个半行缓冲器的地址上舍入。这样每13段只浪费64字节,但是所具有的优点是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(>=20cycles)

             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(>=20cycles)

          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

       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]
        <!-- SIPO <DP n="28"> -->
        <dp n="d28"/>
                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需要2NumSegments个周期来为PHI准备数据的头180位。因此,在LLFU已经启动后的这个时间段,打印头应该被启动并且第一LineSync脉冲必须出现。这使初始的传送值有效并且使接下来的90位值准备好被加载到传递寄存器中。
打印头接口(PHI)是处理器向打印头加载要打印的点所用的装置,并且控制着实际的点打印过程。它从LLFU获取输入,并把数据输出给打印头本身。PHI能处理各种打印头长度和格式。PHI的内部结构应滤及最大6种颜色、每次传递8个段、以及最大2个段组。这对于能够以全出血打印A4/信函的15段(8.5英寸)打印机应当是足够的。
在整个说明书中,目标已针对描述本发明的优选实施例,但不应将本发明局限于任何一个实施例或特征的特定集合。本领域的技术人员可从特定实施例实现各种变化,而它们仍将属于本发明的范围。

Claims (8)

1.一种用于页宽喷墨打印头的打印引擎控制器,该打印引擎控制器包括:
至少一个集成电路,其被配置以限定:
输入接口,其被配置以接收表示被压缩页的数据;
连续色调图像数据解码器,其被连接到该输入接口以解码从该输入接口接收的表示被压缩的连续色调图像的任何数据;
双值图像数据解码器,其被连接到该输入接口以解码从该输入接口接收的表示被压缩的双值图像数据的任何数据;
半色调器,其被连接到该输入接口,用于抖动连续色调图像;
合成器,其被连接到该输入接口,用于合成双值图像;以及
打印头接口,其被配置以接收表示抖动和合成图像的数据并且产生该喷墨打印头可读的数据。
2.如权利要求1所述的打印引擎控制器,其中所述输入接口包括高速串行接口。
3.如权利要求2所述的打印引擎控制器,其中所述输入接口进一步包括存储器接口,其被连接到存储器,所述串行接口被配置以将图像数据写入该存储器,并且该存储器接口被配置以将该存储器的图像数据写入所述连续色调图像解码器和所述双值图像数据解码器。
4.如前述权利要求中任何一项所述的打印引擎控制器,其中所述连续色调图像数据解码器是JPEG解码器。
5.如前述权利要求中任何一项所述的打印引擎控制器,其中所述双值图像数据解码器是传真解码器。
6.如前述权利要求中任何一项所述的打印引擎控制器,其中所述半色调器和所述合成器结合了电路,该电路被配置以对所述连续色调和双值图像数据执行缩放运算以根据所述喷墨打印头的特性在垂直和水平两个方向上缩放该图像数据。
7.一种打印机,其包括权利要求1到6中任何一项所述的打印引擎控制器。
8.一种处理用于页宽喷墨打印头打印的图像数据的方法,该方法包括如下步骤:
接收表示被压缩页的数据;
解码表示被压缩的连续色调图像的数据;
解码表示被压缩的双值图像的数据;
抖动所述连续色调图像;
合成所述双值图像;
将所述抖动和合成图像写到打印头接口以产生打印数据;以及
将所述打印数据写到所述页宽喷墨打印头。
CN 200510072033 2000-05-24 2000-05-24 打印引擎控制器、打印机和处理图像数据的方法 Expired - Fee Related CN1689814B (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
CN1689814A true CN1689814A (zh) 2005-11-02
CN1689814B CN1689814B (zh) 2011-07-27

Family

ID=35345697

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN1689814B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101522428B (zh) * 2006-10-09 2011-10-05 西尔弗布鲁克研究股份有限公司 具有开路致动器测试的打印头集成电路
CN102016914B (zh) * 2008-11-28 2013-09-25 株式会社御牧工程 图像形状改变装置、图像形状改变方法以及图像形状改变程序
CN108274897A (zh) * 2017-01-05 2018-07-13 北大方正集团有限公司 打印方法及装置
CN109388041A (zh) * 2017-08-10 2019-02-26 佳能株式会社 图像形成装置和消耗品的管理方法
CN109445724A (zh) * 2018-10-12 2019-03-08 森大(深圳)技术有限公司 打印内存管理方法、装置及设备
CN112394887A (zh) * 2019-08-17 2021-02-23 森大(深圳)技术有限公司 Onepass打印数据高效率处理方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101522428B (zh) * 2006-10-09 2011-10-05 西尔弗布鲁克研究股份有限公司 具有开路致动器测试的打印头集成电路
CN102016914B (zh) * 2008-11-28 2013-09-25 株式会社御牧工程 图像形状改变装置、图像形状改变方法以及图像形状改变程序
CN108274897A (zh) * 2017-01-05 2018-07-13 北大方正集团有限公司 打印方法及装置
CN108274897B (zh) * 2017-01-05 2019-11-08 北大方正集团有限公司 打印方法及装置
CN109388041A (zh) * 2017-08-10 2019-02-26 佳能株式会社 图像形成装置和消耗品的管理方法
CN109388041B (zh) * 2017-08-10 2022-01-18 佳能株式会社 图像形成装置和消耗品的管理方法
CN109445724A (zh) * 2018-10-12 2019-03-08 森大(深圳)技术有限公司 打印内存管理方法、装置及设备
CN109445724B (zh) * 2018-10-12 2022-03-01 森大(深圳)技术有限公司 打印内存管理方法、装置及设备
CN112394887A (zh) * 2019-08-17 2021-02-23 森大(深圳)技术有限公司 Onepass打印数据高效率处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN1689814B (zh) 2011-07-27

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
US20080186517A1 (en) Printer Controller For Inkjet Print Head
AU2004202407B2 (en) Print engine controller with dithering and compositing circuitry
CN1689814A (zh) 用于页宽喷墨打印头的打印引擎控制器
AU2000247250A1 (en) Print engine/controller with color mask
JP4546697B2 (ja) インクドロッププリンタ
US7957011B2 (en) Printer printing composited print image planes
US7092112B2 (en) Ink drop printer with print engine controller
KR100702464B1 (ko) 프린트 엔진/컨트롤러 및 그것을 내장하는 프린트 헤드인터페이스 칩
KR100702467B1 (ko) 컬러 마스크를 갖는 프린트 엔진/컨트롤러
KR100714810B1 (ko) 다중으로 동작하는 프린트 엔진/컨트롤러 및 다중 프린트엔진/컨트롤러에 의해 구동되는 프린트헤드

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: 20110727

Termination date: 20170524

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