包括打印头盖帽机构的打印机.pdf

上传人:1** 文档编号:545637 上传时间:2018-02-21 格式:PDF 页数:129 大小:5.95MB
返回 下载 相关 举报
摘要
申请专利号:

CN02821494.3

申请日:

2002.08.06

公开号:

CN1578733A

公开日:

2005.02.09

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回|||实质审查的生效|||公开

IPC分类号:

B41J2/165

主分类号:

B41J2/165

申请人:

西尔弗布鲁克研究有限公司

发明人:

卡·西尔弗布鲁克

地址:

澳大利亚新南威尔士州巴尔曼地区达林大街393号

优先权:

2001.08.31 US 09/942,603

专利代理机构:

北京集佳知识产权代理有限公司

代理人:

王学强

PDF下载: PDF下载
内容摘要

本发明涉及一种打印头盖帽机构(62),所述机构用于在打印头不使用时防止墨水从所述打印头中溢出。本发明具有实用性,比如,可以用于使用按需喷墨打印头(63)的彩色打印机中。所述机构(62)包括一个盖帽(64)所述盖帽(64)包括一个用于密封打印头表面(63)的橡胶密封垫(65),和在喷嘴清洁过程中接住从所述打印头(63)中流出墨滴的一块海绵(66)。所述机构(62)还包括一个促动结构,可以选择性地使所述盖帽在盖住打印头(63)的啮合位置和离开所述打印头(63)的非啮合位置之间移动。

权利要求书

1: 一种打印机,包括: 一个沿第一和第二两个相反方向旋转的圆形驱动轮; 一个打印头; 一个用于防止墨水从所述打印头蒸发的盖帽机构,所述盖帽机构包 括: 一个打印头盖帽; 一个附属于所述盖帽的促动结构,所述促动结构选择性地使所 述盖帽在啮合于打印头的位置和离开所述打印头的非啮合位置之间移 动,所述促动装置包括一个滑动元件,所述滑动元件有一根确定的轴线, 所述促动结构绕所述轴线枢转,所述滑动元件和所述驱动轮的表面啮合, 并至少在所述驱动轮沿所述的第一或第二方向旋转的部分过程中夹紧所 述表面,使得所述盖帽绕着所述轴线在所述啮合打印头的位置和所述不 啮合位置之间枢转,所述驱动轮的进一步旋转导致所述滑动元件沿所述 表面滑动。
2: 如权利要求1所述的打印机,其特征在于:所述盖帽包括一个盖 板,所述盖板包括一个橡胶密封垫和一块海绵。
3: 如权利要求2所述的打印机,其特征在于:所述橡胶密封垫的形 状和尺寸设置使得当所述盖帽位于所述啮合位置时,所述橡胶密封垫可 以密封所述打印头。
4: 如权利要求2所述的打印机,其特征在于:所述海绵的尺寸和位 置设置使得当所述盖帽位于所述啮合位置时,所述海绵可以吸收从所述 打印头流出的任何墨滴。
5: 如权利要求1所述的打印机,其特征在于:所述盖帽的非啮合位 置偏离打印机的纸张通道。
6: 如权利要求1所述的打印机,其特征在于:所述盖帽侧向偏离所 述轴,因而所述滑动元件绕着所述轴线的枢转运动使得所述盖帽在所述 的啮合和非啮合位置之间移动。
7: 如权利要求1所述的打印机,其特征在于:所述驱动轮与一个纸 张传送电机连接,从而在打印时所述滑动元件被驱动以使所述盖帽被移 动到所述的非啮合位置。
8: 如权利要求7所述的打印机,其特征在于:所述驱动轮与所述纸 张传送电机连接,从而在打印停止时所述滑动元件被驱动以使所述盖帽 移动到所述的啮合位置。
9: 如权利要求7所述的打印机,其特征在于:使用一个回弹元件来 帮助把所述盖帽保持在所述的啮合位置。
10: 如权利要求9所述的打印机,其特征在于:所述打印机包括一 杆,所述滑动元件固定在所述杆上,其中所述回弹元件被包括在所述盖 帽与所述杆之间的连接部分中。
11: 如权利要求10所述的打印机,其特征在于:所述滑动元件位于 所述杆的一端。
12: 如权利要求10所述的打印机,其特征在于:所述连接部分是一 系列的柔性臂。

说明书


