專利名稱:使用多段打印頭打印的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種使用多段打印頭打印,尤其涉及抖動(dòng)的應(yīng)用。
與本發(fā)明有關(guān)的各種方法、系統(tǒng)和裝置在下列同類專利申請(qǐng)中揭示。這些專利申請(qǐng)是本發(fā)明的專利申請(qǐng)人或受讓人在2000年5月24日與本發(fā)明同時(shí)申請(qǐng)的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這些同類專利申請(qǐng)的揭示以交叉索引方式總結(jié)于此。
另外,與本發(fā)明相關(guān)的各種方法、系統(tǒng)和裝置在下列同類PCT申請(qǐng)中揭示。這些PCT申請(qǐng)是本發(fā)明的申請(qǐng)人或受讓人與本發(fā)明同時(shí)申請(qǐng)的PCT/AU00/00754,PCT/AU00/00755和PCT/AU00/00757。
這些同類專利申請(qǐng)的揭示以交叉索引方式總結(jié)于此。
特別需要說明的是下列同類PCT申請(qǐng)PCT/AU00/00591、PCT/AU00/00578、PCT/AU00/00579、PCT/AU00/00592和PCT/AU00/00590,這些申請(qǐng)中描述了一種微電機(jī)噴墨打印頭(以下稱為Memjet打印頭)。
Memjet打印頭從能夠在整個(gè)頁(yè)面寬度上產(chǎn)生1600dpi雙層墨點(diǎn)的多個(gè)打印頭段發(fā)展而來。墨點(diǎn)以相互隔離的方式產(chǎn)生,因此,散布的點(diǎn)能夠產(chǎn)生完美的抖動(dòng)效果。顏色平面在打印時(shí)能夠完美地重合,實(shí)現(xiàn)理想的重疊點(diǎn)打印。這種打印頭支持使用微電機(jī)墨滴控制技術(shù)進(jìn)行高速打印。
另外,在同類申請(qǐng)PCT/AU00/00516、PCT/AU00/00517、PCT/AU00/00511、PCT/AU00/00754、PCT/AU00/00755和PCT/AU00/00757中描述了一種驅(qū)動(dòng)上述頁(yè)寬打印頭的打印引擎/控制器。
用于驅(qū)動(dòng)打印頭的打印引擎/控制器把接收的輸入數(shù)據(jù)傳送給打印頭的噴嘴。向數(shù)據(jù)施加抖動(dòng)是一種現(xiàn)有技術(shù)。
特別值得一提的是PCT/AU00/00754,它描述了一種適合于與一種多段打印頭連接的多個(gè)打印引擎/控制器芯片接口的打印引擎/控制器。還需要特別說明的是,可以在這種打印引擎/控制器中采用抖動(dòng)技術(shù)以及特征化向量技術(shù)。
在類似于上述打印頭的多段打印頭中,如何在打印頭段的重疊部分保持一致的點(diǎn)增益和亮度是一個(gè)問題,而且打印頭段的錯(cuò)排會(huì)加劇這個(gè)問題。為了克服這個(gè)問題,需要使用抖動(dòng)處理技術(shù)。
對(duì)于每對(duì)重疊段,重疊是根據(jù)錯(cuò)排安排的。這種錯(cuò)排用于產(chǎn)生引入引出抖動(dòng)矩陣和對(duì)標(biāo)準(zhǔn)的第三個(gè)抖動(dòng)矩陣的偏移量。引入引出抖動(dòng)矩陣用于重疊區(qū)域。其中一個(gè)是淡出抖動(dòng)矩陣,另一個(gè)是淡入抖動(dòng)矩陣。產(chǎn)生這兩個(gè)抖動(dòng)矩陣,它們結(jié)合起來使重疊區(qū)域中維持恒定的點(diǎn)增益。
偏移量用于確定當(dāng)?shù)脒^程結(jié)束時(shí)應(yīng)采用的第三個(gè)抖動(dòng)矩陣的位置。第三個(gè)抖動(dòng)矩陣可看作為一個(gè)標(biāo)準(zhǔn)抖動(dòng)矩陣,其它兩個(gè)矩陣用于產(chǎn)生淡入淡出。在這兩個(gè)矩陣中,一個(gè)抖動(dòng)矩陣淡出,另一個(gè)淡入。
由于錯(cuò)排的產(chǎn)生,所以當(dāng)通過重疊段后,不能夠直接轉(zhuǎn)到標(biāo)準(zhǔn)抖動(dòng)矩陣的同一列上,而是要轉(zhuǎn)到標(biāo)準(zhǔn)抖動(dòng)矩陣的另一列上,具體轉(zhuǎn)到哪一列取決于錯(cuò)排方案。
因此最好采用至少3個(gè)的抖動(dòng)矩陣。標(biāo)準(zhǔn)抖動(dòng)矩陣對(duì)所有段都是相同的,它用于非重疊位。每個(gè)重疊段使用一對(duì)抖動(dòng)矩陣。一個(gè)矩陣從公共抖動(dòng)矩陣淡出,另一個(gè)矩陣向公共抖動(dòng)矩陣淡入。錯(cuò)排信息可以從存儲(chǔ)在每個(gè)打印頭段中的特征化向量獲得。特征化向量還可存儲(chǔ)被堵噴嘴的數(shù)據(jù)。使用由抖動(dòng)矩陣選擇圖選擇的抖動(dòng)矩陣連續(xù)色調(diào)CMYK層。抖動(dòng)后的連續(xù)色調(diào)層不僅加入了黑色層,還包含適當(dāng)?shù)腘etpage標(biāo)記數(shù)據(jù)。復(fù)合后的數(shù)據(jù)被發(fā)送給多段打印頭。在處理過程中還需要對(duì)數(shù)據(jù)流進(jìn)行適當(dāng)?shù)恼{(diào)整,以便在重疊段上產(chǎn)生平滑的漸變效果,同時(shí)根據(jù)打印頭特征化向量補(bǔ)償打印頭中被堵的噴嘴。抖動(dòng)矩陣選擇圖的分辨率應(yīng)與連續(xù)色調(diào)的分辨率相匹配。
通過每個(gè)打印頭段的低速串行總線可以查詢每個(gè)打印頭段的信息,查詢結(jié)果返回各個(gè)段的特征化向量。從多個(gè)打印頭芯片產(chǎn)生的特征化向量經(jīng)過合并后產(chǎn)生整個(gè)多段打印頭的噴嘴缺陷列表,這樣,在打印中打印引擎可以補(bǔ)償有缺陷的噴嘴。如果有缺陷的噴嘴的數(shù)量較少,那么經(jīng)補(bǔ)償后的打印結(jié)果與不含有缺陷的噴嘴的打印頭的打印效果沒有明顯差別。
圖1所示為適合于驅(qū)動(dòng)一種多段打印頭的打印引擎控制器所處理的數(shù)據(jù)流和執(zhí)行的功能示意圖。
圖2所示為打印引擎控制器與整個(gè)打印機(jī)系統(tǒng)體系結(jié)構(gòu)的關(guān)系示意圖。
圖3所示為打印引擎控制器的體系結(jié)構(gòu)示意圖。
圖4所示為與圖3中的半色調(diào)器/合成器單元(HCU)連接的外部接口示意圖。
圖5所示為圖4中的HCU的內(nèi)部電路示意圖。
圖6所示為圖5中的點(diǎn)合并器單元內(nèi)的過程的方框圖。
圖7所示為圖5中的點(diǎn)重組單元中的過程示意圖。
圖8所示為圖5中的行裝載器/格式單元(LLFU)中的過程示意圖。
圖9所示為在圖8中的LLFU中產(chǎn)生顏色數(shù)據(jù)的內(nèi)部電路示意圖。
圖10和11所示為圖9中的LLFU的組件示意圖。
圖12所示為一種多段打印頭中的段重疊方式示意圖。
圖13所示為一個(gè)多段抖動(dòng)矩陣中的一行數(shù)據(jù)示意圖。
由于Memjet打印頭的頁(yè)寬特點(diǎn),必須以恒定的速度打印每個(gè)頁(yè)面,以防止產(chǎn)生可見的瑕疵。這意味著不能改變打印速度來配合輸入數(shù)據(jù)速率。因此,這種打印方式需要把文檔光柵化和文檔打印分離開來,這樣才能以恒定速率向打印頭提供數(shù)據(jù)。必須首先把頁(yè)面內(nèi)容完全光柵化,然后才能進(jìn)行打印。為了滿足這個(gè)要求,可以在內(nèi)存中存儲(chǔ)每個(gè)光柵化的頁(yè)面圖像的壓縮數(shù)據(jù)。文檔光柵化和文檔打印的分離還允許在提前對(duì)簡(jiǎn)單頁(yè)面進(jìn)行光柵化,以便留出時(shí)間對(duì)比較復(fù)雜的頁(yè)面進(jìn)行光柵化。
由于連續(xù)色調(diào)圖像由隨機(jī)抖動(dòng)重構(gòu)而黑色文本和線圖形從點(diǎn)陣直接重構(gòu),所以壓縮后的頁(yè)面圖像格式都包含一個(gè)分離的前景雙層黑色層和一個(gè)背景連續(xù)色調(diào)層。在連續(xù)色調(diào)層被抖動(dòng)處理后,黑色層被復(fù)合到連續(xù)色調(diào)層上(雖然連續(xù)色調(diào)層也可能有黑色成分)。最后,可以把必要的Netpage標(biāo)記(使用紅外或黑色墨水打印)加入到頁(yè)面上,產(chǎn)生打印輸出。
RIP軟件/硬件對(duì)頁(yè)面描述進(jìn)行光柵化,并壓縮光柵化后的頁(yè)面圖像。
然后,每個(gè)壓縮的頁(yè)面圖像被保存到內(nèi)存中。頁(yè)面描述中的抖動(dòng)矩陣選擇區(qū)域被光柵化為一個(gè)連續(xù)色調(diào)分辨率雙層位圖,然后被無損地壓縮到可以忽略不計(jì)的大小,它構(gòu)成壓縮頁(yè)面圖像的一部分。打印頁(yè)面的紅外(IR)層還可以包含一定密度的Netpage標(biāo)記。
圖1所示為從計(jì)算機(jī)系統(tǒng)向打印頁(yè)面發(fā)送文檔的數(shù)據(jù)流。在11處接收到文檔,然后文檔被裝載到存儲(chǔ)緩沖器12中,在存儲(chǔ)緩沖器12中產(chǎn)生頁(yè)面布局,并增加所需的對(duì)象。從存儲(chǔ)緩沖器12中輸出的頁(yè)面在13中被光柵化,在14中被壓縮,然后被送到打印引擎控制器10中。打印引擎控制器10接收壓縮的頁(yè)面圖像,并保存在存儲(chǔ)緩沖器15中,然后,存儲(chǔ)緩沖器15中存儲(chǔ)的壓縮的頁(yè)面圖像被送到頁(yè)面擴(kuò)展器16中,并被還原為非壓縮的頁(yè)面圖像。在17中,對(duì)連續(xù)色調(diào)層施加所需的抖動(dòng)。在18中,黑色雙層圖像層被復(fù)合到連續(xù)色調(diào)層上,在19中,向復(fù)合后的圖像加入紅外標(biāo)記。然后,在20中,復(fù)合后的頁(yè)面數(shù)據(jù)被打印出來,形成頁(yè)面21。
在管道的第一個(gè)階段中,打印引擎/控制器擴(kuò)展以JPEG格式壓縮的連續(xù)色調(diào)CMYK層(見下文),擴(kuò)展以Group 4傳真格式壓縮的雙層抖動(dòng)矩陣選擇圖(見下文),并擴(kuò)展以Group 4傳真格式壓縮的雙層黑色層(見下文),所有擴(kuò)展工作都以并行方式完成。同時(shí),標(biāo)記編碼器從壓縮的頁(yè)面圖像編碼雙層IR標(biāo)記數(shù)據(jù)。在管道的第二個(gè)階段中,打印引擎/控制器使用根據(jù)抖動(dòng)矩陣選擇圖選擇的抖動(dòng)矩陣抖動(dòng)連續(xù)色調(diào)CMYK層,把雙層黑色層復(fù)合到所得到的雙層K層上,并向頁(yè)面增加IR層。在需要時(shí),打印引擎/控制器還在C、M、Y、K、或IR通道中的每個(gè)點(diǎn)的位置上產(chǎn)生定色劑層。在管道的最后一個(gè)階段中,打印引擎/控制器通過打印頭接口利用打印頭打印雙層CMYK+IR數(shù)據(jù)(見下文)。
圖2所示為打印引擎/控制器10與總體打印機(jī)系統(tǒng)體系的關(guān)系示意圖。打印機(jī)系統(tǒng)可能包含的部件有·一個(gè)打印引擎/控制器(PEC)一個(gè)PEC芯片10或芯片集負(fù)責(zé)接收壓縮的頁(yè)面數(shù)據(jù),并把數(shù)據(jù)存儲(chǔ)到存儲(chǔ)緩沖器24中,執(zhí)行頁(yè)面擴(kuò)展、黑色層復(fù)合,并把點(diǎn)數(shù)據(jù)發(fā)送給打印頭23。PEC芯片10或芯片集還可以與QA芯片25、26通信,從而提供一種獲得打印頭特性數(shù)據(jù)的方法,以保證最佳打印效果。PEC是本發(fā)明的主體。
·一個(gè)存儲(chǔ)緩沖器存儲(chǔ)緩沖器24用于存儲(chǔ)壓縮的頁(yè)面圖像,并且在打印特定頁(yè)面的過程中存儲(chǔ)臨時(shí)數(shù)據(jù)。存儲(chǔ)緩沖器的構(gòu)造和原理是現(xiàn)有技術(shù),在使用本發(fā)明的PEC時(shí),可以利用相關(guān)的各種標(biāo)準(zhǔn)的芯片和技術(shù)。
·一個(gè)主QA芯片主芯片25與可更換墨盒QA芯片26配合使用。QA單元的構(gòu)造和原理是一種現(xiàn)有技術(shù),在使用本發(fā)明的PEC時(shí),可以利用相關(guān)的各種現(xiàn)有QA過程。例如,在我們的同類美國(guó)專利申請(qǐng)中描述了一種QA芯片
QA芯片通信功能最好包含在打印引擎/控制器芯片的總體功能中,因?yàn)樗趫D像擴(kuò)展和驅(qū)動(dòng)物理打印頭方面有一定的作用。通過嵌入QA芯片的通信功能,可以保證打印頁(yè)面時(shí)不會(huì)發(fā)生缺墨現(xiàn)象。嵌入在打印頭組件中的QA最好使用一個(gè)鑒權(quán)芯片實(shí)現(xiàn)。由于它是主QA芯片,所以只包含鑒權(quán)密鑰,不包含用戶數(shù)據(jù)。但是,該芯片必須與墨盒的QA芯片匹配。墨盒中的QA芯片儲(chǔ)存保證最佳打印質(zhì)量所需的信息,它是使用一個(gè)鑒權(quán)芯片實(shí)現(xiàn)的。
打印引擎/控制器芯片最好帶有一個(gè)簡(jiǎn)單的微控制器CPU核心35以執(zhí)行下列功能·在打印頁(yè)面過程中通過串行接口36執(zhí)行QA芯片鑒權(quán)協(xié)議?!ぴ诖蛴∵^程中通過并口91控制步進(jìn)電機(jī)(步進(jìn)電機(jī)需要5KHz的處理頻率)·在打印過程中同步打印引擎/控制器芯片的各部分·提供與外部數(shù)據(jù)請(qǐng)求(編程寄存器等)的一種接口方法·提供與打印頭段低速數(shù)據(jù)請(qǐng)求(例如讀取向量屬性和寫入脈沖參數(shù))的一種接口方法·提供向外部DRAM寫入橫向和縱向打印標(biāo)記的一種方法圖3所示為打印引擎的體系結(jié)構(gòu)示意圖。打印機(jī)引擎的頁(yè)面擴(kuò)展和打印管道由一個(gè)高速串行接口27(例如標(biāo)準(zhǔn)的IEEE 1394接口)、一個(gè)標(biāo)準(zhǔn)的JPEG解碼器28、一個(gè)標(biāo)準(zhǔn)的Group 4 Fax解碼器、一個(gè)定制的半色調(diào)器/合成器單元29、一個(gè)定制的標(biāo)記編碼器30、一個(gè)行裝載器/格式器單元31、以及一個(gè)連接打印頭33的定制接口32構(gòu)成。解碼器28,88和編碼器30向半色調(diào)器/合成器單元29緩沖。標(biāo)記編碼器30根據(jù)協(xié)議向頁(yè)面增加紅外標(biāo)記或頁(yè)面標(biāo)記,協(xié)議與頁(yè)面的使用有關(guān)。討論標(biāo)記的內(nèi)容已經(jīng)超出了本發(fā)明的范圍。
打印引擎以雙緩沖方式工作。一個(gè)頁(yè)面從高速串行接口27通過DRAM接口89和數(shù)據(jù)總線90被裝載到DRAM 34中,同時(shí),已裝載的前一個(gè)頁(yè)面被從DRAM 34讀出,并被通過打印引擎管道傳送。當(dāng)完成頁(yè)面的打印時(shí),剛剛裝入的頁(yè)面成為被打印頁(yè)面,同時(shí)通過高速串行接口27向DRAM34裝入一個(gè)新頁(yè)面。在第一個(gè)階段,管道擴(kuò)展所有JPEG壓縮的連續(xù)色調(diào)(CMYK)層,并擴(kuò)展所有兩個(gè)Group 4傳真壓縮的雙層數(shù)據(jù)流。上述兩個(gè)數(shù)據(jù)流是一個(gè)黑色層(當(dāng)然,打印引擎/控制器不知道是否為彩色,而且該雙層層可以定向到任何輸出墨水)以及一個(gè)蒙罩(該蒙罩用于為連續(xù)色調(diào)的抖動(dòng)選擇抖動(dòng)點(diǎn)陣,見下文的說明)。在第二個(gè)階段,上述數(shù)據(jù)被并行地加入標(biāo)記,以便隨后以紅外(IR)或黑色墨水渲染。最后,在第三個(gè)階段中,對(duì)連續(xù)色調(diào)層進(jìn)行抖動(dòng)處理,并把位置標(biāo)記和雙層點(diǎn)層復(fù)合到抖動(dòng)后的雙層層上。然后,數(shù)據(jù)流被很好地調(diào)整,以便在打印頭中的重合段之間產(chǎn)生平滑的漸變效果,同時(shí)補(bǔ)償打印頭中的被堵噴嘴。在此階段最多可以生成6個(gè)通道的雙層數(shù)據(jù)。但是需要注意,并不是全部6個(gè)通道都出現(xiàn)在打印頭上。例如,打印頭可能只是CMY的,此時(shí)K被推入CMY通道,而IR被忽略。另外,如果沒有IR墨水(或者出于測(cè)試目的),位置標(biāo)記也可以被打印到K中。所得到的雙層CMYK-IR點(diǎn)數(shù)據(jù)被緩沖并格式化,然后被通過一套行緩存器(見下文的說明)輸出到打印頭上。大多數(shù)行緩存器可以在芯片DRAM34中實(shí)現(xiàn)。在最后一個(gè)階段中,通過打印頭接口32打印上述6個(gè)通道的雙層點(diǎn)數(shù)據(jù)。
圖4所示的半色調(diào)器/合成器單元(HCU)29把半色調(diào)和連續(xù)色調(diào)(通常是CMYK)層合并為一個(gè)雙層,并把Spot 1雙層復(fù)合到適當(dāng)?shù)陌肷{(diào)連續(xù)色調(diào)層上。如果打印機(jī)中沒有K墨水,那么HCU 29可以把K適當(dāng)?shù)赜成錇镃MY點(diǎn)。它還根據(jù)抖動(dòng)矩陣選擇圖中的相應(yīng)數(shù)值逐點(diǎn)選擇抖動(dòng)矩陣。HCU 29的輸入是(從JPEG解碼器單元)通過緩存器37輸入的一個(gè)擴(kuò)展的連續(xù)色調(diào)調(diào)層,通過緩存器38輸入的一個(gè)擴(kuò)展的雙層Spot 1層,通過緩存器39輸入的一個(gè)擴(kuò)展的抖動(dòng)矩陣選擇位圖(通常與連續(xù)色調(diào)層的分辨率一樣),以及通過緩存器40輸入的全點(diǎn)分辨率的標(biāo)記數(shù)據(jù)。HCU 29最多可以使用從外部DRAM34讀取的兩個(gè)抖動(dòng)矩陣。由HCU 29向行裝載器/格式單元(LLFU)41的輸出是一套打印機(jī)分辨率雙層圖像行,最多可以達(dá)到6個(gè)顏色平面。連續(xù)色調(diào)層一般是CMYK或CMY,而雙層Spot 1層是K。
圖5中更詳細(xì)地顯示了HCU單元。在啟動(dòng)后,HCU不斷運(yùn)行,直到檢測(cè)到一個(gè)頁(yè)面結(jié)束條件或通過其控制寄存器被明確停止。HCU的第一個(gè)任務(wù)是把從緩存器平面(例如42)中接收并存儲(chǔ)到各個(gè)比例單元(例如比例單元43)中的數(shù)據(jù)在水平和垂直方向上同時(shí)縮放為打印機(jī)的分辨率。
比例單元提供了在水平和垂直方向上把連續(xù)色調(diào)數(shù)據(jù)或雙層數(shù)據(jù)縮放為打印機(jī)分辨率的一種方法??s放是通過把上述兩個(gè)方向上的數(shù)據(jù)值復(fù)制為該值的整數(shù)倍而實(shí)現(xiàn)的??s放數(shù)據(jù)的處理過程是一種現(xiàn)有技術(shù)。
頁(yè)邊單元57向比例單元43提供兩個(gè)控制位前進(jìn)點(diǎn)和前進(jìn)行。前進(jìn)點(diǎn)位允許狀態(tài)機(jī)為同一個(gè)點(diǎn)數(shù)據(jù)生成多個(gè)實(shí)例(用于頁(yè)邊和為打印頭中的重疊段創(chuàng)建點(diǎn)數(shù)據(jù))。前進(jìn)行位允許狀態(tài)機(jī)控制特定點(diǎn)行的結(jié)束時(shí)間,從而根據(jù)打印機(jī)的頁(yè)邊;截?cái)鄶?shù)據(jù)。它還使比例單元不必執(zhí)行特殊的行結(jié)束邏輯。比例單元的輸入數(shù)據(jù)是一個(gè)整行緩存器。該行被重復(fù)使用比例因子次,以便通過行復(fù)制實(shí)現(xiàn)垂直方向的縮放,在每一行中,每個(gè)值被重復(fù)使用比例因子次,以便通過像素復(fù)制實(shí)現(xiàn)水平方向的縮放。當(dāng)輸入行被重復(fù)使用比例因子次時(shí)(前進(jìn)行位已經(jīng)被設(shè)置為比例因子次),地址的輸入緩存選擇位被切換(雙緩沖)??s放單元的邏輯對(duì)于8位和1位的情況都是相同的,因?yàn)楸壤龁卧划a(chǎn)生地址。
由于每個(gè)連續(xù)色調(diào)層可以使用不同的分辨率,所以每個(gè)連續(xù)色調(diào)層被單獨(dú)縮放。緩存器45中的雙層Spot 1層和緩存器46中的抖動(dòng)矩陣選擇層也需要縮放。由于緩存器47中的雙層標(biāo)記數(shù)據(jù)是以正確的分辨率建立的,所以不需要縮放。縮放后的抖動(dòng)矩陣選擇位被抖動(dòng)矩陣存取單元48用于從兩個(gè)抖動(dòng)矩陣中選擇一個(gè)8位值。該8位值被輸出到4個(gè)比較器中44、49-51,在這些比較器中,它們與特定的8位連續(xù)色調(diào)值相比較。實(shí)際抖動(dòng)矩陣的產(chǎn)生與打印頭的結(jié)構(gòu)有關(guān),而產(chǎn)生抖動(dòng)矩陣的過程是一種現(xiàn)有技術(shù)。如果連續(xù)色調(diào)值大于或等于上述8位抖動(dòng)矩陣值,那么就輸出1,否則輸出0。在52-56中,這些位與從頁(yè)邊單元57而來的inPage位(指示特定點(diǎn)是否在頁(yè)面的可打印區(qū)域內(nèi))進(jìn)行“與(AND)”操作。HCU中的最后一個(gè)步驟是合成步驟。對(duì)于6個(gè)輸出層中的每一層,都有一個(gè)單點(diǎn)合并器單元(例如單元58),每個(gè)單點(diǎn)合并器單元使用6個(gè)輸入值。每個(gè)點(diǎn)合并器單元的輸出位是上述輸入位的合并值。這樣,點(diǎn)顏色就能夠被放入到任何輸出顏色平面中(包括用于測(cè)試的紅外顏色平面),黑色被合并到青色中、洋紅色和紅色(CMY)中(如果打印頭中沒有黑色墨水),而標(biāo)記點(diǎn)數(shù)據(jù)被放入到一個(gè)可見平面中。定色劑顏色層也可以立即生成。點(diǎn)再生單元(DRU)59負(fù)責(zé)把為特定顏色層產(chǎn)生的點(diǎn)流組織到32位數(shù)值中,這樣,輸出內(nèi)容被按段排列,而在每一段中,輸出內(nèi)容被按點(diǎn)排列。由于疊加段的點(diǎn)不是以段順序生成的,所以還需要進(jìn)行稍許調(diào)整。
頁(yè)邊單元57向比例單元43提供兩個(gè)控制位前進(jìn)點(diǎn)和前進(jìn)行。前進(jìn)點(diǎn)位允許狀態(tài)機(jī)為同一個(gè)點(diǎn)數(shù)據(jù)生成多個(gè)實(shí)例(用于頁(yè)邊和為打印頭中的重疊段創(chuàng)建點(diǎn)數(shù)據(jù))。前進(jìn)行位允許狀態(tài)機(jī)控制特定點(diǎn)行的結(jié)束時(shí)間,從而根據(jù)打印機(jī)的頁(yè)邊;截?cái)鄶?shù)據(jù)。它還使比例單元不必執(zhí)行特殊的行結(jié)束邏輯。
比較器單元帶有一個(gè)簡(jiǎn)單的8位“大于”比較器。該比較器用于確定8位連續(xù)色調(diào)值是否大于或等于8位抖動(dòng)矩陣值。因此,比較器單元使用兩個(gè)8位輸入,并產(chǎn)生一個(gè)1位長(zhǎng)度的輸出。
圖6中更詳細(xì)地顯示了點(diǎn)合并器單元。點(diǎn)合并器單元提供了一種把雙層抖動(dòng)數(shù)據(jù)、Spot 1顏色以及標(biāo)記數(shù)據(jù)與實(shí)際打印頭的輸出墨水映射的方法。每個(gè)點(diǎn)合并器單元使用6個(gè)1位輸入,產(chǎn)生一個(gè)1位長(zhǎng)度的輸出,該輸出值代表顏色平面的輸出點(diǎn)。在60處的輸出位是輸入位的合并值。這樣,點(diǎn)顏色可以被放入到任何輸出顏色平面中(包括用于測(cè)試的紅外顏色平面),黑色被合并到青色中、洋紅色和紅色(CMY)中(如果打印頭中沒有黑色墨水),而標(biāo)記點(diǎn)數(shù)據(jù)被放入到一個(gè)可見平面中。定色劑顏色層可以通過簡(jiǎn)單地合并所有輸入位生成。點(diǎn)合并器包含一個(gè)6位ColorMask寄存器61,該寄存器中的值作為6個(gè)輸出位的掩碼。每個(gè)輸出位與相應(yīng)的ColorMask寄存器位進(jìn)行“與(AND)”操作,然后,把所得到的6位進(jìn)行“或(OR)”操作,形成最終的輸出位。
圖7中所示為點(diǎn)再生單元(DRU),該單元負(fù)責(zé)為特定顏色平面把生成的位流組織到為32位數(shù)值中,這樣,輸出內(nèi)容被按段排列,而在每一段中,輸出內(nèi)容被按點(diǎn)排列。由于疊加段的點(diǎn)不是以段順序生成的,所以還需要進(jìn)行稍許調(diào)整。DRU帶有一個(gè)32位移位寄存器,一個(gè)普通的32位寄存器、以及一個(gè)普通的16位寄存器。一個(gè)5位計(jì)數(shù)器跟蹤所處理的位數(shù)。抖動(dòng)矩陣存取單元(DMAU)發(fā)出的點(diǎn)前進(jìn)信號(hào)被用于指令DRU輸出具體位值。
圖7中的寄存器(A)62每個(gè)周期移位一次。它包含32個(gè)由點(diǎn)合成器單元(DMU)最近產(chǎn)生的點(diǎn)。每過32個(gè)周期,寄存器A 62中的全部32位值被復(fù)制到寄存器B 63中,復(fù)制動(dòng)作由DRU狀態(tài)機(jī)64通過一個(gè)簡(jiǎn)單的5位計(jì)數(shù)器產(chǎn)生的WriteEnable信號(hào)觸發(fā)。在WriteEnable脈沖的同時(shí),寄存器B 63中的16位奇位(1,3,5,7等)被復(fù)制到寄存器C 65中。然后,一個(gè)32位多路器根據(jù)狀態(tài)機(jī)中的2位在下列3個(gè)輸出中做出選擇·寄存器B中的全部32位·由寄存器A中的16個(gè)偶數(shù)位(0,2,4,6等)和寄存器B中的16個(gè)偶數(shù)位構(gòu)成的一個(gè)32位值。寄存器A的16個(gè)偶數(shù)位構(gòu)成該32位值的0-15位,而寄存器B中的16個(gè)偶數(shù)位構(gòu)成該32位值的16-31位?!び杉拇嫫鰾中的16個(gè)奇數(shù)位(1,3,5,7等)和寄存器C中的16位構(gòu)成的一個(gè)32位數(shù)值。寄存器C中的位構(gòu)成該32位值的0-15位,而寄存器B中的16個(gè)奇數(shù)位構(gòu)成該32位值的16-31位。
DRU的狀態(tài)機(jī)如表1所示。狀態(tài)機(jī)的起始狀態(tài)為0,每隔32個(gè)周期改變狀態(tài)。在一個(gè)32周期過程中,一個(gè)no重疊位為該32周期累計(jì)所有dot advance位的“與(AND)”值(周期0的no重疊=dot advance,周期1-31的no重疊=no重疊AND dot advance)。表1.DRU的狀態(tài)機(jī)
圖5中的頁(yè)邊單元(MU)57負(fù)責(zé)根據(jù)當(dāng)前頁(yè)的頁(yè)邊距把從抖動(dòng)矩陣存取單元(DMAU)獲得的前進(jìn)點(diǎn)和前進(jìn)行信號(hào)轉(zhuǎn)化為一般控制信號(hào)。它還負(fù)責(zé)生成頁(yè)面端條件。MU的計(jì)數(shù)器保存著當(dāng)前頁(yè)的點(diǎn)和行的數(shù)值。在一頁(yè)開始時(shí),這兩個(gè)值都為0。每次當(dāng)MU從DMAU接收一個(gè)點(diǎn)提前信號(hào)時(shí),點(diǎn)計(jì)數(shù)器加1。當(dāng)MU從DMAU接收到行提前信號(hào)時(shí),行計(jì)數(shù)器加1,而點(diǎn)計(jì)數(shù)器被置0。在每個(gè)周期內(nèi),把當(dāng)前行和點(diǎn)值與頁(yè)邊值進(jìn)行比較,然后根據(jù)這些頁(yè)邊值輸出點(diǎn)提前、行提前,和頁(yè)邊內(nèi)信號(hào)。DMAU只包含HCU的實(shí)際存儲(chǔ)要求。
圖8中所示為行裝載器/格式單元(LLFU)。LLFU從HCU接收點(diǎn)信息,為特定的打印行把點(diǎn)裝載到適當(dāng)?shù)木彺嫫髦?某些在芯片中,某些在外部DRAM34中),并把這些點(diǎn)數(shù)據(jù)格式化為打印頭所需的順序。圖9為一個(gè)LLFU的外部接口的高級(jí)模塊圖。向LLFU的輸入67是一組32位字和一個(gè)DataValid位,這些數(shù)據(jù)都由HCU產(chǎn)生。輸出68是一組90位的值,代表6種顏色的15個(gè)打印頭段的最大值。并不是所有輸出位都有效,這與打印頭中實(shí)際使用的顏色數(shù)有關(guān)。
本文中所述的打印頭的噴嘴部分由兩排噴嘴構(gòu)成,也就是說,同一種顏色的奇數(shù)和偶數(shù)點(diǎn)在不同的行上打印,偶數(shù)點(diǎn)用于行L,而奇數(shù)點(diǎn)用于行L-2。另外,在一個(gè)顏色的點(diǎn)與另一種顏色的點(diǎn)之間有若干行。因?yàn)镠CU同時(shí)計(jì)算相同點(diǎn)位置的6個(gè)顏色平面,所以必須為每個(gè)顏色平面延遲點(diǎn)數(shù)據(jù),直到同一個(gè)點(diǎn)定位到相應(yīng)的彩色噴嘴上。
每個(gè)緩沖行的大小取決于打印頭的寬度。由于每個(gè)打印引擎/控制器為多達(dá)15個(gè)打印頭段產(chǎn)生點(diǎn)數(shù)據(jù),所以單個(gè)奇數(shù)緩沖行或偶數(shù)緩沖行由15套640點(diǎn)組成,總數(shù)據(jù)量為9600位(1200字節(jié))。例如,color 6奇數(shù)點(diǎn)所需的緩存器為45KB。
圖10是顏色N OESplit(見圖9的Oesplit 70)的模塊圖,圖9中的每個(gè)緩存器E、F、71、72的模塊圖可以在圖10和圖11中找到。緩存器EF是一種雙緩存機(jī)制,用于向圖3中顯示的打印頭接口(PHI)32傳輸數(shù)據(jù)。因此,緩存器E和F具有相同的結(jié)構(gòu)。在點(diǎn)行的處理過程中,當(dāng)上述緩存器E、F中一個(gè)用于寫數(shù)據(jù)時(shí),另一個(gè)用于讀數(shù)據(jù)。這兩個(gè)緩存器在接收到從PHI發(fā)來的行同步信號(hào)時(shí)進(jìn)行邏輯交換。緩存器E和F都由6個(gè)子緩存器構(gòu)成,一個(gè)子緩存器對(duì)應(yīng)一個(gè)顏色,如圖11所示。顏色1的子緩存器編號(hào)為73。每個(gè)子緩存器的容量是2400B,足以儲(chǔ)存15個(gè)1280點(diǎn)/段的段。由于內(nèi)存是以32位方式讀寫的,所以每個(gè)子緩存器有600個(gè)地址(需要10個(gè)地址位)。在每個(gè)顏色的子緩存器中,所有偶數(shù)點(diǎn)都被放在奇數(shù)點(diǎn)的前面。如果有未用的空間(用于少于15個(gè)段的打印),那么未用空間應(yīng)位于每個(gè)顏色的子緩存器的末端。每個(gè)子緩存器實(shí)際使用的存儲(chǔ)量與打印引擎/控制器實(shí)際編址的端數(shù)量直接相關(guān)。對(duì)于一個(gè)15段打印頭,由1200B個(gè)偶數(shù)點(diǎn),后跟1200B個(gè)奇數(shù)點(diǎn),沒有未用空間。所使用的子緩存器的數(shù)量與打印頭所用的顏色數(shù)直接相關(guān)。所支持的最多顏色數(shù)為6。
每個(gè)緩存器E、F的尋址編碼電路可以保證在一個(gè)特定周期中對(duì)所有6個(gè)子緩存器進(jìn)行一次32位訪問——可以從所有6個(gè)緩存器讀取數(shù)據(jù),也可以向其中的某個(gè)緩存器寫入數(shù)據(jù)。從每個(gè)顏色緩存器中讀取的32位中,只有一位被選擇用來構(gòu)成6個(gè)輸出位的輸出。這個(gè)過程在圖11中示出。地址的15位中,10位地址用于選擇32位數(shù)據(jù),5位地址用于從所選的32位數(shù)據(jù)中選擇1位,從而獲得要讀取的1位數(shù)據(jù)。每個(gè)子緩存器73-78都有自己的WriteEnable行,因此,一個(gè)32位值可以在給定周期內(nèi)寫入特定的顏色緩存器。這些WriteEnable行是通過上述WriteEnable輸入與ColorSelect的解碼形式的“與(AND)”操作實(shí)現(xiàn)的。行79的DataIn的32位是共享的,因?yàn)閷?shí)際上只有一個(gè)緩沖器接受數(shù)據(jù)。
用于從緩存器E和F中讀取數(shù)據(jù)的地址是直接生成的。每個(gè)周期產(chǎn)生一個(gè)用于為特定段取上述6位數(shù)值(1位/顏色)的位地址。通過向當(dāng)前位地址上加640,可以轉(zhuǎn)到下一個(gè)段中的對(duì)應(yīng)點(diǎn)。加640而不是1280是因?yàn)?,在緩存器中奇?shù)和偶數(shù)點(diǎn)是分離的。對(duì)上述動(dòng)作重復(fù)NumSegments次,可以取回代表偶數(shù)點(diǎn)的數(shù)據(jù),然后把這些位傳送給PHI。當(dāng)NumSegments=15時(shí),位數(shù)為90(15×6位)。然后,為奇數(shù)點(diǎn)重復(fù)上述過程。因此,完整的偶數(shù)/奇數(shù)位生成過程需要重復(fù)動(dòng)作640次,每次需對(duì)起始地址加1。采取這種方法,所有點(diǎn)數(shù)據(jù)都在640×2×NumSegments個(gè)周期中被以打印頭所需要的順序傳遞到PHI中。當(dāng)NumSegments=15時(shí),要經(jīng)歷19200個(gè)周期。需要注意的是,不管在打印頭中實(shí)際使用的顏色數(shù)是多少,在給定讀取周期中,都會(huì)產(chǎn)生6位數(shù)值(每位用于1個(gè)顏色緩存器)。
另外,我們?yōu)閷懭氲綀D9中的90位Transfer寄存器90產(chǎn)生TWriteEnable控制信號(hào)。由于LLFU在PHI之前開始,我們必須從PHI傳送Advance脈沖前的第一個(gè)值。我們還必須為第一個(gè)Advance脈沖產(chǎn)生下一個(gè)值。方法是在NumSegments周期后把第一個(gè)值傳送給Transfer寄存器,然后停止NumSegments個(gè)周期,等待Advance脈沖啟動(dòng)下一個(gè)NumSegments周期組。當(dāng)?shù)谝粋€(gè)Advance脈沖到達(dá)時(shí),LLFU將與PHI同步。
單個(gè)點(diǎn)行的讀取過程在下面的偽代碼中說明<pre listing-type="program-listing"><![CDATA[DoneFirst=FALSEWantToXfer=FALSEFor DotInSegment0=0 to 1279 If(DotInSegment0bit0==0) CurrAdr=DotInSegment0(high bits)(puts in range 0 to639) EndIf XfersRemaining=NumSegments Do WantToXfer=(XfersRemaining==0) TWriteEnable=(WantToXfer AND NOT DoneFirst)ORPHIADVANCE DoneFirst=DoneFirst OR TWri teEnable Stall=WantToXfer AND(NOT TWriteEnable) SWriteEnable=NOT(Stall) If(SWriteEnable) Shift Register=Fetch 6 bits fromEFSense[ReadBuffer]CurrAdr CurrAdr=CurrAdr+640 XfersRemaining=XfersRemaining-1 EndIf Until(TWriteEnable)EndFor Wait until BufferEF Write process has finished EFSense=NOT(EFSense)]]></pre>當(dāng)讀進(jìn)程從E或F向PHI傳送數(shù)據(jù)時(shí),一個(gè)寫進(jìn)程正在準(zhǔn)備另一個(gè)緩存器中的下一個(gè)點(diǎn)行。
被寫入E或F的數(shù)據(jù)是由HCU產(chǎn)生的顏色1數(shù)據(jù)以及從緩存器D(由DRAM提供數(shù)據(jù))提供的color 2-6數(shù)據(jù)。每當(dāng)HCU的OutputValid被置為真時(shí),顏色1數(shù)據(jù)就被寫入EF中;在其它時(shí)間,color 2-6數(shù)據(jù)被從寄存器C中寫入EF。
圖9中的緩存器OE181是一個(gè)32位寄存器,它用于存儲(chǔ)某個(gè)HCU為顏色1產(chǎn)生的連續(xù)32個(gè)點(diǎn)的集合。雖然點(diǎn)在頁(yè)面上是連續(xù)的,但是奇數(shù)和偶數(shù)點(diǎn)不是同時(shí)打印的。
緩存器AB 82采用一種雙緩存機(jī)制,它為顏色1把奇數(shù)點(diǎn)數(shù)據(jù)延遲2個(gè)點(diǎn)行。因此,緩存器A和B的結(jié)構(gòu)是相同的。在點(diǎn)行的處理過程中,一個(gè)點(diǎn)行被從緩存器中讀取,其中一個(gè)點(diǎn)行被讀取,然后被寫入。當(dāng)整個(gè)點(diǎn)行處理完成后,這兩個(gè)緩存器互換邏輯。一個(gè)1位標(biāo)志ABSense確定從哪個(gè)緩存器中讀取以及向哪個(gè)緩存器寫入。
每當(dāng)輸出有效控制標(biāo)志被設(shè)置為真時(shí)(在第一個(gè)標(biāo)志發(fā)送后,每隔32個(gè)周期設(shè)置一次),HCU提供顏色1的32位數(shù)據(jù)。這32位數(shù)據(jù)為一個(gè)點(diǎn)行定義了一個(gè)連續(xù)的32點(diǎn)集,其中有16個(gè)偶數(shù)點(diǎn)(位0、2、4等),16個(gè)奇數(shù)點(diǎn)(位1、3、5等)。輸出有效控制器標(biāo)志作為OE1寄存器81的WriteEnable控制標(biāo)記。我們每隔2個(gè)OutputValid信號(hào)處理一次HCU數(shù)據(jù)。HCU顏色1的16個(gè)偶數(shù)位被與寄存器OE1的16個(gè)偶數(shù)位合并,產(chǎn)生32位的偶數(shù)顏色1數(shù)據(jù)。同樣,HCU的16個(gè)奇數(shù)位被與寄存器OE1的16個(gè)奇數(shù)位合并,產(chǎn)生32位的奇數(shù)顏色1數(shù)據(jù)。在收到第一個(gè)OutputValid信號(hào)時(shí),我們讀取緩存器AB的數(shù)據(jù),把奇數(shù)數(shù)據(jù)傳送給緩存器EF中的顏色1,如圖11中的73。在收到第二個(gè)OutputValid信號(hào)時(shí),我們把奇數(shù)數(shù)據(jù)的32位寫入上述緩存器AB中,然后把偶數(shù)數(shù)據(jù)的32位寫到緩存器EF的顏色1中。
每當(dāng)OutputValid被設(shè)置為真時(shí),HCU就為每個(gè)顏色平面提供32位數(shù)據(jù)。這種動(dòng)作每隔32個(gè)周期出現(xiàn)一次(不包括在特定啟動(dòng)時(shí)間內(nèi))。這32位數(shù)據(jù)為一個(gè)點(diǎn)行定義了一個(gè)連續(xù)的32點(diǎn),其中包含16個(gè)偶數(shù)點(diǎn)(位0、2、4等)和16個(gè)奇數(shù)點(diǎn)(位1、3、5等)。
雖然緩存器OE1(圖10中的83)用于為顏色1存儲(chǔ)一個(gè)32位值,但是緩存器OE2到OE6分別用于為color 2到color 6存儲(chǔ)一個(gè)32位值。正如顏色1的點(diǎn)每隔64個(gè)周期(每隔兩個(gè)OutputValid標(biāo)志)被分為代表顏色1的奇數(shù)點(diǎn)的32位數(shù)據(jù)和代表顏色1的偶數(shù)點(diǎn)的32位數(shù)據(jù)一樣,其它顏色平面的點(diǎn)也被劃分為偶數(shù)和奇數(shù)點(diǎn)。
但是,點(diǎn)數(shù)據(jù)被延遲若干行,然后被通過緩存器CD(圖9中的84)輸出到DRAM中,而不是直接寫入緩存器EF中。當(dāng)特定行的點(diǎn)被寫入DRAM時(shí),前一行的點(diǎn)被從DRAM中讀出,并被寫入緩存器EF(71,72)。這個(gè)過程必須與把顏色1寫入緩存器EF的過程交錯(cuò)進(jìn)行。
每次從HCU收到一個(gè)OutputValid標(biāo)志時(shí)(如圖10中的85行),顏色N的32位數(shù)據(jù)就被寫入緩存器OEN 83。每次收到第二個(gè)OutputValid標(biāo)志時(shí),合并后的64位數(shù)據(jù)就被寫入顏色緩存器N 86。對(duì)于顏色平面2-6,這個(gè)過程是并行進(jìn)行的。顏色緩存區(qū)N 86含有40套64位數(shù)據(jù)(320B),以便為兩個(gè)完整的段存儲(chǔ)點(diǎn)數(shù)據(jù)。這樣,前一個(gè)段的數(shù)據(jù)(包括奇數(shù)和偶數(shù)點(diǎn))在一個(gè)整段生成時(shí)間(20×64=1280周期)內(nèi)被輸出到DRAM中。寫入操作的地址是直接生成的。行87的ColorNWriteEnable信號(hào)每隔兩個(gè)OutputValid標(biāo)志產(chǎn)生一次。地址從0開始,每隔兩個(gè)OutputValid標(biāo)記增加1,直到39。當(dāng)?shù)刂返竭_(dá)39時(shí),它將被重置為0,而不是步進(jìn)到40,這樣可以實(shí)現(xiàn)雙緩沖方案。只要在OutputValid標(biāo)記出現(xiàn)之間不發(fā)生讀操作,上述工作就一直進(jìn)行,并且前一個(gè)段的數(shù)據(jù)可以在產(chǎn)生單個(gè)段的數(shù)據(jù)的時(shí)間內(nèi)被寫入到DRAM中。下面的偽代碼說明了上述過程<pre listing-type="program-listing"><![CDATA[ adr=0 firstEncountered=0 While(NOT AdvanceLine) If(HCU_OutputValid)AND(firstEncountered)) ColorNWriteEnable=TRUE ColorNAdr=adr If(adr==39) adr=0 Else adr=adr+1 EndIf Else ColorNWriteEnable=FALSE EndIf If(HCU_OutputValid) firstEncountered=NOT(firstEncountered) EndIf EndWhile]]></pre>讀操作的地址生成過程比較復(fù)雜一些,因?yàn)樗cDRAM讀寫(包括讀和寫)、緩存器EF的讀寫、以及顏色1的生成時(shí)間有關(guān)。讀操作的地址生成過程在下面進(jìn)一步說明。
緩存器C、D、E、F和顏色N的地址生成都與DRAM讀寫的時(shí)間有關(guān),并且不能影響與緩存器E和F有關(guān)的顏色1的處理。地址生成的基本原理是,把顏色N(奇數(shù)點(diǎn)或偶數(shù)點(diǎn))的一個(gè)段的數(shù)據(jù)從DRAM中通過緩存器CD傳送給緩存器EF,當(dāng)從DRAM中讀出數(shù)據(jù)時(shí),根據(jù)ColorBufferN中的值替換上述點(diǎn),同樣,對(duì)奇數(shù)和偶數(shù)點(diǎn)中的每種顏色執(zhí)行相同的過程。當(dāng)累積了一個(gè)完整段的所有點(diǎn)數(shù)據(jù)后(需要20個(gè)64周期),重新開始上述過程。當(dāng)把給定行的所有段的數(shù)據(jù)在寄存器與DRAMA之間傳輸完成后,把該顏色的DRAM的當(dāng)前地址步進(jìn)1次,直到把該顏色的點(diǎn)行的特定數(shù)據(jù)從DRAM中讀回。在本處理方法中,DRAM與一種FIFO非常相似。最終的結(jié)果是,顏色N(偶數(shù)或奇數(shù)點(diǎn))被從DRAM中讀入緩存器D,同時(shí)顏色N(前述偶數(shù)或奇數(shù)點(diǎn))被復(fù)制到緩存器C中。向緩存器C復(fù)制數(shù)據(jù)需要20或21個(gè)周期,具體周期數(shù)取決于OutputValid標(biāo)志是否在20次傳輸過程中出現(xiàn)。當(dāng)上述兩個(gè)操作都完成后(通常,DRAM存取是一種較慢的工作),過程的第二部分開始。也就是說,把緩存器C中的數(shù)據(jù)寫入到DRAM中(寫到上述讀操作的同一個(gè)地點(diǎn)),并且把緩存器D中的數(shù)據(jù)復(fù)制到緩存器EF中(同樣,由于正在傳輸顏色1的數(shù)據(jù),所以當(dāng)OutputValid標(biāo)志出現(xiàn)時(shí),不會(huì)傳輸顏色N的數(shù)據(jù))。當(dāng)上述兩個(gè)操作完成后,為顏色N(奇數(shù)或偶數(shù)點(diǎn))執(zhí)行相同的過程,然后為每個(gè)剩余的顏色也執(zhí)行相同的過程。上述的完整雙過程被重復(fù)執(zhí)行10次。然后,為下一行的處理更新DRAM中存儲(chǔ)的每個(gè)當(dāng)前行的地址。
上述的地址生成過程可以視為NumSegments需要10個(gè)(20×32位讀操作+20×32位寫操作)。下面的偽代碼可以說明這種地址生成過程<pre listing-type="program-listing"><![CDATA[EFStartAdr=0Do NumSegments times For CurrColor=0 to MaxHal fColors DRAMStartAddress=ColorCurrAdr[CurrColor] While reading 640 bits from DRAMStartAddress into D(>=20 cycles) ColorNAdr=0 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 writ ing 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== NumHal fColors))EFStartAdr=EFAdr+1 Else EFAdr=EFAdr+1 EndIf ColorNAdr=ColorNAdr+1 EndIf EndWhile EndWhile-wait until write has finished If(DRAMStartAddress==DRAMMaxVal) ColorCurrAdr[currColor]=round up DRAMStartAddress tonext 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 EndIfEndForEndDoWait until next Advance signal from PHI]]></pre>需要注意的是,MaxHalfColors寄存器應(yīng)小于需要對(duì)奇數(shù)顏色和偶數(shù)顏色單獨(dú)處理的顏色(但不包括顏色1)數(shù)。例如,對(duì)于一個(gè)標(biāo)準(zhǔn)的6顏色打印系統(tǒng),需要處理的總顏色數(shù)(包括奇數(shù)顏色和偶數(shù)顏色)為10(colors 2-6的奇數(shù)和偶數(shù)色),所以應(yīng)該把MaxHalfColors設(shè)置為9。
LLFU需要2個(gè)NumSegments周期來為PHI準(zhǔn)備數(shù)據(jù)的第一個(gè)180位。因此,必須在已經(jīng)LLFU啟動(dòng)2個(gè)NumSegments周期的時(shí)間后才能啟動(dòng)打印頭和開始第一個(gè)LineSync脈沖。這樣Transfer的初始值才有效,也才能向Transfer寄存器中裝入下90位數(shù)據(jù)。
打印頭接口(PHI)是處理器向打印頭裝載要打印點(diǎn)的途徑,它控制著實(shí)際的點(diǎn)打印過程。它從LLFU接收數(shù)據(jù),并把數(shù)據(jù)輸出給打印頭。必須能處理各種打印頭寬度和格式。PHI的內(nèi)部結(jié)構(gòu)應(yīng)支持6種打印顏色、每次傳輸8個(gè)段、以及2個(gè)段組。這樣才能滿足能夠以全頁(yè)寬打印A4/信封幅面的15段(8.5英寸)打印機(jī)的要求。
組合打印頭的特征化向量可以從串行接口讀回。特征化向量可包含被堵打印嘴的信息以及相對(duì)段的錯(cuò)排數(shù)據(jù)。通過每個(gè)打印頭段的低速串行總線可以查詢每個(gè)打印頭段的信息,查詢結(jié)果返回各個(gè)段的特征化向量。從多個(gè)打印頭芯片產(chǎn)生的特征化向量經(jīng)過合并后產(chǎn)生整個(gè)多段打印頭的噴嘴缺陷列表,這樣,在打印中打印引擎可以補(bǔ)償有缺陷的噴嘴。如果有缺陷的噴嘴的數(shù)量較少,那么經(jīng)補(bǔ)償后的打印結(jié)果與不含有缺陷的噴嘴的打印頭的打印效果沒有明顯差別。
每個(gè)打印頭段的特征化向量為384位,包含·標(biāo)志和打印頭段的信息(共64位),包括序列號(hào)和段中的顏色數(shù)?!は鄬?duì)于前一個(gè)段的錯(cuò)排數(shù)據(jù)(16位,0=第一個(gè)段)·其余位為有缺陷的噴嘴的列表(長(zhǎng)度可變)。
有缺陷的噴嘴的列表的長(zhǎng)度是可變的。每個(gè)有缺陷的噴嘴數(shù)據(jù)的結(jié)構(gòu)如下·5位計(jì)數(shù)(0=列表尾)·3位顏色·計(jì)數(shù)×11位,每個(gè)有缺陷的噴嘴都有一個(gè)記錄總體來說,打印頭段的連接如表12所示。需要注意的是,當(dāng)存在多個(gè)顏色時(shí),某些連接是重復(fù)的。
表12.打印頭段的連接
21mm長(zhǎng)的打印頭段在300μm中心距上可以具有64個(gè)結(jié)合墊。其中的24個(gè)結(jié)合墊是向驅(qū)動(dòng)裝置提供的V-電源,20個(gè)是向驅(qū)動(dòng)裝置提供的V+電源,其余的20連接是CMOS邏輯電源、信號(hào)和數(shù)據(jù)連接。表13中詳細(xì)說明了這些連接表13.6顏色段的連接
一個(gè)多段打印頭通常由若干個(gè)相同的打印頭段構(gòu)成。這些打印頭段通常為21毫米寬,它們被制造在一起或制造后組裝在一起,以組成所需寬度的打印頭。打印頭段可以根據(jù)需要重疊設(shè)置,以實(shí)現(xiàn)段之間的平滑過渡。每個(gè)21毫米打印頭段在頁(yè)面的相應(yīng)部分上打印1600dpi的雙層點(diǎn),它們聯(lián)合產(chǎn)生最終的圖像。雖然每個(gè)段產(chǎn)生最終圖像的1280個(gè)點(diǎn),但是每個(gè)點(diǎn)都由彩色墨水的組合構(gòu)成。例如,可以把15個(gè)打印頭段并排起來實(shí)現(xiàn)12英寸寬的打印頭。每個(gè)段都帶有一個(gè)引入?yún)^(qū)、一個(gè)中央?yún)^(qū)、以及一個(gè)引出區(qū)。每個(gè)打印頭段的引出區(qū)對(duì)應(yīng)著下一個(gè)打印頭段的引入?yún)^(qū)。
圖12中用兩個(gè)重疊段106、107所示為一個(gè)打印頭段的3個(gè)區(qū)域。需要注意的是,段S106的引出區(qū)對(duì)應(yīng)段S+1 107的引入?yún)^(qū)109。段的中央?yún)^(qū)是沒有重疊的區(qū)域(106的110和107的111)。雖然本圖顯示的打印頭段是垂直錯(cuò)排的,但是實(shí)際上錯(cuò)排有一定的角度,這樣兩個(gè)打印頭段才能在垂直方向上排列。
在下文中,我們假設(shè)打印頭是由上述若干個(gè)打印頭段構(gòu)成的。我們還假設(shè)這些打印頭段被劃分為G個(gè)段組,其中最大的段組中有L個(gè)段,以實(shí)現(xiàn)數(shù)據(jù)載入。我們假設(shè)打印頭的激發(fā)機(jī)制是所有打印頭段同時(shí)激發(fā),并且在同一時(shí)刻只有一個(gè)段提供關(guān)于共用三態(tài)總線的反饋信息。在上述假定的基礎(chǔ)上,表15中列出了打印頭的外部連接。
表15.打印頭的連接
請(qǐng)參考圖5,圖中的HCU提供了使用兩個(gè)不同的抖動(dòng)矩陣抖動(dòng)的方法,這兩個(gè)抖動(dòng)矩陣由抖動(dòng)矩陣選擇圖選擇。抖動(dòng)矩陣存取單元(DMAU)48為每個(gè)循環(huán)提供了適當(dāng)?shù)亩秳?dòng)值。另外,DMAU還把抖動(dòng)復(fù)制給多個(gè)重疊的Memjet打印頭段。DMAU的作用只是為打印頭中的輸出點(diǎn)位置提供適當(dāng)?shù)?位抖動(dòng)值。
如果整個(gè)Memjet打印頭是由單片集成電路制成的,那么只需要一個(gè)抖動(dòng)矩陣(例如64×64)就足夠了。但是,Memjet打印頭通常是由多個(gè)重疊的段構(gòu)成的。段重疊可以實(shí)現(xiàn)從一個(gè)Memjet段向另一個(gè)Memjet段的平滑過渡,而不會(huì)產(chǎn)生可見的銳邊瑕疵。另外,由于各段的位置安排的問題,這些段不需要精確地與打印點(diǎn)對(duì)齊。一個(gè)普通的抖動(dòng)矩陣無法處理過渡,也無法處理段之間的亞點(diǎn)水平的對(duì)齊問題。使用打印引擎/控制器進(jìn)行打印的方案是使用從Memjet打印頭獲得的特征化向量,并構(gòu)造一套與打印頭有關(guān)的抖動(dòng)矩陣。每個(gè)段都可認(rèn)為是具有一個(gè)引入?yún)^(qū)、一個(gè)中央?yún)^(qū)和一個(gè)引出區(qū)。每段的引出區(qū)與下一個(gè)段的引入?yún)^(qū)相對(duì)應(yīng)。段的中央?yún)^(qū)是沒有任何重疊的區(qū)域。
圖12中通過顯示兩個(gè)重疊段106、107表示一個(gè)打印頭段的3個(gè)區(qū)域。需要注意的是,段S106的引出區(qū)對(duì)應(yīng)著段S+1 107的引入?yún)^(qū)109。對(duì)于任何數(shù)量的打印頭段,我們可認(rèn)為各段的中央?yún)^(qū)的抖動(dòng)矩陣是相同的,但是段S的引出區(qū)和段S+1的引入?yún)^(qū)應(yīng)按照兩個(gè)段之間的排列方式配對(duì)。雖然多個(gè)打印引擎/控制器可以控制同一個(gè)頁(yè)面的打印,但是一個(gè)特定的打印引擎/控制器只控制特定數(shù)量的打印頭段,而另一個(gè)打印引擎/控制器只控制另一些打印頭段。因此,由一個(gè)打印引擎/控制器控制的段組的第一個(gè)段的引入?yún)^(qū)實(shí)際上對(duì)應(yīng)著由另一個(gè)打印引擎/控制器控制的段組的最后一段的引出區(qū)。
抖動(dòng)矩陣的全部目的是使重疊區(qū)的亮度水平和點(diǎn)增益特征與正常區(qū)域的亮度水平和點(diǎn)增益特征一致。為此,需要為打印頭段定義一套由打印引擎/控制器使用的抖動(dòng)矩陣。這些抖動(dòng)矩陣總稱為多段抖動(dòng)矩陣。
·中央?yún)^(qū)抖動(dòng)矩陣是一個(gè)普通的抖動(dòng)矩陣,它對(duì)于所有段都是相同的(由于段之間的排列問題,特定點(diǎn)行的第一個(gè)點(diǎn)的抖動(dòng)矩陣值可能與期望的位置不一致)。
·應(yīng)為每個(gè)段對(duì)的重疊區(qū)域使用引入/引出抖動(dòng)矩陣。還需要為由打印引擎/控制器控制的所有段的集合提供一個(gè)引入和引出。引入/引出矩陣的寬度等于重疊區(qū)域的兩個(gè)段的總點(diǎn)數(shù)。該值應(yīng)在32到48之間(與16到24的重疊寬度對(duì)應(yīng))。一個(gè)段的引入/引出抖動(dòng)矩陣和相鄰段的引出矩陣配合使用,并計(jì)入了重疊區(qū)域的亞點(diǎn)調(diào)整問題以及重疊區(qū)域開始和結(jié)束時(shí)中央?yún)^(qū)域抖動(dòng)矩陣的位置問題。
·還應(yīng)提供第一個(gè)段的引入抖動(dòng)矩陣以及最后一個(gè)段的引出抖動(dòng)矩陣。它們與由打印引擎/控制器管理的其它段中的矩陣對(duì)應(yīng)。
多段抖動(dòng)矩陣按行組織。總行數(shù)等于抖動(dòng)矩陣的高度。每一行都以雙緩存方式從外部DRAM裝入到本地DMAU中。當(dāng)一個(gè)點(diǎn)行(相對(duì)于多段抖動(dòng)矩陣的當(dāng)前行)被生成時(shí),多段抖動(dòng)矩陣的下一行被載入。在從HCU狀態(tài)機(jī)接收“前進(jìn)行(advance line)”的信號(hào)時(shí),抖動(dòng)矩陣行緩沖區(qū)相互交換。
圖13所示為多段抖動(dòng)矩陣的一行的成分。
多段抖動(dòng)矩陣的行的寬度取決于重疊尺寸和段數(shù)。假設(shè)中央?yún)^(qū)抖動(dòng)矩陣的寬度是64,重疊區(qū)寬度為32點(diǎn),有15個(gè)段,那么一共應(yīng)該有64+32+32+(14×(32+32))個(gè)入口,每個(gè)入口為8位,總大?。?024字節(jié)。
DRAM要求在64KB存儲(chǔ)區(qū)內(nèi)每行為1KB,總共64行(抖動(dòng)矩陣的高度)。每次輸出一行時(shí),DMAU必須從DRAM裝載上述一行。對(duì)于每秒30000行的最高打印速度,裝載量為30MB/秒左右。
DMAU實(shí)際上支持兩個(gè)多段抖動(dòng)矩陣,具體使用哪個(gè)抖動(dòng)矩陣由抖動(dòng)矩陣選擇位確定。當(dāng)Matrix2Valid 1位寄存器被置位時(shí),使用第二個(gè)抖動(dòng)矩陣。因此,在最高打印速度時(shí),DRAM存儲(chǔ)要求為128KB,DRAM訪問要求總帶寬為60MB/秒。所以在每個(gè)緩沖區(qū)1024B的情況下,DMAU包含4個(gè)行緩沖區(qū),并使用15個(gè)偏移量寄存器作為進(jìn)入中央?yún)^(qū)抖動(dòng)矩陣的初始入口(每個(gè)段使用一個(gè)入口)。
地址生成的過程可以用下列偽代碼描述<pre listing-type="program-listing"><![CDATA[DblBufferSelect=0MatrixLineStartAddress=0(refers to 64KByte-aligned address ofstart of Matrix1)Load Matrix 1 address pointed to by MatrixLineStartAddressIf(Matrix2Valid) Load Matrix 2,address pointed to by MatrixLineStartAddress+64KBytesEndIfDo until end-of-page currAdr=64 lineAdvance=0 dotAdvance=0 dot=1 segment=1 While(NOT lineAdvance) CalculateEntry EndWhile DblBufferSelect=NOT DblBufferSelect MatrixLineStartAddress=(MatrixLineStartAddress+1)AND 63 Load Matrix 1 address pointed to by MatrixLineStartAddress Load Matrix 2,address pointed to by MatrixLineStartAddress+64KBytesEndDo]]></pre>其中,“Calculate Entry”是一個(gè)單循環(huán)過程,它可以由下面的偽代碼描述。需要注意的是,如果Matrix2Valid寄存器被清除,那么不管抖動(dòng)矩陣選擇圖的值是什么,將始終使用第一個(gè)抖動(dòng)矩陣。
<pre listing-type="program-listing"><![CDATA[Output matrix value read from DblBufferSelect,DitherMatrixSelect AND Matrix2Valid,CurrAdrOutput dotAdvance=NOT(((dot<32)AND(segment NOT==0)AND(dot0==0))OR((dot>1248)AND(segment NOT=numSegments))AND(dot0==0))Output lineAdvance=((segment==numSegments)AND(dot==1280))If((dot<32)OR(dot>1248)) CurrAdr=CurrAdr+1Else If(dot==1248) CurrAdr=NextOverlapAdrElse If(dot==32) NextOverlapAdr=CurrAdr CurrAdr=CentralAreaFi rstDotDitherOffset[segment]Else CurrAdr=(CurrAdr+1)AND 63EndIfIf(dot==1280) dot=1 segment=segment+1Else dot=dot+1EndIf]]></pre>
需要注意的是,點(diǎn)和段計(jì)數(shù)器用于對(duì)點(diǎn)進(jìn)行計(jì)數(shù),并且只與非重合區(qū)、第一個(gè)段的引入?yún)^(qū)以及最后一個(gè)段的引出區(qū)域中的實(shí)際段/點(diǎn)的組合情況對(duì)應(yīng)。在重疊階段,交錯(cuò)點(diǎn)對(duì)應(yīng)著段S和段S+1。因此,“dotAdvance”信號(hào)只在此階段中每隔1個(gè)點(diǎn)(第2個(gè)點(diǎn))給出。
通過每個(gè)打印頭段的低速串行總線可以查詢每個(gè)打印頭段的信息,查詢結(jié)果返回各個(gè)段的特征化向量。從多個(gè)打印頭芯片產(chǎn)生的特征化向量經(jīng)過合并后產(chǎn)生整個(gè)多段打印頭的噴嘴缺陷列表,這樣,在打印中打印引擎可以補(bǔ)償有缺陷的噴嘴。如果有缺陷的噴嘴的數(shù)量較少,那么經(jīng)補(bǔ)償后的打印結(jié)果與不含有缺陷的噴嘴的打印頭的打印效果沒有明顯差別。
每個(gè)打印頭段的特征化向量為384位,包含·標(biāo)志和打印頭段的信息(共64位),包括序列號(hào)和段中的顏色數(shù)?!は鄬?duì)于前一個(gè)段的錯(cuò)排數(shù)據(jù)(16位,0=第一個(gè)段)·其余位為有缺陷的噴嘴的列表(長(zhǎng)度可變)。
有缺陷的噴嘴的列表的長(zhǎng)度是可變的。每個(gè)有缺陷的噴嘴數(shù)據(jù)的結(jié)構(gòu)如下·5位計(jì)數(shù)(0=列表尾)·3位顏色·計(jì)數(shù)×11位,每個(gè)有缺陷的噴嘴都有一個(gè)記錄淡入/淡出抖動(dòng)矩陣不僅用于引入引出。它們是一起定義的,當(dāng)按照錯(cuò)排的重疊方案使用它們時(shí),可以保證在重疊區(qū)域維持恒定的點(diǎn)增益。這樣,兩個(gè)段之間不必要按點(diǎn)對(duì)齊。
段之間的錯(cuò)排是很重要的。對(duì)于不是按點(diǎn)對(duì)齊的兩個(gè)段,第一個(gè)段上的點(diǎn)不是完全與第二個(gè)段上的點(diǎn)對(duì)齊。因此,第二個(gè)段上的兩個(gè)點(diǎn)可能與第一個(gè)段的一個(gè)點(diǎn)重疊。如果第一個(gè)段上的某個(gè)點(diǎn)與第二個(gè)段上的某個(gè)點(diǎn)同時(shí)打印,那么在最終的打印結(jié)果上可能產(chǎn)生一個(gè)顏色加重的點(diǎn)。如果在第一個(gè)段上的某個(gè)點(diǎn)打印時(shí),第二個(gè)段上的重疊點(diǎn)都不打印,那么最終打印結(jié)果上會(huì)出現(xiàn)一個(gè)半點(diǎn)。第一種情況會(huì)在頁(yè)面上產(chǎn)生一個(gè)加重的色條,而第二種情況會(huì)在頁(yè)面上產(chǎn)生一個(gè)較淺的顏色條,這兩種情況都不是我們所希望的。
解決上述錯(cuò)排問題的一個(gè)方案是采用一個(gè)能夠彌補(bǔ)上述錯(cuò)排情況的抖動(dòng)單元,使重疊區(qū)域中維持恒定的點(diǎn)增益,這樣才不會(huì)在打印頁(yè)面上產(chǎn)生顏色較重的區(qū)域或顏色條。由于有兩個(gè)段,所以要使用兩個(gè)抖動(dòng)單元。一個(gè)作為淡出單元,一個(gè)作為淡入單元。這兩個(gè)單元必須同時(shí)使用,以產(chǎn)生恒定的點(diǎn)增益。很明顯,不同的錯(cuò)排方案需要不同的抖動(dòng)單元對(duì)。由半點(diǎn)錯(cuò)排產(chǎn)生的重疊與1/4點(diǎn)錯(cuò)排產(chǎn)生的重疊不同。因此每種錯(cuò)排方案都需要特定的抖動(dòng)單元對(duì)。如果知道公共抖動(dòng)單元從哪里開始重疊,那么可以更好地產(chǎn)生抖動(dòng)單元對(duì)。
由于上述錯(cuò)排問題,當(dāng)?shù)竭_(dá)重疊區(qū)域的末尾時(shí),還需要知道是否使用公共抖動(dòng)單元中的預(yù)期位置(如果點(diǎn)之間能夠完美地對(duì)準(zhǔn)),或者是否需要使用抖動(dòng)單元的另一列。因此,要使用一個(gè)偏移量來指定在特定段重疊對(duì)的末尾應(yīng)銜接公共抖動(dòng)單元的哪個(gè)部分。
因此,使用段錯(cuò)排有兩個(gè)目的,第一個(gè)目的是為重疊區(qū)域產(chǎn)生抖動(dòng)單元對(duì)。產(chǎn)生抖動(dòng)單元對(duì)的目的是把公共抖動(dòng)單元中的某個(gè)已知位置與抖動(dòng)單元的所選列銜接。對(duì)于點(diǎn)之間完美對(duì)齊的段,抖動(dòng)單元的所選列是預(yù)期的列,對(duì)錯(cuò)點(diǎn)錯(cuò)排的段,所選列是一個(gè)鄰近列。因此,錯(cuò)排用于確定進(jìn)入公共抖動(dòng)單元的偏移量。這種情況一個(gè)例子是對(duì)于每個(gè)段重疊區(qū)域,都有一個(gè)特定的抖動(dòng)矩陣對(duì),該抖動(dòng)矩陣對(duì)還計(jì)入了公共抖動(dòng)單元中的錯(cuò)排和位置。有很多種方法能夠產(chǎn)生這些抖動(dòng)單元,這是一種現(xiàn)有技術(shù)。可以為每個(gè)打印頭錯(cuò)排對(duì)一次產(chǎn)生抖動(dòng)單元。也可以為所有打印頭一次產(chǎn)生抖動(dòng)單元。例如,可以為多達(dá)100個(gè)點(diǎn)的錯(cuò)排產(chǎn)生一個(gè)詳盡的抖動(dòng)單元對(duì)列表。這個(gè)工作需要產(chǎn)生100×64個(gè)抖動(dòng)單元對(duì)以及100×64個(gè)偏移量值——總共6400套數(shù)據(jù)。假設(shè)一個(gè)重疊區(qū)域占32個(gè)點(diǎn),且抖動(dòng)單元的高度為64,每個(gè)抖動(dòng)單元對(duì)的數(shù)據(jù)量為4KB,那么總共需要12.5MB數(shù)據(jù)。這些數(shù)據(jù)可以存儲(chǔ)在打印機(jī)驅(qū)動(dòng)程序的安裝光碟上(或其它媒質(zhì)上)。在打印機(jī)驅(qū)動(dòng)程序的安裝過程中,可以根據(jù)連接的打印頭的錯(cuò)排情況選擇正確的抖動(dòng)單元,對(duì)于一個(gè)15段的打印頭,總共需要64KB數(shù)據(jù)。對(duì)于這種情況,只需要一次性產(chǎn)生抖動(dòng)單元。通過模擬訓(xùn)練抖動(dòng)單元產(chǎn)生技術(shù),可以產(chǎn)生實(shí)際所需的6400個(gè)抖動(dòng)單元(假設(shè)錯(cuò)排的范圍為100個(gè)點(diǎn))。“擬和函數(shù)”是一種簡(jiǎn)單的點(diǎn)增益計(jì)算。模擬訓(xùn)練的目的是盡量減少與標(biāo)準(zhǔn)抖動(dòng)單元相比的點(diǎn)增益差異。
上述描述的目的只是說明本發(fā)明的較佳實(shí)施例,不應(yīng)構(gòu)成對(duì)本發(fā)明的任何限制。本領(lǐng)域的技術(shù)人員可以在本發(fā)明的特定實(shí)例基礎(chǔ)上很容易地實(shí)現(xiàn)各種變化,但按照本發(fā)明進(jìn)行的任何等價(jià)修改或修飾都應(yīng)屬于本
權(quán)利要求
1.一種為多段打印頭準(zhǔn)備打印數(shù)據(jù)的方法,包括為由多個(gè)兩端部分重疊的打印頭芯片構(gòu)成的多段打印頭建立一組抖動(dòng)矩陣,這組矩陣包含一個(gè)與引入重疊部分相關(guān)的引入抖動(dòng)矩陣;一個(gè)與引出重疊部分相關(guān)的引入抖動(dòng)矩陣;以及一個(gè)與打印頭芯片的中央部分相關(guān)的公共抖動(dòng)矩陣;接收打印數(shù)據(jù);訪問抖動(dòng)矩陣集合,并向接收的數(shù)據(jù)施加抖動(dòng),使重疊部分的圖像保持實(shí)質(zhì)上恒定的點(diǎn)增益。
2.如權(quán)利要求1所述的準(zhǔn)備打印數(shù)據(jù)的方法,其特征在于,所述的引入抖動(dòng)值產(chǎn)生一個(gè)段的淡入,所述的引出抖動(dòng)值產(chǎn)生前述段的淡出,所述兩個(gè)值結(jié)合起來在重疊部分提供幾乎恒定的點(diǎn)增益。
3.如權(quán)利要求1所述的準(zhǔn)備打印數(shù)據(jù)的方法,其特征在于,在每?jī)蓚€(gè)重疊段中的重疊方案與錯(cuò)排有關(guān),這種錯(cuò)排用于產(chǎn)生向公共抖動(dòng)矩陣引入的偏移量。
4.如權(quán)利要求3所述的準(zhǔn)備打印數(shù)據(jù)的方法,其特征在于,錯(cuò)排信息從存儲(chǔ)在每個(gè)打印頭段中的特征化向量獲得。
5.如權(quán)利要求4所述的準(zhǔn)備打印數(shù)據(jù)的方法,其特征在于,從打印頭的多個(gè)段獲得的特征化向量被結(jié)合起來構(gòu)成整個(gè)打印頭的噴嘴缺陷列表。
6.一種具有多段打印頭的打印機(jī),包括一個(gè)用于接收打印數(shù)據(jù)的接口;一個(gè)用于復(fù)合所接收的打印數(shù)據(jù)的半色調(diào)器/合成器;一個(gè)打印頭接口,用于把復(fù)合后的打印數(shù)據(jù)從半色調(diào)器/合成器傳送給多段打印頭;所述半色調(diào)器/合成器包括一個(gè)抖動(dòng)矩陣存取單元,該抖動(dòng)矩陣存取單元提供用于復(fù)合打印數(shù)據(jù)的抖動(dòng)矩陣,以便在合成的圖像中維持實(shí)質(zhì)上恒定的點(diǎn)增益;所述抖動(dòng)矩陣存取單元可訪問一個(gè)抖動(dòng)矩陣,該抖動(dòng)矩陣由一組在各端都存在段重疊的多段打印頭的抖動(dòng)矩陣合成而來;該組抖動(dòng)矩陣包括一個(gè)引入抖動(dòng)矩陣;一個(gè)引出抖動(dòng)矩陣;以及一個(gè)中央?yún)^(qū)抖動(dòng)矩陣。
7.如權(quán)利要求6所述的打印機(jī),其特征在于,所述引入抖動(dòng)值產(chǎn)生一個(gè)段的淡入,所述的引出抖動(dòng)值產(chǎn)生前述段的淡出,所述兩個(gè)值結(jié)合起來在重疊部分提供幾乎恒定的點(diǎn)增益。
8.如權(quán)利要求6所述的打印機(jī),其特征在于,在每?jī)蓚€(gè)重疊段中的重疊方案與錯(cuò)排有關(guān),這種錯(cuò)排用于產(chǎn)生向中央?yún)^(qū)抖動(dòng)矩陣引入的偏移量。
9.如權(quán)利要求7所述的打印機(jī),其特征在于,錯(cuò)排信息從存儲(chǔ)在每個(gè)打印頭段中的特征化向量獲得,這些信息結(jié)合起來構(gòu)成整個(gè)打印頭的一個(gè)噴嘴缺陷列表。
全文摘要
本發(fā)明提供了一種為多段打印頭準(zhǔn)備打印數(shù)據(jù)的方法,包括為由多個(gè)打印頭芯片(兩端部分重疊)構(gòu)成的多段打印頭建立一組抖動(dòng)矩陣,這組矩陣包含一個(gè)與引入重疊部分相關(guān)的引入抖動(dòng)矩陣,一個(gè)與引出重疊部分相關(guān)的引入抖動(dòng)矩陣,一個(gè)與打印頭芯片的中央部分相關(guān)的公共抖動(dòng)矩陣;接收到的打印數(shù)據(jù)被與抖動(dòng)矩陣中的抖動(dòng)值復(fù)合;引入抖動(dòng)值產(chǎn)生一個(gè)段的淡入數(shù)據(jù),引出抖動(dòng)值產(chǎn)生前述段的淡出數(shù)據(jù)。每一對(duì)重疊段中的重疊方案與打印頭段的錯(cuò)排有關(guān),這種錯(cuò)排用于產(chǎn)生向公共抖動(dòng)矩陣引出的偏移量。
文檔編號(hào)B41J2/07GK1454158SQ00819712
公開日2003年11月5日 申請(qǐng)日期2000年6月30日 優(yōu)先權(quán)日2000年6月30日
發(fā)明者保羅·拉普斯頓, 西蒙·羅伯特·瓦爾姆斯利 申請(qǐng)人:西爾弗布魯克研究有限公司