根据拜尔图象生成打印的方法和装置的制作方法

文档序号:2479857阅读:246来源:国知局

专利名称::根据拜尔图象生成打印的方法和装置的制作方法
技术领域
:本发明涉及根据拜尔图象生成打印的方法和装置。本发明主要用于数字照相机,包括用于在相纸上打印照相机拍摄的图象的整体打印机,并且以下将参照该应用描述本发明。然而,应该理解,本发明并不限于特定应用领域。共同未决申请参考文献为澳大利亚临时专利申请号PQ2890(申请日期为1999年9月16日)的共同未决申请优先权要求。共同未决申请描述用于实现小型打印系统的有关模块和方法。与本发明同时申请的共同未决申请为本发明的概述根据本发明的第一方面,提供一种用于提供图象的方法,以便以预定的二值点分辨率进行打印,二值点分辨率相当于预定的连续色调分辨率,该方法包括以下步骤接收表示图象的第一数据集,即预定的连续色调分辨率的数据集;将第一数据集转换为预定的连续色调分辨率的第二数据集;将第二数据集转换为预定的二值点分辨率的第三数据集;以及使打印机以预定的二值点分辨率获得第三数据集。第一分辨率最好与预定的二值点分辨率匹配。然而,在其他实施方式中,第一分辨率大于预定的二值点分辨率。在更进一步的实施方式中,第一分辨率小于预定的二值点分辨率。同时,第一数据集最好为红、绿和蓝(RGB)格式,而打印机与青、品红和黄(CMY)格式相对应,并且该方法还包括附加步骤,即将第三数据集从RGB格式转换为CMY格式。在一种最佳形式中,该方法包括以下步骤,即对第二数据集进行锐化处理。作为选择,该方法最好包括对第一数据集进行锐化处理的步骤。最好从曝光装置中获得第一数据集,并且该方法包括以下步骤,即补偿第一数据集,以抵消曝光装置中的非线性。补偿步骤最好包括将第一数据集从众多x比特采样转换为众多y比特采样,其中x>y。并且最好x=10,y=8。同时,该方法还包括以下步骤,即将第一数据集平面化为一个红色平面、一个绿色平面和一个蓝色平面。在最佳形式中,该方法还包括以下步骤为第一数据集定义m%的最暗象素和n%的最亮象素;调整第一数据集以使m%的最暗象素相等;以及调整第一数据集以使n%的最亮象素相等。该方法最好包括附加步骤,即调整第一数据集以便提供预定的白平衡。该方法最好包括以下附加步骤,即调整第一数据集以便提供预定的范围扩展。最好增加第一数据集的彩色分辨率,同时保持相同的空间分辨率。在一种最佳形式中,选择调整第一数据集,以便沿预定的旋转方向提供图象。根据本发明的第二方面,提供用于提供图象的装置,以便以预定的二值点分辨率进行打印,二值点分辨率相当于预定的连续色调分辨率,该装置包括输入装置,用于接收表示图象的第一数据集,该数据集的格式为第一分辨率的拜尔格式;采样装置,用于将第一数据集转换为预定的连续色调分辨率的第二数据集;处理装置,用于将第二数据集转换为预定的二值点分辨率的第三数据集;以及使打印机获得第三数据集,以便以预定的二值点分辨率进行打印。第一分辨率最好与预定的二值点分辨率匹配。作为选择,第一分辨率大于预定的二值点分辨率。在其他实施方式中,第一分辨率小于预定的二值点分辨率。同时,第一数据集最好为红、绿和蓝(RGB)格式,而打印机与青、品红和黄(CMY)格式相对应,其中处理装置将第三数据集从RGB格式转换为CMY格式。同时,该装置最好对第二数据集进行锐化处理。然而,在其他实施方式中,该装置对第一数据集进行锐化处理。在一种最佳形式中,最好从曝光装置中获得第一数据集,并且输入装置补偿第一数据集,以抵消曝光装置中的非线性。补偿非线性最好包括将第一数据集从众多x比特采样转换为众多y比特采样,其中x>y。并且最好x=10,y=8。输入装置将第一数据集平面化为一个红色平面、一个绿色平面和一个蓝色平面。输入装置最好为第一数据集定义m%的最暗象素和n%的最亮象素;调整第一数据集以使m%的最暗象素相等;以及调整第一数据集以使n%的最亮象素相等。在最佳形式中,输入装置调整第一数据集以便提供预定的白平衡。输入装置最好调整第一数据集以便提供预定的范围扩展。输入装置最好增加第一数据集的彩色分辨率,同时保持相同的空间分辨率。输入装置最好选择调整第一数据集,以便沿预定的旋转方向提供图象。根据本发明的第三方面,提供一种照相机,包括一个CCD阵列,用于提供拜尔图象;一台打印机,用于选择提供打印的图象;以及一种用于接收拜尔图象,然后向打印机提供第三数据集以便生成打印图象的装置。附图的简要描述通过参照以下说明书和附图,举例说明本发明的最佳实施方式。图1表示PCP的高级图象流程。图2以分离形式表示PCP框图。图3表示与Printcam硬件相连的PCP的框图。图4表示长为4英寸的Memjet打印头。图5表示4英寸打印头中各段的结构。图6表示容器中喷嘴的结构,序号表示定位顺序。图7表示容器中喷嘴的结构,序号表示加载顺序。图8表示色品容器(chrompod)。图9表示容器群(podgroup)。图10表示相群(phasegroup)。图11表示段、喷射群(firegroup)、相群、容器群和色品容器之间的关系。图12表示打印奇数和偶数点时AEnable和BEnable脉冲的轮廓。图13表示基于CFA图象打印格式的方向。图14表示图象获取链的框图。图15表示拜尔CFA2G镶嵌面中各象素的结构。图16表示线性化RGB过程。图17表示平面化RGB过程。图18表示图象打印链的框图。图19表示单色平面的采样颜色范围。图20表示白平衡和范围扩展涉及的步骤。图21表示能够执行白平衡和范围扩展的装置的框图。图22表示与CFA分辨率有关的各种颜色平面象素。图23表示将绿色平面旋转45度的结果。图24表示绿色平面的旋转象素之间的距离。图25表示将不旋转CFA空间中的运动映射到旋转CFA空间的过程。图26表示锐化过程的框图。图27表示利用3×3内核对单亮度象素进行高通滤波的过程。图28表示从RGB转换到CMY的变换。图29表示利用三线内插将RGB转换到CMY。图30表示将单个象素复制为一个5×5块的象素复制。图31表示半色调过程的框图。图32表示为打印机重新格式化所有点的过程。图33表示图象获取装置的框图。图35表示图象存取装置的框图。图36表示图象直方图装置的框图。图37表示打印接口的框图。图38表示Memjet接口的框图。图39表示AEnable和BEnable脉冲宽度的生成过程。图40表示点数计数逻辑的框图。图41表示打印生成装置的接口。图42表示打印生成装置的框图。图43表示测试模式存取装置的框图。图44表示缓冲器5的框图。图45表示缓冲器4的框图。图46表示向上内插、半色调和重新格式化过程的框图。图47表示将标准抖动单元映射为交错抖动单元的方式。图48表示将RGB转换为CMY过程的框图。图49表示缓冲器2的框图。图50表示使用3×3内核的基本高通空间滤波器。图51表示锐化装置的框图。图52表示缓冲器1的结构。图53表示重新采样和创建亮度信道过程的框图。图54表示卷积装置的框图。图55表示从接收器生成的象素的顺序。图56表示在旋转和不旋转空间中沿x和y方向的运动。图57表示缓冲器1的绿色子缓冲器中的条目的地址。图58表示依赖于旋转的绿色条目之间的关系。图59表示绿色信道的4×4采样。图60表示4×4绿色采样类型1。图61表示4×4绿色采样类型2。图62表示用于绿色的两类行寻址。图63表示缓冲器1的红色和绿色子缓冲器中的条目的寻址。图64表示为计算第一象素而读取的前16个采样。图65表示从蓝色和红色缓冲器中读取的4×4重叠块的最坏情况。图66表示旋转、白平衡和范围扩展装置的框图。图67表示所生成的坐标空间内的有效图象区域。1PCP概述1.1高级功能概述Printcam中央处理器(PCP)拥有用于Printcam的所有处理能力,并且是专为Printcam数码照相机系统而设计的。PCP3连接图象传感器1(用于图象获取),和Memjet打印机2(用于图象输出)。如图1所示,在图象处理方面,可以将PCP看作获取图象到输出图象的变换器·图象传感器1是一个CMOS图象传感器,用于获取1500×1000的RGB图象。图象传感器是图象输入设备。·打印头2是一个4英寸长的1600dpi的Memjet打印头,能够打印三种颜色青、品红和黄。打印头为图象输出设备。·PCP3记录图象传感器1的图象,处理该图象,然后将该图象的最终形式发送到打印头2进行打印。由于图象传感器1获取的图象为RGB格式,而打印头2按照CMY格式打印,所以PCP3必须从RGB颜色空间转换到CMY颜色空间。PCP3包含中间图象处理需要的所有装置,其中中间图象处理包括白平衡、颜色校正、色彩转换、图象锐化和半色调处理。另外,PCP3控制用户界面和整个打印过程,以支持各种图象格式。PCP3还包含导入、导出相片的接口,其中相片符合DPOF(数码打印指令格式)标准。1.2高级内部概述PCP3是为使用0.25微米CMOS工艺进行生产而设计的,大约有10,000,000个晶体管,其中大部分为快闪存储器或静态RAM。其估计面积为16mm2。其估计制造成本为4$(2001年)。PCP3是一个比较直接的设计,通过使用数据通路编译技术、宏单元和IPcore,可以简化其设计。PCP3包括·一个低速CPU/微型控制器核心10·1.5MB的多级快闪存储器(每单元2比特)11·图象获取单元12内的CMOS图象传感器接口98·16KB快闪存储器13,用于程序存储·4KBRAM14,用于程序变量存储PCP3用于以约100MHz的时钟速度运行,其外部电压为3V,内部电压为1.5V,以将功耗降到最底程度。实际操作频率为打印头操作频率的整数倍。CPU10是一个微型控制器类型的CPU,运行频率约为1MHz。CPU10和CMOS传感器接口12是可以为厂商提供的核心。图2以分离形式表示PCP3的框图。PCP3是为Printcam系统设计的。图3表示与Printcam硬件的其他部分相连的PCP3的框图。2打印头背景PCP3是专为连接4英寸(10cm)的Memjet打印头2设计的。打印头2作为一个页宽打印机,用于在不移动打印头2的情况下生成4英寸宽的打印图象。如图4所示,当纸张20移动通过打印头2时,在纸张20上进行打印。2.14英寸打印头的组成4英寸长的打印头2包括8段,每段的长度为1/2英寸。段21的每一段在纸张的不同部分上打印二值青、品红和黄点,以生成最终图象。各段的位置如图5所示。由于打印头2以1600dpi的精度打印圆点,所以每个圆点的直径为22.5μm,间隔为15,875μm。因此,每段(长为1/2英寸)打印800点,其中8段的对应位置为表1.每段访问的最终图象点尽管每段生成最终图象的800点,但是利用二值青、品红和黄墨的组合表示每一点。由于打印是二值的,所以应对输入图象进行抖动或误差扩散以获得最佳结果。每段21包括2400个喷嘴青、品红和黄各800个。一个4英寸的打印头2包含8段21,总计19,200个喷嘴。2.1.1对各段内的喷嘴进行分组对各段21内的喷嘴22进行分组,目的是为了物理稳定性,并且将打印期间的功耗降到最底程度。在物理稳定性方面,10个喷嘴共享同一墨池。在功耗方面,分组的目的是启用低速和高速打印模式。打印头2支持两种打印速度,以便能在不同产品配置中提供不同的速度/功率的权衡。在低速打印模式中,同时加热4英寸打印头2的96个喷嘴22。应使被加热喷嘴22的间距最大,因此对每段的12个喷嘴22进行加热。要加热所有的19,200个喷嘴,必须加热200组不同喷嘴,每组包括96个喷嘴。在高速打印模式中,同时加热4英寸打印头2的192个喷嘴22。应使被加热喷嘴22的间距最大,因此对每段的24个喷嘴进行加热。要加热所有的19,200个喷嘴,必须加热100组不同喷嘴,每组包括192个喷嘴。低速模式的功耗为高速模式的一半。然而,请注意,在两种情况中,打印每一行、每一页所消耗的功率是相同的。在诸如电池供电的Printcam情况中,功耗需求规定使用低速打印。2.1.1.110个喷嘴构成一个容器一个容器23包括10个喷嘴22,10个喷嘴22共享同一墨池。5个喷嘴22在一行上,5个在另一行上。每个喷嘴22生成一个直径为22.5μm、间隔15.875μm的圆点。图6表示单个容器的结构,喷嘴22的序号表示加热顺序。尽管按照以上顺序对喷嘴22进行加热,但是喷嘴22的关系以及打印页上的点的物理位置是不同的。其中一行上的喷嘴22代表该页上某一行中的偶数点,而另一行上的喷嘴代表该页上相邻行中的奇数点。图7表示具有喷嘴22的同一容器23,序号表示其加载顺序。因此,容器23内的喷嘴22的逻辑间隔为1个点的宽度。喷嘴22之间的精确距离依赖于Memjet加热机制的性质。打印头2设计有交错喷嘴,交错喷嘴的目的是与纸张20的移动匹配。2.1.1.23个容器构成一个色品容器将每种颜色(青、品红和黄)的一个容器23分组为一个色品容器24。一个色品容器24代表由10个点组成的同一水平集合在不同行上的不同颜色分量。不同颜色容器23之间的精确距离取决于Memjet操作参数,并且随Memjet设计的不同而不同。该距离被认为是固定数目的点宽度,因此,在打印时必须考虑该距离青色喷嘴打印的圆点与品红或黄色喷嘴打印的圆点在不同行上。打印算法必须考虑颜色之间多达8个点宽度的可变距离(有关细节见表3)。图8表示单个色品容器24。2.1.1.35个色品容器构成一个色品群将5个色品容器24组织为一个色品群25。由于每个色品容器包含30个喷嘴22,所以每个色品群包含150个喷嘴22青、品红和黄色喷嘴各50个。图9表示其结构,其中色品容器序号为0-4。请注意,为了清晰而夸大了相邻色品容器之间的距离。2.1.1.42个容器群构成一个相群将2个容器群25组织为一个相群26。由于在指定的加热相位(阶段)中同时加热某个相群内的喷嘴组23(以下详细说明),所以称其为相群26。利用2个容器群组成一个相群的目的在于,通过2条PodgroupEnable(启用容器群)线进行低速和高速打印。在低速打印中,在指定的加热脉冲中,只设置两条PodgroupEnable线中的一条,因此两个容器群中只有一个容器群加热喷嘴。在高速打印中,同时设置两条PodgroupEnable线,因此两个容器群加热喷嘴。所以,低速打印需要的时间是高速打印所需时间的两倍,原因在于高速打印同时加热的喷嘴数是低速打印的两倍。图10表示相群的组成。为了清晰而夸大了相邻容器群之间的距离。2.1.1.52个相群构成一个加热群将2个相群(相群A和相群B)组织为一个加热群27,每段4个相群。由于它们同时加热同一喷嘴27,所以将其称为加热群27。两条启用线(AEnable和BEnable)允许在不同加热相位中独立加热相群A的喷嘴和相群B的喷嘴。图11表示其结构。为了清晰而夸大了相邻分组之间的距离。2.1.1.6喷嘴分组概要表2为打印头中喷嘴分组的概要。表2.4英寸打印头的喷嘴分组2.2加载和打印周期一个4英寸的打印头2总共包含19,200个喷嘴22。一个打印周期包括根据打印信息加热所有喷嘴。一个加载周期包括向打印头加载需要在随后的打印周期中打印的信息。各喷嘴22具有一个相关的NozzleEnable位,后者确定该喷嘴是否在打印周期中加热。通过一组移位寄存器加载NozzleEnable位(每喷嘴一个)。逻辑上,每段有3个移位寄存器(每种颜色一个),每个寄存器的长度为800(比特)。当将NozzleEnable位移动到指定颜色的移位寄存器时,将其引向交错脉冲上的上下喷嘴。在内部,每个800深度的移位寄存器由两个400深度的移位寄存器组成一个用于上喷嘴,一个用于下喷嘴。将交错位移动到内部交错寄存器中。然而,至于有关的外部接口,只有一个800深度的移位寄存器。在全部加载所有移位寄存器后(800个加载脉冲),以并行方式将所有位传送到适当的NozzleEnable位中。这等同于并行传送19,200比特。当传送发生时,打印周期开始。只要在打印周期结束时并行加载所有的NozzleEnable位,打印周期和加载周期就可以同时出现。2.2.1加载周期加载周期牵涉到向打印头的移位寄存器加载下一个打印周期的NozzleEnable位。每段21具有3个与青、品红和黄色移位寄存器有直接关系的输入。这些输入称为CDataIn、MDataIn和YDataIn。由于有8段,所以每个4英寸打印头共有24条彩色输入线。SRClock线路上的一个脉冲(由8段共享)将24位传送到适当的移位寄存器中。交错脉冲分别将这些位传送到上下喷嘴中。由于有19,200个喷嘴,所以该传送操作共需800个脉冲。在传送全部19,200位之后,共享PTransfer线路上的一个脉冲将移位寄存器中的数据并行传送到适当的NozzleEnable位。通过PTransfer上的脉冲的并行传送必须在打印周期结束后发生。否则,正在打印的行的NozzleEnable位将是错误的。由于利用单一SRClock脉冲加载全部8段21,所以打印过程必须按照正确顺序生成打印头的数据。例如,第一SRClock脉冲将传送下一打印周期的点0、800、1600、2400、3200、4000、4800和5600的CMY位。第二SRClock脉冲将传送下一打印周期的点1、801、1601、2401、3201、4001、4801和5601的CMY位。在800个SRClock脉冲后,提供PTransfer脉冲。重要的是,在同一打印周期中打印的奇数和偶数CMY输出并不出现在同一物理输入线上。打印头内奇偶喷头之间的物理间隔以及不同颜色的喷嘴之间的间隔,确保它们在该页的不同行上生成圆点。当向打印头加载数据时,必须解决有关差异。各行中的实际差异取决于打印头适用喷墨机制的特性。利用变量D1和D2定义其差异,其中D1是不同颜色的喷嘴之间的距离,D2是相同颜色的喷嘴之间的距离。表3表示在前4个脉冲上向打印头的段n传送的所有点。表3.向4英寸打印头传送的点的顺序a.S=段号(0-7)b.D1=某种颜色的喷嘴和下一种颜色的喷嘴之间的线数(可能=4-8)c.D2=同一颜色的两行喷嘴之间的线数(可能=1)等等,直至全部800个脉冲。可以以20MHz的最高速度,将数据输入到打印头中,20MHz的速度将在40μs内加载下一行的所有数据。2.2.2打印周期一个4英寸打印头2包含19,200个喷嘴22。要同时加热所有喷嘴将消耗大量功率,并且会引起墨回补问题和喷嘴干扰。因此,定义两种加热模式高速打印模式和低速打印模式·在低速打印模式中,有200个相位,每个相位加热96个喷嘴。这等同于每段12个喷嘴,即每个加热群3个喷嘴。·在高速打印模式中,有100个相位,每个相位加热192个喷嘴。这等同于每段24个喷嘴,即每个加热群6个喷嘴。根据以下信号确定在指定加热脉冲中加热的喷嘴·3比特ChromapodSelect(从加热群27中选择5个色品容器24中的一个色品容器)·4比特NozzleSelect(从容器23的10个喷嘴22中选择一个喷嘴)·2比特的PodgroupEnable线路(选择要加热的0、1或2容器群25)当设置一条PodgroupEnable线路时,只有指定的容器群的4个喷嘴加热,作为ChromapodSelect和NozzleSelect确定的喷嘴。当设置两条PodgroupEnable线路时,两个容器群同时加热其喷嘴。对于低速模式,需要两个加热脉冲,即PodgroupEnable=01和10。对于高速模式,只需要一个加热脉冲,即PodgroupEnable=11。由AEnable和BEnable线路指定加热脉冲的持续时间,AEnable和BEnable分别加热所有加热群中的相群A和相群B喷嘴。加热脉冲的典型持续时间为1.3-1.8μs。脉冲的持续时间取决于墨的粘性(取决于温度和墨特性)以及打印头使用的功率。有关为补偿温度变化而利用打印头之反馈的详细信息,请参见第18页上的2.3一节。AEnable和BEnable是独立线路,目的是加热脉冲能够重叠。因此,200个相位的低速打印周期包括100个A相位和100个B相位,从而能够有效提供100组相位A和相位B。同样,100个相位的高速打印周期包括50个A相位和50个B相位,从而能够有效提供50组相位A和相位B。图12表示典型打印周期中的AEnable和BEnable线路。在高速打印中有50个2μs的周期,而在低速打印中有100个2μs的周期。对于高速打印模式,加热顺序为·ChromapodSelect0,NozzleSelect0,PodgroupEnable11(相位A和B)·ChromapodSelect1,NozzleSelect0,PodgroupEnable11(相位A和B)·ChromapodSelect2,NozzleSelect0,PodgroupEnable11(相位A和B)·ChromapodSelect3,NozzleSelect0,PodgroupEnable11(相位A和B)·ChromapodSelect4,NozzleSelect0,PodgroupEnable11(相位A和B)·ChromapodSelect0,NozzleSelect1,PodgroupEnable11(相位A和B)·…·ChromapodSelect3,NozzleSelect9,PodgroupEnable11(相位A和B)·ChromapodSelect4,NozzleSelect9,PodgroupEnable11(相位A和B)对于低速打印模式,加热顺序类似。对于PodgroupEnable为11的高速模式的每个相位,替换为以下两个相位PodgroupEnable=01和10·ChromapodSelect0,NozzleSelect0,PodgroupEnable01(相位A和B)·ChromapodSelect0,NozzleSelect0,PodgroupEnablc10(相位A和B)·ChromapodSelect1,NozzleSelect0,PodgroupEnable01(相位A和B)·ChromapodSelect1,NozzleSelect0,PodgroupEnable10(相位A和B)·…·ChromapodSelect3,NozzleSelect9,PodgroupEnable01(相位A和B)·ChromapodSelect3,NozzleSelect9,PodgroupEnable10(相位A和B)·ChromapodSelect4,NozzleSelect9,PodgroupEnable01(相位A和B)·ChromapodSelect4,NozzleSelect9,PodgroupEnable10(相位A和B)当喷嘴22加热时,大约需要100μs进行回补。不能在回补时间过去前加热喷嘴22。从而每行的最高打印速度为100μs。在高速打印模式中,打印一行的时间是100μs,因此从加热某一行中的喷嘴到加热下一行中的喷嘴的时间与回补时间匹配,所以高速打印模式是可接受的。低速打印模式比高速打印模式慢,因此也是可接受的。加热喷嘴22会在有限时间内在该喷嘴之容器23的公用墨池内造成声学扰动。该扰动干扰同一容器23内的其他喷嘴的加热。所以,容器内的喷嘴的加热应尽量偏移。因此,我们加热色品容器24内的3个喷嘴(每种颜色一个喷嘴22),然后移动到容器群25内的下一个色品容器24。·在低速打印模式中,独立加热容器群25。因此,在第一色品容器再次加热前,两个容器群中的5个色品容器24必须全部加热,共计10×2μs周期。所以,每20μs加热容器23一次。·在高速打印模式中,同时加热容器群25。因此,在第一色品容器再次加热前,一个容器群中的5个色品容器24必须全部加热,共计5×2μs周期。所以,每10μs加热容器23一次。由于墨通道的长度为300μm,并且声音在墨中的速度约为1500m/s,所以墨通道的谐振频率为2.5MHz,从而低速模式允许50个谐振周期供声学脉冲衰减,而高速模式允许25个谐振周期。因此在两种情况中都能将声学干扰降到最底程度。2.2.3采样定时例如,正如Printcam要求的那样,考虑在2秒内打印一张4″×6″相片的定时。为了在2秒内打印一张相片,4英寸打印头必须打印9600行(6×1600)。在2秒内完成10,000行,相当于每行200μs。必须在该时间内完成一个打印周期和一个加载周期。另外,打印头外部的物理处理必须适当地移动相纸。从打印观点看,低速打印模式允许4英寸打印头在200μs内打印一整行。在低速打印模式中,每加热脉冲中有96个喷嘴22加热,从而能够在特定时间内打印一整行。打印头2的800个SRClock脉冲(每个时钟脉冲传送24位)必须在200μs的行时间内发生。SRClock脉冲的长度不能超过200μs/800=250ns,这表示打印头的时钟周期为4MHz。另外,计算各比特值(19,200个喷嘴的每个喷嘴)的平均时间不能超过200μs/19,200=10ns。从而需要按如下速度运行的点生成器·100MHz,生成1位(点)/周期·50MHz,生成2位(点)/周期·25MHz,生成4位(点)/周期2.3打印头的反馈打印头2生成几行反馈(累计8段的反馈)。反馈线用于调整加热脉冲的定时。尽管各段生成相同反馈,但是所有段的反馈共享相同的三态总线。所以,每次只有一段21能够提供反馈。SenseSegSelect线路上的脉冲与有关青色数据的逻辑与启用该段的传感线路。反馈传感线路将来自所选段,直至下一个SenseSegSelect脉冲。反馈传感线路如下·Tsense通知控制器打印头有多热。这允许控制器调整加热脉冲的定时,因为温度影响墨的粘性。·Vsense通知控制器致动器能使用的电压。从而控制器能够通过调整脉冲宽度来补偿其电压下降的电池或高压电源。·Rsense通知控制器致动加热器的电阻率(每方欧姆)。从而控制器能够调整脉冲宽度以便维持在恒定功率,而不考虑加热器的电阻率。·Wsense通知控制器加热器的关键部分的宽度,由于平板印刷和蚀刻,其宽度会有±5%的变化。从而控制器能够适当地调整脉冲宽度。2.4特殊周期2.4.1预热周期打印过程的一个显著趋势是保持在平衡温度。为了确保第一次选择的打印相片具有一致的圆点尺寸,必须在打印任何圆点前满足平衡温度。这是通过预热周期实现的。预热周期包含应用于所有喷嘴的一个加载周期(即,设置所有要加热的喷嘴),该周期为1秒,以及应用于各喷嘴的许多短暂加热脉冲。脉冲的持续时间必须不足以喷射墨滴,但足以加热墨。每个喷嘴总共需要200个脉冲,按照标准打印周期的相同次序发出脉冲。在预热模式期间,由Tsense提供反馈,直至达到平衡温度(约高于环境30℃)。预热模式的持续时间约为50毫秒,并且取决于墨的成分。在每个打印作业前执行预热。因为在向打印机传送页面数据时执行预热,所以这并不影响打印机的性能。2.4.2清洁周期为了降低喷嘴堵塞的可能性,可以在每个打印作业前执行清洁周期。每个喷嘴向吸收海绵喷射几次。清洁周期包含应用于所有喷嘴的一个加载周期(即,设置所有要加热的喷嘴),该周期为1秒,以及应用于各喷嘴的许多加热脉冲。通过与标准打印周期相同的喷嘴加热次序,清洁各喷嘴。各喷嘴22的加热次数取决于墨的成分,以及打印机的闲置时间,如同预热一样,清洁周期并不影响打印机的性能。2.5打印头接口概要一个4英寸的打印头2具有以下连接表4.4英寸打印头连接在4英寸打印头的内部,每段到连接容器的电路为表5.4英寸打印头内部段的连接3图象处理链以上各节只设计PCP功能性的最高级概要,将CFA图象映射为各种输出打印格式。实际上,从图象传感器中取得图象,然后生成高质量的输出打印涉及许多步骤。可以将高级处理划分为两个图象处理链,每个处理链具有许多步骤·图象获取链·打印链图象获取链涉及从图象传感器中获取图象,并且在Printcam内本地存储。打印链涉及取得存储的图象,然后打印。以上两个处理链按以下方式映射到基础Printcam功能性·取象并打印=图象获取链,然后是打印链·重新打印=打印链例如,用户可以打印一张小图(取象并打印),并且如果对结果满意的话,打印几份标准副本(重新打印)。本章描述满足Printcam质量要求的独立图象处理链的实现。在此阶段中,我们并不精确考虑如何以硬件方式实现该处理,而是考虑必须进行哪些处理。必须将这些功能映射到PCP内的各种装置。不管PCP的实现,有许多约束·输入图象是基于连续色调RGB图象的CFA。·输出图象用于CMY颜色空间中的Memjet打印头(二值点,分辨率为1600dpi),并且输出宽度相同(4英寸宽)。3.0.1支持的打印格式如表6所示,PCP3支持各种输出打印格式。在所有情况中,图象的宽度总是4英寸(与打印头的宽度匹配)。只有打印输出的长度改变。表6.支持的图象格式图象传感器并不提供方向信息。所有图象都是以相同分辨率(1500×1000)获取的,并且可能需要在打印输出前旋转90度。图13表示获取的CFA图象和支持的各种打印格式之间的映射。请注意,尽管将该图表示为逆时针旋转90度,也可以顺时针或逆时针旋转该图象。3.1图象获取链图象获取链负责从图象传感器中取得图象,并在Printcam内本地存储。图象获取链涉及许多只在图象获取期间执行的处理。图14表示图象获取链,以下几部分详细说明其子部件。3.1.1图象传感器1输入图象来自图象传感器1。尽管可以使用各种图象传感器,但是我们只考虑拜尔彩色滤镜阵列(CFA)。拜尔CFA具有许多本文定义的属性。假设已经充分过滤了CMOS传感器1(通过取象透镜)获取的图象,以消除锯齿现象。传感器本身的长宽比为3∶2,具有1500×1000分辨率的采样。最可能的象素结构为拜尔彩色滤镜阵列(CFA),其中图15表示在2G镶嵌面中排列的各2×2象素块。R、G、B(分别对应于红、绿、蓝)的各连续色调采样是10比特。请注意,镶嵌面的每个象素仅包含有关R、G、B之一的信息。必须在打印输出前估计丢失的彩色信息。认为CFA执行适当的固定模式噪声(PFN)抑制。3.1.2线性化RGB40·图象传感器40未必有完整的线性响应。因此,必须认为来自CFA的10比特RGB采样是非线性的。通过查找表(每种颜色一个)将这些非线性采样转换为8比特的线性采样。来自CFA0行、2行、4行等的象素编入R和G表,而来自CFA1行、3行、5行等的象素编入G和B表。该处理完全独立于照相机的方向。图16表示该处理。每个查找表需要的总存储量为210×8比特。因此,3个查找表45共需3KB(3×210字节)。3.1.3平面化RGB41由于象素的拜尔镶嵌面的性质,所以从CFA获得的象素使其颜色平面交错。这意味着在偶数水平线上,一个红色象素后跟一个绿色象素,然后是另一个红色象素,不同颜色平面互相交错。在某些图象处理系统中,交错格式非常有用。然而,在Printcam处理系统中,该算法在平面RGB上更有效。平面化的图象是已经分成其组成色的图象。在CFARGB的情况中,有3个独立图象一个仅包含红色象素的图象,一个仅包含蓝色象素的图象,以及一个仅包含绿色象素的图象。请注意,每个平面仅代表实际采样颜色的象素。在平面化处理中不进行重新采样。因此,不互相登记R、G、B平面,并且G平面为R平面或B平面的两倍。图17表示该处理。实际处理非常简单—取决于读取的象素的颜色,将输出象素发送到适当颜色平面的图象中的下一位置(因此,与CFA中的方向相同)。红色45和蓝色47平面图象为原始CFA图象的四分之一。它们是每个维数的分辨率的一半。因此,红色和蓝色图象是750×500象素,在CFA空间(1500×1000)中,红色图象在x和y维数上偏离蓝色图象一个象素。尽管绿色平面图象46的大小是原始CFA图象的一半,但是其布局设计并不象红色和蓝色那样简单。原因在于绿色平面的交错排列布局。在绿色平面的一行上是奇数象素,在绿色平面的下一行上是偶数象素。因此,绿色平面的交错行代表CFA图象内的奇数象素和偶数象素。所以绿色平面图象是750×1000象素。从而具有重新采样处理分支(参见28页上的“重新采样64”)。3.1.4存储的图象42将线性化的RGB图象的各颜色平面写入存储器中,以便临时存储。存储器应为快闪存储器11,以便在关闭电源后继续保存图象。平面化的线性RGB图象需要的总存储量是1,500,000字节(约为1.5MB),其排列为·R750×500=375,000字节·G750×500=375,000字节·B750×1000=750,000字节3.2打印链打印链包括从存储器中取得现有图象42,然后打印到Memjet打印机2。通常获取图象后就打印该图象,尽管也可以重新打印(即,无需重新获取)。为了从获取的CFA图象中生成高质量的打印,图象处理链包括许多步骤。图18表示打印链。将打印链划分为三个工作分辨率。第一分辨率是原始图象获取空间50(与CFA的图象空间相同),第二分辨率是中分辨率51(每行有1280个连续色调象素),第三分辨率是打印机分辨率52,每行有6400个二值点。3.2.1输入图象正如3.1.4部分中说明的图象获取链的存储方式一样,输入图象是以平面形式存储的线性化的RGB图象42。3.2.2收集统计数字在执行诸如白平衡和范围扩展之类的处理前,需要收集整个图象的许多统计数字。对于特定的获取图象42的所有打印,只需收集一次统计数字,并且可以分别收集红、绿、蓝色平面图象的统计数字。3.2.2.1构建直方图第一步是构建各颜色平面的8比特值的直方图。每个1500×1000CFA图象总共包含·375,000个红色象素(至少需要一个19比特的计数器)·375,000个蓝色象素(至少需要一个19比特的计数器)·750,000个绿色象素(至少需要一个20比特的计数器)因此,存储直方图需要一个256×20比特的表。正如以下伪码所示,构建直方图的过程非常简单ForI=0to255Entry[I]=0EndForForPixel=ImageStarttoImageEndp=Image[Pixel]Entry[p]=Entry[p]+1EndFor3.2.2.2确定高低阈值在构造颜色平面的直方图后,可以使用直方图来确定高低阈值。在打印期间,白平衡和范围扩展的自动化处理需要以上阈值。根据直方图中象素数的阈值,我们认为可以“牺牲”n%的最暗象素,从而使这些象素相等。同样,我们认为可以“牺牲”n%的最亮象素,从而使这些象素相等。期望n的准确值为5%,这取决于CFA的响应特性。确定n%的最暗值很简单。包括从0计数开始向上(即,0,1,2,3等)遍历该颜色平面的直方图,直至到达总数的n%,即从零开始遍历到某个总数。我们认为这些值中的最大值为该颜色平面的低阈值。尽管这些最暗值之间有差异,但是为了范围扩展和颜色平衡可以牺牲这些差异。确定n%的最亮值的过程类似。包括从255计数开始向下(即,255,254,253等)遍历该颜色平面的直方图,直至到达总数的n%,即从255开始遍历到某个总数。我们认为这些值中的最小值为该颜色平面的高阈值。尽管这些最亮值之间有差异,但是为了范围扩展和颜色平衡可以牺牲这些差异。在离开0或255一定距离后停止的原因在于补偿以下两类图象·原始动态范围低的图象,或·图象中没有白色或黑色的图象在以上两种情况中,我们不希望牺牲n%的高低值,因为开始范围较小。我们可以将高73和低72阈值设置为实际采样的象素值的范围外。精确距离取决于CFA,但是将是两个常数。图19表示颜色平面的采样颜色范围。请注意,尽管图象颜色平面的象素范围有可能是0-255,但是该特定图象的范围较小。同时,n%的直方图范围70、71表示的低端范围70大于高端范围71。原因在于与低端相比,该直方图包含的高值象素更接近。必须分别确定各颜色平面的高73和低72阈值。该信息用于计算白平衡和范围扩展中使用的范围比例和偏移因子。以下伪码表示确定两个阈值的过程(为了查找低阈值,StartPosition=255,Delta=1。为了查找高阈值,StartPosition=0,Delta=-1)。该伪码假设Threshold是一个8比特值,其中在进行加法时回绕。Threshold=StartPositionTotal=0TotalDelta=0While((TotalDelta<MaxDelta)AND(Total<MaxPixels))Threshold=Threshold+DeltaTotal=Total+Entry[Threshold]TotalDelta=TotalDelta+1EndWhileReturnThreshold3.2.3旋转图象61在获取、打印和重新打印过程中,旋转图象61是一个可选步骤。正如图13所示,不同打印格式需要相对与CFA方向将该图象旋转0度或90度。旋转量取决于当前选择的打印格式。尽管旋转方向并不重要(由于新方向仅仅是为了方便打印头的宽度,所以可以顺时针或逆时针旋转),旋转方向影响3个颜色平面的相关读数。表7概要说明各种打印格式需要从原始CFA方向旋转的角度。表7.各种打印格式需要从CFA方向旋转的角度由于只需旋转0度或90度,所以在旋转处理中不丢失信息。如果旋转0度,则可以逐行读取图象,如果旋转90度,可以逐列读取图象。读取3个颜色平面必须考虑旋转方向。3.2.4白平衡62和范围扩展63相片很少是在理想照明条件下拍摄的。即使非常“完美的照明条件”也是充满主观性的,包括照相师方面的主观性和主体方面的主观性。然而,在所有情况中,利用来自光源(如日光或室内照明)或相片主体特有发光体(如霓虹灯)的光线,照射相片主体。在大部分照明条件中,照相师看作“白”光的光源通常并不是白色的。例如,室内光通常具有黄色光线,该黄色光线将出现在未修正的相片上。对大部分人而言,最终未修正相片上出现黄色光线是不正常的。尽管与拍摄相片时的观察条件一致,但它与物体的感觉色彩不一致。因此,在打印输出前对相片进行白平衡是很关键的。同样,如果扩展颜色的动态范围以便与各颜色平面的满标度一致,则会感觉到图象的质量较高。在以更高的分辨率对图象重新采样前,以上处理非常有用。如果动态范围较高,则在内插的象素位置中可使用中间值,从而避免出现分级或块状图象。范围扩展的目的是向实际采样值提供全部256个值范围。在最佳情况中,将最小值映射为0,将最大值映射为255。将所有中间值按比例映射为0到255之间的值。数学上,所执行的操作是将LowThreshold72变化为0,然后乘以某个比例。公式为Pixel′=(Pixel-LowThreshold)×RangeScaleFactor其中RangeScaleFactor=256(HighThreshold-LowThreshold)]]>将RangeScaleFactor限制在最大值,以免将范围扩得太大。;有关计算LowThreshold72的细节,请参见3.2.2一节中的“收集统计数字”。每种颜色的LowThreshold和RangeScaleFactor各不相同,并且每个图象只需计算一次。如图20所示,可以同时进行以上两项工作。由于此步骤涉及缩放处理,因此在映射值中可以保留分数部分,如,值12映射到5.25。将一个10比特的结果(8比特整数,2比特分数)传送到图象处理链的下一阶段,而不是丢弃分数部分。虽然提供的存储器不能以高于8比特的分辨率存储整幅图象,但是可以在重新采样阶段中使用更高分辨率。因此,输入图象是8比特,输出图象的每种颜色分量是10比特。图21表示其逻辑处理。在进行减法运算时,重要的是具有最低限度0,从而将低于LowThreshold72的所有值映射为0。同样,乘法运算结果的整数部分必须具有最高限度255,从而将高于HighThreshold73的输入值映射为255。3.2.5重新采样64CFA图象只提供每个象素(x,y)坐标单一颜色分量。为了生成最终打印图象,需要获得各象素的其他颜色分量。最后,我们需要各象素的青、品红和黄色分量,但是,要获得青、品红和黄色,我们需要红、绿、蓝。如果有某个特定位置的红色分量,则需要估计蓝和绿。或则如果有绿色分量,则需要估计红和蓝。即使拥有各CFA分辨率象素的红、绿、蓝分量,该CFA分辨率图象也不是最终输出分辨率。另外,尽管输出格式不同,但是打印图象的物理宽度不变(4英寸,分辨率为1600dpi)。因此,打印头的固定宽度为6400点。需要考虑两种极端情况·内插到CFA分辨率(最小内插),然后执行锐化、颜色转换。最后按比例提高到打印分辨率。其优点在于,锐化内核固定,并且以低分辨率进行颜色转换。然而,其缺点是,为内插图象存储的各颜色分量高于8比特,否则在最终按比例提高到打印分辨率时,将不能正确内插中间值。另一个缺点是,需要一个按比例提高部件,该部件能够在每个周期内生成1个打印分辨率内插值。·内插到打印分辨率,然后执行锐化和颜色转换。其优点在于,只有一个重新采样处理,从而提供最高准确度。然而,其缺点是,需要一个按比例提高部件,该部件能够在每个周期内生成1个双三次内插值,同时平均在每个周期内执行锐化和颜色转换。锐化内核必须足够大,以便将CFA分辨率内核应用于高分辨率图象。更糟的是,对锐化处理,至少必须在输出图象上保持3个窗口(每个窗口包含6400行),这是因为在一个打印周期中,青、品红和黄点表示互不相同的6行中的点。以上两种情况都没有考虑以下事实,即最终打印输出是二值图象而不是连续色调图象。因此,可以对重新采样进行折衷,并且获得最佳结果。解决方案是内插到中分辨率。以中分辨率进行锐化和颜色变换,然后按比例提高到打印分辨率。中分辨率必须足够低,以采用较小的锐化内核和颜色变换定时。但是,中分辨率必须足够高,从而在按比例提高到打印分辨率的二值图象时不损失质量。其效果必须与一次(而不是二次)内插到打印分辨率的效果相同。由于打印图象是以1600dpi抖动二值点的方式打印的,所以能够利用320dpi的连续色调图象无损表示。因此,1280连续色调象素的中分辨率提供6400二值点上的无损质量。从1280提高到6400的缩放比率为1∶5。为了确定重新采样的最佳方法,最好考虑与CFA分辨率有关的各颜色平面。图22表示旋转0度的颜色平面。3.2.5.1红色45和蓝色47考虑红色45和蓝色47平面,通过将每个维数的采样象素数放大2倍,可以创建该颜色平面的全CFA分辨率图象。借助重建过滤器(如Lanczos或指数过滤器),可以生成中间象素。因为内核是对称的,所以只需一维内核。由于红色和蓝色在CFA采样空间内的初始表示的偏移不同,所以内核中的初始位置不同。将输出坐标(在1280空间中)映射到输入坐标依靠图象的当前旋转,原因在于登记旋转象素变化的缘故(0度或90度,取决于打印格式)。因此,对于红色和蓝色,以下关系成立其中x,y=中分辨率空间中的坐标x′,y′=输入空间中的坐标mps=每个输入空间采样的中分辨率象素k1,2={0,-0.5}取决于旋转这意味着给定输入空间中的起始位置,通过将1/mps的Δx和Δy以及0分别增加1279次,可以生成一行新的中分辨率象素。可以直接使用输入空间中x和y的分数部分查找用于图象重建和重新采样的内核系数。请注意,k1和k2为0和-0.5,取决于将该图象旋转0度还是旋转90度。表8表示红色和蓝色平面中k1和k2的值,其中旋转90度是逆时针旋转。表8.k1和k2的旋转结果(旋转是逆时针旋转)每个采样的中分辨率象素数(mps)取决于打印格式。假设不旋转时,平面化的RGB图象的红色和蓝色平面分辨率为R750×500,B750×500,则不同输出格式(见第17页上的图13)的比例系数如表9所示。请注意,对于护照图象格式,将整个图象重新采样为输出空间的1/4。表9.图象格式的红色和蓝色比例系数正如从表9中看到的那样,所有图象都需要按比例放大红色和蓝色图象。因此,重新采样处理不会引入锯齿现象。3.2.5.2绿色46不能按照红色和蓝色平面的方法,简单地按比例放大绿色平面46,原因在于绿色平面的每一行表示不同象素,即交错行上的奇数和偶数象素。尽管就象素数而言,表示绿色图象为750×1000,但是可以将该图象说成是1500×500。上述混淆是由绿色象素的交错排列性质造成的,其中沿x和y维数方向的象素之间的距离不相等,并且不能准确映射到图象重建和重新采样。其他系统为绿色平面重建所使用的内插方法的数目就是一个证明—从最近邻域复制到线性内插到双线性内插和启发式重建。对绿色平面而言,将输出坐标(在1280空间中)映射到输入坐标与用于红色和绿色映射的概念相同。该映射依靠图象的当前旋转,原因在于登记旋转象素变化的缘故(0度或90度,取决于打印格式)。因此,对于绿色平面以下关系成立其中x,y=中分辨率空间中的坐标x′,y′=输入空间中的坐标mps=每个输入空间采样的中分辨率象素k1,2={0,-0.5}取决于旋转对于红色45和蓝色47平面,每个采样的中分辨率象素数(mps)取决于打印格式。假设不旋转时,平面化的RGB图象的平面分辨率为R750×500,B750×500,G750×1000,则不同输出格式(见图13)的比例系数如表10所示。请注意,对于护照图象格式,将整个图象重新采样为输出空间的1/4。表10.图象格式的绿色平面比例系数以上比例系数允许CFA分辨率输入空间和中分辨率空间之间的坐标映射。然而,如果拥有CFA分辨率输入空间中的坐标,则不能象红色和蓝色那样,在采样上执行图象重建和重新采样,原因在于绿色平面的交错排列性质。为了高质量的图象重建和重新采样,可以认为绿色信道是一个旋转45度的图象。如图23所示,当按此种方式考虑象素时,高质量图象重建和重新采样方法是清楚的。考虑图23,现在沿x和y方向的采样象素之间的距离相等。正如图24所示,采样象素之间的距离为√2。因此,绿色信道的解决方案是在旋转空间中执行图象重建和重新采样。尽管使用用于红色和蓝色重新采样的重建过滤器,但其内核不同。因为绿色采样率和该信号中最高频率之间的关系,与红色和蓝色平面的关系不同。另外,就内核坐标而论,应正规化内核,以便采样之间的√2距离成为1(然而,仍然使用重新采样坐标之间的非正规化距离来确定是否出现锯齿)。因此,需要两种变换·第一种变换是将不旋转的CFA空间映射到旋转的CFA空间。通过将各纵坐标乘以1/√2实现该变换,因为旋转45度(cos45=sin45=1/√2)。·第二种变化是缩放坐标以匹配正规化内核,通过将各纵坐标乘以1/√2实现。以上两种变换联合得到放大系数1/2。因此,在不旋转的CFA空间中,当将x增加k时,将内核x增加k/2,将内核y减少k/2。同样,当将y增加k时,将内核x增加k/2,将内核y增加k/2。通过考虑根据CFA空间输入图象生成一行中分辨率象素时发生的事情,可以说明不同坐标系之间的关系。给定CFA输入空间中的y纵坐标,我们从x=0开始,每次增加1/mps,共计1280次,从而在每个新位置生成一个新象素。可以将在不旋转的CFA空间中移动1/mps,分解为在旋转CFA空间中沿x和y方向的移动。图25表示该过程。由于cos45=sin45=1/√2,所以在不旋转的CFA空间中移动1/mps等价于沿x和y移动1/(mps/√2)。必须对该数值进行缩放,以匹配正规化内核。缩放等价于再乘以1/√2。因此,在不旋转的CFA空间中移动1/mps等价于在内核x和内核y中移动1/2mps。表11列出不同格式的三种坐标系之间的关系表11.不同图象格式的绿色平面内核Δ值表11表示内核空间中的移动总是乘以一个小于1的数,而在旋转的CFA空间中,只有护照图象的Δ值大于1。因此,护照打印格式出现锯齿,而其他格式不会出现锯齿。然而,假设Δ近似等于1,并且四种图象的大小仅为1/4,不会出现明显锯齿,特别是在图象获取期间对绿色采取低通滤波时。3.2.5.3红、绿、蓝的重建过滤器要使用的精确重建过滤器取决于许多问题。通常在构造原始信号中使用的采样数、信号重建所需的时间和重新采样图象的质量之间进行折衷。在该情况中,一个令人满意的折衷是正在重建的维数中的5个象素采样,以估计位置X为中心,即X-2,X-1,X,X+1,X+2。由于利用5个采样点进行重建,因此,卷积内核中的条目只需要4个系数。对于每种颜色分量,创建一个具有n个条目的内核系数查找表。每个条目具有4个系数。当我们在输出空间中前进时,将输出空间中的变化映射为输入空间和内核空间中的变化。当前内核空间中的分数部分的最高有效位用于编写内核系数表的索引。如果内核表中有64项,则利用分数的前6位查找系数。64项足够Printcam中的重新采样。3.2.6锐化65在打印前,必须对CFA获取的图象进行锐化处理。理论上,应该在CFA分辨率范围内应用锐化过滤器。然而,在该图象的获取分辨率,我们没有各象素的彩色信息。我们仅有指定象素位置的红、蓝或绿色信息。独立锐化每个颜色平面会引起颜色偏移。应该对图象的亮度信道应用锐化,从而指定象素的色度和饱和度不变。锐化包括将RGB图象变换为颜色空间,在颜色空间中,分离亮度与其他颜色信息(如HLS或Lab)80。然后对亮度信道81进行锐化82(通过按比例添加亮度的高通过滤模型)。最后,将整幅图象转换为RGB83(或转换为CMY,由于我们要以CMY格式进行打印)。图26表示该过程。然而,如果考虑向该图象添加高通过滤的L的结果,即改变图象的亮度,则可以避免许多颜色转换步骤。利用线性R、G、B中的相同改变,可以很好地逼近给定象素的亮度改变。因此,只需生成L(高通过滤器L),然后将部分结果平等地应用于R、G、B。3.2.6.1将RGB转换为L80考虑CIE1976L*a*b*颜色平面,其中感觉上L是一致的。为了从RGB转换到L(亮度信道),按下式计算R、G、B的最大值和最小值的平均值L=MIN(R,G,B)+MAX(R,G,B)2]]>3.2.6.2高通过滤器L84然后,将高通过滤器84应用于亮度信息。由于在中分辨率空间而不是在CFA分辨率空间中进行过滤,所以可以按比例放大锐化内核的大小,或适当缩放高通结果。锐化的准确数量取决于CFA,但是一个3×3卷积内核85足以生成一个好结果。如果要增加内核的大小,则表12表示应用于1280分辨率空间时CFA空间中的3×3卷积需要的有效缩放比例86,其中使用绿色信道作为内核缩放的基础。可以从该表中看到,应用于中分辨率空间的7×7大小的内核适合所有锐化。表12.卷积过滤器的比例系数如果在中分辨率图象上应用3×3过滤器85,则根据普通图象缩放操作中使用的比例系数,对结果进行缩放86。给定表2中的数量(特别是标准打印格式),可以使用3×3过滤器85,然后对结果进行缩放。图27表示生成单个过滤L象素的过程。使用的实际内核可以为一组标准高通过滤器内核中的任意内核。图50表示实现PCP时使用的令人满意的基本高通过滤器。3.2.6.3向RGB添加过滤器L下一项工作是,向亮度信道添加部分作为结果的高通过滤亮度值。然后将图象转换为RGB(或者,转换为CMY)。然而,可以利用RGB中的相同改变合理逼近亮度改变(只要颜色空间是线性的即可)。因此,通过向R、G、B添加相同比例的高通过滤亮度值,就可以避免颜色转换。可以利用比例系数定义高通过滤图象的准确比例。如果L是高通过滤亮度象素,k是固定比例系数,则可以按下式定义锐化R、G、B的变换当然,可以把应用于L的比例系数和高通过滤处理(见3.2.3.6一节)中的比例系数结合起来,作为一个比例系数。在向RGB象素应用锐化处理后,可以将图象转换为CMY83,以便打印输出。3.2.7转换为CMY83理论上,从RGB到CMY的转换很简单C=1-RM=1-GY=1-B上述转换假设CMY空间具有线性响应,然而,对于有颜色的墨,该假设并不成立,并且对于基于着色的墨,也只有部分成立。特定设备(输入和输出)的不同颜色轮廓大不相同。因此,考虑到准确转换以及未来的传感器、墨和打印机,Printcam需要更精确的模型。图28表示需要的变换。选择Lab的原因在于感觉上它是一致的(不同于XYZ)。关于从图象传感器色彩转换为打印机色彩,打印机色彩通常完全包含在传感器色彩内。通过基于3组3D查找表的三线性转换,可以得到非常好的结果,而不用穷尽上述变换。查找表包含利用RGB作为索引的特定条目的合成变换。需要三个表一个将RGB映射为C的表90,一个将RGB映射为M的表91,以及一个将RGB映射为Y的表92。对于表中未包含的条目,通过使用三线性内插得到最终结果。图29表示该过程。三线性内插需要从查找表中读取8个值,然后执行7次线性内插(第一维数需要4次,第二维数需要2次,第三维数需要1次)。可以对中间值使用高精度,尽管输出值只有8位。需要的查找表的大小取决于变换的线性性。在本申请中每个表的推荐大小是17×17×17注1,每条目8位。一个17×17×17的表为4913字节(小于5KB)。为了编入每维17个数值的查找表,将8位输入颜色分量看作定点数(4∶4)。4比特整数作为索引,4比特分数用于内插。注1尽管一个17×17×17的查找表能够提供非常好的结果,但是也可以仅仅使用一个9×9×9的转换表(729字节)。可以通过模拟确定表的大小。本文选择保守但结果明确的5K方法。3.2.8向上内插现在,必须对中分辨率(1280宽度)CMY图象进行向上内插,以得到最终打印分辨率(6400宽度)。两个维数的精确比例都是1∶5。尽管可以对25个值(X和Y维数均为1∶5)进行双线性内插,但是不能以连续色调打印合成值。需要对结果进行抖动,并以二值方式打印。假设将连续色调1600dpi结果变为抖动二值点,则从320dpi到1600dpi的双线性内插的准确性并不明显(这正是选择中分辨率的原因)。因此,象素复制生成良好结果。象素复制仅仅包括取得一个象素,并使用该象素作为更大区域的值。此时,将一个象素复制为25个象素(一个5×5块)。如果每个象素是连续色调,则结果将是块状的,但是由于已经对象素进行了抖动,所以25个合成二值点不具有连续色调值。图30表示该过程。3.2.9半色调68打印头2只能以二值形式打印圆点。因此,必须从连续色调CMY转换为抖动CMY图象。更确切地说,通过使用一个随机抖动单元,生成一个分散的圆点级的抖动,其中随机抖动单元将连续色调CMY图象转换为抖动二值CMY图象。比较8比特1600dpi连续色调值与抖动单元93中的当前位置的值。如果80比特连续色调值大于抖动单元值,则生成一个输出比特1。否则,生成一个输出比特0。最终将输出比特发送到打印头,并控制单个喷嘴生成单个C、M、Y圆点。输出比特表示是否加热给定颜色和位置的特定喷嘴。抖动单元93中的相同位置可用于C、M、Y。因为实际打印头2在同一打印周期中生成不同行的C、M、Y圆点。不同颜色点的交错排列生成抖动单元中的交错排列。图31表示半色调处理。抖动单元93的大小取决于输出圆点的分辨率。由于我们生成1600dpi的圆点,所以单元的大小应大于32×32。另外,为了使处理顺序与打印头区段匹配,抖动单元的大小最好均匀分成800(由于打印头的每段有800点)。50×50的抖动单元足以生成高质量结果,并均匀分成800(16倍)。抖动单元的每个条目为8比特,总共2500字节(约1.5KB)。3.2.10为打印机重新格式化69在发送到打印机之前,需要将所有圆点格式化为发送到打印头的正确顺序。必须以正确顺序,如2.2.1中定义的每次24点的顺序,将这些圆点发送到打印头。如果能够以正确的打印顺序生成这些圆点(即,向上内插和抖动功能生成正确顺序的数据),则只需收集这些点值(每个值为1),然后以24个值为一组发送。图32表示该过程。通过Memjet接口15,将24比特组发送到打印头2。4CPU内核与存储器4.1CPU内核10PCP3安装了一个微型控制器CPU内核10,用于同步图象获取和打印图象处理链,以及执行Printcam的通用操作系统任务,包括用户接口。可以使用各种CPU内核只要具有足以执行所需计算的处理能力,并且具有能够快速满足消费者期望的控制功能的处理器即可。由于利用专用硬件进行图象处理,所以CPU不需要处理象素。因此,CPU可以非常简单。然而,CPU的速度必须能够在打印期间驱动步进电机(步进电机需要5KHz处理)。例如,可以使用1MHz的飞利浦8051微型控制器。无需保持不同Printcam型号之间的指令集的连续性。由不同厂商制造不同的PCP芯片设计,而不需要许可或移植CPU核心。设备独立性避免芯片厂商封锁,如Intel对PC市场的封锁。与CPU内核关联的是程序ROM13和小型程序擦除存储器RAM14。CPU10通过存储器映象I/O,与PCP3内的其他部件通信。特定地址范围映射到特定装置,并且在每个范围内,映射到特定装置内的特定寄存器。包括并行和串行接口。4.2程序ROM13将小型程序快闪ROM13安装到PCP3内。ROM的大小取决于选择的CPU,但是应不大于16-32KB。4.3程序RAM14同样,将一个小型擦除RAM区域14安装到PCP3内。由于程序代码不需要处理图象,所以不需要一个很大的擦除区域。RAM的大小取决于选择的CPU(如,堆栈机制,子程序调用约定,寄存器大小等),但是应不大于4KB。4.4CPU存储器译码器16CPU存储器译码器16是一个满足CPU数据存取的简单译码器。该译码器将数据地址翻译成内部低速总线上的内部PCP寄存器存取,因此,支持PCP寄存器的存储器映象I/O。5通信接口5.1USB串行端口接口17该接口是一个标准USB串行端口,连接到内部芯片低速总线18。由CPU10控制USB串行端口。串行端口向/从Printcam传送图象,并且在外部控制下,以DPOF(数码打印指令格式)打印传送的相片。5.2QA芯片串行接口19该接口是两个标准低速串行端口,连接到内部芯片低速总线18。使用两个端口之间的CPU仲裁协议认证打印滚筒[1,2],并执行以下功能·获取墨特性·获得推荐的墨滴量·记录打印的相纸数量,并且当相纸不足以打印请求的打印格式时,请求新的打印滚筒。具有两个端口的原因在于,连接到使用独立线路的照相机上的QA芯片4和打印滚筒的QA芯片5以认证芯片[2]的方式实现两个QA芯片。如果只使用一条线路,则克隆打印滚筒厂商能够盗用认证机制[1]。5.2.1打印滚筒的QA芯片5每个打印滚筒消耗品包括其特有的QA芯片5。QA芯片包含维持最佳打印质量所需要的信息,并且使用认证机制[2]实现该芯片。按以下方式分配256位数据表13.打印滚筒的256位(16a.只读b.只能减少在每次打印前,由CPU检测相纸余量,以确保足够当前指定的打印格式使用。在打印开始后,由CPU减少打印滚筒的QA芯片中的相纸余量。5.3并行接口6并行接口6将PCP3连接到各静电信号。通过低速总线,CPU能够控制作为存储器映象I/O的各连接(有关存储器映象I/O的细节,请参见4.4一节)。表14.并行接口的连接5.4JTAG接口7为了进行测试,PCP3包括一个标准JTAG(联合测试行动组)接口7。由于芯片的复杂性,需要各种测试技术,包括BIST(内置的自检测)和功能块隔离。芯片区域中10%的总开销用于全部芯片测试电路。6图象RAM11图象RAM11用于存储获取的图象42。图象RAM是多级快闪存储器(2为/单元),以便在关闭电源后继续保存图象。平面化的线性RGB图象需要的总存储量是1,500,000字节(约为1.5MB),其排列为·R750×500=375,000字节·G750×500=375,000字节·B750×1000=750,000字节由图象获取装置写入图象,由图象直方图单元8和打印生成单元99读取该图象。CPU10不对图象存储器进行直接随机存取。它通过图象访问装置访问图象象素。7图象获取单元12图象获取装置包含3.1所述的图象获取链需要的所有功能性。图象获取装置通过图象传感器接口98接受象素数据,通过查找表96线性化RGB数据,最后,以平面格式将线性化的RGB图象写到RAM中。图33表示该过程。7.1图象传感器接口98图象传感器接口(ISI)98是一个状态机,为了读取图象,状态机向CMOS图象传感器发送控制信息,包括帧同步脉冲和象素时钟脉冲。大部分ISI可能是来自图象传感器厂商的源单元。由图象获取装置的状态机本身控制ISI。7.1.1图象传感器格式尽管可以使用各种图象传感器格式,但是我们只考虑拜尔彩色滤镜阵列(CFA)。拜尔CFA具有许多本文定义的属性。假设已经充分过滤了CMOS传感器(通过取象透镜)获取的图象,以消除锯齿现象。传感器本身的长宽比为3∶2,具有1500×1000分辨率的采样。最可能的象素结构为拜尔彩色滤镜阵列(CFA),其中图15表示在2G镶嵌面中排列的各2×2象素块。R、G、B(分别对应于红、绿、蓝)的各连续色调采样是10比特。请注意,镶嵌面的每个象素仅包含有关R、G、B之一的信息。必须在打印输出前估计丢失的彩色信息。认为CFA执行部分固定模式噪声(PFN)抑制。需要附加的FPN抑制。7.2查找表96查找表96为ROM,后者将传感器的RGB映射为线性RGB。它匹配3.1.2中描述的线性化RGB过程40。同样,ROM为3KB(3×1024×8-比特)。10位地址来自ISI,而2位TableSelect是由图象获取装置的状态机97生成的。7.3状态机97图象获取装置的状态机97生成图象传感器接口1的控制信号,并且生成用于线性化RGB40和用于平面化图象数据41的地址。发送到ISI98的控制信号通知ISI开始获取象素,停止获取象素等。发送到查找表96的2位地址匹配正从ISI读取的当前行。对于偶数行(0,2,4等),2位地址是红、绿、红、绿等。对于奇数行(1,3,5等),2位地址是绿、蓝、绿、蓝。不管照相机的方向如何,以上总是正确的。发送到图象RAM的21位地址是该图象的写地址。三个寄存器保存红、绿、蓝平面的当前地址。将地址增量作为象素写入各平面。7.3.1寄存器图象获取装置包含许多寄存器表15.图象获取装置中的寄存器另外,图象传感器接口98包含许多寄存器。确切寄存器取决于选择的图象传感器1。8图象访问单元9图象访问单元9生成供CPU10访问ImageRAM11中的图象的方法。CPU10能够读取ImageRAM11中的图象的象素,并将象素写入ImageRAM11。为了图象存储(如,通过USB)17或简单图象处理而读取象素。在图象处理后,将象素写入ImageRAM11,作为先前保存的图象(通过USB加载),或者作为测试图形的图象。测试图形可以是合成图象,特定测试图象(通过USB加载),或者是通过打印生成单元99直接加载到打印头的24比特喷嘴加热值。图象访问单元9是ImageRAM11的直接访问机构,并且根据图16所示的3个寄存器,其操作相当简单。表16.IAU寄存器正如图35所示,图象访问装置的结构非常简单。每当CPU10写入Mode寄存器时,状态机101就读取/写入ImageRAM11。9图象直方图单元8图象直方图单元(IHU)8的目的是生成3.2.2描述的打印图象处理链需要的图象的直方图。IHU只生成8比特采样的平面格式图象的直方图。每个打印通常使用图象直方图单元8三次。生成三个不同的直方图,每个颜色平面一个。每次收集直方图时,都要分析结果,以便确定高低阈值,比例系数等,供其他打印处理使用。有关使用直方图的详细信息,请参见3.2.2.2和3.2.4。9.1直方图RAM102在一个有256项的RAM102中存储直方图本身,每一项为20位。只从IHU内访问直方图RAM。作为20位数值读写每一项。9.2状态机和寄存器103状态机103遵循3.2.2.1中描述的伪码。由表17所示的寄存器控制状态机。表17.图象直方图单元中的寄存器寄存器的典型用途是,向TotalPixels提供计数中包括的总象素数(如,红色375,000),向StartAddress提供红色平面的地址,向ClearCount提供1,并将1写入Go寄存器。在完成计数后,通过将0-255写入PixelValue然后读取相应的PixelCouBt,确定直方图中的每个值。10打印头接口105PCP3利用打印头接口(PHI)105向Memjet打印头2加载需要打印的点,并控制实际的点打印过程。PHI是许多装置的逻辑封装·Memjet接口(MJI)15,该装置向Memjet打印头传送数据,并且在打印期间控制喷嘴加热顺序。·打印生成单元(PGU)99,该单元实现第24页上3.2中描述的大部分打印链,并提供生成测试图形的装置。PGU从ImageRAM11取出平面化的线性RGB,并且实时生成Memjet接口15需要的1600dpi的抖动CMY图象,其中平面化的线性RGB是从CFA格式获取的图象得到的。另外,PGU具有测试图形模式,该模式允许CPU10精确确定需要在打印期间加热的喷嘴。由CPU编程的许多寄存器控制PHI内的单元。图37表示打印头接口的内部结构。10.1Memjet接口15Memjet接口(MJI)15将PCP连接到外部Memjet打印头,用于提供数据和适当信号,以便控制打印期间喷嘴的加载和加热顺序。Memjet接口15只是一个状态机106(见图38),该状态机遵循2.2中描述的打印头加载和加热次序,并且包括2.4.1和2.4.2中描述的预热周期和清洁周期的功能性。MJI15向从以下两个数据源中选择的打印头加载数据·全1。意味着在随后的打印周期中所有喷嘴将加热,这是为预热或清洁周期加载打印头的标准机制。·PGU99的Transfer(传送)寄存器中保存的24位输入。这是打印图象的标准方法,无论是拍摄的相片还是测试图形。将PGU中的24位值直接发送到打印头,然后向PGU发送1位“Advance(前进)”控制脉冲。在每行的结尾,向PGU发送1位“AdvanceLine(前进一行)”脉冲。必须在PGU99准备好第一个24位传送值后,启动MJI15。只有这样,第一次传送到打印头的24位数据输入才有效。因此,直接将MJI15连接到打印生成单元99和外部打印头2。图38表示其基本结构。101.1打印头的连接MJI15到打印头2的连接如下表所示,连接用于读取有关MJI15的输入和输出。名称匹配打印头上的引线连接(见第2节)。图18.打印头连接<tablesid="table22"num="022"><tablewidth="723">名称引线数I/O描述ChromapodSelect4O选择要加热的色品容器(0-9)NozzleSelect4O从容器中选择要加热的喷嘴(0-9)AEnable1O相群A的加热脉冲BEnable1O相群B的加热脉冲CDataIn8O段0-7的青色移位寄存器的青色输入MDataIn8O段0-7的品红色移位寄存器的品红色输入YDataIn8O段0-7的黄色移位寄存器的黄色输入SRClock1OSRClock上的一个脉冲(ShiftRegisterClock)将CDataIn、MDataIn和YDataIn的当前值加载到24个移位寄存器中。PTransfer1O将移位寄存器中的数据并行传送到打印头的内部NozzleEnable位(每个喷嘴一位)。SenseSegEnable1OSenseSegEnablet上的一个脉冲与CDataIn[n]上的数据的逻辑与选择段n的传感线路。Tsense1I温度检测Vsense1I电压检测Rsense1I电阻率检测Wsense1I宽度检测总计41</table></tables>10.1.2加热脉冲持续时间AEnable和BEnable上的加热脉冲的持续时间取决于墨的粘性(取决于温度和墨特性)以及打印头使用的功率。典型脉冲持续时间为1.3到1.8μs。因此,MJI包含一个可编程脉冲持续时间表,利用打印头的反馈作为索引。脉冲持续时间表允许使用低成本电源,并且有助于保持更精确的墨滴喷射。脉冲持续时间表有256项,利用当前的Vsense和Tsense设置作为索引。地址的前4位来自Vsense,地址的低4位来自Tsense。每一项为8位,并且表示0-4μs范围内的定点值。图39表示生成AEnable和BEnable线路的过程。在打印相片前,由CPU10写入256字节的脉冲持续时间表。表中的每个8位脉冲持续时间项组合·亮度设置·墨的粘性曲线(来自QA芯片)5·Rsense·Wsense·Tsense·Vsense10.1.3点数MJI15保持从打印头2喷射的每种颜色的点数。每种颜色的点数是一个32位值,在处理器的控制下单独清除。每个点数可以保持69个6英寸打印的最大平均点数,尽管在典型使用中,在每次打印后读取并清除点数。在最初的Printcam产品中,消耗品包括相纸和墨,可以想象,不同Printcam型号只有可更换墨的消耗品。最初的Printcam产品递减以毫米为单位的相纸的余量(在QA芯片5中存储,见5.2),以确定相纸是否足够打印所需格式。墨足以覆盖提供的所有相纸。在其他Printcam产品中,CPU10使用点数更新QA芯片5,以便预测墨盒何时用完墨。处理器从QA芯片5中了解墨盒中C、M、Y的墨量。通过计算墨滴数,无需使用墨传感器,并且防止墨通道变干。在每次打印后,将更新的墨滴数写入QA芯片5。如果墨不足,则不打印新相片,并允许用户更换墨,从而用户不会得到一张需要重新打印的无用相片。图40表示青色点数计数器的布局。其他两个点数计数器(用于品红的MdotCount和用于黄色的YDotCount)具有相同结构。10.1.4寄存器CPU10通过寄存器组与MJI15通信。寄存器允许CPU用参数表示打印机,并接收有关打印进展的反馈。MJI包含以下寄存器表19.Memjet接口寄存器在4英寸打印头的内部,每段到连接容器的电路为表5.4英寸打印头内部段的连接10.1.5预热和清洁周期通过设置适当的寄存器,完成清洁和预热周期。·SetAllNozzles=1·将PulseDuration寄存器设置为低持续时间(在预热模式中),或设置为合适的墨滴喷射持续时间(对于清洁模式)。·将NumberLines设置为喷嘴的加热次数。·设置Go位,然后等待打印周期结束时清除Go位。10.2打印生成单元99打印生成单元(PGU)99实现3.2中描述的打印链的大部分功能,并提供生成测试图形的装置。从最简单的观点看,PGU提供图象RAM11和Memjet接口15之间的接口,如图41所示。PGU从ImageRAM中取出平面化的线性RGB,并且实时生成Memjet接口需要的1600dpi的抖动CMY图象,其中平面化的线性RGB是从CFA格式获取的图象得到的。另外,PGU99具有测试图形模式,该模式允许CPU10精确确定需要在打印期间加热的喷嘴。在使用24位值后,MJI15向PGU99提供一个Advance脉冲,并且在行结束时提供一个AdvanceLine脉冲。PGU99具有两个图象处理链。第一个处理链是测试图形模式,直接读取图象RAM11中的数据,然后在缓冲器中格式化该数据以输出到MJI。第二个处理链包括大部分打印链功能(见3.2)。图18所示的打印链包括以下功能·收集统计数字60·旋转图象61·白平衡62·范围扩展63·重新采样64·锐化65·转换为CMY66·向上内插67·半色调68·为打印机重新格式化69PGU99包含除收集统计数字60之外的所有功能。为了执行收集统计数字步骤,CPU10调用图象直方图单元8三次(每个颜色信道一次),并应用某些简单算法。其余功能属于PGU99,原因在于精度和速度关于精度,以高精度保存整幅图象需要太多存储器,关于速度,一个简单CPU不能满足Memjet打印头2的实时高速要求。PGU99将许多参数作为输入,参数包括RGB到CMY的转换表,执行白平衡和范围扩展的常数,重新采样的比例系数,以及用于旋转的图象访问参数。图20表示两个处理链。最直接的处理链通过测试图形访问处理110从图象RAM11到缓冲器5。另一个处理链包括5个并行运行处理。第一处理111执行图象旋转、白平衡和范围扩展。第二处理112执行重新采样。第三处理65执行锐化,第四处理66执行颜色转换。最后一个处理113执行向上内插、半色调处理,并且为打印机重新格式化。通过缓冲器连接上述处理,某些处理之间只需几个字节,而其他处理需要几K字节。由于打印头的定时驱动所有处理,所以主要以逆序考虑上述处理。特定处理的定时和缓冲器大小需求比较明显。总之,表21表示缓冲器大小。表21.打印生成单元的缓冲器大小除许多寄存器之外,某些处理还需要大量查找表或存储元件。表22概括说明这些需求。表22.PGU处理内的存储器需求10.2.1测试图形访问测试图形访问处理110是生成测试图形的装置。在正常用户环境中,不使用该处理。该处理主要用于诊断。测试图形访问110读取图象RAM11,然后将8位值直接传送到缓冲器5118,以输出到Memjet接口。它不对8位值做任何修改。CPU10通过使用图象访问单元9生成图象RAM11中的数据。以环绕方式读取图象RAM11中的数据。使用两个寄存器来描述测试数据第一字节的起始地址和字节数。当达到数据结束时,再次从头开始读取数据。图43表示测试图形访问装置110的结构。正如从图43中看到的那样,测试图形访问装置110与地址生成器119没有区别。启动时,对于每个AdvanceLine信号,生成器读取3个字节,生成一个TransferWriteEnable脉冲,读取下3个字节,然后等待Advance脉冲。在Advance脉冲中,提供TransferWriteEnable脉冲,读取下3个字节,然后再次等待。继续上述处理直至AdvanceLine脉冲,其中在该脉冲上,处理再次从当前地址开始。关于读取3个字节,地址生成器119只需从图象RAM11中读取三个8位值,然后将其写入缓冲器5118中。将第一个8位值写入缓冲器5的8位地址0,将第二个写入缓冲器5的8位地址1,将第三个写入缓冲器5的8位地址2。然后,地址生成器119等待Advance脉冲,以便再次进行相同处理。为图象RAM11生成的地址基于表23所示的起始地址和字节数。表23.测试图形访问寄存器以下伪码表示地址生成。未示出AdvanceLine和Advance脉冲。<prelisting-type="program-listing"><![CDATA[DoForeverAdr=DataStartRemaining=DataLengthReadAdrintoBuffer5(0),Adr=Adr+1ReadAdrintoBuffer5(1),Adr=Adr+1ReadAdrintoBuffer5(2),Adr=Adr+1Remaining=Remaining-1if(Remaining=0)Remaining=DataLenghtEndDo]]></pre>由CPU10确保该数据对打印头2有意义。字节0是8个青色段的喷嘴加热数据(位0=段0等),字节1用于品红,字节2用于黄色。另一组24位数据用于用水平线分割的奇数/偶数象素。10.2.2缓冲器5118缓冲器5118保持整个打印生成处理生成的圆点。缓冲器5包括一个24位移位寄存器,用于保持每次从UHRU113(向上内插、半色调和重新格式化装置)生成的圆点;3个8位寄存器,用于保持从TPAU(测试图形访问装置)生成的数据;和一个24位寄存器,作为传送到MJI(Memjet接口)的数据的缓冲器。来自MJI的Advance脉冲向24位Transfer(传送)寄存器加载全部24位数据,或者从3个8位寄存器或从一个24位移位寄存器。因此,缓冲器5作为所生成的圆点的双重缓冲机制,并且具有图44所示的结构。10.2.3缓冲器4117缓冲器4117保持计算的CMY中分辨率(1280分辨率)连续色调图象。缓冲器4是由颜色转换处理66生成的,由向上内插、半色调和重新格式化处理113访问,以生成打印机的输出点。连续色调缓冲器的大小取决于打印头上的喷嘴之间的物理距离。在生成某一物理行的一种颜色的圆点时,生成不同行上不同颜色的圆点。实际结果是打印机一次打印6行不同的物理行—不同输出行的奇偶点,以及每种颜色的不同行。2.1.1解释此概念并定义以上距离。实际结果是,在高分辨率圆点中,从偶数青色圆点通过品红色圆点到黄色圆点是已知距离。为了最小化RGB的生成,从而最小化CMY的生成,在缓冲器4中缓冲生成高分辨率圆点的中分辨率连续色调象素。由于中分辨率行与高分辨率行的比例是1∶5,所以在每个维数上对各中分辨率采样5次。对缓冲器行而言,我们仅关心1个维数,因此,仅考虑来自一个象素行的5行圆点。不同颜色的喷嘴之间的距离是4-8点(取决于Memjet参数)。因此,假设为8点,则内含距离为16点或17点间距。最坏情况是,17行圆点包括给定象素行的上一行圆点。这意味着5行象素,生成的圆点行为1,5,5,5,1,并且允许将喷嘴间隔增加到10。为了保证缓冲器的连续色调生成处理写入过程不干扰缓冲器的点生成处理读取过程,额外添加每种颜色的中分辨率行,每种颜色共计6行。因此,连续色调缓冲器为6行3色,每行包含1280个8比特连续色调值。需要的总存储量为3×6×1280=23040字节(22.5KB)。存储器只需要每周期读出一个8比特值,每25个周期写入一个8比特值(每个连续色调象素读25次)。图45表示缓冲器4的结构。可以将缓冲器4实现为以打印头点生成处理的额定速度运行的单周期双存取(读和写)RAM,或者实现为比每周期一次读/写快4%的RAM。在开始打印处理前,将缓冲器4设置为空白(全0)。10.2.4向上内插、半色调和为打印机重新格式化尽管3.2.8、3.2.9和3.2.10分别将向上内插、半色调和为打印任务重新格式化任务113定义为独立任务,但是在PCP3的硬件实现中,作为单一处理实现。向上内插、半色调和重新格式化装置(UHRU)113的输入为连续色调缓冲器(缓冲器4)117,包括预先计算的CMY1280分辨率(中分辨率)图象。输出是一组需要发送到Memjet接口15的具有正确顺序的24位值,以便通过缓冲器5118输出到打印头。以每次一位的方式生成24位输出,并发送到缓冲器5118中的24位移位寄存器。利用来自MJI15的Advance和AdvanceLine信号控制以上处理。当UHRU113启动时,并且在各AdvanceLine脉冲后,生成24位值,然后利用ShiftWriteEnable信号按照时钟信号写入缓冲器5的24位移位寄存器。在写入第24位后,提供TransferWriteEnable脉冲,然后生成下24位。此后,UHRU113等待来自MJI的Advance脉冲。当Advance脉冲到达时,向缓冲器5118提供TransferWriteEnable脉冲,并且在再次等待前计算下24位。实际上,在提供第一个Advance脉冲后,开始同步,此后每24个周期出现一个Advance脉冲。图46表示向上内插、半色调和重新格式化处理。利用简单的8位无符号比较器120执行半色调任务。比较器的两个输入来自交错抖动单元121和缓冲器4117。由地址生成状态机122确定向无符号比较器120提供上述值的顺序,状态机122确保进入1280分辨率图象的地址与打印头需要的面向段的顺序匹配。因此,地址生成状态机122执行向上内插和为打印机重新格式化任务。通过正确寻址连续色调缓冲器(缓冲器4)117,并确保比较器120使用来自抖动单元121的正确查找表匹配交错地址,实现重新格式化,而不仅仅是每次以高分辨率访问一整行,然后根据打印机查找需求重新格式化该行(见3.2.10中的说明)。半色调任务与3.2.9说明的处理相同。然而,由于点输出是按照打印头的正确顺序生成的,所以选择抖动单元121的大小,以便平均分成800。因此,某一段的抖动单元中的给定位置与剩余7段(的抖动单元中的给定位置)相同。一个50×50的抖动单元能够提供令人满意的结果。正如3.2.9中所述,由于同时生成各种颜色的不同行,所以不同颜色可以使用抖动单元中的相同位置。因此,抖动单元的寻址很简单。我们从交错排列的抖动单元中的特定行(如,0行)开始。使用的第一个抖动单元条目是条目0。使用该条目24次(24个周期)以生成全部8段的3种颜色,然后前进到0行的条目1。在条目49后,返回到条目0。对全部19,200个周期继续上述处理,以生成19,200个点。然后,半色调装置停止并等待AdvanceLine脉冲,该脉冲使地址生成器前进到抖动单元中的下一行。称为交错抖动单元121的原因在于,它与正常抖动单元的区别在于交错奇数行和偶数行。这是因为我们生成不同行上的奇数和偶数象素(从象素0开始),并且使地址生成器122免于在24个象素的交替集合上前进到下一行,然后再返回。图25表示一个简单抖动单元93,以及将其映射到相同大小的交错抖动单元121的方法。请注意,为了确定给定位置的“奇数性”,我们给指定行0、1、2等中的象素编号。比较(无符号)来自缓冲器4117的8位值与来自交错抖动单元121的8位值。如果缓冲器4的象素值大于等于抖动单元值,则将“1”比特输出到缓冲器5118的移位寄存器。否则,将“0”比特输出到缓冲器5的移位寄存器。为了对19,200个连续色调象素进行半色调处理,必须读入19,200个连续色调象素。地址生成单元122执行此项任务,生成进入缓冲器4117的地址,有效实现向上内插任务。为读取缓冲器4而生成地址的过程比生成抖动单元的地址的过程稍微复杂一些,但并不很复杂。在写入缓冲器的第一行后,为读取缓冲器4的地址生成才开始。缓冲器4的剩余行为0,因此,实际上是白色(没有打印点)。6行输出的每一行具有一个存储整数和分数部分的寄存器。使用寄存器的整数部分选择要读取哪个寄存器,以便有效地向上内插特定颜色的奇数和偶数象素的颜色。使用3个象素计数器保存段0内的当前位置,使用一个临时计数器PADR(象素地址)来偏移剩余7段。总而言之,读取缓冲器4的地址生成需要表24所示的寄存器。表24.读取缓冲器4需要的寄存器6个缓冲器行寄存器的初值是喷嘴之间的物理点距离(切记分数部分除以5的余数)。例如,如果利用1点隔离某种颜色的奇数和偶数输出点,并且利用8点隔离一种颜色的喷嘴与下一种颜色的喷嘴,则初值如表25中“第一行”一栏所示。在生成每组19,200个圆点后,这些计数器必须增加1分数部分,表示我们沿垂直维数对各象素采样5次。表25的“第二行”一栏表示结果值。请注意,5∶4+1=0∶0,因为只有6个缓冲器行数。表25.6个缓冲器行寄存器的初始设置和第二行的值接着,6个缓冲器行寄存器确定读取哪个缓冲器行用于指定颜色的奇数和偶数象素。为了确定从缓冲器4的特定行中读取哪些1280中分辨率的象素,我们使用3个象素地址计数器(每种颜色一个),和一个临时计数器(P_ADR),后者作为各段的索引。每一段与下一段的间隔是800点。在中分辨率象素中,该距离为160。由于800能够被5整除,所以只需使用3个象素地址计数器的整数部分。我们生成偶数青色象素的8个地址,然后生成偶数品红色象素的8个地址,最后生成黄色偶数象素的8个地址。接着,对奇数青、品红和黄色象素进行相同处理。将两组24位值(24个偶数和24个奇数)的处理执行400次。然后,将象素地址计数器(X_P_ADR)复位到0,并使6个缓冲器行寄存器前进。每前进5行,下一个缓冲器行立即变为空闲,并且可以更新(通过转换为CMY)。表示26以简单形式列出上述步骤。表26.读取缓冲器4的地址生成处理以下列出用于生成缓冲器4117的地址的伪码。请注意,以步骤的顺序集合方式列出伪码。表26能够更好地表示地址生成操作的并行性质。<prelisting-type="program-listing"><![CDATA[%CalculatestartpositionsCyanEven=0∶0CyanOdd=CyanEven+0∶1MagentaEven=CyanOdd+1∶3MagentaOdd=MagentaEven+0∶1YellowEven=MagentaOdd+1∶3YellowOdd=YellowEven+0∶1DoNtimes(dependonprintsize)Cyan_P_ADR=0Magenta_P_ADR=0Yellow_P_ADR=0Do400times%generatetheevenpixelsforthefirstsetof24bitsP_ADR=IntegerportionofCyan_P_ADRCyan_P_ADR+=0∶1Do8timesReadBuffer4(line=CyanEven,pixel=P_ADR)P_ADR+=160EndDoP_ADR=IntegerportionofMagenta_P_ADRMagenta_P_ADR+=0∶1Do8timesReadBuffer4(line=MagentaEven,pixel=P_ADR)P_ADR+=160EndDoP_ADR=IntegerportionofYellow_P_ADRYellow_P_ADR+=0∶1Do8timesReadBuffer4(line=YellowEven,pixel=P_ADR)P_ADR+=160EndDo%generatetheoddpixelsforthefirstsetof24bitsP_ADR=IntegerportionofCyan_P_ADRCyan_P_ADR+=0∶1Do8timesReadBuffer4(line=CyanOdd,pixel=P_ADR)P_ADR+=160EndDoP_ADR=IntegerportionofMagenta_P_ADRMagenta_P_ADR+=0∶1Do8timesReadBuffer4(line=MagentaOdd,pixel=P_ADR)P_ADR+=160EndDoP_ADR=IntegerportionofYellow_P_ADRYellow_P_ADR+=0∶1Do8timesReadBuffer4(line=YellowOdd,pixel=P_ADR)P_ADR+=160EndDo%Nowcanadvancetonext″line″CyanEven+=0∶1CyanOdd+=0∶1MagentaEven+=0∶1MagentaOdd+=0∶1YellowEven+=0∶1YellowOdd+=0∶1EndDoEndDo]]></pre>10.2.5缓冲器3116缓冲器3是8比特R、G、B值的简单集合。这些RGB值为锐化处理65生成的锐化后的中分辨率(1280分辨率)象素,转换为CMY处理66读取这些值。不需要使缓冲器3116加倍。原因在于读(转换为CMY)处理66只需要前39个周期的RGB值,而写(锐化)处理65使用实际更新RGB值前的49个周期。10.2.6转换为CMY66正如3.2.7所述,在中分辨率空间(1280分辨率)中执行从RGB到CMY的转换。转换处理66必须以足以跟上向上内插-半色调-重新格式化处理113的速度,生成连续色调缓冲器象素(缓冲器4)117。由于每个连续色调值用于25个周期(沿x和y维数各5次)所以转换处理占用25个周期。三个颜色分量共需75个周期。此处说明的处理每颜色分量只需14个周期,并且在39个周期后释放输入的RGB值。如果实现该处理的逻辑访问输入RGB值的周期多余49个周期,则必须使缓冲器3116加倍,因为锐化处理65需要的该时刻后更新缓冲器。以三线性内插方式实现转换。转换处理使用三个17×17×17查找表RGB到青色90,RGB到品红91,以及RGB到黄色92。然而,由于需要25个周期执行个三线性内插,因此,不需要快速三线性内插装置。而调用线性内插处理1308次就足够了。用于查找表索引的地址生成很简单。我们使用8位颜色分量的4个最高有效位作为地址生成,8位颜色分量的4个最低有效位用于从转换表检索的数值之间的内插。由于查找表的维数是17而不是16,所以查找表的寻址需要一个加法器。幸运的是,将一个4比特数X乘以17得到一个8比特数XX,因此,不需要加法器或乘法器,将一个4比特数乘以172(289)稍微复杂一些,需要一次加法。尽管可以更快地执行内插,但是我们使用一个加法器生成地址,并且有一个单周期内插装置。因此,正如表27所示,我们能够计算在14个周期内根据RGB生成单一颜色分量的内插。为了生成青、品红和黄色分量,需要将该处理重复3次。更快的方法也是可行的,但没有必要。表27.用于颜色转换的三线性内插正如表27所示,使用一个ADR寄存器和加法器生成查找表的地址。可以使用6组8位寄存器保存中间结果-2个寄存器保存从查找表中加载的值,4个寄存器用于内插装置的输出。请注意,线性内插装置的输入总是一对8位寄存器P1/P2,P3/P4和P5/P6。目的是简化寄存器选择逻辑。在周期14中,“V”寄存器131保存最后计算的8位值。可以在下一个周期中,将8位结果写入缓冲器4117中的适当位置。图48表示转换为CMY处理66的框图。假设第一次运行该处理生成青色,将合成的青色连续色调象素存储到青色1280中分辨率连续色调缓冲器中。然后在相同RGB输入上再次进行处理以生成品红色象素。将品红色连续色调象素存储到品红色1280中分辨率连续色调缓冲器中。最后,根据相同的RGB输入生成黄色连续色调象素。将生成的黄色象素存储到黄色1280中分辨率连续色调缓冲器中。用于写入连续色调缓冲器(缓冲器4)117的地址生成很简单。使用一个地址(和附随的ColorSelect位)写入三个颜色缓冲器的每个缓冲器中。在周期15上写入青色缓冲器,在周期30上写入品红色缓冲器,在周期45上写入黄色缓冲器。每75个周期(在写入三种颜色后)将象素地址加1。每5个AdvanceLine脉冲,正在写入的行加1(环绕)。正在写入的行的顺序为0-1-2-3-4-5-0-1-2-3等。因此,写入(25×1280×3)与读取(19200×5)衡消。10.2.7缓冲器2115缓冲器2接受重新采样-创建亮度(CreateLuminance)处理112的输出,其中在处理112中生成给定象素坐标的全部RGB和L象素。缓冲器2115的输出进入锐化处理65,该处理需要一个3×3的亮度值135,后者以正在锐化的象素为中心。因此,在锐化处理65中,需要访问3×3的亮度值,以及中心亮度象素的对应RGB值136。同时,重新采样-创建亮度处理112必须计算下三个亮度值以及对应的RGB中心值。图49表示访问缓冲器1115的逻辑视图。缓冲器2115的实际实现只是一个4×6(24项)的8位RAM,有关读写的寻址提供这些值的有效移位。可以将2比特的列计数器加1(环绕)以提供循环缓冲器,这等价于将整个缓冲器的数据移动1列。我们不需要第四列RGB数据这一事实没有什么意义,并且只使用3个字节,因此无需实现复杂的移位和读/写逻辑。在给定周期中,可以读写RAM。读写处理具有75个周期,在75个周期内实现读写以便跟上打印头。10.2.8锐化锐化装置65执行3.2.5说明的锐化任务。由于在缓冲器3116中存储锐化后的RGB象素,所以锐化装置65必须跟上转换为CMY处理66,这意味着必须在75个周期内锐化全部RGB象素。正如第35页上3.2.6.2部分表12说明的那样,锐化处理包括L(根据RGB数据生成的信道并存储在缓冲器2中)的一个高通过滤器,并且将过滤后的L添加到RGB分量中。如图50所示,使用的高通过滤器是一个使用3×3卷积内核的基础高通过滤器。在10个周期上计算高通过滤器。第一周期向临时寄存器140加载8×中心象素值(中心象素左移3位)。下8个周期用基数0减去剩余的8个象素值。因此可以用一个加法器完成整个过程。周期10包括将结果乘以常数141。以上常数表示1/9,但是是一个寄存器,可以利用软件按一定比例系数修改以上常数。然后,将总量加到R、G、B值(上限为255),并且在周期72、73和74内,写入缓冲器3。在75个周期的最后3个周期内计算/写入锐化后的RGB值,从而无需使缓冲器3加倍。图51表示锐化装置的结构。与缓冲器2115相连的加法器142是一个以0为基数的减法器。在周期0(共75个)期间,向TMP140加载8×第一L值,然后从中减去下8个L值。其结果没有符号,因为减法具有基数0。在第10个周期(周期9)期间,将TMP140中的11比特总数乘以一个比例系数(通常为1/9,但是受软件控制,因此可以调整系数),然后写回到TMP140。只将结果的8整数比特写到TMP中(截去分数),因此乘法器的限制为255。如果使用比例系数1/9,则写入的最大值将是226(255×8/9)。比例系数为8比特分数,其最高位表示1/8。可变比例系数考虑了以下事实,即不同打印格式是利用不同数量缩放CFA图象的结果(因此,3×3卷积将生成适当比例的结果)。在周期72、73和74期间,计算红、绿、蓝的锐化值,然后写入缓冲器3116的R、G、B寄存器,每周期写一次。在上述3个周期内执行的计算为,将TMP加到与中心象素对应的缓冲器2中的R、G、B。地址生成很简单。写入缓冲器3116分别是周期72、73和74中的R、G、B。缓冲器2115的读取操作使用缓冲器2的周期性质。地址包括一个2比特的列分量(表示读取4列中的哪一列),和一个3比特值(表示L1、L2、L3、R、G、B)。各行的列号从1开始,并且每75个周期加1(环绕)。表28表示读取缓冲器2的顺序。C寄存器为地址的2比特列分量。C上的所有加法均以4作为模数(在2比特内环绕)。表28.75个周期内缓冲器2的读访问在周期74后,C寄存器保持下一个计算集合的列数,因此,使得下一个周期0中的取数有效。当在缓冲器2中写入足够的L和RGB象素后(从而高通过滤器有效),锐化处理才开始。只有缓冲器2的写入处理前进3列后,锐化处理才开始。10.2.9缓冲器1114缓冲器1以原始获取空间分辨率保持白平衡和范围扩展的象素。以10比特的颜色分辨率保存各象素,而图象RAM的图象存储颜色分辨率为每象素8比特。缓冲器1的排列为3个可独立寻址的缓冲器—每个颜色平面一个,红145,绿146,蓝147。图52表示缓冲器的简单概述。在75个周期期间,重新采样处理112从3个缓冲器的各缓冲器中读出16项,共读取3次,并且最多向3个缓冲器写入29个新值(实际数目取决于比例系数,以及重新采样期间当前次象素的位置)。缓冲器必须足够宽,从而读取和写入操作不会彼此干扰。在读取过程中,从6行中的每一行中读取4个象素。如果比例系数很大(如,按比例放大为全景),则可以多次读取同一象素(使用不同内核位置进行重新采样)。最后,需要下一个象素。如果放大系数不是很大,则在下一个象素生成周期之前需要新象素(即,在75个时钟周期内)。考虑表9和表11中的比例系数,缩放的最坏情况是护照格式31·绿色平面具有的护照的Δ值为1.5625,表示6个CFA象素位置内可以包含4个位置。然而,每一行绿色采样仅包含各交替象素。这意味着每行只需要4个采样(最坏情况为4而不是3,原因在于最坏情况为初始位置)。Y方向上的移动表示需要一个附加的采样列,从而需要5个采样。最后,写入操作需要一个附加的采样列。因此,每行共需6个采样。一个采样需要7行。为了生成每个x位置的3组RGB象素,沿y方向的最大移动将为4行(3.125=2×1.5625)。移动X添加上一行采样和下一行采样。因此,共需13行。有关细节请参见10.2.10。·红色和蓝色平面具有的护照的Δ值为0.78125,表示在4个采样内可以包含4个位置。当正在读取剩余4个采样时,写入操作需要一个附加采样。每行共需5个采样,将采样数增加到6个采样以匹配绿色平面(用于启动)。为了适合y方向的移动需要6行。有关细节请参见10.2.10。每个子缓冲器是一个带有译码功能的RAM,以便在每个周期内读写一个10比特的采样。表29概要表示子缓冲器,其消耗小于200字节。表29.子缓冲器概要10.2.10重新采样和创建亮度信道正如3.2.5中说明的那样,重新采样和创建亮度信道处理112通过对白平衡和范围扩展后的R、G、B平面图象重新采样,生成中分辨率空间中的RGB象素值。另外,必须生成给定RGB象素的亮度值,以及该RGB象素前后的象素的亮度值,以供稍后的锐化处理使用。生成RGB值和3个L值的允许时间是75个周期。假设L是给定象素位置的R、G、B的最大值和最小值的平均值(参见3.2.6.1),必须有效生成3个象素(正在考虑的象素,以及上一个象素和下一个象素)坐标的RGB值。因此,我们在75个周期内计算3个中分辨率RGB采样及其对应的L值。缓冲L值(因而缓冲RGB值)以避免重新计算需要大量存储器,总之,我们有足够时间生成RGB值。缓冲器4117包含中分辨率象素,但是不能使用缓冲器4,因为它保持锐化后的CMY象素(而不是未经锐化的RGB象素)。10.2.10.1重新采样可以将重新采样处理视为3组RGB生成,必须在25个周期内完成每组生成(共需75个周期)。可以将生成一个RGB值的过程视为3个并行执行的过程对于给定的中分辨率象素坐标,计算R,计算G,计算B。可以在3.2.5中找到生成上述值的理论依据,但结果是在图象的信道上有效运行3个图象重建过滤器,每个信道上一个。在PCP的情况中,利用5个采样点执行图象重建,从而卷积内核需要4个系数(由于一个系数总是0,所以不需要该采样点)。因此,通过在R数据上运行图象重建过滤器计算中分辨率的R象素。通过在G数据上运行图象重建过滤器计算中分辨率的G象素,通过在B数据上运行图象重建过滤器计算中分辨率的B象素。尽管内核在x和y方向上是对称的,但是每种颜色平面的内核并不相同。由于R和B的图象特征相似,所以其内核相同,但是对于G平面,由于其图象重建需要旋转操作,所以具有不同内核。图53表示该处理的高级视图。未示出地址生成。只有正在生成的当前象素行的缓冲器1中具有足够象素,重新采样处理才能开始。即将4列数据写入缓冲器1114中的各颜色平面后才开始处理。此前重新采样处理112必须停止。为了计算给定颜色平面的中分辨率象素值,需要25个周期。为了将内核应用于4×4采样区域,在4行采样(每行4个输入采样)的每一行上应用一维内核(用x作索引)。然后在生成的4象素值上应用一维内核(用y作索引)。最终结果是输出重新采样后的象素。在每个周期内应用一个系数共需16个周期才能生成4个中间值,并且生成最终象素值需要4个周期,从而共需20个周期。关于精度,输入象素为10比特(8∶2),内核系数为12比特。在应用内核的4个步骤中,保持14比特的精度(8∶6),但是结果只保存10比特(8∶2)。因此,当沿x和y方向进行卷积运算时,可以使用相同的卷积引擎。最终输出(即R、G、B)为8比特。重新采样处理的核心是图54所示的卷积装置150。如图30所示,重新采样处理占用20个周期。请注意,“行1,象素1”指缓冲器1114中的输入,并且采用以下寻址机制。表30.20个周期重新采样10.2.10.2生成L8正如3.2.6.1所述,必须从RGB转换80为L,以便随后的锐化处理。考虑CIE1976L*a*b*颜色平面,其中感觉上L是一致的。为了从RGB转换到L(亮度信道),按下式计算R、G、B的最大值和最小值的平均值L=MIN(R,G,B)+MAX(R,G,B)2]]>并行生成给定象素的R、G、B值,该处理需要20个周期。此处说明的生成L的总时间是4个周期。因此生成RGBL的总时间是24个周期,有一个周期空闲(因为必须在25个周期内完成处理)。因此,可以在第25个周期内将L的值安全写到缓冲器2115内。以下说明地址生成。如表31所示,一个8位比较器能够在3个周期内生成3个比特,随后使用这3个比特选择加法器的2个输入。可以在加法器内实现以2为除数的除法运算。表31.根据三次比较选择Min和Maxa.不关心状态由于只将最小值加到最大值中,所以顺序并不重要。因此,对于加法器的两个输入,输入1选择R和G,输入2选择G和B。该逻辑是表31的位组合模式的最小化。10.2.10.3缓冲器2的地址生成重新采样装置的输出是一个RGB象素,和以RGB的垂直方向为中心的3个亮度(L)象素。将3个L值写到缓冲器2中,每25个周期一个。必须在周期45和周期50之前写入R、G、B值,因为生成的第二象素为必须保持其RGB值的中心象素。缓冲器2的地址包括一个2比特的列部分(表示写到4列中的哪一列),和一个表示L1、L2、L3、R、G、B的3比特值。每行的列号均从0开始,并且每75个周期(即,写出L3后)加1(环绕)。10.2.10.4内核查找表的地址生成内核地址的计算方法与3.2.5的结尾部分说明的方法相同。内核的维数为1,查找表内有64项。使用当前内核空间中分数部分的6个最高有效位(截尾)作为内核系数表的索引。对于前16个周期,使用X坐标作为内核索引,而在下4个周期中,使用Y坐标。由于内核是对称的,所以X和Y可以使用相同的内核。对于1280个重新采样值的每个值,需要生成3个象素—正在考虑的象素161,该象素之前的象素160和该象素之后的象素162。我们生成象素160,然后生成两个象素161和162,而不是生成中心象素,然后从中心象素向上、向下移动。接着,返回到原始行,生成下一个输出位值的下3个象素。这样,如图55所示,生成1280个位置的每个位置的象素。因此,我们在内核空间中有一个当前位置。当在原始输入空间中沿x或y前进到下一象素时,向内核坐标添加适当的Δ值。考虑图56,可以看到旋转和不旋转输入空间两种情况。考虑沿X方向的移动ΔX和沿Y方向的移动ΔY,其值取决于打印格式,因此mps(见3.2.5)也取决于打印格式。对于绿色信道,ΔX=ΔY=1/2mps。对于红色和蓝色信道,ΔX=1/mps,ΔY=0。有关ΔX和ΔY的适当值参见表9和表11。现在,将ΔX和ΔY应用于内核内的移动。当沿X方向前进时,将ΔX加到X中,并从Y中减去ΔY。在不旋转情况中,只需要从Y中减去0。同样,当沿Y方向前进时,将ΔY加到X中,并将ΔX加到Y中。这么做是因为沿X和Y方向的移动相差90度。内核查找表的地址生成假定由软件设置开始位置,以及相对于内核空间中沿Y方向移动的两个Δ值ΔX和ΔY。以下伪码表示地址生成逻辑。<prelisting-type="program-listing"><![CDATA[ColumnKernelY=StartKernelYColumnKernelX=StartKernelXDoNLinestimes(howevermanyoutputlinestherearetoprocess)KernelX=ColumnKernelXKernelY=ColumnKernelYDo1280timesGeneratePixelKernelX=KernelX+DeltaY(movementinY)KernelY=KernelY+DeltaX(movementinY)GeneratePixelKernelX=KernelX+DeltaY(movementinY)KernelY=KernelY+DeltaX(movementinY)GeneratePixelKernelX=ColumnKernelX+DeltaX(movementinX)KernelY=ColumnKernelY-DeltaY(movementinX)EndDoColumnKernelY=ColumnKernelY+DeltaX(movementinY)ColumnKernelX=ColumnKernelX+DeltaY(movementinY)EndDo]]></pre>正如该伪码所示,3个象素的生成出现1280次。与每个象素生成关联的是两次加法,在GeneratePixel的25个周期任务中执行加法。每个GeneratePixel任务为25个周期,包括4组通过KernelX(系数0、1、2、3)对内核进行索引的4个周期,然后是通过KernelY(系数0、1、2、3)对内核进行索引的4个周期,最后是9个等待周期。请注意,所有值全是正的,并且仅为分数。将更新的X和Y内核值的两个进位输出到缓冲器1的地址生成(见10.2.10.5)。进位标志仅仅表示算术运算期间内核的特定坐标是否环绕。环绕可大于1或小于0,但是结果总是正的。将两个进位发送到旋转/白平衡/范围扩展装置,用于确定图象的有关输入行。10.2.10.5缓冲器1的地址生成重新采样装置112从缓冲器1114中读取数据,后者包括3个可独立寻址的缓冲器145、146和147,每个颜色平面一个。可以在每个周期中读写各缓冲器。L=MIN(R,G,B)+MAX(R,G,B)2]]>将75个周期的读取处理分成3组,每组25个周期,25个周期用于生成各象素。每25个周期包括读取缓冲器1的16个周期和没有访问操作的9个周期。在这9个周期中将数据写入缓冲器1。将缓冲器1114的16个读周期分成4组,每组4个读周期,从而与各颜色平面的每组4个读周期的4个分组一致。地址生成包括生成计算第一象素的16个地址(然后是9个等待周期),生成计算第二象素的16个地址(然后是9个等待周期),和最终生成计算第三象素的16个地址(然后是9个等待周期)。每个颜色平面具有其特有的启动缓冲器1的地址参数。在生成每行的1280个象素的每个象素的3组16个地址,并且当采样装置从每行1280个采样前进到下一行时,使用内核地址生成装置的两个进位来更新缓冲器1的地址参数。10.2.10.6绿色缓冲器146缓冲器1114内的绿色子缓冲器146比红色子缓冲器145和蓝色子缓冲器147复杂,两个主要原因是·绿色信道表示CFA中的交错排列格式。交错行仅包括奇数或偶数象素。为了对绿色信道进行重新采样,必须将其信道旋转45度。·绿色象素的数目为红色或蓝色象素的两倍。重新采样意味着要在相同时间内读取更多采样—尽管生成中分辨率空间中的每个象素仍然读取16个采样,但是每次提前缓冲器的可能性更大。可能性取决于使用的比例系数。然而,绿色信道仍然采用使用RAM作为循环缓冲器的相同概念。绿色子缓冲器是一个78项的RAM,逻辑排列为13行,每行6项。图57表示RAM地址和逻辑位置之间的关系。缓冲器1146中的采样表示CFA中的交错排列模式。因此,一行(如,0,13,26,39,52,65)中的采样可以表示奇数或偶数象素,这取决于整个图象内的当前行,以及是否将该图象旋转了90度。图58表示此种情况。因而,当我们将一个4×4采样区域映射到缓冲器上时,采样的解释有两种可能性。因此,有两类寻址,取决于当前行是用奇数象素还是用偶数象素表示的。这意味着图象旋转0度的偶数行与图象旋转90度的奇数行的寻址相同,由于它们都保持奇数象素的缘故。同样,图象旋转0度的奇数行与图象旋转90度的偶数行的寻址相同,由于它们都保持偶数象素的缘故。表32概要表示此判定。表32.确定采样类型实际上,我们采用4×4采样窗口将缓冲器旋转45度。正如3.2.5说明的那样,实际的重新采样需要45度旋转。假设目前我们只需要生成单个重新采样,通过检查图59所示的两类4×4采样窗口实现缓冲器寻址。尽管两类4×4采样窗口看起来很相似,其差别在于在平面图象中表示4×4映射的方式。图60表示将类型1的4×4采样映射到绿色子缓冲器。仅仅显示了前7行以及最右边的4列,因为该区域完全包含4×4采样区域。正如在图61中看到的那样,对于类型2的采样处理,从缓冲器象素到采样行的映射是非常相似的。在16个象素的类型1和类型2寻址中,处理一行采样的方式有两种。处理类型1的第1行和第3行与处理类型2的第2行和第3行相同(相对而言)。同样,处理类型1的第2行和第4行与处理类型2的第1行和第3行相同(相对而言)。如图62所示,将上述行寻址方法称为类型A170和类型B171。给定4×4窗口的起始位置(WindowStartAdr)和起始类型(WindowStartType),借助于一个8项查找表(用于遍历两组4个采样)生成16个采样的地址。当我们读取第一个采样值时,添加该表中的一个偏移以便到达下一个采样位置。该偏移取决于类型(A,B=0,1)。第四个采样的偏移值为到达下一行的第一个采样点需要的数量(必须考虑采样的列数)。在生成每行4个采样后,交换TypeA和TypeB。以下伪码表示生成一组16个采样的地址的逻辑。以78为模数的加法适合循环缓冲器。<prelisting-type="program-listing"><![CDATA[Adr=WindowStartAdrTypeAB=WindowStartTypeDo4timesForN=0to4FetchAdrAdr=(Adr+Table[TypeAB,N])mod78EndForTypeAB=NOTTypeABEndDo]]></pre>查找表包括8项—4项用于类型A170的地址偏移生成,4项用于类型B171的地址偏移生成。偏移为相对于当前采样位置(Adr)的偏移。表33.16个采样地址生成的偏移值在16个读取操作结束时,TypeAB位与原始值相同(从WindowStartType加载)。仅读取一组16个采样是不够的。必须读取3组16个采样(表示不旋转的输入空间中沿Y方向的3个不同位置)。在第一组和第二组16个采样结束时,利用内核地址生成器更新内核位置。使用上述更新的进位来设置下一组16个采样的窗口。两个进位作为包含一个偏移和1位标志的查找表的索引。将偏移添加到WindowStartAdr中,使用该标志确定是否倒置WindowStartType。表34表示该查找表的值。表34.更新WindowStartAdr和WindowStartType在第三组16个采样结束时,更新内核位置以补偿不旋转的输入空间中沿X方向的前进。此时,生成不同的运动方向,从而使用不同的偏移/TypeAB修改表。不能将这些偏移添加到当前的WindowStartAdr值中,因为它们表示某个位置沿Y方向上的远离开始运动的两个运动。因此,我们从另一组变量中加载WindowStartAdr和WindowStartTypeTopStartAdr,TopStartAdr表示当前行的1280个象素的第一项。将内核地址生成器的两个进位应用于查找表35,以确定添加到TopStartAdr的偏移,以及是否倒置TopStartType。如前所述,加法的模数是78(绿色RAM的大小)。将结果复制到WindowStartAdr和WindowStartType中,以便在生成下3组16个采样时使用。表35.更新T0pStartAdr和TopStartType在处理1280个3组16个采样后,下一行的1280个象素开始。然而,必须确定下一行内位置0的第一个采样的地址。由于总是将象素加载到缓冲器1中的正确位置,所以总能从缓冲器1内的正确位置开始(即,可以从固定的Position0Adr中加载TopStartAdr)。然而,我们担心处理哪种类型,因为类型取决于我们前进的了多少。所以,我们具有一个初始Position0Type,必须根据内核地址生成器的进位标志更新后者。由于我们在不旋转的Y输入空间中前进,所以使用的逻辑与更新WindowStartType的逻辑相同。只是在Position0Type上执行。将Position0Type的新值复制到TopStartType中,并且WindowStartAdr开始新行的第一位置的采样。只有旋转/白平衡/范围扩展装置在缓冲器1中放置了足够项目后,指定的1280个位置的采样处理才能开始。在开始各新行后,以上处理将存在128个周期(见10.2.11)。10.2.10.7红色和蓝色缓冲器缓冲器1的红色子缓冲器145和蓝色子缓冲器147只是两个作为循环缓冲器的RAM。每个缓冲器为30字节,逻辑排列为6行,每行包含6项。图63表示RAM地址和逻辑位置之间的关系。对于红色和蓝色,需要读取的前16项总是前4×4项。读取算法在本阶段并不访问采样的剩余两列。前16项的地址生成只是一个起始位置(此时为0),然后是16个模数为36的加法,如以下伪码所示ADR=StartADRDo4timesDo4timesADR=ADR+6MOD36EndDoADR=ADR+13MOD36EndDo然而,以上地址生成机制与绿色信道的不同。可以将绿色寻址机制应用于红色和蓝色信道,并且只需在表中使用不同值,而不是设计两种寻址机制。从而降低了设计复杂性。其唯一区别在于,采用模数为36的加法,而不是模数为78的加法。可以采用简单乘法器。考虑绿色信道的各种地址生成表,并认为将其应用于红色和蓝色,显然不需要类型,因为不需要将红色和蓝色信道旋转45度。因此确实可以忽略类型值,表36所示的表33的红色/蓝色等价表具有两组完全相同的4项。表36.16个采样地址生成的偏移值(红/蓝)关于绿色地址生成,在前进到1280项的下一项前,沿Y方向移动两次。对于红色和蓝色,内核空间中的移动和输入空间中的移动之间没有缩放。也没有旋转。当沿Y方向移动时,将ΔY=0添加到KernelX中(见10.2.10.4中的地址生成)。因此,从不设置KernelX的进位。考虑表34,唯一可能发生的是KernelX/KernelY=00或01。关于00,绿色解决方法是不改变WindowStartAdr或WindowStartType,这同样适用于红色和蓝色。关于01,将1添加到WindowStartAdr中,而不关心WindowStartType。因此,确实可以对红色和蓝色使用绿色值。最坏情况是两次地址都前进1,从而导致图65所示的最坏的重叠情况。在第三组16个采样结束时,必须更新TopStartAdr和TopStartType。由于正沿X方向移动(并且将ΔY=0添加到KernelY中),所以KernelY的进位总是0。表37表示表35的红色/蓝色等价表。请注意,没有类型列,由于类型对红色和蓝色不重要。表37.更新TopStartAdr和TopStartType(红/蓝)从1280组3象素组成的一行前进到下一行的处理与用于绿色的处理相同。Position0Adr与给定行(对于红色和蓝色,Position0Adr=0)的第一组16个采样的Position0Adr相同,而与类型无关。只有缓冲器1中具有足够采样,下一行的生成才能开始。红色和蓝色生成必须与绿色生成同时开始,因此,只有在新行开始128个周期后才能开始(见10.2.11)。10.2.11旋转、白平衡和范围扩展111正如3.2.3和3.2.4中说明的那样,从图象RAM11中加载缓冲器1114的实际任务包括以下步骤旋转、白平衡和范围扩展111。必须快速生成缓冲器1的象素,以供重新采样处理112使用。这意味着在75个周期中,该装置必须能够读取、处理、并存储6个红色象素、6个蓝色象素和13个绿色象素。通过以适当顺序读取象素实现作为选择步骤的旋转处理。在读出图象存储器中适当平面的给定象素后,必须进行白平衡,并且根据3.2.4中定义的范围扩展计算调整其值。该处理仅包括一次减法(基数0)和一次乘法(最大值255),其中相对于颜色特有的常数进行减法和乘法。图68表示此装置的结构。在利用图象直方图单元8(见第9节)生成各颜色平面的直方图后,由CPU10确定红、绿、蓝低阈值72,以及红、绿、蓝比例系数73。根据当前流水线中处理的象素是红色,还是绿色,抑或是蓝色,在加法器和乘法器中复用正确的低阈值和比例系数,其中将输出写到缓冲器1中的适当颜色平面。加法器172从8比特图象RAM象素值中减去8比特低阈值,并具有基数0。将8比特结果传送到专用8×8乘法器上,后者将8比特值乘以8比特的比例系数(8比特的分数,整数=1)。只保存结果的前10比特,并提供8比特的整数和2比特的分数。乘法器174的结果的最大值为255,因此,如果作为乘法结果设置了比特7之前的任何比特,则将整个8比特整数结果设置为0,将分数部分设置为0。除减法器172和乘法器174之外,由地址生成器175执行此装置内的大部分工作,实际上,地址生成器175是该装置的状态机。地址生成受两个因素控制在一个给定周期内,只能对图象RAM11进行一次存取,并且在一个给定周期内,只能对缓冲器1114进行一次存取。在75个可用周期中,使用3组16个周期读取缓冲器1。实际使用3组25个周期,其中16个读周期,然后是9个等待周期。总共提供27个可用周期用于25个写操作(6个红色,6个兰色,6个绿色)。这意味着如果写入缓冲器1的定时与重新采样装置112的等待周期一致,则满足两个约束条件。10.2.11.1缓冲器1的地址生成当重新采样处理运行时,我们只关心在重新采样装置112不读取缓冲器1时,写入缓冲器1。由于重新采样装置在每75个周期中有3组16个读操作,所以有27个写入周期。当重新采样装置未运行时,我们希望尽快加载缓冲器1,这意味着每个周期内缓冲器1114的一次写操作。因此,缓冲器1的地址生成迅速写出状态机,后者考虑以上两种情况。每当从图象RAM11中加载数值时,总是在随后的一个周期内将调整值写到缓冲器1内的适当颜色平面中。因此,缓冲器1的地址生成包括分别用于红色、蓝色、绿色子缓冲器的地址计数器。在各行开始时,RedAdr、BlueAdr、GreenAdr的初值为0,在写入缓冲器1后,地址加1,其中以36或78作为模数,模数取决于正在写入的缓冲器是红色、还是绿色抑或是蓝色。并不是在每75个周期内写入所有颜色。通常绿色需要的填充速度是红色或蓝色的两倍。以下伪码表示其逻辑<prelisting-type="program-listing"><![CDATA[IfthecolortowriteisRedWritetoRedBuffer1atRedAdrRedAdr=RedAdr+1mod36ElseIfthecolortowriteisBlueWritetoBlueBuffer1atBlueAdrBlueAdr=BlueAdr+1mod36ElseIfthecolortowriteisGreenWritetoGreenBuffer1atGreenAdrGreenAdr=GreenAdr+1mod78EndIf]]></pre>10.2.11.2图象RAM的地址生成可以沿两个方向(逆时针旋转0度或90度)中的一个方向读取各平面。从而能够在按行或按列读取平面图象时进行有效转换。另外,对于图象边界之外的读取允许边缘图象复制或固定颜色,并且对于护照31之类的打印格式,允许图象环绕。在每个打印行的开始,必须尽快读取图象RAM11以加载缓冲器1114。这等价于每个周期访问一个采样。只有在加载5列后重新采样才能出现,这意味着5列的6、6和13个采样,总共125个周期。外加一个额外周期,用于从图象RAM11加载后,将终值写出到缓冲器1114中。为了简化计数,上舍入为128个周期。在前128个周期之后,每75个周期检查一次是否需要加载3种颜色的下一列采样,并且在随后的75个周期中加载适当采样。然而,对于每种颜色,是否在第一组75个周期期间加载采样的初始设置总是1。从而填充缓冲器1内每种颜色的第6列采样。在75个周期结束后,检查重新采样装置112中内核地址生成器的每个颜色平面的KernelXCarryout标志,以确定是否读取下一列采样。同样,如果设置了KernelYCarryout标志,则AdvanceLine脉冲重新启动下一行的处理。由于填充缓冲器1中一列的每个“读操作”实际上为6个或13个读操作,所以我们保存一个起始位置以便前进到下一个“读操作”。同时,我们保存一个坐标值,以允许生成越界坐标,从而支持边缘象素复制、固定颜色和图象环绕。我们认为有效图象180在特定边界内,并且当坐标在实际区域之外时采取某些操作。按照行或象素,坐标可以在图象之前,在图象内,或者在图象后。图67表示此种情况,尽管为了清晰性而夸大了有效区域之外的空间。请注意,由于我们使用(0,0)作为坐标生成的起点,所以MaxPixel和MaxLine为象素计数和行计数。然而,由于根据内核进位和MJI15的AdvanceLine脉冲进行地址生成,所以不需要外限。象素行的地址生成继续直至收到AdvanceLine脉冲,并且可以包括边缘复制、越界地址的固定颜色,或图象象素环绕。如果具有当前采样的地址(Adr),并且希望移动到下一行或同一行上的下一采样,则采样的坐标将改变,但是地址改变方式取决于是否围绕实际图象环绕,并且在需要时必须进行边缘象素复制。如果图象没有环绕(即,除护照31之外的所有打印格式),则在行或象素中前进时执行表38中的操作。为了将图象旋转90度,CPU10只需交换ΔLine和ΔPixel值。考虑表38,当PixelSense=0时,ADR改变ΔPixel,并且当LineSense=0时,ADR改变ΔLine。根据上述原则,Adr对边缘象素复制有效。当然,如果固定颜色对越界坐标合适,则可以选择该值代替适当地址中存储的值。表38.在象素或行中前进时执行的操作a.比较当前Line坐标与ActiveStartLine和ActiveEndLine。如果Line<ActiveStartLine,称该值为“-”。如果ActiveStartLine≤Line<ActiveEndLine,称该值为“0”。如果ActiveEndLine≤Line,称该值为“+”。b.比较当前Pixel坐标与ActiveStartPixel和ActiveEndPixel。如果Pixel<ActiveStartPixel,称该值为“-”。如果ActiveStartPixel≤Pixel<ActiveEndPixel,称该值为“0”。如果ActiveEndPixel≤Pixel,称该值为“+”。为了允许环绕,只需比较Line和Pixel的前一个读数(-,0,+)与新读数。当读数为“-”时,使用表38所示的增量,但是当坐标越界(即,从0移动到+)时,利用新值更新Adr,而不是基于Δ。假设我们保存当前行的起始地址,从而在生成当前行后前进到下一行的起始地址,则我们能够进行以下处理·如果Pixel改变,并且Pixel读数从0变为+(表示我们越过图象的边界),则利用LineStartAdr代替Adr,并利用ActiveStartPixel代替Pixel。Line保持不变。·如果Line改变,并且Line读数从0变为+(表示我们越过图象的边界),则从Adr中减去DeltaColumn,并利用ActiveStartLine代替Line。Pixel保持不变。DeltaColumn为地址偏移,用于根据(Pixel,ActiveEndLine-1)生成(Pixel,ActiveStartLine)的地址。以下伪码表示加载采样数目(或者为6,或者为13,取决于颜色)的逻辑<prelisting-type="program-listing"><![CDATA[line=FirstSampleLinepixel=FirstSamplePixeladr=FirstSampleAdrDoNtimes(6or13)oldPixelSense=PixelSense(pixel)oldLineSense=LineSense(gLine)inActive=((oldLineSense==InActive)AND(oldPixelSense==InActive))If((NOTinActive)ANDUseConstant)sample=ConstantColorelsesample=Fetch(adr)EndIfline=line+1If((LineSense(line)==″+″)ANDwrapImage)adr=adr-DeltaColumnline=ActiveStartLineElseIf((LineSense(line)==″0″)AND((oldLineSense==″0″))adr=adr+DeltaLineEndIfEndDo]]></pre>诸如FirstSampleLine、FirstSamplePixel和FirstSampleAdr之类的变量的设置在地址生成器部分,地址生成器响应内核地址生成器的进位标志和MJI的AdvanceLine脉冲。以下伪码表示此部分地址生成的逻辑<prelisting-type="program-listing"><![CDATA[FirstSamplePixel=0FirstSampleLine=0FirstSampleAdr=FirstSampleAdr=ActiveStartAddresscount=0DoForeverIf((KernelXCarryOut)OR(AdvanceLineANDKernelYCarryOut)OR(count<5))DoNSamplesforthiscolorplane(见以上伪码)EndIfoldPixelSense=PixelSense(FirstSamplePixel)oldLineSense=LineSense(FirstSampleLine)If(AdvanceLineANDKernelYCarryout)count=0FirstSampleLine=FirstSampleLine+1FirstSamplePixel=0If((LineSense(FirstSampleLine)==″+″)ANDwrapImage)FirstLineSampleAdr=StartAddressFirstSampleLine=ActiveStartLineElseIf((LineSense(FirstSampleLine)==″0″)AND(oldLineSense==″0″))FirstSampleLineAdr=FirstSampleLineAdr+DeltaLineEndIfFirstSampleAdr=FirstLineSampleAdrElseIf(KernelXCarryoutOR(count<5))FirstSamplePixel=FirstSamplePixel+1count=count+1If((PixelSense(FirstSamplePixel)==″+″)ANDwrapImage)FirstSampleAdr=FirstLineSampleAdrFirstSamplePixel=ActiveStartPixelElseIf((PixelSense(FirstSamplePixel)==″0″)AND(oldPixelSense==″0″))FirstSampleAdr=FirstSampleAdr+DeltaPixelEndIfEndIfEndDo]]></pre>10.2.11.3寄存器概述在打印图象前,必须设置许多寄存器。表39概括总结这些寄存器。为了将图象旋转90度,只需交换DeltaLine和DeltaPixel值,并提供新的DeltaColumn值。表39.在打印前需要由调用程序设置的寄存器11.参考文献[1]SilverbrookResearch,1998,AuthenticationofConsumables.[2]SilverbrookResearch,1998,Authenticationchip.尽管参照特定示例说明本发明,但是熟练技术人员可以理解,能够以各种其他形式体现本发明。以下带有编号的段落向收件人提供本发明之范围的进一步说明,不过根据本文中的公开,其他创新和发明特征以及特征之组合也是显然的。权利要求1.一种用于提供图象的方法,以便以预定的二值点分辨率进行打印,二值点分辨率相当于预定的连续色调分辨率,该方法包括以下步骤接收表示图象的第一数据集,即第一分辨率的拜尔格式的数据集;将第一数据集转换为预定的连续色调分辨率的第二数据集;将第二数据集转换为预定的二值点分辨率的第三数据集;以及使打印机以预定的二值点分辨率获得第三数据集。2.权利要求1的方法,其中第一分辨率与预定的二值点分辨率匹配。3.权利要求1的方法,其中第一分辨率大于预定的二值点分辨率。4.权利要求1的方法,其中第一分辨率小于预定的二值点分辨率。5.权利要求1的方法,其中第一数据集为红、绿和蓝(RGB)格式,而打印机与青、品红和黄(CMY)格式相对应,并且该方法还包括附加步骤,即将第三数据集从RGB格式转换为CMY格式。6.权利要求1的方法包括对第二数据集进行锐化处理的步骤。7.权利要求1的方法包括对第一数据集进行锐化处理的步骤。8.权利要求1的方法,其中从曝光装置中获得第一数据集,并且该方法包括以下步骤,即补偿第一数据集,以抵消曝光装置中的非线性。9.权利要求8的方法,其中补偿步骤包括将第一数据集从众多x比特采样转换为众多y比特采样,其中x>y。10.权利要求8的方法,其中x=10,y=8。11.权利要求1的方法还包括以下步骤,即将第一数据集平面化为一个红色平面、一个绿色平面和一个蓝色平面。12.权利要求1的方法还包括以下步骤为第一数据集定义m%的最暗象素和n%的最亮象素;调整第一数据集以使m%的最暗象素相等;以及调整第一数据集以使n%的最亮象素相等。13.权利要求1的方法包括附加步骤,即调整第一数据集以便提供预定的白平衡。14.权利要求1的方法包括以下附加步骤,即调整第一数据集以便提供预定的范围扩展。15.权利要求13或14的方法,其中增加第一数据集的彩色分辨率,同时保持相同的空间分辨率。16.权利要求1的方法,其中选择调整第一数据集,以便沿预定的旋转方向提供图象。17.一种用于提供图象的装置,以便以预定的二值点分辨率进行打印,二值点分辨率相当于预定的连续色调分辨率,该装置包括输入装置,用于接收表示图象的第一数据集,该数据集的格式为第一分辨率的拜尔格式;采样装置,用于将第一数据集转换为预定的连续色调分辨率的第二数据集;处理装置,用于将第二数据集转换为预定的二值点分辨率的第三数据集;以及使打印机获得第三数据集,以便以预定的二值点分辨率进行打印。18.权利要求17的装置,其中第一分辨率与预定的二值点分辨率匹配。19.权利要求17的装置,其中第一分辨率大于预定的二值点分辨率。20.权利要求17的装置,其中第一分辨率小于预定的二值点分辨率。21.权利要求17的装置,其中第一数据集为红、绿和蓝(RGB)格式,而打印机与青、品红和黄(CMY)格式相对应,其中处理装置将第三数据集从RGB格式转换为CMY格式。22.权利要求17的装置包括对第二数据集进行锐化处理的步骤。23.权利要求17的装置包括对第一数据集进行锐化处理的步骤。24.权利要求17的装置,其中从曝光装置中获得第一数据集,开且输入装置补偿第一数据集,以抵消曝光装置中的非线性。25.权利要求24的装置,其中补偿非线性包括将第一数据集从众多x比特采样转换为众多y比特采样,其中x>y。26.权利要求25的装置,其中x=10,y=8。27.权利要求17的装置,其中输入装置将第一数据集平面化为一个红色平面、一个绿色平面和一个蓝色平面。28.权利要求17的装置,其中输入装置为第一数据集定义m%的最暗象素和n%的最亮象素;调整第一数据集以使m%的最暗象素相等;以及调整第一数据集以使n%的最亮象素相等。29.权利要求17的装置,其中输入装置调整第一数据集以便提供预定的白平衡。30.权利要求17的装置,其中输入装置调整第一数据集以便提供预定的范围扩展。31.权利要求29或30的装置,其中输入装置增加第一数据集的彩色分辨率,同时保持相同的空间分辨率。32.权利要求17的装置,其中输入装置选择调整第一数据集,以便沿预定的旋转方向提供图象。33.一种照相机,包括一个CCD阵列,用于提供拜尔图象;一台打印机,用于选择提供打印的图象;以及一种用于接收拜尔图象并向打印机提供第三数据集以便生成打印图象的装置。全文摘要一种用于提供图象的方法,以便以预定的二值点分辨率进行打印,二值点分辨率相当于预定的连续色调分辨率,该方法包括以下步骤接收表示图象的第一数据集,即第一分辨率的拜尔格式的数据集;将第一数据集转换为预定的连续色调分辨率的第二数据集;将第二数据集转换为预定的二值点分辨率的第三数据集;以及使打印机以预定的二值点分辨率获得第三数据集。一种用于提供图象的装置,以便以预定的二值点分辨率进行打印,二值点分辨率相当于预定的连续色调分辨率,该装置包括输入装置,用于接收表示图象的第一数据集,该数据集的格式为第一分辨率的拜尔格式;采样装置,用于将第一数据集转换为预定的连续色调分辨率的第二数据集;处理装置,用于将第二数据集转换为预定的二值点分辨率的第三数据集;以及使打印机获得第三数据集,以便以预定的二值点分辨率进行打印。一种照相机,包括一个CCD阵列,用于提供拜尔图象;一台打印机,用于选择提供打印的图象;以及一种根据权利要求17的装置,用于接收拜尔图象,然后向打印机提供第三数据集以便生成打印图象。文档编号B41J29/393GK1413338SQ00814363公开日2003年4月23日申请日期2000年9月8日优先权日1999年9月16日发明者保罗·拉普斯顿,西蒙·R·沃姆斯利申请人:西尔弗布鲁克研究股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1