包括打印头盖帽机构的打印机

    【发明领域】

    本发明涉及一种用于在打印头不使用时防止墨水蒸发的打印头盖帽机构。本发明具有实用性,比如,用于使用按需喷墨(drop-on-demand)喷墨打印头的彩色打印机中。

    背景技术

    在不使用时,按需喷墨(drop-on-demand)的打印头通常充满墨水,所以必须将其盖住,以防止墨水通过喷嘴蒸发。墨水蒸发会导致墨水成分逐渐沉积,最终影响喷嘴的运行。

    【发明内容】

    本发明是一种用于防止墨水从打印头中蒸发的打印头盖帽机构。所述机构包括一个打印头盖帽和一个附属于所述盖帽的促动结构,所述促动结构选择性地在盖住打印头的啮合位置和离开打印头的非啮合位置之间移动所述盖帽。所述促动装置包括一个滑动元件,所述滑动元件和安装有打印头的打印机中的一个驱动轮啮合,所述啮合至少经过所述驱动轮旋转的部分过程,致使所述驱动轮沿第一方向的旋转使得所述盖帽从所述的啮合位置移动至非啮合位置,所述驱动轮沿第二方向的旋转使得所述盖帽从所述的非啮合位置移动至啮合位置。

    在使用中,所述机构通常安装在打印机中靠近打印头的位置。所述盖帽可以包括一个或多个盖帽模制件,以确保打印头所有的喷嘴都能被盖住。所述盖帽模制件可以由一个带有一个橡胶密封垫和一块海绵的盖板组成。所述橡胶密封垫(或密封垫)的形状和尺寸设置使得其可以在所述机构位于啮合位置时,密封打印头的表面。与此相似,海绵的形状和位置的设置,使其可以在所述机构啮合时吸收任何墨滴。所述促动结构和所述机构协同运转,在适当的时候使盖模制件在啮合位置和非啮合位置之间移动。

    当打印头不使用时,所述促动结构运转,把所述盖帽模制件移动至啮合位置,使其压在打印头的表面,此时橡胶密封垫贴紧打印头的表面,并把打印头的四周良好地密封。海绵用于吸收在打印头清洗过程中从打印头喷嘴喷出的墨滴。

    在打印头被使用时,所述促动装置运转,把所述盖帽模制件从打印头组件移开,使其离开所述打印机的纸张通道。

    所述机构可以方便地在啮合位置和非啮合位置之间旋转操作。为了实现此点,所述盖帽模制件可以沿着一个可旋转的杆的长度方向连接,但侧向离开(或偏离)此杆一定的距离。在此情况下,所述杆绕着其轴旋转会导致所述机构在啮合位置和非啮合位置之间移动。

    所述滑动元件可以安装在所述杆的端部,以和打印机中的驱动轮啮合。所述驱动轮可以和打印机的纸张传送电机协同运转,在打印时,沿非盖紧方向转动所述杆。一旦滑动元件旋转到非盖住滑动点,所述滑动元件和盖帽模制件停止旋转。打印完成后,所述驱动轮沿盖紧方向旋转,一旦滑动元件旋转到盖住滑动点,滑动元件和盖帽模制件停止旋转,使盖板保持在压住打印头组件表面的位置上。

    可以用一个回弹元件辅助使所述盖板保持在压住打印头组件表面的位置上。所述有回弹力的元件可以方便地包括在盖板和杆之间的连接中。这不需要是一个连续的连接,并且可以一系列柔性的臂来很好地实现,既形成一个适当的连接也作为一个适当的回弹元件。实际上,在一些实施例中,采用塑料制造所述盖板和所述杆,一个连续的连接部件难以具有足够的柔性。

    另一方面,本发明是包括一个打印头和打印头盖帽机构的一种打印头组件。

    此外,本发明是包括所述打印头盖帽机构的一种打印机,其中,打印机中纸张传送系统的驱动轮驱动所述机构的促动结构。

    【附图说明】

    图1是一个表格,说明在打印机中采用双缓冲器可以得到的稳定打印速度。

    图2是显示从打印请求到打印后页面的过程的概念数据流。

    图3是iprint打印机在关闭状态下的示意图。

    图4是iprint打印机在打开状态下的示意图。

    图5是显示打印机纸张通道的部分拆除的视图。

    图6是显示喷墨打印头墨盒和打印头盖帽机构的部分拆除的视图。

    图7是图6中所示喷墨打印头墨盒和打印头盖帽机构的截面图。

    图8是打印头控制器的示意图。

    图9是一幅简单的黑白图象的编码示意图。

    图10是表明一个小群中10个打印喷嘴的启动顺序的示意图。

    图11是表明同一小群中10个打印喷嘴的载入顺序的示意图。

    图12是一个色度小群的示意图。

    图13是带有5个色度小群的一个群组的示意图。

    图14是带有2个群组的一个相组的示意图。

    图15是显示片段、启动组、相组、群组和色度小群之间关系地示意图。

    图16是AEnable和BEnable线在一个典型的打印循环中的相位图。

    图17是打印机控制器结构图。

    图18是概括页面扩展和打印数据流的流程图。

    图19是EDRL扩展器单元的方框图。

    图20是EDRL数据流解码器的方框图。

    图21是行程扫描解码器的方框图。

    图22是行程扫描编码器的方框图。

    图23是JEPG解码器的方框图。

    图24是浓淡处理器/复合器单元的方框图。

    图25是显示页面宽度与页边距之间关系的一系列页面线。

    图26是多阀值抖动的方框图。

    图27是三阀值单元逻辑的方框图。

    图28是打印头接口内部结构的方框图。

    图29是在打印行N和行N+1时双缓冲的总体示意图。

    图30是LLFU结构的方框图。

    图31是缓冲器的概念结构图。

    图32是缓冲器的逻辑结构图。

    图33是生成AEnable和BEnable脉冲宽度的方框图。

    图34是Dot Count的逻辑图。

    图35是扬声器的方框图。

    图36是表示双层页面缓冲器的图表。

    图37是说明黑色对象复合到一个白色图象的过程的系列方框图。

    图38是说明连续色调对象复合到一个白色图象的过程的系列框图。

    图39是说明黑色对象复合到一个包含一个连续色调对象的图象中过程的系列框图。

    图40是说明一个不透明连续色调对象复合到一个包含一个黑色对象的图象中过程的系列框图。

    图41是说明一个透明连续色调对象复合到一个包含一个黑色对象的图象中过程的系列框图。

    图42是带打印机驱动程序组件的Windows 9x/NT打印系统方框图。

    【具体实施方式】

    1绪论

    将参考一台把照片质量复现和杂志质量复现结合在一起的高性能彩色打印机对本发明进行描述。所述打印机使用一种8英寸纸宽按需喷墨式微电子机械喷墨(Memjet)打印头,所述打印头的打印分辨率为1600个点/英寸(dpi)、双值CMYK(青色、洋红、黄色、黑色)。所述打印机每分钟可以打印30页彩色A4或信纸大小的页面,被并且打算用作入门级水平的桌面打印机。所述打印机命名为iprint,在下文中,将使用此名称指代。

    1.1操作概述

    iprint直接使用双值(bi-level)黑色再现黑色文本和图形,使用浓淡处理后的双值(bi-level)CMYK再现连续色调(continuous-tone)图象和图形。为了实际应用,iprint支持800dpi的黑色分辨率和267象素/英寸(ppi)的连续色调分辨率。

    在使用中,通过相对低速(1.5Mbytes/s)的USB连接器[14],iprint附属于一个工作站或个人电脑。iprint依赖所述个人电脑把每页渲染为连续色调象素和黑点。所述个人电脑把每页压缩到不足3MB,使其可以在少于两秒的时间内传送到所述打印机。iprint把每页压缩后的页面解压缩,并将其以所述微电子机械喷墨(“Memjet”)打印头的速度一行一行地打印出来。iprint具有足够的缓冲存储区,以容纳两页压缩后的页面,使得其可以在接收文本的同时进行打印,但是不需要为即使一页没有压缩的页面(119MB)准备足够的缓冲存储区。

    1.2页宽

    标准的微电子机械喷墨喷嘴设计带有一个半英寸的单元,所以可以根据页宽进行细小的调整——页宽是半英寸的若干倍。采用定制的喷嘴设计,能够得到任意的页宽,在市场中,这调整了这种特殊要求。最初的微电子机械喷墨构造单元是广泛使用的充分利用了6英寸硅晶片的4英寸打印头。因而,iprint设计采用一个由两片4英寸打印头连接构成的8英寸打印头。采用更宽的打印头以实现可以打满A4/信纸页面,只对iprint设计的少数几个方面有影响——具体的说,对机械设计和打印头接口的逻辑电路有影响。

    2基于微电子机械的打印

    一个微电子机械打印头生成1600dpi的双值(bi-level)CMYK。在低浸润性的纸张上,每个喷出的墨滴都形成一个几乎完整圆形直径为22.5微米的点。在孤立状态下,点容易生成并允许散布的点抖动(dithering)扩展到最大。因为所述微电子机械打印头是页面宽度的并且以恒定的纸张速度运转,所以能够以精确对齐的方式形成四个彩色平面,实现真正的点对点(dot-on-dot)打印。因为由此在彩色平面之间没有空间的相互作用,因此对每个彩色平面采用同样的抖动矩阵。

    一个页面可能包括图象、图画和文本。连续色调(continuous-tone)图象和图画可以使用随机分布的点抖动(dither)再现。与集群点(或者经调幅的)抖动(dither)不同,散布点(或者经调频的)抖动(dither)产生几乎达到点分辨率极限的高空间频率(也就是图象细节),同时对全彩色深度产生更低的空间频率。随机的抖动显示阵经过仔细设计,在平铺显示整个图象时不用考虑令人讨厌的低频点阵。其大小通常超过支持多种密度级所要求的最小尺寸(也就是对应于257个密度级的16×16×8比特)。Iprint使用一个16×16×3×8比特大小的抖动容量(volume)。此抖动容量(volume)在设计抖动过程中提供极大的自由度,使点可以在浓度范围内数次改变状态(而不是象在传统的抖动显示阵中一样只能改变一次)。

    人类视觉的对比敏感性在大约3圈/度的空间频率达到峰值,然后指数下降,以100为因数下降,并且在每度40圈时变得难以测量[2]。在通常的视距400mm和250mm之间,这大约相当于打印纸上150一250圈/英寸,或者根据尼奎斯特的理论,相当于300-500个取样/英寸。因为彩色敏感度低于灰色敏感度,所以超过400ppi的连续色调分辨率的应用是有限的,并且实际上,在抖动的过程中会对色差有轻微的影响。

    黑色文本和图画直接采用双值黑色点生成,因此不会在打印前产生反混叠(即低通过滤)。因此对文本以高于上述感知度限制的精度进行超级采样,以在空间合成时产生平滑边缘。文本的分辨率达到1200dpi,可提高文本的可感知到的清晰度(当然,假定采用低沁润的纸张)。

    3.1约束条件

    USB(Universal Serial Bus)是新型电脑上的标准低速外设连接[4]。推荐使用标准高速外设连接IEEE 1394,但在PC99规格中,其还是非强制的,因而在iprint推出的初期,还不会被广泛使用。所以,iprint通过USB与个人电脑或工作站相连,USB连接的速度对iprint系统的机构有很大的影响。在打印速度保持在30页/分钟时,每秒1.5MB的USB将每页页面的平均大小限制在3MB。在一页打印的过程中,因为Memjet打印机的中断产生可见的不连续,所以打印机应该在打印开始前,得到整页的数据,以减少可能的缓冲器空栈。既然打印机只能带有有限的缓冲内存,也就是两页或6MB,所以3MB/页的限制必须被看作是绝对的。

    图1说明了持续的打印速度可以通过在打印机中采用双缓冲区实现。第一阶段,在PC中渲染需要打印的第一页,这大约需要两秒钟时间。在第二个阶段,下一页被渲染,第一页被传送给打印机,这也需要大约两秒钟时间。第三个阶段,第一页被打印,第二页被传送给打印机,并渲染第三页,这也需要大约两秒钟。其结果是,打印第一页需要六秒钟,其后,每两秒钟可以打印一页。

    其他的桌面连接选项提供与USB类似的带宽,因而也对体系结构产生类似的限制。比如2MB/s并行端口、大约1MB/s的10Base-T Ethernet。

    3.2页面渲染(rendering)与压缩

    页面渲染(或光栅处理)可以用各种方式在PC和打印机之间分开。有些打印机支持全页宽描述语言(PDL),比如Postscript,并且包括相应的复杂渲染器。其他的打印机仅仅为文本渲染提供特殊的支持,以实现高文本分辨率。这通常包括支持内置式或可下载的字体。在每种情况下,内置式渲染器的使用都可减少PC上的渲染负担,并可减少从PC传送到打印机的数据。但是,这是有代价的。这些打印机必须更加复杂,并且通常不能为PC的程序结构、渲染器和打印页的图形系统提供足够的支持。他们通常不能充分利用当前电脑的高性能,并且不能适应PC性能的指数增长。

    iprint依靠PC 4渲染页面,也就是把连续色调图象和图画渲染成象素,把黑色文本和图象渲染成点。iprint 5仅仅包括一个简单的渲染引擎,抖动处理连续色调数据,并且把处理后的结果与任一前景双值黑色文本与图画合并。这种策略保持了打印机的简单,并使之独立于任何页面描述语言或图画系统。并全面利用当前个人电脑的高性能。此种策略的不足之处在于,可能有大量的数据必须从PC传送至打印机。所以我们采用压缩技术把需传送的数据减少到3MB/页,以保持30页/分钟的打印速度。

    图2是一个流程图,说明从申请6到打印后的页面7的概念性数据流。

    一页8”×11.7”A4双值1600dpi CMYK页面的大小为114.3MB,一页8”×11.7”A4连续色调300ppi CMYK页面的大小为32.1M。

    在打印机驱动程序8中,我们使用JEPG压缩方式9压缩连续色调数据。虽然IEPG具有固有的损耗性,但是在10∶1或更小一些的压缩比的情况下所造成的压缩比通常可以忽略不计。为了得到一个整数倍的连续色调至双值双值的压缩率,并且提供一定的压缩余地,我们选用267ppi的连续色调分辨率。这使得一页连续色调CMYK页面的数据容量为25.5MB,相应的压缩率定为8.5∶1,以符合3MB/页的限制条件,一个连续色调至双值的压缩率在每个方向上都为1∶6。

    一个以打印分辨率(1600dpi)渲染的黑色文本(和/或图画)全页面,使得一个双值图象的容量为28.6MB。既然以1600dpi渲染文本在PC上产生很重的负担而用处不大,我们选用完全可以接受的800dpi对文本进行渲染。这使得一个双值图象的数据容量为7.1MB,要求一个无失真的小于2.5∶1的压缩率,以符合3MB/页的限制条件。我们采用一个基于Group 4 Facsimile的二维压缩方案实现此点,都用标号10概括指代。

    只要页面的图象和文本区域没有重叠,此两者的任意组合都符合3MB/页的限制条件。如果文本位于背景图象之上,在最坏的情况下,压缩后页面的数据容量达到6MB(取决于实际的文本压缩比率)。这符合打印机页缓冲器大小的限制,但是不能在打印机中实现双缓冲器,因此打印机的打印速度减少三分之二,也就是说减少至10页/分钟。

    3.3页面扩展与打印

    如同前文所描述的,PC把连续色调图象与图画渲染至象素水平,把黑色文本和图画渲染至字点水平。采用不同的方法对其进行压缩11并一起传送到打印机。

    所述打印机包括两个3MB的页面缓冲器,一个缓冲器12用于存储正从PC接收的页面,另一个缓冲器13用于存储正在打印的页面。打印机在打印时,扩展正在打印的压缩页面。所述扩展包括解压缩267ppi的连续色调CMKY图象数据的过程14、把生成的连续色调象素浓淡处理为1600dpi的双值CMKY点的过程15、解压缩800dpi的双值黑色文本数据的过程16和把生成的双值黑色文本字点叠加在相应的双值CMKY图象字点的过程17。

    从打印请求到已打印页面的所述概念数据流在图2中说明。

    4打印机硬件

    因为页宽Memjet打印头具有简单性的特点,iprint的结构非常紧凑。在关闭的时候,其尺寸仅为270mm(宽)×85mm(深)×77mm(高)。图3是iprint关闭时的视图。

    如图4所示,盖22可以打开作为纸张托盘的一部分。第二部分23与盖铰接,打开后可以延伸纸张托盘。出纸托盘24可以从打印机的前部滑动伸出。

    打开盖22时,显露出前面板25。所述前面板25包括用户界面——电源键26、电源指示灯LED 27、进纸按键28、缺纸指示灯LED 29和低墨量指示灯LED 30。

    4.1纸张通道

    iprint使用一个标准的纸张传输机构。在图5中描述了所述纸张通道50,其中一个步进电机51驱动进纸滚轮52和纸张传送。正向转动时,步进电机驱动位于纸张通道开始和结束部位的纸张驱动滚轮53和棘轮54。当反向转动时,所述步进电机驱动进纸滚轮52,从进纸托架抓住最上面的纸张,并将所述纸张以最短的路径传送至纸张驱动滚轮53,在那里机械介质传感器55检测纸张。

    纸张对中滑道56,确保纸张对中。这确保对中的介质传感器可以探测到纸张,也可以在打印时确保比打印头宽的介质两边的页边距平衡。

    4.1.1Memjet打印头

    图5中还显示了可更换的Memjet打印头盒60。这是四种在iprint产品中打印头与墨盒可能的配置方式中的一种。

    ·永久的打印头,可替换的墨盒(如图中所示)

    ·可分开更换的打印头与墨盒

    ·可充墨的合为一体的打印头与墨盒

    ·一次性的的合为一体的打印头与墨盒

    如图6的拆除部分元件视图和图7的截面图所示,在打印头盒60下面是一个打印头组件61和一个打印头盖帽机构62。在不使用时,Memjet打印头63中充有墨水,所以必须盖住打印头以防止墨水通过喷嘴蒸发。墨水蒸发会导致墨水成分逐渐沉积而影响喷嘴的运转。

    iprint包括一个机械的页宽盖帽机构62。所述页宽盖帽机构62包括一个枢轴旋转的带有一个橡胶密封垫65与海绵66的盖帽模制件64。当打印头不使用时,所述盖帽模制件64由弹簧保持在盖帽打印头组件61的位置上,所述橡胶密封垫65贴在打印头组件61的表面并在打印头63的四周形成良好的密封。所述海绵66用于吸收在打印头清洗过程中喷出的墨滴。当打印头在使用中时,盖帽模制件64保持在离开打印头组件61的位置,并离开纸张通道。

    所述盖帽模制件64通过一系列的柔性的臂68偏离一个杆69。所述盖帽模制件64和臂68绕所述杆69的轴线与所述杆69枢轴连接。一个滑动元件70安装在所述杆69的一端。所述滑动元件70附着在所述杆69上,以致于如果滑动元件70绕所述杆69的轴枢转,则所述杆69也与滑动元件70枢轴连接。所述滑动元件70和一个驱动轮71接触。打印时,所述驱动轮71与纸张传送电机相连,被驱动着向不盖住的方向72旋转。所述驱动轮71的表面和滑动元件70之间的摩擦接触使得所述滑动元件70和杆69绕着杆69的纵轴旋转,摆动所述盖帽模制件64,使之离开打印头。一旦所述滑动元件旋转至不盖住滑动点73,所述滑动元件70相对驱动轮71的表面滑动,所述滑动元件和盖帽模制件64停止旋转。当打印完成后,驱动轮反向旋转,向盖住的方向74旋转。一旦所述滑动元件70旋转至盖住滑动点75,所述滑动元件和驱动轮71之间开始相对滑动,所述滑动元件70和盖帽模制件64停止旋转,盖住弹簧使盖板保持在盖帽打印头组件表面的适当位置上。在所述滑动元件70在盖住和非盖住点之间枢轴旋转时,滑动元件70和驱动轮71之间的静摩擦足以使滑动元件70绕着轴69的纵轴旋转,从而使盖帽模制件64以上述的方式运动。柔性的臂68辅助使盖板67贴在打印头组件61的表面上。

    4.2打印机控制器

    图8描述了打印机控制器80。所述打印机控制器80包括一块小印刷电路板81,所述印刷电路板81只带有少数几个元件:一片64Mbit的RDRAM 82、一片iprint中央处理器芯片83、一个用于错误信息提醒的喇叭84、一片QA芯片85、一个外部3V DC电源连接器86、一个外部USB连接器87、一个连接送纸步进电机88的连接器和柔性印刷电路板89,所述柔性印刷电路板89连接介质传感器55、指示灯LED 7、9和10、按键6和8以及与打印头63的连接90。

    4.3墨盒与墨水路径

    有两种墨盒:一种大的,一种小的。两种墨盒都可与位于iprint后部的墨盒插槽匹配。

     5打印机控制协议

    本部分描述主机和iprint之间的打印机控制协议。既包括控制和状态处理也包括实际的页面说明。

    5.1控制和状态

    USB设备定义为打印机[15]提供单向和双向的IEEE 1284并行接口[3]的仿真。在其最基本的水平上,使得主机可以判定打印机的性能(通过GET_DEVICE_ID),获得打印机的状态(通过GET_PORT_STATUS),并使打印机复位(通过SOFT_RESET)。

    Centronics/IEEE 1284打印机的状态字段如下表1所示。

                    表1 Centronics/IEEE 1284打印机状态.字段    说明Select打印机被选定,可以进行数据传输Paper Empty打印机中没有纸Fault打印机中存在故障(包括没有纸和没有被选定的状态)


    个人计算机打印子系统通常提供一定程度上的IEEE 1284支持。在打印机中与IEEE 1284的兼容简化了相应的打印机驱动程序的开发。为打印机提供的USB设备定义也寻求相同的兼容性。

    Iprint不支持超出USB设备定义之外的控制协议。注意,如果定义了更高级别的控制协议,墨水用尽之类的情况也可以报告给用户(而不是仅仅通过打印机的墨尽LED指示灯)

    iprint接收作为原始传输的页面描述,也就是,没有压缩在任何更高级的控制协议中。

    5.2页面描述

    iprint以完全的点分辨率(1600dpi)再现黑色,但是使用浓淡处理以稍低一些的分辨率重新生成连续色调彩色。页面描述分成一个黑色层与一个连续色调层。所述黑色层被设定为复合在连续色调层的上面。

    所述黑色层由包括每个象素的1位不透明度的位图组成。所述黑色层的分辨率是打印机点分辨率的整因子。支持的最高分辨率是1600dpi,也就是说打印机的全字点分辨率。

    所述连续色调层由包括每个象素的32位CMYK彩色的位图组成。此连续色调图象的分辨率是打印机点分辨率的整因子。支持的最高分辨率是267ppi,也就是打印机的全点分辨率的六分之一。

    连续色调分辨率也通常是黑色分辨率的主要参数,以简化打印机驱动程序中的计算,但是这不是必须的。

    为了通过连接到打印机的低速USB高效地传输,所述黑色层和连续色调层都是压缩格式的。

    5.2.1页面结构

    Iprint的可打印页面区域由打印头的宽度、纸张通道的特性和当前打印介质的尺寸决定。

    可打印页面区域的最大宽度为8英寸,如果纸面的实际宽度大于8英寸,则在左右两边留出相等的页边距。如果实际的纸面宽度小于8英寸,则可打印页面区域相应地减小。可打印页面区域的最大长度没有限定。就是实际的页面长度减去由纸张通道的特性决定的页面上边距和下边距。

    目标页面尺寸由可打印页面区域限定,减去在页面说明中指明的(目标)页面上边距和下边距。

    在理论上,iprint并不要求一定有页面上边距和下边距,比如,允许在竖直方向满幅打印。但实际上,iprint并没有设计成一个满幅A4/信纸打印机,因为其使用一个8英寸的打印头并人为设定有页面上边距和下边距,以避免必须设置一个足以吸收常常发生的超出边界的打印所产生墨水的大海绵。

    5.2.2页面描述格式

    iprint要求的页面描述格式见表2                        表2页面描述格式字段  格式说明signature 16位整数页面描述格式签名version 16位整数页面描述格式版本号structure size 16位整数页面描述固定大小部分的大小target resolution 16位整数目标页面的分辨率,iprint通常为


     (dpi)1600dpitarget page width 16位整数目标页面宽度,点数target pageheight 16位整数目标页面高度,点数target left margin 16位整数目标左边距,点数target top margin 16位整数目标上页边距,点数black scale factor 16位整数从黑色分辨率到目标分辨率的放大倍数(必须为2或更大)black page width 16位整数黑色页面宽度,黑色象素数black pageheight 16位整数黑色页面高度,黑色象素数black page datasize 32位整数黑色页面数据的容量,字节数。continuous-tonescale factor 16位整数连续色调分辨率到目标分辨率的放大倍数(必须是6或更大)。continuous-tonepage width 16位整数连续色调页面的宽度,连续色调象素数。continuous-tonepage height 16位整数连续色调页面的高度,连续色调象素数。continuous-tonepage data size 32位整数连续色调页面数据的容量,字节数。black page data EDRL字节 流压缩后的双值黑色页面数据。continuous-tonepage data JPEG字节 流压缩后的连续色调CMYK页面数据


    除被根据可打印页面区域隐含设定之外,每个页面描述都是完整的与自我包含的。从页面描述到页面描述指代什么,没有另外的数据被传送到打印机。

    页面描述包括签名与版本号使得打印机可以识别页面描述的格式。如果签名和/或版本号欠缺或与打印机不匹配,打印机将拒绝此页面。

    页面描述设定了目标页的分辨率与尺寸。如有必要,黑色和连续色调层被剪辑到目标页中。这主要发生在黑色或连续色调的比例因子与目标页面的宽或高的因子不同的场合。

    目标左页边距和上页边距在可打印区域中设定了目标页的位置。

    黑色层参数设定了黑色层的象素大小、其放大至目标分辨率的整数比例因子和压缩后页面数据的大小。大小不定的黑色页面数据位于页面描述的固定大小部分之后。

    彩色层参数设定了彩色层的象素大小、其放大至目标分辨率的整数比例因子和压缩后页面数据的大小。大小不定的连续色调页面数据位于大小不定的黑色页面数据之后。

    页面描述中的所有整数以顺位字节(big-endian)排列顺序存储。

    可变大小的黑色页面数据和可变大小的连续色调页面数据对准8字节的边界。所需填充数据的大小包含在页面描述结构的固定大小部分和可变大小的黑色数据中。

    根据打印机中页面缓冲区的设置,整个页面描述的目标容量小于3MB,最大容量为6MB。

    接下来的部分描述压缩后的黑色层和压缩后的连续色调层的格式。

    5.2.3双值黑色层压缩

    5.2.3.1Group 3和4传真压缩

    Group 3传真压缩算法[1]为在低速与嘈杂的电话线中传输而无失真地压缩双值数据。双值数据代表在一个白色背景下扫描的黑色文本和图画,所述算法可以调整以用于此种图象(有时不需调整,比如,浓淡处理后的双值图象)。所述1D Group 3算法对每一扫描行进行行程长度编码,然后对得到的行程长度进行哈夫曼(Huffman)编码。位于0至63之间的行程长度采用终结码编码,位于64至2623之间的行程长度,采用组合码进行编码,每个代表多个64,并后接终结码。超过2623的行程长度采用多个组合码加一个终结码的方式进行编码。哈夫曼(Huffman)表是固定的,但是,针对黑色和白色行程分别调整(除非组合码超过1728,这种情况是很平常的)。在可能的情况下,2D Group 3算法把每一扫描行编码为一系列对应于前一扫描行的短边界增量(0,±1,±2,±3)。所述的增量标记是熵编码(使得零增量标记的长度只有1个位长)。对不能采用增量编码的2D编码行中的边界,进行行程长度编码,采用一个前缀识别。1D和2D编码行采用不同的标记。1D编码行不论实际上是否需要,都采用固定的间隔生成,以确保解码器可以以最小限度的图象退化从行变化中解码原数据。2D Group 3的压缩比可达到达到6∶1[13]。

    Group 4传真算法[1]无失真地压缩双值数据用于无错误的通讯线传输(也就是说,所述通讯线是真正无错的,或可以在低级协议层上进行错误校正)。Group 4算法[1]是基于2D Group 3算法的,主要的修正在于既然传输被假定为是无错的,1D编码线不再产生帮助校正错误的定长的间隔。Group 4对于CCITT测试图象的压缩比在20∶1至60∶1之间。

    Group 4压缩算法的设计目标和其性能使其成为压缩双值黑色层的压缩算法。然而,其哈夫曼(Huffman)表被调整用于较低的扫描分辨率(100-400dpi),其编码的行程长度超过2623,十分笨拙。在800dpi的情况下,最大的行程长度达到6400。虽然,一个Group 4编码器内核可以用于打印机控制芯片(第7部分),但其不能处理超过在400dpi传真中通常遇到的行程长度的行程长度,所以需要修改。

    既然,Group 4的主要优点在于增量编码,一个更简单的基于增量编码的算法可能符合我们的要求。下面对此方法进行详细的描述。

    5.2.3.2双值边界增量和行程长度(EDRL)压缩格式

    边界增量和行程长度(EDRL)压缩格式是松散地基于Group 4压缩格式和其前的压缩格式的[1][17]。

    EDRL使用三种标记,适当地进行熵编码。所述三种标记是createedg、kill edge和edge delta。每一行参照其前一行进行编码。第一行的前一行被定义为一个白色行。每一行都设定为从白色开始。如果某行实际上以黑色开始(此种情形较少),那么必须以偏移量为零定义一个黑色的边界。每一行必须在其左端设定一个边界,也就是在页宽开始处。

    如果在采用相同的对比(白-黑或黑-白)的最大增量范围内有一个边界,边界可以参考前一行的边界进行编码。这使用一个edge delta代码字。短一些且更可能发生的增量具有较短的编码。为匹配典型的字形边界的增量分布选定最大的增量范围(±2)。这种分布基本上是独立于字体的大小的。一个典型的例子见表3。表3 10号Times字体在800dpi下的边界增量分布情况    |增量|    可能性    0    65%    1    23%    2    7%    ≥3    5%


    边界也可以采用从同一行中的前一个边界前进的步长进行编码。这为短的(7位)或长的(13位)行程长度使用一个“create edge”代码。为了简化,也不同于Group 4,行程长度不是熵编码。为了使边界增量隐含前一行的边界,前一行中每个不使用的边界,在本行中都被删除(“killed”)。这使用“kill edge”代码字。“end of page”代码字向解码器指明页面的结尾。

    注意,7位和13位的行程长度是为支持800dpi的A4/信纸页面而特别选择的。也可以支持更长的行程长度,而不会对压缩过程产生大的影响。比如,为了支持1600dpi的压缩,相应的行程长度至少应为8位和14位。为了支持40英寸宽的1600dpi页面,通常应选择8位和16位。

    表4列出全套代码字。注意,其中没有“end of line”代码字。解码器使用页宽来探测行的末端。代码字的长度根据代码出现的可能性确定。

                               TABLE 4 EDRL代码字代码 编码后缀说明Δ0 1-不移动相应的边界Δ+1 010-移动相应的边界+1Δ-1 011-移动相应的边界-1Δ+2 00010-移动相应的边界+2Δ-2 00011-移动相应的边界-2kill edge 0010-取消相应的边界create near edge 00117-bit RL生成短行程长度(RL)边界create far edge 0000113-bit RL生成长行程长度(RL)边界end-of-page(EOP) 000001-页结束标记


    图9显示了对一个简单的黑白图象90进行编码的例子。图象如象素92组成的行91。第一行91假定是白色的,因而被编码为Δ0。注意,通常对跟在一全白色的行后的另一个全白色行,使用一位(Δ0)进行编码,对跟在一全黑色的行后的另一个全黑色行,使用两位(Δ0,Δ0)进行编码。当在一行中出现了一个边界时,比如第四行93,使用“create”代码字定义边界。在接下来的行94中,使用“Δ-1”和“Δ+1”代码字来移动边界。在接下来的行95中,更便捷的是,创设一个新边界并删除旧的边界,而不是移动旧的边界。

    EDRL编码的例子

    注意,前面描述的压缩格式,本质上并不是压缩算法。对同一幅图象可以有多种不同的编码,有些更加紧凑。比如,纯粹的行程长度编码就是符合压缩格式的。压缩算法的目标在于为一个给定的图象发现一个好的编码——如果不是最好的。

    下面是用于根据前一行的编码对一行进行EDRL编码的一个简单算法。

     currEdge+=currRuncurrColor=!currColorbUpdateCurrEdge=false//在可能的情况下,输出增量,比如当//边界检测匹配,并且增量足够小时if(prevColor=currColor)delta=currEdge-prevEdgeif(abs(delta)<=MAX_DELTA)PutCode(s,EDGE_DELTA0+delta)codedEdge=currEdgebUpdatePrevEdge=truebUpdateCurrEdge=truecontinue//取消前一行中不匹配的边界if(prevEdge<=currEdge)PutCode(s,KILL EDGE)bUpdatePrevEdge=true//在当前行中生成不匹配的边界if(currEdge<=prevEdge)PutCode(s,CREATE_EDGE)if(currRun<128)PutCode(s,CREATE_NEAR_EDGE)PutBits(currRun,SHORT_RUN_PRECISION)elsePutCode(s,CREATE_FAR_EDGE)PutBits(currRun,LONG_RUN_PRECISION)codedEdge=currEdgebUpdateCurrEdge=true]]>

      注意,此算法没有考虑行之间实际的边界连续性,事实上可能在两行之间匹配“错误”的边界。压缩格式对此并不在意,既然可以正确地解码,一个“错误的”匹配就很难对压缩比产生不利影响。

    考虑到完整性,下面给出了相应的解码算法。其构成了打印机控制芯片(如第7部分所述)中EDRL扩展器单元的内核。

     case CREATE_FAR_EDGE://明确地生成边界int runif(code=CREATE_NEAR_EDGE)run=GetBits(s,SHORT_RUN_PRECISION)elserun=GetBits(s,LONG_RUN_PRECISION)FillBitRun(currLine,currEdge,currColor,run)currColor=!currColorcurrEdge+=run]]>

    5.2.3.3EDRL压缩性能

    表5显示Group 4和EDRL使用Group 4算法对CCITT测试文本进行压缩的压缩性能。每个文件代表一个采用400dpi扫描的页面。Group 4具有更高的性能是因为其熵编码的行程长度其根据400dpi的特征进行了调整。           表5Group 4和EDRL的压缩性能           (对400dpi的标准CCITTT文本)CCITT文本序号  Group 4压缩比    EDRL压缩比    1    29.1    21.6    2    49.9    41.3    3    17.9    14.1    4    7.3    5.5    5    15.8    12.4    6    31.0    25.5    7    7.4    5.3    8    26.7    23.4


    杂志文本通常采用10号的带衬线的字体(比如Times字体)排版。在此尺寸,A4/Letter页面可以容纳多达14,000个的字符,虽然一张杂志页面通常只有大约7000个字符。文本很少采用5号以下的点排版。在800dpi,可以采用2号以下的字点渲染标准字体文本。表6说明了不同尺码的点所对应的清晰度。

                   表6不同尺码的点对应的文本点的尺码 示范文本(Times字体)    8 The quick brown fox jumps over the lazy dog.    9 The quick brown fox jumps over the lazy dog.    10 The quick brown fox jumps over the lazy dog.


    表7显示Group 4和EDRL在采用800dpi渲染时对各种尺码点的文本页面的压缩性能。注意EDRL对采用3号点的字体排版的整个页面可以得到所需要的压缩比2.5。测试页面中字符的分布是基于英文文字统计的[12]。           表7Group4和EDRL对800dpi文本的压缩性能点的尺码字符数/A4页面Group4压缩比  EDRL压缩比    2    340,000    2.3    1.7    3    170,000    3.2    2.5    4    86,000    4.7    3.8    5    59,000    5.5    4.9    6    41,000    6.5    6.1    7    28,000    7.7    7.4    8    21,000    9.1    9.0    9    17,000    10.2    10.4    10    14,000    10.9    11.3    11    12,000    11.5    12.4    12    8,900    13.5    14.8    13    8,200    13.5    15.0    14    7,000    14.6    16.6    15    5,800    16.1    18.5    20    3,400    19.8    23.9


    对于9号或更大一些的点,EDRL的压缩比略好于Group 4,原因很简单,就在于Group 4的行程长度代码是根据400dpi进行了调整。

    这些压缩结果证实熵编码行程长度对压缩的影响小于2D编码,除非数据在竖直方向的相关性很小,比如字体非常小的情况下。

    5.2.4连续色调层压缩

    5.4.2.1JPEG压缩

    JPEG压缩算法[6]以特定的质量水平有失真地压缩一个连续色调图象。其在小于5∶1的压缩比时产生的图象衰减极为细微,在小于10∶1的压缩比时产生图象衰减可以忽略不计[16]。

    通常,JPEG首先把图象转换到一个彩色的空间,把亮度和色度分解到不同的彩色信道。这使得色度信道可以二次抽样,而不会有明显的损失,因为人的视觉系统对亮度的敏感性高于对色度的敏感性。在这一步之后,分别压缩各个彩色信道。

    图象被分为8×8的象素块,然后采用离散余弦变换(DCT)将每个块转换到频域中。此转化把图象的能量集中在频率相对较低的系数上,这使得高频参数的量化比较粗略一些。此种量化是JPEG压缩的主要来源。进一步的压缩通过使系数按照是临近的零系数最大化的方式排序得到,然后对零步长进行行程长度编码。最后,对行程长度和非零频率系数进行熵编码。解压缩的过程与压缩的过程相反。

    5.2.4.2CMYK连续色调JPEG压缩格式

    CMYK连续色调层被压缩成隔行扫描的彩色JPEG字节数据流。为了在打印机中高效利用空间进行解压缩,要求隔行扫描,但是可以把解码器限定为两套哈夫曼表,而不是四套(比如,每个彩色信道一套)[16]。如果亮度和色度是分离的,亮度信道可以使用一套表,而色度信道使用另外一套表。

    如果认为亮度/色度分离是必须的,为了进行表分配和色度二次采样,CMY被转化为YCrCb,并且对Cr和Cb进行适时的二次采样。K被当作亮度信道处理,不进行二次采样。

    所述JPEG字节数据流是完整的和自包含的。其包含解压缩需要的所有数据,包括量化和哈夫曼表。

    6Memjet打印头

    一个8英寸Memjet打印头包括并排连接在一起的两个标准4英寸Memjet打印头。

    所述两个4英寸Memjet打印头采用特殊的方式连接起来,以用于iprint。既然接线中需要了解所述4英寸打印头,下面对4英寸打印头作一个概括介绍。

    6.1 4英寸打印头的构成

    每个4英寸打印头包括8个片段,每个片段长1/2英寸。每个片段在页面的不同部位打印双值的青色、洋红色、黄色与黑色的点,以生成最终的图象。

    打印头以1600dpi打印点,每个点的直径大约是22.5微米,间隔15.875微米。这样,每个半英寸片段打印800个点,8个片段对应的位置见表8。               表8各片段在最终图象上对应的点  片段      打印头1        打印头2  第一点  结束点    第一点    结束点    0  0  799    6,400    7,199    1  800  1,599    7,200    7,999    2  1,600  2,399    8,000    8,799    3  2,400  3,199    8,800    9,599


       4  3,200  3,999  9,600  10,399  5  4,000  4,799  10,400  11,199  6  4,800  5,599  11,200  11,999  7  5,600  6,399  12,000  12,799


    虽然每个片段在最终的图象上生成800个点,但是每个点由双值的青色、洋红色、黄色与黑色墨水结合来表现。因为打印是双值的,所以输入的图象必须经抖动或扩散以得到最佳效果。

    每个片段包括3200个喷嘴:青色、洋红色、黄色与黑色各800个。一个4英寸的打印头包括8个片段,总共包括25600个喷嘴。

    6.1.1一个片段中的喷嘴分组

    为提高物理稳定性并在打印中尽可能地节省能量消耗,每个片段中的多个喷嘴被分组。在物理稳定性方面,十个喷嘴共用一个墨水贮存器。在能量消耗方面,分组可以实现低速与高速两种打印模式。

    打印头支持两种打印速度使得在不同的产品设置中,速度/能耗平衡可以交替使用。

    在低速打印模式下,同时启动每个4英寸打印头中的128个喷嘴。所述启动的喷嘴之间的距离应该是最大的,所以在每个片段中启动16个喷嘴。为了启动所有的25600个喷嘴,必须启动200批次128个喷嘴。

    在高速打印模式下,同时启动每个4英寸打印头中的256个喷嘴。所述启动的喷嘴之间的距离应该是最大的,所以在每个片段中启动32个喷嘴。为了启动所有的25600个喷嘴,必须启动100批次256个喷嘴。

    在低速模式下的能量消耗是高速模式下能量消耗的一半。但是注意,在两种情况下,打印一张页面所消耗的能量是相同的。

    6.1.1.1十个喷嘴构成一个小群

    一个单独的小群100包括10个共用一个墨水贮存器的喷嘴101。每5个喷嘴排成一行。每个喷嘴产生直径22.5微米的点,点之间相距15.875微米。图10显示了一个小群的结构,喷嘴101根据图10中标出的数字顺序启动。虽然喷嘴是按此顺序启动的,喷嘴之间的关系和打印页面上点的实际位置是不同的。一排喷嘴代表页面中一行偶数的墨点,另一排喷嘴代表页面中相邻一行奇数的墨点。图11显示了同样的小群100和其中的喷嘴加载的顺序。

    因此,在逻辑上一个小群中的喷嘴与一个点的宽度是独立的。喷嘴之间的实际距离取决于Memjet启动机构的特性。打印头的设计带有交错的喷嘴以与纸张的运动匹配。

    6.1.1.2各个颜色的一个小群构成一个色度小群

    各个颜色(青色121、洋红色122、黄色123和黑色124)的一个小群,组成一个色度小群125。一个色度小群代表不同行上10个点相同水平位置上的不同的颜色成分。不同的颜色小群之间的实际距离取决于Memjet运转参数,不同的Memjet可能有所不同。所述距离被看作一个点宽常数,因此在打印中必须加以考虑:采用青色喷嘴打印的点与采用洋红色喷嘴、黄色喷嘴和黑色喷嘴打印的点位于不同的行。打印算法必须使各种颜色之间的距离可变且可以达到8个点宽。图12图示一个色度小群。

    6.1.1.3五个色度小群构成一个群组

    5个色度小群125被组织成一个群组126。因为每个色度小群包含40个喷嘴,所以每个群组包括200个喷嘴:青色50个、洋红色50个、黄色50个和黑色50个。其设置见图13,色度小群的编号为0-4。注意,为了图示清楚,夸大了相邻的色度小群之间的距离。

    6.1.1.4两个群组构成一个相组

    2个群组被组织成一个相组127。相组名称来源于一个相组中的喷嘴组是在一个给定的启动过程中同时启动的(下文将更详细地说明)。由2个群组组成的相组的结构完全是为了通过2根PodgroupEnable线实现低速与高速打印。

    在低速打印中,2根PodgroupEnable线只有一根线被设定为给定的启动脉冲,所以两个群组中只有一个群组启动喷嘴。在高速打印中,2根PodgroupEnable线都被设定为给定的启动脉冲,所以两个群组都启动喷嘴。结果是,低速打印花费的时间是高速打印所花费时间的两倍,因为高速打印一次启动了两倍的喷嘴。

    图14说明了一个相组的构成。为了描述清楚,相邻的群组之间的距离被夸大了。

    6.1.1.5两个相组构成一个启动组

    两个相组127(相组A和相组B)被组织成一个启动组128,在每个片段129中有4个启动组。启动组名称来源于他们同时启动相同的喷嘴。2根Enable线(A Enable和B Enable)使得相组A和相组B的喷嘴可以在不同的启动阶段相互独立。图15显示了相应的设置。为了描述清楚,相邻组之间的距离被夸大了

    6.1.1.6喷嘴分组总结

    表9是打印头中的喷嘴分组情况的总结。

                       表9一个4英寸打印头中的喷嘴分组组名构成重复率 喷嘴数喷嘴基本单元1∶1 1小群每个小群中的喷嘴10∶1 10色度小群每个CMYK色度小群4∶1 40群组每个群组中的色度小群5∶1 200相组每个相组中的群组2∶1 400启动组每个启动组中的相组2∶1 800片段每个片段中的启动组4∶1 3,200 4英寸打印头4英寸打印头中的片段8∶1 25,600


    一个8英寸打印头由两个4英寸打印头组成,共有51200个喷嘴。

    6.1.2载入与打印循环

    一个4英寸打印头芯片共包括25600个喷嘴。一个打印循环可能包括启动所有的喷嘴——取决于待打印的信息。一个载入循环包括向打印头中载入在接下来的打印循环中待打印信息。

    每个喷嘴有一个对应的决定在打印循环中喷嘴是否启动NozzleEnable位。所述NozzleEnable位(每个喷嘴一位)通过一套移位寄存器载入。

    逻辑上说,每个片段有四个移位寄存器(每个颜色一个),每个移位寄存器有800位。在位被移入对应给定颜色的移位寄存器中时,所述位被以交替脉冲方式传输到上部或下部的喷嘴。在其内部,每个800位的移位寄存器由两个400位的移位寄存器构成:一个用于上部的喷嘴,另一个用于下部的喷嘴。交替的位被移入交替的内寄存器中。然而,在考虑外部接口的情况下,其只是一个800位的移位寄存器。

    一旦所有的移位寄存器载满后(800个载入脉冲),所有的位被并行地传送给相应的NozzleEnable位。这相当于并行地传输25600位。一旦传输完成,打印循环就可以开始。只要所有NozzleEnable位的并行载入发生在打印循环结束的时候,打印循环和载入循环可以同时发生。

    6.1.2.1载入循环

    载入循环与把下一个打印循环的NozzleEnable位并行地载入到打印头的移位寄存器中有关。

    每个片段有4个直接对应于青色、洋红色、黄色和黑色移位寄存器的输入。所述输入被称为CdataIn、MDataIn、YDataIn和KdataIn。因为有八个片段,所以每个4英寸打印头一共有32个颜色输入线。SRClock线(8个片段共享)上的一个脉冲把32个位移入相应的移位寄存器。交替的脉冲把位移至相应的上部与下部喷嘴中。因为共有25600个喷嘴,所以一共需要有800个脉冲用于数据移送。一旦所有的25600个位移送完成,在共享的PTransfer线上的一个脉冲使得移位寄存器中的数据并行地传送到相应的NozzleEnable位中。

    通过Ptransfer线上的一个脉冲而发生的并行传输必须发生在打印循环完成以后。否则,对应于待打印行的NozzleEnable位将是不正确的。

    既然所有的8个片段都采用一个SRClock脉冲加载,任何打印过程中都必须按正确的顺序为打印头提供数据。比如,第一个SRClock脉冲将为下一个打印循环的点0、800、1600、2400、3200、4000、4800和5600传输CMYK位。第二个SRClock脉冲将为下一个打印循环的点1、801、1601、2401、3201、4001、4801和5601传输CMYK位。在800个SRClock脉冲之后,可以设定Ptransfer脉冲。

    奇数和偶数的CMYK输出,虽然在同一个打印循环中打印,但是位于不同的实际输出行中,此点应该提出,并引起注意。打印头中奇数和偶数喷嘴的实际间距,和不同颜色喷嘴之间的实际间距一样,确保它们可以在一个页面的不同行中生成墨点。当向打印头中载入数据时,相对的差别必须考虑到。各行之间的实际差别由打印头中所使用喷墨机构的特性决定。所述差别可以采用变量D1和D2界定,其中D1指不同颜色喷嘴之间的距离,D2指同一颜色喷嘴之间的距离。表10表明了在前4个脉冲中传输给打印头的片段n的点。                       表10传送到一个4英寸打印头的点的顺序  脉冲    点    黑色行    黄色行    洋红色行    青色行    1    2    3    4    800Sa    800S+1    800S+2    800S+3    N    N+D2c    N    N+D2    N+D1b    N+D1+D2    N+D1    N+D1+D2    N+2D1    N+2D1+D2    N+2D1    N+2D1+D2    N+3D1    N+3D1+D2    N+3D1    N+3D1+D2   a                 S=片段序号(0-7)   b                 D1=位于一个颜色和另一个颜色的喷嘴之间的行数(一般为4-    8)   c                 D2=同一颜色的两排喷嘴之间的行数(一般为1)


    所有的800个脉冲都是如此。

    数据能够以最高达20MHz的速度锁存到所述打印头中,在40微秒内为下一个文本行载入全部的数据。

    6.1.2.2打印循环

    一个4英寸打印头包括25600个喷嘴。同时启动所有的喷嘴,会消耗太多的能量,并且可能在充墨和喷嘴冲突方面产生问题。因此设定了两种启动模式:低速打印模式和高速打印模式:

    ·在低速打印模式下,共有200个阶段,每个阶段启动128个喷嘴。这相当于每个片段16个喷嘴,或每个启动组4个喷嘴。

    ·在高速打印模式下,共有100个阶段,每个阶段启动256个喷嘴。这相当于每个片段32个喷嘴,或每个启动组8个喷嘴。

    在一个给定的启动脉冲中将被启动的喷嘴由以下参数决定:

    ·3位的ChromapodSelect(从一个启动组中的5个色度小群中选择一个)

    ·4位的NozzleSelect(从一个小群中的10个喷嘴中选择一个)

    ·PodgroupEnable线的2位(选择启动0、1或2个群组)

    当PodgroupEnable线的一根设定时,只有指定的群组的4个喷嘴将被ChromapodSelect和NozzleSelect启动。当设定两根PodgroupEnable线时,两个群组的喷嘴都将被启动。在低速模式下,需要两个启动脉冲,相应地PodgroupEnable=10和01。在高速模式下,只需要一个启动脉冲,相应地PodgroupEnable=11。

    由AEnable和BEnable线设定启动脉冲的持续时间,两者分别启动全部启动组中的PhasegroupA和PhasegroupB中的喷嘴。一个典型的启动脉冲持续时间为1.3~1.8微秒。脉冲的持续时间取决于墨水的粘性(取决于温度和墨水的特性)和可以用于打印头的能量。为了补偿温度的变化而从打印头进行反馈的详细内容参见6.1.3部分。

    为了使启动脉冲可以叠加,AEnable和BEnable是独立的线。这样,低速打印循环的200个阶段包括100个A阶段和100个B阶段,有效地提供100套阶段A和阶段B。与此相似,高速打印循环的100个阶段包括50个A阶段和50个B阶段,有效地提供50套阶段A和阶段B。

    图16表示一个典型打印循环中的AEnable 130和BEnable 131线。在高速打印中,有50个2微秒的循环,而在低速打印中,有100个2微秒的循环。如图中所示,在额定半循环周期的最小值与最大值之间的轻微变化是可以接受的。

    在高速打印模式下,启动顺序为:

    ·ChromapodSelect 0,NozzleSelect 0,PodgroupEnable 11(Phases A和B)·ChromapodSelect 1,NozzleSelect 0,PodgroupEnable 11(Phases A和B)

    ·ChromapodSelect 2,NozzleSelect 0,PodgroupEnable 11(Pbases A和B)

    ·ChromapodSelect 3,NozzleSelect 0,PodgroupEnable 11(Phases A和B)

    ·ChromapodSelect 4,NozzleSelect 0,PodgroupEnable 11(Phases A和B)

    ·ChromapodSelect 0,NozzleSelect 1,PodgroupEnable 11(Phases A和B)

    ·...

    ·ChromapodSelect 3,NozzleSelect 9,PodgroupEnable 11(Phases A和B)

    ·ChromapodSelect 4,NozzleSelect 9,PodgroupEnable 11(Phases A和B)

    在低速打印模式下,启动顺序相似。只是在高速打印模式的各个阶段,PodgroupEnable为11,而在低速打印模式下,PodgroupEnable的两个相位01和10交替出现:

    ·ChromapodSelect 0,NozzleSelect 0,PodgroupEnable 01(Phases A和B)

    ·ChromapodSelect 0,NozzleSelect 0,PodgroupEnable 10(Phases A和B)

    ·ChromapodSelect 1,NozzleSelect 0,PodgroupEnable 01(Phases A和B)

    ·ChromapodSelect 1,NozzleSelect 0,PodgroupEnable 10(Phases A和B)

    ·...

    ·ChromapodSelect 3,NozzleSelect 9,PodgroupEnable 01(Phases A和B)

    ·ChromapodSelect 3,NozzleSelect 9,PodgroupEnable 10(Phases A和B)

    ·ChromapodSelect 4,NozzleSelect 9,PodgroupEnable 01(Phases A和B)

    ·ChromapodSelect 4,NozzleSelect 9,PodgroupEnable 10(Phases A和B)

    当一个喷嘴启动时,大约需要100微秒用于墨水补充。在墨水补充完成以前,所述喷嘴不能再次启动。这把打印的最快速度限制在每行100微秒。在快速打印模式下,打印一行的时间是100微秒,所以从一行启动到下一行启动之间的时间与墨水补充的时间匹配。低速打印模式速度比此要慢,因此也是可以接受的。

    喷嘴的启动还在一个有限的时间内,在喷嘴小群共用的墨水贮存器中产生声波扰动。所述的扰动会妨碍同一个小群中其它喷嘴的启动。所以,在同一个小群中喷嘴的启动时间间隔应该尽可能地长。因此,我们先启动一个色度小群中的4个喷嘴(每个颜色一个喷嘴),然后再启动同一群组中的下一个色度小群。

    在低速打印模式下,群组是分开启动的。这样在两个群组中,5个色度小群都必须在第一个色度小群再次启动前,启动一次,共10×2微秒循环。也就是,每个小群都是每20微秒启动一次。

    在高速打印模式下,群组是一起启动的。这样在一个群组中的5个色度小群都必须在第一个色度小群再次启动前,都启动一次,共5×2微秒循环。也就是,每个小群都是每10微秒启动一次。

    因为墨水通道长度为300微米,墨水中的声速为大约1500m/s,墨水通道的共振频率是2.5MHz。因此在低速打印模式下有50个共振周期可以用于声音脉冲的衰减,在高速打印模式下有25个共振周期可以用于声音脉冲的衰减。这样,在两种情况下任何声波干涉都是极小的。

    6.1.3来自打印头的反馈

    打印头产生数根反馈线(从8个片段中积累而得)。所述反馈线用于调整启动脉冲的持续时间。虽然每个片段产生相同的反馈,但是所有片段的反馈共享同一根三态总线。所以,在一个确定的时间只能有一个片段发出反馈信号。

    SenseSegSelect线上的脉冲同Cyan选择上的数据逻辑与,可以选择将提供反馈信号的片段。直到下一个SenseSegSelect脉冲以前,反馈信号检测线的信号将来自选定的片段。反馈检测线如下:

    ·Tsense把打印头的温度信息传送给控制器,使得控制器可以调整启动脉冲的时间长度,因为打印头的温度对墨水的粘性有影响。

    ·Vsense把可以用于启动器的电压信息传送给控制器,这样控制器可以根据可用电压的大小,调整脉冲的宽度。

    ·Rsense把启动器加热头的电阻(每单位面积的欧姆数)信息传送给控制器,这样控制器可以调整脉冲的宽度,以使能量恒定,与加热头的电阻无关。

    ·Wsense把所述加热头临界部位的宽度的信息传送给控制器,因为印刷与蚀刻中的波动,所述宽度值可能会有±5%的偏差。这使得控制器可以相应地调整脉冲的宽度。

    6.1.4预热循环

    打印过程有很强的保持温度均衡的趋向。为了起始阶段所打印图片上点的尺寸一致,必须在打印前达到温度均衡。这是通过预热循环实现的。

    所述的预热循环包括一个对所有喷嘴的时间长度为1秒的载入循环(比如,启动所有的喷嘴),以及对每个喷嘴施加多个短启动脉冲。所述脉冲的持续时间必须不足以启动墨滴,但足以加热墨水。虽然每个喷嘴需要大约200个脉冲,循环过程和标准的打印循环的顺序相同。

    在预热模式过程中,反馈信号由Tsence提供,并且一直持续到达到温度均衡(大约高于周围环境30℃)。预热模式的持续时间大约为50毫秒,取决于墨水的成分。

    预热在每次打印前执行。这不影响性能因为这一过程是在数据被传输到打印机的时候进行的。

    6.1.5清洗循环

    为了减少喷嘴堵塞的可能性,可以在每次打印之前,运行一次清洗循环。每个喷嘴启动多次,向一块具有吸墨能力的海绵喷墨。

    所述清洗循环包括一个对所有喷嘴的1秒载入循环(也就是启动所有的喷嘴),以及对每个喷嘴施加多个启动脉冲。所述喷嘴通过和标准的打印循环相同的喷嘴启动顺序进行清洗。每个喷嘴被启动的次数取决于墨水的成分和打印机闲置的时间。在预热的情况相同,清洗循环对打印机的性能没有影响。

    6.1.6打印头接口总结

    一个4英寸打印头带有的连接见表11

                            表11 4英寸打印头连接名称 位数说明ChromapodSelect 3选择启动哪一个色度小群(0-4)NozzleSelect 4从喷嘴小群中选择启动哪一个喷嘴(0-9)PodgroupEnable 2使群组可以启动(可选:01、10、11)AEnable 1相组A的启动脉冲BEnable 1相组B的启动脉冲CdataIn[0-7] 8向片段0-7的青色移位寄存器输入数据MdataIn[0-7] 8向片段0-7的洋红色移位寄存器输入数据YdataIn[0-7] 8向片段0-7的黄色移位寄存器输入数据KdataIn[0-7] 8向片段0-7的黑色移位寄存器输入数据SRClock 1SRClock(ShiftRegisterClock)上的脉冲把CdataIn[0-7]、MDataIn[0-7]、YDataIn[0-7]和KDataIn[0-7]上的当前值载入到32位移位寄存器中。PTransfer 1把数据从移位寄存器并行传送到内部的NozzleEnable位(每个喷嘴一位)。SenseSegSelect 1SenseSegSelect上的脉冲与CdataIn[n]上的数据逻辑“与”,为片段n选择检测线。Tsense 1温度检测Vsense 1电压检测Rsense 1电阻检测Wsense 1宽度检测Logic GND 1逻辑接地Logic PWR 1逻辑电源V- 总线 信号启动器接地V+启动器电源TOTAL 52


    在4英寸打印头的内部,每个片段都和表12中所列的结合片相连。                          表12 4英寸打印头内部片段的连接名称位数说明Chromapod Select 3选择启动哪一个色度小群(0-4)NozzleSelect 4从喷嘴小群中选择启动哪一个喷嘴(0-9)PodgroupEnable 2使群组可以启动  (可选:01、10、11)AEnable 1群组A的启动脉冲BEnable 1群组B的启动脉冲CDataIn 1向青色移位寄存器输入数据MDataIn 1向洋红色移位寄存器输入数据YDataIn 1向黄色移位寄存器输入数据KDataIn 1向黑色移位寄存器输入数据SRClock 1SRClock(ShiftRegisterClock)上的脉冲把CdataIn[0-7]、MDataIn[0-7]、YDataIn[0-7]和KDataIn[0-7]上的当前值载入到4个移位寄存器中。PTransfer 1把数据从移位寄存器并行传送到内部的NozzleEnable位(每个喷嘴一位)。SenseSegSelect 1SenseSegSelect上的脉冲与CdataIn[n]上的数据逻辑“与”,为片段n选择检测线。Tsense 1温度检测Vsense 1电压检测Rsense 1电阻检测Wsense 1宽度检测Logic GND 1逻辑接地Logic PWR 1逻辑电源V- 21启动器接地V+ 21启动器电源TOTAL 66(66×8=528)


    6.28英寸打印头需注意的事项

    一个8英寸Memjet打印头是简单地把两片4英寸打印头连在一起而成。为了减少控制芯片引脚的数量并使两片打印头可以同时打印,所述打印头采用导线连接在一起,并且共享许多共同的连接。因此对一些细节必须加以考虑。

    6.2.1连接

    因为两片打印头的喷嘴是同时启动的,所以ChromapodSelect、NozzleSelect、AEnable和BEnable线是共享的。为了向打印头载入数据,CDataIn、MDataIn、YDataIn和KDataIn的32线是共享的,采用了两根不同的SRClock线,以决定向两片打印头中的那一片载入数据。一个单独的PTransfer脉冲用于把载入的数据传送给两片打印头的NozzleEnable位。与此相似,Tsense、Vsense、Rsense和Wsense线是共享的,采用了两根SenseEnable线以区分两片打印头。

    因此,两片打印头共享除SRClock和SenseEnable以外的全部连接。这两个连接重复,为每片打印头各提供一次信号。实际的连接如表13所示。

                            表13 8英寸打印头连接名称位数说明ChrompodSelect 3选择启动哪一个色度小群(0-4)NozzleSelect 4从喷嘴小群中选择启动哪一个喷嘴(0-9)PodgroupEnable 2使群组可以启动(可选:01、10、11)AEnable 1群组A的启动脉冲BEnable 1群组B的启动脉冲CDataIn[0-7] 8向片段0-7的青色移位寄存器输入数据MDataIn[0-7] 8向片段0-7的洋红色移位寄存器输入数据YDataIn[0-7]8向片段0-7的黄色移位寄存器输入数据KDataIn[0-7]8向片段0-7的黑色移位寄存器输入数据SRClock1 1SRClock(ShiftRegisterClock)上的脉冲把CdataIn[0-7]、 MDataIn[0-7]、YDataIn[0-7]和KDataIn[0-7]上的当前值载入到4英寸打印头1的32位移位寄存器中。SRClock2 1SRClock(ShiftRegisterClock)上的脉冲把CdataIn[0-7]、MDataIn[0-7]、YDataIn[0-7]和KDataIn[0-7]上的当前值载入到4英寸打印头2的32位移位寄存器中。PTransfer 1把数据从移位寄存器并行传送到内部的NozzleEnable位(每个喷嘴一位)。SenseSegSelect1 14英寸打印头1上的SenseSegSelect上的脉冲与CdataIn[n]上的数据逻辑“与”,为片段n选择检测线。SenseSegSelect2 14英寸打印头2上的SenseSegSelect上的脉冲与CdataIn[n]上的数据逻辑“与”,为片段n选择检测线。Tsense 1温度检测


     Vsense 1电压检测Rsense 1电阻检测Wsense 1宽度检测Logic GND 1逻辑接地Logic PWR 1逻辑电源V- 总线 数据启动器接地V+启动器电源TOTAL 54


    6.2.2时间分析

    把2个4英寸打印头结合并采用导线适当的连接起来,使得打印一幅8英寸宽图象的速度可以与打印一幅4英寸宽图象的速度相同。但是在下一行被打印前,被传送到两片打印头的数据的容量是原来的两倍。根据要求的图象打印速度,数据必须以相应的速度生成并传输,以跟上打印的速度。

    6.2.2.1例子

    举个例子,考虑在2秒内打印一幅8”×12”页面的时间分析。为了在2秒内完成打印所述页面,8英寸打印头必须打印19200行(12×1600)。取整为2秒内打印20000行,这要求每行的打印时间为100微秒。一个单独的打印循环和一个单独的载入循环都必须在此时间内完成。另外,在打印头的外部,还必须适量地移动纸张。

    根据以上分析,高速打印模式允许一个4英寸打印头在100微秒内打印一个整行。因此,两个4英寸打印头都必须在高速打印模式下运行,同时打印。因此,每个脉冲启动512个喷嘴,使得可以在指定的时间内打印一个8英寸的整行。

    传给两个4英寸打印头的800个SRClock脉冲(每个脉冲传输32位)也必须在100微秒的行时间内完成。如果两个打印头同时载入(64位数据线),SRClock脉冲的长度不能超过100微秒/800=125纳秒,表明必须采用8MHz的时钟脉冲输入打印头。如果两个打印头每次载入一个(32位共享数据线),SRClock脉冲的长度不能超过100微秒/1600=62.5纳秒,必须采用16MHz的时钟脉冲输入打印头。在两种情况下,计算每位的值(51200个喷嘴,每个一位)的平均时间不能超过100微秒/51200=2纳秒。这要求点生成器以下面的速度运行:

    ·500MHz每个循环产生1 bit(dot)

    ·250MHz每个循环产生2 bit(dot)

    ·125MHz每个循环产生4 bit(dot)

    7打印机控制器

    7.1打印机控制器机构体系

    如图8所示,打印机控制器由iprint中央处理器(ICP)芯片83、一个64Mbit RDRAM 82和主QA芯片85组成。

    如图17所示,所述ICP 83包括一个通用处理器139和一套由处理器通过处理总线控制的专用功能单元。只有三个功能单元是非标的——EDRL扩展器140、浓淡处理器/合成器141和控制Memjet打印头的打印头接口142。

    在处理器中运行的软件协调不同的功能单元去接收、扩展和打印页面。这将在下一个部分介绍。

    ICP的不同功能单元在接下来的部分中描述。

    7.2页面扩展和打印

    页面扩展和打印的过程如下。通过USB接口146从主机传来的页面描述储存在主存储器中。6MB的主存储器是用于页面存储的。所述存储器可以容纳两页不超过3MB的页面,或者一个6MB的页面。如果主机产生的页面不超过3MB,那么打印机以流的模式运行——也就是在接收下一个页面同时打印当前页面。如果主机产生的页面超过3MB,那么打印机以单页的模式运行——也就是接收一个页面,并在接收下一个页面之前打印此页面。如果主机产生的页面超过6MB,打印机将拒绝接收此页面。实际上,打印机驱动程序防止此类页面的产生。

    一个页面由两部份组成——双值的黑色层和连续色调层。此两部份是采用截然不同的格式压缩的——双值的黑色层采用EDRL格式压缩,连续色调层采用JPEG格式压缩。页面扩展的第一步包括并行地解压缩所述两层。双值的黑色层采用EDRL扩展器140解压缩16,连续色调层JPEG采用JPEG解码器143解压缩14。

    页面扩展的第二步包括把连续色调CMYK数据浓淡处理15成双值CMYK,然后把双值黑色层复合17在双值CMYK层之上。所述浓淡处理和复合过程由浓淡处理器/复合器单元141执行。

    最后,通过打印头接口单元142,打印18复合后的双值CMYK图象,所述打印头接口单元142控制Memjet打印头。

    因为Memjet打印头在高速下打印,纸张必须以恒定的速度经过打印头。如果纸张因为数据不能以足够快的速度传输到打印头而停止运动,将会产生明显的不规则打印。所以把双值CMYK数据以要求的速度传输到打印头接口是很重要的。

    一个完全扩展后的1600dpi双值CMYK页面的大小为114.3MB。因为把一个扩展后的页面存储在打印机存储器中是不实用的,所以每个页面都是在打印时实时扩展的。因此,页面扩展和打印的不同阶段是流水进行的。页面扩展和打印过程中地数据流在表14中描述。在当前的技术下(如Rambus)数据可以很好地传进/传出174MB/s的主存储器。

                             表14页面扩展与打印过程中的数据流过程    输入输入窗口   输出 输出 窗口    输入速率输出速率接收连续色调数据    --   JPEG   stream 1    -    - 1.5MB/s 3.3Mp/s接收双值数据    --   EDR   stream 1    -    - 1.5MB/s 30Mp/s连续色调数据解压缩    JPEG    stream-   32-bit CMYK 8    1.5MB/s    3.3Mp/s 13MB/s 3.3Mp/s双值数据解压缩    EDRL    stream-   1-bit K 1    1.5MB/s    30Mp/sa 14MB/s 120Mp/s浓淡处理    32-bit    CMYK1   -b -    13MB/s    3.3Mp/sc -复合    1-bit    K1   4-bit   CMYK 1    14MB/s    120Mp/s 57MB/s 120Mp/s打印    4-bit    CMYK24,1d   - -    57MB/s    120Mp/s - -    87MB/s 87MB/s 174MB/s           a800dpi_1600dpi(2×2扩展)           b浓淡处理与复合结合进行,所以此过程中没有外部的数据流动。           c267ppi_1600dpi(6×6扩展)           d需要一个24线的窗口,但只预置1线


    每个阶段与下一个阶段通讯是通过主存储器中的一个共享FIFO进行的。每个FIFO都被组织到行线中,并且每个FIFO的最小容量(行数)设计得可以容纳生成器的输出窗口(行数)和使用器的输入窗口(行数)。阶段之间主要存储缓冲器见表15。总计的缓冲器使用空间6.3MB,留出1.7MB用于程序代码和临时内存(可用的8MB之外)。

                       表15页面扩展和打印主存储缓冲器  缓冲器  结构与行容量  行数  缓冲器  大小  压缩后页面缓冲器  146  字节数据流  (1或2页)  -  6MB  连续色调CMYK  缓冲器  147  32-bit内部预留CMYK  (267ppi×8”×32=8.3KB)  8×2=16  134KB  双值K缓冲器  148  1-bit K  (800dpi×8”×1=1.5KB)  1×2=2  3KB  双值CMYK缓冲器  149  4-bit平面奇/偶CMYK  (1600dpi×8”×4=6.3KB)  24+1=25  156KB  6.3MB
