日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

數(shù)據(jù)壓縮方法、數(shù)據(jù)復(fù)原方法及信息處理裝置的制作方法

文檔序號:7531524閱讀:1057來源:國知局
專利名稱:數(shù)據(jù)壓縮方法、數(shù)據(jù)復(fù)原方法及信息處理裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明是關(guān)于利用能與編目號相關(guān)地登記編目數(shù)據(jù)串的辭典進行數(shù)據(jù)壓縮的方法、為將壓縮數(shù)據(jù)復(fù)原的數(shù)據(jù)復(fù)原方法及信息處理裝置。
近來,在打印機等的信息處理裝置中,由于提供各種打印尺寸的位映象字形和輪廓字形而使得付加價格增高,而且對在這種字形尺寸仍要保持高的打印質(zhì)量的要求亦很高。因此,在打印機等領(lǐng)域內(nèi)近來對為能高效率地存貯由這些字形數(shù)據(jù)構(gòu)成的大量信息而使用的數(shù)據(jù)壓縮技術(shù)得到很大的注意。
為用盡可能少的容量來存貯或傳送大量信息而提出的數(shù)據(jù)壓縮的現(xiàn)有技術(shù)中已知的有,像霍夫曼碼那樣將定長畢特位數(shù)據(jù)變換成可變長畢特位編碼的技術(shù)、所謂的Lempel-Ziv專利(見美國專利No.4464650說明書)及LZW專利(見美國專利No.4558302說明書)那樣的利用先前出現(xiàn)的數(shù)據(jù)串與欲由其壓縮的數(shù)據(jù)串的一致來進行壓縮的技術(shù)等。
可是,這些現(xiàn)有技術(shù)均是采用所謂的動態(tài)辭典進行數(shù)據(jù)壓縮的方法。亦就是說,是對欲予壓縮的對象數(shù)據(jù)進行分析,一邊檢驗出現(xiàn)頻率等一邊按辭典的結(jié)構(gòu)形式登記數(shù)據(jù),同時利用該辭典來壓縮數(shù)據(jù)的方法。這種情況下的特征在于,辭典是實時地改變的。在利用這種動態(tài)辭典壓縮數(shù)據(jù)時,雖然僅只將被執(zhí)行過壓縮處理的對象數(shù)據(jù)作為產(chǎn)生物留下,但在對數(shù)據(jù)進行復(fù)原時要檢驗壓縮時的歷史數(shù)據(jù)的特性,再次重新編制辭典并同時進行下一數(shù)據(jù)的復(fù)原。從而,就存在有必須從被壓縮的對象數(shù)據(jù)的初始進行依次處理的問題。
而在打印機等中的字形數(shù)據(jù)壓縮中,被壓縮的字形數(shù)據(jù)被存放在打印機或主計算機側(cè)的存儲裝置中。然后,在打印時由存儲裝置中取出所需的壓縮字形數(shù)據(jù),將此壓縮字形數(shù)據(jù)復(fù)原為普通的數(shù)據(jù)來形成打印數(shù)據(jù)。因此,在這樣的條件下采用數(shù)據(jù)壓縮的情況中,如何來快速復(fù)原存放在存貯器的數(shù)據(jù)以形成打印數(shù)據(jù)是必需要考慮的。
此外,在打印機等中對字形數(shù)據(jù)進行壓縮時另一個重要問題是,要具有能夠以哪種順序輸出哪樣的打印數(shù)據(jù)(字符)的靈活性。也就是說,打印機等中對所存貯的數(shù)據(jù)要求能隨機地存取、隨機地產(chǎn)生打印數(shù)據(jù)。
一般壓縮率較之霍夫曼碼等壓縮方法更高的Lempel-Ziv和LZW等的數(shù)據(jù)壓縮方法,被認(rèn)為是今后壓縮技術(shù)的主流。然而,在這方面由于這些壓縮技術(shù)是采用動態(tài)辭典的數(shù)據(jù)壓縮,在進行數(shù)據(jù)復(fù)原時必須檢驗以往的數(shù)據(jù)特性來進行更新,因而存在著復(fù)位時的時間花費問題。
而且Lempel-Ziv和LZW等數(shù)據(jù)壓縮方法,在復(fù)原時不得不從數(shù)據(jù)的起始依次來將數(shù)據(jù)加以復(fù)原,因而就無法實現(xiàn)在必要時僅僅只取出必須的打印字形數(shù)據(jù)的自由的處理。
再者,在采用LZW等中所用的被稱之為增量分析法的壓縮方法中,由于只能將可登記在辭典中的數(shù)據(jù)串的個數(shù)逐個地增加,例如在許多相同的數(shù)據(jù)相連續(xù)的情況下,就不可能再一次提高數(shù)據(jù)壓縮率。
本發(fā)明就是為解決上述這些問題,目的在于提供既保持Lempel-Ziv和LZW數(shù)據(jù)壓縮方法那樣的高壓縮率,又能以較短的時間來完成對應(yīng)的原復(fù)處理,而只能自由地僅對必需的數(shù)據(jù)串進行復(fù)原處理的數(shù)據(jù)壓縮方法,以及能對所壓縮的數(shù)據(jù)串進行數(shù)據(jù)復(fù)原的方法和信息處理裝置。
另外,本發(fā)明還有一目的是提供一種比增量分解法更高的壓縮率的方法,從而能減少為存放被壓縮的數(shù)據(jù)串及此時所生成的辭典所必需的存貯容量的數(shù)據(jù)壓縮方法,以及能復(fù)原被壓縮數(shù)據(jù)串的數(shù)據(jù)復(fù)原方法和信息處理裝置。
為解決上述問題,本發(fā)明所提出利用能與編目號相關(guān)地登記編目數(shù)據(jù)串的辭典,將二個以上數(shù)據(jù)串的組合來置換該編目號來進行數(shù)據(jù)壓縮的數(shù)據(jù)壓縮方法。為此,對辭典進行更新直到形成最適于作為壓縮對象的數(shù)據(jù)串的數(shù)據(jù)壓縮的辭典,在形成了該最適宜辭典時期將其作為最后用于復(fù)原的靜態(tài)辭典輸出,同時利用該靜態(tài)辭典對作為壓縮對象的數(shù)據(jù)串進行數(shù)據(jù)壓縮,再將經(jīng)壓縮的數(shù)據(jù)串作為最后用于復(fù)原的壓縮數(shù)據(jù)輸出。
在本發(fā)明中,編目數(shù)據(jù)串是與編目號相關(guān)連地登記在辭典中的。然后,再將二個以上的數(shù)據(jù)串的組合來置換其編目號,進行數(shù)據(jù)壓縮。這樣進行數(shù)據(jù)壓縮,就可能在復(fù)原時,依靠由該編目號讀出所述編目數(shù)據(jù)串來復(fù)原原始數(shù)據(jù)串。此時,辭典被加以更新,直至形成最適于作為壓縮對象的數(shù)據(jù)串的數(shù)據(jù)壓縮的辭典。即,對辭典加以更新直到例如壓縮數(shù)據(jù)的數(shù)據(jù)量、辭典的數(shù)據(jù)量等成為最合適時為止。然后,在形成了最合適的辭典時即將其作為最后用于復(fù)原的靜態(tài)辭典輸出。并利用該靜態(tài)辭典時作為壓縮對象的數(shù)據(jù)串?dāng)?shù)據(jù)壓縮,將經(jīng)過壓縮的數(shù)據(jù)串作為最后用于復(fù)原的壓縮數(shù)據(jù)輸出。然后,將所輸出的最后的靜態(tài)辭典、壓縮數(shù)據(jù)存入例如存貯裝置、存貯媒體中,利用打印、計算機等信息處理裝置加以復(fù)原,從而恢復(fù)該原始數(shù)據(jù)串。這樣,在本發(fā)明中是對辭典進行更新直至形成最適宜的辭典,將此最適宜辭典作為靜態(tài)辭典利用來作數(shù)據(jù)壓縮。因此,就能保證所輸出的靜態(tài)辭典及壓縮數(shù)據(jù)的數(shù)據(jù)量最適宜。而且,由于在被十。這樣,在本發(fā)明中是對辭典進行更新直至形成最適宜的辭典,將此最適宜辭典作為靜態(tài)辭典利用來作數(shù)據(jù)壓縮。因此,就能保證所輸出的靜態(tài)辭典及壓縮數(shù)據(jù)的數(shù)據(jù)量最適宜。而且,由于在被輸出之前辭典并不必須是靜態(tài)辭典,所以就有可能依靠利用例如數(shù)據(jù)壓縮率非常高的動態(tài)辭典的數(shù)據(jù)壓縮算法等進行數(shù)據(jù)更新,作數(shù)據(jù)壓縮。由此就可能使最后的壓縮數(shù)據(jù)的數(shù)據(jù)壓縮率大大增加。另一方面,因為所輸出的辭典為靜態(tài)辭典,就可能利用這一靜態(tài)辭典靈活地對必要的數(shù)據(jù)串加以復(fù)原。
而在前述的形成最適宜的辭典之前對所述辭典的更新中,可根據(jù)優(yōu)先登記組合個數(shù)多的數(shù)據(jù)串組合的原則,在辭典的登記數(shù)達到規(guī)定數(shù)量時,由所形成的辭典中消除使用頻率低的編目數(shù)據(jù)串的登記數(shù)。
這樣,將組合個數(shù)多的數(shù)據(jù)串的組合優(yōu)先加以登記來產(chǎn)生辭典,其具體作法之一是,可以采用被稱之為滑尺辭典的方法。在利用這一滑尺辭典方法的情況下,利用滑尺辭典方法查尋出以往的數(shù)據(jù)串與作為對象的數(shù)據(jù)串之間最相一致的數(shù)據(jù)串,將此最相一致的數(shù)據(jù)串登記進辭典中,由此來形成辭典。因而就可能形成由將組合個數(shù)多的數(shù)據(jù)串組成優(yōu)先登記而成的辭典。而后,依靠使用這樣的辭典,由于組合個數(shù)多的數(shù)據(jù)串的組合被優(yōu)先地置換到辭典的編碼號,就可能使得數(shù)據(jù)壓縮率成為最滿意狀態(tài)。另一方面,這樣形成的辭典其登記數(shù)量會很大。因而,由這樣形成的辭典中削除使用頻率低的編目數(shù)據(jù)串的登記來進行辭典更新,如辭典登記數(shù)達到規(guī)定數(shù)而結(jié)束更新時,就能形成壓縮率優(yōu)良、亦就是說數(shù)據(jù)量很少的最適當(dāng)?shù)霓o典。
再者,在前述對辭典更新以形成最適當(dāng)?shù)霓o典的過程中,按照對出現(xiàn)概率高的數(shù)據(jù)串的組合作優(yōu)先登記的原則,由所形成的辭典中削除使用頻率低的編目數(shù)據(jù)串的登記直至辭典的登記數(shù)到達規(guī)定數(shù)為止。
此時是根據(jù)優(yōu)先登記出現(xiàn)概率高的數(shù)據(jù)串組合的原則來形成辭典,這種數(shù)據(jù)串組合的出現(xiàn)概率,例如說可由對作為壓縮對象的全部數(shù)據(jù)串的出現(xiàn)概率進行的檢驗中來求得。然后,由利用這樣形成的辭典,出現(xiàn)概率高的數(shù)據(jù)串組合被優(yōu)先地置換到編目號,就能使數(shù)據(jù)壓縮率達到最滿意。再由所形成的辭典削除使用頻率低的編目數(shù)據(jù)串的登記進行辭典更新,在辭典的登記數(shù)成為規(guī)定的數(shù)量而結(jié)束更新操作時,就可能形成數(shù)據(jù)量少的最滿意的辭典。
另外,在前述對辭典加以更新直至形成最滿意辭典的過程中,在數(shù)據(jù)壓縮時一邊按照動態(tài)變化的數(shù)據(jù)壓縮算法進行辭典更新一邊對作為壓縮對象的全部數(shù)據(jù)串作數(shù)據(jù)壓縮處理,利用由這種處理所更新的辭典再次一邊按照前述數(shù)據(jù)壓縮算法更新辭典一邊對作為壓縮對象的全部數(shù)據(jù)串進行數(shù)據(jù)壓縮處理,反復(fù)進行前述處理直至數(shù)據(jù)壓縮率成為最滿意為止。
此時,在進行數(shù)據(jù)壓縮時,按照動態(tài)變化的數(shù)據(jù)壓縮算法,例如增量分析算法、增加分解算法等對辭典加以更新,同時進行對全部壓縮對象數(shù)據(jù)串的數(shù)據(jù)壓縮處理。然后利用經(jīng)這種處理所更新的辭典再次按照前述數(shù)據(jù)壓縮算法更新辭典同時對全部壓縮對象數(shù)據(jù)串進行數(shù)據(jù)壓縮處理。從而反復(fù)進行這種處理直到數(shù)據(jù)壓縮成為最滿意,以形成最佳辭典。根據(jù)本發(fā)明,依靠采用數(shù)據(jù)壓縮率高的動態(tài)辭典的數(shù)據(jù)壓縮算法進行數(shù)據(jù)壓縮,而且在數(shù)據(jù)壓縮率成為最佳階段結(jié)束辭典的更新,因而可大大提高數(shù)據(jù)壓縮率。另一方面,由于輸出的辭典成為靜態(tài)辭典,所以可能利用此靜態(tài)辭典靈活地復(fù)原必要的數(shù)據(jù)串。
本發(fā)明中的利用可能與編目號相關(guān)連地登記編目數(shù)據(jù)串的辭典、將二個以上數(shù)據(jù)串的組合置換該編目號來進行數(shù)據(jù)壓縮的數(shù)據(jù)壓縮方法包括下列步驟(A)由作為壓縮對象的數(shù)據(jù)串中取出規(guī)定數(shù)的數(shù)據(jù)串存入具有規(guī)定數(shù)緩存器的工作區(qū);(B)判斷前述工作區(qū)內(nèi)相鄰緩存器中所存放的數(shù)據(jù)串組合是否已被登記在辭典中,在被登記于辭典中的情況下,將該數(shù)據(jù)串組合置換到辭典中前述編目號,同時為填滿由這種置換所產(chǎn)生的空的緩存器而使數(shù)據(jù)串在工作區(qū)內(nèi)移位,將后續(xù)的數(shù)據(jù)串取入在工作區(qū)端部所產(chǎn)生的空緩存器中,再次判斷工作區(qū)內(nèi)相鄰緩存器中所存放的數(shù)據(jù)串組合是否已被登記在辭典中;(C)根據(jù)上述步驟(B)的判斷,在工作區(qū)內(nèi)相鄰緩存器中存放的數(shù)據(jù)串組合哪一個也沒有被登記在辭典中的情況下,將由工作區(qū)起始的第1、第2緩存器中所存放的數(shù)據(jù)串組合在辭典中加以登記,同時消除第一數(shù)據(jù)串,并為填充由此消除操作所形成的空緩存器而使數(shù)據(jù)串在工作區(qū)內(nèi)作位移,再將后續(xù)數(shù)據(jù)串取入由于上述移位而在工作區(qū)末端所產(chǎn)生的空緩存器中;重復(fù)進行上述步驟(B)、(C),直至作為壓縮對象的所有數(shù)據(jù)串均被存入所述工作區(qū)內(nèi)。
這樣,就先對工作區(qū)內(nèi)相鄰緩存器中所存放的數(shù)據(jù)串組合是否被登記在辭典中進行分析,在已被登記的情況下就置換到辭典的編碼號。然后在由此而產(chǎn)生的空緩存器中裝入后續(xù)的數(shù)據(jù)串,再次對數(shù)據(jù)串組合是否被登記在辭典中進行分析。在判斷數(shù)據(jù)組合未被登記在辭典中時,就由頭開始將第一、第二數(shù)據(jù)串組合加以登記,并將后續(xù)的數(shù)據(jù)串取入由此所產(chǎn)生的空緩存器中。就這樣重復(fù)進行這些處理,直至全部數(shù)據(jù)串被存放工作區(qū)內(nèi),由此來進行數(shù)據(jù)壓縮。如根據(jù)本發(fā)明,設(shè)置一定容量的工作區(qū),在此工作區(qū)內(nèi)存在有與所關(guān)注的數(shù)據(jù)串相同的數(shù)據(jù)串時就執(zhí)行利用辭典的置換處理。因此,特別是在對同一數(shù)據(jù)串進行壓縮處理的情況下,辭典的登記數(shù)就可能比過去的增量分析法要少得多,同時,由該辭典的編目號進行置換施加的壓縮數(shù)據(jù)本身,也可能比之過去的增量分析法數(shù)據(jù)量少得多。
在上述的對作為壓縮對象的全部數(shù)據(jù)串被加以處理之前通過重復(fù)一次上述步驟(B)、(C)的情況下,就利用前次過程中被更新的辭典來進行當(dāng)前過程中的數(shù)據(jù)壓縮。
在當(dāng)前過程中前述(B)、(C)步驟重復(fù)的次數(shù)小于前次過程中的重復(fù)次數(shù)的情況下就轉(zhuǎn)移到下一過程,而在當(dāng)前過程中前述步驟(B)、(C)的重復(fù)次數(shù)比前次過程中重復(fù)的次數(shù)還大的情況下,就將在前次過程中更新的辭典作為最后復(fù)原用的靜態(tài)辭典輸出,同時利用該靜態(tài)辭典進行一次過程的數(shù)據(jù)壓縮,并將壓縮所得的數(shù)據(jù)串作為最后的用于復(fù)原的壓縮數(shù)據(jù)輸出。
這就是說,將當(dāng)前過程中處理重復(fù)次數(shù)與前次過程的處理重復(fù)次數(shù)加以比較,判斷是否達到最佳數(shù)據(jù)壓縮率。而在達到最佳數(shù)據(jù)壓縮率時將該辭典作為最后的靜態(tài)辭典,并將此靜態(tài)辭典及利用此靜態(tài)辭典壓縮的數(shù)據(jù)輸出。從而,有可能利用壓縮率很高的增加分解算法作數(shù)據(jù)壓縮來大大提高數(shù)據(jù)壓縮率,同時由于輸出的辭典成為靜態(tài)辭典,也就有可能利用該靜態(tài)辭典靈活地復(fù)原必要的數(shù)據(jù)串。
此外,在前述方法中還將編目號、編目數(shù)據(jù)串以及使用頻率信息一同存貯在前述辭典中,并依次削除使用頻率低的編目數(shù)據(jù)。
這就是說,由于依次削除使用頻率低的編目數(shù)據(jù)串的登記,在辭典的可能登記的量有一定的限制時,就可能將辭典的數(shù)據(jù)量安排成最理想的大小。
在前述的削除使用頻率低的編碼數(shù)據(jù)串操作中,逐漸順次減少辭典中登記的編目數(shù)據(jù)串的使用頻率數(shù),對使用頻率數(shù)據(jù)先成為規(guī)定數(shù)目以下的編碼數(shù)據(jù)串優(yōu)先進行削除。
由于這種依次減少辭典中所登記的編目數(shù)據(jù)串的使用頻率數(shù),而對使用頻率數(shù)最好成為規(guī)定數(shù)以下的編目數(shù)據(jù)串優(yōu)先削除,就使得在辭典的可能登記數(shù)有限時,能得到辭典的登記量的最佳狀態(tài)。由于是優(yōu)先削除使用頻率成為規(guī)定數(shù)目以下的編目數(shù)據(jù)串,能夠在辭典中保留使用頻率高的編碼數(shù)據(jù)串,形成最佳辭典。
在本發(fā)明的上述處理過程中,作為壓縮對象的數(shù)據(jù)串是字符打印時所必須的字形數(shù)據(jù)。
在這些作為壓縮對象的字符打印所需字形數(shù)據(jù)中包括有位映象字形數(shù)據(jù)、輪廓字形數(shù)據(jù)等。在壓縮位映象字形數(shù)據(jù)時,例如可以縱向、橫向排列的規(guī)定數(shù)量單位(例如一個字節(jié)單位、一個字單位)的點數(shù)據(jù)作為壓縮對象。而在輪廓字形數(shù)據(jù)壓縮的場合,則可以例如構(gòu)成字符輪廓的各點的屬性信息、有關(guān)控制各點的向量座標(biāo)的信息等作為壓縮對象。
在本發(fā)明中的上述處理中,上述的字形數(shù)據(jù)中僅僅一部分成為所述的壓縮對象數(shù)據(jù),而對其他一部分則以另外的數(shù)據(jù)壓縮方法進行壓縮處理。
為此,根據(jù)構(gòu)成字形數(shù)據(jù)的數(shù)據(jù)特性,一部分?jǐn)?shù)據(jù)由采用靜態(tài)辭典、增量分析算法、增加分解算法等的數(shù)據(jù)壓縮方法進行壓縮,向另外一部分則以例如霍夫曼編碼技術(shù)進行壓縮。這樣,按照數(shù)據(jù)特性來更換相適應(yīng)的壓縮方法,就可能進一步提高數(shù)據(jù)壓縮率。
另外,在本發(fā)明的方法中,針對具有共同字形的所述字符采用共同的所述辭典來進行數(shù)據(jù)壓縮。
在這種對具有共同字形的字符以共同的辭典進行的壓縮中,例如說,針對明體字符時,對全部采用專用明體字符的辭典進行更新和數(shù)據(jù)壓縮,以得到最后的靜態(tài)辭典和壓縮數(shù)據(jù)。而針對黑體字字符串,則對全部采用專用黑體字的辭典進行數(shù)據(jù)更新和數(shù)據(jù)壓縮,以得到最后的靜態(tài)辭典和壓縮數(shù)據(jù)。這樣針對各種字形使辭典共同化,就能改善數(shù)據(jù)壓縮頻率。
在本發(fā)明中作為壓縮對象的數(shù)據(jù)串是字符串。
利用字符串作為壓縮對象,能夠節(jié)省例如存貯字符所需要的容量等。
在前述本發(fā)明的數(shù)據(jù)壓縮方法中,根據(jù)最后形成的辭典中所包含的編目號及編目數(shù)據(jù)串,形成包含有將前述編目數(shù)據(jù)串變換成專用于復(fù)原的數(shù)據(jù)形式的復(fù)原專用編目數(shù)據(jù)串、該復(fù)原專用編目數(shù)據(jù)串的長度、及該復(fù)原專用編目數(shù)據(jù)串的起始地址的信息的專用于復(fù)原的辭典。
在形成這種包含有復(fù)原專用編目數(shù)據(jù)串、該復(fù)原專用編目數(shù)據(jù)串的數(shù)據(jù)長度、及該復(fù)原專用編目數(shù)據(jù)串的起始地址的信息的專用于復(fù)原的辭典后,就可在進行復(fù)原時利用這一復(fù)原專用辭典來將數(shù)據(jù)加以復(fù)原。亦即,由前述起始地址所指定的位置讀出所述數(shù)據(jù)長度所指明的長度的前述復(fù)原專用編目數(shù)據(jù)串,而將數(shù)據(jù)由辭典中讀出進行復(fù)原處理。在這種情況下,復(fù)原專用編目數(shù)據(jù)被變換成復(fù)原專用的數(shù)據(jù)形式。因而,就可能以較之采用一般的辭典的情況快得多的速度進行復(fù)原處理。
上述本發(fā)明的數(shù)據(jù)壓縮方法還包括,利用由所述數(shù)據(jù)壓縮方法形成的壓縮數(shù)據(jù)及最后的辭典,依靠與該數(shù)據(jù)壓縮方法相對應(yīng)的復(fù)原處理將作為壓縮對象的數(shù)據(jù)串加以復(fù)原。
利用所述壓縮方法形成的壓縮數(shù)據(jù)及最后的辭典復(fù)原原始數(shù)據(jù)串,就能用這樣復(fù)原的數(shù)據(jù)串來進行規(guī)定處理,例如說字符的打印處理等。
此外,本發(fā)明還包括有,利用上述壓縮方法所形成的壓縮數(shù)據(jù)及最后的辭典,依靠與該壓縮方法相應(yīng)的復(fù)原處理來對作為壓縮對象的數(shù)據(jù)串進行復(fù)原的裝置。
這種利用上述數(shù)據(jù)壓縮方法所形成的壓縮數(shù)據(jù)及最后的辭典來復(fù)原原始數(shù)據(jù)的復(fù)原裝置可以是例如計算機、打印機等信息處理裝置中的內(nèi)裝設(shè)施。
下面對本發(fā)明的最佳實施例進行說明。在下面第1、第2實施例中,為說明簡單起見,采用主要以字符串作為數(shù)據(jù)串加以壓縮的情況舉例進行說明。不過,本發(fā)明中的數(shù)據(jù)串并不僅僅指這樣的字符串,而是包括例如為組成字形數(shù)據(jù)的字節(jié)串、字串等所有種類的數(shù)據(jù)串。
對本發(fā)明書中所列附圖的簡單說明

