專利名稱:協(xié)作的打印引擎/控制器和由多個打印引擎/控制器驅(qū)動的打印頭的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種相互協(xié)作的打印引擎/控制器和一種由多個打印引擎/控制器驅(qū)動的打印頭。
背景技術(shù):
在現(xiàn)有技術(shù)中,一個打印頭由一個打印引擎/控制器控制。但是,這種方案不適用于較寬格式地打印頭、高分辨率輸入圖像、以及快速打印。對于寬格式打印頭,為了打印相同數(shù)量的打印行(每打印行比普通打印行寬),控制器芯片的速度必須更快。如果打印頭的動作速度較快,那么打印控制器的處理速度就必須更快。如果輸入圖像的分辨率較高,那么為了有效地處理這些較大的圖像,控制器芯片就必須具有較大的內(nèi)部緩存,或者處理速度更快,或者兩者兼?zhèn)洹?br>
目前市場上有多種類型的打印機(jī)。這些打印機(jī)用相應(yīng)的墨水產(chǎn)生圖像,并以點陣格式打印頁面。在標(biāo)題為“單片集成電路打印頭的自調(diào)節(jié)構(gòu)造和制造工藝”,發(fā)明人為卡·西爾弗布魯克的美國專利(專利號6045710)中對傳統(tǒng)噴墨打印機(jī)進(jìn)行了討論,并介紹了其制造工藝。
與本發(fā)明有關(guān)的各種方法、系統(tǒng)和裝置在下列同類專利申請中揭示,這些專利申請是本發(fā)明的專利申請人或受讓人在2000年5月24日與本發(fā)明同時申請的PCT/AU00/00518,PCT/AU00/00519,PCT/AU00/00520,PCT/AU00/00521,PCT/AU00/00523,PCT/AU00/00524,PCT/AU00/00525,PCT/AU00/00526,PCT/AU00/00527,PCT/AU00/00528,PCT/AU00/00529,PCT/AU00/00530,PCT/AU00/00531,PCT/AU00/00532,PCT/AU00/00533,PCT/AU00/00534,PCT/AU00/00535,PCT/AU00/00536,PCT/AU00/00537,PCT/AU00/00538,PCT/AU00/00539,PCT/AU00/00540,PCT/AU00/00541,PCT/AU00/00542,PCT/AU00/00543,PCT/AU00/00544,PCT/AU00/00545,PCT/AU00/00547,PCT/AU00/00546,PCT/AU00/00554,PCT/AU00/00556,PCT/AU00/00557,PCT/AU00/00558,PCT/AU00/00559,PCT/AU00/00560,PCT/AU00/00561,PCT/AU00/00562,PCT/AU00/00563,PCT/AU00/00564,PCT/AU00/00566,PCT/AU00/00567,PCT/AU00/00568,PCT/AU00/00569,PCT/AU00/00570,PCT/AU00/00571,PCT/AU00/00572,PCT/AU00/00573,PCT/AU00/00574,PCT/AU00/00575,PCT/AU00/00576,PCT/AU00/00577,PCT/AU00/00578,PCT/AU00/00579,PCT/AU00/00581,PCT/AU00/00580,PCT/AU00/00582,PCT/AU00/00587,PCT/AU00/00588,PCT/AU00/00589,PCT/AU00/00583,PCT/AU00/00593,PCT/AU00/00590,PCT/AU00/00591,PCT/AU00/00592,PCT/AU00/00594,PCT/AU00/00595,PCT/AU00/00596,PCT/AU00/00597,PCT/AU00/00598,PCT/AU00/00516,PCT/AU00/00517和PCT/AU00/00511
這些同類專利申請的揭示以交叉索引方式總結(jié)于此。
另外,與本發(fā)明相關(guān)的各種方法、系統(tǒng)和裝置在下列同類PCT申請中揭示,這些PCT申請是本發(fā)明的申請人或受讓人與本發(fā)明同時申請的PCT/AU00/00755,PCT/AU00/00756和PCT/AU00/00757.
這些同類專利申請的揭示以交叉索引方式總結(jié)于此。每個申請都由相應(yīng)的臨時備案編號標(biāo)識。在將來審批后,這些臨時備案編號將由相應(yīng)的PCT申請?zhí)柼鎿Q。
特別需要說明的是下列同類PCT申請PCT/AU00/00591,PCT/AU00/00578,PCT/AU00/00579,PCT/AU00/00592和PCT/AU00/00590,這些申請中描述了一種微電機(jī)噴墨打印頭(以下稱為Memjet打印頭)。
Memjet打印頭從能夠在整個頁面寬度上產(chǎn)生1600dpi雙層墨點的多個打印頭段發(fā)展而來。墨點以相互隔離的方式產(chǎn)生,因此,散布的點能夠產(chǎn)生完美的濃淡效果。顏色平面在打印時能夠完美地重合,實現(xiàn)理想的重疊點打印。這種打印頭支持使用微電機(jī)墨滴控制技術(shù)進(jìn)行高速打印。
另外,在同類申請PCT/AU00/00516、PCT/AU00/00517、PCT/AU00/00511、PCT/AU00/00755、PCT/AU00/00756和PCT/AU00/00757中描述了一種適合于驅(qū)動上述寬行打印頭的打印引擎/控制器。
使用一個打印引擎/控制器(PEC)芯片可以驅(qū)動上述參考類型的打印頭,在12英寸打印頭上打印320ppi抖動連續(xù)色調(diào)圖像。但是,在今天的打印領(lǐng)域中,人們還需要打印更高分辨率的圖像,實現(xiàn)更高質(zhì)量的輸出。也需要打印頭的速度更快。
發(fā)明內(nèi)容
本發(fā)明內(nèi)嵌在一種打印引擎/控制器中,這種打印引擎/控制器與相同的多個打印引擎/控制器配合工作,以驅(qū)動一種噴墨打印頭。該打印引擎包括
一個用于接收壓縮的頁面數(shù)據(jù)的接口;
多個圖像解碼器,用于對接收到的壓縮頁面數(shù)據(jù)中的壓縮圖像平面進(jìn)行解碼;
一個半色調(diào)器/合成器,用于復(fù)合解碼后的圖像平面中的圖像條;一
個打印頭接口,用于向打印頭輸出復(fù)合的圖像條。
上述打印頭接口包括
一個多段打印頭接口,該打印頭接口輸出適合于打印頭的格式的數(shù)據(jù);
一個同步信號產(chǎn)生器,該同步信號產(chǎn)生器向協(xié)同工作的打印引擎/控制器輸出同步信號,用于同步打印頭上的各個圖像條。
Memjet打印頭是一種多段打印頭,其中的每個段都有物理連接。例如,可以使用多個芯片構(gòu)造Memjet打印頭,每個芯片包含一個打印頭段,也可以包含一個以上的打印頭段。這兩種方案的接線方法相同,邏輯連接也相同——多個段共同組成一個較寬的打印頭。
本發(fā)明的優(yōu)點是使用多個相同的打印引擎/控制器芯片驅(qū)動上述多段打印頭,每個引擎控制器負(fù)責(zé)控制頁面的一個圖像條,這些引擎控制器由一個主芯片控制實現(xiàn)同步。根據(jù)應(yīng)用的需要,可以采取不同的配置。例如,對于一個12段的打印頭,可以使用單個打印引擎/控制器(PEC)驅(qū)動整個打印頭,實現(xiàn)以320ppi的連續(xù)色調(diào)分辨率打印和每秒30000行的最高打印速度。如果需要實現(xiàn)兩倍的速度,那么可以使用2個打印引擎/控制器,每個打印引擎/控制器分別控制6個段,這樣也可以實現(xiàn)以320ppi連續(xù)色調(diào)分辨率打印。但是有效速度提高了一倍。同樣,如果要實現(xiàn)以640ppi連續(xù)色調(diào)分辨率打印,那么可以使用2個打印引擎/控制器把上述打印頭控制為以每秒30000行的速度(最高速度)打印。
采用上述方法也可以實現(xiàn)同步雙面打印。其中一個打印引擎/控制器在頁面的一面打印12英寸寬(15個段)的圖像,同時另一個打印引擎/控制器在頁面的另一面上同時打印。只要有一個主打印引擎/控制器芯片提供同步信號,就可以實現(xiàn)多個打印引擎/控制器協(xié)作打印。
使用多個芯片驅(qū)動一個打印頭的優(yōu)點是可以產(chǎn)生更寬的打印頁面,實現(xiàn)更快的打印速度,更高的輸入分辨率,甚至同時實現(xiàn)這三個目標(biāo)。
為了使用多個打印引擎/控制器,可以把同一個頁面的數(shù)據(jù)提供給多個打印引擎/控制器。然后,這些不同的打印引擎/控制器處理頁面數(shù)據(jù)的各個圖像條,以更快的速度或更高的分辨率產(chǎn)生整個頁面。從多個打印引擎/控制器向打印頭發(fā)送數(shù)據(jù)的一個簡單方法是,讓每個打印引擎/控制器負(fù)責(zé)控制特定數(shù)量的打印頭段。
為打印引擎/控制器分配總頁面的圖像條的控制邏輯由每個打印引擎/控制器內(nèi)的半色調(diào)器/合成器中的頁邊單元提供。每個打印引擎/控制器中的標(biāo)記編碼器可以處理頁面中的圖像條,當(dāng)需要產(chǎn)生帶標(biāo)記的頁面時,標(biāo)記編碼器可以產(chǎn)生局部標(biāo)記。
當(dāng)聯(lián)合使用多個打印引擎/控制器時(例如在雙面打印配置中或在具有15個以上的Memjet段的打印頭配置中),使用共享的行同步信號使這些打印引擎/控制器達(dá)到同步。通過外部主/從針腳選擇的一個打印頭控制器芯片負(fù)責(zé)在共享行上產(chǎn)生行同步信號。打印引擎/控制器的間隔允許多個打印引擎/控制器協(xié)作打印頁面的一條圖像條。這種打印方案包括產(chǎn)生局部網(wǎng)頁標(biāo)記和頁面描述信息。但是,必須由一個外部的頁面提供單元為每個打印引擎/控制器正確分配各個圖像條。
圖1所示為打印引擎控制器處理的數(shù)據(jù)流和執(zhí)行的功能示意圖。
圖2所示為在整體打印機(jī)系統(tǒng)體系中的一個打印引擎控制器示意圖。
圖3所示為打印引擎控制器的體系結(jié)構(gòu)示意圖。
圖4所示為與圖3中的半色調(diào)器/合成器單元(HCU)連接的外部接口示意圖。
圖5所示為圖4中的HCU的內(nèi)部電路圖。
圖6所示為在圖5中的點合并單元中執(zhí)行的過程的框圖。
圖7所示為圖5中的點重組單元中的處理過程示意圖。
圖8所示為圖5中的行裝載器/格式器單元(LLFU)中的處理過程示意圖。
圖9所示為在圖8的LLFU中產(chǎn)生顏色數(shù)據(jù)的內(nèi)部電路圖。
圖10和圖11所示為圖9中的LLFU的組件示意圖。
圖12所示為打印頭接口的內(nèi)部電路圖。
圖13所示為打印頭接口中所用的點計數(shù)器示意圖。
具體實施例方式
一個典型的12英寸打印頭的寬度由一個或多個打印引擎/控制器(PEC)控制,如下所述,實現(xiàn)在A4和信紙頁面上的全頁寬打印。在現(xiàn)有打印環(huán)境中,最多使用6個彩色墨水通道,它們是· CMY,用于規(guī)則的彩色打印· K,用于打印黑色文本和黑色內(nèi)容· IR(紅外),用于支持標(biāo)記的應(yīng)用· F(定色劑),用于高速打印
由于打印機(jī)支持高速打印,所以在高速打印時,應(yīng)使用定色劑以保證在打印下一個頁面之前當(dāng)前頁面的墨水已經(jīng)干透,否則可能發(fā)生蹭墨現(xiàn)象。在低速打印環(huán)境中,不需要使用定色劑。
可以在單個芯片中建立一個PEC,使其與打印頭接口。該PEC必須具有4個基本功能·通過串行接口(例如IEEE 1394)接收壓縮的頁面數(shù)據(jù);·從壓縮形式產(chǎn)生頁面的打印引擎。該打印引擎必須具備下列功能擴(kuò)展頁面圖像、抖動連續(xù)色調(diào)層、把黑色層復(fù)合到連續(xù)色調(diào)層上、增加紅外標(biāo)記(可選)、以及向打印頭發(fā)送結(jié)果圖像;·一個控制打印頭和步進(jìn)電機(jī)的打印控制器;·兩個標(biāo)準(zhǔn)的低速串行端口,用于與兩個QA芯片通信。需要注意的是,必須提供兩個端口,而不能是一個端口,這樣才能保證在鑒權(quán)過程中的高度安全性。
圖1所示為從計算機(jī)系統(tǒng)向打印頁面發(fā)送文檔的數(shù)據(jù)流程圖。文檔在11處被接收,然后文檔被裝載到存儲緩沖器12中,在存儲緩沖器12中產(chǎn)生頁面布局,并增加所需的對象。從存儲緩沖器12中輸出的頁面在13中被光柵化,在14中被壓縮,然后被送到打印引擎控制器10中。打印引擎控制器10接收壓縮的頁面圖像,并保存在存儲緩沖器15中,然后,存儲緩沖器15中存儲的壓縮的頁面圖像被送到頁面擴(kuò)展器16中,并被還原為非壓縮的頁面圖像。在17中,對連續(xù)色調(diào)層施加所需的抖動。在18中,黑色雙層圖像層被復(fù)合到連續(xù)色調(diào)層上,在19中,向復(fù)合后的圖像加入紅外標(biāo)記。然后,在20中,復(fù)合后的頁面數(shù)據(jù)被打印出來,形成頁面21。
打印引擎/控制器接收壓縮的頁面圖像,對頁面進(jìn)行擴(kuò)展,并以管道方式打印頁面。頁面擴(kuò)展和打印最好以管道方式實現(xiàn),因為在內(nèi)存中存儲大小可變的雙層CMYK+IR頁面圖像是不可能的。
在管道的第一個階段中,打印引擎/控制器擴(kuò)展以JPEG格式壓縮的連續(xù)色調(diào)CMYK層(見下文),擴(kuò)展以Group4傳真格式壓縮的雙層抖動矩陣選擇圖(見下文),并擴(kuò)展以Group4傳真格式壓縮的雙層黑色層(見下文),所有擴(kuò)展工作都以并行方式完成。同時,標(biāo)記編碼器對從壓縮的頁面圖像得到的雙層IR標(biāo)記數(shù)據(jù)進(jìn)行編碼。在管道的第二個階段中,打印引擎/控制器使用根據(jù)抖動矩陣選擇圖選擇的抖動矩陣抖動連續(xù)色調(diào)CMYK層,把雙層黑色層復(fù)合到所得到的雙層K層上,并向頁面增加IR層。在需要時,打印引擎/控制器還在C、M、Y、K、或IR通道中的每個點的位置上產(chǎn)生定色劑層。在管道的最后一個階段中,打印引擎/控制器通過打印頭接口利用打印頭打印雙層CMYK+IR數(shù)據(jù)(見下文)。
圖2所示為打印引擎/控制器10與整個打印機(jī)系統(tǒng)體系的關(guān)系。打印機(jī)系統(tǒng)可能包含的部件有· 一個打印引擎/控制器(PEC)一個PEC芯片10或芯片集負(fù)責(zé)接收壓 縮的頁面數(shù)據(jù),并把數(shù)據(jù)存儲到存儲緩沖器24中,進(jìn)行頁面擴(kuò)展、黑 色層復(fù)合,并把點數(shù)據(jù)發(fā)送給打印頭23。PEC芯片10或芯片集還可以 與QA芯片25,26通信,從而提供一種獲得打印頭特性數(shù)據(jù)的方法, 以保證最佳打印效果。PEC是本發(fā)明的主體?!ひ粋€存儲緩沖器存儲緩沖器24用于存儲壓縮的頁面圖像,并且在打 印特定頁面的過程中用于擦除。存儲緩沖器的構(gòu)造和原理是現(xiàn)有技術(shù), 在使用本發(fā)明的PEC時,可以利用相關(guān)的各種標(biāo)準(zhǔn)的芯片和技術(shù)?!ひ粋€主QA芯片主芯片25與可更換墨盒QA芯片26相匹配。QA單 元的構(gòu)造和工作原理為現(xiàn)有技術(shù),在使用本發(fā)明的PEC時,可以利用 相關(guān)的各種現(xiàn)有QA過程。例如,在同類美國專利申請中描述了一種QA芯片
QA芯片通信功能最好包含在PEC芯片的總體功能中,因為它在圖像擴(kuò)展和驅(qū)動物理打印頭方面有一定的作用。通過嵌入QA芯片的通信功能,可以保證打印頁面時不會發(fā)生缺墨現(xiàn)象。另外,還可以使用一個鑒權(quán)芯片把QA嵌入到打印頭組件中。由于它是主QA芯片,所以只包含鑒權(quán)密鑰,不包含用戶數(shù)據(jù)。但是,該芯片必須與墨盒的QA芯片匹配。墨盒中的QA芯片儲存保證最佳打印質(zhì)量所需的信息,它是使用一個鑒權(quán)芯片實現(xiàn)的。
最好使用64M位(8M字節(jié))存儲緩沖器存儲壓縮的頁面圖像。這樣,當(dāng)向緩沖器中寫入一個頁面時,可以同時從緩沖器中讀取另一個頁面(雙緩沖)。另外,在打印頁面時,PEC使用內(nèi)存來緩沖計算得到的點信息。在打印第N個頁面時,緩沖器用于
·讀取壓縮頁面N
·讀取并寫入頁面N的雙層點信息
·寫入壓縮頁面N+1
打印引擎/控制器芯片最好帶有一個簡單的微控制器CPU核心35以執(zhí)行下列功能
·在打印頁面間,通過串行接口36執(zhí)行QA芯片鑒權(quán)協(xié)議
·在打印頁面過程中,通過并行接口91驅(qū)動步進(jìn)電機(jī)(步進(jìn)電機(jī)需要5KHz的處理頻率)
·在打印過程中使PEC芯片的各部分同步
·提供一種與外部數(shù)據(jù)請求(編程寄存器等)接口的方法
·提供與一種打印頭段低速數(shù)據(jù)請求(例如讀取向量屬性和寫入脈沖外形)接口的方法
·提供一種向外部DRAM寫入橫向和縱向打印標(biāo)記的方法
由于所有圖像處理工作都由專用的硬件執(zhí)行,所以CPU不需要處理像素。因此,CPU可以非常簡單。多種現(xiàn)有的CPU核心都可以勝任上述工作任何一種具有足夠處理能力執(zhí)行所需計算和控制功能的處理器核心都可以使用。例如一個速度為1MHz的Philips 8051微控制器??梢詾镃PU核心35配備一個程序ROM和一個小的程序擦除RAM。CPU通過內(nèi)存映射I/O與PEC芯片內(nèi)的其它單元通信。可以把特定的地址范圍與特定的單元映射,在每個地址范圍內(nèi),可以把特定地址與相應(yīng)單元的特定寄存器映射,其中包括串口36和并口91。在打印引擎/控制器芯片中可以集成一個比較小的程序閃存ROM,其大小取決于所選的CPU,但是不能超過8KB。同樣,可以在打印引擎/控制器芯片中集成一個小的擦除RAM區(qū)。由于程序代碼不需要處理圖像,所以不需要很大的擦除區(qū)。RAM的大小取決于所選的CPU(例如堆棧機(jī)制、子程序調(diào)用規(guī)定、寄存器大小等),但是不能超過2KB。
使用上述基于引用段的頁寬打印頭的打印引擎/控制器芯片可以在全點陣分辨率(通常為1600dpi)下再生黑色,但是需要使用半色調(diào)處理以較低的分辨率再生連續(xù)色調(diào)顏色。因此,頁面描述被分為黑色雙層和連續(xù)色調(diào)層。黑色雙層用于復(fù)合到連續(xù)色調(diào)層上。黑色雙層由包含1位暗度/像素的位圖構(gòu)成。黑色層蒙罩的分辨率是打印機(jī)的全點分辨率的一個整數(shù)因子。它所支持的最高分辨率是1600dpi,即打印機(jī)的全點分辨率。連續(xù)色調(diào)層由包含32位CMYK顏色/像素的一個位圖構(gòu)成,其中的K是可選的。這種連續(xù)色調(diào)圖像的分辨率是打印機(jī)的點分辨率的一個整數(shù)因子。對于單個打印引擎/控制器來說,它所支持的最高分辨率是320ppi/12英寸,即打印機(jī)的點分辨率的1/5。對于更高的連續(xù)色調(diào)分辨率,需要使用多個打印引擎/控制器,其中的每個打印引擎/控制器產(chǎn)生輸出頁面的一條。為了簡化RIP中的計算,連續(xù)色調(diào)分辨率通常還是黑色雙層分辨率的一個整數(shù)因子。但是,這不是一種強(qiáng)制要求。為了實現(xiàn)在打印機(jī)的內(nèi)存中的高效存儲,黑色雙層和連續(xù)色調(diào)層都采用壓縮形式。
圖3所示為打印引擎的體系結(jié)構(gòu)示意圖。打印機(jī)引擎的頁面擴(kuò)展和打印管道由一個高速串行接口27(例如標(biāo)準(zhǔn)的IEEE 1394接口)、一個標(biāo)準(zhǔn)的JPEG解碼器28、一個標(biāo)準(zhǔn)的Group 4Fax解碼器、一個定制的半色調(diào)器/合成器29、一個定制的標(biāo)記編碼器30、一個行裝載器/格式器單元31、以及一個連接打印頭33的定制接口32構(gòu)成。解碼器28、88和編碼器30向半色調(diào)器/合成器29緩沖。標(biāo)記編碼器30根據(jù)協(xié)議向頁面增加紅外標(biāo)記或頁面標(biāo)記,協(xié)議與頁面的使用有關(guān)。討論標(biāo)記的內(nèi)容已經(jīng)超出了本發(fā)明的范圍。
打印引擎以雙緩沖方式工作。一個頁面從高速串行接口27通過DRAM接口89和數(shù)據(jù)總線90被裝載到DRAM 34中,同時,已裝載的前一個頁面被從DRAM 34讀出,并被通過打印引擎管道傳送。當(dāng)完成頁面的打印時,剛剛裝入的頁面成為被打印頁面,同時通過高速串行接口27向DRAM34裝入一個新頁面。在第一個階段,管道擴(kuò)展所有JPEG壓縮的連續(xù)色調(diào)CMYK層,并擴(kuò)展所有兩個Group4傳真壓縮的雙層數(shù)據(jù)流。上述兩個數(shù)據(jù)流是一個黑色層(當(dāng)然,打印引擎/控制器不知道是否為彩色,而且該雙層可以定向到任何輸出墨水)以及一個蒙罩(該蒙罩用于為連續(xù)色調(diào)的抖動選擇抖動點陣,見下文的說明)。在第二個階段,上述數(shù)據(jù)被并行地加入標(biāo)記,以便隨后以紅外(IR)或黑色墨水渲染。最后,在第三個階段中,對連續(xù)色調(diào)層進(jìn)行抖動處理,并把位置標(biāo)記和雙層點層復(fù)合到抖動后的雙層上。然后,數(shù)據(jù)流被很好地調(diào)整,以便在打印頭中的重合段之間產(chǎn)生平滑的漸變效果,同時補(bǔ)償打印頭中的被堵噴嘴。在此階段最多可以生成6個通道的雙層數(shù)據(jù)。但是需要注意,并不是全部6個通道都出現(xiàn)在打印頭上。例如,打印頭可能只是CMY的,此時K被推入CMY通道,而IR被忽略。另外,如果沒有IR墨水(或者出于測試目的),位置標(biāo)記也可以被打印到K中。所得到的雙層CMYK-IR點數(shù)據(jù)被緩沖并格式化,然后被通過一套行緩沖器(見下文的說明)輸出到打印頭上。大多數(shù)行緩沖器可以在芯片DRAM34中實現(xiàn)。在最后一個階段中,通過打印頭接口32打印上述6個通道的雙層點數(shù)據(jù)。
在使用打印引擎/控制器的打印系統(tǒng)中通常采用壓縮處理。這是為了降低主機(jī)和打印引擎/控制器之間的帶寬要求以及降低頁面存儲的內(nèi)存要求。在267ppi分辨率下,連續(xù)色調(diào)CMYK數(shù)據(jù)的一個信封頁面的數(shù)據(jù)量為25MB。使用有損連續(xù)色調(diào)壓縮算法(例如JPEG,見下文的說明),連續(xù)色調(diào)圖像的壓縮比可達(dá)到10∶1,同時不會對打印質(zhì)量產(chǎn)生明顯影響,因此,壓縮后的頁面大小為2.5MB。在800dpi分辨率下,雙層數(shù)據(jù)的一個信封頁面的數(shù)據(jù)量為7MB(壓縮后)。連貫的數(shù)據(jù)(例如文本)的壓縮效果很好。使用無損雙層壓縮算法(例如Group 4傳真,見下文的說明),10點文本內(nèi)容的壓縮比可達(dá)到10∶1以上,因此上述信封頁面的壓縮數(shù)據(jù)量為0.8MB。經(jīng)過抖動后,一個CMYK連續(xù)色調(diào)圖像頁面的數(shù)據(jù)為114MB雙層數(shù)據(jù)。下文中所述的雙層壓縮頁面圖像格式綜合利用了有損JPEG連續(xù)色調(diào)圖像壓縮算法和無損雙層文本壓縮算法的各自優(yōu)點。經(jīng)過壓縮處理后,數(shù)據(jù)的格式已非常緊湊,實現(xiàn)了高效存儲,同時保持了簡單性,從而可以在打印過程中直接地、實時地擴(kuò)展。由于文本和圖像通常不重疊,所以在正常的最壞情況下,頁面圖像數(shù)據(jù)為2.5MB(即,完全為圖像),而在最佳情況下,頁面圖像數(shù)據(jù)只有0.8MB(即,完全為文本)。在極端最壞情況下,頁面圖像數(shù)據(jù)為3.3MB(即,文本在圖像之上)。假設(shè)圖像占1/4頁面,則頁面圖像數(shù)據(jù)為1.2MB。
對于通過慢速線路或噪音較高的電話線路傳輸無損壓縮雙層數(shù)據(jù)的情況,可以使用Group 3傳真壓縮算法(見ANSI/EIA 538-1988,Group 4傳真設(shè)備的傳真編碼方案和編碼控制功能,1988年8月)。雙層數(shù)據(jù)代表在白色背景上掃描的黑色文本和圖形。而且,上述算法還針對此類圖像進(jìn)行了優(yōu)化(但是對于半色調(diào)雙層圖像沒有進(jìn)行優(yōu)化)。1D Group 3算法以掃描寬度編碼方法對每個掃描行進(jìn)行編碼,然后采用霍夫曼編碼方法對所得到的掃描寬度編碼。范圍在0到63之間的掃描寬度使用終止編碼處理;范圍在64到2623之間的掃描寬度使用標(biāo)記編碼處理。每個標(biāo)記編碼為64的整數(shù)倍,后跟一個終止碼。超過2623的掃描寬度使用多標(biāo)記編碼處理,后跟一個終止碼。霍夫曼表是固定的,但是針對黑色和白色掃描分別進(jìn)行了優(yōu)化(但超過1728的標(biāo)記編碼除外,它們是通用的)。在可能的情況下,2D Group 3算法把一個掃描行作為一系列相對于前一個掃描行的短邊偏移(delta)(0,±1、±2、±3)編碼。delta符號是統(tǒng)一編碼的(因此0偏移符號只占一位)。2D編碼行中無法采用delta編碼的邊以掃描寬度編碼處理,并加一個1D-前綴。而以2D編碼的掃描行采用不同的方法標(biāo)記。不管需要與否,1D編碼的掃描行都以正常間隔產(chǎn)生,以便保證解碼器可以從行噪中恢復(fù)數(shù)據(jù),同時盡可能不損失圖像質(zhì)量。2D Group 3通常可以實現(xiàn)6∶1的壓縮比(見Urban,S.J.,“傳真系統(tǒng)的電子成像標(biāo)準(zhǔn)回顧”,電子成像雜志,1992年1月,Vol.1(1),第5-21頁)。
對于通過無錯通信線路(即,線路可實現(xiàn)真正無錯傳輸,或者在較低的協(xié)議層進(jìn)行糾錯)傳輸數(shù)據(jù)的情況,使用Group 4傳真算法(見ANSI/EIA 538-1988,Group 4傳真設(shè)備的傳真編碼方案和編碼控制功能,1988年8月)可以無損壓縮雙層數(shù)據(jù)。Group 4算法以2D Group 3算法為基礎(chǔ),其主要修改是由于傳輸是無錯的,所以不需要再為糾錯而每隔一定間隔產(chǎn)生1D編碼行。對于CCITT測試圖像,Group 4算法的壓縮比在20∶1到60∶1之間。Group 4壓縮算法的設(shè)計目標(biāo)和性能使其成為雙層的一種理想壓縮算法。但是,其霍夫曼表針對較低的掃描分辨率(100-400dpi)進(jìn)行了優(yōu)化,而且它會拙劣地編碼超過2623的掃描寬度。在800dpi分辨率下,我們的最大掃描寬度是6400。雖然Group 4解碼器核心可以在打印引擎/控制器中使用,它可能無法處理超過正常的400dpi傳真應(yīng)用中的掃描寬度,所以需要進(jìn)行適當(dāng)?shù)男薷?。使用G4Fax對黑色層(通常為1600dpi)進(jìn)行無損壓縮的壓縮比為10∶1以上。使用G4Fax對抖動矩陣選擇層(通常為320dpi,與連續(xù)色調(diào)彩色層相配)進(jìn)行無損壓縮的壓縮比為50∶1以上。
Group 4 Fax(G4 Fax)解碼器負(fù)責(zé)對雙層數(shù)據(jù)進(jìn)行解壓縮。雙層數(shù)據(jù)被限制為單點顏色(通常黑色用于文本和線圖像),抖動矩陣選擇位圖用于對連續(xù)色調(diào)數(shù)據(jù)(由JPEG解碼器解壓縮)進(jìn)行后續(xù)抖動。輸入G4 Fax解碼器的數(shù)據(jù)是從外部DRAM讀取的2個平面的雙層數(shù)據(jù)。由G4 Fax解碼器輸出的數(shù)據(jù)是2個平面的解壓縮的雙層數(shù)據(jù)。解壓縮后的雙層數(shù)據(jù)被送到半色調(diào)器/合成器單元(HCU)進(jìn)行打印管道中的下一個階段的處理。兩個雙層數(shù)據(jù)緩沖器用于在G4 Fax解碼器和HCU之間傳送雙層數(shù)據(jù)。每個解壓縮的雙層被輸出到兩個行緩沖器中。每個緩沖器可以儲存一個最大分辨率的12英寸整點線。采用兩個行緩沖器的好處是,當(dāng)HCU讀取一行數(shù)據(jù)時,G4 Fax解碼器可以寫入另一行數(shù)據(jù)。這是非常重要的,因為單個雙層行通常低于1600dpi,所以必須在點和行方向上同時擴(kuò)展。如果緩沖低于一個整行,那么G4 Fax解碼器就必須對同一行多次解碼——每次用于輸出一個600dpi點線。
點顏色1能夠使輸出圖像的單個彩色平面具有高分辨率的點數(shù)據(jù)。雖然連續(xù)色調(diào)層為圖像提供的足夠的分辨率,但是點顏色(1)更適用于文本和線圖形(通常為黑色)的應(yīng)用。當(dāng)點顏色用于文本和線圖形時,壓縮比通??梢猿^10∶1。點顏色1支持的最高分辨率為1600dpi。因此,每個行緩沖器的數(shù)據(jù)為2400B(12英寸×1600dpi=19200位)。
抖動矩陣選擇圖的分辨率應(yīng)該較好地匹配連續(xù)色調(diào)分辨率。所以每個行緩沖器的數(shù)據(jù)是480B(3840位),可以存儲320dpi的12英寸點線。當(dāng)抖動矩陣選擇圖與連續(xù)色調(diào)的分辨率匹配時,壓縮比一般可以超過50∶1。
為了支持下列功能
·800dpi點顏色1層(通常為黑色)
·320dpi抖動矩陣選擇層
為了實現(xiàn)1頁/秒的打印速度(無論頁寬是12英寸還是8.5英寸),壓縮帶寬應(yīng)為9.05MB/秒,在最高打印速度時(30000行/秒),對于12英寸頁面寬度和8.5英寸頁面寬度,所需的壓縮帶寬分別為20MB/秒和14.2MB/秒。當(dāng)解壓縮數(shù)據(jù)被輸出到行緩沖器中時,G4 Fax解碼器可以快速地、同時地從每個輸出中解壓縮出行數(shù)據(jù)。
G4 Fax解碼器通過DRAM接口直接從主存儲器中接收數(shù)據(jù)。壓縮量決定了與外部DRAM之間的帶寬要求。由于G4 Fax是無損壓縮的,所以圖像的復(fù)雜程度影響數(shù)據(jù)量和帶寬。通常一個800dpi黑色文本/圖形層的壓縮比超過10∶1,所以1頁/秒的打印速度需要0.78MB/秒的帶寬。同樣,通常一個320dpi抖動選擇矩陣的壓縮比在50∶1以上,所以1頁/秒的打印速度需要0.025MB/秒的帶寬。對與最快打印速度,320dpi抖動選擇矩陣和800dpi點顏色1所需的帶寬分別為1.72MB/秒和0.056MB/秒。因此,2MB/秒的總帶寬完全可以滿足DRAM的帶寬要求。
G4 Fax解碼功能通過G4 Fax解碼器核心實現(xiàn)??梢允褂酶鞣NG4 Fax解碼器核心只要這種G4 Fax解碼器核心的處理速度足以執(zhí)行所需的計算和控制功能。G4 Fax解碼器核心必須能夠處理在超過400dpi分辨率的傳真應(yīng)用中的掃描寬度,因此可能需要進(jìn)行一些修改。
JPEG壓縮算法(見ISO/IEC 19018-11994,信息技術(shù)——連續(xù)色調(diào)靜態(tài)圖像的數(shù)字壓縮和編碼要求與原則,1994)在特定質(zhì)量等級上對連續(xù)色調(diào)圖形進(jìn)行有損壓縮。在壓縮比低于5∶1時,JPEG算法不會給圖像質(zhì)量帶來可見影響。在壓縮比低于10∶1時,圖像質(zhì)量的下降可以忽略(見Wallace,G.K.,“JPEG靜態(tài)圖形壓縮標(biāo)準(zhǔn)”,ACM通信,Vol.34,No.4,1991年4月,30-44頁)。JPEG通常首先把圖像轉(zhuǎn)化為一個顏色空間,該顏色空間把亮度和色度分離為獨立的顏色通道。這樣,色度通道可以被二次取樣,同時不會使圖像質(zhì)量降低很多,因為人類視覺系統(tǒng)對亮度的敏感性要比對色度的敏感性強(qiáng)得多。經(jīng)過第一步后,對每個顏色通道獨立壓縮,把圖像分解為8×8的像素塊。然后,通過離散余弦變換(DCT)把每個像素塊變換為頻域。這種變換相對較低的頻率因子中的圖像能量集中,從而較高頻率因子能夠自然地量化。這種量化是JPEG中的主要壓縮源。下一步,根據(jù)頻率排列因子,盡可能使零因子相鄰,然后以掃描寬度編碼處理零因子,從而實現(xiàn)進(jìn)一步壓縮。最終,對掃描寬度和非零頻率因子進(jìn)行統(tǒng)一編碼。解壓縮是壓縮的反過程。
CMYK(或CMY)連續(xù)色調(diào)層被壓縮為一個平面顏色JPEG字節(jié)流。如果出于表共享或色度二次取樣的目的需要進(jìn)行亮度/色度分離,那么CMYK將被轉(zhuǎn)化為YCrCb和Cr,而Cb被適當(dāng)?shù)囟稳?。JPEG字節(jié)流是完整的、自包容的。它包含解壓縮所需的全部數(shù)據(jù),包括量化和霍夫曼表。
JPEG解碼器負(fù)責(zé)對連續(xù)色調(diào)數(shù)據(jù)層進(jìn)行實時解壓縮。向JPEG解碼器輸入的數(shù)據(jù)最多可以是4個平面的連續(xù)色調(diào)數(shù)據(jù)。輸入數(shù)據(jù)通??梢允?個平面,代表CMY連續(xù)色調(diào)圖像,也可以是4個平面,代表CMYK連續(xù)色調(diào)圖像。雖然一般情況下所有顏色平面的分辨率是相同的,但是每個顏色平面的分辨率也可以不同。連續(xù)色調(diào)層從外部DRAM讀取。JPEG解碼器的輸出是解壓縮的連續(xù)色調(diào)數(shù)據(jù),這些連續(xù)色調(diào)數(shù)據(jù)在獨立的顏色平面中。解壓縮后的連續(xù)色調(diào)圖像被送到半色調(diào)器/合成器單元(HCU)29,進(jìn)行打印管道的下一個階段的處理。4個平面連續(xù)色調(diào)緩沖器用于在JPEG解碼器和HCU 29之間傳送連續(xù)色調(diào)數(shù)據(jù)。
解壓縮后的連續(xù)色調(diào)數(shù)據(jù)的每個顏色平面被輸出到一套雙行緩沖器(見下文的說明)中,每個行緩沖器的容量為3840B,因此可以存儲12英寸寬的320ppi分辨率的單個顏色平面的像素。行緩沖的目的,當(dāng)HCU從一個行緩沖器中讀數(shù)據(jù)時,JPEG解碼器可以向另一個行緩沖器寫數(shù)據(jù)。這是非常重要的,因為單個連續(xù)色調(diào)行通常低于1600dpi,所以必須在點和行方向上同時擴(kuò)展。如果緩沖低于一個整行,那么JPEG解碼器就必須對同一行多次解碼——每次用于輸出一個600dpi點線。雖然JPEG支持多種分辨率,但是必須在分辨率和可用帶寬之間進(jìn)行權(quán)衡。當(dāng)分辨率和顏色數(shù)增加時,帶寬要求也隨之增加。另外,打印引擎/控制器芯片的目的段的數(shù)量也會影響帶寬和分辨率。注意,由于連續(xù)色調(diào)圖像以平面格式被處理,所以每個顏色平面可以采用不同的分辨率存儲(例如,CMY平面的分辨率可以高于K平面的分辨率)。所支持的最高連續(xù)色調(diào)分辨率是1600dpi(與打印機(jī)的全點分辨率匹配)。但是,輸出行緩沖器的容量只能儲存12英寸320ppi的連續(xù)色調(diào)像素。如果需要以更高連續(xù)色調(diào)分辨率輸出完整的12英寸寬度,那么需要使用多個打印引擎/控制器,但是需要注意的是,打印機(jī)上的最終輸出仍是雙層數(shù)據(jù)。如果支持320ppi的4種顏色,對于1頁/秒的打印速度(頁寬可以是12英寸或8.5英寸),解壓縮后的輸出帶寬應(yīng)為40MB/秒;對于最高的打印機(jī)速度性能(30000行/秒),12英寸和8.5英寸頁寬所要求的解壓縮輸出帶寬分別為88MB/秒和64MB/秒。
JPEG解碼器通過DRAM接口直接從主存儲器接收數(shù)據(jù)。壓縮量決定了與外DRAM進(jìn)行數(shù)據(jù)傳輸?shù)膸捯?。?dāng)壓縮水平提高時,帶寬會相應(yīng)降低,但是最終的輸出圖像的質(zhì)量也同時降低。單個顏色平面的DRAM帶寬可以通過壓縮帶寬×壓縮比的方式快速得出。例如,為了實現(xiàn)1頁/秒的打印速度,壓縮比為10∶1的320ppi的單個顏色平面所要求與DRAM通信的帶寬為1MB/秒。
JPEG的功能由一個JPEG核心實現(xiàn)。有多種JPEG核心可用只要它具有足夠的處理能力來執(zhí)行所需的計算和控制功能。例如,BTG X-March核心的解壓縮速度最高可達(dá)140MB/秒,對于最高的打印機(jī)速度(1600dpi,30000行/秒),它可以對4個400ppi的連續(xù)色調(diào)顏色平面同時解壓縮;對于1頁/秒的打印機(jī)速度,它可以對4個800ppi的連續(xù)色調(diào)顏色平面同時解壓縮。需要注意的是,上述JPEG核心只需要支持解壓縮功能,因此,降低了對通用型JPEG壓縮/解壓縮核心的要求。由于解壓縮數(shù)據(jù)被輸出到行緩沖器中,所以JPEG解碼器可以一次快速解壓一個顏色平面的一整行,消除了在上下文中的行處理中的切換工作,同時簡化了JPEG解碼器的控制。此時,必須維護(hù)4個上下文(每個顏色平面使用一個上下文),每個上下文包含外部DRAM的當(dāng)前地址以及適當(dāng)?shù)腏PEG解碼參數(shù)。
圖4所示為半色調(diào)器/合成器單元(HCU)29把半色調(diào)和連續(xù)色調(diào)(通常是CMYK)層合并為一個雙層,并把Spot1雙層復(fù)合到適當(dāng)?shù)陌肷{(diào)連續(xù)色調(diào)層上。如果打印機(jī)中沒有K墨水,那么HCU 29可以把K適當(dāng)?shù)赜成錇镃MY點。它還根據(jù)抖動矩陣選擇圖中的相應(yīng)數(shù)值逐點選擇抖動矩陣。HCU 29的輸入是(從JPEG解碼器單元)通過緩沖器37輸入的一個擴(kuò)展的連續(xù)色調(diào)層,通過緩沖器38輸入的一個擴(kuò)展的雙層Spot 1層,通過緩沖器39輸入的一個擴(kuò)展的抖動矩陣選擇位圖(通常與連續(xù)色調(diào)層的分辨率一樣),以及通過緩沖器40輸入的全點分辨率的標(biāo)記數(shù)據(jù)。HCU 29最多可以使用從外部DRAM 34讀取的兩個抖動矩陣。由HCU 29向行裝載器/格式器單元(LLFU)41的輸出是一套打印機(jī)分辨率雙層圖像行,最多可以達(dá)到6個顏色平面。連續(xù)色調(diào)層一般是CMYK或CMY,而雙層Spot 1層是K。
圖5中更詳細(xì)地顯示了HCU單元。在啟動后,HCU不斷運行,直到檢測到一個頁面結(jié)束條件或通過其控制寄存器被明確停止。HCU的第一個任務(wù)是把從緩沖器平面(例如42)中接收并存儲到各個比例單元(例如比例單元43)中的數(shù)據(jù)在水平和垂直方向上同時縮放為打印機(jī)的分辨率。
比例單元提供了在水平和垂直方向上把連續(xù)色調(diào)數(shù)據(jù)或雙層數(shù)據(jù)縮放為打印機(jī)分辨率的一種方法??s放是通過把上述兩個方向上的數(shù)據(jù)值復(fù)制為該值的整數(shù)倍而實現(xiàn)的??s放數(shù)據(jù)的處理過程為現(xiàn)有技術(shù)。
頁邊單元57向比例單元43提供兩個控制位前進(jìn)點和前進(jìn)行。前進(jìn)點位允許狀態(tài)機(jī)為同一個點數(shù)據(jù)生成多個實例(用于頁邊和為打印頭中的重疊段創(chuàng)建點數(shù)據(jù))。前進(jìn)行位允許狀態(tài)機(jī)控制特定點線的結(jié)束時間,從而根據(jù)打印機(jī)的頁邊,截斷數(shù)據(jù)。它還使比例單元不必執(zhí)行特殊的行結(jié)束邏輯。比例單元的輸入數(shù)據(jù)是一個整行緩沖器。該行被重復(fù)使用比例因子次,以便通過行復(fù)制實現(xiàn)垂直方向的縮放,在每一行中,每個值被重復(fù)使用比例因子次,以便通過像素復(fù)制實現(xiàn)水平方向的縮放。當(dāng)輸入行被重復(fù)使用比例因子次時(前進(jìn)行位已經(jīng)被設(shè)置為比例因子次),地址的輸入緩沖選擇位被切換(雙緩沖)。縮放單元的邏輯對于8位和1位的情況都是相同的,因為比例單元只產(chǎn)生地址。
由于每個連續(xù)色調(diào)層可以使用不同的分辨率,所以每個連續(xù)色調(diào)層被單獨縮放。緩沖器45中的雙層Spot 1層和緩沖器46中的抖動矩陣選擇層也需要縮放。由于緩沖器47中的雙層標(biāo)記數(shù)據(jù)是以正確的分辨率建立的,所以不需要縮放??s放后的抖動矩陣選擇位被抖動矩陣存取單元48用于從兩個抖動矩陣中選擇一個8位值。該8位值被輸出到4個比較器中(44,49-51),在這些比較器中,它們與特定的8位連續(xù)色調(diào)值相比較。實際抖動矩陣的產(chǎn)生與打印頭的結(jié)構(gòu)有關(guān),而產(chǎn)生抖動矩陣的過程為現(xiàn)有技術(shù)。如果連續(xù)色調(diào)值大于或等于上述8位抖動矩陣值,那么就輸出1,否則輸出0。在52-56中,這些位與從頁邊單元57而來的inPage位(指示特定點是否在頁面的可打印區(qū)域內(nèi))進(jìn)行“與(AND)”操作。HCU中的最后一個步驟是合成步驟。對于6個輸出層中的每一層,都有一個單點合并單元(例如單元58),每個單點合并單元使用6個輸入值。每個點合并單元的輸出位是上述輸入位的合并值。這樣,點顏色就能夠被放入到任何輸出顏色平面中(包括用于測試的紅外顏色平面),黑色被合并到青色中、洋紅色和黃色(CMY)中(如果打印頭中沒有黑色墨水),而標(biāo)記點數(shù)據(jù)被放入到一個可見平面中。定色劑顏色層也可以立即生成。點再生單元(DRU)59負(fù)責(zé)把為特定顏色層產(chǎn)生的點流組織到32位數(shù)值中,這樣,輸出內(nèi)容被按段排列,而在每一段中,輸出內(nèi)容被按點排列。由于疊加段的點不是以段順序生成的,所以還需要進(jìn)行稍許調(diào)整。
頁邊單元57向比例單元43提供兩個控制位前進(jìn)點和前進(jìn)行。前進(jìn)點位允許狀態(tài)機(jī)為同一個點數(shù)據(jù)生成多個實例(用于頁邊和為打印頭中的重疊段創(chuàng)建點數(shù)據(jù))。前進(jìn)行位允許狀態(tài)機(jī)控制特定點線的結(jié)束時間,從而根據(jù)打印機(jī)的頁邊,截斷數(shù)據(jù)。它還使比例單元不必執(zhí)行特殊的行結(jié)束邏輯。
比較器單元帶有一個簡單的8位“大于”比較器。該比較器用于確定8位連續(xù)色調(diào)值是否大于8位抖動矩陣值。因此,比較器單元使用兩個8位輸入,并產(chǎn)生一個1位長度的輸出。
圖6中更詳細(xì)地顯示了點合并單元。點合并單元提供了一種把雙層抖動數(shù)據(jù)、Spot 1顏色以及標(biāo)記數(shù)據(jù)與實際打印頭的輸出墨水映射的方法。每個點合并單元使用6個1位輸入,產(chǎn)生一個1位長度的輸出,該輸出值代表顏色平面的輸出點。在60處的輸出位是輸入位的合并值。這樣,點顏色可以被放入到任何輸出顏色平面中(包括用于測試的紅外顏色平面),黑色被合并到青色中、洋紅色和黃色(CMY)中(如果打印頭中沒有黑色墨水),而標(biāo)記點數(shù)據(jù)被放入到一個可見平面中。定色劑顏色層可以通過簡單地合并所有輸入位生成。點合并單元包含一個6位ColorMask寄存器61,該寄存器中的值作為6個輸出位的掩碼。每個輸出位與相應(yīng)的ColorMask寄存器位進(jìn)行“與(AND)”操作,然后,把所得到的6位進(jìn)行“或(OR)”操作,形成最終的輸出位。
圖7所示為點再生單元(DRU),該單元負(fù)責(zé)為特定顏色平面把生成的位流組織到為32位數(shù)值中,這樣,輸出內(nèi)容被按段排列,而在每一段中,輸出內(nèi)容被按點排列。由于疊加段的點不是以段順序生成的,所以還需要進(jìn)行稍許調(diào)整。DRU帶有一個32位移位寄存器,一個普通的32位寄存器、以及一個普通的16位寄存器。一個5位計數(shù)器跟蹤所處理的位數(shù)。抖動矩陣存取單元(DMAU)發(fā)出的點前進(jìn)信號被用于指示DRU輸出具體位值。
圖7中,寄存器(A)62每個周期移位一次。它包含32個由點合并單元(DMU)最近產(chǎn)生的點。每過32個周期,寄存器(A)62中的全部32位值被復(fù)制到寄存器(B)63中,復(fù)制動作由DRU狀態(tài)機(jī)64通過一個簡單的5位計數(shù)器產(chǎn)生的WriteEnable信號觸發(fā)。在WriteEnable脈沖的同時,寄存器(B)63中的16位奇數(shù)位(1,3,5,7等)被復(fù)制到寄存器(C)65中。然后,一個32位多路器根據(jù)狀態(tài)機(jī)中的2位在下列3個輸出中做出選擇●寄存器B中的全部32位●由寄存器A中的16個偶數(shù)位(0,2,4,6等)和寄存器B中的16個偶數(shù)位構(gòu)成的一個32位值。寄存器A的16個偶數(shù)位構(gòu)成該32位值的0-15位,而寄存器B中的16個偶數(shù)位構(gòu)成該32位值的16-31位?!裼杉拇嫫鰾中的16個奇數(shù)位(1,3,5,7等)和寄存器C中的16位構(gòu)成的一個32位數(shù)值。寄存器C中的位構(gòu)成該32位值的0-15位,而寄存器B中的16個奇數(shù)位構(gòu)成該32位值的16-31位。
DRU的狀態(tài)機(jī)如表1所示。狀態(tài)機(jī)的起始狀態(tài)為0,每隔32個周期改變狀態(tài)。在一個32周期過程中,一個noOverlap位為該32周期累計所有dot advance位的“與(AND)”值(周期0的noOverlap=dotadvance,周期1-31的noOverlap=noOverlap AND dot advance)。
表1.DRU的狀態(tài)機(jī)
圖5中的頁邊單元(MU)57負(fù)責(zé)根據(jù)當(dāng)前頁的頁邊距把從抖動矩陣存取單元(DMAU)48獲得的前進(jìn)點和前進(jìn)行信號轉(zhuǎn)化為一般控制信號。它還負(fù)責(zé)生成end of page條件。MU的計數(shù)器保存著當(dāng)前頁的點和行的數(shù)值。在一頁開始時,這兩個值都為0。每次當(dāng)MU從DMAU接收一個dotadvance信號時,點計數(shù)器加1。當(dāng)MU從DMAU接收到line advance信號時,行計數(shù)器加1,而點計數(shù)器被置0。在每個周期內(nèi),把當(dāng)前行和點值與頁邊值進(jìn)行比較,然后根據(jù)這些頁邊值輸出dot advance、lineadvance,和within margin信號。DMAU只包含HCU的實際存儲要求。
圖8所示為行裝載器/格式器單元(LLFU)的示意圖。LLFU從HCU接收點信息,為特定的打印行把點裝載到適當(dāng)?shù)木彌_器中(某些在芯片中,某些在外部DRAM34中),并把這些點數(shù)據(jù)格式化為打印頭所需的順序。圖9為一個LLFU的外部接口的高級模塊圖。向LLFU的輸入67是一組32位字和一個DataValid位,這些數(shù)據(jù)都由HCU產(chǎn)生。輸出68是一組90位的值,代表6種顏色的15個打印頭段的最大值。并不是所有輸出位都有效,這與打印頭中實際使用的顏色數(shù)有關(guān)。
本文中所述的打印頭的噴嘴部分由兩排噴嘴構(gòu)成,也就是說,同一種顏色的奇數(shù)和偶數(shù)點在不同的行上打印,偶數(shù)點用于行L,而奇數(shù)點用于行L-2。另外,在一種顏色的點與另一種顏色的點之間有若干行。因為HCU同時計算相同點位置的6個顏色平面,所以必須為每個顏色平面延遲點數(shù)據(jù),直到同一個點定位到相應(yīng)的彩色噴嘴上。
每個緩沖行的大小取決于打印頭的寬度。由于每個打印引擎/控制器為多達(dá)15個打印頭段產(chǎn)生點數(shù)據(jù),所以單個奇數(shù)緩沖行或偶數(shù)緩沖行由15套640點組成,總數(shù)據(jù)量為9600位(1200B)。例如,color 6奇數(shù)點所需的緩沖器為45KB。
所有必要的緩沖器最好內(nèi)建在打印引擎/控制器芯片中。否則,colors 2以上的緩沖器應(yīng)存儲在外部DRAM芯片中。這樣,即使將來顏色平面之間的距離發(fā)生變化,打印引擎/控制器仍然可用。在打印引擎/控制器上保存color 1的偶數(shù)點意義不大,因為所有內(nèi)容都是相對于該特定點線(不需要額外的行緩沖器)打印的。另外,緩存color 1奇數(shù)點所需的2個半行可節(jié)省實際的DRAM帶寬。在打印頁面前,各種行緩沖器(片上緩沖器和DRAM緩沖器)都需要預(yù)置0,使打印頁面有一個空邊。頁面的結(jié)尾由HCU自動產(chǎn)生,所以頁面將有一個空邊。
圖10是Color N OESplit(見圖9的Oesplit 70)的模塊圖,圖9中的每個緩沖器(E、F、71、72)的模塊圖可以在圖10和圖11中找到。緩沖器EF是一種雙緩存機(jī)制,用于向圖3中所示的打印頭接口(PHI)32傳輸數(shù)據(jù)。因此,緩沖器E和F具有相同的結(jié)構(gòu)。在點線的處理過程中,當(dāng)上述緩沖器(E、F)中一個用于寫數(shù)據(jù)時,另一個用于讀數(shù)據(jù)。這兩個緩沖器在接收到從PHI發(fā)來的行同步信號時進(jìn)行邏輯交換。緩沖器E和F都由6個子緩沖器構(gòu)成,一個子緩沖器對應(yīng)一個顏色,如圖11所示。Color 1的子緩沖器編號為73。每個子緩沖器的容量是2400B,足以儲存15個1280點/段的段。由于內(nèi)存是以32位方式讀寫的,所以每個子緩沖器有600個地址(需要10個地址位)。在每個顏色的子緩沖器中,所有偶數(shù)點都被放在奇數(shù)點的前面。如果有未用的空間(用于少于15個段的打印),那么未用空間應(yīng)位于每個顏色的子緩沖器的末端。每個子緩沖器實際使用的存儲量與打印引擎/控制器實際編址的端數(shù)量直接相關(guān)。對于一個15段打印頭,由1200B個偶數(shù)點,后跟1200B個奇數(shù)點,沒有未用空間。所使用的子緩沖器的數(shù)量與打印頭所用的顏色數(shù)直接相關(guān)。所支持的最多顏色數(shù)為6。
每個緩沖器(E、F)的尋址編碼電路可以保證在一個特定周期中對所有6個子緩沖器進(jìn)行一次32位訪問——可以從所有6個緩沖器讀取數(shù)據(jù),也可以向其中的某個緩沖器寫入數(shù)據(jù)。從每個顏色緩沖器中讀取的32位中,只有一位被選擇用來構(gòu)成6個輸出位的輸出。這個過程在圖11中示出。地址的15位中,10位地址用于選擇32位數(shù)據(jù),5位地址用于從所選的32位數(shù)據(jù)中選擇1位,從而獲得要讀取的1位數(shù)據(jù)。每個子緩沖器(73-78)都有自己的WriteEnable行,因此,一個32位值可以在給定周期內(nèi)寫入特定的顏色緩沖器。這些WriteEnable行是通過上述WriteEnable輸入與ColorSelect的解碼形式的“與(AND)”操作實現(xiàn)的。行79的DataIn的32位是共享的,因為實際上只有一個緩沖器接受數(shù)據(jù)。
用于從緩沖器E和F中讀取數(shù)據(jù)的地址是直接生成的。每個周期產(chǎn)生一個用于為特定段取上述6位數(shù)值(1位/顏色)的位地址。通過向當(dāng)前位地址上加640,可以轉(zhuǎn)到下一個段中的對應(yīng)點。加640而不是1280是因為,在緩沖器中奇數(shù)和偶數(shù)點是分離的。對上述動作重復(fù)NumSegments次,可以取回代表偶數(shù)點的數(shù)據(jù),然后把這些位傳送給PHI。當(dāng)NumSegments=15時,位數(shù)為90(15×6位)。然后,為奇數(shù)點重復(fù)上述過程。因此,完整的偶數(shù)/奇數(shù)位生成過程需要重復(fù)動作640次,每次需對起始地址加1。采取這種方法,所有點數(shù)據(jù)都在640×2×NumSegments個周期中被以打印頭所需要的順序傳遞到PHI中。當(dāng)NumSegments=15時,要經(jīng)歷19200個周期。需要注意的是,不管在打印頭中實際使用的顏色數(shù)是多少,在給定讀取周期中,都會產(chǎn)生6位數(shù)值(每位用于1個顏色緩沖器)。
另外,我們?yōu)閷懭氲綀D9中的90位Transfer寄存器90產(chǎn)生TWriteEnable控制信號。由于LLFU在PHI之前開始,我們必須從PHI傳送Advance脈沖前的第一個值。我們還必須為第一個Advance脈沖產(chǎn)生下一個值。方法是在NumSegments周期后把第一個值傳送給Transfer寄存器,然后停止NumSegments個周期,等待Advance脈沖啟動下一個NumSegments周期組。當(dāng)?shù)谝粋€Advance脈沖到達(dá)時,LLFU將與PHI同步。
單個點線的讀取過程在下面的偽代碼中說明
DoneFirst=FALSE WantToXfer=FALSE For DotInSegment0=0 to 1279 If(DotInSegment0bit0==0) CurrAdr=DotInSegment0(high bits)(puts in range 0 to 639) EndIf XfersRemaining=NumSegments<!-- SIPO <DP n="29"> --><dp n="d29"/>Do WantToXfer=(XfersRemaining==0) TWriteEnable=(WantToXfer AND NOT DoneFirst)OR PHIADVANCE DoneFirst=DoneFirst OR TWriteEnable Stall=WantToXfer AND(NOT TWriteEnable) SWriteEnable=NOT(Stall) If(SWriteEnable) Shift Register=Fetch 6 bits fromEFSense[ReadBuffer]CurrAdr CurrAdr=CurrAdr+640 XfersRemaining=XfersRemaining-1 EndIfUntil(TWriteEnable)EndForWait until BufferEF Write process has finishedEFSense=NOT(EFSense)
當(dāng)讀進(jìn)程從E或F向PHI傳送數(shù)據(jù)時,一個寫進(jìn)程正在準(zhǔn)備另一個緩沖器中的下一個點線。
被寫入E或F的數(shù)據(jù)是由HCU產(chǎn)生的color 1數(shù)據(jù)以及從緩沖器D(由DRAM提供數(shù)據(jù))提供的color 2-6數(shù)據(jù)。每當(dāng)HCU的OutputValid被置為真時,Color 1數(shù)據(jù)就被寫入EF中;在其它時間,color 2-6數(shù)據(jù)被從寄存器C中寫入EF。
圖9中的緩沖器OE1 81是一個32位寄存器,它用于存儲某個HCU為color 1產(chǎn)生的連續(xù)32個點的集合。雖然點在頁面上是連續(xù)的,但是奇數(shù)和偶數(shù)點不是同時打印的。
緩沖器AB 82采用一種雙緩存機(jī)制,它為color 1把奇數(shù)點數(shù)據(jù)延遲2個點線。因此,緩沖器A和B的結(jié)構(gòu)是相同的。在點線的處理過程中,一個點線被從緩沖器中讀取,其中一個點線被讀取,然后被寫入。當(dāng)整個點線處理完成后,這兩個緩沖器互換邏輯。一個1位標(biāo)志ABSense確定從哪個緩沖器中讀取以及向哪個緩沖器寫入。
每當(dāng)輸出有效控制標(biāo)志被設(shè)置為真時(在第一個標(biāo)志發(fā)送后,每隔32個周期設(shè)置一次),HCU提供color 1的32位數(shù)據(jù)。這32位數(shù)據(jù)為一個點線定義了一個連續(xù)的32點集,其中有16個偶數(shù)點(位0、2、4等),16個奇數(shù)點(位1、3、5等)。輸出有效控制器標(biāo)志作為OE1寄存器81的WriteEnable控制標(biāo)記。我們每隔2個OutputValid信號處理一次HCU數(shù)據(jù)。HCU color 1的16個偶數(shù)位被與寄存器OE1的16個偶數(shù)位合并,產(chǎn)生32位的偶數(shù)color 1數(shù)據(jù)。同樣,HCU的16個奇數(shù)位被與寄存器OE1的16個奇數(shù)位合并,產(chǎn)生32位的奇數(shù)color 1數(shù)據(jù)。在收到第一個OutputValid信號時,我們讀取緩沖器AB的數(shù)據(jù),把奇數(shù)數(shù)據(jù)傳送給緩沖器EF中的color 1,如圖11中的73。在收到第二個OutputValid信號時,我們把奇數(shù)數(shù)據(jù)的32位寫入上述緩沖器AB中,然后把偶數(shù)數(shù)據(jù)的32位寫到緩沖器EF的color 1中。
每當(dāng)OutputValid被設(shè)置為真時,HCU就為每個顏色平面提供32位數(shù)據(jù)。這種動作每隔32個周期出現(xiàn)一次(不包括在特定啟動時間內(nèi))。這32位數(shù)據(jù)為一個點線定義了一個連續(xù)的32點,其中包含16個偶數(shù)點(位0、2、4等)和16個奇數(shù)點(位1、3、5等)。
雖然緩沖器OE1(圖10中的83)用于為color 1存儲一個32位值,但是緩沖器OE2到OE6分別用于為color 2到color 6存儲一個32位值。正如color 1的點每隔64個周期(每隔兩個OutputValid標(biāo)志)被分為代表color 1的奇數(shù)點的32位數(shù)據(jù)和代表color 1的偶數(shù)點的32位數(shù)據(jù)一樣,其它顏色平面的點也被劃分為偶數(shù)和奇數(shù)點。
但是,點數(shù)據(jù)被延遲若干行,然后被通過緩沖器CD(圖9中的84)輸出到DRAM中,而不是直接寫入緩沖器EF中。當(dāng)特定行的點被寫入DRAM時,前一行的點被從DRAM中讀出,并被寫入緩沖器E、F(71,72)。這個過程必須與把color 1寫入緩沖器EF的過程交錯進(jìn)行。
每次從HCU收到一個OutputValid標(biāo)志時(如圖10中的85行),顏色N的32位數(shù)據(jù)就被寫入緩沖器OEN 83。每次收到第二個OutputValid標(biāo)志時,合并后的64位數(shù)據(jù)就被寫入顏色緩沖器N 86。對于顏色平面2-6,這個過程是并行進(jìn)行的。顏色緩存區(qū)N 86含有40套64位數(shù)據(jù)(320B),以便為兩個完整的段存儲點數(shù)據(jù)。這樣,前一個段的數(shù)據(jù)(包括奇數(shù)和偶數(shù)點)在一個整段生成時間(20×64=1280周期)內(nèi)被輸出到DRAM中。寫入操作的地址是直接生成的。行87的ColorNWriteEnable信號每隔兩個OutputValid標(biāo)志產(chǎn)生一次。地址從0開始,每隔兩個OutputValid標(biāo)記增加1,直到39。當(dāng)?shù)刂返竭_(dá)39時,它將被重置為0,而不是步進(jìn)到40,這樣可以實現(xiàn)雙緩沖方案。只要在OutputValid標(biāo)記出現(xiàn)之間不發(fā)生讀操作,上述工作就一直進(jìn)行,并且前一個段的數(shù)據(jù)可以在產(chǎn)生單個段的數(shù)據(jù)的時間內(nèi)被寫入到DRAM中。下面的偽代碼說明了上述過程
adr=0 firstEncountered=0 While(NOT AdvanceLine) If(HCU_OutputValid)AND(firstEncountered)) ColorNWriteEnable=TRUE ColorNAdr=adr If(adr==39) adr=0 Else adr=adr+1 EndIfElseColorNWriteEnable=FALSE EndIf If(HCU_OutputValid)firstEncountered=NOT(firstEncountered) EndIfEndWhile
讀操作的地址生成過程比較復(fù)雜一些,因為它與DRAM讀寫(包括讀和寫)、緩沖器EF的讀寫、以及color 1的生成時間有關(guān)。讀操作的地址生成過程在下面進(jìn)一步說明。
緩沖器C、D、E、F和color N的地址生成都與DRAM讀寫的時間有關(guān),并且不能影響與緩沖器E和F有關(guān)的color 1的處理。地址生成的基本原理是,把color N(奇數(shù)點或偶數(shù)點)的一個段的數(shù)據(jù)從DRAM中通過緩沖器CD傳送給緩沖器EF。當(dāng)從DRAM中讀出數(shù)據(jù)時,根據(jù)ColorBufferN中的值替換上述點,同樣,對奇數(shù)和偶數(shù)點中的每種顏色執(zhí)行相同的過程。當(dāng)累積了一個完整段的所有點數(shù)據(jù)后(需要20個64周期),重新開始上述過程。當(dāng)把給定行的所有段的數(shù)據(jù)在寄存器與DRAMA之間傳輸完成后,把該顏色的DRAM的當(dāng)前地址步進(jìn)1次,直到把該顏色的點線的特定數(shù)據(jù)從DRAM中讀回。在本處理方法中,DRAM與一種FIFO非常相似。最終的結(jié)果是,color N(偶數(shù)或奇數(shù)點)被從DRAM中讀入緩沖器D,同時color N(前述偶數(shù)或奇數(shù)點)被復(fù)制到緩沖器C中。向緩沖器C復(fù)制數(shù)據(jù)需要20或21個周期,具體周期數(shù)取決于OutputValid標(biāo)志是否在20次傳輸過程中出現(xiàn)。當(dāng)上述兩個操作都完成后(通常,DRAM存取是一種較慢的工作),過程的第二部分開始。也就是說,把緩沖器C中的數(shù)據(jù)寫入到DRAM中(寫到上述讀操作的同一個地點),并且把緩沖器D中的數(shù)據(jù)復(fù)制到緩沖器EF中(同樣,由于正在傳輸color1的數(shù)據(jù),所以當(dāng)OutputValid標(biāo)志出現(xiàn)時,不會傳輸color N的數(shù)據(jù))。當(dāng)上述兩個操作完成后,為color N(奇數(shù)或偶數(shù)點)執(zhí)行相同的過程,然后為每個剩余的顏色也執(zhí)行相同的過程。上述的完整雙過程被重復(fù)執(zhí)行10次。然后,為下一行的處理更新DRAM中存儲的每個當(dāng)前行的地址。
在帶寬方面,為點數(shù)據(jù)緩存區(qū)存取DRAM會占用從打印引擎/控制器訪問DRAM的大部分帶寬。對于每一個打印行,需要為color 2-6讀取整個點線,并且為color 2-6寫入整個點線。因此,15個段(最多)的數(shù)據(jù)量為2×5×15×1280位=192000位(24000 B)/打印行。對于最快速的打印系統(tǒng)(30000行/秒),帶寬必須為687MB/秒。對于1頁/秒的打印系統(tǒng),所要求的帶寬為312MB/秒。由于所要求的帶寬太高,所以必須針對所用的存儲器類型優(yōu)化DRAM中每種顏色的各種半行的地址。例如,在一個RDRAM存儲器系統(tǒng)中,為了最大限度地增加DRAM存取的打印頁面點數(shù),必須為每種顏色把第一個半行緩沖器調(diào)整為1KB范圍。當(dāng)處理各種段時,如果下一段的起始位置在1KB頁面中的960B處,那么640位存取會跨越2個頁面。為此,可以使用DRAMMaxVal變量檢查這種情況。如果這種情況發(fā)生,那么就需要把下一個半行緩沖器的地址調(diào)整為與頁面對齊。這樣雖然每13段會浪費64B存儲空間,但是640位存取將完全發(fā)生在一個頁面中。
上述的地址生成過程可以視為NumSegments需要10個(20×32位讀操作+20×32位寫操作)。下面的偽代碼可以說明這種地址生成過程
EFStartAdr=0 Do NumSegments times For CurrColor=0 to MaxHalfColors DRAMStartAddress=ColorCurrAdr[CurrColor] While reading 640 bits from DRAMStartAddress into D(>= 20 cycles) ColorNAdr=0<!-- SIPO <DP n="35"> --><dp n="d35"/> While(ColorNAdr?。?0) If(NOT HCU_OutputValid) Transfer ColorNBuffer[ColorNAdr|CurrColor_bit0]to C[ColorNAdr] ColorNAdr=ColorNAdr+1 EndIf EndWhile EndWhile-wait until read has finished While writing 640 bits from C into DRAMStartAddress(>=20 cycles) ColorNAdr=0 EFAdr=EFStartAdr While(ColorNAdr?。?0) If(NOT HCU_OutputValid) Transfer D[ColorNAdr]to EF[CurrColor|EFAdr] If((ColorNAdr==19)AND(CurrColor==NumHalfColors)) EFStartAdr=EFAdr+1 Else EFAdr=EFAdr+1 EndIf ColorNAdr=ColorNAdr+1<!-- SIPO <DP n="36"> --><dp n="d36"/> EndIf EndWhile EndWhile-wait until write has finished If(DRAMStartAddress==DRAMMaxVal) ColorCurrAdr[currColor]=round up DRAMStartAddress to next 1KByte page Else ColorCurrAdr[currColor]=DRAMStartAddress+640 bits EndIf If(Segment==maxSegments) If(ColorCurrRow[CurrColor]== ColorMaxRow[CurrColor]) ColorCurrRow[currColor] = ColorStartRow[currColor] ColorCurrAdr[currColor] = ColorStartAdr[currColor] Else ColorStartRow[currColor] = ColorCurrRow[currColor]+1 EndIf EndIf<!-- SIPO <DP n="37"> --><dp n="d37"/> EndFor EndDo Wait until next Advance signal from PHI
需要注意的是,MaxHalfColors寄存器應(yīng)小于需要對奇數(shù)顏色和偶數(shù)顏色單獨處理的顏色(但不包括color 1)數(shù)。例如,對于一個標(biāo)準(zhǔn)的6顏色打印系統(tǒng),需要處理的總顏色數(shù)(包括奇數(shù)顏色和偶數(shù)顏色)為10(colors 2-6的奇數(shù)和偶數(shù)色),所以應(yīng)該把MaxHalfColors設(shè)置為9。
LLFU需要2個NumSegments周期來為PHI準(zhǔn)備數(shù)據(jù)的第一個180位。因此,必須在已經(jīng)LLFU啟動2個NumSegments周期的時間后才能啟動打印頭和開始第一個LineSync脈沖。這樣Transfer的初始值才有效,也才能向Transfer寄存器中裝入下90位數(shù)據(jù)。
打印頭接口(PHI)是處理器向打印頭裝載要打印點的途徑,它控制著實際的點打印過程。它從LLFU接收數(shù)據(jù),并把數(shù)據(jù)輸出給打印頭。PHI必須能處理各種打印頭寬度和格式。為了能夠適應(yīng)各種定制要求,PHI的參數(shù)設(shè)置如表33所示
表33.基本打印參數(shù)
PHI的內(nèi)部結(jié)構(gòu)應(yīng)支持6種打印顏色、每次傳輸8個段、以及2個段組。這樣才能滿足能夠以全頁寬打印A4/信封幅面的15段(8.5英寸)打印機(jī)的要求。必要時,可以采用多個打印引擎/控制器共同進(jìn)行寬行打印。
打印頭接口(PHI)包括· 一個LineSyncGen單元(LSGU),該單元為多個打印引擎/控制器芯片和步進(jìn)電機(jī)提供同步信號(允許并排打印和前/后打印)。· 一個Memjet接口(MJI),該接口向Memjet打印頭傳送數(shù)據(jù)。
圖12所示為打印頭接口(PHI)32的內(nèi)部結(jié)構(gòu)示意圖。PHI中有兩個LSGU單元89、90,第一個LSGU 90產(chǎn)生LineSync0(LS0),用于控制所有同步的芯片中的Memjet接口(MJI);第二個LSGU 89產(chǎn)生LineSync1(LS1),用于向進(jìn)紙步進(jìn)電機(jī)發(fā)送脈沖信號。
芯片中的主/從針腳91允許多個芯片通過主/從關(guān)系連接在一起,實現(xiàn)并排打印或前/后打印。當(dāng)主/從針腳接VDD時,芯片作為主芯片,此時,由LineSyncGen單元90產(chǎn)生的LineSync同步脈沖被加在兩個三態(tài)Line-Sync公共行LineSync0信號上,然后通過兩個三態(tài)啟用92,使信號由所有芯片共享。當(dāng)主/從針腳接GND時,芯片作為從芯片,由LineSyncGen單元89、90產(chǎn)生的LineSync脈沖不會被加到公共LineSync行上。采取這樣的方式,主芯片的LineSync脈沖信號可由給所有連接的芯片中的所有PHI共享。
LineSyncGen單元(LSGU)89、90負(fù)責(zé)產(chǎn)生打印頁面所需的同步脈沖信號。每個LSGU產(chǎn)生一個外部LineSync信號,以支持行同步。當(dāng)接收到“Go”指令時,LGSU內(nèi)的一個產(chǎn)生器產(chǎn)生一個LineSync脈沖,并且每隔一定周期就產(chǎn)生一個LineSync脈沖,直到收到“Stop”信號。LineSync脈沖定義下一行的開始。LineSync脈沖之間的周期數(shù)由CyclesBetweenPulses寄存器確定,每個產(chǎn)生器都有一個CyclesBetween-Pulses寄存器。但是,LineSync信號的間隔時間必須足夠長,以保證打印一行,同時裝入另一行。但是也不能太長(例如為了滿足送紙電路的特殊要求)。如果CyclesBetweenPulses寄存器的值低于打印一行的時間,那么無法正確打印頁面,因為在打印完成一行之前,LineSync脈沖信號就已經(jīng)到來了。
LSGU中含有下列接口寄存器
表34.LineSyncGen單元的寄存器
LineSync脈沖不是直接由LGSU使用。只有當(dāng)主/從針腳91被設(shè)置為主時,才向三態(tài)LineSync0行97加入LineSync脈沖信號。因此,只有主打印引擎/控制器產(chǎn)生的LineSync脈沖信號才有效(從打印引擎/控制器產(chǎn)生的脈沖被忽略)。
Memjet接口(MJI)93向Memjet打印頭94傳送數(shù)據(jù),并告知Memjet接口何時開始打印下一行數(shù)據(jù)。它還用于支持從指定段返回的反饋信號。Memjet打印頭95本身負(fù)責(zé)控制其噴嘴的激發(fā)順序,使用圖3中的I2C串行接口36可對激發(fā)配置編程。MJI包含一個狀態(tài)機(jī),該狀態(tài)機(jī)遵從第18.1節(jié)中描述的打印頭裝載順序。MJI還可以包含預(yù)加熱循環(huán)和清洗循環(huán)的功能。每種顏色的點數(shù)也是由MJI保存的(見下文)。
MJI可以從兩個數(shù)據(jù)源向打印頭裝載數(shù)據(jù)·全1這是指所有噴嘴在下一個打印周期中全部激發(fā),它是為預(yù)熱或清洗循環(huán)裝載打印頭的標(biāo)準(zhǔn)機(jī)制?!腖LFU的傳送寄存器中的90位輸入這是打印圖像的標(biāo)準(zhǔn)方法。在第一次傳送中,前48位被送到打印頭,在第二次傳送中,后42位被送到打印頭,后42位的前面帶有6個0。當(dāng)發(fā)送完90位后,向LLFU發(fā)送1位的“前進(jìn)”控制脈沖。
MJI知道在一個頁面上要打印多少行。當(dāng)MJI接到“Go”命令時,在開始打印第一行之前(通過向打印頭發(fā)送一個NPSync脈沖),它等待一個LineSync脈沖。當(dāng)完成打印行的裝載/打印后,在開始打印下一行前,它等待下一個LineSync脈沖信號。當(dāng)裝載/打印完成指定數(shù)量的行后,MJI將停止,并忽略以后的LineSync脈沖。因此,MJI在96與LLFU31直接連接(如圖3和圖4所示),在97與LineSync0連接(由所有同步的芯片共享),并連接外部Memjet打印頭95。MJI從LLFU接收90位數(shù)據(jù),在這90位中,只有與打印頭段數(shù)和顏色數(shù)相對應(yīng)的位是有效的。MJI的狀態(tài)機(jī)不考慮哪些位是有效的,哪些位是無效的——它只簡單地把這些位傳送給打印頭。從MJI輸出的數(shù)據(jù)行和控制信號被送到下述的芯片的針腳。
MJI與打印頭有若干個連接,包括最多6種顏色,每次向兩個段組(最多)傳送8個段(最多)。表35列出了這些連接并指明了是向MJI輸入還是由MJI輸出。這些名稱與打印頭的針腳連接相對應(yīng)。
表35.Memjet接口連接
MJI記錄從打印頭噴出的每種顏色的點的數(shù)量。為每種顏色記錄的點數(shù)是一個32位值,這些值由處理器負(fù)責(zé)清除。使用32位長度,每個點計數(shù)器可以記錄17.8英寸×12英寸頁面的點數(shù),但是在實際使用中,在每打印一頁或半頁后都會讀取并清除點的計數(shù)。處理器使用點計數(shù)來刷新QA芯片,從而預(yù)測何時墨盒中的墨水將用完。處理器可以從QA芯片獲得墨盒的墨水容量的數(shù)據(jù)。采用對墨滴進(jìn)行計數(shù)的方法可以省略墨水傳感器,并能防止缺墨。在每次打印一頁后,更新的墨滴計數(shù)會被寫入到QA芯片中。這樣,只有剩余的墨水足夠打印下一個頁面時,打印頭才會打印下一頁。這種方法有助于即時更換墨盒,而不會產(chǎn)生只打印出半個頁面的情況。
圖13所示為顏色N的點計數(shù)器的結(jié)構(gòu)。6個點計數(shù)器的結(jié)構(gòu)是完全一樣的。在98,點計數(shù)器從HCU接收顏色N的數(shù)據(jù),并把數(shù)據(jù)傳送給15-4行編碼器99。編碼器99的4行輸出被送到一個加法器100中和顏色N點計數(shù)器101中,在102,輸出一個32位計數(shù)。計數(shù)器101的數(shù)值可以由線路103中的一位值清除。計數(shù)器101的裝載由104中的一位控制。
處理器與MJI通過一組寄存器通信。寄存器允許處理器為打印設(shè)置參數(shù)并接收打印過程的反饋。MJI中含有下列寄存器
表36.Memjet接口寄存器
MJI的狀態(tài)寄存器是一個16位寄存器,其各位的描述如下
表37.MJI的狀態(tài)寄存器
下列偽代碼說明了向打印頭裝載一個數(shù)據(jù)行的邏輯。需要注意的是,只有在LineSync脈沖信號到達(dá)時才開始裝載。這樣可以保證LLFU能夠為該打印行準(zhǔn)備好數(shù)據(jù)以及向打印頭傳輸?shù)谝恍械挠行浴?br>
Wait for LineSync For TransfersRemaining=1280 to 0 For I=0 to SegmentGroups If(SetAllNozzles) Set all Dn lines to be 1 Else If(I=0) Place first 48 bits of LLFU’s 90 bit Transfer<!-- SIPO <DP n="48"> --><dp n="d48"/> register on 48 Dn lines Else Place last 42 bits of LLFU’s 90 bit Transfer register on 48 Dn lines EndIf Pulse SClk Wait SegmentsPerXfer cycles Send ADVANCE signal EndFor EndFor
只需在MJI中設(shè)置適當(dāng)?shù)募拇嫫鞑⒃诖蛴☆^的激發(fā)脈沖配置文件中進(jìn)行適當(dāng)設(shè)置,就可執(zhí)行清洗和預(yù)熱過程?!? SetAllNozzles=1· 把激發(fā)脈沖配置文件設(shè)置為較短的時間周期可激活預(yù)熱模式,采用適當(dāng)?shù)膰娔珪r間可激活清洗模式。· 把NumLines設(shè)置為激發(fā)噴嘴的次數(shù)· 設(shè)置Go位,然后等待打印循環(huán)完成后清除Go位。
還必須把LSGU設(shè)置為以正確的頻率發(fā)送LineSync脈沖。上述描述的目的只是說明本發(fā)明的較佳實施例,不應(yīng)構(gòu)成對本發(fā)明的任何限制。本領(lǐng)域的技術(shù)人員可以在本發(fā)明的特定實例基礎(chǔ)上很容易地實現(xiàn)各種變化,但按照本發(fā)明進(jìn)行的任何等價修改或修飾都應(yīng)屬于本發(fā)明的范圍。
權(quán)利要求
1.一種相互協(xié)作驅(qū)動噴吐墨打印頭的打印引擎/控制器,包括
一個接收壓縮頁面數(shù)據(jù)的接口;
多個用于對接收到的壓縮頁面數(shù)據(jù)中的壓縮圖像平面進(jìn)行解碼的圖像解碼器;
一個半色調(diào)器/合成器,用于復(fù)合解碼后的圖像平面的各個圖像條;
一個向打印頭輸出復(fù)合圖像條的打印頭接口,
所述打印頭接口包括
一個能夠輸出打印頭所支持的格式的數(shù)據(jù)的多段打印頭接口;
一個向協(xié)作的打印引擎/控制器輸出同步信號的同步信號生成器,用于在打印頭處使打印引擎/控制器輸出的圖像條同步。
2.如權(quán)利要求1所述的打印引擎/控制器,其特征在于,所述的打印頭接口接收自己的同步信號,作為控制所有打印引擎/控制器的主控制信號,或者把從其它打印頭控制器接收的同步信號作為從控制信號。
3.如權(quán)利要求2所述的打印引擎/控制器,其特征在于,所述的打印頭接口包含一個輸入端,在該輸入端有一個信號用于確定打印引擎控制器是主控制器還是從控制器。
4.如權(quán)利要求1-3任何一項所述的打印引擎/控制器,其特征在于,所述的半色調(diào)器/合成器在一個頁邊單元的控制下縮放輸入圖像平面,以建立圖像條的打印數(shù)據(jù)。
5.如權(quán)利要求1所述的打印引擎/控制器,所述打印引擎/控制器還帶有一個標(biāo)記編碼器,用于計算標(biāo)記圖像平面的各個圖像條。
6.一種相互協(xié)作驅(qū)動噴墨打印頭的打印引擎/控制器,包括
一個連續(xù)色調(diào)圖像解碼器,用于對接收到的壓縮頁面數(shù)據(jù)中的任何壓縮的連續(xù)色調(diào)圖像平面進(jìn)行解碼;
一個雙層解碼器,用于對接收到的壓縮頁面數(shù)據(jù)中的任何壓縮的雙層圖像平面和/或抖動數(shù)據(jù)進(jìn)行解碼;
一個半色調(diào)器/合成器,用于復(fù)合解碼后的圖像平面中的各個圖像條,所述半色調(diào)器/合成器包括一個點合并單元,所述點合并單元在顏色蒙罩的控制下把圖像平面與打印頭中提供的墨水結(jié)合起來;
一個打印頭接口,用于向打印頭輸出復(fù)合后的圖像條,
所述打印頭接口包括
一個能夠輸出打印頭所支持的格式的數(shù)據(jù)的多段打印頭接口;
一個向協(xié)作的打印引擎/控制器輸出同步信號的同步信號生成器,使打印頭端的各圖像條同步。
7.如權(quán)利要求6所述的打印引擎/控制器,其特征在于,所述的半色調(diào)器/合成器包括一個頁邊單元,該頁邊單元用于在復(fù)合過程中向各個圖像平面增加頁邊數(shù)據(jù),以便在圖像條中產(chǎn)生打印數(shù)據(jù)。
8.一種帶有由多個打印引擎/控制器驅(qū)動的打印頭的噴墨打印機(jī),每個打印引擎/控制器包括
一個接收頁面數(shù)據(jù)的接口;
一個對頁面數(shù)據(jù)條進(jìn)行復(fù)合的半色調(diào)器/合成器;
一個向打印頭的一段輸出復(fù)合條的打印頭接口;
一個產(chǎn)生同步信號來同步打印引擎/控制器從而驅(qū)動打印頭以一種或多種更高的速度、更高的輸入分辨率、更多的顏色平面、更高的輸出分辨率或者更寬的格式打印的打印頭接口。
9.如權(quán)利要求8所述的打印引擎/控制器,其特征在于,打印頭接口接收自己的同步信號,作為控制所有打印引擎/控制器的主控制信號,或者把從其它打印頭控制器接收的同步信號作為從控制信號。
10.如權(quán)利要求9所述的打印引擎/控制器,其特征在于,所述的打印頭接口包含一個輸入端,在該輸入端有一個信號用于確定打印引擎控制器是主控制器還是從控制器。
11.一種帶有由多個打印引擎/控制器驅(qū)動的打印頭的噴墨打印機(jī),所述打印引擎/控制器包括
一個接收壓縮頁面數(shù)據(jù)的接口;
一個用于對接收到的壓縮頁面數(shù)據(jù)中的一些連續(xù)色調(diào)圖像平面進(jìn)行解碼的連續(xù)色調(diào)圖像解碼器;
一個雙層解碼器,用于對接收的壓縮頁面數(shù)據(jù)中的抖動數(shù)據(jù)和一些雙層圖像平面進(jìn)行解碼;
一個半色調(diào)器/合成器,用于把任何雙層圖像平面復(fù)合到任何連續(xù)色調(diào)圖像平面上,所述的圖像平面中的頁面數(shù)據(jù)在頁邊單元的控制下被縮放,以便為圖像條建立數(shù)據(jù);
一個向打印頭輸出復(fù)合后的圖像條的打印頭驅(qū)動器;以及
一個從多個引擎/控制器并行接收圖像條形式打印數(shù)據(jù)的打印頭。
全文摘要
本發(fā)明提供了一種相互協(xié)作驅(qū)動噴墨打印頭(33)的打印引擎/控制器(10)。這種打印引擎/控制器帶有一個接收壓縮頁面數(shù)據(jù)的接口(27),用于對接收到的壓縮頁面數(shù)據(jù)中的壓縮的圖像平面進(jìn)行解碼的圖像解碼器(28,88),一個用于復(fù)合解碼后的圖像平面的各個圖像條并向打印頭接口(32)輸出數(shù)據(jù)的半色調(diào)器/合成器(29),一個與打印頭連接的接口(32),一個輸出同步信號來控制同步所有打印引擎/控制器的同步信號產(chǎn)生器(89,90),以及一個作為主控制器產(chǎn)生同步信號來同步所有打印引擎/控制器(10)的打印頭接口(32)。所述打印頭接口(32)通過同步所有打印引擎/控制器(10)驅(qū)動打印頭以一種或多種更高的速度、更高的輸入分辨率、更高的輸出分辨率或更寬的格式打印。所述打印接口(32)包括一個輸入端(91),該輸入端(91)用于確定打印引擎控制器是主控制器還是從控制器。半色調(diào)器/合成器(29)在一個頁邊單元(57)的控制下縮放輸入的圖像平面,使打印引擎/控制器為圖像的圖像條建立打印數(shù)據(jù)。圖像由多個打印引擎/控制器產(chǎn)生的圖像條合成。
文檔編號G06K15/10GK1454156SQ00819710
公開日2003年11月5日 申請日期2000年6月30日 優(yōu)先權(quán)日2000年6月30日
發(fā)明者西蒙·羅伯特·瓦爾姆斯利, 保羅·拉普斯頓 申請人:西爾弗布魯克研究有限公司