專利名稱:數(shù)據(jù)壓縮設(shè)備和數(shù)據(jù)恢復(fù)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用來(lái)壓縮和恢復(fù)諸如文檔數(shù)據(jù)等之類的數(shù)據(jù)的一種數(shù)據(jù)壓縮設(shè)備和一種數(shù)據(jù)恢復(fù)設(shè)備。
最近,諸如圖象數(shù)據(jù)之類的各種類型數(shù)據(jù)由計(jì)算機(jī)處理。隨著諸如因特網(wǎng)、內(nèi)部網(wǎng)絡(luò)、外部網(wǎng)絡(luò)等之類的現(xiàn)行計(jì)算機(jī)網(wǎng)絡(luò)的普及,已經(jīng)使用諸如電子郵件等之類的越來(lái)越多的電子文檔。這樣的電子文檔期望被更頻繁地使用,并且文檔量實(shí)際上在變大。因此,強(qiáng)烈地需要壓縮數(shù)據(jù)技術(shù),從而去除數(shù)據(jù)的冗余部分,以減小存儲(chǔ)容量和在短時(shí)間內(nèi)把數(shù)據(jù)傳送到遠(yuǎn)程目的地。
因而,已經(jīng)有一種提供靜態(tài)詞典、把以前轉(zhuǎn)換成固定長(zhǎng)度代碼的數(shù)據(jù)轉(zhuǎn)換成可變長(zhǎng)度代碼、及完成一個(gè)數(shù)據(jù)壓縮過(guò)程的方法。
圖1表示上述的數(shù)據(jù)壓縮方法。數(shù)據(jù)壓縮系統(tǒng)包括一個(gè)詞劃分單元50和一個(gè)可變長(zhǎng)度編碼單元51。詞劃分單元50接收原始文檔數(shù)據(jù),并且通過(guò)參考靜態(tài)詞典劃分包含在原始數(shù)據(jù)中的詞。靜態(tài)詞典包含諸如常用詞、短語(yǔ)等之類的字符串的預(yù)先輸入數(shù)據(jù),并且把相應(yīng)字符串作為固定長(zhǎng)度代碼(中間代碼)輸出到可變長(zhǎng)度編碼單元51。
可變長(zhǎng)度編碼單元51把提供的固定長(zhǎng)度代碼(中間代碼)轉(zhuǎn)換成壓縮代碼,把它寫到例如文檔存儲(chǔ)器等上,并且把它經(jīng)因特網(wǎng)、內(nèi)部網(wǎng)絡(luò)等傳送到另一臺(tái)計(jì)算機(jī)。
另一方面,當(dāng)計(jì)算機(jī)接收壓縮數(shù)據(jù)時(shí),它根據(jù)圖2中所示的解壓縮系統(tǒng)譯碼壓縮數(shù)據(jù)。就是說(shuō),一個(gè)可變長(zhǎng)度譯碼單元52把壓縮代碼譯碼成固定長(zhǎng)度代碼,并且一個(gè)詞恢復(fù)單元53通過(guò)參考靜態(tài)詞典把數(shù)據(jù)恢復(fù)成原始文檔數(shù)據(jù)。
在上述數(shù)據(jù)壓縮方法中,使用一個(gè)靜態(tài)詞典和預(yù)先輸入到靜態(tài)詞典中的字符串的數(shù)據(jù)完成一個(gè)壓縮過(guò)程。然而,由于詞典內(nèi)容是固定的,所以不能適當(dāng)?shù)靥幚硇略~和每個(gè)文檔特有的詞。因此,在這樣一種數(shù)據(jù)壓縮方法中,在字符單元中對(duì)詞進(jìn)行劃分和編碼,由此降低了壓縮率。
本發(fā)明旨在提供一種能夠使用一個(gè)存儲(chǔ)每個(gè)文檔特有的詞、短語(yǔ)等的字符串的輔助詞典、以高壓縮率完成數(shù)據(jù)壓縮過(guò)程、減小數(shù)據(jù)量、由此以高速傳送數(shù)據(jù)的數(shù)據(jù)壓縮設(shè)備和壓縮數(shù)據(jù)恢復(fù)設(shè)備。
就是說(shuō),根據(jù)本發(fā)明的第一方面,通過(guò)提供一種數(shù)據(jù)壓縮設(shè)備能達(dá)到本發(fā)明的上述目的,該設(shè)備包括一個(gè)靜態(tài)詞典,預(yù)先包含詞和短語(yǔ)的字符串;一個(gè)字符串檢測(cè)單元,用來(lái)檢索要壓縮的文檔數(shù)據(jù)、和檢測(cè)沒(méi)有包含在靜態(tài)詞典中的字符串;一個(gè)選擇和輸入單元,用來(lái)從由字符串檢測(cè)單元檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串、和用來(lái)把選擇的字符串輸入到一個(gè)輔助詞典中;一個(gè)詞劃分單元,用來(lái)對(duì)靜態(tài)詞典和輔助詞典查找要壓縮的文檔數(shù)據(jù)、和把輸入到靜態(tài)詞典或輔助詞典中的字符數(shù)據(jù)轉(zhuǎn)換成固定長(zhǎng)度代碼;及一個(gè)可變長(zhǎng)度編碼單元,用來(lái)把從詞劃分單元輸出的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼。
就該配置而論,常用詞和短詞預(yù)先輸入到靜態(tài)詞典中的層次結(jié)構(gòu)中。上述字符串檢測(cè)單元查找靜態(tài)詞典,以檢測(cè)原始文檔數(shù)據(jù)的字符串。沒(méi)有輸入到靜態(tài)詞典中的新字符串被抽取到例如一個(gè)擴(kuò)大的詞典中,并且僅輸入由選擇和輸入單元從新字符串中選擇的字符串。
上述選擇過(guò)程基于一個(gè)預(yù)定的節(jié)點(diǎn)數(shù)量閾值和字符串長(zhǎng)度,防止無(wú)用字符串輸入,及正確地僅把文檔數(shù)據(jù)特有的字符串輸入到輔助詞典中。
另外,一個(gè)詞劃分單元使用上述靜態(tài)詞典和輔助詞典,把不僅在靜態(tài)詞典中而且在輔助詞典中輸入的字符串轉(zhuǎn)換成固定長(zhǎng)度代碼,由此完成壓縮過(guò)程。
就上述配置而論,原始文檔數(shù)據(jù)特有的字符串也能轉(zhuǎn)換成壓縮代碼,由此提供一種能夠完成高效壓縮過(guò)程和減小壓縮數(shù)據(jù)量的數(shù)據(jù)壓縮設(shè)備。
根據(jù)本發(fā)明的第二方面,通過(guò)提供一種數(shù)據(jù)恢復(fù)設(shè)備能達(dá)到本發(fā)明的目的,該設(shè)備包括一個(gè)靜態(tài)詞典,預(yù)先存儲(chǔ)詞和短語(yǔ)的字符串;一個(gè)輔助詞典,在檢索要壓縮的文檔數(shù)據(jù)、檢測(cè)沒(méi)有包含在靜態(tài)詞典中的文檔數(shù)據(jù)特有的詞和短語(yǔ)的字符串、進(jìn)一步從上述字符串中選擇字符串之后,存儲(chǔ)字符串;一個(gè)譯碼單元,用來(lái)譯碼文檔數(shù)據(jù)的壓縮代碼;及一個(gè)數(shù)據(jù)恢復(fù)單元,使用靜態(tài)詞典和輔助詞典把由譯碼單元譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
根據(jù)該方面的配置,可以對(duì)由數(shù)據(jù)壓縮設(shè)備轉(zhuǎn)換成壓縮代碼的數(shù)據(jù)進(jìn)行譯碼。在由譯碼單元譯碼壓縮的代碼之后,使用預(yù)先存儲(chǔ)常用詞和短語(yǔ)的靜態(tài)詞典和一個(gè)新準(zhǔn)備的輔助詞典,把固定長(zhǎng)度代碼的字符恢復(fù)成原始文檔數(shù)據(jù)。
就上述配置而論,用較小量的壓縮數(shù)據(jù)能完成一個(gè)高效數(shù)據(jù)恢復(fù)過(guò)程。
根據(jù)本發(fā)明的第三方面,通過(guò)提供一種數(shù)據(jù)壓縮設(shè)備能達(dá)到本發(fā)明的目的,該設(shè)備包括一個(gè)靜態(tài)詞典,預(yù)先包含詞和短語(yǔ)的字符串;一個(gè)字符串檢測(cè)單元,用來(lái)檢索要壓縮的文檔數(shù)據(jù)、和檢測(cè)沒(méi)有包含在靜態(tài)詞典中的字符串;一個(gè)選擇和輸入單元,用來(lái)從由字符串檢測(cè)單元檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串、和用來(lái)把選擇的字符串輸入到一個(gè)輔助詞典中;一個(gè)詞劃分單元,用來(lái)對(duì)靜態(tài)詞典和輔助詞典查找要壓縮的文檔數(shù)據(jù)、和把輸入到靜態(tài)詞典或輔助詞典中的字符數(shù)據(jù)轉(zhuǎn)換成固定長(zhǎng)度代碼;一個(gè)可變長(zhǎng)度編碼單元,用來(lái)把從詞劃分單元輸出的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼;及一個(gè)傳送單元,用來(lái)通過(guò)把輸入在輔助詞典中的字符串?dāng)?shù)據(jù)添加為由可變長(zhǎng)度編碼單元產(chǎn)生的壓縮代碼的首部,把該數(shù)據(jù)傳送到通信網(wǎng)絡(luò)。
該方面基于這樣一種配置,借助于該配置數(shù)據(jù)由根據(jù)本發(fā)明的數(shù)據(jù)壓縮設(shè)備轉(zhuǎn)換成壓縮代碼,經(jīng)過(guò)諸如因特網(wǎng)等之類的通信線路傳送到另一臺(tái)計(jì)算機(jī),及由接收者側(cè)的計(jì)算機(jī)存儲(chǔ)。因此,輸入到輔助詞典中的字符串的配置和內(nèi)容與根據(jù)本發(fā)明第一方面的那些相同,但僅在通信線路的配置方面不同。
就是說(shuō),由數(shù)據(jù)壓縮設(shè)備準(zhǔn)備的輔助詞典的數(shù)據(jù)必須經(jīng)通信線路傳送到接收者。因此,準(zhǔn)備的輔助詞典的數(shù)據(jù)在輸出壓縮代碼之前由一個(gè)傳送單元傳送。
就上述配置而論,壓縮數(shù)據(jù)能傳送到經(jīng)通信線路連接的另一臺(tái)計(jì)算機(jī)。另外,由于原始文檔數(shù)據(jù)特有的字符串也轉(zhuǎn)換成壓縮代碼,所以對(duì)于高速傳送能減小傳送的數(shù)據(jù)量。
根據(jù)本發(fā)明的第四方面,通過(guò)提供一種數(shù)據(jù)恢復(fù)設(shè)備能達(dá)到本發(fā)明的目的,該設(shè)備包括一個(gè)靜態(tài)詞典,預(yù)先存儲(chǔ)詞和短語(yǔ)的字符串;一個(gè)輔助詞典存儲(chǔ)單元,存儲(chǔ)經(jīng)通信網(wǎng)絡(luò)傳送的輔助詞典條目數(shù)據(jù);一個(gè)譯碼單元,用來(lái)譯碼文檔數(shù)據(jù)的壓縮代碼;及一個(gè)數(shù)據(jù)恢復(fù)單元,使用靜態(tài)詞典和輔助詞典把由譯碼單元譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
根據(jù)該方面,恢復(fù)由數(shù)據(jù)壓縮設(shè)備根據(jù)上述第三方面轉(zhuǎn)換成壓縮代碼的數(shù)據(jù),并且經(jīng)因特網(wǎng)等的通信線路接收轉(zhuǎn)換成壓縮代碼的數(shù)據(jù),及然后恢復(fù)成原始文檔數(shù)據(jù)。
因此,把經(jīng)通信網(wǎng)絡(luò)提供的輔助詞典條目數(shù)據(jù)輸入到輔助詞典存儲(chǔ)單元中,并且把后來(lái)輸入的壓縮代碼恢復(fù)成原始文檔數(shù)據(jù)。
就該配置而論,能恢復(fù)由經(jīng)通信線路連接的另一臺(tái)計(jì)算機(jī)準(zhǔn)備的壓縮數(shù)據(jù),并且可用輔助詞典與在數(shù)據(jù)壓縮過(guò)程中使用的詞典相同,由此完成高效恢復(fù)過(guò)程。
圖1表示數(shù)據(jù)壓縮設(shè)備的系統(tǒng)配置;圖2表示數(shù)據(jù)恢復(fù)設(shè)備的系統(tǒng)配置;圖3表示根據(jù)本發(fā)明第一實(shí)施例的數(shù)據(jù)壓縮設(shè)備的系統(tǒng)配置;圖4表示在靜態(tài)詞典中輸入的數(shù)據(jù);圖5表示根據(jù)本發(fā)明一個(gè)例子的分層結(jié)構(gòu)的模式;圖6是根據(jù)本發(fā)明第一實(shí)施例的整個(gè)過(guò)程的流程圖;圖7表示由字符串檢測(cè)單元完成的字符串檢測(cè)過(guò)程的一個(gè)實(shí)際例子;
圖8表示文檔數(shù)據(jù)一部分的一個(gè)實(shí)際例子;圖9是流程圖,實(shí)際表示在輔助詞典中輸入數(shù)據(jù)的過(guò)程;圖10是流程圖,實(shí)際表示用來(lái)編碼字符串的計(jì)算;圖11表示在輔助詞典中的數(shù)據(jù)配置的一個(gè)例子;圖12表示包含靜態(tài)詞典和輔助詞典的字符串的數(shù)據(jù)配置的一個(gè)例子;圖13表示在靜態(tài)詞典和輔助詞典中輸入的數(shù)據(jù)的層次結(jié)構(gòu)的模式;圖14表示靜態(tài)詞典和輔助詞典的代碼空間;圖15實(shí)際表示一個(gè)詞劃分過(guò)程;圖16是用來(lái)檢測(cè)最長(zhǎng)字符串S的實(shí)際過(guò)程的流程圖;圖17表示與一個(gè)字符串相對(duì)應(yīng)的代碼值的一個(gè)例子;圖18表示與一個(gè)字符串相對(duì)應(yīng)的代碼值的另一個(gè)例子;圖19表示根據(jù)本發(fā)明第一實(shí)施例的恢復(fù)設(shè)備的系統(tǒng)配置;圖20是恢復(fù)過(guò)程的流程圖;圖21表示根據(jù)本發(fā)明第二實(shí)施例的數(shù)據(jù)壓縮設(shè)備的系統(tǒng)配置;圖22是根據(jù)本發(fā)明第二實(shí)施例的整個(gè)過(guò)程的流程圖;圖23是流程圖,表示關(guān)于在一個(gè)輸出文件中的輔助詞典的信息;圖24表示在輸出文件中的輔助詞典單元的一部分的配置;圖25表示輸出文件的整個(gè)配置;圖26表示根據(jù)本發(fā)明第二實(shí)施例的數(shù)據(jù)恢復(fù)設(shè)備的系統(tǒng)配置;圖27是由根據(jù)本發(fā)明第二實(shí)施例的數(shù)據(jù)恢復(fù)設(shè)備完成的過(guò)程的流程圖;圖28是讀輔助詞典信息的過(guò)程的流程圖;及圖29表示用于使用一種存儲(chǔ)介質(zhì)完成的數(shù)據(jù)壓縮過(guò)程和數(shù)據(jù)恢復(fù)過(guò)程的系統(tǒng)配置。
通過(guò)參照附圖描述本發(fā)明的諸實(shí)施例。
<第一實(shí)施例>
圖3表示根據(jù)本發(fā)明第一實(shí)施例的數(shù)據(jù)壓縮設(shè)備的系統(tǒng)配置。根據(jù)本實(shí)施例的數(shù)據(jù)壓縮設(shè)備包括一個(gè)字符串檢測(cè)單元1、一個(gè)輔助詞典輸入單元2、一個(gè)擴(kuò)大詞典3、一個(gè)靜態(tài)詞典4、一個(gè)輔助詞典5、一個(gè)詞劃分單元6、及一個(gè)可變長(zhǎng)度編碼單元7。字符串檢測(cè)單元1檢測(cè)要輸入的原始數(shù)據(jù)的字符串。該字符串通過(guò)參考靜態(tài)詞典4檢測(cè)。靜態(tài)詞典4預(yù)先在層次結(jié)構(gòu)(所謂的三層結(jié)構(gòu))中包含諸如常用詞、短語(yǔ)等之類的字符串。上述字符串檢測(cè)單元1通過(guò)順序參考靜態(tài)詞典4檢測(cè)來(lái)自輸入原始文檔數(shù)據(jù)的字符串。
擴(kuò)大詞典3存儲(chǔ)包含在從上述字符串檢測(cè)單元1抽取的原始文檔數(shù)據(jù)中的所有字符串的數(shù)據(jù)。就是說(shuō),除輸入在靜態(tài)詞典4中的字符串之外,能包含諸如相應(yīng)文檔數(shù)據(jù)特有的詞、成語(yǔ)等之類的字符串,或其內(nèi)容不清楚的字符串。
輔助詞典輸入單元2在輔助詞典5中,存儲(chǔ)不存儲(chǔ)在靜態(tài)詞典4中而在擴(kuò)大詞典3中抽取的字符串中的字符串,但不包括其內(nèi)容不清楚的字符串,例如諸如原始文檔數(shù)據(jù)特有的詞、成語(yǔ)等之類的字符串。
輔助詞典5在由上述輔助詞典輸入單元2執(zhí)行的選擇和輸入過(guò)程中存儲(chǔ)原始文檔數(shù)據(jù)特有的字符串。例如,輸入在輔助詞典5中的字符串可能是相應(yīng)文檔、新詞、流行詞等的特有表示。輸入在輔助詞典5中的字符串也能輸入到層次結(jié)構(gòu)(所謂的三層結(jié)構(gòu))中。
在把原始文檔數(shù)據(jù)特有的字符串輸入到上述輔助詞典5中之后,當(dāng)再次讀原始文檔數(shù)據(jù)時(shí),詞劃分單元6劃分原始文檔數(shù)據(jù)中的詞。詞劃分單元6檢索在其中預(yù)先輸入諸如常用成語(yǔ)等之類的字符串的靜態(tài)詞典4中的數(shù)據(jù)條目、和在新產(chǎn)生的輔助詞典5中的數(shù)據(jù)條目,并且然后劃分原始文檔數(shù)據(jù)。
可變長(zhǎng)度編碼單元7壓縮由上述詞劃分單元6劃分的字符串的數(shù)據(jù)。從詞劃分單元6輸出的數(shù)據(jù)是一系列劃分詞的每一個(gè)特有的固定長(zhǎng)度代碼,并且可變長(zhǎng)度編碼單元7把固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼。由可變長(zhǎng)度編碼單元7轉(zhuǎn)換成壓縮代碼的數(shù)據(jù)輸出到例如文檔存儲(chǔ)器,并且在以后描述的恢復(fù)過(guò)程中使用。
上述靜態(tài)詞典4預(yù)先把諸如常用詞、成語(yǔ)等之類的字符串的數(shù)據(jù)存儲(chǔ)在上述層次結(jié)構(gòu)中。圖4表示輸入在靜態(tài)詞典4中的數(shù)據(jù)。例如,靜態(tài)詞典4存儲(chǔ)一個(gè)節(jié)點(diǎn)索引(下文簡(jiǎn)單地稱作節(jié)點(diǎn))、和在相應(yīng)節(jié)點(diǎn)處輸入的字符數(shù)據(jù)。
例如,在節(jié)點(diǎn)1處輸入‘電’的字符代碼作為要在相應(yīng)節(jié)點(diǎn)處輸入的字符(漢字)數(shù)據(jù),在節(jié)點(diǎn)2處輸入‘學(xué)’(學(xué)習(xí))的字符代碼作為要在相應(yīng)節(jié)點(diǎn)處輸入的字符數(shù)據(jù),及在節(jié)點(diǎn)3處輸入‘商’(商業(yè))的字符代碼作為要在相應(yīng)節(jié)點(diǎn)處輸入的字符數(shù)據(jù)。因而,在一個(gè)相應(yīng)節(jié)點(diǎn)處輸入字符數(shù)據(jù),如圖4中所示。
按上述帶有鏈接的每個(gè)節(jié)點(diǎn)的樹(shù)結(jié)構(gòu)設(shè)計(jì)靜態(tài)詞典4,并且在每個(gè)節(jié)點(diǎn)處輸入的字符數(shù)據(jù)連接到其較高和其較低的鏈接的節(jié)點(diǎn)上。然而,沒(méi)有分別鏈接到最高或最低量級(jí)節(jié)點(diǎn)上的較高或較低量級(jí)節(jié)點(diǎn)。
圖5表示上述層次結(jié)構(gòu)的模式。在這種情況下,在節(jié)點(diǎn)1處輸入字符(漢字)數(shù)據(jù)‘電’。在節(jié)點(diǎn)4處的字符數(shù)據(jù)‘氣’(大氣)和在節(jié)點(diǎn)5處的字符數(shù)據(jù)‘子’(孩子)作為其較低鏈接的數(shù)據(jù)被連接。另外,在節(jié)點(diǎn)2處輸入字符數(shù)據(jù)‘學(xué)’。在節(jié)點(diǎn)6處的字符數(shù)據(jù)‘會(huì)’作為其較低鏈接的數(shù)據(jù)被連接。因此,通過(guò)鏈接鏈接的數(shù)據(jù),靜態(tài)詞典4預(yù)先包含諸如‘電氣’(電氣)、‘電子’(電子)、‘學(xué)會(huì)’(學(xué)會(huì))等之類的詞、短語(yǔ)等的常用字符串。
就上述配置而論,下面通過(guò)參照附屬的流程圖描述根據(jù)本實(shí)施例的處理操作。
圖6是根據(jù)本實(shí)施例的整個(gè)過(guò)程的流程圖。通過(guò)讀原始文檔數(shù)據(jù)兩次完成根據(jù)本實(shí)施例的過(guò)程,在第一讀過(guò)程(第一遍)中抽取原始文檔數(shù)據(jù)特有的諸如成語(yǔ)等之類的字符串,及把抽取的字符串輸入到輔助詞典5中。
就是說(shuō),字符串檢測(cè)單元1檢測(cè)字符串(步驟(下文用S表示)1)。檢測(cè)包含在原始文檔數(shù)據(jù)中的所有字符串,并且分配到擴(kuò)大詞典3。輔助詞典輸入單元2對(duì)分配到擴(kuò)大詞典3的字符串進(jìn)行選擇過(guò)程以抽取有效原始文檔數(shù)據(jù)特有的字符串,并且把抽取的字符串的數(shù)據(jù)輸入在輔助詞典5中(S2)。在第二讀過(guò)程(第二遍)中,使用輔助詞典5進(jìn)行一個(gè)詞分劃分過(guò)程(S4),并且由可變長(zhǎng)度編碼單元7把由過(guò)程(S3和S4)得到的固定長(zhǎng)度代碼的數(shù)據(jù)轉(zhuǎn)換成壓縮代碼(S5)。
在圖6所示的流程圖中,由粗線包圍的過(guò)程是本實(shí)施例特有的過(guò)程。
下面實(shí)際描述的是每個(gè)過(guò)程。首先,圖7是上述字符串檢測(cè)過(guò)程(S1)的一個(gè)實(shí)際例子。在該過(guò)程中,把在靜態(tài)詞典4中的所有字符和所有字符串分配到擴(kuò)大詞典3(S11)。在該過(guò)程中,把對(duì)輸入數(shù)據(jù)的指針位置初始設(shè)置到1,并且把詞典號(hào)n設(shè)置到N。N指示在靜態(tài)詞典4中預(yù)先輸入的字符串信息條數(shù),并且指示在靜態(tài)詞典4中輸入的字符串的最后詞典號(hào)。
其次,根據(jù)指針的位置,檢測(cè)匹配一個(gè)字符串的最長(zhǎng)字符串S(S12)。在初始化時(shí),如上所述指針的位置是1。通過(guò)檢測(cè)原始文檔數(shù)據(jù)的字符串查找從初始位置(1)開(kāi)始的最大字符串S(S12)。
例如,表示在圖8中的文檔是原始文檔數(shù)據(jù)的一部分。在該例子中,指針的位置1是原始文檔數(shù)據(jù)的初始位置,并且指示字符(漢字)數(shù)據(jù)‘電’(電)的位置,及查找從初始位置(1)開(kāi)始的最長(zhǎng)字符串S。在該過(guò)程中,例如,對(duì)上述靜態(tài)字詞典4查找字符數(shù)據(jù)‘電’,以檢測(cè)相應(yīng)字符數(shù)據(jù)的節(jié)點(diǎn)1。然后,更新指針的位置,并且檢查與指針位置2相對(duì)應(yīng)的字符數(shù)據(jù)‘氣’(大氣)是否輸入在靜態(tài)詞典4中。然后檢查在上述例子中是否在節(jié)點(diǎn)4處輸入相應(yīng)數(shù)據(jù),并且把與指針位置3相對(duì)應(yīng)的字符數(shù)據(jù)‘は’輸入在靜態(tài)字詞典4中。例如,如果字符數(shù)據(jù)‘は’不在輸入在靜態(tài)字詞典4中,則從指針位置1開(kāi)始的第一最長(zhǎng)字符串S是字符‘電氣’(電氣)。
其次,增大詞典號(hào)n(N),把詞典號(hào)設(shè)置為N+1(S13),把C設(shè)置為字符串S的下一個(gè)字符(C=字符串S的下一個(gè)字符),把字符串SC添加到詞典上,并且添加詞典號(hào)n(N+1)(S14)。另外,指針的位置運(yùn)動(dòng)到在字符串S后的字符。因此,在上述過(guò)程中,對(duì)應(yīng)于詞典號(hào)N+1抽取形成字符串‘電氣は’的部分的字符數(shù)據(jù)‘は’。
其次,控制返回過(guò)程(S12),并且查找匹配從與指針位置3相對(duì)應(yīng)的字符開(kāi)始的字符串的最長(zhǎng)字符串S,即字符數(shù)據(jù)‘は’。在這種情況下,如果靜態(tài)詞典4不包含關(guān)于字符數(shù)據(jù)‘は’的字符串,則最長(zhǎng)字符串S是‘は’,增大詞典號(hào)n,把詞典號(hào)設(shè)置為N+2(S13),字符串SC添加到詞典上,并且抽取作為用于要以詞典號(hào)n(N+2)輸入的數(shù)據(jù)的候選對(duì)象(S14)。就是說(shuō),在這種情況下,抽取字符串?dāng)?shù)據(jù)‘は今’。
通過(guò)進(jìn)行類似的過(guò)程,在圖8中所示的例子中,把字符串‘今日必’、‘必要な’順序抽取到擴(kuò)大詞典3中。
如上所述,當(dāng)對(duì)原始文檔數(shù)據(jù)的所有字符串完成抽取過(guò)程時(shí),對(duì)于上述輔助詞典進(jìn)行輸入過(guò)程(圖6中所示的S2)。圖9中所示的流程圖實(shí)際表示該過(guò)程。該過(guò)程由輔助詞典輸入單元2進(jìn)行。在抽取到擴(kuò)大詞典3中的字符串?dāng)?shù)據(jù)中,確定要輸入在輔助詞典5中的字符串。然后,把相應(yīng)字符串輸入在輔助詞典5中。因此,高至節(jié)點(diǎn)N的數(shù)據(jù)已經(jīng)輸入在靜態(tài)詞典4中,并且要處理在節(jié)點(diǎn)N處和之后的數(shù)據(jù)。
就是說(shuō),沿層次結(jié)構(gòu)中靜態(tài)詞典4中的鏈順序跟蹤數(shù)據(jù)的節(jié)點(diǎn)。如果確定已經(jīng)到達(dá)比N大的節(jié)點(diǎn)n,那么進(jìn)行字符選擇過(guò)程(在步驟S21中的否),并且進(jìn)一步確定子數(shù)據(jù)節(jié)點(diǎn)號(hào)是否超過(guò)一個(gè)閾值(S22),或者要處理的字符串長(zhǎng)度是否大于一個(gè)閾值(S23)。就是說(shuō),進(jìn)行關(guān)于子數(shù)據(jù)節(jié)點(diǎn)號(hào)是否超過(guò)一個(gè)閾值的確定(S22)。如果確定(S22)是‘否’,那么或許要處理的字符串的初始字符幾乎不形成成語(yǔ)的部分。進(jìn)行關(guān)于要處理的字符串長(zhǎng)度是否超過(guò)一個(gè)閾值的確定(S23)。如果確定(S23)是‘否’,那么或許相應(yīng)字符串形成一個(gè)無(wú)用字符串。例如,在這種情況下,即使一個(gè)字符串已經(jīng)抽取到擴(kuò)大詞典3,則也不輸入它(在S22中的確定否、和在S23中的否之后的S24)。例如當(dāng)在上述例子中字符串長(zhǎng)度的閾值是2時(shí),從條目中除去字符串‘は今’。例如輸入一個(gè)字符串‘必要な’。
另一方面,確定滿足上述條件的字符串,在兩個(gè)確定(S22和S23)中或在他們的任一個(gè)中為‘是’,并且把該字符串輸入在輔助詞典5中。然后,重復(fù)上述過(guò)程,直到在節(jié)點(diǎn)n(n>N)上的所有確定為‘是’。
如果已經(jīng)完成在節(jié)點(diǎn)n(n>N)上的所有確定過(guò)程(在S21中為是),那么把滿足上述條件的字符串輸入在輔助詞典5中(S25)。
其次,進(jìn)行關(guān)于與節(jié)點(diǎn)n(n>N)相對(duì)應(yīng)的字符串的代碼計(jì)算(S26)。圖10是實(shí)際描述字符串代碼計(jì)算的流程圖。首先,輸入上述靜態(tài)詞典4的最后字符串YYY(S26-1),并且輸入在輔助詞典5中輸入的詞的代碼1(S26-2)。然后,計(jì)算最小值m(2**m>1)(S26-3)。例如,如果輸入在輔助詞典5中的詞的代碼1是1000,那么最小值m(2**m>1)是10。如果輸入在輔助詞典5中的詞的代碼1是2000,那么最小值m是11。把按上述設(shè)置的m值分配給如下公式,以設(shè)置輔助詞典5中的每個(gè)字符串的代碼(S26-4)。計(jì)算的代碼值輸入在輔助詞典5中(圖9中的S27)。
通過(guò)執(zhí)行上述過(guò)程,能完成把新字符串輸入在輔助詞典5中的過(guò)程。圖11是在上述過(guò)程中產(chǎn)生的輔助詞典5的數(shù)據(jù)的配置的一個(gè)例子。圖12表示靜態(tài)詞典4和輔助詞典5的字符串?dāng)?shù)據(jù)的配置的例子。圖13表示輸入在上述靜態(tài)詞典4和輔助詞典5中的數(shù)據(jù)的樹(shù)結(jié)構(gòu)的模式。在上述例子中,在節(jié)點(diǎn)1處輸入字符(漢字)數(shù)據(jù)‘電’(電),并且把在節(jié)點(diǎn)4處的字符數(shù)據(jù)‘氣’(大氣)和在節(jié)點(diǎn)5處的字符數(shù)據(jù)‘子’(孩子)連接成較低鏈接數(shù)據(jù)。而且,把字符數(shù)據(jù)‘話’(談話)連接到節(jié)點(diǎn)‘N+3’上。另外,就在上述節(jié)點(diǎn)5處的字符數(shù)據(jù)‘子’(孩子)而論,輸入在節(jié)點(diǎn)N+6處的字符數(shù)據(jù)‘出’(發(fā)行)作為較低鏈接數(shù)據(jù)。輸入(在節(jié)點(diǎn)N+7處的)字符數(shù)據(jù)‘版’(發(fā)行)作為字符數(shù)據(jù)‘出’的較低鏈接數(shù)據(jù)。
類似地就其他節(jié)點(diǎn)而論,新輸入在節(jié)點(diǎn)N+2處的字符數(shù)據(jù)‘問(wèn)’(問(wèn)題)作為輔助詞典5中的節(jié)點(diǎn)2處的字符數(shù)據(jù)‘學(xué)’(學(xué)習(xí))的較低鏈接數(shù)據(jù)。新輸入在節(jié)點(diǎn)N+4處的數(shù)據(jù)‘上’作為輔助詞典5中的節(jié)點(diǎn)7處的字符數(shù)據(jù)‘殼’(銷售)的較低鏈接數(shù)據(jù)。而且,輸入在節(jié)點(diǎn)N+5處的數(shù)據(jù)‘手’(手)作為字符數(shù)據(jù)‘上’(上面)的較低鏈接數(shù)據(jù)。因而輸入在輔助詞典5中的數(shù)據(jù)指示為陰影圓。
圖14表示靜態(tài)詞典4和輔助詞典5的代碼空間。輸入靜態(tài)字詞典4和輔助詞典5作為代碼數(shù)據(jù)。例如,輸入2字節(jié)字符。表示在圖14中的ESC指示轉(zhuǎn)義概率。它指示輔助詞典5的需要概率,并且預(yù)先設(shè)置到一個(gè)預(yù)定值。
其次,使用上述靜態(tài)詞典4和新產(chǎn)生的輔助詞典5,對(duì)原始數(shù)據(jù)進(jìn)行第二讀過(guò)程(第二遍)。
表示在圖15中的過(guò)程實(shí)際描述詞劃分過(guò)程(圖4中所示的S3和S4)。把字符串分配到擴(kuò)大詞典3、靜態(tài)詞典4、及輔助詞典5,并且把輸入原始文檔數(shù)據(jù)的指針位置初始設(shè)置到1(S31)。
其次,檢測(cè)與來(lái)自詞典中上述指針位置的字符串相匹配的最長(zhǎng)字符串S(S32)。圖16中所示的流程圖表示檢測(cè)上述最長(zhǎng)字符串S的實(shí)際過(guò)程。例如,在上述例子中,當(dāng)字符串‘電氣は’首先出現(xiàn)在文檔數(shù)據(jù)中時(shí),第一字符W(指針的位置是1)(S32-1)是‘電’。例如,輸入字符數(shù)據(jù)作為目標(biāo)字符(S32-2)。
其次,確定是否有與靜態(tài)詞典4中的上述目標(biāo)字符相匹配的字符(S32-3)。如果在靜態(tài)詞典4中沒(méi)有這樣的字符,則進(jìn)一步確定在輔助詞典5中是否存在一個(gè)匹配字符(S32-4)。在上述情況下,字符(漢字)數(shù)據(jù)‘電’包含在靜態(tài)詞典4中,更新指針的位置,及對(duì)于下個(gè)字符(漢字)數(shù)據(jù)‘氣’進(jìn)行類似的過(guò)程(在S32-4為“是”之后的S32-5)。
對(duì)于下個(gè)字符(漢字)數(shù)據(jù)‘氣,查找靜態(tài)詞典4(在S32-3為“是”后的S32-5),并且然后確定是否有與下個(gè)字符‘は’相匹配的字符。在輔助詞典5中的節(jié)點(diǎn)N+1處檢測(cè)字符數(shù)據(jù)‘は’(在S32-4之后的S32-5)。然后,查找下個(gè)字符數(shù)據(jù)‘今’(現(xiàn)在)。在上述實(shí)施例中,在靜態(tài)字詞典4或輔助詞典5中在‘電氣は’之后沒(méi)有字符,并且輸出字符‘電氣は’作為初始(前導(dǎo))字符W的字符(字符數(shù)據(jù)‘電’)的最長(zhǎng)匹配字符串S(S32-6、圖15中所示的S32)。
其次,控制返回圖15中所示的過(guò)程,并且使用固定長(zhǎng)度位輸出關(guān)于字符串S的代號(hào)(S33)。于是,順序輸出字符串‘電氣は’的固定長(zhǎng)度位的數(shù)據(jù)。在這種情況下,輸出與字符數(shù)據(jù)‘は’的節(jié)點(diǎn)N+1相對(duì)應(yīng)的固定長(zhǎng)度代碼,作為與字符串‘電氣は’相對(duì)應(yīng)的代碼。
其次,把上述指針位置運(yùn)動(dòng)到字符串S之后的字符位置(S34),并且對(duì)于作為目標(biāo)字符的下個(gè)字符數(shù)據(jù)‘今’重復(fù)上述過(guò)程。
因此,通過(guò)重復(fù)上述過(guò)程,把與字符串‘今日’(今天)相對(duì)應(yīng)的固定長(zhǎng)度代碼的數(shù)據(jù)、和與字符串‘必要’(必要)相對(duì)應(yīng)的固定長(zhǎng)度代碼的數(shù)據(jù)、…順序輸出到可變長(zhǎng)度編碼單元7。
因而,當(dāng)為可變長(zhǎng)度編碼單元7提供固定長(zhǎng)度代碼數(shù)據(jù)時(shí),可變長(zhǎng)度編碼單元7把固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼(圖6中所示的S5)。通過(guò)把從詞劃分單元6輸出的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼執(zhí)行該過(guò)程,并且圖17和18表示壓縮代碼的代碼值的例子。例如,圖17表示僅輸入在靜態(tài)詞典4中的字符串的代碼值,而圖18表示輸入在輔助詞典5中的字符串的代碼值。
例如,當(dāng)由詞劃分單元6輸入指示字符串‘電氣’(電氣)的固定長(zhǎng)度代碼時(shí),可變長(zhǎng)度編碼單元7輸出一個(gè)相應(yīng)代碼值0000001。當(dāng)輸入字符串‘電子’(電子)的固定長(zhǎng)度代碼時(shí),可變長(zhǎng)度編碼單元7輸出一個(gè)相應(yīng)代碼值0000011。另一方面,當(dāng)輸入字符串‘電氣は’的字符串代碼時(shí),可變長(zhǎng)度編碼單元7輸出圖18中所示的代碼值YYY000001。當(dāng)輸入字符串‘電子出版’(電子出版)的固定長(zhǎng)度代碼時(shí),可變長(zhǎng)度編碼單元7輸出圖18中所示的代碼值YYY000010。
當(dāng)從詞劃分單元6輸出其他固定長(zhǎng)度代碼時(shí),輸出圖17和18中所示的相應(yīng)代碼值。另外,把按上述輸出的壓縮代碼寫到例如附圖中沒(méi)有表示的文檔存儲(chǔ)器中。
通過(guò)執(zhí)行上述過(guò)程,當(dāng)與使用常規(guī)靜態(tài)詞典執(zhí)行的壓縮過(guò)程相比較時(shí),能改進(jìn)壓縮率,由此輸出少量的壓縮數(shù)據(jù)。結(jié)果,使用較小容量的文檔存儲(chǔ)器能寫壓縮數(shù)據(jù)。
其次,下面解釋恢復(fù)寫到例如上述文檔存儲(chǔ)器上的壓縮代碼(壓縮數(shù)據(jù))的過(guò)程。
圖19表示根據(jù)本發(fā)明的恢復(fù)設(shè)備的系統(tǒng)配置。該設(shè)備包括一個(gè)可變長(zhǎng)度譯碼單元10、一個(gè)詞恢復(fù)單元11、上述靜態(tài)詞典4、及輔助詞典5。上述靜態(tài)詞典4和輔助詞典5連接到詞恢復(fù)單元11上。當(dāng)詞恢復(fù)單元11把壓縮數(shù)據(jù)恢復(fù)成原始文檔數(shù)據(jù)時(shí),它使用靜態(tài)詞典4和輔助詞典5。
圖20是恢復(fù)過(guò)程的流程圖。首先,可變長(zhǎng)度譯碼單元10接收存入例如文檔存儲(chǔ)器中的壓縮代碼(壓縮數(shù)據(jù)),對(duì)壓縮代碼進(jìn)行與壓縮過(guò)程相反的擴(kuò)充過(guò)程,及把它譯碼到原始固定長(zhǎng)度代碼(S41)。就是說(shuō),通過(guò)參考圖17和18,把壓縮代碼值(壓縮數(shù)據(jù))譯碼成相應(yīng)固定長(zhǎng)度代碼(固定長(zhǎng)度數(shù)據(jù))。例如,當(dāng)接收壓縮代碼值0000001時(shí),輸出字符串‘電氣’(電氣)的固定長(zhǎng)度代碼。當(dāng)接收壓縮代碼值0000011時(shí),輸出字符串‘電子’(電子)的固定長(zhǎng)度代碼。另一方面,當(dāng)接收壓縮代碼值YYY000001時(shí),輸出字符串‘電氣は’的固定長(zhǎng)度代碼。當(dāng)接收壓縮代碼值YYY000010時(shí),輸出字符串‘電子出版’(電子出版者)的固定長(zhǎng)度代碼。
其次,為詞恢復(fù)單元11提供由可變長(zhǎng)度譯碼單元10譯碼的固定長(zhǎng)度代碼的數(shù)據(jù),并且通過(guò)第一次查找靜態(tài)詞典4執(zhí)行字恢復(fù)過(guò)程(S42)。例如,當(dāng)由可變長(zhǎng)度譯碼單元10提供的固定長(zhǎng)度代碼對(duì)應(yīng)于字符串‘電氣’時(shí),從靜態(tài)詞典4順序讀出與‘電氣’相對(duì)應(yīng)的字符代碼,并且作為原始文檔數(shù)據(jù)輸出。當(dāng)由可變長(zhǎng)度譯碼單元10提供的固定長(zhǎng)度代碼對(duì)應(yīng)于字符串‘電子’時(shí),從靜態(tài)詞典4順序讀出與‘電子’相對(duì)應(yīng)的字符代碼,并且作為原始文檔數(shù)據(jù)輸出。另一方面,當(dāng)由可變長(zhǎng)度譯碼單元10提供的固定長(zhǎng)度代碼對(duì)應(yīng)于字符串‘電氣は’時(shí),該字符串不輸入在靜態(tài)詞典4中,并且字恢復(fù)單元11查找輔助詞典5,及讀出與字符串‘電氣は’相對(duì)應(yīng)的字符代碼(S43)。另外,類似地當(dāng)由可變長(zhǎng)度譯碼單元10提供的代碼值對(duì)應(yīng)于字符串‘電子出版’時(shí),它是不輸入在靜態(tài)詞典4中的字符串,及查找輔助詞典5,以讀出與‘電子出版’相對(duì)應(yīng)的字符代碼。
重復(fù)執(zhí)行上述過(guò)程,并且詞恢復(fù)單元11在查找靜態(tài)詞典4和輔助詞典5的同時(shí),把編碼信息順序恢復(fù)成原始文檔數(shù)據(jù)。當(dāng)完成所有過(guò)程時(shí),完全重新產(chǎn)生原始數(shù)據(jù)。
在上述恢復(fù)過(guò)程中,壓縮代碼(壓縮數(shù)據(jù))能重新生成原始文檔數(shù)據(jù)。由于使用輔助詞典5編碼的壓縮代碼在這種情況下從文檔存儲(chǔ)器傳送,所以在短時(shí)間內(nèi)能完成傳送過(guò)程。
在根據(jù)本發(fā)明的上述解釋中,分別描述了數(shù)據(jù)壓縮設(shè)備和數(shù)據(jù)恢復(fù)設(shè)備。然而,能類似的操作包括他們兩者的裝置。
<第二實(shí)施例>
下面描述的是本發(fā)明的第二實(shí)施例。
與在上述第一實(shí)施例中的情況不同,根據(jù)本實(shí)施例的數(shù)據(jù)壓縮設(shè)備把產(chǎn)生的壓縮數(shù)據(jù)經(jīng)因特網(wǎng)等的通信線傳送到另一臺(tái)計(jì)算機(jī),并且把數(shù)據(jù)恢復(fù)成原始數(shù)據(jù)。在傳送側(cè)產(chǎn)生的輔助詞典經(jīng)通信線傳送到另一臺(tái)計(jì)算機(jī)。
圖21表示根據(jù)本實(shí)施例的數(shù)據(jù)壓縮設(shè)備的系統(tǒng)配置。根據(jù)本實(shí)施例的數(shù)據(jù)壓縮設(shè)備包括一個(gè)字符串檢測(cè)單元21、一個(gè)輔助詞典輸入單元22、一個(gè)擴(kuò)大詞典23、一個(gè)靜態(tài)詞典24、一個(gè)輔助詞典25、一個(gè)詞劃分單元26、一個(gè)可變長(zhǎng)度編碼單元27、及一個(gè)補(bǔ)充單元28。在靜態(tài)詞典24中,如上述那樣輸入諸如詞、短語(yǔ)等之類的常用字符串,并且字符串檢測(cè)單元21通過(guò)參考靜態(tài)詞典24檢測(cè)包含在原始文檔數(shù)據(jù)中的字符串。
另外,把諸如沒(méi)有輸入在靜態(tài)詞典24中的成語(yǔ)等之類的字符串的數(shù)據(jù)存儲(chǔ)在輔助詞典25中。該輸入過(guò)程由輔助詞典輸入單元22執(zhí)行,并且輸入在由擴(kuò)大詞典23抽取的字符串中的原始文檔數(shù)據(jù)特有的字符串。
而且如上所述,當(dāng)執(zhí)行輸入諸如詞短語(yǔ)等之類的字符串的過(guò)程之后,當(dāng)再次讀原始文檔數(shù)據(jù)時(shí),詞劃分單元26把原始文檔數(shù)據(jù)劃分成詞。另外,可變長(zhǎng)度編碼單元27對(duì)劃分成詞的數(shù)據(jù)選擇數(shù)據(jù)壓縮過(guò)程。
另一方面,補(bǔ)充單元28讀在輔助詞典25中根據(jù)本實(shí)施例產(chǎn)生的信息,把讀出信息輸出到因特網(wǎng)等的通信線,及在輸出從可變長(zhǎng)度編碼單元27輸出的壓縮代碼之前,傳送該信息。
其中預(yù)先輸入諸如詞、短語(yǔ)等之類的常用字符串的靜態(tài)詞典24的配置,類似于上述配置。他們輸入在層次結(jié)構(gòu)中。
就上述配置而論,通過(guò)參照下面的流程圖描述根據(jù)本實(shí)施例的處理操作。
圖22是根據(jù)本發(fā)明第二實(shí)施例的處理操作的流程圖。而且在本實(shí)施例中,對(duì)原始文檔數(shù)據(jù)執(zhí)行兩次讀過(guò)程。在第一讀過(guò)程(第一遍)中,抽取原始文檔數(shù)據(jù)特有的字符串,并且輸入到輔助詞典25中。就是說(shuō),首先執(zhí)行字符串檢測(cè)過(guò)程(步驟S51),抽取原始文檔數(shù)據(jù)特有的字符串,并且把抽取的字符串的數(shù)據(jù)輸入在輔助詞典25中(S52)。
而且,字符串檢測(cè)過(guò)程(S51)與上述第一實(shí)施例中描述的過(guò)程(參考圖6中所示的流程圖)相同,并且抽取在擴(kuò)大詞典23中的原始文檔數(shù)據(jù)的字符串。輸入原始文檔數(shù)據(jù)特有的字符串的過(guò)程也與在第一實(shí)施例中描述的過(guò)程(圖7中所示的流程圖)相同。僅輸入輔助詞典25特有的字符串的數(shù)據(jù)。就上述過(guò)程而論,在靜態(tài)詞典4和輔助詞典5中輸入圖12中所示的數(shù)據(jù)。
根據(jù)本實(shí)施例,象在根據(jù)圖22中所示的流程圖執(zhí)行的過(guò)程中那樣,把輸入輔助詞典25中的數(shù)據(jù)添加到輸出文件的首部(S53)。該過(guò)程由補(bǔ)充單元28執(zhí)行。實(shí)際上,該過(guò)程根據(jù)圖23中所示的流程圖執(zhí)行。
圖24表示在該過(guò)程中產(chǎn)生的文件格式。
首先,確定目標(biāo)字符串是否是在n>N處結(jié)束的字符串(S61)。例如,在上述字符串‘電氣’的情況下,相應(yīng)字符串是在節(jié)點(diǎn)4(n<N)處結(jié)束的字符串,并且確定為否(在S61中為否)。另一方面,在上述字符串段‘電氣は’的情況下,相應(yīng)字符串是在節(jié)點(diǎn)N+1(n>N)處結(jié)束的字符串,并且確定為是(在S61中為是)。在這種情況下,檢索在n≤N處的父節(jié)點(diǎn)。例如,在上述字符串‘電氣は’的情況下,查找‘は’的父節(jié)點(diǎn)4,并且輸入該字符串(S62、S63)。在該過(guò)程中,把‘は’的父節(jié)點(diǎn)(的索引)和‘は’的字符代碼寫到圖24中所示的文件上。而且,寫相應(yīng)字符串的編碼字YYY000001(S64)。
另外,當(dāng)字符串是‘電子出版’時(shí),查找‘出版’(出版)的父節(jié)點(diǎn)5,并且輸入該字符串。把‘出版’(的索引)的父節(jié)點(diǎn)和‘出版’的字符代碼寫到圖24中所示的文件上。而且,寫相應(yīng)字符串的編碼字YYY000010。
另外,圖24中所示的文件格式表示在輔助詞典中諸條目的內(nèi)容的一部分。在寫輔助詞典中的信息之后,在輔助詞典的末端處添加壓縮代碼,并且然后輸出。圖25表示帶有添加到輔助詞典單元上的壓縮代碼的整個(gè)輸出文件的輸出格式,對(duì)于該輔助詞典單元寫輔助詞典。從以后描述的可變長(zhǎng)度編碼單元27輸出的壓縮代碼添加到壓縮代碼單元上。
其次,詞劃分單元26執(zhí)行劃分與原始文檔數(shù)據(jù)相對(duì)應(yīng)的字符串的過(guò)程(圖22中所示的S54、S55)。該過(guò)程類似于上述過(guò)程。就是說(shuō),在對(duì)于靜態(tài)詞典24和輔助詞典25查找原始文檔數(shù)據(jù)的同時(shí),產(chǎn)生字符串的固定長(zhǎng)度代碼。例如,在字符串‘電氣’的情況下,通過(guò)查找靜態(tài)詞典24輸出一個(gè)相應(yīng)固定長(zhǎng)度代碼。另一方面,在字符串‘電氣は’的情況下,通過(guò)查找輔助詞典25輸出一個(gè)相應(yīng)固定長(zhǎng)度代碼。
可變長(zhǎng)度編碼單元27把從詞劃分單元26輸出的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼。該過(guò)程與根據(jù)上述第一實(shí)施例的過(guò)程相同。例如,當(dāng)檢索字符串‘電氣’的固定長(zhǎng)度代碼時(shí),可變長(zhǎng)度編碼單元27輸出相應(yīng)壓縮代碼0000001。另一方面,當(dāng)檢索字符串‘電氣は’的固定長(zhǎng)度代碼時(shí),可變長(zhǎng)度編碼單元27輸出相應(yīng)壓縮代碼YYY000001。
通過(guò)執(zhí)行上述過(guò)程,在補(bǔ)充單元28輸出輔助詞典25的內(nèi)容之后,輸出實(shí)際壓縮代碼。就是說(shuō),在如圖25中所示格式的輸出文件中,描述輔助詞典25的內(nèi)容和壓縮代碼的數(shù)據(jù),并且經(jīng)因特網(wǎng)等的通信線輸出到另一臺(tái)計(jì)算機(jī),及執(zhí)行壓縮代碼重新生成過(guò)程。
因此,根據(jù)本實(shí)施例,基于輸入在輔助詞典25中的數(shù)據(jù),能編碼原始文檔數(shù)據(jù)特有的字符串,由此把數(shù)據(jù)壓縮成非常小的量。結(jié)果,當(dāng)經(jīng)因特網(wǎng)等的通信線傳送數(shù)據(jù)時(shí),能縮短數(shù)據(jù)傳送時(shí)間。
下面描述的是其中恢復(fù)經(jīng)通信線提供的壓縮數(shù)據(jù)的情形。
圖26表示根據(jù)本實(shí)施例的恢復(fù)設(shè)備的系統(tǒng)配置。該設(shè)備包括一個(gè)可變長(zhǎng)度譯碼單元30、一個(gè)詞恢復(fù)單元31、一個(gè)靜態(tài)詞典34、一個(gè)輔助詞典33、及一個(gè)輔助詞典輸入單元32。詞恢復(fù)單元31連接到靜態(tài)詞典34和輔助詞典33上,并且當(dāng)詞恢復(fù)單元31把數(shù)據(jù)恢復(fù)成原始文檔數(shù)據(jù)時(shí),查找靜態(tài)詞典34和輔助詞典33。另外,輔助詞典輸入單元32輸入經(jīng)通信線提供在輔助詞典33中的輔助詞典信息。
圖27是關(guān)于上述配置根據(jù)第二實(shí)施例的恢復(fù)過(guò)程的流程圖。首先,根據(jù)本實(shí)施例,執(zhí)行輔助詞典輸入過(guò)程(S71),在該過(guò)程中,例如使用輔助詞典輸入單元32檢測(cè)在如圖24中所示的文件狀態(tài)下輸入的數(shù)據(jù),并且在數(shù)據(jù)恢復(fù)設(shè)備側(cè)輸入在輔助詞典33中。
圖28是該過(guò)程的流程圖。就是說(shuō),輸入包含在輔助詞典單元中的每個(gè)字符串(的索引)的父節(jié)點(diǎn)(S81)。在該過(guò)程中,在圖24中所示的例子中,讀‘は’(的索引)的父節(jié)點(diǎn)4,并且讀‘は’的字符代碼和該字符串的編碼字YYY000001(S82、S83)。然后,讀‘出版’(的索引)的父節(jié)點(diǎn)5,并且讀相應(yīng)的字符代碼和字符串的編碼字YYY000010。
通過(guò)重復(fù)上述過(guò)程,把在數(shù)據(jù)壓縮設(shè)備側(cè)上的輔助詞典25的數(shù)據(jù)輸入在輔助詞典33中。
另一方面,可變長(zhǎng)度譯碼單元30執(zhí)行如上所述經(jīng)因特網(wǎng)等的通信線提供的恢復(fù)數(shù)據(jù)過(guò)程(圖27中所示的S/2)。例如,輸入經(jīng)通信線提供的壓縮代碼(壓縮數(shù)據(jù)),并且轉(zhuǎn)換成一個(gè)固定長(zhǎng)度代碼。該過(guò)程與上述過(guò)程相同。例如,把壓縮代碼0000001譯碼成字符串‘電氣’的固定長(zhǎng)度代碼,并且把壓縮代碼YYY000001譯碼成字符串‘電氣は’的固定長(zhǎng)度代碼。
其次,由可變長(zhǎng)度譯碼單元30譯碼的固定長(zhǎng)度提供給詞恢復(fù)單元31,查找靜態(tài)詞典24,并且執(zhí)行詞恢復(fù)過(guò)程(S73)。例如,當(dāng)從可變長(zhǎng)度譯碼單元30提供的代碼對(duì)應(yīng)于字符串‘電氣’時(shí),輸出與‘電氣’相對(duì)應(yīng)的字符代碼。另外,當(dāng)從可變長(zhǎng)度譯碼單元30提供的代碼對(duì)應(yīng)于字符串‘電子’時(shí),輸出與‘電子’相對(duì)應(yīng)的字符代碼。
另一方面,當(dāng)從可變長(zhǎng)度譯碼單元30提供的代碼值對(duì)應(yīng)于字符串‘電氣は’時(shí),它不輸入在靜態(tài)詞典34中,并且詞恢復(fù)單元31查找輔助詞典33(S74)。這時(shí),把存儲(chǔ)在數(shù)據(jù)壓縮設(shè)備側(cè)的輔助詞典25中的數(shù)據(jù)經(jīng)如上所述的因特網(wǎng)等的通信線寫到輔助詞典33,并且由查找輔助詞典33的詞恢復(fù)單元31能檢測(cè)相應(yīng)的字符代碼。另外,當(dāng)代碼值是指字符串‘電子出版’時(shí),它不輸入在靜態(tài)字詞典34中,詞恢復(fù)單元31查找輔助詞典33,及能檢測(cè)相應(yīng)的字符代碼。
順序輸出如上所述檢測(cè)的字符代碼的數(shù)據(jù),作為原始文檔數(shù)據(jù)。當(dāng)繼續(xù)上述過(guò)程時(shí),詞恢復(fù)單元31在查找靜態(tài)詞典34和輔助詞典33的同時(shí),順序把代碼信息恢復(fù)成原始文檔數(shù)據(jù)。當(dāng)完成所有過(guò)程時(shí),完成恢復(fù)原始文檔數(shù)據(jù)的過(guò)程。
如上所述,根據(jù)本發(fā)明第二實(shí)施例,在接收側(cè)的計(jì)算機(jī)中經(jīng)因特網(wǎng)等的通信線輸入在數(shù)據(jù)壓縮設(shè)備側(cè)產(chǎn)生的、存儲(chǔ)在輔助詞典中的信息,并且使用輔助詞典和通用靜態(tài)詞典恢復(fù)原始文檔數(shù)據(jù)的壓縮數(shù)據(jù),并且在傳送輔助詞典之后在短時(shí)間內(nèi)執(zhí)行數(shù)據(jù)恢復(fù)過(guò)程。
圖29表示這樣一種系統(tǒng)通過(guò)在諸如軟盤、CD-ROM等之類的可攜帶存儲(chǔ)介質(zhì)中,和在諸如硬盤等之類的外部存儲(chǔ)裝置的存儲(chǔ)器中,存儲(chǔ)本實(shí)施例的數(shù)據(jù)存取過(guò)程的程序;和通過(guò)把存儲(chǔ)介質(zhì)插入在計(jì)算機(jī)的驅(qū)動(dòng)器中,實(shí)現(xiàn)根據(jù)本實(shí)施例的過(guò)程。
另外,通過(guò)經(jīng)因特網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)等的通信線從程序提供者向計(jì)算機(jī)下載本實(shí)施例的程序,也能實(shí)現(xiàn)該過(guò)程。
如上所述,根據(jù)本發(fā)明能把文檔數(shù)據(jù)特有的字的字符串和短語(yǔ)輸入在輔助詞典中,由此改進(jìn)壓縮率和輸出少量壓縮數(shù)據(jù)。
而且,由于輸出少量壓縮數(shù)據(jù),所以能把壓縮數(shù)據(jù)存儲(chǔ)具有小容量的文檔存儲(chǔ)器等中。
此外,當(dāng)經(jīng)因特網(wǎng)等的通信線傳送壓縮數(shù)據(jù)時(shí),能在短時(shí)間內(nèi)傳送它,因?yàn)閿?shù)據(jù)量能較小。
權(quán)利要求
1.一種數(shù)據(jù)壓縮設(shè)備,包括一個(gè)靜態(tài)詞典,預(yù)先包含詞和短語(yǔ)的字符串;一個(gè)字符串檢測(cè)單元,檢索要壓縮的文檔數(shù)據(jù),并且檢測(cè)沒(méi)有包含在所述靜態(tài)詞典中的字符串;一個(gè)選擇和輸入單元,從由所述字符串檢測(cè)單元檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串,并且把選擇的字符串輸入到一個(gè)輔助詞典中;一個(gè)詞劃分單元,對(duì)所述靜態(tài)詞典和所述輔助詞典查找要壓縮的文檔數(shù)據(jù),并且把輸入到所述靜態(tài)詞典或所述輔助詞典中的字符數(shù)據(jù)轉(zhuǎn)換成固定長(zhǎng)度代碼;及一個(gè)可變長(zhǎng)度編碼單元,把從所述詞劃分單元輸出的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼。
2.根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括一個(gè)譯碼單元,把壓縮代碼譯碼成固定長(zhǎng)度代碼;及一個(gè)數(shù)據(jù)恢復(fù)單元,使用所述靜態(tài)詞典和所述輔助詞典把由所述譯碼單元譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
3.一種數(shù)據(jù)恢復(fù)設(shè)備,包括一個(gè)靜態(tài)詞典,預(yù)先存儲(chǔ)詞和短語(yǔ)的字符串;一個(gè)輔助詞典,在檢索要壓縮的文檔數(shù)據(jù)、檢測(cè)沒(méi)有包含在所述靜態(tài)字詞典中文檔數(shù)據(jù)特有的詞和短語(yǔ)的字符串、進(jìn)一步從上述字符串中選擇字符串之后,存儲(chǔ)字符串;一個(gè)譯碼單元,把文檔數(shù)據(jù)的壓縮代碼譯碼成固定長(zhǎng)度代碼;及一個(gè)數(shù)據(jù)恢復(fù)單元,使用所述靜態(tài)詞典和所述輔助詞典,把由所述譯碼單元譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
4.一種數(shù)據(jù)壓縮設(shè)備,包括一個(gè)靜態(tài)詞典,預(yù)先包含詞和短語(yǔ)的字符串;一個(gè)字符串檢測(cè)單元,檢索要壓縮的文檔數(shù)據(jù),并且檢測(cè)沒(méi)有包含在所述靜態(tài)詞典中的字符串;一個(gè)選擇和輸入單元,從由所述字符串檢測(cè)單元檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串,并且把選擇的字符串輸入到一個(gè)輔助詞典中;一個(gè)詞劃分單元,對(duì)所述靜態(tài)詞典和所述輔助詞典查找要壓縮的文檔數(shù)據(jù),并且把輸入到所述靜態(tài)字詞典或所述輔助詞典中的字符數(shù)據(jù)轉(zhuǎn)換成固定長(zhǎng)度代碼;一個(gè)可變長(zhǎng)度編碼單元,把從所述詞劃分單元輸出的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼;及一個(gè)傳送單元,通過(guò)把輸入在所述輔助詞典中的字符串?dāng)?shù)據(jù)添加為由所述可變長(zhǎng)度編碼單元產(chǎn)生的壓縮代碼的首部,把該數(shù)據(jù)傳送到通信網(wǎng)絡(luò)。
5.根據(jù)權(quán)利要求4所述的設(shè)備,進(jìn)一步包括一個(gè)輔助詞典輸入控制單元,接收輸入在所述輔助詞典中經(jīng)通信網(wǎng)絡(luò)傳送的數(shù)據(jù),并且把數(shù)據(jù)輸入在一個(gè)輔助詞典存儲(chǔ)單元中;一個(gè)譯碼單元,把壓縮代碼譯碼成固定長(zhǎng)度代碼;及一個(gè)數(shù)據(jù)恢復(fù)單元,使用所述靜態(tài)詞典和所述輔助詞典存儲(chǔ)單元把由所述譯碼單元譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
6.一種數(shù)據(jù)恢復(fù)設(shè)備,包括一個(gè)靜態(tài)詞典,預(yù)先存儲(chǔ)詞和短語(yǔ)的字符串;一個(gè)輔助詞典存儲(chǔ)單元,存儲(chǔ)經(jīng)通信網(wǎng)絡(luò)傳送的輔助詞典輸入數(shù)據(jù);一個(gè)譯碼單元,把文檔數(shù)據(jù)的壓縮代碼譯碼成固定長(zhǎng)度代碼;及一個(gè)數(shù)據(jù)恢復(fù)單元,通過(guò)檢索所述靜態(tài)詞典和存儲(chǔ)在所述輔助詞典存儲(chǔ)單元中的輔助詞典,把由所述譯碼單元譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
7.一種數(shù)據(jù)壓縮方法,包括一個(gè)字符串檢測(cè)過(guò)程,使用一個(gè)預(yù)先包含詞和短語(yǔ)的字符串的靜態(tài)詞典,檢索要壓縮的文檔數(shù)據(jù),及檢測(cè)沒(méi)有包含在所述靜態(tài)詞典中的字符串;一個(gè)選擇和輸入過(guò)程,從在所述字符串檢測(cè)過(guò)程中檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串,并且把選擇的字符串輸入到一個(gè)輔助詞典中;一個(gè)詞劃分過(guò)程,對(duì)所述靜態(tài)詞典和所述輔助詞典查找要壓縮的文檔數(shù)據(jù),并且把輸入到所述靜態(tài)詞典或所述輔助詞典中的字符數(shù)據(jù)轉(zhuǎn)換成固定長(zhǎng)度代碼;及一個(gè)可變長(zhǎng)度編碼過(guò)程,把在所述詞劃分過(guò)程中轉(zhuǎn)換的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼。
8.一種數(shù)據(jù)恢復(fù)方法,包括一個(gè)選擇和輸入過(guò)程,通過(guò)使用一個(gè)預(yù)先存儲(chǔ)詞和短語(yǔ)的字符串的靜態(tài)詞典,檢索要壓縮的文檔數(shù)據(jù)、檢測(cè)沒(méi)有包含在所述靜態(tài)詞典中文檔數(shù)據(jù)特有的詞和短語(yǔ)的字符串、進(jìn)一步從字符串中選擇字符串,并且把字符串輸入在一個(gè)輔助詞典中;一個(gè)譯碼過(guò)程,把文檔數(shù)據(jù)的壓縮代碼譯碼成固定長(zhǎng)度代碼;及一個(gè)數(shù)據(jù)恢復(fù)過(guò)程,使用所述靜態(tài)詞典和所述輔助詞典,把由所述譯碼過(guò)程譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
9.一種數(shù)據(jù)壓縮方法,包括一個(gè)字符串檢測(cè)過(guò)程,使用一個(gè)預(yù)先包含詞和短語(yǔ)的字符串的靜態(tài)詞典,檢索要壓縮的文檔數(shù)據(jù),及檢測(cè)沒(méi)有包含在所述靜態(tài)詞典中的字符串;一個(gè)選擇和輸入過(guò)程,從在所述字符串檢測(cè)過(guò)程中檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串,并且把選擇的字符串輸入到一個(gè)輔助詞典中;一個(gè)詞劃分過(guò)程,對(duì)所述靜態(tài)詞典和所述輔助詞典查找要壓縮的文檔數(shù)據(jù),并且把輸入到所述靜態(tài)字詞典或所述輔助詞典中的字符數(shù)據(jù)轉(zhuǎn)換成固定長(zhǎng)度代碼;一個(gè)可變長(zhǎng)度編碼過(guò)程,把固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼;及一個(gè)傳送過(guò)程,通過(guò)把輸入在所述輔助詞典中的字符串?dāng)?shù)據(jù)添加為在所述可變長(zhǎng)度編碼過(guò)程中產(chǎn)生的壓縮代碼的首部,把該數(shù)據(jù)傳送到通信網(wǎng)絡(luò)。
10.一種數(shù)據(jù)恢復(fù)方法,包括一個(gè)輔助詞典存儲(chǔ)過(guò)程,存儲(chǔ)經(jīng)通信網(wǎng)絡(luò)傳送的輔助詞典輸入數(shù)據(jù);一個(gè)譯碼過(guò)程,把文檔數(shù)據(jù)的壓縮代碼譯碼成固定長(zhǎng)度代碼;及一個(gè)數(shù)據(jù)恢復(fù)過(guò)程,使用所述靜態(tài)詞典和所述輔助詞典,把由所述譯碼過(guò)程譯碼的固定長(zhǎng)度代碼恢復(fù)成原始文檔數(shù)據(jù)。
11.一種存儲(chǔ)一個(gè)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),以指導(dǎo)計(jì)算機(jī)執(zhí)行如下過(guò)程一個(gè)字符串檢測(cè)過(guò)程,使用一個(gè)預(yù)先包含詞和短語(yǔ)的字符串的靜態(tài)詞典,檢索要壓縮的文檔數(shù)據(jù),及檢測(cè)沒(méi)有包含在所述靜態(tài)字詞典中的字符串;一個(gè)選擇和輸入過(guò)程,從在所述字符串檢測(cè)過(guò)程中檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串,并且把選擇的字符串輸入到一個(gè)輔助詞典中;一個(gè)詞劃分過(guò)程,對(duì)所述靜態(tài)詞典和所述輔助詞典查找要壓縮的文檔數(shù)據(jù),并且把輸入到所述靜態(tài)詞典或所述輔助詞典中的字符數(shù)據(jù)轉(zhuǎn)換成固定長(zhǎng)度代碼;及一個(gè)可變長(zhǎng)度編碼過(guò)程,把固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼。
全文摘要
本發(fā)明提供一種數(shù)據(jù)壓縮設(shè)備和數(shù)據(jù)恢復(fù)設(shè)備用于提高數(shù)據(jù)壓縮的壓縮率,該設(shè)備包括:靜態(tài)詞典,預(yù)先包含詞和短語(yǔ)的字符串;字符串檢測(cè)單元,檢索要壓縮的文檔數(shù)據(jù);選擇和輸入單元,從由所述字符串檢測(cè)單元檢測(cè)的字符串中選擇每個(gè)文檔特有的字符串,輸入到一個(gè)輔助詞典中;詞劃分單元,對(duì)所述靜態(tài)詞典和所述輔助詞典查找要壓縮的文檔數(shù)據(jù),轉(zhuǎn)換成固定長(zhǎng)度代碼;及可變長(zhǎng)度編碼單元,把輸出的固定長(zhǎng)度代碼轉(zhuǎn)換成壓縮代碼。
文檔編號(hào)H03M7/40GK1267963SQ0010099
公開(kāi)日2000年9月27日 申請(qǐng)日期2000年1月18日 優(yōu)先權(quán)日1999年3月12日
發(fā)明者矢作裕紀(jì), 吉田茂 申請(qǐng)人:富士通株式會(huì)社