圖1為說明本發(fā)明第一實施例的數(shù)據(jù)壓縮方法的流程圖;圖2為采用另一實施例數(shù)據(jù)壓縮方法的數(shù)據(jù)壓縮裝置12的結(jié)構(gòu)示例方框圖;圖3(A)~(E)為對滑尺辭典方法的概略說明圖;圖4為說明利用滑尺辭典方法取得最佳辭典的手法的流程圖;圖5為說明利用增量分析算法取得最佳辭典的手法的流程圖;圖6為對產(chǎn)生靜態(tài)辭典及壓縮數(shù)據(jù)的過程所作的圖形說明;圖7為對本發(fā)明第一實施例中所用的數(shù)據(jù)壓縮方法作模式說明的概略說明圖;圖8(A)、(B)為增量分析法與增加分解法處理之間的差別的模式說明圖;圖9為說明增量分析法的流程圖;圖10(A)、(B)為表明增量分析法與增加分解法處理的差異的模式圖;圖11為說明增加分解法進行一次處理過程的流程圖;圖12為說明辭典最佳化的多次處理過程的流程圖13(A)為表示包含使用頻率信息的辭典結(jié)構(gòu)的圖示;圖13(B)為說明根據(jù)使用頻率作削除編目處理的流程圖;圖14(A)為說明復(fù)原專用辭典的結(jié)構(gòu)的圖示;圖14(B)為說明按字符起始地址及字符串長度指定字符串的核心部分的圖示;圖15為采用復(fù)原專用辭典時的復(fù)原處理流程圖;圖16(A)、(B)為對位映象數(shù)據(jù)作概略說明的圖示;圖17為對字符的位映象圖形作概略說明的圖示;圖18為對輪廓字形概略說明的圖示;圖19(A)、(B)為對輪廓字形數(shù)據(jù)的壓縮作概略說明的圖示;圖19(C)為這一壓縮數(shù)據(jù)的復(fù)原處理流程圖;圖20為利用實施例的數(shù)據(jù)壓縮方法的狀態(tài)。
圖1中所示為說明本發(fā)明第一實施例的數(shù)據(jù)壓縮方法的流程圖。在本實施例的數(shù)據(jù)壓縮方法中,采用可能與編目號相關(guān)地登記編目數(shù)據(jù)的辭典。而后,將二個以上的數(shù)據(jù)串的組合置換該編目號,由此來進行數(shù)據(jù)壓縮。首先,由作為壓縮對象的全部數(shù)據(jù)串(例如字符串)來形成辭典(步驟A1),對辭典反復(fù)進行更新直至形成對數(shù)據(jù)壓縮最佳的辭典(步驟A2、A3)。然后,在生成最佳辭典的時期即將該辭典看作為最后的用于復(fù)原的靜態(tài)辭典,并根據(jù)這一靜態(tài)辭典對作為壓縮對象的數(shù)據(jù)串進行數(shù)據(jù)壓縮(步驟A4)。再將由此壓縮得到的最后的專用于復(fù)原的壓縮數(shù)據(jù)及最后的專用于復(fù)原的靜態(tài)辭典輸出,存貯進屏蔽型ROM、EEPROM等的存儲裝置、存儲媒體中。然后,利用這些存儲裝置等中存放的靜態(tài)辭典及壓縮數(shù)據(jù),在打印機或主計算機等信息處理裝置內(nèi)部進行數(shù)據(jù)復(fù)原處理。
在形成、更新辭典的過程中,對何時成為數(shù)據(jù)壓縮的最佳辭典的判定技術(shù),可以有后面介紹的種種技術(shù)。
圖2中示出了采用本實施例的數(shù)據(jù)壓縮方法的數(shù)據(jù)壓縮裝置12的結(jié)構(gòu)示例。首先,作為壓縮對象的全部數(shù)據(jù)串11被輸入進辭典形成、更新手段13,由其進行對辭典的形成、更新處理。而后,在形成對數(shù)據(jù)壓縮最佳的辭典時期,將該辭典作為靜態(tài)辭典14保持在靜態(tài)辭典保持手段15中。然后,該被保持的最佳靜態(tài)辭典14由輸出手段16輸出外部存儲手段(圖中未示出),另一方面,在數(shù)據(jù)壓縮手段17中被用于對全部數(shù)據(jù)串11進行數(shù)據(jù)壓縮。這一壓縮由將二個以上的數(shù)據(jù)串的組合置換到辭典的編目號來進行。然后將其結(jié)果所得的壓縮數(shù)據(jù)19,由壓縮數(shù)據(jù)輸出手段18輸出到外部存儲手段。
下面對本實施例中辭典的結(jié)構(gòu)予以說明。例如,考慮對數(shù)據(jù)串(字符串)″Static-String-dictionary″的壓縮情況。此時,在辭典中被登記有像″St″、″at″、″ic″、″_″、″st″、″ring-d″、″ic″、″tionary″這樣的8個數(shù)據(jù)串組合。在這種情況下,這些數(shù)據(jù)串組合,例如像下述所示的那樣與編目號相關(guān)連地被加以登記0St.
1at2ic3_4ring-d5tionary。
這樣,整個的″Static-String-dictionary″數(shù)據(jù)串,就可能利用這些編目號置換成為如同0、1、2、3、0、4、2、5那樣,由此而將數(shù)據(jù)進行了壓縮。
下面對形成最佳辭典的種種技術(shù)加以說明。在本實施例中,最后將靜態(tài)辭典和壓縮數(shù)據(jù)兩者輸出,并將它們存放在存儲裝置中。因此,為節(jié)省存儲裝置的使用容量,就必須降低最后的靜態(tài)辭典和壓縮數(shù)據(jù)的數(shù)據(jù)量,將這些數(shù)據(jù)量作成很少的辭典就可以看作為最佳辭典。亦即,為實現(xiàn)最佳辭典,就希望辭典本身的數(shù)據(jù)量能很小,或者,希望壓縮數(shù)據(jù)的數(shù)據(jù)量能很小。為此目的,本實施例中采用了例如以下的四種技術(shù)。
(A)為取得最佳辭典的第一種技術(shù)在這種技術(shù)中,利用稱之為滑尺辭典的技術(shù),將組合個數(shù)多的數(shù)據(jù)串的組合優(yōu)先地加以登記來形成辭典。然后按照使用頻率信息依次逐漸地削除所形成的辭典的登記數(shù)量,來獲得最佳辭典。
首先,對所謂的滑尺辭典利用圖3(A)~(E)加以說明。采用這一技術(shù)時,將作為壓縮對象的整個字符串41由頭開始依次取作對象字符串43存入作為工作區(qū)的存儲器空間。然后,對早先的字符串42(由頭開始至對象字符串43前)檢查其中是否存在與該對象字符串43相同的字符串。如果在早先的字符串42中不存在有相同的字符串,就將該對象字符串43的最先一字符由對象字符串43向早先的字符串42作位移(進行滑動)。另一方面,如果在早先字符串中存在有相同字符時,檢驗下一字符串是否也一致,重復(fù)這樣的過程以找出對象字符串43與早先的字符串42之間的最長的一致字符串(字符串的組合個數(shù)最多的)。
例如在作為壓縮對象的字符串為ABCABCDEF的情況下,首先,A成為對象字符串43,由于早先沒有相同的字符串,A就向作為早先的字符串42的滑尺辭典移動(見圖3(B))。然后,B、C由于同樣在早先的字符串中沒有同樣的字符串而向滑尺辭典位移(見圖3(C))。再后,又一次A成為對象字符串43,在這種情況下,由于A在滑尺辭典中存在有,由檢驗下一個B是否一致(圖3(D))。由于這時也為一致,故對下一個C檢驗其一致性(見圖3(E))。接著下面檢驗D是否一致,D在滑尺辭典中不存在。因而在這種情況下,ABC成為最長一致的字符串。
這樣,在這種稱之為滑尺辭典的技術(shù)中,籍助這樣查找出的最長一致字符串ABC,就將例如ABCABCDEF字符串壓縮成「A」、「B」、「C」、與前面三個相同三個字符、「D」、「E」、「F」。具體說,在不存在一致的情況下,以「無一致標(biāo)志=1及其字符碼」來表示該字符串;而在存在有一致的情況下,則依靠由「無一致標(biāo)志=0及一致地點和一致長」來表示該最長一致的字符串,進行數(shù)據(jù)壓縮。
不過在本實施例中,滑尺辭典技術(shù)并不用于實際的數(shù)據(jù)壓縮,而僅僅是用來求取壓縮對象字符串中的最長一致字符串。而在本實施例中,一旦查找出最長一致字符串,就將此最長一致字符串與編目號相關(guān)連地登記到辭典中。在上述例子中,ABC就被登記到辭典中。就這樣,在全部壓縮對象字符串中查找出出現(xiàn)兩次以上的最長一致字符,并將它們登記在辭典中。在上述例子中,ABC就被登記到辭典中。就這樣,在全部壓縮對象字符串中查找出出現(xiàn)兩次以上的最長一致字符,并將它們登記在辭典中。據(jù)此,組合個數(shù)多的字符串就被優(yōu)先地登記在辭典中。
在采用滑尺辭典的場合需要將早先的字符串存放在存儲器中。但是,如圖3(A)中所示那樣,存儲器容量有限時,可能存進存儲器的范圍也就有限。因而,在這種情況下,在早先的字符串42中只有能存放進存儲器的范圍內(nèi)的才構(gòu)成辭典。
在圖4中示出了為說明利用滑尺辭典技術(shù)來得到最佳辭典的技術(shù)的流程圖。如圖4中所示,首先,利用滑尺辭典技術(shù)查找出壓縮對象字符串中出現(xiàn)兩次以上的最長一致字符,將它們登記進辭典從而形成辭典(步驟B1)。接著,利用所形成的辭典由全部壓縮對象字符串中查找出與辭典編目字符串最長一致的字符串組合,在查找出的時刻將其編目字符串的使用頻率逐次增加(步驟B2)。例如在壓縮對象字符串為ABCDEF,而編目字符串為AB和ABC的情況下,編目字符串ABC的使用頻率就被加1。
就這樣在計算使用頻率之后,依次由使用頻率低的編目字符串中削除例如100個限度的登記(步驟B3)。此時,可能登記到辭典的數(shù)據(jù)例如為4096-256=3840個時,對登記進行消除應(yīng)使得整個登記數(shù)保持為3840個。具體說,例如在削除前的辭典的整個登記數(shù)為3900個時僅削除60個。
接著,判斷整個登記數(shù)是否低于3840個(規(guī)定數(shù))(步驟B4),在多于3840個時返回到步驟B2計算再次使用頻率,在步驟B3削除100個限度的登記。就這樣重復(fù)步驟B2-B4,依次逐個減少辭典的登記。然后,在登記數(shù)3840時轉(zhuǎn)移到步驟B5。如上所述因為能在辭典中登記例如3840個,所以在登記數(shù)成為3840個時就使得該辭典成為最佳辭典。
最后,將此最佳辭典作為靜態(tài)辭典,利用此靜態(tài)辭典對全部壓縮對象字符串進行壓縮,再將最后的靜態(tài)辭典及壓縮數(shù)據(jù)輸出。
(B)為取得最佳辭典的第二種技術(shù)在這一技術(shù)中,利用優(yōu)先登記出現(xiàn)頻率高的字符串組合來形成辭典。然后,根據(jù)使用頻率信息依次削除所形成的辭典的登記數(shù)來達到最佳辭典。
首先,對作為壓縮對象的全部字符串例如進行一次分析來計算各字符串的出現(xiàn)概率。此后根據(jù)這一出現(xiàn)概率來求得字符串的組合的出現(xiàn)概率。
例如,利用上述分析、計算求得a,b,c,d的出現(xiàn)概率為a50%,b20%,c10%,d5%。這樣,計算得的aa等的字符串組合的出現(xiàn)率為aa25%,aaa12.5%,ab10%,ba10%, ac5%,ca5%,aab5%,aba5%,baa5%,ad2.5%…但是,這里字符間的出現(xiàn)概率無相關(guān)的聯(lián)系,是一種假定情況中的予料值。
就這樣在求得字符串組合的出現(xiàn)概率后,由這些出現(xiàn)概率高的字符串的組合中優(yōu)先地進行登記來形成辭典。接著借助例如圖4的步驟B2-B4同樣的做法,削除使用頻率低的字符串的編目,直至辭典的編目數(shù)成為規(guī)定數(shù)例如3840個,以形成最佳辭典。然后采取與步驟B5、B6的同樣做法,將利用其最后的靜態(tài)辭典壓縮的壓縮數(shù)據(jù)輸出。采用以上的做法,具有一次掃描就能完成最初的分析的優(yōu)點。
(C)為取得最佳辭典的第三種技術(shù)在這種技術(shù)中,利用增量分析算法來得到最佳辭典。關(guān)于增量分析算法的細(xì)節(jié),將在后述的第二實施例中對增加分析算法的對比中說明。
圖5示出了說明利用增量分析算法求取最佳辭典的技術(shù)的流程圖。在這一技術(shù)中,首先進行辭典的初始化(步驟C1)。由此使得成為僅在辭典的編目號0-255中登記有編目字符串的狀態(tài)。具體說是在0-255中存放ASC11碼的字符。其次將表示壓縮數(shù)據(jù)的輸出次數(shù)的NUM0設(shè)置為NUMO=0(步驟C2)。然后利用增量分析算法更新辭典并同時對所有壓縮對象字符串進行數(shù)據(jù)壓縮,而在需要輸出壓縮數(shù)據(jù)時將上述NUM0值增加1(步驟C3)。此時壓縮數(shù)據(jù)本身并不輸出到外部。步驟C3的處理是為更新辭典的目的進行的處理。
接著將NUM1設(shè)置為NUM1=0(步驟C4)。此后應(yīng)用在步驟C3最后得到的辭典,進行與步驟C3同樣的處理。亦即,利用增量分析算法更新辭典同時對全部壓縮對象字符串進行數(shù)據(jù)壓縮,在需要輸出壓縮數(shù)據(jù)時將上述NUM1值加1(步驟C5)。此時壓縮數(shù)據(jù)本身亦不輸出到外部。
接著,判斷NUM1是否大于NUM0(步驟C6)。由此來判斷步驟C5的處理數(shù)據(jù)壓縮率是否成為最佳狀態(tài),亦即是否達到最佳的辭典。此時,如果NUM1≤NUM0,就作為尚未成為最佳辭典,使NUM0=NUM1(步驟7),重復(fù)步驟C4、C5的處理。NUM0、NUM1表示壓縮數(shù)據(jù)的輸出次數(shù),這些數(shù)小也就意味著壓縮數(shù)據(jù)的數(shù)據(jù)量亦少。因此,NUM1≤NUM0就意味著步驟C5的處理使數(shù)據(jù)壓縮率增加。因此,在這種情況下就需要再次重復(fù)步驟C4、C5。然后在步驟C6,當(dāng)成為NUM1>NUM0時,判定為數(shù)據(jù)壓縮中的最佳辭典。
接著,將該最佳辭典作為靜態(tài)辭典,依靠此靜態(tài)辭典對所有壓縮對象字符串進行壓縮(步驟C8)。但是,在這一數(shù)據(jù)壓縮時,不進行辭典更新。最后將此最后的靜態(tài)辭典及由其進行壓縮的壓縮數(shù)據(jù)輸出(步驟C9)。
圖6中對上述處理作出了圖形表示。全部壓縮對象字符串21首先接收第一次分析,由此來形成暫時的辭典22(這一辭典為動態(tài)辭典)。接著再對全部壓縮對象字符串21進行第二次分析,產(chǎn)生更新版次1的辭典23。再次同樣操作以產(chǎn)生更新版次2的辭典24。就這樣重復(fù)地更新辭典,判定數(shù)據(jù)壓縮率在得到最佳辭典時期,將其作為最后版次的靜態(tài)辭典25。然后,利用此靜態(tài)辭典再次對全部壓縮對象字符串21進行壓縮。但是這時靜態(tài)辭典25是靜態(tài)地保持原樣,不進行辭典更新。然后,將此靜態(tài)辭典25及所壓縮的數(shù)據(jù)輸出到外部,存放進存儲裝置。
圖5、圖6所示的作法與LZW的主要區(qū)別如下述那樣。即就是,在LZW中,在數(shù)據(jù)壓縮后最終僅以壓縮數(shù)據(jù)作為生成物加以輸出,辭典是動態(tài)辭典不予輸出。LZW是通過電話線路的數(shù)據(jù)通信中所采用的數(shù)據(jù)壓縮技術(shù),在發(fā)送端輸出以LZW壓縮的數(shù)據(jù),在接收端將其復(fù)原。而在這種復(fù)原時,分析壓縮數(shù)據(jù)的特性,由壓縮數(shù)據(jù)再次重新形成動態(tài)辭典并同時必須進行數(shù)據(jù)的復(fù)原。因而就必須從存儲數(shù)據(jù)的開頭依次進行處理,復(fù)原速度很慢,并且不能隨意地存取所需的數(shù)據(jù)串加以復(fù)原。因此,要將采用LZW壓縮所得的數(shù)據(jù)應(yīng)用于打印機等的字形數(shù)據(jù)中就很困難。
針對這種情況,在圖5、圖6所示的技術(shù)中,與LZW不同,將最后所得的壓縮數(shù)據(jù)及靜態(tài)辭典二者均輸出。因而在作數(shù)據(jù)復(fù)原時就無必要再次產(chǎn)生辭典而使復(fù)原速度加快。而且由于采用了靜態(tài)辭典,就有可能隨意地訪問壓縮數(shù)據(jù)中所希望的數(shù)據(jù)串。這樣的復(fù)原速度快和能隨機訪問數(shù)據(jù)的優(yōu)點,不僅為此第三種技術(shù)所具備而且是在前述的第一、第二及后述的第四種技術(shù)中均能取得的優(yōu)點。
(D)為取得最佳辭典的第四種技術(shù)這一技術(shù)中采用增加分解算法來取得最佳辭典。對增加分解算法將在第二實施例中詳細(xì)說明。不過處理過程本身,除步驟C3、C5中的數(shù)據(jù)壓縮是利用增加分解算法進行此外,大致與圖5相同。
在上述第三種技術(shù)中,由于利用增量分析算法進行數(shù)據(jù)壓縮而能獲得高壓縮率的壓縮數(shù)據(jù),但因存在著一個一個字符的登記步驟,就決不能說處理速度很快,而且與增加分解算法相比壓縮率亦不很高。因此,在要提高壓縮率的場合,最好能采用利用增加分解算法的第四種技術(shù)。
在上述第一至第四種技術(shù)中,都是以固定畢特位長的編碼輸出壓縮數(shù)據(jù)。這種編碼,例如或者是12(畢特)位,或者是16位的一個字。但是,在16位字的情況下雖然具有處理速度得到改善的優(yōu)點,但另一面,也具有壓縮率比12位字時降低的缺點。
像以上那樣,如采用本實施例,為實現(xiàn)最佳的靜態(tài)辭典要根據(jù)使用頻率削除辭典編目,因而需要在壓縮過程中多次對數(shù)據(jù)進行掃描,所以處理時間很長。不過這對用戶來說根本不是問題。亦就是說,進行壓縮處理有必要將數(shù)據(jù)置入例如不能重寫的存儲裝置、存儲媒體(ROM等)的時間,這就是為在壓縮后的復(fù)原時的處理時間不受任何影響。具體說就是,在用戶利用裝載有存放用此壓縮方法壓縮的數(shù)據(jù)的存儲媒體的打印機進行打印時,盡管看來在生產(chǎn)者方面完成壓縮數(shù)據(jù)的時間似乎很長,而用戶在用其打印時進行復(fù)原處理的速度卻不會特別慢。
圖7中示出了對本發(fā)明第二實施例中所使用的數(shù)據(jù)壓縮方法(后面稱之為增加分解法或增加分解算法)作說明的模式圖。
作為壓縮對象的字符串?dāng)?shù)據(jù)1,其中部分開頭的數(shù)據(jù)首先被存放進作為操作用的存儲設(shè)施的工作緩存器2中。接著進行對在該工作緩存器2中是否存在有辭典3中所登記的數(shù)據(jù)串的比較,當(dāng)存在有時對辭典3中的信息加以更新,并同時將該工作緩存器2中的字符串以編目號置換,而將該工作緩存器2中補充進下一對象字符串。另一方面,如果不存在有被登記的字符串,則將該工作緩存器2中的起始二個字符登記到該辭典3中,并將起始的一字符作為壓縮數(shù)據(jù)4輸出。然后將該工作緩存器2作為壓縮數(shù)據(jù)4輸出。然后將該工作緩存器2中補充下一對象字符串,再次對該工作緩存器2中的字符串中是否存在有辭典3中所登記的字符串進行比較。反復(fù)進行上述處理過程來對數(shù)據(jù)進行壓縮。
下面,對用增加分解法對下列所示字符串?dāng)?shù)據(jù)作為壓縮對象進行處理,以得到靜態(tài)辭典和壓縮數(shù)據(jù)的情況作詳細(xì)說明。這里作為壓縮對象的字符串?dāng)?shù)據(jù)是「ABCEBCHA、BBCCDBCH、ABCABEHD、ABBCGABK…」。不過,此時在由可改善存儲單元構(gòu)成的辭典的0-255號中正登記有ASC11碼的字符。并將16字節(jié)容量的緩存器用作工作存儲設(shè)施。
(1)開始時,由作為壓縮對象的字符串?dāng)?shù)據(jù)的起始取入工作緩存器容量部分(16字節(jié))的數(shù)據(jù)。這樣,工作緩存器中的字符串就成為「ABCEBCHA、BBCCDBCH」。在此,各字符分別為以一字節(jié)表示的數(shù)值數(shù)據(jù),它們?nèi)缜笆瞿菢幼裱瑼SC11表。例如,″A″為65,″B″為66,″C″為67。
(2)接著,檢驗該工作緩存器中是否存在有已登記在辭典中的二個字符以上的字符串(字符串的組合)。但是,由于未登記有這樣的字符串,所以就將開始的二個字符″AB″作為長度為2(字符單位)數(shù)據(jù)欄中的65+66(″A″與″B″的ASC11碼)登記在辭典的例如第256位,此″256″號的使用頻率為1次。并將工作緩存器中最前的一字符″A ″的編目號″65″作為壓縮數(shù)據(jù)輸出,在工作緩存器中將其消去。然后,為填滿由此形成的工作緩存器上空白的一字節(jié),使其后的字符串全體向前方位移,這一結(jié)果所形成的工作緩存器末端的一字節(jié)空白中則由對象字符串?dāng)?shù)據(jù)的后續(xù)部分取進一個字符部分″A″。最后工作緩存器的字符串就成為「BCEBCHAB、BCCDBCHA」。
(3)再現(xiàn)檢驗該工作緩存器中是否存在有已在辭典中登記的二個以上字符的字符串。由于工作緩存器中第7、8個字符為″AB″字符串,將二字節(jié)的該字符″AB″置換成256的字符,將辭典″256″號的字符串的使用頻率更次為2次。由于經(jīng)過這一置換在工作緩存器中產(chǎn)生一字節(jié)的空白,為將其填滿而將其后面的字符串一齊向前位移,在由此形成的工作緩存器的末端的一字節(jié)空白中由后續(xù)對象字符串輸入一字符″B″。這樣,工作緩存器中的字符串就成為「BCEBCH256B、CCDBCHAB」。
(4)再次檢驗工作緩存器中是否存在有已在辭典中登記的二個字符以上的字符串。此時由于工作緩存器15、16號字符中為″AB″字符串,將此二字節(jié)的字符串″AB″置換成256的字符,將辭典的″256″號字符串的使用頻率更新為3次。因為這一置換在工作緩存器中產(chǎn)生一字節(jié)的空欄,為將其填滿而將其后面的字符串一齊向前位移,將此結(jié)果所產(chǎn)生的工作緩存器的末端的一空白字節(jié)由后續(xù)的對象字符串?dāng)?shù)據(jù)取入一字″C″。這樣,工作緩沖器中的字符串就成為「BCEBC256B、CCDBCH256C」。
(5)再次檢驗該工作緩存器中是否存在有辭典中已登記著的二個字符以上的字符串。但是由于此時沒有登記那樣的字符串,就將起頭的二字符″BC″作為長度2(字符)數(shù)據(jù)欄中的66+67登記進辭典的例如第257項中,并將該″257″號的使用頻率作為1次。而在將工作緩存器中的起始一字符″B″的編目號″66″作為壓縮數(shù)據(jù)輸出,并由工作緩存器中消去,為填充由此生成的工作緩存器中的一字節(jié)的空欄而使其后面的字符串整個向前方位移,并在此結(jié)果產(chǎn)生的工作緩存器的末端的一字節(jié)的空白中取進后續(xù)對象字符串?dāng)?shù)據(jù)串的一字″A″。這樣,工作緩存器中的字符串就成為「CEBCH256BC、CDBCH256CA」。
(6)再次檢驗該工作緩存器中是否存在有辭典中已登記著的二字符以上的字符串。此時,工作緩存器的第3、4字符、第7、8字符、和第11、12字符中存在有″BC″字符串,所以將總共六字節(jié)的此字符串″BC″分別置換為257的字符,而將辭典″257″項的字符串的使用頻率更新為4次。因此置換而在工作緩存器中產(chǎn)生3字節(jié)的空欄,為將其填充而將其后的字符串整個地向前方位移,并在這一結(jié)果所產(chǎn)生的工作緩存器末端的三字節(jié)的空白中由后續(xù)字符串?dāng)?shù)據(jù)中取入三字符″BEH″。這樣,工作緩存器中的字符串就成為「CE257H256257CD、257H256CABEH」。
(7)再次檢驗工作緩存器中是否存在有辭典中已登記著的二字符以上的字符串。此時,由于在工作緩存器的第13、14字符中存在著″AB″的字符串,將此二字節(jié)的字符串″AB″以256的字符置換,并將辭典″256″項的字符串的使用頻率更新為4次。由這一置換在工作緩器中產(chǎn)生一字節(jié)的空欄,為使其填滿將其后的字符串整個地向前方位移,在此結(jié)果生成的工作緩存器末端的一字節(jié)的空白中取入后續(xù)對象字符串?dāng)?shù)據(jù)中一個字符″D″。這樣,工作緩存器中的字符串就成為「CE257H256257CD、257H256C256EHD」。
(8)再次檢驗工作緩存器中是否存在有辭典中已登記著的二個字符以上的字符串。不過,由于沒有登記那樣的字符串,就將最前的二字符″CE″作為長度2(字符)的在數(shù)據(jù)欄中的67+69登記到辭典的例如第258項中,將此″258″項的使用頻率作為1次。而后將工作緩存器中的起頭字符″C″的編目號″67″作為壓縮數(shù)據(jù)輸出,并由緩存器上消去,為填充因此產(chǎn)生的工作緩存器上的一字節(jié)的空欄將其后的字符串整體向前方作位移,并在結(jié)果所產(chǎn)生的工作緩存器末端的一字節(jié)的空白中由后續(xù)對象字符串?dāng)?shù)據(jù)中取入一字符″A″。這樣,工作緩存器中的字符串就成為「E257H256257CD257、H256C256EHDA」。
(9)再次檢驗工作緩存器中是否存在有辭典中已登記表的二字符以上的字符串。不過因此時未登記有那樣的字符串,就將開頭的二字符″E257″作為長度2(字符)的數(shù)據(jù)欄中的69+257登記到辭典的例如第259項中,將此″259″號的使用頻率作為1次。并將工作緩存器的起始字符″E″的編目號″69″作為壓縮數(shù)據(jù)輸出,且由工作緩存器上消去,為填充由此產(chǎn)生的工作緩存器上的一字節(jié)的空欄將其后的字符串整個地向前方位移,而在結(jié)果所生成的工作緩存器的末端的一字節(jié)空白的中取入后續(xù)對象字符串?dāng)?shù)據(jù)的一個字符″B″。這樣,工作緩存器的字符串就成為「257H256257CD257、H256C256EHDAB」。
(10)再次檢驗工作緩存器中是否存在有已經(jīng)在辭典中登記著的二個以上的字符的字符串。此時由于在工作寄存器的第15、16字符上存在有″AB″字符串,將此二字節(jié)的字符串″AB″以256的字符置換,并更新辭典的″256″項的字符串的使用頻率為4次。因這一置換在工作緩存器中產(chǎn)生一字節(jié)的空欄,為將其填滿使其后的字符串整體向前方位移,而在由此結(jié)果所生成的工作緩存器的末端的一字節(jié)的空白中由后續(xù)對象字符串?dāng)?shù)據(jù)由取入一個字符″B″。這樣,工作緩存器中的字符串就成為「257H256257CD257、H256C256EHD256B」。
(11)再次檢驗工作緩存器中是否存在有已在辭典中登記著的二個以上字符的字符串。由于此時未登記有那樣的字符串,就將起頭的二字符″257H″作為長度2(字符)的數(shù)據(jù)欄中的257+72登記到辭典的例如第260編目,并將此″260″項的使用頻率作為1次。而將工作緩存器中起頭的字符″257″作為壓縮數(shù)據(jù)輸出,為填補由此生成的工作緩存器上的一字節(jié)的空欄使其后的字符串整體向前方位移,并在該結(jié)果所產(chǎn)生的工作緩存器的終端一字節(jié)的空白中取入后續(xù)對象字符串?dāng)?shù)據(jù)中一字符″C″。這樣工作緩存器中的字符串就成為「H256257CD257H、256C256EHD256BC」。
(12)再次檢驗工作緩存器中是否存在有已在辭典中登記著的二個以上字符的字符串。此時工作緩存器的第7、8字符為″257H″字符串,第15、16字符為″BC″字符串,就將總共為四字節(jié)的字符串″257H″置換為260、″BC″置換為″257″,并分別將辭典的″260″和″257″的使用頻率更新的2次和5次。這一置換在工作緩存器中生成二字節(jié)的空欄,為將其填滿使其后的字符串整體向前方位移,并在此結(jié)果所生成的工作緩存器的末端的二字節(jié)空白中取入后續(xù)對象字符串?dāng)?shù)據(jù)中的兩個字符″GA″。這樣,工作緩存器中的字符串就成為「H256257CD260256C、256EHD256257GA」。
(13)再次檢驗該工作緩存器中是否存在有已在辭典中登記著的二個字符以上的字符串。此時由于未登記那樣的字符串,將起頭的二字符″H256″作為長度2(字符)的數(shù)據(jù)欄中的72+256登記到辭典的例如第261項中。而將工作緩存器中起始一字符″H″的編目號″72″作為壓縮數(shù)據(jù)輸出,并從工作緩存器上消除,為填充由此生成的工作緩存器上的一字節(jié)的空欄使其后的字符串作整個向前方位移,在此結(jié)果生成的工作緩存器的末端一字節(jié)空白中取入后續(xù)對象字符串?dāng)?shù)串的一個字符″B″。這樣,工作緩存器中的字符串就成為「256257CD260256C256、EHD256257GAB」。
(14)再次檢驗工作緩存器中是否存在有已在辭典中登記著的二字符以上的字符串。此時由于未登記有那些字符串,就將起始的二字符″256257″作為長度4(字符)的數(shù)據(jù)欄中的256+257登記到辭典的例如第262項,并將此″262″項的使用頻率作為1次。而同時將工作緩存器的起始字符″256″作為壓縮數(shù)據(jù)輸出,在工作緩存器上消除,為填充由此產(chǎn)生的工作緩存器上的一字節(jié)的空欄而使后面的字符串整個地向前方位移,在該結(jié)果所生成的工作緩存器的末端的一字節(jié)空白中取入后續(xù)對象串?dāng)?shù)據(jù)中一字符″K″。這樣,工作緩存器的字符串就成為「257CD260256C256E、HD256257GABK」。
(15)再次檢驗工作緩存器中是否存在有已在辭典中登記著的二字符以上的字符串。此時,由于工作緩存器的第11、12字符為″256257″字符串,將此″256257″置換為262,并將辭典的″262″的使用頻率更新為2次。由于這種置換在工作緩存器中生成一字節(jié)的空欄,為將其填充而使其后的字符串整個地向前方位移,并在此結(jié)果產(chǎn)生的工作緩存器的末端一字節(jié)空白中取入后續(xù)對象字符串?dāng)?shù)據(jù)一個字符。這樣,工作緩存器的字符串就成為「257CD260256C256E、HD262GABK.」。
就這樣如采用本實施例的增加分解法,為使工作緩存器中總是保持一定的長度,而依次由壓縮對象字符串?dāng)?shù)據(jù)中取入數(shù)據(jù)。然后,如果由該工作緩存器中的起頭開始的相鄰結(jié)合成的字符串組合已被登記在辭典中時,就將其置換為辭典中的編目號,以此來實現(xiàn)壓縮。而且,如果在工作緩存器的中間包含著這一字符串的組合時,也將其置換為辭典的編目號作進一步的壓縮。因而,較之歷來的增量分析法的情況壓縮數(shù)據(jù)的數(shù)據(jù)量得到削減,結(jié)果就可能以較少的存儲容量來存放壓縮數(shù)據(jù)。而在工作緩存器內(nèi)由起頭開始的相鄰結(jié)合成字符串的組合未在辭典中登記的情況下,在將該字符串組合于辭典中登記后,再將壓縮數(shù)據(jù)輸出。
用樹形結(jié)構(gòu)對上述處理作模式表達就成為圖8(A)中所示。在圖8(A)中,加以與上述說明中所用的(1)-(15)相一致的編號。但是,關(guān)于(1)、(10)、(12)、(15)圖8(A)中未予表示。
例如,將″AB″登記在辭典中,輸出″A″的上述(2)的工序在圖8(A)中呈如下狀態(tài)。亦即,在圖8(A)中以向上箭頭指到″AB″來表示辭典的登記。而以向下箭頭指向″A″表示該字符作為壓縮數(shù)據(jù)加以輸出。而在這些向上箭頭向下箭頭的附近加以工序號″2″來表示該處理為工序(2)的處理。
另外,按上述(3)的工序在工作緩存器中發(fā)現(xiàn)登記在辭典中的字符″AB″并將其以編目號置換時,將該應(yīng)于置換的字符串上面加以括線,并在該處加以所進行處理步驟的序號″3″。
順便指出,本實施例的情況下,經(jīng)壓縮的輸出數(shù)據(jù)結(jié)果如下「A、B、C、E、257、H、256、257、C、……」。
而在辭典中所登記的結(jié)果字符串為
0-255ASC11碼256 AB257 BC258 CE259 E257260 257H261 H256262 256 257.. ……下面對采用歷來的增量分析法的方法,來處理與前述舉例相同的以下的字符串,以得到辭典及壓縮數(shù)據(jù)的情況加以說明。但這里也在辭典中自開始即已在0-255項登記有ASC11碼字符「ABCEBCHA、BBCCDBCH、ABCABEHD、ABBCGABK……」(1)被送來的字符串如上述的增加分解法那樣,并非以一定的字節(jié)量一次存入工作緩存器中,而是將起始部分的僅僅必需范圍內(nèi)的字符串被取進工作緩存器。于是,檢驗工作緩存器中的第一字符″A″是否被登記在辭典中。此時由于這一″A″已被登記在辭典65號,故將其使用頻率計數(shù)置為1。
(2)接著加入第二字符,檢驗該工作緩存器中的字符″AB″是否被登記在辭典中??墒?,沒有看到以二個字符以上的字符串已在辭典被登記的情況。因此,將起始的二字符″AB″作為長度2(字符)的數(shù)據(jù)欄中的65+66登記到編號256的項中,并將辭典的″256″的使用頻率記為1次。接著,將工作緩存器中的起始的這一″A″作為壓縮數(shù)據(jù)輸出,下面再注目于成為對象的字符串?dāng)?shù)據(jù)為第二字符″B″。
(3)檢驗新字符項″B″是否已在辭典中登記。由于此時″B″已登記在辭典的第66項中,其使用頻率計數(shù)為1。
(4)接著將新的第二字符″C″加入,檢驗工作緩存器中的字符″BC″是否被登記在辭典中。此時在已登記于辭典中的字符串還未發(fā)現(xiàn)有二個字符串以上的字符串。因此將起始的二字符″BC″作為長度2(字符)的數(shù)據(jù)欄中的66+67存入編號為第257的項中,并將辭典的″257″的使用頻率記為1次。接著將工作緩存器中的起始的″B″作為壓縮數(shù)據(jù)輸出,再來看對象字符串?dāng)?shù)據(jù)的第三字符″C″。
(5)由頭開始至第4字符E接續(xù)與上述同樣操作,在將″EB″登記之后,再對工作緩存器中的新的第一字符項″B″進行檢驗看其是否被登記在辭典中。由于此時″B″已被登記在辭典的第66項中,現(xiàn)在其使用頻率計數(shù)成為2。
(6)將新的第二字符″C″加入,檢驗此工作緩存器中的數(shù)據(jù)串″BC″是否被登記在辭典中。由于現(xiàn)在辭典的第″257″項中登記有″BC″的字符,就將其使用頻率記為2次,然后對加入新的第三字符的字符串″BCH″進行檢驗看其是否已在辭典中登記。
(7)由于它未被登記,就將此作為長度為3(字符)的數(shù)據(jù)欄中的257+72的二字符串″BCH″登記到編號為260的項,并將辭典的″260″的使用頻率為1次。接著,將起始的″BC″的編目號″257″作為壓縮數(shù)據(jù)輸出,再來處理對象字符串?dāng)?shù)據(jù)的第7字符″H″。
圖9中列示了為說明上述增量分析法的操作的參考流程圖。
這樣所進行的增量分析法與本實施例的增加分解法之間很大的差別在于,對處理對象的字符串?dāng)?shù)據(jù)是由頭開始逐個字符地取入再進行檢查與辭典的一致。
采用與上述圖8(A)的示例同樣的樹結(jié)構(gòu)來對上述處理作模式表示時就得到圖8(B)那樣的結(jié)果。不過圖中1-8的編號并不按照上述工序中所用的編號。這里,例如將″AB″登記到辭典并將″A″輸出的1工序中,是以向上箭頭指向″AB″表示辭典登記,而以向下箭頭指向″A″來表示將此字符作為壓縮數(shù)據(jù)輸出。
因此,由圖8(B)可理解到,在歷來的增量分析法中,不可能有像圖8(A)中的(3)工序那樣地在工作緩存器的開頭以外的中途尋找登記于辭典中的字符″AB″并將其以編目號置換的工作程序。有可能的是,如圖8(B)的工序5所示那樣,僅僅是將辭典中所登記的字符串的右側(cè)增加新的一字符,在其上加以括號以形成新的字符串。
順便指出,由這一增量分析法所壓縮得的輸出數(shù)據(jù)成為如下所示「A、B、C、E、257;H、256、257、C、D、257、H、256……」而辭典中所登記的結(jié)果所形成的字符串則為0-255ASC11碼256 AB257 BC258 CE259 EB260 257H261 NA262 256B263 257C
264CD265DB266260A..……將圖8(A)及圖8(B)相比較,在例示范圍由其輸出的壓縮數(shù)據(jù)雖然相同,但辭典中所登記的字符串則很不相同,所關(guān)注的字符在壓縮對象字符串?dāng)?shù)據(jù)之后的差錯逐漸顯著。
因此,由于采用歷來的增量分析法時只能逐個字符地增加,對于特別是如圖10(A)、(B)所示那樣的同樣字符串相連續(xù)的字符串?dāng)?shù)據(jù),盡管本實施例的增加分解法產(chǎn)生較大的誤差,但在增加分解法方面可能采用較小的存儲容量加以存儲。
在圖10(A)中,列示了利用本實施例的增加分解法對連續(xù)的字符串進行壓縮的情況,而在圖10(B)中示出了利用增量分析法對連續(xù)的字符串進行壓縮的情況。在圖10(B)的增量分析法的情況中,因為要在辭典中以A,AA,AAA,AAAA,AAAAA,AAAAAA,……的狀態(tài)順次進行登記,就要以A字符的16字節(jié)的單位進行壓縮處理,因而必須進行16次輸出和17次的辭典登記。另一方面,在圖10(A)的本實施例的增加分解法的情況中,為在辭典中以A,AA,AAAA,AAAAAAAA,AAAAAAAAAAAAAAAA…的狀態(tài)順次登記,不以A字符的6字節(jié)為單位進行壓縮處理,只進行5次輸出和6次辭典登記就足夠了。
由此可見,在相同字符相連續(xù)的字符串?dāng)?shù)據(jù)的情況下,本實施例的增加分解法效果很顯著,其壓縮率比之歷來的增量分析法高得多。換言之就是意味著,對相同數(shù)據(jù)量的字符串?dāng)?shù)據(jù)進行處理,很少的輸出次數(shù)就可以完成。因而,輸出當(dāng)中的字符串在必須置換為辭典編目號的定長字節(jié)并予以輸出時,較少的輸出次數(shù)就表示較少的字節(jié)數(shù),并意味著較少量的壓縮數(shù)據(jù)。
采用上述的增加分解法的處理與前述圖6相同,對全部壓縮對象字符串執(zhí)行多次,由此來生成能以最佳效率壓縮字符串?dāng)?shù)據(jù)的最佳辭典。下面利用圖11、圖12對此辭典的最佳化處理加以說明。
圖11的流程圖表明為進行辭典最佳化利用增加分解法進行的一次處理過程。這里的一次處理過程是指將全部字符串存入工作緩存器、對全部字符串進行完處理為止的過程。在圖11中,首先使NUM=0(步驟E1)。接著檢驗存放在buf1、buf2(緩存器中的第1號、第2號)中的字符串組合(即AB)是否在登記在辭典中(步驟E2)。在判定為登記著的情況時,就將此buf1、buf2中存放的字符串組合置換為辭典的編目號,而將由此置換所產(chǎn)生的空buf16中存進下一字符串(即B)(步驟E3)。此后,返回到步驟E2,再次檢驗buf1、buf2中的字符串組合是否登記在辭典中。
另一方面,在步驟E2,如果判斷buf1、buf2的字符串組合未在辭典中登記,則就要檢驗buf2、buf3中的字符串組合是否已在辭典中登記(步驟E4)。而后,在登記有的情況時轉(zhuǎn)移到步驟5,然后再返回步驟E2。如未被登記,則向下一步前進。
就這樣一直檢驗至buf15、buf16的字符串組合(步驟E8),在該字符串組合未被登記的情況下,由最后過程標(biāo)志檢驗當(dāng)前的過程是否為最后的過程(步驟E10)。此時如不是最后過程,就轉(zhuǎn)移到步驟11,重新將buf1、buf2的字符串組合登記進辭典。然后消法buf1中存放的字符串,同時將工作緩存器中的字符串左移,為填充由此產(chǎn)生的空缺而將下一字符串存入buf16。同時使NUM=NUM+1,NUM值增加1,然后返回步驟E2。另一方面,在步驟10中判斷為最后過程的情況下,則將buf1的字符串作為壓縮數(shù)據(jù)向外部輸出,消除buf1的字符向左挪動一字符,并將空的buf16中輸入下一字符串(步驟E12)。
而在圖11中,例如步驟E8、E9之后,雖然要返回到步驟E2,但在本發(fā)明中也不一定必需要返回到步驟E2為止。亦即在這種情況下,由于所置換的字符串是全都被存入buf15、buf16中的字符串,所以只要返回到對判斷產(chǎn)生影響的步驟E6就足夠了。這對步驟E6等以外的步驟也是同樣的。
反復(fù)進行以上的處理,在全部壓縮對象字符串均被存進工作緩存器、結(jié)束第一次的過程后,就像圖12所示那樣設(shè)定NUM2=NUM(步驟F2)。在此,NUM通過圖11的步驟E11每次被增加1,相當(dāng)于表示壓縮數(shù)據(jù)的輸出次數(shù)(實際上就如步驟E11、E12那樣,直至最后的過程壓縮數(shù)據(jù)是不向外輸出的)。
接著如步驟F3所示,進行第二次過程。在此第二次過程中,使用第一次過程中所更新的辭典,以此來使辭典完善化。此第二次過程與第一次過程同樣,對全部壓縮對象字符串進行圖11中所示的處理。然后在步驟F4中,判斷是否為NUM>NUM2。在NUM≤NUM2時,就是說在步驟F3中的壓縮數(shù)據(jù)輸出次數(shù)NUM比步驟F1中的壓縮數(shù)據(jù)輸出次數(shù)NUM2還小,并表明數(shù)據(jù)壓縮率增加。因而在這種情況下返回步驟F2,重復(fù)處理直至得到最佳辭典。此時當(dāng)NUM>NUM2時即判斷為形成了最佳辭典,將最后的過程標(biāo)志設(shè)置為等于1(步驟F5),進行最后過程的壓縮操作(步驟F6)。
在此最后過程壓縮動作中,因為最后過程標(biāo)志等于1,圖11的步驟E10的判斷總是YES方向,亦即總是向步驟E12轉(zhuǎn)移。亦即,此時每次通過步驟E12,buf1中存放的字符串就被作為壓縮數(shù)據(jù)向外部輸出。而在步驟E12中,像步驟E11那樣,辭典中不登記新的字符串,辭典仍像前次過程中的辭典那樣,未被更新。這樣,此未被更新的辭典就被作為靜態(tài)辭典與壓縮數(shù)據(jù)一齊輸出到外部,存放進存儲裝置等之中。
在進行上述這樣處理,實現(xiàn)最佳辭典的過程中,辭典的編目數(shù)達到極限時,就形成不能再進行將使用頻率高的字符串登記進辭典的登記操作的情況。在這種情況下,削除使用頻率低的編目字符串,以使得能在削除而形成的空缺部分中寫入希望登記的字符串。
在圖13(A)中,列示出包含這樣的使用頻率的信息的辭典的結(jié)構(gòu),而在圖13(B)中則示出了根據(jù)該使用頻率進行登記削除處理的流程圖。
其中,P表示重新登記的辭典的編目號,P的初始值為256。如圖13(A)中所示,在辭典的登記位置中,被分配以256-4095的編目號。各編目號的信號中具有放置第一字符的項號的位置,放置第二字符的項號的位置,及放置使用頻率的位置。使用頻率的初始值全為″0″,即使用頻率=0,這時表明沒有登記任何編目字符串。
開始,在第一字符+第二字符相結(jié)合成的字符串進行登記時,如圖13(B)步驟G1所示,在辭典中P的位置(圖13(A)中第258項的位置)中,寫入第一字符、第二字符的字符串。接著使=P+1(步驟G2),查找下一位置(第259項的位置)。這時在P=4096時,設(shè)定P=256(步驟G3、G4)。下面,檢驗P位置(第259項的位置)的使用頻率(步驟G5),如使用頻率>1,就將P的位置的使用頻率減1(步驟G7)。然后再返回到步驟G2,查找P=P+1的下一位置(第260項的位置)。
例如,現(xiàn)在考慮在辭典的256-4095的位置中一個也不空的情況。此時,直至使用頻率=0的情況,重復(fù)步驟G2-G5的處理。然后將最初成為使用頻率=0的位置的登記削除(步驟G6)。然后在重新進行辭典登記時,就在此被削除的位置上加以辭典登記。
由此上的處理,在編目號256-4095中,可以削除使用頻率最低的編目字符串,在此被削除登記的位置上,就可能重新登記其他的字符串。這樣,就可能形成優(yōu)先登使用頻率高的編碼字符串的辭典。
由本實施例所生成的辭典如以下所示的樹結(jié)構(gòu)(辭典)25630+5625780+16259256+257260259+257。
因此,由此辭典例如將編目號256-260中所登記的編目字符串加以復(fù)原,就成為下列所示(字符串復(fù)原)256=30+56257=80+16258=256+40=30+50+40(因256=30+56)259=256+257=30+56+257 (因256=30+56)=30+56+80+16(因257=80+16)
260=259+257=256+257+257 (因259=256+257)=30+56+257+257 (因256=30+56)=30+56+80+16+257(因257=80+16)=30+56+80+16+80+16 (因257=80+16)。
因此在對按本實施例壓縮的字符串進行復(fù)原時,就必須將構(gòu)成編目字符串的全部字符串加以分解處理直到成為小于256。但是在復(fù)原時,進行上述的分解處理中存在有字符串的復(fù)原速度非常緩慢的問題。因此,為解決這一問題,由所形成的辭典產(chǎn)生下述那樣的復(fù)原專用辭典,并將此復(fù)原專用辭典存入ROM等存儲媒體中,以期在復(fù)原時使用。
圖14(A)中,列示了該復(fù)原專用辭典的結(jié)構(gòu)。在此復(fù)原專用辭典的起始部分按編目號256-4095順序排列存放字符串長度(數(shù)據(jù)長)及字符串的起始地址。其后由存放串的核心部分(字符串的羅列)。此字符核心部分,如上述所示,是由構(gòu)成編目字符串的全部字符串進行分解處理直至小于256時所形成的,這些字符串就成為復(fù)原專用的編目字符串。
在進行復(fù)原處理時,如圖14(B)中所示,由編目號256-4095的位置中所存放的字符串起始地址指定字符串的核心中的對應(yīng)起始地址。然后,根據(jù)此起始地址取出字符串長度所指定長度的字符串(復(fù)原專用編目字符串),以此來進行數(shù)據(jù)復(fù)原。在這種情況下,字符串的核心部分因為予先進行了上述那樣的分解處理,因而就可能使復(fù)原處理速度比樹結(jié)構(gòu)辭典要快得多。
在圖15中作出了表示利用此復(fù)原專用辭典時的復(fù)原處理的流程圖。首先,在步驟H2,讀出12畢特位的代碼,在此代碼為結(jié)束標(biāo)記時就結(jié)束處理(步驟H4),而在非結(jié)束標(biāo)記時就轉(zhuǎn)移到步驟H5。在此,按照代碼的編號由辭典得到復(fù)原的字符串起始地址和字符串長度信息。然后按照所得到的字符串起始地址將該字符串長度內(nèi)的字符串寫入復(fù)原緩存器(步驟H6)。重復(fù)進行上述處理直至檢測到結(jié)束標(biāo)記,即能將數(shù)據(jù)復(fù)原。
本發(fā)明的第三實施例是利用以上第一、第二實施例中說明的數(shù)據(jù)壓縮技術(shù)對所謂的字形數(shù)據(jù)進行壓縮。
首先對位映象字形數(shù)據(jù)進行壓縮的情況給予說明。位映象字形的數(shù)據(jù)通常作光柵方向的排列。不過,采用本實施例對位映象字形的數(shù)據(jù)壓縮時,在縱向壓縮方向壓縮率得到相當(dāng)?shù)母纳啤榇?,如圖16(A)中所示那樣,在縱向?qū)?shù)據(jù)進行壓縮。當(dāng)然不必說,在橫方向上對數(shù)據(jù)進行壓縮也是可以的。
如圖16(A)中所示,位映象字形數(shù)據(jù)(40點×40點)由5個并列的40字節(jié)固定長度的數(shù)據(jù)塊組成。在本實施例中,各數(shù)據(jù)塊每一個均由第一、第二實施例所述的壓縮方法加以壓縮。但在通常那樣地進行數(shù)據(jù)壓縮中將復(fù)原速度比壓縮率更優(yōu)先考慮的場合,不以圖16(A)那樣的字節(jié)串作為單位,可以圖16(B)所示那樣橫向排列的二字節(jié)作為一個字,以字串為單位進行數(shù)據(jù)壓縮。由此,雖然可以提高復(fù)原速度,但與之相反的是,存在著辭典中可能必須登記高達32768數(shù)量的字符串的問題。
圖17中,例如將字符「匯」,以位映象圖形來表示。在圖17中,寫入″1″的部分呈黑色。而其他部分寫入″0″,這部分呈白色。由圖17可清楚看到,第0-7、12、13、30-39項的字節(jié)串為00h(十六進制表示)。而第10、11、14-16、27-29項的字節(jié)串為01h。第8項字節(jié)串為02h。 9、17-26項則為03h。這樣,如對位映象字形數(shù)據(jù)在縱方向壓縮,相同值的字節(jié)串就相連接。從而就可理解到采用第一、第二實施例的數(shù)據(jù)壓縮技術(shù)的壓縮高效率。
輪廓字形是以與某一點連接的直線、曲線來表示的字符輪廓。通常對于大尺寸的字符(例如10點)雖然采用上述的位映象字形進行打印,但亦存在用戶希望以32點等的大尺寸進行打印的情形。在這種情況下,要予先為各種尺寸的位映象字形數(shù)據(jù)作準(zhǔn)備,在數(shù)據(jù)容量的關(guān)系上具有困難。因此,在這種情況下,借助對各種字符設(shè)置其根本性的輪廓字形,以這種輪廓字形來描述字符的輪廓,對其換算放大,再將其變換成圖17所示那樣的位映象圖形數(shù)據(jù)。由此就可能打印所希望尺寸的字符。
例如,按照輪廓字形的「2」字符的輪廓,如圖18中所示,可以連接點A、B、C、D、E、F、G、……的直線、曲線來表示。在本實施例中,將對這種輪廓字形的數(shù)據(jù)以稱之為NSI格式的數(shù)據(jù)形式來敘述。
在本實施例中,將這種以NSI格式描述的輪廓字形數(shù)據(jù)如圖19(A)所示那樣分成三部分,即FLG部分、DAT部分、和VCT部分,來加以壓縮。
這里,VCT部分為表示各點中射出方向的向量座標(biāo)的信息,包括有X、Y向量座標(biāo)信息。向這些X、Y向量座標(biāo)并不表明座標(biāo)的絕對值,而只表示與前一點的相對值。
而FLG部分為表示各點的屬性的信息,例如,包含有表示「A點為起點」、「A點與B點直線連接」、「B點與D點以C點為中心點作曲線(貝塞曲線)連接」、「D點與E點直線連接」、「E點與G點以F點為中間點作曲線(貝塞曲線)連接」等等的信息。在DAT部分,則為表示字符特性的信息,包括表示字符的大小的信息,或者表示字符線寬的信息等。在本實施例中,對VCT部分以霍夫曼編碼法進行壓縮。與此相反,對于FLG部分、DAT部分,由于相同數(shù)據(jù)相連續(xù)等的具有一定程度的規(guī)律性,而采用上述第一第二實施例中所說明的數(shù)據(jù)壓縮方法進行壓縮。借助對這樣地組成輪廓字形數(shù)據(jù)的成分,將它們各自分開地進行壓縮,就可能使壓縮率大幅度地提高。壓縮后的數(shù)據(jù)結(jié)構(gòu),如圖19(B)所示那樣,首先裝入FLG部分的壓縮數(shù)據(jù)、接著加入DAT部分的壓縮數(shù)據(jù),再裝入VCT部分的壓縮數(shù)據(jù),組成所示的結(jié)構(gòu)。而且備置了分別對應(yīng)于FLG部分、DAT部分、VCT部分的專用于復(fù)原的辭典。
在對此壓縮數(shù)據(jù)進行復(fù)原時,復(fù)原FLG部分,DAT部分,然后以此為基礎(chǔ)對VCT行復(fù)原。在圖19(C)中,表示了這種復(fù)原處理的流程圖。首先,在步驟I2,以FLG專用靜態(tài)辭典復(fù)原FLG部分,將其暫時寫入為FLG設(shè)置的緩存器中。接著在步驟I3,以DAT專用靜態(tài)辭典將DAT部分復(fù)原,將其暫時寫入為DAT設(shè)置的緩存器中。在這種情況下,讀出數(shù)據(jù)用的指針,如圖19(B)所示那樣,指向被壓縮的VCT部分的起頭。
接著,如步驟I4所示,將DAT部分和FLG部分按照NSI格式的規(guī)則由上述緩存器中讀出,在輸出后,按照此讀出的FLG部分的畢特位0-3(這些畢特位的細(xì)節(jié)將在下面說明)來將VCT部分復(fù)原成霍夫曼代碼。由此就可能得到按NSI格式的順序返回到原來的輪廓字形數(shù)據(jù)。
這樣,在本實施例中為使數(shù)據(jù)壓縮率進一步提高,將上述的FLG部分、VCT部分變更成為以下述座標(biāo)點控制段座標(biāo)點定義段表示的格式后,再進行壓縮。
這里,座標(biāo)點控制段的畢特位4~7與原先的FLG部分的畢特位4~7相同,由這些畢特位4~7來指定各點的屬性,亦即指定各自的起點、中點、和終點,或移動插值、直線插值、曲線插值等等。而座標(biāo)點控制段的畢特位0-3表明座標(biāo)點定義段中所定義的向量座標(biāo)值代表如下的含意。即,畢特位0表示X向量座標(biāo)值為非零值,畢特位1表明Y向量座標(biāo)值為非零值。而畢特位2則表明X向量座標(biāo)值為負(fù)值,畢特位3則表明Y向量座標(biāo)值為負(fù)值。
座標(biāo)點定義段中設(shè)置10畢特位編碼(0-1023)。在此,這些編碼,按照座標(biāo)點控制段的畢特位0-3的指定,能表示-1024≤X向量座標(biāo)≤1024-1024≤y向量座標(biāo)≤1024范圍內(nèi)的向量座標(biāo)值。
例如,畢特位0=1時,表示座標(biāo)點定義段中存在有X-1的數(shù)據(jù);而在畢特位1=1時,表示座標(biāo)定義段存在有Y-1的數(shù)據(jù)。在字符中具有縱劃、橫劃等時,或者X向量座標(biāo)=0,或者Y向量座標(biāo)=0,在這種情況下,就段有必要將X向量座標(biāo)、Y向量座標(biāo)作為壓縮數(shù)據(jù)輸出。因而,在這種情況下,如能借助座標(biāo)點控制段的畢特位0、1的控制,指定座標(biāo)定義沒有無X向量座標(biāo)、Y向量座標(biāo)的話,就可能進一步提高數(shù)據(jù)壓縮率。而且如上述那樣由座標(biāo)點控制段的畢特位2、3也指定X向量座標(biāo)、Y向量座標(biāo)的正負(fù),由此就可能再次提高數(shù)據(jù)壓縮率。
如上面說過的那樣,采用本實施例能有效地壓縮位映象字形數(shù)據(jù)、輪廓字形數(shù)據(jù)。在進行這種壓縮當(dāng)中,采用第一、第二實施例中說明的靜態(tài)辭典。這種情況下,靜態(tài)辭典對共同字體(字型)最好為共同的靜態(tài)辭典。例如,對明體字符,全部采用專用于明體的辭典進行辭典更新、數(shù)據(jù)壓縮,以得到最后的靜態(tài)辭典、壓縮數(shù)據(jù)。而對于黑體字符,則全部采用黑體字專用辭典進行辭典更新、數(shù)據(jù)壓縮,以得到最后的靜態(tài)辭典、壓縮數(shù)據(jù)。這樣,針對各種字體使辭典共同化,就可能高效率壓縮數(shù)據(jù)。這里,如字體是共同的,則由于例如字符輪廓的變化方法(線的上跳等方面)、輪廓的粗細(xì)等各字符間均成為共同的,字符本身的特性信息、各輪廓點的屬性信息等也就是相同的,這樣就使得利用共同的辭典壓縮數(shù)據(jù)變得很方便。在這種情況下,輸出的靜態(tài)辭典、壓縮數(shù)據(jù)均按字體加以分類存進存儲裝置中。
在圖20中,舉出了利用以上說明的本實施例的數(shù)據(jù)壓縮方法的狀態(tài)。壓縮對象數(shù)據(jù)串(字形數(shù)據(jù))被輸入到數(shù)據(jù)壓縮裝置31,利用本實施例的數(shù)據(jù)壓縮方法進行數(shù)據(jù)壓縮。而后這樣所形成的靜態(tài)辭典及壓縮數(shù)據(jù)被存進數(shù)據(jù)復(fù)原設(shè)備32中的存儲裝置(ROM等)中。此數(shù)據(jù)復(fù)原設(shè)備32被裝設(shè)在信息處理裝置、例如打印機33及計算機等的內(nèi)部(也可將復(fù)原設(shè)備分割成2個裝置分開內(nèi)設(shè))。
在歷來的打印機等中,字形數(shù)據(jù)等不作數(shù)據(jù)壓縮處理按原樣被存放在存儲裝置中,由對各個壓縮數(shù)據(jù)的存儲地址控制而隨時輸出所需要的字符,來進行字符打印。對這些如按照本實施例,將靜態(tài)辭典及壓縮數(shù)據(jù)存入存儲裝置中,由對各個壓縮數(shù)據(jù)的存儲地址及靜態(tài)字符串辭典的控制就可能隨時輸出所需的字符。由此就能減少存儲裝置中所存放的數(shù)據(jù)量,從而降低裝置的費用。這樣的優(yōu)點不僅特別對必須要有很大存儲容量的漢字字符及Sapeaku(やハングル)字符等有效,對其他語言的字符也有很大效果。
本發(fā)明并不限定于上述實施例,在本發(fā)明的主題范圍內(nèi)有可能實現(xiàn)各種變型。
例如在本實施例中雖然主要是說明對字符串?dāng)?shù)據(jù)的處理,但對于其他的符號數(shù)據(jù)亦均可應(yīng)用。
另外,作為利用本發(fā)明壓縮的數(shù)據(jù)串可能包括不僅限于字符串、字節(jié)串、字串的各種數(shù)據(jù)串,還包括例如構(gòu)成二維、三維圖形所需的數(shù)據(jù)串等。
而且在本發(fā)明中的編目號中還包括完成與該編目號實質(zhì)上同樣功能的信息。
如采用本發(fā)明,由于利用成為最佳辭典的靜態(tài)辭典進行數(shù)據(jù)壓縮,因而就能使所輸出的靜態(tài)辭典和壓縮的數(shù)據(jù)量最理想。由此而能減小存放該靜態(tài)辭典、壓縮數(shù)據(jù)的存儲裝置、存儲媒體的容量,而節(jié)省費用。而且由于有可能利用例如采用數(shù)據(jù)壓縮率高的動態(tài)辭典的數(shù)據(jù)壓縮算法等,使得能大大提高數(shù)據(jù)壓縮率。另外,利用該靜態(tài)辭典可靈活地復(fù)原所需的數(shù)據(jù)串,也就有可能在由信息處理裝置復(fù)原所被壓縮的數(shù)據(jù)串時隨意地取出所需的數(shù)據(jù)串。再之,利用本發(fā)明,雖然在辭典最佳化、直至得到最后的辭典和壓縮數(shù)據(jù)的時間可能較長,但卻具有復(fù)原速度不特別慢的效果。
由于優(yōu)先將組合個數(shù)多的數(shù)據(jù)串組合置換為辭典的編目號,能使數(shù)據(jù)壓縮率達到最佳狀態(tài)。另一方面,由于消除使用頻率低的編登記、在編目數(shù)達到規(guī)定值時結(jié)束更新,就可能形成數(shù)據(jù)量很少的最佳辭典。并且因采取了被稱之為滑尺辭典的技術(shù)而具有使辭典形成簡易的優(yōu)點。而此時的規(guī)定數(shù),在輸出數(shù)據(jù)的畢特位數(shù)例如為12位時,即為辭典的編目數(shù)能處在此12畢特區(qū)間內(nèi)的數(shù)量。
由于優(yōu)先將出現(xiàn)概率高的數(shù)據(jù)串組合置換為編目號而能使數(shù)據(jù)壓縮率最理想。另一方向,削除使用頻率低的編目數(shù)據(jù)串的登記、在編目數(shù)成為規(guī)定數(shù)時結(jié)束更新,就能形成數(shù)據(jù)量少的最佳辭典。而且由于開始的辭典的形成能采取一次分析,故具有能使處理大為簡單的優(yōu)點。
由于依靠利用數(shù)據(jù)壓縮率高的動態(tài)辭典的數(shù)據(jù)壓縮算法進行數(shù)據(jù)壓縮、而在數(shù)據(jù)壓縮率為最佳時期結(jié)束辭典的更新,就可能極大地提高數(shù)據(jù)壓縮率。另一方面,由于輸出的辭典成為靜態(tài)辭典,而能利用此靜態(tài)辭典靈活地復(fù)原所需的數(shù)據(jù)串。
特別是在相同數(shù)據(jù)串的壓縮處理情況下,能使辭典的編目數(shù)較之歷來的增量分析法少得多,并以辭典編目號的置換來進行數(shù)據(jù)壓縮,也就能使壓縮數(shù)據(jù)本身比歷來的增量分析法具有少得多的數(shù)據(jù)量。
在大大提高數(shù)據(jù)壓縮率的同時,還能利用靜態(tài)辭典靈活地復(fù)原所需的數(shù)據(jù)串。并且還具有能夠僅以處理的重復(fù)次數(shù)來判斷是否達到最佳壓縮率的優(yōu)點。
辭典的可能登記數(shù)據(jù)有限時,可能以很簡單的方法使辭典的數(shù)據(jù)量成為最佳大小。
在使辭典數(shù)據(jù)量成為最佳的同時,還能在辭典中保留使用頻率高的編目數(shù)據(jù)串,以形成最佳辭典。
能進行位映象字形數(shù)據(jù)、輪廓字形數(shù)據(jù)的壓縮,并以減少存放這些字形數(shù)據(jù)的存儲裝置、存儲媒體的容量。因而就可能減少內(nèi)裝有該存儲裝置、存儲媒體的打印機、計算機等的費用。
能按照數(shù)據(jù)特性來更換適用的壓縮方法,從而有可能進一步提高數(shù)據(jù)壓縮率。
能針對明體、黑體字等的各種字體使辭典共同化。例如由于字符的輪廓的變化方法、輪廓的粗細(xì)等相同的字體這種共同的場合很多,利用本發(fā)明就可能更高效率地壓縮數(shù)據(jù)。
可節(jié)省存儲字符中所需的容量等。
在進行復(fù)原專用編目數(shù)據(jù)串被變換成復(fù)原專用數(shù)據(jù)形式時,例如增量分析法、增加分解法中,無需樹結(jié)構(gòu)來進行編目數(shù)據(jù)串的分解。從而就可能比應(yīng)用通常辭典的場合以高得多的速度進行復(fù)原處理。
能利用經(jīng)復(fù)原的數(shù)據(jù)串進行規(guī)定的處理、例如字符打印等的處理。
利用復(fù)原設(shè)備可復(fù)原原始數(shù)據(jù)串,這種復(fù)原設(shè)備可被內(nèi)裝在例如計算機、打印機等的信息處理裝置中。
附圖中的代號為1 作為壓縮對象的字符串?dāng)?shù)據(jù);2 工作緩存器;3 辭典;4 壓縮數(shù)據(jù);5 所完成的辭典;11 作為壓縮對象的全部數(shù)據(jù)串;12 數(shù)據(jù)壓縮裝置;13 辭典形成設(shè)施;14 靜態(tài)辭典;
15 靜態(tài)辭典保持設(shè)施;16 靜態(tài)辭典輸出設(shè)施;17 數(shù)據(jù)壓縮設(shè)施;18 壓縮數(shù)據(jù)輸出設(shè)施;19 壓縮數(shù)據(jù)。
權(quán)利要求
1.一種利用能與編目號相關(guān)地登記編目數(shù)據(jù)串的辭典、將二個以上數(shù)據(jù)串的組合置換該編目號來進行數(shù)據(jù)壓縮的數(shù)據(jù)壓縮方法,其特征是對作為壓縮對象的數(shù)據(jù)串進行數(shù)據(jù)壓縮對辭典進行更新直到產(chǎn)生最佳的辭典為止;在產(chǎn)生該最佳辭典的階段,將該辭典作為最后用于還原的靜態(tài)辭典輸出;利用該辭典對作為壓縮對象的數(shù)據(jù)串進行數(shù)據(jù)壓縮;和將被壓縮的數(shù)據(jù)串作為最后用于還原的壓縮數(shù)據(jù)輸出。
2.如權(quán)利要求1中所述的數(shù)據(jù)壓縮方法,其特征是所述對辭典進行更新以形成所述最佳辭典的步驟在于,由依據(jù)優(yōu)先登記組合個數(shù)多的數(shù)據(jù)串組合的原則形成的辭典中去除作用頻率低的編目串的登記,直至辭典的編目數(shù)達到規(guī)定的數(shù)量。
3.如權(quán)利要求1中所述的數(shù)據(jù)壓縮方法,其特征是所述對辭典進行更新以形成所述最適宜辭典的步驟在于,由依據(jù)優(yōu)先登記出現(xiàn)概率高的數(shù)據(jù)串組合的原則形成的辭典中去除使用頻率低的編目數(shù)據(jù)串的登記,直至辭典的編目數(shù)達到規(guī)定的數(shù)量。
4.如權(quán)利要求1中所述的數(shù)據(jù)壓縮方法,其特征是所述對辭典進行更新以形成所述最適宜辭典的步驟在于,在作數(shù)據(jù)壓縮時一邊根據(jù)辭典動態(tài)變化的數(shù)據(jù)壓縮算法更新辭典,一邊對作為壓縮對象的所有數(shù)據(jù)串進行數(shù)據(jù)壓縮處理;利用經(jīng)這樣處理更新的辭典再次根據(jù)所述數(shù)據(jù)壓縮算法更新辭典,同時進行對作為壓縮對象的全部數(shù)據(jù)串作數(shù)據(jù)壓縮處理;反復(fù)執(zhí)行所述處理過程直到數(shù)據(jù)壓縮率成為最適宜時。
5.一種利用能與編目號相關(guān)地登記編目數(shù)據(jù)串的辭典、以替換二個以上數(shù)據(jù)串的組合到該編目號來進行數(shù)據(jù)壓縮的數(shù)據(jù)壓縮方法,其特征在于包括下列步驟(A)由作為壓縮對象的數(shù)據(jù)串取出規(guī)定數(shù)量的數(shù)據(jù)串存入具有規(guī)定數(shù)量緩存器的工作區(qū)中;(B)檢驗存放在所述工作區(qū)中相鄰緩存器內(nèi)的數(shù)據(jù)串組合是否登記在辭典中,在已被登記于辭典中的情況下,將該數(shù)據(jù)串組合置換所述編目號,同時在工作區(qū)內(nèi)進行數(shù)據(jù)串移位以便填滿因該置換所產(chǎn)生的空緩存器,將隨后的數(shù)據(jù)送入這樣所得的在工作區(qū)末端的形成的空緩存器中,再次檢驗工作區(qū)內(nèi)相鄰緩存器中所存放的數(shù)據(jù)串組合是否已在辭典中登記;(C)由上述步驟(B)中的檢驗在判定工作區(qū)內(nèi)相鄰緩存器中所存放的數(shù)據(jù)串組合沒有哪一個登記在辭典中的情況下,將由工作區(qū)起端開始的第一、第二緩存器中所存放的數(shù)據(jù)串組合登記進辭典中,同時,將第一數(shù)據(jù)串消去,為填滿由消除該數(shù)據(jù)串所形成的空緩存器在工作區(qū)內(nèi)作數(shù)據(jù)串移位,將后續(xù)的數(shù)據(jù)串送入這樣最后在工作區(qū)末端所產(chǎn)生的空緩存器,反復(fù)進行上述步驟(B)、(C),直至作為壓縮對象的所有數(shù)據(jù)串均被存入所述工作區(qū)內(nèi)。
6.如權(quán)利要求5中所述的數(shù)據(jù)壓縮方法,其特征是在重復(fù)執(zhí)行上述步驟(B)、(C)一次完成對作為壓縮對象的全部數(shù)據(jù)串的處理之后,利用前次處理所更新的辭典來進行當(dāng)前的數(shù)據(jù)壓縮處理中,如果當(dāng)前過程中的重復(fù)執(zhí)行前述步驟(B)、(C)的次數(shù)少于前一過程中重復(fù)執(zhí)行的次數(shù),就轉(zhuǎn)移到下一個過程;如果當(dāng)前過程中重復(fù)執(zhí)行前步驟(B)、(C)的次數(shù)大于前次重復(fù)執(zhí)行的次數(shù),就將前次過程中所更新的辭典作為最后用于復(fù)原的靜態(tài)辭典輸出,同時利用該靜態(tài)辭典進行一次過程的數(shù)據(jù)壓縮,將經(jīng)過壓縮的數(shù)據(jù)串作為最后復(fù)原用的壓縮數(shù)據(jù)輸出。
7.如權(quán)利要求1至6中任一個所述的數(shù)據(jù)壓縮方法,其特征是包括有步驟在所述辭典中存放編目號、編目數(shù)據(jù)串以及使用頻率信息,并依次去除使用頻率低的編目數(shù)據(jù)串。
8.如權(quán)利要求7中所述的數(shù)據(jù)壓縮方法,其特征是在去除所述使用頻率低的編目數(shù)據(jù)串過程中,依次減小辭典中所記錄的編目數(shù)據(jù)串的使用頻率數(shù),優(yōu)先去除使用頻率最先成為規(guī)定數(shù)目以下的編碼數(shù)據(jù)。
9.如權(quán)利要求1至8中任一個所述的數(shù)據(jù)壓縮方法,其特征是作為壓縮對象的數(shù)據(jù)串是字符打印時所需的字形數(shù)據(jù)。
10.如權(quán)利要求9中所述的數(shù)據(jù)壓縮方法,其特征是所述字形數(shù)據(jù)中僅僅一部分成為所述壓縮對象的數(shù)據(jù)串,而其他部分由其他數(shù)據(jù)壓縮方法進行數(shù)據(jù)壓縮。
11.如權(quán)利要求9或10中之一所述的數(shù)據(jù)壓縮方法,其特征是對具有共同字形的所述字符采用共同的所述辭典進行數(shù)據(jù)壓縮。
12.如權(quán)利要求1至8中任一個所述的數(shù)據(jù)壓縮方法,其特征是作為壓縮對象的數(shù)據(jù)串為字符串。
13.如權(quán)利要求1至12中任一個所述的數(shù)據(jù)壓縮方法,其特征是由最后形成的辭典中所包含的編目號及編目數(shù)據(jù)串的信息,形成包含有將所述編目數(shù)據(jù)串變換成專用于復(fù)原的數(shù)據(jù)形式而得的復(fù)原專用編目數(shù)據(jù)串及該復(fù)原專用編目數(shù)據(jù)串的數(shù)據(jù)長度以及該復(fù)原專用編目數(shù)據(jù)串的起始地址的信息的專用于復(fù)原的辭典。
14.一種數(shù)據(jù)復(fù)原方法,其特征是利用由權(quán)利要求1至13中任一個所述的數(shù)據(jù)壓縮方法所形成的壓縮數(shù)據(jù)及最后的辭典,進行與該數(shù)據(jù)壓縮方法相對應(yīng)的復(fù)原處理來復(fù)原過去作為壓縮對象的數(shù)據(jù)串。
15.一種信息處理裝置,其特征是包含有利用由權(quán)利要求1至13中任一個所述的數(shù)據(jù)壓縮方法所形成的壓縮數(shù)據(jù)和最后的辭典,進行與該數(shù)據(jù)處理方法相對應(yīng)的復(fù)原處理來復(fù)原過去作為壓縮對象的數(shù)據(jù)串的復(fù)原手段。
全文摘要
本發(fā)明提出一種數(shù)據(jù)壓縮、復(fù)原方法和信息處理裝置。利用與編目號相關(guān)連地登記編目數(shù)據(jù)的辭典、將二個以上數(shù)據(jù)串的組合置換該編目號來進行數(shù)據(jù)壓縮。在步驟A1、A2中形成、更新辭典,在步驟A3判斷是否達到最佳辭典。這里的辭典更新中利用增量分析法、增加分解法等。然后如步驟A4、A5所示,在生成最佳辭典時,將該辭典作為最后的復(fù)原用的靜態(tài)辭典輸出,同時利用該靜態(tài)辭典進行數(shù)據(jù)壓縮,將經(jīng)壓縮的數(shù)據(jù)串作為最后的復(fù)原用的壓縮數(shù)據(jù)輸出。
文檔編號H03M7/30GK1115524SQ94120709
公開日1996年1月24日 申請日期1994年12月22日 優(yōu)先權(quán)日1994年6月16日
發(fā)明者大本隆二, 上井彥之介 申請人:精工愛普生株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1