全部的数据流(包括FIFO)在图18中说明。

    连续色调页面解压缩由JPEC解码器143执行。双值页面解压缩由EDRL扩展器140执行。浓淡处理与复合由浓淡处理器/复合器单元141执行。这些功能单元在下一部分描述。

    7.2.1数据定址存贮器(DMA)存取

    每个功能单元包括一个或多个单片输入和/或输出FIFO。每个FIFO都位于多信道DMA控制器144的一个独立的信道内。所述DMA控制器144处理单地址而不是双地址传送,所以为每个信道提供一个独立的请求/答复接口。

    当一个输入FIFO被用尽或一个输出FIFO被填满时,对应的功能单元会产生延迟。

    处理器139为每个DMA传送编程。所述DMA控制器144为根据请求传送的每个命令生成从功能单元连接到信道的地址。当功能单元的申请得到DMA控制器144的答复后,功能单元把命令锁定在数据总线145上。当传送完成后,所述DMA控制器144中断处理器139,使得处理器139在相同的信道适时地为下一个传送进行编程。

    通常,一旦相应的主存储器FIFO可用(也就是,非空为读,非满为写),处理器139将为同一信道上的另一个传送编程。

    DMA控制器144中信道服务执行的间隔在某种程度上依赖于主存储器的反应时间。

    7.2.2EDRL扩展器

    如图19所示,EDRL扩展器单元(EEU)140解压缩一个EDRL压缩的双值图象。

    所述EEU的输入是一个EDRL位数据流150。所述EEU的输出是一套双值图象行151,以整数倍把扩展后的双值图象的分辨率放大到1600dpi。

    一旦开始运转,EEU就一直运转,直到在EDRL位数据流中探测到“end-of-page”代码为止,或者由控制寄存器将其停止。

    所述EEU依赖于一个明确的页宽以解码位数据流。所述页宽必须在启动EEU之前写入到页宽寄存器152中。

    扩展后双值页面的放大依赖于一个明确的放大倍数。所述放大倍数必须在启动EEU之前写入到放大倍数寄存器153中。  表16 EDRL控制器和配置寄存器  寄存器  宽度    说明
