專利名稱:串行打印機所用的數(shù)據(jù)壓縮和還原的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)的壓縮和還原(去壓縮),更具體地說,涉及特別適宜供諸如噴墨式打印機之類的串行打印機用的數(shù)據(jù)壓縮和還原的方法和設(shè)備。
噴墨式打印機用打印頭左右往返串行掃描著打印頁面。在多數(shù)噴墨式打印機都是以雙向掃描方向打印的。廣泛使用的噴墨式打印頭一般都有許多由適當(dāng)?shù)南笏貓D象驅(qū)動信號熱驅(qū)動的縱向取向的噴嘴。許多通用的噴墨式打印頭都采用雙行縱向取向的噴嘴,其中一行偏離另一行半行的距離,以便能獲得密度高(例如,300-600點/英寸)的噴墨點陣畫面。
圖1中示出的噴嘴排列實例有四對噴嘴10、12、14和16,彼此平行地排成一列一列,每一列有Y個噴嘴,這里Y可以是例如1 50。噴嘴對10用來打印黑色圖象,噴嘴對12、14和16分別用來打印青色、品紅色和黃色的圖象。
在打印過程中,噴嘴對10、12、14和16橫掃頁面串列式地移動,從而可以滴下多點彩墨。打印頭每一次橫掃頁面移動時,一行象素/點數(shù)據(jù)就打印出來。打印頭的光柵數(shù)據(jù)以水平光柵的形式存儲在隨機存取存儲器(RAM)中。RAM中的數(shù)據(jù)一般是打印頭的總高度(Y行象素數(shù)據(jù)),RAM的容量大得足以存儲整個頁寬的行數(shù)據(jù)。RAM的大小通常選取打印頭高度的兩倍,給下一個打印幅留有緩沖的余地。隨著打印發(fā)動機的設(shè)計容許提高打印分辨率和較大的Y值,打印幅RAM的數(shù)量增加,從而提高了存儲器的價格。
現(xiàn)有技術(shù)有各種不同的方法可以減少存儲噴墨打印機象素數(shù)據(jù)所需要的RAM數(shù)量。有一種方法是將數(shù)據(jù)以打印頭的行高相應(yīng)的列格式從主處理機發(fā)送給打印機。這種方法的缺點是要求主處理機的打印機驅(qū)動器能識別打印頭的構(gòu)形。但大多數(shù)廣為應(yīng)用的打印機驅(qū)動器語言都與設(shè)備無關(guān),而且不包括識別打印頭結(jié)構(gòu)的能力。
如果不增加RAM的數(shù)量也可以用傳統(tǒng)的壓縮算法(例如行程編碼)來壓縮行存儲器。通常,這種壓縮方法有這樣的問題,即數(shù)據(jù)只能按原先壓縮同樣的排序進行還原。這樣,由于噴墨式打印頭雙向打印,解碼必須按數(shù)據(jù)原先壓縮的相反方向以不同的方式處理。但在打印頭中的邏輯電路確定一系列鄰近的各行所要求的邊界之前是不知道打印頭擬進行的方向。這類邏輯只有在大量數(shù)據(jù)存入幅RAM之后才能起其邏輯運算的作用。因此,若想通過壓縮減少這類數(shù)據(jù)的數(shù)量,而將數(shù)據(jù)壓縮時,在邊界確定之前是不會進行這類壓縮的,以便可以對經(jīng)壓縮的數(shù)據(jù)進行雙向解碼。于是出現(xiàn)“Catch22”的情況。
確定頁面的邊界就可以使噴墨打印頭處在打印行的起點,從而確保打印操作更快速地進行。從圖2中可以看到,第一打印行從點22開始。在打印頭從左向右橫掃頁面20移動達到該行在點24末端的過程中,邏輯電路確定下一行28的起點(例如點26)。行的起點是根據(jù)下一行28最右打印位置26的起始點確定的,這是根據(jù)存儲在RAM中的第二行確定的。因此,打印頭的控制機構(gòu)促使打印頭在點24之后繼續(xù)右移,直到其打印噴嘴對準(zhǔn)點26為止,因而在打印到頁面22時,點26處在打印頭下面,從而可以即刻開始打印。
現(xiàn)有技術(shù)研究出的數(shù)據(jù)壓縮算法與雙向打印匹配的方法有好多種。專利權(quán)授予Bobick的美國專利4,568,983介紹的一種激光打印機的壓縮/還原法是將文件分成多個長條,每一長條表示多根所掃描的行。各個長條由許多用行程編碼或霍夫曼編碼壓縮的字段組成。這種編碼法在與原先壓縮相反的方向上還原有困難,因而Bobick系統(tǒng)為適應(yīng)反方向的還原過程需要另外增加處理的操作。
另一種現(xiàn)有技術(shù)的方法,如專利權(quán)授予本發(fā)明人(且轉(zhuǎn)讓給本專利申請的同一受讓人)的美國專利5,123,061所教導(dǎo)的那樣,是根據(jù)前數(shù)行的值逐一地對各水平行的行光柵數(shù)據(jù)進行壓縮。例如,該方法將第一行光柵數(shù)據(jù)與第二行相比較。若第二行與第一行完全相同,則將第一行存儲起來,并發(fā)出表示第二行與第一行相同的標(biāo)志信號。若第一行是基準(zhǔn)行(例如,全為零),則只需存儲標(biāo)志。
序號為08/171,315、專利權(quán)授予Morrison等人(轉(zhuǎn)讓給本專利申請的同一受讓人)題為《可逆視頻壓縮方法》的美國專利申請介紹了另一種壓縮方法。Morrison等人的方法沿第一方向壓縮一行象素數(shù)據(jù)。需要在與原先壓縮方向相反的方向還原已壓縮的行光柵數(shù)據(jù)時,還原是逐個象素行進行的。然后逐個數(shù)據(jù)段地往回通過經(jīng)壓縮的數(shù)據(jù)。各數(shù)據(jù)段按原先壓縮的方向還原。然后對下一個數(shù)據(jù)段重復(fù)還原過程,如此類推。
迄今為止,還沒有已知的支援噴墨式打印機雙向操作過程的壓縮/還原方法。過去的解決辦法需要使用未經(jīng)壓縮的象素數(shù)據(jù)。隨著噴墨式打印頭日益復(fù)雜化(例如采用多色噴墨噴嘴結(jié)構(gòu),增加噴嘴數(shù),提高點構(gòu)形的分辨率)需要增加RAM來存儲增加了的未經(jīng)壓縮的象素數(shù)據(jù)。
因此,本發(fā)明的目的是提供一種能使噴墨式打印機雙向打印的數(shù)據(jù)壓縮/還原法。
本發(fā)明的另一個目的是提供一種能迅速壓縮多行象素數(shù)據(jù)而無需一大堆專用的壓縮硬件的數(shù)據(jù)壓縮/還原法。
本發(fā)明還有另一個目的,即提供一種能并行壓縮/還原一行光柵數(shù)據(jù)從而可以最大限度地減少光柵存儲數(shù)量并使打印頭雙向操作的經(jīng)改進的噴墨式打印機。
本發(fā)明的串行打印機數(shù)據(jù)壓縮/還原法處理包括Y行象素數(shù)據(jù)的打印行數(shù)據(jù)。該方法將打印幅分成N個象素數(shù)據(jù)微區(qū)(microbands),每一個微區(qū)含Y行象素數(shù)據(jù)(其中y×N≥Y)。該方法壓縮各微區(qū)象素數(shù)據(jù)的方式是將微區(qū)分成許多微塊,再將各微塊中的數(shù)據(jù)與基本值相比較,以便根據(jù)與基本值的差值求出經(jīng)壓縮的微塊。各微塊由一個m位寬×y行高的一塊象素數(shù)據(jù)組成,其中m是打印頭橫掃紙張可打印出的M位象素數(shù)據(jù)的一小部分。一行的所有微區(qū)經(jīng)過數(shù)據(jù)壓縮處理從而產(chǎn)生各微區(qū)在位置上相應(yīng)的一組經(jīng)壓縮的數(shù)據(jù)微塊。在準(zhǔn)備打印時,本發(fā)明的方法是這樣去壓縮所有N個光柵數(shù)據(jù)微區(qū)的對各組經(jīng)壓縮的微塊進行還原,再生成一組N個經(jīng)還原的還原象素微區(qū)。接著,將N個經(jīng)還原的光柵數(shù)據(jù)微區(qū)并行饋送給打印頭。
圖1是現(xiàn)有技術(shù)多色噴墨式噴嘴結(jié)構(gòu)的示意圖。
圖2是進行雙向打印時噴墨式打印頭橫掃頁面所取的打印路徑一個實例的示意圖。
圖3是噴墨打印幅分成N個光柵打印數(shù)據(jù)微區(qū)、各微區(qū)又再分成多個微塊的示意圖。
圖4a是微區(qū)的示意圖,示出了表明相應(yīng)的各微區(qū)行是否已經(jīng)過壓縮的各毗鄰標(biāo)志數(shù)據(jù)。
圖4b是微塊的示意圖,示出了表明相應(yīng)的各列是否經(jīng)過壓縮的各毗鄰標(biāo)志數(shù)據(jù)。
圖5是本發(fā)明的微塊壓縮過程的示意方框圖。
圖6是本發(fā)明的并行還原過程的示意方框圖。
參看圖3,打印幅30的光柵數(shù)據(jù)總共有Y行位,寬M位。各打印幅30分成N微區(qū)32、34、36等。各微區(qū)寬y位,長m位。各微區(qū)(例如32)又再分為多個微塊40、42等。各微塊長n位,寬y位。所有的微塊38、40、42等大小都相等,一般為8×8位或16×16位(即象素)。各微塊配有編碼標(biāo)志字(圖中未示出),編碼標(biāo)志字的位表示相應(yīng)行(或列)是否編過碼。
圖4a中,可以看到微塊38由8×8矩陣的比特位置組成。微塊38附有標(biāo)志字節(jié)44,微塊38的每一行都有一個比特位置。圖4b中又示出了微塊38,但在此情況下,微塊38的各列有一個比特位置。圖4a和4b的微塊都可以按“三角形”進行編碼,即將當(dāng)前的行(或列)的值可從緊接前一行(或列)獲取等。這樣,若微塊中的當(dāng)前行(或列)與前一行(或列)不同,則往其相應(yīng)的標(biāo)志位上寫1,若數(shù)據(jù)相同則往相應(yīng)的標(biāo)志位寫0。在當(dāng)前行(或列)數(shù)據(jù)不同的情況下,實際數(shù)據(jù)就保留在經(jīng)壓縮的微塊中。
同樣,圖4a和4b的微塊可根據(jù)與預(yù)定種值(seed value)的差值進行壓縮。例如,若一行(或一列)中的所有值為0(在0為種值的情況下),刪除該行(或列),并給有關(guān)的標(biāo)志位分派表示缺席行(或列)的值。若該行(或列)不全為0,則保留該行(或列),并分派不同的標(biāo)志位。
參看圖5。微區(qū)32由許多未經(jīng)壓縮的微塊B0-Bn-1組成,每一個微塊寬m位,高y位。用圖4a和4b所說明的其中一個編碼法,微塊壓縮器50從微塊B0開始壓縮其中的數(shù)據(jù),產(chǎn)生經(jīng)壓縮的微塊B0’,微塊B0’的值接著存入?yún)^(qū)54經(jīng)壓縮微區(qū)的存儲器52中。與此同時,給區(qū)54中的該微塊指定一標(biāo)志值,表明該微塊是否經(jīng)過壓縮。該標(biāo)志值則存入標(biāo)志塊55中。
微塊壓縮器50沿微區(qū)30繼續(xù)進行下去,壓縮其中各微塊,并將其各壓縮值存入經(jīng)壓縮的微區(qū)56。假設(shè)微區(qū)56對應(yīng)于打印幅30的微區(qū)0(見圖3),將各經(jīng)壓縮的微塊B0’-Bn-1’與微區(qū)0聯(lián)系起來。這之后,微塊壓縮器50處理打印幅30的各微區(qū),依次產(chǎn)生經(jīng)壓縮的微區(qū)58,60等,并求出它們相應(yīng)的標(biāo)志塊54。
如此經(jīng)壓縮的微塊(和微區(qū))保存在壓縮微區(qū)存儲器52中,直到打印需用它們?yōu)橹埂_@時,進行還原以重新構(gòu)制還原的微區(qū)數(shù)據(jù)的結(jié)構(gòu)。雖然圖5中看到的各微塊實塊上是成直線排列的,但不言而喻,這些微塊可存儲在存儲器中的任何位置而無需取任何實際排列形式。
圖6示出了還原按圖4a的方案壓縮過的微塊并給打印頭驅(qū)動器和橫掃頁面的打印頭經(jīng)線路(圖中未示出)提供以還原的象素數(shù)據(jù)的電路的方框圖。上面說過,各經(jīng)壓縮的微區(qū)0-N-1都作為一系列經(jīng)壓縮的微塊存儲在經(jīng)壓縮微區(qū)的存儲器52中。各經(jīng)壓縮的微塊占據(jù)的存儲空間(總的)比相應(yīng)未經(jīng)壓縮的微塊的小得多。
要還原經(jīng)壓縮的微區(qū)片時,開關(guān)電路70從微片0-N-1中提取位置上相應(yīng)的經(jīng)壓縮的微塊組,將其傳送給還原器72及微塊緩沖器76。假設(shè)噴墨式打印頭從左向右打印,開關(guān)電路70從打印幅的各微區(qū)提取微塊B0’將其依次傳送給還原器72。此舉即刻提供所有微區(qū)中經(jīng)壓縮的微塊B0’,供還原之用。
在控制器74的控制下,還原器72根據(jù)未經(jīng)壓縮的B0微塊的有關(guān)標(biāo)志字重新構(gòu)制B0微塊,并將其并行寫入相應(yīng)的微區(qū)緩沖器76中。各微區(qū)緩沖器76存儲小量能使打印頭不斷獲得數(shù)據(jù)供應(yīng)的象素列。
一組中的所有經(jīng)還原的微塊都存入微區(qū)緩沖器76之后,其數(shù)據(jù)準(zhǔn)備就緒供打印用,并在控制器74的控制下通過線路(圖中未示出)提供給打印頭驅(qū)動器和噴墨式打印頭。只要圖6電路的工作速度比噴墨打印頭對打印數(shù)據(jù)的需求速度快,就不會發(fā)生“打印過速”的情況。
將各微區(qū)分成多個微塊,可以處理反向還原的問題,具體作法是,先計算出經(jīng)壓縮微塊的標(biāo)志字中1位的數(shù)目(即未經(jīng)壓縮字的數(shù)目)。然后,提取經(jīng)壓縮的微塊時,還原器72就知道用上述計數(shù)值從那里開始還原,且能在壓縮短微塊時的方向“往前”工作下去以進行還原。往前工作時,標(biāo)志字節(jié)的每一位表示相應(yīng)的微塊字節(jié)準(zhǔn)備原封不動地使用抑或與上一個字節(jié)一樣使用。這樣,各微區(qū)分段成許多微塊使高效打印幅的還原在與噴墨式打印頭橫掃頁面時所要求匹配的時幀里出現(xiàn)。
若各微塊按圖4b的實例編碼,“反向”還原的還原復(fù)雜程度就和前向還原的差別不太大,因為微塊38的各列只需與其上一列(或與種值)比較就可以進行還原。
最后,若各微塊用所有行/列的一組種值(例如=“0”)進行編碼,則壓縮的程度就不會如上述各方法時那么大。但由于使用不變的“種值”,還原可以在兩個打印方向上進行。
應(yīng)該理解的是,上述說明僅僅是對發(fā)明的舉例說明而已。在不脫離本發(fā)明的前提下,本技術(shù)領(lǐng)域的技術(shù)人員是可以設(shè)計出各種不同的方案并對上述實施例進行種種修改的。例如,上面微塊(和標(biāo)志字節(jié))的大小是取一個字節(jié)寬而實際上是可取任何適當(dāng)?shù)奈婚L的。因此,本發(fā)明包括所有這類修改和更改方案,因為這些方案都屬于本說明所附權(quán)利要求書的范圍。
權(quán)利要求
1.打印機的一種數(shù)據(jù)壓縮/還原法,該打印機的至少一個打印頭裝置(10,12,14,16)每橫掃紙面一趟產(chǎn)生由y行象素數(shù)據(jù)組成的打印幅(30),所述方法的特征在于,它包括下列步驟a.存儲象素數(shù)據(jù)微區(qū)(32),一打印幅(30)包括N個微區(qū)(32,34,36…),各微區(qū)(32)包括y行的象素數(shù)據(jù),其中y×N≥Y;b.將所述象素數(shù)據(jù)微區(qū)(32)壓縮成經(jīng)壓縮的微塊(54),微塊(38)由m位寬×y行高的象素數(shù)據(jù)塊組成,其中m是所述打印頭裝置(10,12,14,16)橫掃所述頁面時可打印出的M位象素數(shù)據(jù)的一小部分;c.對所述打印幅(30)的其余所有微區(qū)(34,36…)重復(fù)步驟(a)和(b),從而產(chǎn)生所有所述N微區(qū)(30,34,36…)位置上相應(yīng)的微塊組(54);d.還原步驟(b)和(c)中壓縮過的所述N個象素數(shù)據(jù)微區(qū)(32,34,36…),所述還原過程作用于各所述經(jīng)壓縮、位置上相應(yīng)的微塊組(54),重新生成所述N個還原過的象素數(shù)據(jù)微區(qū)(32,34,36…);e.將所述經(jīng)壓縮的象素數(shù)據(jù)從所述N個微區(qū)(32,34,36…)并行饋送給所述打印頭裝置(10,12,14,16)。
2.如權(quán)利要求1所述的數(shù)據(jù)壓縮/還原法,其特征在于,步驟(b)和步驟(c)在第一掃描方向壓縮所有所述微塊(38),在所述第一方向壓縮各微塊(32)中的所述象素數(shù)據(jù),其中步驟(d)在所述第一方向還原各N微塊組(54),但在所述打印頭裝置(10,12,14,16)打印所述打印幅的方向還原由微區(qū)(34)組成的微塊組(54)。
3.如權(quán)利要求1所述的數(shù)據(jù)壓縮/還原方洗其特征在于,微塊(54)中除第一行例外的各行中采用的種值由彼此毗鄰的一行行m位象素數(shù)據(jù)組成,所述第一行的所述種值為設(shè)定值。
4.如權(quán)利要求1所述的數(shù)據(jù)壓縮/還原法,其特征在于,微區(qū)(54)的各行都附有附加數(shù)據(jù)位,表示所述行是否壓縮過。
5.如權(quán)利要求1所述的數(shù)據(jù)壓縮/還原法,其特征在于,在壓縮步驟中采用了恒定的種值,使還原可以不受打印方向的影響進行。
6.打印機的一種數(shù)據(jù)壓縮/還原法,所述打印機的至少一個打印頭裝置(10,12,14,16)橫掃紙面一趟產(chǎn)生Y行象素數(shù)據(jù)組成的打印幅(30),所述方法的特征在于,它包括下列步驟a.存儲象素數(shù)據(jù)微區(qū)(32),打印幅(30)有N個微區(qū)(32,34,36…),各微區(qū)(30)有y行象素數(shù)據(jù),其中y×N≥Y;b.將每一行y象素數(shù)據(jù)與種值相比較來壓縮所述象素數(shù)據(jù)微區(qū)(30),若某列象素數(shù)據(jù)與所述種值相同,取消所述列并產(chǎn)生表示這個取消的標(biāo)志值;c.對所述打印幅(30)的其余微區(qū)(32,34,36…)重復(fù)步驟(a)和(b)的操作;d.還原所有在步驟(b)和(c)中壓縮的N個象素數(shù)據(jù)微區(qū)(32,34,36…),重新產(chǎn)生所述由經(jīng)還原象素數(shù)據(jù)組成的微區(qū)(32,34,36…);e.將所述一組N個微區(qū)(32,34,36…)的所述還原的象素數(shù)據(jù)并行饋送給所述打印頭裝置(10,12,14,16)。
7.如權(quán)利要求5所述的數(shù)據(jù)壓縮/還原法,其特征在于,微區(qū)(32)中除第一列例外的各列光柵數(shù)據(jù)的所述種值由彼此毗鄰的一列列y位光柵數(shù)據(jù)組成,所述第一列的所述種值為設(shè)定值。
8.如權(quán)利要求6所述的數(shù)據(jù)壓縮/還原法,其特征在于,各列象素數(shù)據(jù)都附有附加數(shù)據(jù)位表示所述列是否壓縮過。
9.如權(quán)利要求5所述的數(shù)據(jù)壓縮/還原法,其特征在于,所述種值是設(shè)定值。
全文摘要
本發(fā)明的數(shù)據(jù)壓縮/還原方法將打印幅(30)分個N個象素數(shù)據(jù)微區(qū)(32,34,36…),各微區(qū)由Y行象素數(shù)據(jù)組成(其中y×N≥Y)。微區(qū)(30)分成許多微塊(38),各微塊(38)與種值的數(shù)據(jù)差得出經(jīng)壓縮的微塊(54)。各微塊(38)由m位寬×y行高的象素數(shù)據(jù)塊組成。所有微區(qū)(32,34,36…)在經(jīng)過數(shù)據(jù)壓縮,從而在位置上產(chǎn)生與其相應(yīng)的經(jīng)壓縮的各組數(shù)據(jù)微塊(54)。打印時,對各組經(jīng)壓縮的微區(qū)(54)進行還原,從而重新產(chǎn)生一組N個經(jīng)還原象素數(shù)據(jù)微區(qū)(32,34,36…)。
文檔編號H04N1/41GK1135122SQ96102708
公開日1996年11月6日 申請日期1996年2月27日 優(yōu)先權(quán)日1995年3月2日
發(fā)明者T·B·普里查德 申請人:惠普公司