启动1启动EEU停止1停止EEU页宽13在解码中使用的页宽,用于探测行的末端放大倍数4在放大扩展的图象过程中使用的放大倍数


    所述EDRL压缩格式在5.2.3部分中描述。其采用边界描绘一个双值图象。每行中的各个边界根据前一行的边界,或者同一行中的前一个边界,进行编码。不管是如何编码的,每个边界最终是根据与其同一行中的前一个边界的距离解码的。所述距离(或者行程长度)解码成代表图象相应部分的1或0数据流。所述解码算法也在5.2.3.2部分中描述。

    所述EEU由一个位数据流解码器154、一个状态机155、边界计算逻辑电路156、两个行程长度解码器157和158、和一个行程长度(再)编码器159。

    所述的位数据流解码器154解码位数据流中的熵编码代码字,并传送给状态机155。所述状态机155返回代码字的大小给位数据流解码器154,使得解码器154可以读取下一个代码字。读到“create edge”代码字后,所述状态机155采用位数据流解码器从位数据流中提取相应的行程长度。状态机控制边界计算逻辑和行程长度解码/编码器的方式如表18所示。

    边界计算逻辑电路非常简单。前一(参考)行和当前(编码中)行中的当前边界偏移量分别保存在参考边界寄存器160和边界寄存器161中。与“create edge”代码有关的行程长度被直接送到行程长度解码器,被加到当前边界上。通过把相关增量加到参考边界并减去当前边界的方法将“delta”代码字译成行程长度。产生的行程长度被输出至行程长度解码器,并被加到当前边界上。下一个行程长度从行程长度解码器159中提取,并加到参考边界160上。“kill”码简单地删除当前参考边界。再次从行程长度解码器中提取下一个行程长度并加到参考边界上。

    边界计算逻辑电路156每次生成一个代表一个边界的行程长度,所述行程长度被传送给行程长度解码器。当所述行程长度解码器解码行程时,向状态机发送一个延迟信号。因为行程长度解码器157的速度比边界计算逻辑电路慢,所以没有必要作退耦处理。扩展后的行积累在一个行寄存器162中,所述行寄存器162的容量足以存储一个8英寸800dpi的行(800字节)

    前一个扩展后的行也存储在行寄存器163中,作为当前行解码时的参考。前一行根据要求在此被作为行程长度重新编码。这比把前一行解码后的行程长度存储起来要经济,因为在最坏的情况下,每个象素一个13位的行程长度(1600dpi时20KB)。当行程长度解码器159解码行程时向状态机发送一个延迟信号。所述行程长度解码器使用页宽152探测一行的结尾。(当前)行缓冲器162和前一行缓冲器163连接在一起,并作为一个FIFO管理,以简化行程长度编码器159。

    行程长度解码器158把输出的行程长度解码到一个行缓冲器164中,所述行缓冲器164足以存储一个8英寸1600dpi的行(1600字节)。传送到所述输出行程长度解码器的行程长度乘以放大倍数153,解码器采用此方法生成1600dpi的行。所述行通过输出象素FIFO 165被输出放大倍数次。通过简单的行复制,实现所需的竖直方向放大。所述EEU能够被设计为在图象放大时边界平滑。一种简单的基于模板匹配的平滑化方案是非常有效的[10]。这要求在低分辨率行程长度解码器和平滑放大单元之间设置一个多行缓冲器,但可以取消高分辨率行程长度解码器。

    7.2.2.1EDRL数据流解码器

    如图20所示,EDRL数据流解码器154对输入位数据流中的熵编码EDRL代码字解码。所述EDRL数据流解码器154使用一个与一个16位桶形移位器168相连的2字节输入缓冲器167,所述16位桶形移位器168的左(最高位)边界总是对准位数据流中一个代码字的边界。与所述桶形移位器168相连的解码器169根据表17解码代码字,并向状态机155提供相应的代码。              表17 EDRL数据流代码字解码表输入代码字格式a  输出代码  输出代码格式1xxx xxxx  Δ0  1 0000 0000010x xxxx  Δ+1  0 1000 0000011x xxxx  Δ-1  0 0100 00000010 xxxx  kill edge  0 0010 00000011 xxxx  create near edge  0 0001 00000001 0xxx  Δ+2  0 0000 10000001 1xxx  Δ-2  0 0000 01000000 1xxx  create far edge  0 0000 00100000 01xx  end-of-page(EOP)  0 0000 0001                       ax=不需考虑


    所述状态机155依次输出代码的长度。所述代码长度被模8加到170当前代码字位偏移量上以生成下一个代码字位偏移量。所述位偏移量反过来控制桶形移位器168。如果代码字位偏移量重叠,进位控制位控制从输入FIFO 166输出的下一个字节的锁存。此时,字节2被锁存到字节1,FIFO的输出被锁存到字节2。需要两个8位循环填满输入缓冲器。这由状态机155中的开始状态执行。

    7.2.2.2EDRL扩展器状态机

    所述EDRL扩展器状态机155根据EDRL数据流解码器154提供的代码控制边界计算和行程长度扩展逻辑。所述EDRL扩展器状态机155向EDRL数据流解码器提供当前代码字的长度,并向边界计算逻辑电路提供当前增量代码代表的增量值。所述状态机还响应控制寄存器的开始(start)和停止(stop)控制信号,以及边界计算逻辑的行结束(end ofline)信号。

    所述状态机还控制“create edge”代码对应的行程长度的多次提取。

                                  表18 EDRL扩展器状态机输入信号 输入代 码  当前状态  下一状态代码长度  增量   动作start -  停止  开始  8  -   -- -  开始  空闲  8  -   -stop -  -  停止  0  -   重置RL解码器与   FIFOEOL -  -  行结束1  0  -   重置RL解码器   重置RL编码器   重置ref.edge和edge- -  行结束1  空闲   RL编码器_ref.RL;   ref.edge+=ref.RL- D0  空闲  空闲  1  0   RL=edge-ref.edge+   增量;   edge+=RL;   RL _ RL解码器;   RL编码器_ref.RL;   xef.edge+=ref.RL- Δ+1  空闲  空闲  2  +1   “- Δ-1  空闲  空闲  3  -1   “- Δ+2  空闲  空闲  4  +2   “- Δ-2  空闲  空闲  5  -2   “- kill edge  空闲  空闲  6  -   RL编码器_ref.RL;   ref.edge+=ref.RL- create near edge  空闲  生成RL  lo 7  7  -   重置create RL- create far edge  空闲  生成RL  hi 6  8  -   -- EOP  空闲  停止  8  -   -- -  生成RL hi  6  生成RL  lo 7  6  -   闭锁create RL hi 6- -  生成RL lo  7  生成  边界  7  -   闭锁create RL lo 7- -  生成边界  空闲  0  -   RL=create RL;   edge+=RL;   RL_RL编码器


    7.2.2.3行程长度解码器

    如图21所示,行程长度解码器157/158把一个行程长度扩展为一个输出数据流由0和1组成相应长度的序列。假定一行的首个行程为白色(color 0),每一行程都假定与前次颜色相反。如果首个行程为黑色(color1),则必须前置一个长度为零的白色扫描。行程长度解码器在内部记录当前颜色的变化。

    每个时钟周期内,所述行程长度解码器最多向输出数据流输出8位。行程长度通常不是8的整数倍,所以一个图象中除了第一个行程外,都不是字节对齐的。所述扫描解码器在字节空间寄存器180中保存当前设定的字节中的可用位数。解码开始时,对每一字节的输出初始化为8。

    一旦下一个行程行在行程长度寄存器181中锁存一个非零的值,解码器就开始输出位的行程。当行程长度寄存器为零时,解码器停止运转。

    每个时钟周期内,当前颜色的多个位被移入到输出位寄存器182中。当前颜色保存在1位颜色寄存器183中。实际输出的位数由行程长度中剩余的位数限定,并且受到输出字节中空闲位数的限制。输出的位数从行程长度和字节空间中提取,当行程长度为零时,解码完成,虽然行程的最后位可能仍然位于输出字节寄存器中,也把输出悬空。当字节空间为零时,输出字节满,被附加到输出数据流的最后。

    所述16位桶形移位器184、输出字节寄存器182和颜色寄存器183一起实现一个8位移位寄存器,每个时钟可以向所述8位移位寄存器移入多位并把颜色作为串行输入。

    外部的“复位”(reset)线用于在一行的开始时复位行程长度解码器。外部的“下一扫描”(next run)线用于申请对一个新的行程长度进行编码。在外部的“下一扫描”(next run)线上伴随一个行程长度。所述“下一扫描”(next run)线不应该和“复位”(reset)线在同一时间设置。因为“下一扫描”(next run)转化当前的颜色,颜色复位为1,而不是0。外部的“刷新”(flush)线用于刷新行程的最后字节。可以用于逐行对齐,产生字节对齐的行,或者用于生成一个字节对齐的图象。

    外部的“就位”(ready)线指明行程长度解码器是否可以对一个行程长度进行解码。所述线可以用于延迟外部逻辑电路。

    7.2.2.4行程长度编码器

    如图22所示,所述的行程长度编码器159在输入数据流中探测一个0或1的行程。一行中的第一个行程假定为白色(color 0)。每个行程都假定和前一个行程的颜色相反。如果第一个行程的实际颜色为黑色(color1),那么行程长度编码器在行的起始部位生成一个长度为零的白色行程。行程长度编码器在内部记录当前颜色的变化。

    每个时钟周期内,行程长度编码器从输入数据流中读取的最大位数为8位。所述行程长度编码器使用一个2字节输入缓冲器190读出一个16位桶形移位器191中的数据。所述16位桶形移位器191的左(最高位)边界总是对准位数据流的当前位置。与所述桶形移位器相连的编码器192根据表19对一个8位(局部)的行程长度进行解码。所述编码器192使用当前颜色识别适当颜色的行程。

    由8位行程长度编码器生成的所述8行程长度被加到行程长度寄存器193中的值上。当8位行程长度编码器探测到当前行程的结尾时,生成一个由就位寄存器194锁存的”end of run”信号。所述就位寄存器194的输出指明编码器已经完成对当前行程长度的编码,并积累在行程长度寄存器193中。所述就位寄存器194的输出也用于终止8位行程长度解码器192。终止时,所述8位行程长度解码器192输出一个零长度的扫描和一个0”end of run”信号,有效地终止整个行程长度解码器。             表19 8位行程长度解码器表颜色    输入    长度end-of-run(扫描结束)
    0    0000 0000    8    0    0    0000 0001    7    1    0    0000 001x    6    1    0    0000 01xx    5    1    0    0000 1xxx    4    1    0    0001 xxxx    3    1    0    001x xxxx    2    1    0    01xx xxxx    1    1    0    1xxx xxxx    0    1    1    1111 1111    8    0    1    1111 1110    7    1    1    1111 110x    6    1    1    1111 10xx    5    1    1    1111 0xxx    4    1    1    1110 xxxx    3    1    1    110x xxxx    2    1    1    10xx xxxx    1    1    1    0xxx xxxx    0    1


    8位行程长度解码器192的输出受到剩余的页面宽度的限制。实际的8位行程长度从剩余的页面宽度中减去,并加到模数为8的位上,用于控制桶形移位器191并为字节数据流输入提供时钟信号。

    外部的“复位”(reset)线用于在一行的开始处复位行程长度解码器。所述线复位当前颜色并把页面宽度锁存到页面宽度寄存器中。外部的“下一扫描”(next run)线用于从行程长度编码器申请对一个新的行程长度进行编码。所述线转换当前颜色,并复位行程长度寄存器和就位寄存器。如果没有结束,外部的“刷新”(flush)线用于刷新行程的最后字节。其可以用于在逐行对齐的基础上,处理字节对齐的行,或者用于在图象基础上处理一个字节对齐的图象。

    外部的“就位”(ready)线指明行程长度解码器是否可以用于对一个行程长度进行解码,当前行程长度可在行程长度“runlength”线上得到。所述线可以用于终止外部逻辑电路。

    7.2.3JEPG解码器

    如图23所示,JEPG解码器143解码采用JEPG压缩的CMYK连续色调图象。

    所述JEPG解码器的输入是一个JEPG位数据流。所述JEPG解码器的输出是一系列连续色调CMYK图象行。

    解压缩时,所述JEPG解码器以8×8象素块的形式写输出。所述象素块有时通过一个代码结合紧密的页宽×8缓冲器转化成一个全宽的行。这需要一个67KB的缓冲器。如图23所示,我们使用带有共享总线访问连接和8个相应的DMA信道的8个并行象素FIFO进行代替。

    7.2.4浓淡处理器/复合器

    如图24所示,浓淡处理器/复合器单元(HCU)141,把连续色调CMYK层浓淡处理成双值CMYK并把黑色层叠加在浓淡处理后的连续色调层上。

    所述HCU的输入是一个扩展后的267ppi CMYK连续色调层200和一个扩展后的1600dpi双值黑色层201。所述HCU的输出是一系列的1600dpi双值CMYK图象行202。

    一旦开始工作,所述HCU一直工作直到其探测到一个“end-of-page”为止,或者直到其被控制寄存器终止。

    所述HCU生成一个由点组成的具有确定的宽度和长度的页面。所述的宽度和长度必须在启动HCU之前,写入到页宽寄存器和页长寄存器中。所述页宽对应于打印头171的宽度。所述页长对应于目标页的长度。

    所述HCU在指定的相对于页面宽度的左、右边距之间生成目标页面数据。左、右边距必须在启动HCU之前,写入到左、右边距寄存器中。从左边到右边的距离对应于目标页面宽度。

    所述HCU根据指定的黑色页面宽度172和连续色调页面宽度173使用黑色和连续色调数据。所述页面宽度必须在启动HCU之前写入“blackpage width”和“continuous-tone page width”寄存器中。所述HCU根据目标页面宽度174剪辑黑色和连续色调数据。这使得黑色和连续色调页面宽度可以超过目标页面宽度,而不用在输入FIFO级别上申请任何特殊的行结尾逻辑。

    图25说明了页面宽度171、黑色页面宽度172、连续色调页面宽度173和页边空白之间的关系。

    所述HCU基于具体的放大系数,在水平和垂直方向把连续色调数据放大至打印机分辨率。所述的放大系数必须在启动HCU之前,写入到连续色调放大倍数寄存器中。               表20浓淡处理器/复合器控制与设置寄存器寄存器宽度  说明start1  启动HCU。stop1  HCU停机。page width14  打印页的页面宽度,以点数计算。即必须为每一  行生成多少个点。left margin14  左页边距,以点数计算。right margin14  右页边距,以点数计算。page length15  打印页的页面长度,以点数计算。即必须为每一  页生成多少行。black pagewidth14  黑色层的页面宽度,以点数计算。用于探测一个  黑色行的结尾。continuous-tone page width14  连续色调层的页面宽度,以点数计算。用于探测  一个连续色调行的结尾。continuous-tonescale factor4  放大倍数,用于把连续色调数据放大至双值分辨  率。


    所述HCU生成的数据由打印头接口使用。所述打印头接口需要平面格式的双值CMYK图象数据,也就是说各颜色平面是分离的。更进一步,所述打印头接口还要求奇象素与偶象素是相互分离的。HCU在输出阶段使用8个并行的象素FIFO,分别用于偶青色、奇青色、偶洋红色、奇洋红色、偶黄色、奇黄色、偶黑色、奇黑色。

    输入连续色调CMYK FIFO是一个全8KB行缓冲器。通过把所述行复制连续色调放大倍数次,而实现竖直方向的放大。直到行的最后一次使用开始后,FIFO写地址才可以无效。一个可选方案是从主存储器读取行,读取的次数等于连续色调放大倍数。把存储器的传输速度提高65MB/s,但是避免使用单片的8KB行缓冲器。

    7.2.4.1多阈值抖动

    一个通用256层的抖动容量通过分离不同的浓度水平,为抖动元设计提供了巨大的柔性。通常的抖动容量非常大,比如64×64×256的抖动容量,大小可为128KB。对此种抖动器的存取是低效率的,因为每个颜色成分都要求在抖动中取得不同的位。实际上,不需要完全分离抖动容量的每一层。所述抖动容量的每一个点列可以作为一套设定的阀值,而不是256个分离的位。比如使用3个8位阀值,仅仅需要24位。n个阀值设定n+1个浓度间隔,其中,相应的抖动元的位置可以是设定的或未设定的。连续色调象素值被抖动处理为n+1个间隔中确定的一个,这决定了相应输出点的值。

    我们采用一个3阀值64×64×3×8位(12KB)的抖动容量对连续色调数据进行抖动处理。所述的3个阀值构成一个方便的、可以在一个循环内从抖动元ROM检索到的24位值。如果需要用于颜色平面抖动元的注册表,相同的3阀值的值可以一次检索到,用于对每个颜色的成分进行抖动处理。如果不需要抖动元注册表,抖动元可以分为四个分元,存储在四个分离的可寻址ROM中,这样四个不同的3阀值的值可以在一个循环中并行地从所述可寻址ROM中检索出来。使用图26中所示的寻址方案,四个颜色平面在竖直和/或水平分支上共享相同的抖动元。

    如图26表示多阀值抖动203。多阀值单元204把一个3阀值的阀值和一个亮度值转化到一个浓度间隔中,也就是一个0或1的位。所述3阀值的规则如表21所示。相应的逻辑电路208如图27所示。

    更详细细节参见图26,采用标号204统一指示四个分离的3阀值单元,其中的每一个都收到一系列与CMYK信号各自的颜色成分对应的连续色调彩色象素值。所述抖动容量被分成采用标号205统一指示的4个抖动分元A、B、C和D。抖动元地址生成器206和采用标号207统一指示的4个门,控制所述的四个不同的3阀值的阀值检索,所述阀值可以在一个循环内全部检索到以用于不同的颜色。         表21 3阀值规则    间隔    输出    V<T1    0    T1<V≤T2    1    T2<V≤T3    0    T3<V    1


    7.2.4.2复合

    复合单元205把一个黑色层的点复合到一个浓淡处理后的CMYK层点上。如果黑色层的不透明度为1,那么浓淡处理后的CMY被设定为0。

    给定一个4位浓淡处理后的颜色CcMcYcKc和一个一位的黑色层不透明度Kb,合成和剪切逻辑见表22。  表22复合逻辑表
    颜色信道    状态    C    Cc_﹁Kb    M    Mc_﹁Kb    Y    Yc_﹁Kb    K    Kc_Kb


    7.2.4.3时钟启用信号生成器

    时钟启用生成器206生成启用信号,用于为连续色调CMYK象素输入、黑色点输入和CMYK点输出提供时钟频率信号。

    如前所述,连续色调象素输入缓冲器既用作行缓冲器又用作FIFO。每一行读一次,然后使用与连续色调放大倍数相等的次数。直到最后一次复制该行开始,FIFO写地址连接无效,同时时钟启用生成器生成一个连续色调行预先启用信号,该信号使地址可以连接。

    所述时钟启用生成器还生成一个“偶”信号用于选择偶或奇输出点FIFO,所述时钟启用生成器还生成一个“页边距”信号用于当当前点的位置位于页的左、右空白区域时生成白色的点。

    所述时钟启用生成器使用一组计数器。计数器的内部逻辑设定如表23。时钟启用信号的逻辑表如表24所示。

                            表23时钟启用生成器计数器逻辑表  计数器  缩写位数  数据  载入条件递减条件  dot   D 14  页宽  RPa_EOLb(D>0)^clk  line   L 15  页长  RP(L>0)^EOL  left  margin   LM 14  左边距  RP_EOL(LM>0)^clk  right  margin   RM 14  右边距  RP_EOL(RM>0)^clk  even/odd  dot   E 1  0  RP_EOLclk  black dot  BD 14  黑色宽度  RP_EOL(LM=0)^(BD>0)^clk  continuo  us-tone  dot  CD 14  连续色调宽  度  RP_EOL(LM=0)^(CD>0)^clk  continuo  us-tone  sub-pixel  CSP 4  连续色调放  大倍数  RP_EOL_  (CSP=0)(LM=0)^clk  continuo  us-tone  sub-line  CSL 4  连续色调放  大倍数  RP_(CSL=0)EOL^clk                           a RP(复位页)条件:外部信号                           b EOL(行尾)条件:(D=0)^(BD=0)^(CD=0)


              表24时钟启用生成器输出信号逻辑表输出信号条件输出点时钟启用(D>0)^﹁EOPa黑色点时钟启用(LM=0)^(BD>0)^﹁EOP连续色调象素时钟启用(LM=0)^(CD>0)^(CSP=0)^﹁EOP连续色调行预先启用(CSL=0)^﹁EOPE=0页边距(LM=0)_(RM=0)           aEOP(页末)条件:L=0


    7.3打印头接口

    打印头接口(PHI)142是用于处理器把待打印的点载入Memjet打印头并控制实际的点打印过程的装置。所述打印头接口(PHI)142包括:

    一个行载入器/格式单元(LLFU)209,所述单元把一个给定的打印行载入到本地缓冲器存储,并将其格式化为Memjet打印头需要的顺序。

    一个Memjet接口(MJI)210,所述接口把数据传送到Memjet打印头63,并在打印的过程中控制喷嘴启动的顺序。

    所述打印头接口(PHI)142中的单元由多个寄存器控制,所述接寄存器由处理器139编程。另外,所述处理器可以在DMA控制器144中设定用于存储器到LLFU数据传送的适当参数。这包括在一页的开始或结尾时把白色(都是0)载入到适当的颜色,使得页面有清晰的边界。

    打印头接口(PHI)142的内部结构如图28所示。

    7.3.1行载入器/格式单元

    所述行载入器/格式单元(LLFU)209把一个给定打印行的点载入到本地缓冲器中存储并将其格式化为Memjet打印头所需要的顺序。所述单元用于向Memjet接口提供预计算的喷嘴可用位,以实现页面的顺利打印。

    8英寸打印头中的一行包括12800个4色点。每个颜色1位,一个单独的打印行包括51200位。这些位必须以正确的顺序发送到打印头。载入循环中点载入顺序更详细的内容见6.1.2.1部分,但是总括地说,有32位同时传送到两个4英寸打印头的每一个,所述32位代表8个片段中每个片段四个点。

    打印使用双缓冲方案预备和存取点-位信息。当一行被载入到第一缓冲器213中时,在第二缓冲器214中预先载入的行正在被以Memjet点的顺序被读取。一旦整个行已经通过Memjet接口被从第二缓冲器214传送到打印头,所述的读和写处理交换缓冲器。读取第一缓冲器213,而把新的一行的数据载入到第二缓冲器中。在这个打印过程中,不停地重复此过程,就如同图29中所概括表示的一致。

    所述LLFU的实际运行如图30所示。既然在一个缓冲器被读取的过程中,另一个缓冲器在被写入,所以必须使用两套地址线。从公共数据总线引出的32位DataIn的载入依赖状态机根据DMA的应答所生成的写启用信号。

    多路转接器215在缓冲器0,213和缓冲器0,214的两个4位输出中选择一个,并采用4位移位寄存器把结果发送到一个8入口。在第一个8位读取循环之后,从MJI发出一个推进脉冲,来自移位寄存器的当前32位值被传送给32位传送寄存器217,在所述32位传送寄存器217中的当前32位数值可以由MJI使用。

    7.3.1.1缓冲器

    两个缓冲器213和214中的每一个都被分成4个分缓冲器220、221、222和223——每个颜色一个。如图31所示,所有的偶数点在奇数点之前被送入颜色缓冲器中。

    代表待打印的下一行中的点的51200个位,每个颜色缓冲器存储12800个位,作为400个32位代码字存储起来。第一部分200个32位代码字(6400位)代表各颜色的偶数点,而第二部分200个32位代码字(6400位)代表各颜色的奇数点。

    地址解码电路设计使得在一个给定的循环中可以同时对所有的4个分缓冲器进行一个32位的存取——既可以从全部的四个中读取,也可以向4个中的一个写入。32位中只有一位从选定的每个颜色缓冲器中读取,一共4个输出位。所述过程如图32所示。地址的13位用于读取一个特殊的位:地址的8位用于选择32位,地址的5位从所述32位中选择一位。既然所有的颜色缓冲器共享此逻辑电路,一个单独的13位地址一共给出4位输出,每个颜色一位。每个缓冲器都有自己的写启用线,允许一个32位值可以在一个给定的循环中写到一个特定的颜色缓冲器中。因为实际上只有一个缓冲器根据时钟信号读入信息,所以32位的DataIn是共享的。

    7.3.1.2地址生成

    7.3.1.2.1读取

    用于读取的地址的生成是直接了当的。每个循环中,生成一个位地址,用于得到指定片段中每个颜色一位的4个数据位。通过在当前位地址上加上400,我们得到下一个片段的相应点的位。因为在缓冲器中,偶数与奇数点的存储是分离的,所以加400,而不是800。如此作16次,可以检索到两套32位,用于两套代表偶数点的8个片段(得到的数据一次传输给MJI 32位),再作16次,以载入奇数点。这种32位操作重复400次,每次都使起始地址增加。这样,在400×32个循环中,总共有400×32×4(51200)个点被以打印头需要的顺序传送。

    此外,我们生成传送写启用控制信号。既然LLFU在MJI之前启动,我们必须在来自MJI的预先脉冲之前传送第一个值。我们还必须生成为第一个预先脉冲准备的下一个32位值。解决办法在于在8个循环后把第一个32位值传送给传送寄存器,然后延迟8个循环,等待预先脉冲启动下一个8循环组。一旦第一个预先脉冲到达,LLFU与MJI同步。然而,MJI必须至少在LLFU启动16个循环之后启动,使得初始的传输值是有效的并且下一个32位值已经就位可以被载入到传送寄存器中。

    读取过程如下述的伪代码所示:DotCount=0For DotInSegrnent0=0 to 400   CurrAdr=DotInSegment0   Do

     V1=(CurrAdr=o)OR(CurrAdr=3200)

     V2=Low 3 bits of DotCount=0

     TransferWriteEnable=V1 OR ADVANCE

     Stal1=V2 AND(NOT TransferWriteEnable)

     If(NOT Stall)

        Shift Register=Fetch 4-bits from CurrReadBuffer:CurrAdr

        CurrAdr=CurrAdr+400

        DotCount=(DotCount+1)MOD 32(odd&even,printheads 1&2,segments 0-7)

     EndIf  Until(DotCount=0)AND(NOT Stall)EndFor

    一旦行已经结束,CurrReadBuffer的值必须由处理器触发。

    7.3.1.2.2写入

    写入的过程也是直接了当的。4根DAM请求线被输出到DMA控制器。当MDA应答线返回的信号满足请求信号后,相应的8位目的地址被选定(13位输出地址低位的5位与值没有关系),并且应答信号被传送到正确的缓冲器的写启用控制线(当前的写缓冲器是CurrentReadBuffer)。8位目的地址被从4个当前地址中选出,每个颜色一个地址。当DMA请求被满足后,相应的目的地址递加,相应的TransfersRemaining计数器递减。仅仅当颜色对应传送剩余的位为非零值时,才设定所述DMA请求线。

    写入过程如下述的伪代码所示:CurrentAdr[0-3]=0While(TransfersRemaining[0-3]are all non-zero)  DMARequest[0-3]=TransfersRemaining[0-3]!=0  If DMAAknowledge[N]

     CurrWriteBuffer:CurrentAdr[N]=Fetch 32-bits from data bus

     CurrentAdr[N]=CurrentAdr[N]+1

     TransfersRemaining[N]=TransfersRemaining[N]-1(floor 0)  EndIfEndWhile

    7.3.1.3寄存器

    下列的寄存器包含在LLFU中:

                         表25行载入/格式化单元寄存器寄存器名称说明CurrentReadBuffer被读取的当前缓冲器。当缓冲器0被读取时,缓冲器1被写入,反之亦然。应该由从MJI发出的AdvanceLine脉冲触发。Go位0和1分别控制读取与写入过程的开始。把非零值写入适当的位启动此过程。Stop位0和1分别控制读取与写入过程的结束。把非零值写入适当的位结束此过程。TransfersRemainingC待读取到Cyan缓冲器中的32位数据中剩余的位数TransfersRemainingM待读取到Magenta缓冲器中的32位数据中剩余的位数TransfersRemainingY待读取到Yellow缓冲器中的32位数据中剩余的位数TransfersRemainingK待读取到Black缓冲器中的32位数据中剩余的位数


    7.3.2Memjet接口

    Memjet接口(MJI)211把数据传送到Memjet打印头63,并控制喷嘴在打印过程中启动的顺序。

    MJI是一个简单的状态机(参看图28),遵循6.1.2部分所描述的打印头载入和启动的顺序,并包括6.1.4部分和6.1.5部分所描述的预热循环和清洗循环中的功能。高速打印和低速打印都是可用的。每个颜色的点的计数也在MJI中进行。

    MJI从两个数据来源中选择一个,把其中的数据载入到打印头中。

    都是1。这意味着所有的喷嘴将在随后的打印循环中全部启动,这还是用于把数据载入打印头以实现预热和清洗循环的标准机制。

    LLFU中传送寄存器保存的32位输入数据。这是打印一幅图象的标准方法。来自LLFU中的32位值被直接发送到打印头,并且一个1位的“Advance”控制脉冲被发送到LLFU。在每一行的结尾,一个一位的“AdvanceLine”脉冲也是可用的。

    必须在LLFU已经准备好第一个32位传送值之后,才能启动MJI。这样使得32位数据输入将是有效的,可以用于第一次传送到打印头。

    因此,MJI直接与LLFU和外部的Memjet打印头相连接。

    7.3.2.1与打印头的连接

    MJI 211具有连接到打印头63的下列连接,考虑到对MJI进行的输入和输出。所述连接的名称与打印头上的引脚匹配(参见采用举例方式说明8英寸打印头线路连接关系的6.2.1部分)

                               表26 Memjet接口连接名称  引脚   数I/O    说明ChromapodSelect    3 O    选择启动哪一个色度小群(0-4)NozzleSelect    4 O    从喷嘴小群中选择启动哪一个喷嘴(0-9)PodgroupEnable    2 O    使群组可以启动(可选:01、10、11)AEnable    1 O    群组A的启动脉冲BEnable    1 O    群组B的启动脉冲CDataIn[0-7]    8 O    向片段0-7的青色移位寄存器输出数据MDataIn[0-7]    8 O    向片段0-7的洋红色移位寄存器输出数据YDataIn[0-7]    8 O    向片段0-7的黄色移位寄存器输出数据KDataIn[0-7]    8 O    向片段0-7的黑色移位寄存器输出数据SRClock1    1 O    SRClock(ShiftRegisterClock)上的一个脉冲,    用于把当前值从CdataIn[0-7]、    MDataIn[0-7]、YDataIn[0-7]和KDataIn[0-7]    载入到4英寸打印头1的32位移位寄存器中。SRClock2    1 O    SRClock(ShiftRegisterClock)上的一个脉冲,    用于把当前值从CdataIn[0-7]、    MDataIn[0-7]、YDataIn[0-7]和KDataIn[0-7]    载入到4英寸打印头2的32位移位寄存器中。PTransfer    1 O    把数据从移位寄存器并行地传送到打印头内    部的NozzleEnable位(每个喷嘴一位)。SenseSegSelect1    1 O    SenseSegSelect上的一个脉冲与CdataIn[n]    上的数据逻辑“与”,使4英寸打印头1中片    段n的传感线可用。SenseSegEnable2    1 O     SenseSegSelect上的一个脉冲与CdataIn[n]    上的数据逻辑“与”,使4英寸打印头1中的    片段n的传感线可用。Tsense    1 I    温度检测Vsense    1 I    电压检测Rsense    1 I    电阻检测Wsense    1 I    宽度检测TOTAL    52


    7.3.2.2启动脉冲持续时间

    AEnable和BEnable线上启动脉冲的持续时间取决于墨水的粘度(取决于温度和墨水的特性)和可用于打印头的能量的多少。典型的脉冲持续时间范围为1.3-1.8微秒。因此MJI包括一个可编程的脉冲持续时间表230,根据打印头的反馈进行检索。脉冲持续时间表使得可以使用较低成本的电源供应装置,并有助于提高喷墨精度。

    所述脉冲持续时间表具有256个入口,由当前的Vsense 231和当前的Tsense 232根据索引进行检索。地址的高端4位来自Vsense 231,而低端4位来自Tsense 232。每个入口为8位,代表一个位于0-4微秒之间的确定值。生成AEnable和BEnable线信号的过程如图33所示。模拟信号Vsense 231和Tsense 232由相应的采样和保持电路233和234接收,然后在用于脉冲持续时间表230之前,由相应的转化器235和236转化为数字代码字。脉冲持续时间表230的输出被发送给一个脉冲宽度生成器237,以生成启动脉冲。

    所述256位的表是由CPU在打印第一页时写入的。如果需要,可以在页面之间刷新所述表。表中的每个8位脉冲持续时间入口结合了:

    ·用户亮度设置(来自页面描述)

    ·墨水粘度曲线(来自QA芯片)

    ·Rsense

    ·Wsense

    ·Vsense

    ·Tsense

    7.3.2.3点记数

    MJI 211在一个点记数寄存器240中保存打印头中启动的每一个颜色的点的记数。每个颜色的点的记数是一个32位的值,在处理器的控制下,由一个信号241个别地清除。在32位的长度上,每个点计数器最大可以记录一个可覆盖17个12英寸页面的点数,虽然通常使用中,点记数是每页记数与清除的。

    处理器使用点记数以刷新QA芯片85(见7.5.4.1部分),以便预测墨盒中的墨用尽的时间。处理器从QA芯片知道墨盒中C、M、Y和K每种颜色墨水的量。对墨滴进行记数就可以省去墨水传感器,并可以防止墨水通道无墨运转。每一页打印完后,把更新后的墨滴记数写入到QA芯片中。除非剩有足够的墨水,否则不会打印新的页面,这使得用户可以及时更换墨盒,而不会出现页面打印到一半无墨需要重新打印的情况。

    用于青色的点计数器的结构如图34所示。其它3个点计数器(分别用于洋红色、黄色和黑色的MDotCount,YDotCount,and KDotCount)的结构相同。

    7.3.2.4寄存器

    处理器139通过一个寄存器装置与MJI 211通讯。所述寄存器使处理器可以确定打印的参数并接收有关打印进程的反馈信号。

    MJI包括下列的寄存器:

                                 表27 Memjet接口寄存器  寄存器名称                        说明  打印参数  NumTransfers  加载打印头所需寄存器的数量(通常为1600)。这是对  应一个给定的行,所需的SRClock线总脉冲数和所需传  输的32位数据的总个数。  PrintSpeed  采用低速还是高速打印模式(在打印过程中,决定  PodgroupEnable线上的值)。  NumLines  加载/打印循环执行的次数  监控打印  Status  Memjet接口的状态寄存器  LinesRemainin  g  剩余待打印行的数量,仅仅在Go=1时有效。  初始值为NumLines.  TransfersRema  ining  在打印头准备载入当前行时剩余的寄存器数量,仅仅在  Go=1时有效。  SenseSegment  在一个随后的SenseSegselect脉冲过程中,设定在Cyan  数据线上的8位值。8位中应该只有一位被设定为1,对  应8个片段中的一个。如何确定检测哪一个4英寸打印  头参见SenseSegSelect。  SetAllNozzles  如果为非零值,在LoadDots进程中,写入到打印头中的  32位的值全部都是1,因而在后续的PrintDots进程中所  有的喷嘴将都被启动。这用于预热和清洗循环。  如果为0,写入打印头的32位的值来自LLFU。这用于  打印正常图象。  操作  Reset  写此寄存器将复位MJI,停止任何加载和打印进程,并  把所有的寄存器加载为0。  SenseSegSelec  t  采用任何值对此寄存器写入清除Status寄存器的  FeedbackValid位,并取决于低位,如果LoadingDots和  PrintingDots的状态位都为0,向SenseEnable1或  SenseEnable2线上发出一个脉冲。如果任何状态位被设  定为1,Feedback位被清零并且不再进行其它操作。  一旦检测了各个检测线,其值被放置在Tsense、Vsense、


     Rsense和Wsense寄存器中,并且Status寄存器的Feedback位被设为1。Go此位写入1,启动LoadDots/PrintDots循环。将打印总数达NumLines的多个行,每行包括NumTransfers个32位的数据传输。每打印一行,LinesRemaining递减,TransfersRemaining从NumTransfers中重新加载。状态寄存器包含打印状态信息。一旦NumLines完成,载入/打印进程结束,Go位被清零。在最后的打印循环中,没有数据被加载到打印头中。此位写入0将结束打印进程,但是不对任何其它寄存器清零。ClearCounts写此寄存器,将对应于被设定的0、1、2或3位把相应的CdotCount、MdotCount、YdotCount和KdotCount寄存器清零,写入0没有作用。                             反馈Tsense发送到片段SenseSegment的最新SenseSegSelect脉冲的Tsense的只读反馈,只有在Status寄存器的FeedbackValid位被设定时有效。Vsense发送到片段SenseSegment的最新SenseSegSelect脉冲的Vsense的只读反馈,只有在Status寄存器的FeedbackValid位被设定时有效。Rsense发送到片段SenseSegment的最新SenseSegSelect脉冲的Rsense的只读反馈,只有在Status寄存器的FeedbackValid位被设定时有效。Wsense发送到片段SenseSegment的最新SenseSegSelect脉冲的Wsense的只读反馈,只有在Status寄存器的FeedbackValid位被设定时有效。CDotCount发送到打印头的青色点的32位只读的记数MDotCount发送到打印头的洋红色点的32位只读的记数YDotCount发送到打印头的黄色点的32位只读的记数KDotCount发送到打印头的黑色点的32位只读的记数


    MJI的Status寄存器是一个16位的寄存器,其各位的含义如下:                         表28 MJI Status寄存器名称位数说明LoadingDots 1如果设定,MJI当前载入点,采用在TransfersRemaining中剩余的待传送的点的数量。如果清零,MJI当前不载入点。PrintingDots 1如果设定,MJI当前打印点。如果清零,MJI当前不打印点。PrintingA 1当在AEnable线上有脉冲时,此位被设定。PrintingB 1当在BEnable线上有脉冲时,此位被设定。FeedbackValid 1当反馈值Tsense、Vsense、Rsense和Wsense有效时,此位被设定。Reserved 3-PrintingChromapod 4在PrintingDots状态位被设定时,保存被启动的当前色度小群。PrintingNozzles 4在PrintingDots状态位被设定时,保存被启动的当前喷嘴。


    7.3.2.5预热和清洗循环

    通过设定下列的寄存器,可以简单地完成预热和清洗循环。

    ·设定AllNozzles=1

    ·把PulseDuration寄存器设定为一个低持续时间(在预热模式下),或者为清洗模式设定一个适当的喷墨持续时间。

    ·把NumLines设定为喷嘴应被启动的次数

    ·设定Go位,然后等待Go位在打印循环完成后被清零。

    7.4处理器和存储器

    7.4.1处理器

    处理器139运行控制程序,使其它功能单元在页面接收、扩展和打印过程中同步运转。所述处理器139运行设备驱动程序,驱动各种外部接口,并通过用户接口响应用户的操作。

    所述处理器必须具有短的中断响应时间,以提供高效的DMA管理,否则,不需要性能特别高的DMA控制器。

    所述DMA控制器支持27个信道(见表29)上的单地址传送。所述DMA控制器在传送完成时为处理器生成矢量中断                表29 DMA信道使用情况 功能单元   输入信道    输出信道 USB接口    -    1 EDRL扩展器    1    1 JPEG解码器    1    8 浓淡处理器/复合器    2    8 扬声器接口    1    - 打印头接口    4    -    8    19    27


    7.4.3程序ROM

    程序ROM保存ICP控制程序,所述程序在系统启动时被载入到主存储器中。

    7.4.4Rambus接口

    Rambus接口为外部的8MB(64Mbit)Rambus DRAM(RDRAM))提供高速接口。

    7.5外部接口

    7.5.1USB接口

    通用数据串行总线(USB)接口提供一个标准USB设备接口。

    7.5.2扬声器接口

    扬声器接口250(图35)包括一个用于DMA从主存储器传送声音片段的小FIFO 251、一个把每个8位采样值转化为电压的8位数-模转换器(DAC)252和一个为外部扬声器馈电的放大器253。当所述FIFO为空时,输出一个为0的值。

    扬声器接口按声音片段中的频率进行定时。

    处理器通过编程外部扬声器的DMA信道,简单地把一个声音片段输出到扬声器。

    7.5.3并行接口

    并行接口231在多个并行的外部信号线上提供I/O。使得处理器可以检测或控制表30中所列的设备。

     表30并行接口设备并行接口设备电源按键进纸按键电源LED缺纸LED低墨量LED打印介质传感器纸传送步进电机


    7.5.4串行接口

    串行接口232提供两个标准的低速串行端口。

    一个端口用于连接主QA芯片85。另一个端口用于连接墨盒233中的QA芯片。两者之间的处理器中间层协议用于鉴别墨盒。处理器能够从QA芯片中检索墨水的特性,也可以检索到各种墨水的剩余量。处理器使用所述的墨水特性正确地设置Memjet打印头。所述处理器使用墨水剩余量的参数——根据打印头接口积累的墨水消耗信息一页一页地更新,确保打印头不会因无墨运转而损坏。

    7.5.4.1墨盒QA芯片

    墨盒中的QA芯片233包括用于维持可达到的最佳打印质量的信息,使用一个鉴别芯片实现。鉴别芯片中数据的256位设置如下:        表31墨盒的256位(16个16位的项目) M[n]存取宽度  说明  0ROa  16  基本的首部,如标记等等


        1 RO 16  序列号   2 RO 16  批号   3 RO 16  为下一个扩展预留,必须为0   4 RO 16  青色墨水特性   5 RO 16  洋红色墨水特性   6 RO 16  黄色墨水特性   7 RO 16  黑色墨水特性   8-9 DOb 32  剩余的青色墨水,以纳升表示   10-11 DO 32  剩余的洋红色墨水,以纳升表示   12-13 DO 32  剩余的黄色墨水,以纳升表示   14-15 DO 32  剩余的黑色墨水,以纳升表示                   a只读(RO)                   b只能递减(DO)


    在每一页打印之前,处理器必须检查剩余的墨水量以确保剩余墨水足以打印一页最坏情况的页面。一旦所述页面打印完成,处理器把每个颜色墨水总的滴数(从打印头接口得到)乘以一个墨滴的体积。打印消耗的墨水量被从剩余的墨水量中减去。剩余墨水量的计量单位是纳升,所以32位可以表示超过4升的墨水量。打印一页所使用的墨水量必须向上取整成最接近的纳升(大致相当于1000个打印点)

    7.5.5JTAG接口

    外部接口中包括一个用于检测的标准联合测试行动小组JTAG(JointTestAction Group)接口。由于芯片的复杂性,需要采用多种检测技术,包括内置式自检测BIST(Build In Self Test)和分离功能部件。整个芯片测试线路大约占用整个芯片面积的10%。

    8.通用打印机驱动程序

    本部分描述用于iprint的基于任一主机的打印机驱动程序的通用方面。

    8.1图形与图象模式

    我们假定打印机驱动程序与主机的图形系统结合紧密,所以打印机驱动程序可以为不同的图形和图象操作(特别是复合操作和文本操作)提供设备特定的处理方式。

    我们假定主机为颜色管理提供支持,所以设备特定的颜色可以采用标准的方式转化为iprint特定的CMYK颜色——基于一个用户选定的iprint特定国际颜色协会ICC(International Color Consortium)颜色配置文件。所述颜色配置文件通常由用户隐含地选定——当用户指定打印机的输出介质时(比如,普通纸张、铜版纸、幻灯片等等)。发送到打印机的页面描述通常包括设备特定的CMYK颜色。

    我们假定主机图形系统把图象和图形渲染成由打印机驱动程序指定的名义分辨率,但是所述图形系统允许打印机驱动程序控制对文本的渲染。特别是所述图形系统为打印机驱动程序提供足够的信息,使其能够以比名义设备分辨率更高的分辨率渲染和定位文本。

    我们假定主机图形系统需要以名义设备分辨率随机存取连续色调页面缓冲器,把图形和图象对象复合到连续色调页面缓冲器中去,但是允许打印机驱动程序控制实际的复合,也就是说主机图形系统期望打印机驱动程序管理页面缓冲器。

    8.2双层页面缓冲器

    打印机的页面描述包括一个267ppi的连续色调层和一个800dpi的黑色层。所述黑色层在概念上位于连续色调层之上,也就是说黑色层被打印机复合在连续色调层之上。因此打印机驱动程序包括一个页面缓冲器260,所述页面缓冲器260相应地包括一个中等分辨率的连续色调层261和一个高分辨率黑色层262。

    所述图形系统由上至下地把对象渲染并复合到页面缓冲器中,也就是说在后的对象遮盖在先的对象。这实际发生在只有一层的情况下,在有两层的情况下,将在以后进行复合。因此当连续色调层上的对象遮盖黑色层上的某些对象时,必须进行检测。

    当检测到遮盖后,被遮盖的黑色象素与连续色调层复合并被从黑色层删去,遮盖对象位于连续色调层上,可能会以某种方式与黑色对象相互作用。如果遮盖物合成时能够不与背景发生相互作用,那么可以简单地丢弃黑色象素,而不将其与连续色调层复合。实际上,如果连续色调层和黑色层的相互作用较小,也可以如此操作。

    打印机驱动程序为所述图形系统设定一个267ppi的名义页面分辨率。打印机驱动程序可能能够依靠所述图形系统把图象和图形对象渲染到267ppi象素水平——黑色文本除外。打印机驱动程序及时回复所有的文本渲染申请,以800dpi检测和渲染黑色文本,但是把非黑色文本渲染申请传回图形系统以267dpi渲染。

    理想状态下,图形系统与打印机驱动程序以独立于设备的RGB方式处理颜色,把转化为设备特定CMYK的过程推延到页面已经完成并且可以发送到打印机时进行。这减少了对页面缓冲器的需求并且使复合更加合理。在CMYK颜色空间进行复合是不理想的。

    最后,图形系统要求打印机驱动程序把每一个渲染后的对象复合到打印机驱动程序的页面缓冲器中。每一个对象使用24位连续色调RGB位图,并且有一个明确的(或隐含地不透明的)不透明性信道。

    打印机驱动程序分三部分运转所述双层页面缓冲器260。第一部分是中等分辨率(267ppi)连续色调层261,此部分由一个24位RGB位图组成。第二部分是中等分辨率黑色层263,此部分由一个8位不透明位图组成。第三部分是高分辨率(800dpi)黑色层262,此部分由一个1位不透明位图组成。所述中等分辨率黑色层是所述高分辨率不透明层的一个采样。实践中,假定高分辨率是中等分辨率的整数n倍(也就是,n=800/267=3),每个中等分辨率不透明值通过对相应的n×n个高分辨率不透明值取平均值后得到。这相当于箱式过滤器采样。此种黑色象素的采样可以有效地防止高分辨率黑色层中的边界混淆,因而在随后的连续色调层JPEG压缩和解压缩时可以减少人为的颜色瞬变。

    页面缓冲器的结构和尺寸如图36所示。

    8.3复合模式

    为了论述页面缓冲器的复合模式,我们定义了下列变量。                         表32复合变量  变量  说明分辨率  格式  n  中等分辨率到高分辨率的放大  倍数  -  -  CBgM  背景连续色调层颜色  中等  8位颜色元素  CObM  连续色调对象颜色  中等  8位颜色元素  αObM  连续色调对象不透明度  中等  8位不透明度  αFgM  中等分辨率前景黑色层不透明  度  中等  8位不透明度  αFgH  前景黑色层不透明度  高  1位不透明度  αTxH  黑色对象不透明度  高  1位不透明度


    当一个不透明度为αTxH的黑色对象与黑色层复合时,所述黑色层更新如下:

    αFgH[x,y]←αFgH[x,y]_αTxH[x,y]   (规则1)

    αFgM[x,y]←             αFgH[nx+i,ny+j]         (规则2)

    对象的不透明度被简单地包含在黑色层的不透明度中(规则1),并且中等分辨率的黑色层的相应部分从高分辨率黑色层中重新算出(规则2)。

    当一个颜色为CObM且不透明度为αObM的连续色调对象与连续色调层复合时,所述连续色调层和所述黑色层更新如下:

    CBgM[x,y]←CBgM[x,y](1-αFgM[x,y])ifαObM[x,y]>0    (规则3)

    αFgM[x,y]←0 ifαObM[x,y]>0  (规则4)

    αFgH[x,y]←0 ifαObM[x/n,y/n]>0   (规则5)

    CBgM[x,y]←CBgM[x,y](1-αObM[x,y])+CObM[x,y]αObM[x,y](规则6)

    当连续色调对象遮盖黑色层时(甚至在不是完全不透明的情况下),受影响的黑色层象素被从黑色层推到连续色调层,也就是说,与连续色调层复合(规则3),并被从黑色层中去除(规则4和规则5)。然后连续色调对象与连续色调层复合(规则6)。

    如果连续色调对象象素是完全不透明的(即αObM[x,y]=255),由于背景连续色调象素会完全被前景遮盖(规则6),所以没有必要将相应的黑色象素推到背景连续色调层(规则3)。

    图37~41说明了把各种对象复合成由两层代表的图象对前景黑色层和背景连续色调层的作用过程。在各每种情况下,对所述两层在对象复合前后的状态都作了图示。前景层和背景层的不同分辨率采用不同的象素格密度表示。

    既然图象的实际渲染在此不是论述的焦点,代表所述两层的输出图象采用不带象素格的图片表示。

    中等分辨率的前景黑色层没有举例说明,但是被隐含地代表了。当规则1用于高分辨率前景黑色层时,规则2隐含地用于中等分辨率前景黑色层。当规则4被使用时,规则5也隐含地被使用了。

    图37说明把一个黑色对象270复合到一个白色图象上的过程。所述黑色对象被简单地复合到前景黑色层271(规则1)。背景连续色调层272不受影响,输出的图象273是黑色对象。

    图38说明把一个连续色调对象280复合到一个白色图象上的过程。所述连续色调对象280被简单地复合到背景连续色调层282(规则6)。前景黑色层281不受影响,输出的图象283是连续色调对象。

    图39说明把一个黑色对象290复合到一个已经包含一个连续色调对象的图象上的过程。所述黑色对象290还是被简单地复合到前景黑色层291(规则1)。背景连续色调层不受影响,输出的图象293带有黑色对象290和连续色调对象292。

    图40说明把一个不透明连续色调对象300复合到一个已经包含一个黑色对象301的图象上的过程。由于所述连续色调对象遮盖所述已经存在黑色对象的一部分,已经存在的双值对象受影响的部分被从前景黑色层302中去除(规则4)。不需要把受影响的部分复合到连续色调层,因为所述连续色调对象是完全不透明的,规则3被跳过去了。所述连续色调对象被照常复合到背景连续色调层303(规则6)。输出的图象304显示连续色调对象300,盖住黑色对象。

    图41说明把一个部分透明的连续色调对象310复合到一个已经包含一个黑色对象311的图象上的过程。由于所述连续色调对象部分透明地遮盖所述已经存在黑色对象的一部分,黑色对象受影响的部分被复合到连续色调层312(规则3),然后被从前景黑色层313去除(规则4)。然后所述连续色调对象被照常复合到背景连续色调层314(规则6)。

    最后的图象315显示所述连续色调象素的暗化,所述象素半透明地遮盖住已存在黑色对象的一部分。

    8.4页面压缩与传送

    一旦页面渲染完成,打印机驱动程序在图形系统中的颜色管理函数的帮助下,把连续色调层转化为iprint特定的CMYK。

    然后打印机驱动程序把黑色层与连续色调层压缩并打包成一个如同5.2部分所描述的页面描述。所述页面描述被通过假脱机系统传送到打印机。

    注意,所述黑色层被当作一系列1位的不透明度值操作,但是被当作一系列1位的黑色值被传送给打印机。虽然这两种解释是不同的,但是它们共用相同的表示法,所以,不需要数据转化。

    9Windows 9X/NT打印机驱动程序

    9.1Windows 9X/NT打印系统

    在Windows 9X/NT打印系统[8][9]中,打印机320是一个图形设备,并且有一个应用程序321通过图形设备接口322(GDI)与其通讯。打印机驱动程序图形DLL 323(动态连接数据库)实现由GDI提供的各种图形函数的独立于设备的特征。

    假脱机系统把页面传送给打印机,并且能够根据所述应用程序的打印申请驻留在不同的机器中。所述假脱机系统通过一个端口监视器334把页面传送到打印机,所述端口监视器处理与打印机的实际连接。可选的语言监视器335是打印机驱动程序的一部分,把附加的协议用于和打印机的通讯中,特别是解码来自代表假脱机系统的打印机的状态响应。

    打印机驱动程序用户接口DLL 336与用户接口相连,编辑打印机特定的性质,并报告打印机特定的事件。

    Windows 9X/NT打印系统的结构如图42所示。

    因为iprint使用USB IEEE-1284进行仿真,所以不再需要为iprint设置一个语言监视器。

    本部分的剩余部分描述打印机驱动程序图形DLL。该部分应该结合相应的Windows 9x/NT DDK文档[8][9]一起阅读。

    9.2Windows 9X/NT图形设备接口(GDI)

    GDI提供允许应用程序在设备表面画图的函数,所述设备表面通常是从显示屏幕或已打印页抽象出来的。对一个光栅设备,所述设备表面概念上是一个彩色位图。所述应用程序能够以独立于设备的方式在设备表面画图,也就是说,独立于设备的分辨率和颜色特性。

    所述应用程序可以随机存取整个设备表面。这意味着如果一个内存有限的打印机设备需要结合的输出,那么GDI必须缓存整个页面的GDI命令,并依次把它们重新放置到每个部分中。虽然这为应用程序提供了很大的灵活性,但是会对性能有不利影响。

    GDI支持颜色管理,借此应用程序提供的独立于设备的颜色被根据设备的标准国际颜色协会ICC(International Color Consortium)颜色配置文件,明确地翻译成依赖于设备的颜色。打印机驱动程序能够激活不同的颜色配置文件,比如根据于用户在驱动程序打印机管理属性表中对纸张种类的选择。

    GDI支持行和齿形轮廓的图形((轨迹)、图象和文本,轮廓图形、包括字体轮廓能够采用位图画笔模式描画并填充。图形和图象能够作几何变换并与设备表面的内容复合。Windows 95/NT4只提供逻辑合成操作,而Windows 98/NT5提供严格意义上的阿尔法合成[9]。

    9.3打印机驱动程序图形DLL

    理论上,一个光栅打印机使用Windows 98x/NT下的标准打印机驱动程序组件,并且这能使扩展打印机驱动程序的工作简单易行。这依赖于可以把设备表面模型化为一个位图。问题在于文本和图象必须采用相同的分辨率渲染。这或者牺牲文本的分辨率,或者生成太多的输出数据,而牺牲性能。

    如同前面所描述的,iprint采用不同的分辨率渲染黑色文本和图象,以优化两者的再现。因此,打印机驱动程序根据部分8中所描述的通常方法执行。

    因此,驱动程序采用如部分8.2中所述的方法操作一个双层三部分的缓冲器,这意味着所述打印机驱动程序必须管理设备表面,这反过来意味着打印机驱动程序必须协调GDI对设备表面的所有存取。

    9.3.1设备表面的管理

    所述打印机驱动程序必须支持多个标准函数,其中包括下列函数:                表33标准图形驱动程序接口函数函数描述DrvEnableDriver驱动程序图形DLL的初始进入点。返回驱动程序支持的函数的地址指针。DrvEnablePDEV产生一个实际设备的逻辑表示,驱动程序可以把所述逻辑表示和一个绘图表面结合起来DrvEnableSurface产生一个与给定的PDEV相连、用于绘图的表面。


    DrvEnablePDEV通过返回的DEVINFO结构的flGraphicsCaps项,把驱动程序的图形渲染性能通知GDI。这将在下面进一步地讨论。

    DrvEnableSurface产生一个设备表面,所述设备表面包括两个概念层和三部分:267ppi连续色调层24位RGB颜色、267ppi黑色层8位不透明度和800dpi黑色层1位不透明度。包括此两层的虚拟设备表面的名义分辨率为267dpi,这是GDI操作的分辨率。

    虽然页面缓冲器总计需要大约33MB的内存,PC 99标准指定的最小值为64MB。

    实际上,管理设备表面和协调GDI对其的存取意味着打印机驱动程序必须支持下列的附加函数

                表34设备表面管理所需的图形驱动程序函数函数描述DrvCopyBits在设备管理的光栅表面和GDI管理的标准格式位图之间进行翻译DrvStrokePath画轨迹DrvPaint涂指定的区域DrvTextOut在指定的位置渲染一系列字体。


    拷贝图象、画轨迹和填充区域都在连续色调层进行,而渲染实体的黑色文本在双值黑色层进行。更进一步地,渲染非黑色文本也在连续色调层进行,因为黑色层不支持此操作。相反,可以采用实心的黑色在黑色层上画或填充(如果我们如此选择的话)。

    虽然打印机驱动程序必须钩住上述函数,但是因为所述连续色调层是一个标准格式的位图,所以所述打印机驱动程序可以把作用于连续色调层的函数调用转回到相应的GDI函数运行。GDI为每一个DrvXxx函数提供一个相应的EngXxx函数。

    如同8.2部分所描述的,当一个最终位于连续色调层上的对象遮盖黑色层上的对象时,必须在连续色调对象被复合到连续色调层之前,把被遮盖的黑色对象从黑色层变换到连续色调层。此过程的关键在于在被钩住的调用中检测并处理相应的遮盖——在被钩住的调用被转回GDI之前。这包括根据连续色调的几何结构逐个象素地确定连续色调对象的不透明度,并使用此不透明度选择性地采用8.2部分描述的方法把黑色象素从黑色层变换到连续色调层。

    9.3.2决定连续色调对象几何结构

    在连续色调对象被渲染之前,可以决定每个连续色调对象的几何结构,因而高效地决定所述连续色调对象遮盖了哪个黑色象素。在DrvCopyBits和DrvPaint情况下,几何结构由一个片段对象(CLIPOBJ)决定,所述片段对象可以被列举成一系列矩形。

    在DrvStrokePath中,情况更加复杂。DrvStrokePath既支持直线、贝塞尔样条曲线片段和单象素宽度线,又支持几何宽度线条。第一步是通过在驱动程序DEVINFO结构的flGraphicsCaps元中清除相应的性能标志(GCAPS_BEZIERS and GCAPS_GEOMETRICWIDE),避免复杂的贝塞尔样条曲线片段和几何宽度线条。这使得GDI把类似的调用重新定义为对DrvPaint更加简单的系列调用。通常,GDI为一个驱动程序提供提高性能的机会,但是GDI仿真驱动程序不提供任何性能。

    剩下的是简单地决定单象素宽的直线的几何结构。所述直线可以是实线或修饰线。在后一种情况下,线型由设定的线条属性(LINEATTRS)中的线型数组决定。所述的线型数组指定线条在其长度上的不透明性或透明形,并且支持不同的虚线效果。

    当画笔是实体黑色时,也可以采用800dpi分辨率提供的加宽的宽度把直线渲染至黑色层。

    9.3.3渲染文本

    在DrvTextOut中,情况更为复杂。首先,不透明的背景(如果有的话)和连续色调层上的其它对象一样被处理(参见DrvPaint)。如果前景画笔不是黑色的,或者混合的方式不是有效地遮盖,或者字体是不可放大的,或者字体指明轮廓笔划,那么相关函数调用被退回EngTextOut,以应用于连续色调层。但是,在所述调用被退回之前,驱动程序通过取得其位图(通过FONTOBJ_cGetGlyphs)决定每个字形的几何结构,并对黑色层进行通常的遮盖性检查。

    如果不允许退回DrvTextOut(文档记录不明确),那么驱动程序不允许进行复杂的文本操作。这包括不允许绘制轮廓(通过清除GCAPS_VECTOR_FONT功能标志)和不允许混合模式(通过清除GCAPS_ARBMIXTXT功能标志)。

    如果前景画笔是黑色不透明的,且字体可以放大而不可识别笔划,那么字形被渲染在黑色层上。在此情况下,驱动程序通过取得字形的位图(还是通过FONTOBJ_cGetGlyphs,但作为一个PATHOBJ)决定每个字形的几何结构。然后驱动程序以800dpi渲染每个字形并将其写至黑色层。虽然轮廓几何结构使用设备坐标(也就是说267ppi),但是所述坐标带有用于更高精度的渲染的大量的更细小分区的精确描述。

    注意,如果指定,删除线和下划线矩形加入到字形的几何结构中。

    驱动程序必须在DEVINFO中设定GCAPS_HIGHRESTEXT标志,请求由GDI提供更高精度固定格式的字形位置(还是在267ppi的设备坐标中),以确定800dpi下的精确位置。驱动程序还必须提供DrvGetGlyphMode函数的执行过程,使得其可以向GDI指明字形应该被作为外形轮廓而不是位图而储存。理想情况下,驱动程序应该以内存容许的方式高效地快速存储渲染后的字形位图。只高速存储容量在一定点以下的字形。

    9.3.4压缩连续色调层

    如同前述,连续色调层采用JPEG压缩。正向离散余弦变换(DCT)是JPEG压缩中代价最高的部分。在当前的高质量软件中,每个8×8块的正向DCT需要进行12次整数乘法运算和32次整数加法运算[7]。在奔腾处理器中,一个乘法运算需要10个周期,一个加法运算需要2个周期[11]。也就是说,每个块需要184个周期。

    25.5MB连续色调层由417588个JPEG块组成,整个正向DCT需要77M个周期。当主频为300MHz时,在PC 99桌面标准[5]下这相当于0.26秒,完全符合每页2秒的限制。

    10参考文献

    [1]ANSI/EIA 538-1988,Facsimile Coding Schemes and Coding ControlFunctions for Group 4 Facsimile Equipment,August 1988

    [2]Humphreys,G.W,and V. Bruce,Visual Cognition,Lawrence ErlbaumAssociates,1989,p.15

    [3]IEEE Std 1284-1994,IEEE Standard Signaling Method for a BidirectionalParallel Peripheral Interface for Personal Computers,2 December 1994

    [4]Intel Corp.and Microsoft Corp.,PC 98 System Design Guide,1997

    [5]Intel Corp.and Microsoft Corp.,PC 99 System Design Guide,1998

    [6]ISO/IEC 19018-1:1994,Information technology-Digital compressionand coding of continuous-tone still images:Requirements and guidelines,1994

    [7]Loeffler,C.,A.Ligtenberg and G Moschytz,“Practical Fast 1-D DCTAlgorithms with 11 Multiplications”,Proceedings of the InternationalConference on Acoustics,Speech,and Signal Processing 1989(ICASSP‘89),pp.988-991

    [8]Microsoft Corp.,Microsoft Windows NT 4.0 Device Driver Kit,1997

    [9]Microsoft Corp.,Microsoft Windows NT 5.0 Device Driver Kit,1998

    [10]Olsen,J.“Smoothing Enlarged Monochrome Images”,in Glassner,A.S.(ed.),Graphics Gems,AP Professional,1990

    [11]Schmit,M.L.,Pentium Processor Optimization Tools,AP Professional,1995

    [12]Thompson,H.S.,Multilingual Corpus 1 CD-ROM,European CorpusInitiative

    [13]Urban,S.J.,“Review of standards for electronic imaging for facsimilesystems”,Journal of Electronic Imaging,Vol.1(1),January 1992,pp.5-21

    [14]USB Implementers Forum,Universal Serial Bus Specification,Revision 1.0,1996

    [15]USB Implementers Forum,Universal Serial Bus Device ClassDefinition for Printer Devices,Version 1.07 Draft,1998

    [16]Wallace,GK.,“The JPEG Still Picture Compression Standard”,Communications of the ACM,34(4),April 1991,pp.30-44

    [17]Yasuda,Y.,“Overview of Digital Facsimile Coding Techniques inJapan”,Proceedings of the IEEE,Vol.68(7),July 1980,PP.830-845

    

包括打印头盖帽机构的打印机.pdf_第1页
第1页 / 共129页
包括打印头盖帽机构的打印机.pdf_第2页
第2页 / 共129页
包括打印头盖帽机构的打印机.pdf_第3页
第3页 / 共129页
点击查看更多>>
资源描述

《包括打印头盖帽机构的打印机.pdf》由会员分享,可在线阅读,更多相关《包括打印头盖帽机构的打印机.pdf(129页珍藏版)》请在专利查询网上搜索。

本发明涉及一种打印头盖帽机构(62),所述机构用于在打印头不使用时防止墨水从所述打印头中溢出。本发明具有实用性,比如,可以用于使用按需喷墨打印头(63)的彩色打印机中。所述机构(62)包括一个盖帽(64)所述盖帽(64)包括一个用于密封打印头表面(63)的橡胶密封垫(65),和在喷嘴清洁过程中接住从所述打印头(63)中流出墨滴的一块海绵(66)。所述机构(62)还包括一个促动结构,可以选择性地使所。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 作业;运输 > 印刷;排版机;打字机;模印机〔4〕


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1