專利名稱:柵格編碼的制作方法
技術(shù)領(lǐng)域:
本申請涉及用于編碼柵格數(shù)據(jù)的方法與裝置。
背景技術(shù):
柵格是包括多個由定向鏈接互連的節(jié)點(diǎn)的定向非循環(huán)圖。產(chǎn)生柵格數(shù)據(jù)的系統(tǒng)的一個例子是語音識別應(yīng)用,其中柵格數(shù)據(jù)用于表示當(dāng)檢測到的語音信號被處理時的大量可選假設(shè)。然后,由語音識別系統(tǒng)產(chǎn)生的柵格數(shù)據(jù)可以用作其它應(yīng)用的輸入。在用于語音識別系統(tǒng)的柵格數(shù)據(jù)的情況下,柵格的節(jié)點(diǎn)和鏈接與其它識別詞的數(shù)據(jù)或其它如音素和概率的語音單元關(guān)聯(lián),因此柵格數(shù)據(jù)記錄了檢測到的信號可能表示的可選假設(shè)。
在產(chǎn)生柵格數(shù)據(jù)的時候,兩種類型的柵格數(shù)據(jù)可以被識別。首先是與識別柵格所表示假設(shè)的柵格的各個鏈接和節(jié)點(diǎn)關(guān)聯(lián)的數(shù)據(jù)。其次是識別柵格節(jié)點(diǎn)如何互連的柵格結(jié)構(gòu)。
柵格結(jié)構(gòu)通常是通過以起始節(jié)點(diǎn)結(jié)束節(jié)點(diǎn)數(shù)據(jù)的形式存儲鏈接數(shù)據(jù)來存儲的。鏈接數(shù)據(jù)更緊湊的表示可以通過存儲由起始節(jié)點(diǎn)分類的鏈接(因此只有結(jié)束節(jié)點(diǎn)數(shù)據(jù)需要存儲)及通過使用節(jié)點(diǎn)偏移而不是絕對節(jié)點(diǎn)號來實(shí)現(xiàn)。這種方法的主要問題是結(jié)果編碼不一定會顯示柵格中的任何規(guī)律性。即,兩個看起來完全相同的子結(jié)構(gòu)會導(dǎo)致兩個完全不同的符號序列。這是因?yàn)殒溄訑?shù)據(jù)和節(jié)點(diǎn)號(或偏移)獨(dú)立于特定子結(jié)構(gòu)的編碼。因此,壓縮表示以這種形式存儲的柵格結(jié)構(gòu)的數(shù)據(jù)是困難的。
根據(jù)剪枝參數(shù),由例如語音識別系統(tǒng)產(chǎn)生的柵格結(jié)構(gòu)會非常大。如果要存儲大柵格結(jié)構(gòu),則需要大量存儲器。如果大柵格結(jié)構(gòu)要通過網(wǎng)絡(luò)發(fā)送,則需要大量的發(fā)送容量。因此,為了存儲和發(fā)送,需要有效地壓縮柵格結(jié)構(gòu)。
因此,需要一種具有更高利用相同符號序列表示等效結(jié)構(gòu)的可能性的柵格結(jié)構(gòu)表示,因而更易于利用傳統(tǒng)壓縮技術(shù)進(jìn)行更高的壓縮。
現(xiàn)在參考附圖,僅作為例子描述本發(fā)明的一種實(shí)施方式,其中圖1是體現(xiàn)根據(jù)本發(fā)明柵格處理器和再生模塊的文檔檢索系統(tǒng)的示意性方框圖;圖2是由語音識別系統(tǒng)解碼表示短語“Taj Mahal畫...”的信號的示例柵格結(jié)構(gòu)的示意圖;圖3是圖1柵格處理器功能單元的示意性方框圖;圖4是由圖1柵格處理器執(zhí)行的處理操作概述的流程圖;圖5是由圖1柵格處理器的嵌入模塊執(zhí)行的處理操作的流程圖;圖6A-6E是圖1柵格處理器的嵌入模塊處理示例柵格結(jié)構(gòu)的示意圖;圖7是由圖1柵格處理器的鏈接編碼模塊執(zhí)行的處理操作的流程圖;圖8A-8H是圖1柵格處理器的鏈接編碼模塊處理圖6E示例嵌入式柵格結(jié)構(gòu)的示意圖;圖9A和B是由圖1柵格處理器的形狀編碼模塊執(zhí)行的處理操作的流程圖;圖10A、B、C是圖1柵格處理器的編碼模塊編碼圖8H示例嵌入式柵格的示意圖;圖11A-D是由圖1柵格處理器的解碼模塊執(zhí)行的處理操作的流程圖;圖12是由圖1柵格處理器的解碼模塊處理鏈接編碼所執(zhí)行的處理操作的流程圖;圖13A-13F是利用鏈接編碼數(shù)據(jù)的嵌入式柵格部分再生的示意圖;
圖14A-14G是圖1柵格處理器的解碼模塊再生圖6A的示例嵌入式柵格的示意圖;及圖15是響應(yīng)壓縮數(shù)據(jù)的接收,由圖1的文檔存儲單元執(zhí)行的處理操作的流程圖。
具體實(shí)施例方式
現(xiàn)在僅作為例子描述本發(fā)明的一種具體實(shí)施方式
。
參考圖1,這是文檔檢索系統(tǒng)的示意性方框圖,提供了經(jīng)網(wǎng)絡(luò)3連接到文檔存儲單元2的客戶計(jì)算機(jī)1。連接到客戶計(jì)算機(jī)1的還有麥克風(fēng)5。
在這種實(shí)施方式中,客戶計(jì)算機(jī)1和文檔存儲單元2每個都包括通過從如磁盤8的存儲介質(zhì)讀計(jì)算機(jī)指令或通過經(jīng)網(wǎng)絡(luò)3下載信號9形式的指令來配置的可編程計(jì)算機(jī),從而配置成多個概念性功能模塊。
在這種實(shí)施方式中,客戶計(jì)算機(jī)1的功能模塊包括語音識別模塊10、柵格處理器11和數(shù)據(jù)壓縮模塊12。文檔存儲單元2的功能模塊包括解壓縮單元15,再生模塊17和文檔檢索單元19。
客戶計(jì)算機(jī)1的語音識別模塊10布置成響應(yīng)檢測到如用戶說出的短語的音頻信號而接收由麥克風(fēng)5產(chǎn)生的電信號。語音識別模塊10處理接收到的電子信號,產(chǎn)生表示由用戶說出并由麥克風(fēng)5檢測到的音頻信號表示什么短語的多種假設(shè)的語音柵格。
作為例子,圖2是解碼表達(dá)“Taj Mahal畫...”的假設(shè)性組合音素與詞的柵格結(jié)構(gòu)的示意圖。圖中節(jié)點(diǎn)由圓圈表示,而且圓圈從左向右以遞增的時間增序排列。圖2柵格結(jié)構(gòu)中的鏈接是由節(jié)點(diǎn)之間的箭頭表示的。這些鏈接每個都示為與由大寫字母表示的詞或由小寫字母表示的音素關(guān)聯(lián)。在這種實(shí)施方式中,語音識別模塊10布置成以例如[節(jié)點(diǎn)號、從節(jié)點(diǎn)出發(fā)的鏈接列表、節(jié)點(diǎn)所表示的時間、與節(jié)點(diǎn)關(guān)聯(lián)的其它數(shù)據(jù)]形式的傳統(tǒng)形式產(chǎn)生并存儲語音柵格數(shù)據(jù)。語音柵格的鏈接數(shù)據(jù)也以例如[起始節(jié)點(diǎn)、結(jié)束節(jié)點(diǎn)、與鏈接關(guān)聯(lián)的數(shù)據(jù)]形式的傳統(tǒng)方式存儲。
由語音識別模塊10產(chǎn)生的語音柵格可以非常大。為了避免經(jīng)網(wǎng)絡(luò)3發(fā)送大量數(shù)據(jù),在語音柵格產(chǎn)生后,柵格處理器11產(chǎn)生柵格結(jié)構(gòu)的緊湊表示。如隨后將具體描述的,緊湊表示是利用相同的符號序列編碼相同的柵格子結(jié)構(gòu),因而尤其容易利用傳統(tǒng)的數(shù)據(jù)壓縮技術(shù)進(jìn)行壓縮。
一旦產(chǎn)生了柵格結(jié)構(gòu)的緊湊表示,這種表示然后就和與最初產(chǎn)生的語音柵格中的鏈接和節(jié)點(diǎn)關(guān)聯(lián)的數(shù)據(jù)一起由數(shù)據(jù)壓縮模塊12利用傳統(tǒng)數(shù)據(jù)壓縮技術(shù)進(jìn)行壓縮。然后,壓縮數(shù)據(jù)經(jīng)網(wǎng)絡(luò)3發(fā)送到文檔存儲單元2。
利用解壓縮單元15和再生模塊17的文檔存儲單元2處理壓縮數(shù)據(jù),以便再生原始語音柵格。然后,再生的語音柵格傳遞到響應(yīng)接收到的語音柵格而檢索文檔的文檔檢索單元17。然后,該檢索出的文檔經(jīng)計(jì)算機(jī)經(jīng)網(wǎng)絡(luò)3發(fā)送回客戶計(jì)算機(jī)1。
柵格處理器的結(jié)構(gòu)參考圖3,這是柵格處理器11功能組件的示意性方框圖,在這種實(shí)施方式中柵格處理器11包括數(shù)據(jù)存儲器20、嵌入模塊22、鏈接編碼模塊24、形狀編碼模塊26、解碼模塊28及輸出模塊29。
更具體而言,在這種實(shí)施方式中,數(shù)據(jù)存儲器20布置成從語音識別模塊10接收語音柵格數(shù)據(jù)。然后,包括語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32的語音柵格數(shù)據(jù)存儲到數(shù)據(jù)存儲器20中。
在這種實(shí)施方式中,語音節(jié)點(diǎn)數(shù)據(jù)30包括定義以傳統(tǒng)形式存儲的語音柵格的數(shù)據(jù),如以[節(jié)點(diǎn)號、所連接的節(jié)點(diǎn)列表、由該節(jié)點(diǎn)表示的時間及如與節(jié)點(diǎn)關(guān)聯(lián)的變化概率的其它數(shù)據(jù)]形式的數(shù)據(jù)形式。語音鏈接數(shù)據(jù)32包括將由語音節(jié)點(diǎn)數(shù)據(jù)30定義的柵格結(jié)構(gòu)中的鏈接與識別詞或音素的數(shù)據(jù)關(guān)聯(lián)起來的數(shù)據(jù)。語音鏈接數(shù)據(jù)32也是以傳統(tǒng)形式存儲的,如[起始節(jié)點(diǎn)、結(jié)束節(jié)點(diǎn)、如識別與該鏈接關(guān)聯(lián)的詞或音素或變化概率的數(shù)據(jù)的其它數(shù)據(jù)]形式的數(shù)據(jù)。
嵌入模塊22布置成處理語音節(jié)點(diǎn)數(shù)據(jù)30,以便產(chǎn)生識別由語音節(jié)點(diǎn)數(shù)據(jù)30的節(jié)點(diǎn)所表示不同時間的定時數(shù)據(jù)34。然后,定時數(shù)據(jù)存儲在數(shù)據(jù)存儲器20中。然后如隨后將具體描述的,嵌入模塊22產(chǎn)生由語音節(jié)點(diǎn)數(shù)據(jù)30定義的柵格結(jié)構(gòu)的第一表示。這種表示是以嵌入表36、虛鏈接和節(jié)點(diǎn)數(shù)據(jù)38及交叉鏈接數(shù)據(jù)39的形式的。
在這種實(shí)施方式中,由嵌入模塊22產(chǎn)生的柵格結(jié)構(gòu)表示隨后由鏈接編碼模塊24處理。更具體而言,鏈接編碼模塊24處理該柵格結(jié)構(gòu)表示,從而使柵格結(jié)構(gòu)通過從柵格結(jié)構(gòu)中除去某些鏈接和節(jié)點(diǎn)而簡化,同時產(chǎn)生識別從柵格結(jié)構(gòu)中除去的鏈接和節(jié)點(diǎn)的鏈接編碼數(shù)據(jù)40。鏈接編碼數(shù)據(jù)40也存儲在數(shù)據(jù)存儲器20中。
在柵格結(jié)構(gòu)由鏈接編碼模塊24簡化以后,形狀編碼模塊26然后處理該簡化的柵格結(jié)構(gòu)并產(chǎn)生最終的柵格結(jié)構(gòu)編碼。在這種實(shí)施方式中,以形狀編碼42、鏈接列表43和節(jié)點(diǎn)列表44形式的這種編碼全都存儲在數(shù)據(jù)存儲器20中。與隨后將具體描述的由語音節(jié)點(diǎn)數(shù)據(jù)30表示的原始柵格結(jié)構(gòu)相反,形狀編碼42和鏈接列表43包括以使等效結(jié)構(gòu)利用相同的符號序列被編碼的表示來編碼相同柵格結(jié)構(gòu)的數(shù)據(jù),因而易于利用傳統(tǒng)的壓縮技術(shù)進(jìn)行更高的壓縮。
在形狀編碼模塊26產(chǎn)生最終的柵格結(jié)構(gòu)編碼以后,解碼模塊28處理該最終編碼,以確定編碼柵格結(jié)構(gòu)中鏈接的排序。這是通過解碼模塊28再生編碼柵格結(jié)構(gòu)然后確定再生柵格結(jié)構(gòu)中鏈接的排序?qū)崿F(xiàn)的。
在鏈接的排序由解碼部分28確定以后,輸出模塊29然后向數(shù)據(jù)壓縮模塊12輸出由嵌入模塊22產(chǎn)生的定時數(shù)據(jù)34、識別虛節(jié)點(diǎn)和鏈接的數(shù)據(jù)38及交叉鏈接數(shù)據(jù)39;由形狀編碼模塊26產(chǎn)生的形狀編碼42和鏈接列表43;及與原始語音柵格上分別來自語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32的節(jié)點(diǎn)和鏈接關(guān)聯(lián)的其它數(shù)據(jù)。與節(jié)點(diǎn)關(guān)聯(lián)的其它數(shù)據(jù)利用由形狀編碼模塊26產(chǎn)生的節(jié)點(diǎn)列表44排序;而與鏈接關(guān)聯(lián)的其它數(shù)據(jù)以由解碼模塊28確定的順序排序。
然后,由輸出模塊29輸出的數(shù)據(jù)被數(shù)據(jù)壓縮模塊12以傳統(tǒng)方式壓縮,因此壓縮數(shù)據(jù)可以在被解壓縮之前經(jīng)網(wǎng)絡(luò)3發(fā)送,語音柵格可由文檔存儲單元2再生。
現(xiàn)在參考圖4描述柵格處理器11更具體的處理概述,圖4是由柵格處理器11執(zhí)行的處理的流程圖。
柵格處理器執(zhí)行的處理概述最初(S4-1),當(dāng)由語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32表示的語音柵格被柵格處理器11接收并存儲在數(shù)據(jù)存儲器20中時,嵌入模塊22確定由語音節(jié)點(diǎn)數(shù)據(jù)30表示的柵格結(jié)構(gòu)的第一表示。這種初始表示是以存儲在數(shù)據(jù)存儲器20中的定時數(shù)據(jù)34及嵌入表36的形式的。
更具體而言,當(dāng)語音節(jié)點(diǎn)數(shù)據(jù)30被柵格處理器11接收時,嵌入模塊22首先產(chǎn)生包括由語音節(jié)點(diǎn)數(shù)據(jù)30的節(jié)點(diǎn)表示的所有不同時間的列表的定時數(shù)據(jù)34。
如前所述,語音節(jié)點(diǎn)數(shù)據(jù)30為語音柵格中的每個節(jié)點(diǎn)識別由該節(jié)點(diǎn)表示的時間。因而,例如在圖2所示語音柵格的情況下,這些不同的定時是由表示圖2示例柵格中節(jié)點(diǎn)的圓圈不同的左/右位置表示的。
由于語音節(jié)點(diǎn)數(shù)據(jù)30明確地將時間數(shù)據(jù)與各節(jié)點(diǎn)關(guān)聯(lián)在一起,因此在不止一個節(jié)點(diǎn)與同一時間關(guān)聯(lián)的情況下,這種時間數(shù)據(jù)將會重復(fù)。因此,有可能通過除去這種重復(fù)減少表示由節(jié)點(diǎn)所表示時間的數(shù)據(jù)量。更具體而言,如果產(chǎn)生不同定時的列表,則各個節(jié)點(diǎn)可以識別為與該列表中的特定定時關(guān)聯(lián)。以這種許多節(jié)點(diǎn)與同一定時關(guān)聯(lián)的方式,通過作為時間數(shù)據(jù)顯式地包括在與各節(jié)點(diǎn)關(guān)聯(lián)的語音節(jié)點(diǎn)數(shù)據(jù)30中,這種定時數(shù)據(jù)只記錄一次而不是多次。
在用于柵格結(jié)構(gòu)的定時數(shù)據(jù)34被嵌入模塊22確定并存儲在數(shù)據(jù)存儲器20以后,由語音節(jié)點(diǎn)數(shù)據(jù)30編碼的柵格結(jié)構(gòu)的初始表示由嵌入模塊22產(chǎn)生。
在這種實(shí)施方式中,這種初始表示為每個此后稱為層的、由定時數(shù)據(jù)34列表中的時間識別的定時包括由語音節(jié)點(diǎn)數(shù)據(jù)30在那些定時與其關(guān)聯(lián)的節(jié)點(diǎn)列表及為柵格中每個鏈接識別起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)對的數(shù)據(jù)拷貝。這種數(shù)據(jù)由嵌入模塊22作為嵌入數(shù)據(jù)和鏈接數(shù)據(jù)存儲在數(shù)據(jù)存儲器20的嵌入表36中。
圖6A是柵格結(jié)構(gòu)的示意圖,其中節(jié)點(diǎn)由包含數(shù)字的圓圈表示,而節(jié)點(diǎn)之間的鏈接示為圓圈之間箭頭的形式。在圖6A中,共享同一定時數(shù)據(jù)的節(jié)點(diǎn)在同一水平位置示出。
在圖6A柵格的情況下,所說明的由嵌入模塊22產(chǎn)生的柵格結(jié)構(gòu)的初始表示將是以下存儲在嵌入表36中的嵌入數(shù)據(jù)的形式層號節(jié)點(diǎn)列表1
2 [1,2]3 [3,4,5]4 [6]5 [7,8]6 [9]其中層號指示包含節(jié)點(diǎn)的列,而節(jié)點(diǎn)列表指示該列中的節(jié)點(diǎn)。在這個例子中,鏈接數(shù)據(jù)包括識別對圖6A所示每個箭頭的起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的數(shù)據(jù)列表。因而,以鏈接(0,1)、(0,2)、(1,3)、(1,4)、(1,5)等形式的鏈接數(shù)據(jù)也將存儲在嵌入表36中。
如隨后具體描述的,由嵌入模塊22產(chǎn)生的初始表示隨后被處理,以便產(chǎn)生可選表示。
在圖6A柵格的情況下,這種可選表示是由圖6E說明的。比較圖6A和圖6E的結(jié)構(gòu),與圖6A中有些箭頭(例如,節(jié)點(diǎn)3和7及節(jié)點(diǎn)4和7之間的箭頭)將彼此不相鄰的列中的節(jié)點(diǎn)鏈接在一起相反,在圖6E中向表示添加了附加虛節(jié)點(diǎn)和虛鏈接,因此每個節(jié)點(diǎn)都連接到相鄰列中的一個或多個節(jié)點(diǎn)。在圖6E中,這些附加節(jié)點(diǎn)由出現(xiàn)在柵格中的方框示出,而附加鏈接由虛線示出。
另外,與圖6A相比,在圖6E中向柵格添加了額外的層,因此最后一層包含在圖6E中示為虛節(jié)點(diǎn)D4的單個節(jié)點(diǎn)。這種結(jié)構(gòu)還通過重新布置列中節(jié)點(diǎn)的順序并除去鏈接(節(jié)點(diǎn)5和6之間的鏈接)來改變,因此圖6E所示的結(jié)果結(jié)構(gòu)不包含以圖6A中鏈接2-3和1-5所示方式彼此交叉的鏈接。即,該表示中的鏈接和節(jié)點(diǎn)識別出了平面圖,及,可以不帶任何交叉鏈接地嵌入在平面中的圖。
識別作為嵌入模塊22處理結(jié)果而添加或除去的節(jié)點(diǎn)和鏈接的數(shù)據(jù)由嵌入模塊22分別作為虛鏈接/節(jié)點(diǎn)數(shù)據(jù)38和交叉鏈接數(shù)據(jù)39存儲在數(shù)據(jù)存儲器20中。
一旦柵格結(jié)構(gòu)的修正表示已由嵌入模塊22確定,柵格處理器11然后開始產(chǎn)生這種修正結(jié)構(gòu)的編碼。這種編碼是以兩階段處理執(zhí)行的。
最初(S4-2),鏈接編碼模塊24使結(jié)構(gòu)的某些部分以與節(jié)點(diǎn)間鏈接關(guān)聯(lián)的數(shù)據(jù)形式編碼。具體而言,如隨后將具體描述的,鏈接編碼模塊24編碼修正柵格結(jié)構(gòu)中對應(yīng)于彼此串聯(lián)連接的多個鏈接或通過多條不連接到柵格結(jié)構(gòu)中任何其它節(jié)點(diǎn)的并行路徑的部分。
因而,例如在圖6E所說明柵格結(jié)構(gòu)的情況下,就象圖6E中節(jié)點(diǎn)1和節(jié)點(diǎn)7之間經(jīng)節(jié)點(diǎn)4和5的并行路徑的編碼那樣,確定了圖6E中節(jié)點(diǎn)6和D4之間經(jīng)節(jié)點(diǎn)8和10的鏈接與節(jié)點(diǎn)的編碼。
圖8H是對應(yīng)于在線性和并行路徑編碼后的圖6E柵格的簡化柵格結(jié)構(gòu)的例子。在圖8H中,節(jié)點(diǎn)由圓圈說明,而節(jié)點(diǎn)之間的鏈接由箭頭示出。與圖8H所示每個鏈接關(guān)聯(lián)的是緊挨著箭頭寫的碼。這些碼由鏈接編碼模塊24產(chǎn)生并作為鏈接編碼數(shù)據(jù)40存儲在數(shù)據(jù)存儲器20中。
在鏈接編碼模塊24產(chǎn)生簡化的柵格結(jié)構(gòu)和鏈接編碼數(shù)據(jù)40以后,如由圖8H的柵格結(jié)構(gòu)所說明的,該簡化的柵格結(jié)構(gòu)將是沒有交叉鏈接的平面圖,其鏈接和節(jié)點(diǎn)定義了多個互連區(qū)域。在圖8H的情況下,這些區(qū)域在圖8H中從左向右是由節(jié)點(diǎn)0、2、3和1及其相關(guān)鏈接構(gòu)成的菱形,由節(jié)點(diǎn)2、6、7和3及其相關(guān)鏈接構(gòu)成的菱形,由節(jié)點(diǎn)1、3和7及其相關(guān)鏈接構(gòu)成的三角形,及由節(jié)點(diǎn)6、7和D4及這些節(jié)點(diǎn)間鏈接構(gòu)成的另一三角形。
然后(S4-3),形狀編碼模塊26開始以3個符號列表的形式編碼最初由鏈接編碼模塊24處理的柵格結(jié)構(gòu)。
在這種實(shí)施方式中,這些列表包括識別由鏈接編碼模塊24所產(chǎn)生簡化柵格定義的區(qū)域彼此鏈接的方式的形狀編碼42、是與簡化柵格中鏈接關(guān)聯(lián)的鏈接編碼數(shù)據(jù)40的有序級聯(lián)的鏈接列表43及識別節(jié)點(diǎn)號出現(xiàn)在簡化柵格和相關(guān)鏈接編碼數(shù)據(jù)中的順序的節(jié)點(diǎn)列表44。
如當(dāng)具體描述這些列表的產(chǎn)生時將變得明顯的,這些列表以一種使相同子結(jié)構(gòu)由相同符號序列編碼并因而產(chǎn)生非常易于利用傳統(tǒng)數(shù)據(jù)壓縮技術(shù)進(jìn)行數(shù)據(jù)壓縮的編碼的方式編碼由鏈接編碼模塊24處理的柵格結(jié)構(gòu)。
在這三個列表由形狀編碼模塊26產(chǎn)生并存儲在數(shù)據(jù)存儲器20中以后,形狀編碼42、鏈接列表43和節(jié)點(diǎn)列表44隨后(S4-4)被解碼模塊28處理。解碼模塊28的解碼結(jié)果是產(chǎn)生由存儲在數(shù)據(jù)存儲器20的嵌入表36中的語音節(jié)點(diǎn)數(shù)據(jù)30表示的柵格結(jié)構(gòu)的另一表示。從為圖6A的柵格結(jié)構(gòu)產(chǎn)生的形狀編碼42、鏈接列表43和節(jié)點(diǎn)列表44產(chǎn)生柵格的處理隨后將具體描述。
通過解碼用于圖6A結(jié)構(gòu)的形狀編碼42、鏈接列表43和節(jié)點(diǎn)列表44而確定的最終表示在圖14G中示出。比較由圖14G和圖6A所說明的柵格結(jié)構(gòu)的說明,盡管列中節(jié)點(diǎn)表示的排序在兩個說明之間不同,但看起來有可能讓人覺得圖6A和14G所示鏈接之間的互連是完全相同的,而且節(jié)點(diǎn)示為在相同列中。但是,由于列中的排序不依賴于語音節(jié)點(diǎn)數(shù)據(jù)30,因此盡管圖6A和圖14G的嵌入式柵格不是完全相同,它們也表示相同的柵格結(jié)構(gòu)。
在由存儲在數(shù)據(jù)存儲器20中的數(shù)據(jù)編碼的實(shí)際嵌入柵格結(jié)構(gòu)被解碼模塊28確定以后,輸出模塊29隨后(S4-5)向數(shù)據(jù)壓縮模塊12傳遞定時數(shù)據(jù)34、虛節(jié)點(diǎn)和虛鏈接列表38、交叉鏈接數(shù)據(jù)39及表示由解碼模塊28解碼的最終嵌入式表示的形狀編碼42和鏈接列表43。
此外,如隨后具體描述的,輸出模塊29還向輸出模塊12傳遞與語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32的節(jié)點(diǎn)和鏈接關(guān)聯(lián)的數(shù)據(jù)的有序列表。
與語音節(jié)點(diǎn)數(shù)據(jù)30的節(jié)點(diǎn)關(guān)聯(lián)的數(shù)據(jù)是以對應(yīng)于存儲在數(shù)據(jù)存儲器20中的節(jié)點(diǎn)列表44的順序排序的。與語音鏈接數(shù)據(jù)32的鏈接關(guān)聯(lián)的數(shù)據(jù)是基于由解碼模塊28為語音柵格產(chǎn)生的最終柵格結(jié)構(gòu)排序的。例如,在圖13G語音柵格的情況下,鏈接數(shù)據(jù)可以對應(yīng)于從上到下然后從左到右出現(xiàn)的鏈接列來排序。因而,例如,最初鏈接0-2的數(shù)據(jù)將由輸出模塊29傳遞到解壓縮模塊12,然后是對應(yīng)于圖14G鏈接順序的順序0-1、2-6、2-3、1-3、1-4、1-5等的以下鏈接的鏈接數(shù)據(jù)。
如前所述,用于編碼柵格結(jié)構(gòu)的形狀編碼數(shù)據(jù)42和鏈接列表43表示利用完全相同符號序列的等效結(jié)構(gòu)。這意味著在許多柵格子結(jié)構(gòu)類似的時候,由柵格處理器11傳遞到數(shù)據(jù)壓縮模塊12的數(shù)據(jù)可以有效地利用傳統(tǒng)壓縮技術(shù)壓縮,從而減少需要經(jīng)網(wǎng)絡(luò)3發(fā)送的數(shù)據(jù)量。
當(dāng)壓縮數(shù)據(jù)被解壓縮單元15解壓縮時,解壓縮數(shù)據(jù)用于再生原始語音柵格,該原始語音柵格隨后用于使文檔檢索單元19訪問存儲在文檔存儲單元2中的特定文檔。
嵌入模塊22、鏈接編碼模塊24、形狀編碼模塊26和解碼模塊28具體的數(shù)據(jù)處理現(xiàn)在依次考慮。
嵌入模塊執(zhí)行的處理現(xiàn)在參考圖5和圖6A-E具體描述柵格處理器11的嵌入模塊22的處理。
最初(S5-1),當(dāng)以語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32形式的語音柵格被柵格處理器11接收并存儲在數(shù)據(jù)存儲器20中時,嵌入模塊22開始產(chǎn)生識別由語音節(jié)點(diǎn)數(shù)據(jù)30中節(jié)點(diǎn)表示的各時間的定時數(shù)據(jù)34。
更具體而言,在這種語音節(jié)點(diǎn)數(shù)據(jù)30以[節(jié)點(diǎn)號、連接的節(jié)點(diǎn)列表、節(jié)點(diǎn)的定時、與節(jié)點(diǎn)關(guān)聯(lián)的其它數(shù)據(jù)]形式存儲在數(shù)據(jù)存儲器20中的實(shí)施方式中,嵌入模塊22最初處理語音節(jié)點(diǎn)數(shù)據(jù)30,以便產(chǎn)生由語音節(jié)點(diǎn)數(shù)據(jù)30的節(jié)點(diǎn)所表示的所有定時的列表。然后,嵌入模塊22處理所產(chǎn)生的列表,以創(chuàng)建有序的定時列表。列表中表示的副本定時隨后被除去,因此創(chuàng)建了包括以不同定時順序排序的由語音節(jié)點(diǎn)數(shù)據(jù)30不同節(jié)點(diǎn)表示的不同時間的列表的定時數(shù)據(jù)34。這個列表隨后作為定時數(shù)據(jù)34存儲在柵格處理器11的數(shù)據(jù)存儲器20中。
在定時列表以定時數(shù)據(jù)34的形式存儲在數(shù)據(jù)存儲器20中以后,嵌入模塊22隨后(S5-2)為由存儲在數(shù)據(jù)存儲器20中的語音節(jié)點(diǎn)數(shù)據(jù)30所表示的柵格結(jié)構(gòu)產(chǎn)生初始嵌入數(shù)據(jù)。
具體而言,嵌入模塊22為下文中稱為層、由定時數(shù)據(jù)34表示的每個定時確定具有對應(yīng)于所識別時間的時間數(shù)據(jù)的節(jié)點(diǎn)列表。這些列表作為嵌入數(shù)據(jù)存儲在嵌入表36中,對于由定時數(shù)據(jù)列表34識別的每個時間都有一個列表。此外,對于由語音節(jié)點(diǎn)數(shù)據(jù)30識別的節(jié)點(diǎn)之間的每個鏈接,嵌入模塊22隨后產(chǎn)生并在嵌入表36中存儲包括識別每個鏈接起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的數(shù)據(jù)的鏈接數(shù)據(jù)。
因而,例如在圖6A所說明其中節(jié)點(diǎn)號由包含數(shù)字的圓圈說明,而鏈接在連接圓圈的箭頭間說明,而且其中與相同定時關(guān)聯(lián)因而在同一層中的節(jié)點(diǎn)示為彼此在垂直列中的柵格結(jié)構(gòu)的情況下,以下數(shù)據(jù)將存儲在嵌入表36中。
嵌入數(shù)據(jù)層號節(jié)點(diǎn)列表1
2[1,2]3[3,4,5]4[6]5[7,8]6[9,10]鏈接(0,1)、(0,2)、(1,3)、(1,4)、(1,5)、(2,3)、(2,6)、(3,7)、(4,7)、(5,6)、(6,7)、(6,8)、(6,8)、(7,9)、(8,10)。
應(yīng)當(dāng)理解,定時數(shù)據(jù)34和嵌入表36一起編碼從語音識別模塊10接收到的語音柵格的所有柵格結(jié)構(gòu)。此外,定時數(shù)據(jù)34和嵌入表36還隱含記錄識別與各節(jié)點(diǎn)關(guān)聯(lián)的定時的數(shù)據(jù)。
而且,節(jié)點(diǎn)之間鏈接的方向也隱含地在嵌入表36中的數(shù)據(jù)中編碼。這是因?yàn)橛刹煌瑢右虼擞刹煌〞r識別的節(jié)點(diǎn)列表是以定時順序排序的,因此表示較早時間的節(jié)點(diǎn)出現(xiàn)在嵌入表36較早層號的列表中,而在較晚定時出現(xiàn)的節(jié)點(diǎn)出現(xiàn)在較晚層的列表中。因此,這暗示在一個鏈接從一個節(jié)點(diǎn)到另一個記錄的時候,如圖6A箭頭所示的該鏈接的方向?qū)⑹菑妮^早定時的層的節(jié)點(diǎn)到較晚定時的層的節(jié)點(diǎn)的方向。
在柵格結(jié)構(gòu)的初始嵌入確定以后,嵌入模塊22隨后(S5-3)開始修改初始存儲的數(shù)據(jù),向嵌入表36添加多個附加節(jié)點(diǎn)并更新鏈接數(shù)據(jù),因此,每個鏈接只從一層的節(jié)點(diǎn)連接到相鄰層的節(jié)點(diǎn),而且第一和最后一層的節(jié)點(diǎn)列表只包括單個節(jié)點(diǎn)。
具體而言,嵌入模塊22開始依次考慮存儲在嵌入表36中的每個鏈接。對于每個鏈接,鏈接起始節(jié)點(diǎn)的層號與結(jié)束節(jié)點(diǎn)的層號進(jìn)行比較。在起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的層號只由單個數(shù)字隔開的任何時候,不采取進(jìn)一步的行動。在起始節(jié)點(diǎn)鏈接到由多于一層隔開的結(jié)束節(jié)點(diǎn)的任何時候,虛節(jié)點(diǎn)添加到每個插入層。然后,鏈接數(shù)據(jù)被更新,以便正在處理的鏈接數(shù)據(jù)替換成識別每一層中起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)之間經(jīng)每個添加的虛節(jié)點(diǎn)的鏈接的一連串鏈接數(shù)據(jù)項(xiàng)。
因而,例如在圖6A所說明嵌入的情況下,每個鏈接都要依次考慮。當(dāng)處理節(jié)點(diǎn)2和節(jié)點(diǎn)6之間的鏈接時,節(jié)點(diǎn)2將識別為在第二層,而節(jié)點(diǎn)6將識別為在第四層。然后,嵌入模塊22將開始在第三層的節(jié)點(diǎn)列表中添加一虛節(jié)點(diǎn),并將節(jié)點(diǎn)2和節(jié)點(diǎn)6之間的鏈接替換成兩個鏈接,節(jié)點(diǎn)2和所添加虛節(jié)點(diǎn)之間的鏈接及所添加虛節(jié)點(diǎn)和節(jié)點(diǎn)6之間的鏈接。
更具體而言,在圖6A所示柵格的情況下,2和6、3和7及4和7之間的鏈接將識別為在被多于一層隔開的層中的連接節(jié)點(diǎn)。然后,存儲在嵌入表36中的嵌入數(shù)據(jù)將如下更新
層號節(jié)點(diǎn)列表1
2 [1,2]3 [3,4,5,D1]4 [D2,D3,6]5 [7,8]6 [9,10]其中D1、D2、D3是由嵌入模塊22添加的附加虛節(jié)點(diǎn),節(jié)點(diǎn)2和6、3和7及4和7之間鏈接的鏈接數(shù)據(jù)替換成以下鏈接數(shù)據(jù)(2,D1)、(D1,6)、(3,D2)、(D2,7)、(4,D3)、(D3,7)。
然后,識別這些虛節(jié)點(diǎn)的數(shù)據(jù)被嵌入模塊22存儲在數(shù)據(jù)存儲器20的虛鏈接/節(jié)點(diǎn)數(shù)據(jù)38中。
然后,嵌入模塊22考慮存儲在嵌入表36中數(shù)據(jù)第一和最后一層的節(jié)點(diǎn)列表。如果第一層包含不止一個節(jié)點(diǎn),則添加包含一虛節(jié)點(diǎn)的附加0層,并在該初始虛節(jié)點(diǎn)和第一層的節(jié)點(diǎn)之間添加虛鏈接。
然后考慮最后一層的節(jié)點(diǎn)列表。當(dāng)不止一個節(jié)點(diǎn)出現(xiàn)在最后一層時,包含單個虛節(jié)點(diǎn)的附加層添加到嵌入數(shù)據(jù),而且從最后一層每個節(jié)點(diǎn)到該所添加虛節(jié)點(diǎn)的鏈接添加到鏈接列表。然后,識別所有所添加虛節(jié)點(diǎn)的數(shù)據(jù)添加到存儲在數(shù)據(jù)存儲器20中的虛鏈接/節(jié)點(diǎn)數(shù)據(jù)38。
因而,在圖6A例子的情況下,由于第一層包含單個節(jié)點(diǎn),節(jié)點(diǎn)0,因此不添加虛節(jié)點(diǎn)。但是,最后一層最初包含節(jié)點(diǎn)9和10。于是要添加包含單個虛節(jié)點(diǎn)的附加最后一層。先前最后一層的所有節(jié)點(diǎn),在這種情況下是節(jié)點(diǎn)9和10,然后記錄為連接到額外層的該最后一個節(jié)點(diǎn)。
圖6B是虛節(jié)點(diǎn)添加到柵格后圖6A柵格的示意圖。在圖6B中虛節(jié)點(diǎn)示為標(biāo)號為D1、D2、D3和D4的方框。添加到柵格的額外鏈接在圖6B中由虛線示出。如由圖6B可以看到的,在圖6B柵格的情況下,圖中出現(xiàn)的所有箭頭都不橫跨多于一列,而且整個柵格具有在圖左側(cè)的單個起始節(jié)點(diǎn),節(jié)點(diǎn)0,和在圖右側(cè)的標(biāo)號為D4的單個結(jié)束節(jié)點(diǎn)。
在虛節(jié)點(diǎn)添加到柵格以確保鏈接將相鄰列的節(jié)點(diǎn)連接在一起且添加虛節(jié)點(diǎn)以確保柵格包含單個起始節(jié)點(diǎn)和單個結(jié)束節(jié)點(diǎn)以后,嵌入表36中的嵌入數(shù)據(jù)然后被處理(S5-4)以便重新排序與各層關(guān)聯(lián)的節(jié)點(diǎn)列表,因此由嵌入表36中嵌入數(shù)據(jù)表示的柵格嵌入包含有限個彼此交叉的鏈接。
在這種實(shí)施方式中,嵌入模塊22利用如在此引入作為參考的Roberto Tamassia“Graph Drawing”“CRC Handbook of Discreteand Computational Geometry”,CRC Press,ed.Jacob Goodman andJoseph O’Rouke,1997所述的傳統(tǒng)技術(shù)處理存儲在嵌入表36中的嵌入數(shù)據(jù)。
更具體而言,從第二層開始,層中每個節(jié)點(diǎn)最初都分配一個對應(yīng)于那層中節(jié)點(diǎn)排序的序號。因而,在圖6B節(jié)點(diǎn)的情況下,節(jié)點(diǎn)1分配順序1,節(jié)點(diǎn)2分配順序2。然后,下一層中的節(jié)點(diǎn)根據(jù)前一層中鏈接到那些節(jié)點(diǎn)的節(jié)點(diǎn)平均順序值進(jìn)行排序。
因而,在圖6B的情況下,如果節(jié)點(diǎn)1和2分別給予值1和2,則鏈接到節(jié)點(diǎn)1和節(jié)點(diǎn)2的節(jié)點(diǎn)3將分配給值(1+1)/2=1.5。只連接到節(jié)點(diǎn)1的節(jié)點(diǎn)4和5分別分配給值1。只連接到節(jié)點(diǎn)2的節(jié)點(diǎn)D1分配給值2。
然后嵌入模塊22開始重新排序下一層中的節(jié)點(diǎn),因此具有與其關(guān)聯(lián)的最低序號的節(jié)點(diǎn)出現(xiàn)在列表的頭,而與逐漸增高的編號關(guān)聯(lián)的節(jié)點(diǎn)在列表中隨后出現(xiàn)。
因而,在圖6B的情況下,表示第三層的列的列表從列表[3,4,5,D1]重新排序變成列表[4,5,3,D1]。然后以類似的方式重新排序下一層,直到到達(dá)最后一層的最后一個節(jié)點(diǎn)。然后從節(jié)點(diǎn)第二到最后一層重復(fù)每一層中節(jié)點(diǎn)的重新排序,并根據(jù)由從該最后一層的鏈接識別的順序號平均值確定的順序值重新排序緊接著的前一層。這種處理對下個前一層重復(fù),直到到達(dá)第一層。
圖6C是節(jié)點(diǎn)重新排序以最小化交叉鏈接以后圖6B柵格的示意圖。如從圖6B和6C可以看到的,在圖6B中節(jié)點(diǎn)2和節(jié)點(diǎn)3及節(jié)點(diǎn)1和節(jié)點(diǎn)4和5之間的鏈接全都彼此交叉,而在圖6C中只剩下一對交叉鏈接,即節(jié)點(diǎn)3和節(jié)點(diǎn)D2及節(jié)點(diǎn)5和節(jié)點(diǎn)6之間的鏈接。
在嵌入模塊22重新排序嵌入表36中嵌入數(shù)據(jù)層中的節(jié)點(diǎn)以后,嵌入模塊22隨后(S5-5)依次考慮每個鏈接并從修正柵格中除去交叉鏈接,并將識別所除去鏈接的數(shù)據(jù)存儲在數(shù)據(jù)存儲器20所存儲的交叉鏈接數(shù)據(jù)39中。
更具體而言,每層中的每個鏈接依次考慮,無論何時當(dāng)確定鏈接與任何其它鏈接交叉時,表示該鏈接與任何其它鏈接交叉次數(shù)的數(shù)字加1。當(dāng)用于所有鏈接的數(shù)據(jù)都產(chǎn)生以后,依次考慮層之間的每組鏈接。在存在任何交叉鏈接的時候,具有與其關(guān)聯(lián)的最大數(shù)字的一個鏈接被除去,而識別該鏈接的數(shù)據(jù)存儲在交叉鏈接數(shù)據(jù)39中。然后,每一層中交叉鏈接的個數(shù)計(jì)算被更新,而鏈接被除去,直到不剩余交叉鏈接。以這種方式,被除去并作為交叉鏈接39與嵌入隔開存儲在嵌入表36中的交叉鏈接選擇為對應(yīng)于與最多其它鏈接交叉的鏈接。即,在一個鏈接與兩個其它鏈接交叉的時候,該單個鏈接將被除去,而不是除去交叉的兩個鏈接。
參考圖6C,在層中節(jié)點(diǎn)被重新排序以最小化交叉鏈接數(shù)以后,用于圖6A示例柵格的嵌入數(shù)據(jù)將重新排序,從而成為以圖6C所表示的順序。在圖6C中,只有一對交叉鏈接是節(jié)點(diǎn)3和D2之間的鏈接及節(jié)點(diǎn)5和6之間的鏈接。由于這些鏈接都只與一個其它鏈接交叉,因此,隨機(jī)選擇這些鏈接中的一個并存儲在交叉鏈接數(shù)據(jù)39中。
圖6D是節(jié)點(diǎn)5和節(jié)點(diǎn)6之間的鏈接除去后圖6C柵格的說明性例子。如從圖6D可以看到的,表示鏈接的每個箭頭都連接相鄰兩列的兩個節(jié)點(diǎn),而且由箭頭表示的鏈接中沒有一個與任何其它由箭頭表示的鏈接交叉。
在足夠的鏈接從嵌入表36的鏈接數(shù)據(jù)中除去并存儲為交叉鏈接數(shù)據(jù)39,從而由嵌入表36中數(shù)據(jù)表示的柵格不包含交叉鏈接以后,嵌入模塊22隨后(S5-6)依次考慮除第一和最后一層中的節(jié)點(diǎn)之外的每個節(jié)點(diǎn),并確定那個節(jié)點(diǎn)是否既連接到其前面又連接到其后續(xù)層中的節(jié)點(diǎn)。
即,嵌入模塊22依次考慮每個節(jié)點(diǎn)并檢查嵌入表36中的鏈接數(shù)據(jù),以確定被處理的節(jié)點(diǎn)是否在柵格的嵌入表36中存儲為鏈接數(shù)據(jù)的至少一個鏈接中呈現(xiàn)為起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)。在任何識別出這種未連接節(jié)點(diǎn)的時候,嵌入模塊22然后添加鏈接數(shù)據(jù)來連接該節(jié)點(diǎn)到柵格中其它節(jié)點(diǎn)。
更具體而言,除最后一層中節(jié)點(diǎn)以外的每個節(jié)點(diǎn)都依次考慮。如果一個節(jié)點(diǎn)被確定不由嵌入表36中鏈接數(shù)據(jù)表示為起始節(jié)點(diǎn),則隨后考慮該層節(jié)點(diǎn)列表中與該未鏈接節(jié)點(diǎn)相鄰的節(jié)點(diǎn)。
因而,在圖6D柵格的情況下,對任何鏈接都不是起始節(jié)點(diǎn)的節(jié)點(diǎn)5被識別出來,而兩個相鄰節(jié)點(diǎn),節(jié)點(diǎn)3和4將被考慮。然后,由以相鄰節(jié)點(diǎn)作為起始節(jié)點(diǎn)的鏈接連接的節(jié)點(diǎn)被識別。在圖6D的情況下,所討論的節(jié)點(diǎn)將是虛節(jié)點(diǎn)D2和D3。
如果象在圖6D的情況下一樣這兩個節(jié)點(diǎn)都是虛節(jié)點(diǎn),則新虛節(jié)點(diǎn)添加到包括這兩個虛節(jié)點(diǎn)的層的嵌入數(shù)據(jù)中這兩個節(jié)點(diǎn)之間,并添加該未連接節(jié)點(diǎn)與新虛節(jié)點(diǎn)之間的鏈接。
然后,嵌入模塊22考慮鏈接到這兩個虛節(jié)點(diǎn)的節(jié)點(diǎn)。如果這些也是虛節(jié)點(diǎn),則下一層中另外一個虛節(jié)點(diǎn)添加到那一層識別出的兩個虛節(jié)點(diǎn)之間,而最近添加的虛節(jié)點(diǎn)與新虛節(jié)點(diǎn)之間的鏈接添加到嵌入表中的嵌入數(shù)據(jù)。
最后,在連接到未連接節(jié)點(diǎn)一個鄰居的層中,將到達(dá)不作為虛節(jié)點(diǎn)的節(jié)點(diǎn)。當(dāng)?shù)竭_(dá)這一層時,嵌入模塊22向連接前一層中未連接節(jié)點(diǎn)到下一層中實(shí)際節(jié)點(diǎn)的路徑添加一鏈接。
在未連接節(jié)點(diǎn)已連接到該未連接節(jié)點(diǎn)不作為起始節(jié)點(diǎn)出現(xiàn)的柵格后,采取類似的處理,以便添加附加節(jié)點(diǎn)和到除出現(xiàn)在第一層中的單個節(jié)點(diǎn)以外識別為不是結(jié)束節(jié)點(diǎn)的節(jié)點(diǎn)的鏈接。無論何時節(jié)點(diǎn)和鏈接添加到存儲在嵌入表36中的數(shù)據(jù)時,識別所添加虛節(jié)點(diǎn)和虛鏈接的數(shù)據(jù)都作為虛鏈接/節(jié)點(diǎn)數(shù)據(jù)38存儲在數(shù)據(jù)存儲器20中。
圖6E是圖6A的柵格被嵌入模塊22處理后的圖6A柵格的示意圖。如從圖6E可以看到的,在所處理的柵格中,所有鏈接都連接在相鄰的層節(jié)點(diǎn)之間,而且圖6E柵格中的鏈接沒有一個與任何其它鏈接交叉。
這意味著連接節(jié)點(diǎn)的路徑隱含地識別了節(jié)點(diǎn)所關(guān)聯(lián)的層。這是因?yàn)榈谝粚又械墓?jié)點(diǎn)將利用從第一節(jié)點(diǎn)出發(fā)一節(jié)點(diǎn)長的路徑識別,而第二層中的節(jié)點(diǎn)將通過兩節(jié)點(diǎn)長的路徑連接到第一層中的節(jié)點(diǎn),以及概括地說第n層中的節(jié)點(diǎn)將通過包含n個節(jié)點(diǎn)的路徑連接到第一節(jié)點(diǎn)。
在圖6A的這個柵格處理階段,以下嵌入數(shù)據(jù)將與識別結(jié)構(gòu)中每個鏈接的鏈接數(shù)據(jù)一起存儲在表示圖6E結(jié)構(gòu)的嵌入表中。
嵌入數(shù)據(jù)層號層中的節(jié)點(diǎn)1
2 [2,1]3 [D1,3,4,5]4 [6,D2,D5,D3]5 [8,7]6 [10,9]7 [D4]嵌入模塊22隨后排序(S5-7)存儲在嵌入表中的鏈接數(shù)據(jù)。具體而言,以其起始節(jié)點(diǎn)出現(xiàn)在不同層嵌入數(shù)據(jù)中的順序,嵌入模塊22最初排序鏈接數(shù)據(jù)。然后,具有相同起始節(jié)點(diǎn)的鏈接以其結(jié)束節(jié)點(diǎn)出現(xiàn)在嵌入數(shù)據(jù)中的順序排序。
因而,在圖6E鏈接的情況下,以下有序鏈接數(shù)據(jù)將存儲在嵌入表36中鏈接(0,2)、(0,1)、(2,D1)、(2,3)、(1,3)、(1,5)、(1,4)、(D1,6)、(3,D2)、(5,D5)、(4,D3)、(6,8)、(6,8)、(6,7)、(D2,7)、(D5,7)、(D3,7)、(8,10)、(7,9)、(10,D4)、(9,D4)。
附加存儲在數(shù)據(jù)存儲器20中的將是識別添加到圖6A柵格的虛節(jié)點(diǎn)的以下數(shù)據(jù)虛節(jié)點(diǎn)D1、D2、D3、D4、D5。
以下數(shù)據(jù)將存儲為虛鏈接數(shù)據(jù)(5,7)和交叉鏈接數(shù)據(jù)(5,6)。
如現(xiàn)在將要描述的,從其除去交叉鏈接和鏈接交叉相鄰層的嵌入式柵格結(jié)構(gòu)隨后傳遞以便鏈接編碼模塊24進(jìn)行處理,鏈接編碼模塊24開始簡化該所產(chǎn)生的柵格結(jié)構(gòu)。
鏈接編碼模塊的處理現(xiàn)在參考圖7和8A-H具體描述由柵格處理器11的鏈接編碼模塊24所執(zhí)行的處理。
鏈接編碼模塊的處理是處理由嵌入模塊22產(chǎn)生的嵌入表36并簡化由產(chǎn)生的表36中的結(jié)構(gòu)所表示的柵格結(jié)構(gòu)。具體而言,鏈接編碼模塊24的處理是編碼由嵌入模塊22產(chǎn)生的柵格結(jié)構(gòu)部分,其中該柵格部分識別只連接到兩個其它節(jié)點(diǎn)的節(jié)點(diǎn)之間的線性路徑,而且其中多條線性路徑連接相同的兩個節(jié)點(diǎn)。
參考圖7,當(dāng)嵌入模塊22產(chǎn)生并在嵌入表36中存儲了嵌入數(shù)據(jù)和鏈接數(shù)據(jù)時,鏈接編碼模塊24最初(S7-1)產(chǎn)生初始鏈接編碼數(shù)據(jù)40。
具體而言,對于由嵌入表36中鏈接數(shù)據(jù)所識別的每個鏈接,包括單個符號,在這種實(shí)施方式中是字母E的數(shù)據(jù),作為用于所識別鏈接的鏈接編碼在數(shù)據(jù)存儲器20中存儲為鏈接編碼40。
圖8A是圖6E柵格的示意圖,其中每個鏈接都與對每個鏈接包括單個符號E的鏈接編碼40關(guān)聯(lián)。如隨后將更具體描述的,鏈接編碼模塊24的后續(xù)處理是修改鏈接編碼40和存儲在嵌入表36中的數(shù)據(jù),以便從由嵌入表36中數(shù)據(jù)所表示的柵格除去鏈接和節(jié)點(diǎn),同時修改鏈接編碼40以識別從柵格中什么地方除去了節(jié)點(diǎn)和鏈接。
在初始鏈接編碼數(shù)據(jù)40存儲以后,鏈接編碼模塊24隨后選擇第一節(jié)點(diǎn)進(jìn)行處理(S7-2)。在這種實(shí)施方式中,進(jìn)行處理的第一節(jié)點(diǎn)是從識別由嵌入表36中嵌入數(shù)據(jù)定義的柵格結(jié)構(gòu)第二至最后一層中節(jié)點(diǎn)的列表頭選擇的。
在圖8A示例柵格的情況下,第二至最后一層上選擇的節(jié)點(diǎn)是節(jié)點(diǎn)10。
在初始節(jié)點(diǎn)選定以后,鏈接編碼模塊24隨后(S7-3)選擇初始鏈接進(jìn)行處理。在這種實(shí)施方式中,從選定節(jié)點(diǎn)出發(fā)的鏈接以嵌入表所存儲鏈接數(shù)據(jù)中以該節(jié)點(diǎn)作為起始節(jié)點(diǎn)的鏈接出現(xiàn)順序選擇。在圖8A的當(dāng)前例子中,由于從節(jié)點(diǎn)10到節(jié)點(diǎn)D4只有單個鏈接,因此它就是首先被選擇進(jìn)行處理的鏈接。
一旦已選擇一個鏈接進(jìn)行處理,鏈接編碼模塊24然后就(S7-4)考慮所處理鏈接的結(jié)束節(jié)點(diǎn)。具體而言,鏈接編碼模塊24確定由該鏈接識別的結(jié)束節(jié)點(diǎn)在嵌入表36所存儲的嵌入數(shù)據(jù)的鏈接列表中是否作為起始節(jié)點(diǎn)只出現(xiàn)一次及作為結(jié)束節(jié)點(diǎn)只出現(xiàn)一次。
如果情況是這樣,則只有單條路徑通過該節(jié)點(diǎn),而鏈接編碼模塊24然后繼續(xù)修改鏈接編碼數(shù)據(jù)40和嵌入表36中的數(shù)據(jù),以便編碼該單條路徑上該節(jié)點(diǎn)的存在(S7-5)。
具體而言,當(dāng)被處理的鏈接包括鏈接數(shù)據(jù)(N1,N2),其中N1識別鏈接的起始節(jié)點(diǎn),而N2識別結(jié)束節(jié)點(diǎn),而且有另外一個以N2為起始節(jié)點(diǎn)的鏈接(N2,N3)時,鏈接編碼模塊24開始從嵌入表36刪除這些鏈接數(shù)據(jù)項(xiàng),并用單個鏈接數(shù)據(jù)項(xiàng)(N1,N3)代替它們,其中新鏈接包括在所刪除鏈接(N1,N2)位置的有序鏈接數(shù)據(jù)中。
鏈接編碼模塊24隨后利用已刪除的兩個鏈接的鏈接編碼數(shù)據(jù)為新鏈接產(chǎn)生鏈接編碼數(shù)據(jù)。
具體而言,鏈接編碼模塊24將鏈接(N1,N2)的鏈接編碼數(shù)據(jù)附加到鏈接(N2,N3)的編碼數(shù)據(jù)的末尾。然后,鏈接編碼模塊24將節(jié)點(diǎn)N2對應(yīng)于由虛節(jié)點(diǎn)38中數(shù)據(jù)識別的虛節(jié)點(diǎn)時的字母D或者符號P和識別該編號節(jié)點(diǎn)從嵌入表表示中推出來的節(jié)點(diǎn)編號添加到新產(chǎn)生符號列表的頭。然后,鏈接編碼模塊24從存儲在嵌入表36的嵌入數(shù)據(jù)中的節(jié)點(diǎn)列表刪除所識別的節(jié)點(diǎn)N2。
因而,在圖8A中節(jié)點(diǎn)8和節(jié)點(diǎn)10及節(jié)點(diǎn)10和節(jié)點(diǎn)D4之間鏈接的情況下,在刪除識別節(jié)點(diǎn)8和節(jié)點(diǎn)10及節(jié)點(diǎn)10和節(jié)點(diǎn)D4之間鏈接的鏈接數(shù)據(jù)后,包括識別節(jié)點(diǎn)8和節(jié)點(diǎn)D4之間鏈接的數(shù)據(jù)的新鏈接數(shù)據(jù)將被存儲。為節(jié)點(diǎn)8和節(jié)點(diǎn)10及節(jié)點(diǎn)10和節(jié)點(diǎn)D4之間鏈接所存儲的鏈接編碼數(shù)據(jù)40將然后用于產(chǎn)生新鏈接的鏈接編碼數(shù)據(jù),在本例中其包括符號P和所除去節(jié)點(diǎn)的識別符,在這種情況下是10,及以節(jié)點(diǎn)8和節(jié)點(diǎn)10之間鏈接的鏈接編碼然后是節(jié)點(diǎn)10和節(jié)點(diǎn)D4之間鏈接的鏈接編碼的順序與被除去鏈接關(guān)聯(lián)的符號。在本例中,這將是編碼E,后面跟著另一個E。然后,嵌入表36中所刪除鏈接的編碼數(shù)據(jù)和節(jié)點(diǎn)10的表示將刪除。
在嵌入表36和鏈接編碼40更新以后,當(dāng)前節(jié)點(diǎn)與其它節(jié)點(diǎn)之間的連接將然后重新考慮(S7-3,S7-4)。具體而言,嵌入表36的鏈接數(shù)據(jù)中以當(dāng)前所選節(jié)點(diǎn)作為起始節(jié)點(diǎn)的第一鏈接將重新考慮(S7-3),并確定由該鏈接識別的結(jié)束節(jié)點(diǎn)是否由嵌入表36中鏈接數(shù)據(jù)中的單個起始節(jié)點(diǎn)識別(S7-4)。如果情況是這樣,則嵌入表36和鏈接編碼40然后以上述方式更新(S7-5)。
如果確定(S7-4)所選鏈接識別了被嵌入表36中數(shù)據(jù)不止識別為起始節(jié)點(diǎn)一次和識別為結(jié)束節(jié)點(diǎn)一次的節(jié)點(diǎn),則(S7-6)鏈接編碼模塊24確定是否從當(dāng)前所選節(jié)點(diǎn)出發(fā)的所有鏈接都處理了。如果情況不是這樣,則(S7-7)鏈接編碼模塊24考慮嵌入表36的鏈接數(shù)據(jù)中以當(dāng)前所選節(jié)點(diǎn)作為起始節(jié)點(diǎn)的下一鏈接并以上述相同方式確定(S7-4)該鏈接數(shù)據(jù)是否識別了作為起始節(jié)點(diǎn)只出現(xiàn)一次的結(jié)束節(jié)點(diǎn)。
當(dāng)從當(dāng)前所選節(jié)點(diǎn)出發(fā)的所有鏈接都處理完以后,鏈接編碼模塊24然后確定在當(dāng)前所選節(jié)點(diǎn)與任何其它節(jié)點(diǎn)之間是否存在不止一個鏈接(S7-8)。即,鏈接編碼模塊24確定以當(dāng)前所選節(jié)點(diǎn)為起始節(jié)點(diǎn)的任意存儲鏈接數(shù)據(jù)項(xiàng)是否是存儲在嵌入表36中的任何其它鏈接數(shù)據(jù)項(xiàng)的副本。如果確定情況是這樣,則鏈接編碼模塊24刪除(S7-9)一個副本鏈接并更新與剩余鏈接關(guān)聯(lián)的鏈接編碼40。
具體而言,鏈接編碼更新成符號列表,該符號列表包括指示兩個鏈接已合并的符號,在這種實(shí)施方式中是M,后面是包括用于所處理鏈接對中一個的鏈接編碼的兩個符號列表中較長的一個,后面是所考慮另一鏈接的符號列表。在鏈接以上述相同方式處理(S7-4-S7-8)之前,從當(dāng)前所選節(jié)點(diǎn)出發(fā)的第一鏈接(S7-3)然后被重新考慮。
如果確定從當(dāng)前所選節(jié)點(diǎn)出發(fā)的剩余鏈接中沒有一個具有與從當(dāng)前所選節(jié)點(diǎn)出發(fā)的任何其它鏈接相同的結(jié)束節(jié)點(diǎn)(S7-8),則鏈接編碼模塊24(S7-10)確定是否到達(dá)最后一個節(jié)點(diǎn)。
具體而言,鏈接編碼模塊24確定當(dāng)前節(jié)點(diǎn)是否對應(yīng)于在嵌入數(shù)據(jù)第一層中識別的節(jié)點(diǎn)。如果情況是這樣,則柵格中線性和并行路徑的編碼都已完成,處理結(jié)束。
如果情況不是這樣,則選擇下一節(jié)點(diǎn)進(jìn)行處理(S7-11)。在這種實(shí)施方式中,該下一節(jié)點(diǎn)是列表中與先前處理節(jié)點(diǎn)在同一層的下一節(jié)點(diǎn),或者如果到達(dá)列表尾部,則是下一較早定時層的節(jié)點(diǎn)列表中的第一節(jié)點(diǎn)。
然后選擇從新選擇節(jié)點(diǎn)出發(fā)的第一鏈接(S7-3),然后以上述相同方式進(jìn)行處理(S7-4-S7-10)。
因而,例如,當(dāng)處理圖8A的柵格時,最初節(jié)點(diǎn)10和9將被選擇并處理。對于這兩個節(jié)點(diǎn),都有從該節(jié)點(diǎn)到節(jié)點(diǎn)D4的單個鏈接。但是,D4對任何鏈接都不是起始節(jié)點(diǎn),因而在這個階段沒有鏈接或節(jié)點(diǎn)被除去。
然后,鏈接編碼模塊24將考慮節(jié)點(diǎn)8和節(jié)點(diǎn)10之間的鏈接。這識別出了節(jié)點(diǎn)10,如圖8A的說明所示,這是由節(jié)點(diǎn)8和節(jié)點(diǎn)10之間的鏈接作為單個結(jié)束節(jié)點(diǎn)識別一次并作為節(jié)點(diǎn)10和節(jié)點(diǎn)D4之間鏈接的起始節(jié)點(diǎn)識別一次的節(jié)點(diǎn)。因此,當(dāng)考慮以節(jié)點(diǎn)10作為起始節(jié)點(diǎn)或結(jié)束節(jié)點(diǎn)的鏈接時,鏈接編碼模塊24將確定節(jié)點(diǎn)10是線性路徑上的節(jié)點(diǎn)。
然后,鏈接編碼模塊24將開始刪除節(jié)點(diǎn)10和嵌入表36中嵌入數(shù)據(jù)中節(jié)點(diǎn)8和節(jié)點(diǎn)10及節(jié)點(diǎn)10和節(jié)點(diǎn)D4之間的鏈接,并用節(jié)點(diǎn)8和節(jié)點(diǎn)D4之間的單個鏈接代替它們。與新鏈接關(guān)聯(lián)的將是包括符號P、識別所刪除節(jié)點(diǎn)的數(shù)字10及兩個刪除鏈接的附加編碼的兩個符號EE的鏈接編碼40。
然后,鏈接編碼模塊24將重新考慮從節(jié)點(diǎn)8出發(fā)的鏈接,在這種情況下是節(jié)點(diǎn)8和節(jié)點(diǎn)D4之間的單個鏈接,以確定節(jié)點(diǎn)D4是否作為起始節(jié)點(diǎn)只出現(xiàn)一次和作為結(jié)束節(jié)點(diǎn)只出現(xiàn)一次。由于情況不是這樣,因此節(jié)點(diǎn)8和節(jié)點(diǎn)D4之間鏈接的鏈接編碼不再修改。由于從節(jié)點(diǎn)8出發(fā)的所有鏈接都處理了,因此鏈接編碼模塊24將繼續(xù)考慮從節(jié)點(diǎn)7出發(fā)的鏈接。
以與處理節(jié)點(diǎn)10類似的方式,鏈接編碼模塊24將識別節(jié)點(diǎn)7和節(jié)點(diǎn)9之間的鏈接識別出了作為起始節(jié)點(diǎn)只出現(xiàn)一次并作為結(jié)束節(jié)點(diǎn)只出現(xiàn)一次的節(jié)點(diǎn),節(jié)點(diǎn)9。然后,鏈接編碼模塊24開始刪除節(jié)點(diǎn)7和節(jié)點(diǎn)9及節(jié)點(diǎn)9和D4之間的鏈接并以節(jié)點(diǎn)7和節(jié)點(diǎn)D4之間的單個鏈接代替它,該單個鏈接與識別節(jié)點(diǎn)9已除去的鏈接編碼數(shù)據(jù)P9EE關(guān)聯(lián)。在這個階段圖6E柵格的處理由圖8B說明。
在刪除節(jié)點(diǎn)9以后,鏈接編碼模塊24將重新考慮從節(jié)點(diǎn)7到節(jié)點(diǎn)D4的鏈接,并確定沒有更多鏈接可以從節(jié)點(diǎn)7除去。
然后,鏈接編碼模塊24將轉(zhuǎn)向節(jié)點(diǎn)6,在節(jié)點(diǎn)6的情況下,從節(jié)點(diǎn)6出發(fā)的兩個鏈接都識別出節(jié)點(diǎn)8。這意味著節(jié)點(diǎn)8作為起始節(jié)點(diǎn)不止識別一次。但是,由于從節(jié)點(diǎn)6出發(fā)的兩個鏈接是完全一樣的,因?yàn)樗鼈兌兼溄拥焦?jié)點(diǎn)8,因此鏈接編碼模塊24將這些識別為編碼并行路徑并刪除一個鏈接,同時更新剩余鏈接的鏈接編碼為鏈接編碼MEE,字母M后面跟著之前彼此附加的兩個編碼E和E。
圖8C說明了在節(jié)點(diǎn)6和節(jié)點(diǎn)8之間的一個鏈接刪除且鏈接編碼更新后圖8B柵格的處理結(jié)果。
然后將考慮從節(jié)點(diǎn)6到節(jié)點(diǎn)8的新的單個鏈接,現(xiàn)在節(jié)點(diǎn)8將作為鏈接8-D4中的起始節(jié)點(diǎn)識別一次,并作為新的單個鏈接6-8中的結(jié)束節(jié)點(diǎn)識別一次。因此,這意味著節(jié)點(diǎn)8可以刪除,用于節(jié)點(diǎn)6和節(jié)點(diǎn)D4之間新鏈接的鏈接編碼是表示刪除節(jié)點(diǎn)的P8,后面跟著用于節(jié)點(diǎn)6和節(jié)點(diǎn)8的鏈接編碼MEE,后面跟著用于節(jié)點(diǎn)8和節(jié)點(diǎn)D4之間鏈接的前一鏈接編碼P10EE。
圖8D是這階段處理柵格的說明。如從圖8D可以看到的,節(jié)點(diǎn)6和節(jié)點(diǎn)D4之間的鏈接與編碼P8MEEP10EE關(guān)聯(lián),節(jié)點(diǎn)7和節(jié)點(diǎn)D4之間的鏈接與編碼P9EE關(guān)聯(lián),而所有剩余鏈接都與相同的編碼,即單個字母E,關(guān)聯(lián)。
在處理節(jié)點(diǎn)6并除去節(jié)點(diǎn)8以后,不會發(fā)生更多從節(jié)點(diǎn)6出發(fā)的鏈接處理,因此,鏈接編碼模塊24將依次考慮節(jié)點(diǎn)D2、D5和D3中的每一個。在所有這些情況下,節(jié)點(diǎn)都連接到對4個鏈接是結(jié)束節(jié)點(diǎn)因此不能除去的節(jié)點(diǎn)7。
考慮完節(jié)點(diǎn)D2、D5和D3以后,考慮節(jié)點(diǎn)D1。它由單個鏈接連接到節(jié)點(diǎn)6。但是,節(jié)點(diǎn)6是到節(jié)點(diǎn)7的鏈接和到節(jié)點(diǎn)D4的鏈接這兩個鏈接的起始節(jié)點(diǎn)。因此節(jié)點(diǎn)6不能除去。
然后考慮節(jié)點(diǎn)3。這個節(jié)點(diǎn)是到節(jié)點(diǎn)D2的單個鏈接的起始節(jié)點(diǎn)。除了在鏈接3-D2中作為結(jié)束節(jié)點(diǎn)出現(xiàn)一次,節(jié)點(diǎn)D2還對于單個鏈接D2-7作為起始節(jié)點(diǎn)記錄一次。因此,D2被處理。由于D2是虛節(jié)點(diǎn),因此D2從存儲在嵌入表36中的數(shù)據(jù)刪除,而節(jié)點(diǎn)3和D2及節(jié)點(diǎn)D2和7之間的鏈接被節(jié)點(diǎn)3和節(jié)點(diǎn)7之間的單個鏈接代替,該鏈接與編碼DEE關(guān)聯(lián),D識別已刪除的虛節(jié)點(diǎn),而E和E是與已除去的兩個鏈接關(guān)聯(lián)的兩個編碼。
圖8E說明了在這個處理階段的柵格和鏈接編碼。
處理完節(jié)點(diǎn)3以后,節(jié)點(diǎn)5、4和2以類似的方式一個接一個處理,分別除去虛節(jié)點(diǎn)D5、D3和D1,并以除去虛節(jié)點(diǎn)D2處理相同的方式更新嵌入表36中的鏈接數(shù)據(jù)和與所處理鏈接關(guān)聯(lián)的鏈接編碼40。
圖8F是虛節(jié)點(diǎn)D5、D3和D1被處理并除去后柵格的示意圖。在這個階段,節(jié)點(diǎn)2和節(jié)點(diǎn)6、節(jié)點(diǎn)3和節(jié)點(diǎn)7、節(jié)點(diǎn)5和節(jié)點(diǎn)7及節(jié)點(diǎn)4和節(jié)點(diǎn)7之間的每個鏈接都與指示從每個鏈接除去單個虛節(jié)點(diǎn)的編碼DEE關(guān)聯(lián)。
處理完節(jié)點(diǎn)2以后,選擇節(jié)點(diǎn)1。節(jié)點(diǎn)1和節(jié)點(diǎn)3之間的鏈接識別出節(jié)點(diǎn)3,它對于節(jié)點(diǎn)1和節(jié)點(diǎn)3之間的鏈接及節(jié)點(diǎn)2和節(jié)點(diǎn)3之間的鏈接是結(jié)束節(jié)點(diǎn)。為此,節(jié)點(diǎn)3不能除去。
然后選擇以節(jié)點(diǎn)1為起始節(jié)點(diǎn)的下一鏈接。在這個例子中,該下一鏈接將是節(jié)點(diǎn)1和節(jié)點(diǎn)5之間的鏈接。然后,節(jié)點(diǎn)5將被識別為作為該鏈接的結(jié)束節(jié)點(diǎn)出現(xiàn)一次并作為節(jié)點(diǎn)5到節(jié)點(diǎn)7的鏈接的起始節(jié)點(diǎn)出現(xiàn)一次。因此節(jié)點(diǎn)5將被刪除,節(jié)點(diǎn)1和節(jié)點(diǎn)7之間的新鏈接將產(chǎn)生并與鏈接編碼P5EDEE關(guān)聯(lián)。
然后以相同的方式處理節(jié)點(diǎn)1和節(jié)點(diǎn)4及節(jié)點(diǎn)7之間的鏈接,節(jié)點(diǎn)4被刪除,節(jié)點(diǎn)1和節(jié)點(diǎn)4及節(jié)點(diǎn)4和節(jié)點(diǎn)7之間的鏈接被從節(jié)點(diǎn)1到節(jié)點(diǎn)7、與鏈接編碼P4EDEE關(guān)聯(lián)的單個鏈接代替。
在這個處理階段所存儲的柵格由圖8G說明。在這個階段,以節(jié)點(diǎn)1為起始節(jié)點(diǎn)的兩個鏈接識別出了同一個結(jié)束節(jié)點(diǎn),即節(jié)點(diǎn)7。因此,鏈接編碼模塊24將刪除這些鏈接中的一個并將剩下的鏈接的編碼更新為編碼M后面跟著刪除或剩下鏈接的較大編碼然后是剩下或刪除鏈接的較短編碼。
在本例中,更新后的編碼將是MP5EDEEP4EDEE。這個處理階段的柵格在圖8H中說明。在這個階段,由從節(jié)點(diǎn)1出發(fā)的鏈接所識別出的節(jié)點(diǎn)中沒有一個可以除去,因此考慮從節(jié)點(diǎn)0出發(fā)的鏈接。由于由以節(jié)點(diǎn)0為起始節(jié)點(diǎn)的鏈接所識別出的節(jié)點(diǎn)中沒有一個可以除去,而且節(jié)點(diǎn)0是最后一個節(jié)點(diǎn),因此鏈接編碼模塊的處理完成。
因而,在這個階段,在圖8H示例柵格的情況下,以下數(shù)據(jù)將存儲在嵌入表36中。
嵌入數(shù)據(jù)層號節(jié)點(diǎn)1
2 [2,1]3 [3]4 [6]5 [7]
67[D4]鏈接數(shù)據(jù)(0,2)、(0,1)、(2,6)、(2,3)、(1,3)、(1,7)、(3,7)、(6,D4)、(6,7)、(7,D4)而且鏈接編碼42將以上各鏈接分別與以下鏈接編碼數(shù)據(jù)關(guān)聯(lián)E、E、DEE、E、E、MP5EDEEP4EDEE、DEE、P8MEEP10EE、E、P9EE。
在鏈接編碼模塊24從柵格中除去所有線性和所有并行路徑后,只有第一和最后一層中的節(jié)點(diǎn)及連接到至少三個其它節(jié)點(diǎn)的節(jié)點(diǎn)在簡化嵌入中保留,然后如現(xiàn)在將要描述的,剩下的簡化柵格由形狀編碼模塊26編碼。
形狀編碼模塊執(zhí)行的處理現(xiàn)在參考圖9A和9B及圖10A、10B和10C具體描述形狀編碼模塊26的處理,其中圖9A和9B是由形狀編碼模塊26執(zhí)行的處理操作的流程圖,而圖10A、10B和10C是圖8H柵格編碼的示意圖。
如前所述,鏈接編碼模塊24簡化了由嵌入表36中嵌入數(shù)據(jù)和鏈接數(shù)據(jù)40識別的柵格結(jié)構(gòu),以與該柵格結(jié)構(gòu)中鏈接關(guān)聯(lián)的鏈接編碼數(shù)據(jù)40的形式編碼對應(yīng)于只連接到它們自己而不連接到柵格任何其它部分的節(jié)點(diǎn)之間的線性和并行路徑的柵格部分。因此,鏈接編碼模塊24的處理結(jié)果是除柵格開始和末尾的節(jié)點(diǎn)(在圖8H柵格的情況下是節(jié)點(diǎn)0和節(jié)點(diǎn)D4)以外,所有節(jié)點(diǎn)都連接到至少三個其它節(jié)點(diǎn)的柵格結(jié)構(gòu)。另外,在簡化的柵格結(jié)構(gòu)中,節(jié)點(diǎn)之間的鏈接沒有副本。即,在任何節(jié)點(diǎn)對之間都決不會有多于一個鏈接。
當(dāng)簡化的柵格結(jié)構(gòu)由鏈接編碼模塊24產(chǎn)生以后,由鏈接編碼模塊24處理的原始柵格結(jié)構(gòu)的完整表示由形狀編碼模塊26以三組數(shù)據(jù)的形式產(chǎn)生。這三組數(shù)據(jù)包括編碼由鏈接編碼模塊24產(chǎn)生的簡化柵格形狀的形狀編碼數(shù)據(jù)42;用于簡化柵格中鏈接的確定鏈接編碼40的級聯(lián)列表的鏈接列表43;及包括由鏈接編碼模塊24所處理的原始柵格結(jié)構(gòu)中所有節(jié)點(diǎn)的有序列表的節(jié)點(diǎn)列表44。
在這種實(shí)施方式中,形狀編碼數(shù)據(jù)42對由簡化柵格定義的每個區(qū)域都包括三位數(shù)編碼。這三個字母編碼中的第一個數(shù)字識別區(qū)域附屬于柵格什么地方,而后兩個數(shù)字識別該區(qū)域中編碼的鏈接編號。
因而,例如,參考圖10A-10C并且如隨后具體描述的,當(dāng)處理圖8H的柵格時,最初圖10A中陰影節(jié)點(diǎn)0、2、3、1的區(qū)域被形狀編碼0、2、2包圍。作為偏移,0、2和2識別定義編碼形狀的路徑0、2、3和0、1、3中鏈接的編號。
確定要編碼的下一區(qū)域的偏移。在這個例子中,下一區(qū)域是2、6、7、3。節(jié)點(diǎn)2相對于節(jié)點(diǎn)0的偏移是1,因而確定形狀編碼1、2、2。在這個階段編碼的區(qū)域在圖10B中由陰影節(jié)點(diǎn)和完整箭頭示出。
然后識別下一區(qū)域6、D4、7,隨后這個區(qū)域如圖10C所說明地被編碼。然后識別最后未編碼的區(qū)域1、3、7,并產(chǎn)生用于該區(qū)域的最后三位數(shù)編碼。
如隨后將具體描述的,一旦產(chǎn)生了完整的形狀編碼42、鏈接列表43和節(jié)點(diǎn)列表44,它們就由解碼模塊28處理,建立對應(yīng)于由存儲在數(shù)據(jù)存儲器20中的語音節(jié)點(diǎn)數(shù)據(jù)30定義的柵格結(jié)構(gòu)的最終柵格結(jié)構(gòu)。然后,和與以對應(yīng)于節(jié)點(diǎn)列表44的順序排序的節(jié)點(diǎn)關(guān)聯(lián)的附加數(shù)據(jù)及與以解碼模塊28產(chǎn)生的最終柵格結(jié)構(gòu)確定的順序排序的語音鏈接數(shù)據(jù)32節(jié)點(diǎn)中鏈接關(guān)聯(lián)的數(shù)據(jù)一起,形狀編碼42和鏈接列表43由輸出模塊29輸出。
參考圖9A,最初(S9-1)識別用于第一層節(jié)點(diǎn)的節(jié)點(diǎn)列表中的單個節(jié)點(diǎn)。識別這個節(jié)點(diǎn)的數(shù)字添加到節(jié)點(diǎn)列表44,還添加到用于上下邊界的列表,還設(shè)置成識別為當(dāng)前節(jié)點(diǎn)和要處理的最后一個節(jié)點(diǎn)。
因而,例如,在圖8H柵格的情況下,其中第一節(jié)點(diǎn)是0,以下數(shù)據(jù)將存儲。
最后處理的節(jié)點(diǎn)0當(dāng)前節(jié)點(diǎn) 0節(jié)點(diǎn)列表
上邊界
下邊界
然后(S9-2),形狀編碼模塊26確定由嵌入表36中鏈接所識別的一個或多個鏈接是否識別出當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn)。
如果只有單個以當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn)的鏈接被嵌入表36中的鏈接數(shù)據(jù)識別出來,則這指示與當(dāng)前節(jié)點(diǎn)直接相鄰的柵格部分包括多個表示一條或多條并行或線性路徑的鏈接或節(jié)點(diǎn)。如果情況是這樣,則形狀編碼模塊24(S9-3)比較所處理的最后一個節(jié)點(diǎn)的值與當(dāng)前節(jié)點(diǎn)的值。如果這兩個數(shù)字相同,如當(dāng)處理初始節(jié)點(diǎn)時的情況,則鏈接編碼模塊24將包括設(shè)成0的偏移值及數(shù)字1和1的數(shù)字串添加到存儲在數(shù)據(jù)存儲器中的形狀編碼(S9-3)。如果兩個值不相等,則如隨后具體描述的計(jì)算不同的偏移數(shù)字。
然后(S9-4),形狀編碼模塊26選擇與當(dāng)前所處理鏈接,即以當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn)的單個鏈接,關(guān)聯(lián)的鏈接編碼數(shù)據(jù)40并利用與該鏈接關(guān)聯(lián)的鏈接編碼更新鏈接列表43和節(jié)點(diǎn)列表44。具體而言,如果任何數(shù)字出現(xiàn)在所處理鏈接的鏈接編碼40中,則這些數(shù)字以它們出現(xiàn)在鏈接編碼中的順序添加到節(jié)點(diǎn)列表。然后,從中除去這些數(shù)字的鏈接編碼的剩余部分添加到鏈接列表43。
然后(S9-5),處理的最后一個節(jié)點(diǎn)設(shè)置成識別為該鏈接結(jié)束節(jié)點(diǎn)的節(jié)點(diǎn),而且當(dāng)前節(jié)點(diǎn)、用于上下邊界的列表全都重置以便僅識別該結(jié)束節(jié)點(diǎn)。然后該結(jié)束節(jié)點(diǎn)附加到節(jié)點(diǎn)列表44的末尾。
因而,例如,在節(jié)點(diǎn)0具有與以下鏈接編碼MP4EEP3EEE關(guān)聯(lián)的單個鏈接(0,5)的情況下,最后處理的節(jié)點(diǎn)、當(dāng)前節(jié)點(diǎn)、節(jié)點(diǎn)列表44、鏈接列表43、形狀編碼42及上下邊界將更新變成如下最后處理的節(jié)點(diǎn)5當(dāng)前節(jié)點(diǎn) 5節(jié)點(diǎn)列表
鏈接列表 [MPEEPEEE]形狀編碼
上邊界[5]下邊界[5]如果形狀編碼模塊26確定(S9-2)對于由嵌入表36中鏈接數(shù)據(jù)識別的鏈接當(dāng)前節(jié)點(diǎn)作為起始節(jié)點(diǎn)出現(xiàn)了不止一次,如在圖8H示例柵格的情況下,其中節(jié)點(diǎn)0由兩個鏈接連接,一個在節(jié)點(diǎn)0和節(jié)點(diǎn)2之間,一個在節(jié)點(diǎn)0和節(jié)點(diǎn)1之間,則(S9-6)形狀編碼模塊26識別出用于被編碼柵格區(qū)域的上下路徑。
具體而言,形狀編碼模塊26最初識別出由嵌入表36中以當(dāng)前節(jié)點(diǎn)作為起始節(jié)點(diǎn)的有序鏈接數(shù)據(jù)識別的最后兩個未處理鏈接。
因而,在圖8H柵格的情況下,節(jié)點(diǎn)0和節(jié)點(diǎn)2及節(jié)點(diǎn)1之間的鏈接被識別出來。然后,識別這些鏈接的數(shù)據(jù)作為被編碼區(qū)域的路徑數(shù)據(jù)由形狀編碼模塊26存儲。
具體而言,識別有序鏈接數(shù)據(jù)中后一鏈接的數(shù)據(jù)添加到識別下路徑的路徑,而識別另一鏈接的數(shù)據(jù)添加到用于上路徑的數(shù)據(jù)。
因而,例如,在圖8H柵格結(jié)構(gòu)的情況下,以下數(shù)據(jù)將被存儲上路徑
下路徑
然后比較由上下路徑中最后一個節(jié)點(diǎn)識別的節(jié)點(diǎn)的層號。如果上路徑列表中的最后一個節(jié)點(diǎn)比下路徑列表中最后一個節(jié)點(diǎn)對應(yīng)于較早定時數(shù)據(jù)34的層,則上路徑列表被處理。如果情況不是這樣,則處理下路徑。
當(dāng)處理上路徑時,識別以上路徑中最后一個節(jié)點(diǎn)作為起始節(jié)點(diǎn)的鏈接。在以上路徑和圖8H柵格結(jié)構(gòu)的情況下,鏈接2-6和2-3將被識別。然后識別由有序鏈接數(shù)據(jù)中以上路徑中最后一個節(jié)點(diǎn)作為起始節(jié)點(diǎn)的最后一個鏈接的結(jié)束節(jié)點(diǎn)所識別的節(jié)點(diǎn)。然后,識別出的節(jié)點(diǎn)添加到上路徑列表的末尾。因而,在圖8H柵格結(jié)構(gòu)的情況下,上路徑列表將更新變成
。
當(dāng)處理下路徑時,以下路徑中最后一個節(jié)點(diǎn)作為起始節(jié)點(diǎn)的鏈接被識別,而且有序鏈接數(shù)據(jù)中以該最后一個節(jié)點(diǎn)作為起始節(jié)點(diǎn)的最早鏈接被識別。然后,這個識別出的鏈接的結(jié)束節(jié)點(diǎn)添加到下路徑的節(jié)點(diǎn)列表。
這種處理對每一層重復(fù),直到上下路徑節(jié)點(diǎn)列表中的最后一個節(jié)點(diǎn)完全相同。因而,例如,在圖8H柵格的情況下,包括節(jié)點(diǎn)0,2和3的上路徑與包括節(jié)點(diǎn)0,1和3的下路徑將被識別并存儲。然后,由形狀編碼模塊26存儲的上下邊界分別更新成對應(yīng)于這些識別出的上下路徑。
然后,形狀編碼模塊26開始(S9-7)利用識別出的路徑更新形狀編碼42。具體而言,比較最后處理的節(jié)點(diǎn)數(shù)據(jù)與當(dāng)前節(jié)點(diǎn)并確定偏移值。就象處理柵格第一區(qū)域時的情況,當(dāng)這兩個數(shù)字相等時,確定零偏移。然后,通過向當(dāng)前列表的末尾添加包括所確定偏移數(shù)字、識別上路徑中鏈接數(shù)的數(shù)字及下路徑中鏈接數(shù)的數(shù)字的三個數(shù)字列表來更新形狀編碼。因而,在圖8H由節(jié)點(diǎn)0、2、3和1所識別區(qū)域的情況下,指示具有上下路徑中兩個鏈接的區(qū)域的形狀編碼
將被存儲。
然后,與由上下路徑識別的鏈接關(guān)聯(lián)的鏈接數(shù)據(jù)被識別(S9-8)并處理(S9-9),鏈接列表43和節(jié)點(diǎn)列表44被更新。
具體而言,從由更新后的上路徑列表識別的第一節(jié)點(diǎn)開始,識別由上邊界列表中前兩個數(shù)字識別的第一鏈接。在圖8H柵格的情況下,這是節(jié)點(diǎn)0和節(jié)點(diǎn)2之間的鏈接。然后,與這個鏈接關(guān)聯(lián)的鏈接數(shù)據(jù)被處理,因此出現(xiàn)在與該鏈接關(guān)聯(lián)的鏈接編碼中的任何節(jié)點(diǎn)號都添加到節(jié)點(diǎn)列表,而從中除去這些數(shù)字的鏈接編碼添加到鏈接列表。
在圖8H由0和2之間鏈接識別的鏈接編碼數(shù)據(jù)的情況下,由于這個鏈接包括單個符號,字母E,因此沒有節(jié)點(diǎn)添加到節(jié)點(diǎn)列表,而字母E添加到鏈接列表。然后,以前述相同的方式,上路徑列表中的下一節(jié)點(diǎn)添加到節(jié)點(diǎn)列表,從那個節(jié)點(diǎn)出發(fā)由上路徑節(jié)點(diǎn)列表識別的鏈接被處理。當(dāng)所有上路徑列表都以這種方式處理以后,下路徑列表以相同的方式處理,直到下路徑列表中最后兩個節(jié)點(diǎn)之間的最后一個鏈接被處理。
因而,例如,在處理圖8H柵格結(jié)構(gòu)的情況下,在這個階段以下數(shù)據(jù)將被存儲。
最后處理的節(jié)點(diǎn) 0當(dāng)前節(jié)點(diǎn)0節(jié)點(diǎn)列表
鏈接列表[EEEE]形狀編碼
上邊界
下邊界
在鏈接列表和節(jié)點(diǎn)列表更新以后,形狀編碼模塊26(S9-10)確定當(dāng)前節(jié)點(diǎn)是否對應(yīng)于由上下邊界列表中最后一個數(shù)字識別的節(jié)點(diǎn)。如果情況是這樣,可選地在處理完從被處理的當(dāng)前節(jié)點(diǎn)出發(fā)的單個鏈接以后(S9-2-S9-5),形狀編碼模塊(S9-11)確定被處理的當(dāng)前節(jié)點(diǎn)是否識別出了嵌入表36中嵌入數(shù)據(jù)最后一層中的單個節(jié)點(diǎn)。如果情況是這樣,則整個柵格結(jié)構(gòu)都由形狀編碼模塊26進(jìn)行了編碼,形狀編碼模塊26的處理結(jié)束。
但是,如果當(dāng)前節(jié)點(diǎn)沒有識別出由嵌入表36中嵌入數(shù)據(jù)識別的最后一層中的節(jié)點(diǎn),則形狀編碼模塊(S9-2)確定以當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn)的鏈接數(shù)并以上述方式繼續(xù)處理那些鏈接(S9-2-S9-10)。
如果當(dāng)前節(jié)點(diǎn)沒有識別出上下邊界列表中的最后一個節(jié)點(diǎn),則形狀編碼模塊26(S9-12)確定當(dāng)前節(jié)點(diǎn)是否與任何還未處理的鏈接關(guān)聯(lián)。
如果情況不是這樣,則形狀編碼模塊26(S9-13)繼續(xù)選擇另一節(jié)點(diǎn)進(jìn)行處理。
更具體而言,在當(dāng)前節(jié)點(diǎn)對應(yīng)于上邊界列表中除該邊界列表中最后兩個節(jié)點(diǎn)以外的一個節(jié)點(diǎn)時,進(jìn)行處理的下一節(jié)點(diǎn)選為上邊界列表中的下一節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)識別出了上邊界列表中的倒數(shù)第二個節(jié)點(diǎn),則選擇的下一節(jié)點(diǎn)是下邊界列表中的第二節(jié)點(diǎn)。如果當(dāng)前節(jié)點(diǎn)是由下邊界列表中除第一節(jié)點(diǎn)編號以外的任何數(shù)字識別的節(jié)點(diǎn),則選擇下邊界列表中的下一節(jié)點(diǎn)。因而,在圖8H柵格的情況下,在所有從節(jié)點(diǎn)0出發(fā)的鏈接都處理完以后,所選的下一節(jié)點(diǎn)將是節(jié)點(diǎn)2。
在當(dāng)前節(jié)點(diǎn)更新以后,形狀編碼模塊26在確定是否所有節(jié)點(diǎn)都已處理(S9-11)或確定新選節(jié)點(diǎn)是否是任何還未處理的鏈接的起始節(jié)點(diǎn)(S9-12)之前,確定當(dāng)前節(jié)點(diǎn)是否識別了上下邊界列表中的最后一個節(jié)點(diǎn)(S9-10)。
當(dāng)確定(S9-12)當(dāng)前節(jié)點(diǎn)是任何還未處理的鏈接的起始節(jié)點(diǎn)時,確定(S9-14)用于包括該未處理鏈接的區(qū)域的上下路徑。
更具體而言,如果當(dāng)前節(jié)點(diǎn)在上邊界列表中,則識別出以當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn)的鏈接和上邊界列表中當(dāng)前節(jié)點(diǎn)的下一節(jié)點(diǎn)。這個鏈接用于設(shè)置下一要處理區(qū)域下路徑中的前兩個節(jié)點(diǎn)。因而,在圖8H柵格的情況下,在由節(jié)點(diǎn)0、2、3和1定義的區(qū)域被編碼且節(jié)點(diǎn)2被處理以后,節(jié)點(diǎn)2和3將設(shè)為下路徑列表中的初始節(jié)點(diǎn)。
然后,最接近以當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn)的有序鏈接數(shù)據(jù)尾部的未處理鏈接用于識別要添加到上路徑的節(jié)點(diǎn)。在以上圖8H柵格的情況下,這將是鏈接(2,6),因而上路徑將被更新設(shè)置成列表[2,6]。
在當(dāng)前節(jié)點(diǎn)不由上邊界列表中的數(shù)字識別時,由當(dāng)前節(jié)點(diǎn)和下邊界列表中下一節(jié)點(diǎn)識別的鏈接設(shè)置為上路徑列表的開始,最接近有序鏈接數(shù)據(jù)頭并以當(dāng)前節(jié)點(diǎn)為起始節(jié)點(diǎn)的下一未處理鏈接用于設(shè)置下路徑列表的開始。
然后以前述相同的方式關(guān)于步驟(S9-6)為要編碼的區(qū)域確定剩余的上下路徑列表。因而,在圖8H以節(jié)點(diǎn)2為起始節(jié)點(diǎn)的區(qū)域的情況下,將確定識別節(jié)點(diǎn)的上下路徑[2,6,7]和[2,3,7]。
然后(S9-15)形狀編碼模塊26確定由計(jì)算出的上下路徑定義的區(qū)域是否可以在這個階段編碼。為了確定這個,形狀編碼模塊26最初檢查當(dāng)前節(jié)點(diǎn)是否由上邊界列表中的節(jié)點(diǎn)識別。如果情況是這樣,則形狀編碼模塊26確定當(dāng)前區(qū)域的下路徑是只包括由上邊界列表識別的節(jié)點(diǎn)還是包括上邊界列表中從當(dāng)前節(jié)點(diǎn)到上邊界列表末尾的全部節(jié)點(diǎn)。如果情況是這樣,則該區(qū)域可以編碼。
在當(dāng)前節(jié)點(diǎn)不對應(yīng)于上邊界列表中任何節(jié)點(diǎn)時,形狀編碼模塊26確定為該區(qū)域確定的上路徑是只包括由下邊界列表識別的節(jié)點(diǎn)還是包括下邊界列表中從當(dāng)前節(jié)點(diǎn)到下邊界列表末尾的全部節(jié)點(diǎn)。如果情況是這樣,則該區(qū)域可以編碼。
如果確定(S9-15)當(dāng)前區(qū)域在這個階段不能編碼,則該節(jié)點(diǎn)及與該節(jié)點(diǎn)關(guān)聯(lián)的上下路徑被存儲(S9-16),邊界上當(dāng)前節(jié)點(diǎn)的下一節(jié)點(diǎn)被選擇進(jìn)行處理(S9-13)。
如果形狀編碼模塊26確定用于當(dāng)前節(jié)點(diǎn)的區(qū)域可以編碼(S9-15),則形狀編碼模塊26確定從當(dāng)前節(jié)點(diǎn)到最后處理節(jié)點(diǎn)的值的偏移值,并向形狀編碼添加對應(yīng)于所確定偏移的數(shù)字及識別與被處理節(jié)點(diǎn)關(guān)聯(lián)的上下路徑中的鏈接數(shù)的數(shù)字。
由形狀編碼模塊26確定的偏移是以步驟(S9-3)和(S9-7)確定偏移的相同方式確定的,如現(xiàn)在參考圖10A將要具體描述的。
如前所述,無論何時當(dāng)當(dāng)前節(jié)點(diǎn)設(shè)成等于最后處理的節(jié)點(diǎn)時,由形狀編碼模塊26產(chǎn)生的形狀編碼的偏移值設(shè)成0。
如果最后處理的節(jié)點(diǎn)號與當(dāng)前節(jié)點(diǎn)號不相等,則偏移值以以下方式計(jì)算。首先通過拷貝上邊界列表并在以逆序附加下邊界列表之前除去出現(xiàn)在上邊界列表中的最后一個節(jié)點(diǎn)來產(chǎn)生偏移列表。
因而,在圖10A由加黑圓圈所示邊界的情況下,將產(chǎn)生包括識別該邊界中節(jié)點(diǎn)的數(shù)字
的偏移列表。
然后通過以由偏移列表識別的順序沿節(jié)點(diǎn)以順時針或逆時針前進(jìn)確定以從最后處理節(jié)點(diǎn)開始到當(dāng)前節(jié)點(diǎn)的順序圍繞邊界在節(jié)點(diǎn)之后的步進(jìn)數(shù)。
在順時針前進(jìn)步進(jìn)值小于逆時針前進(jìn)步進(jìn)值時,這就是偏移值。在逆時針前進(jìn)步進(jìn)值小于順時針前進(jìn)步進(jìn)值時,偏移設(shè)成對應(yīng)于步進(jìn)值的負(fù)數(shù)。
因而,例如,如圖10A所示,當(dāng)0是在圖中由*識別的最后處理節(jié)點(diǎn)且上下邊界分別包括節(jié)點(diǎn)0、2和3及0、1和3時,節(jié)點(diǎn)2、3和1的偏移分別是1、2和-1,如圖中陰影圓圈上的數(shù)字所示。這些數(shù)字唯一識別出了邊界上每個節(jié)點(diǎn)相對于最后處理節(jié)點(diǎn),節(jié)點(diǎn)0,的位置。
在形狀編碼42更新以后,形狀編碼模塊26更新邊界列表(S9-19)。
具體而言,形狀編碼模塊26首先確定識別為當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)是否在上邊界列表中。如果情況是這樣,則為被編碼區(qū)域確定的下路徑中的鏈接數(shù)與當(dāng)前節(jié)點(diǎn)到上邊界列表末尾節(jié)點(diǎn)之間的鏈接數(shù)進(jìn)行比較。
如果下路徑中的鏈接數(shù)大于將當(dāng)前所處理節(jié)點(diǎn)與上邊界列表最后一個節(jié)點(diǎn)隔開的鏈接數(shù),則下路徑末尾超過將當(dāng)前節(jié)點(diǎn)與上邊界列表最后一個節(jié)點(diǎn)隔開的節(jié)點(diǎn)的節(jié)點(diǎn)編號附加到下邊界列表。
因而,例如,在圖10A處理由節(jié)點(diǎn)2、6、7、3定義的區(qū)域的情況下,在由節(jié)點(diǎn)0、2、3和1定義的區(qū)域處理以后,由于用于被處理區(qū)域的下路徑[2,3,7]包括多于將當(dāng)前節(jié)點(diǎn),節(jié)點(diǎn)2,與上邊界列表
末尾隔開的鏈接,即一個鏈接,因此通過添加來自被編碼區(qū)域的下路徑的最后一個節(jié)點(diǎn),節(jié)點(diǎn)7,來更新下邊界。因而,在這種情況下,下邊界變成
。
然后,通過刪除從當(dāng)前節(jié)點(diǎn)到列表末尾的全部節(jié)點(diǎn)及將上路徑列表附加到縮短的上邊界列表來修改上邊界列表。
因而,在處理由節(jié)點(diǎn)2、6、7和3定義的區(qū)域的情況下,在當(dāng)前節(jié)點(diǎn)是2且上邊界最初是
時,上邊界將首先縮短成
,然后上路徑[2,6,7]將附加到該縮短的列表,因此上邊界列表變成
。在圖10B中,陰影節(jié)點(diǎn)是在這個階段包括在邊界列表中的節(jié)點(diǎn)。
當(dāng)當(dāng)前處理的節(jié)點(diǎn)不對應(yīng)于上邊界列表中的節(jié)點(diǎn)時,確定將當(dāng)前節(jié)點(diǎn)與下邊界列表中最后一個節(jié)點(diǎn)隔開的鏈接數(shù)。然后確定上路徑超過這個鏈接數(shù)的鏈接數(shù)。然后,出現(xiàn)在上路徑列表末尾、對應(yīng)于這個數(shù)字的節(jié)點(diǎn)號附加到識別上路徑邊界的節(jié)點(diǎn)列表。然后,下邊界中包括當(dāng)前節(jié)點(diǎn)或后續(xù)節(jié)點(diǎn)的節(jié)點(diǎn)被刪除,并且下路徑列表附加到下邊界列表。
在邊界更新以后,識別(S9-20)已添加到柵格編碼區(qū)域的鏈接。這些鏈接將包括分別添加到上下邊界列表的鏈接。因而,在處理圖10A由節(jié)點(diǎn)2、6、7和3定義的區(qū)域的情況下,在由節(jié)點(diǎn)0、2、3和1定義的區(qū)域已編碼后,添加的鏈接將包括3和7、2和6及6和7之間的鏈接。
在被編碼區(qū)域與上邊界中當(dāng)前節(jié)點(diǎn)關(guān)聯(lián)的情況下,這些節(jié)點(diǎn)以添加到下邊界然后是上邊界的鏈接順序排序,因而在上面的情況下鏈接以3-7、2-6和6-7排序。如果當(dāng)前節(jié)點(diǎn)不在上邊界列表中,則添加到上邊界的鏈接放在添加到下邊界的鏈接之前。
然后(S9-21)以前述相同的方式關(guān)于步驟(S9-5)和(S9-9)按順序處理這些鏈接中每一個的鏈接數(shù)據(jù),在鏈接數(shù)據(jù)處理以后,每個鏈接的結(jié)束節(jié)點(diǎn)如果還未添加到節(jié)點(diǎn)列表,則作為一節(jié)點(diǎn)添加到節(jié)點(diǎn)列表。然后,最后處理節(jié)點(diǎn)更新成等于當(dāng)前節(jié)點(diǎn)的值。
因而,在編碼圖8H由節(jié)點(diǎn)2、6、7和3定義的區(qū)域的情況下,在由節(jié)點(diǎn)0、2、3和1定義的區(qū)域編碼以后,以下數(shù)據(jù)將在這個階段存儲。
最后處理的節(jié)點(diǎn)2當(dāng)前節(jié)點(diǎn) 2節(jié)點(diǎn)列表
鏈接列表 [EEEEDEEDEEE]形狀編碼
上邊界
下邊界
在鏈接列表、節(jié)點(diǎn)列表和最后處理的節(jié)點(diǎn)更新以后,形狀編碼模塊26(S9-22)確定邊界上任何節(jié)點(diǎn)是否已經(jīng)調(diào)度進(jìn)行隨后的處理。如果情況是這樣,則選擇(S9-23)拒絕進(jìn)行編碼的最后一個區(qū)域,并且為將當(dāng)前節(jié)點(diǎn)設(shè)置成等于所選節(jié)點(diǎn)并處理為該節(jié)點(diǎn)確定的上下路徑的區(qū)域確定偏移和形狀編碼。然后,由形狀編碼模塊26存儲的邊界數(shù)據(jù)、形狀編碼、節(jié)點(diǎn)列表和鏈接列表及其它數(shù)據(jù)利用如上所述的上下路徑數(shù)據(jù)更新(S9-18-S9-22)。
當(dāng)被調(diào)度進(jìn)行隨后處理的所有節(jié)點(diǎn)都處理以后,形狀編碼模塊26確定當(dāng)前所選節(jié)點(diǎn)是否還有任何可以編碼區(qū)域的未處理鏈接(S9-12),然后處理那些鏈接(S9-14-S9-23)或在以前述方式處理節(jié)點(diǎn)(S9-23)之前選擇邊界上的下一節(jié)點(diǎn)(S9-13)。
因而,通過以這種方式處理簡化的柵格,由柵格定義的每個區(qū)域都依次編碼。參考圖10A、B和C,例如,在由圖10A中陰影圓圈識別的區(qū)域編碼以后,選擇進(jìn)行編碼的下一節(jié)點(diǎn)是節(jié)點(diǎn)2,節(jié)點(diǎn)2關(guān)于節(jié)點(diǎn)0有偏移值1,而節(jié)點(diǎn)0是前一編碼區(qū)域的起始節(jié)點(diǎn)。然后,如圖10B所示,由節(jié)點(diǎn)2和鏈接2-6、6-7、3-7及2-3識別的區(qū)域被編碼,邊界相應(yīng)地更新。
在這個階段,節(jié)點(diǎn)2是當(dāng)前節(jié)點(diǎn),來自邊界的節(jié)點(diǎn)將包括圖10B中的陰影節(jié)點(diǎn)。
當(dāng)確定邊界上與未處理鏈接關(guān)聯(lián)的下一節(jié)點(diǎn)時,將識別出節(jié)點(diǎn)6。然后確定該節(jié)點(diǎn)相對于節(jié)點(diǎn)2的偏移,在這種情況下是1,如圖10B圓圈上的數(shù)字所示。然后編碼由節(jié)點(diǎn)1、6、D4和7識別的區(qū)域。
在處理完整個上邊界以后,依次考慮下邊界中的節(jié)點(diǎn),識別出下邊界中附屬于一未處理鏈接的第一節(jié)點(diǎn),節(jié)點(diǎn)1。然后確定相對于節(jié)點(diǎn)6的偏移值,如由圖10C圓圈上的數(shù)字所示,這個值是-3。然后如前所述確定由節(jié)點(diǎn)1、3和7識別的形狀的形狀編碼并更新鏈接列表和節(jié)點(diǎn)列表。在節(jié)點(diǎn)1考慮之后,依次考慮節(jié)點(diǎn)7和節(jié)點(diǎn)4,直到到達(dá)最后一個節(jié)點(diǎn),節(jié)點(diǎn)D4,在這點(diǎn)不再發(fā)生任何編碼。
在這種處理的末尾,以下數(shù)據(jù)將存儲,其中用于柵格中鏈接的鏈接編碼對應(yīng)于圖8H識別出的那些。
節(jié)點(diǎn)列表
鏈接列表[EEEEDEEDEEEPEEPMEEPEEMPEDEEPEDEE]形狀編碼
虛節(jié)點(diǎn) [D1,D2,D3,D4,D5]
虛鏈接 (5-7)交叉鏈接 (5-7)如現(xiàn)在將要描述的,這些數(shù)據(jù)足以讓解碼模塊28產(chǎn)生表示圖6A所示原始編碼柵格結(jié)構(gòu)的柵格結(jié)構(gòu)。
現(xiàn)在參考圖11A-D,圖12及圖13A-G具體描述解碼模塊28再生柵格結(jié)構(gòu)的處理。
解碼模塊執(zhí)行的處理參考圖11A,一旦用于整個柵格結(jié)構(gòu)的節(jié)點(diǎn)列表44、鏈接列表和形狀編碼42已由形狀編碼模塊26確定,解碼模塊28就繼續(xù)從節(jié)點(diǎn)列表44、鏈接列表43、形狀編碼42及存儲在數(shù)據(jù)存儲器20中的虛節(jié)點(diǎn)和虛鏈接38及交叉鏈接39產(chǎn)生該柵格結(jié)構(gòu)的另一表示。
具體而言,解碼模塊28最初(S11-1)從節(jié)點(diǎn)列表讀出第一節(jié)點(diǎn)。這個節(jié)點(diǎn)是柵格結(jié)構(gòu)中第一節(jié)點(diǎn)的節(jié)點(diǎn)號。然后解碼模塊28為所產(chǎn)生的柵格結(jié)構(gòu)中的第一層產(chǎn)生節(jié)點(diǎn)列表,包括從節(jié)點(diǎn)列表中讀出的節(jié)點(diǎn)號。
因而,在以上節(jié)點(diǎn)列表的情況下,其中節(jié)點(diǎn)列表44中的第一節(jié)點(diǎn)是節(jié)點(diǎn)0,為第一層產(chǎn)生包括節(jié)點(diǎn)列表
的嵌入數(shù)據(jù)項(xiàng)的節(jié)點(diǎn)列表。
然后解碼模塊28產(chǎn)生初始上下邊界列表,這兩個列表都包括單個元素,該元素是從節(jié)點(diǎn)列表44中讀出的節(jié)點(diǎn)號。解碼模塊28還將最后處理的節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)設(shè)置成等于從節(jié)點(diǎn)列表讀出的節(jié)點(diǎn)。
因而,在這個階段,解碼模塊28將以下數(shù)據(jù)存儲在數(shù)據(jù)存儲器20中。
最后處理的節(jié)點(diǎn)0當(dāng)前節(jié)點(diǎn) 0節(jié)點(diǎn)列表 [2,3,1,7,6,9,D4,8,10,5,4]鏈接列表[EEEEDEEDEEEPMEEPEEMPEDEEPEDEE]形狀編碼
虛節(jié)點(diǎn)[D1,D2,D3,D4,D5]虛鏈接(5-7)交叉鏈接 (5-7)上邊界
下邊界
嵌入數(shù)據(jù)第一層
鏈接數(shù)據(jù) 無然后(S11-2)解碼模塊28從形狀編碼讀出下一數(shù)字,在這種情況下是值0,并更新當(dāng)前節(jié)點(diǎn)號。
更具體而言,在從形狀編碼讀出的數(shù)字等于0時,不采取任何動作。如果該數(shù)字不等于0,則如現(xiàn)在將要描述的,當(dāng)前節(jié)點(diǎn)被更新。
最初,在從形狀編碼讀出的數(shù)字是正數(shù)或負(fù)數(shù)時,識別當(dāng)前節(jié)點(diǎn)在上下邊界列表中的位置。
如果從形狀編碼讀出的數(shù)字是正數(shù)且當(dāng)前節(jié)點(diǎn)號識別出上邊界列表中的節(jié)點(diǎn),則識別節(jié)點(diǎn)號還在該列表中的列表中的節(jié)點(diǎn),當(dāng)前節(jié)點(diǎn)相應(yīng)地更新。在當(dāng)前節(jié)點(diǎn)在上邊界列表中且從形狀編碼讀出的數(shù)字是負(fù)數(shù)時,解碼模塊28向列表頭計(jì)數(shù)。在對應(yīng)于來自形狀編碼的數(shù)字的節(jié)點(diǎn)號讀出時,識別讀出的最后一個數(shù)字,當(dāng)前節(jié)點(diǎn)相應(yīng)地更新。
如果在正數(shù)的情況下到達(dá)上邊界列表的頭或尾,則考慮從下邊界列表尾部將剩余節(jié)點(diǎn)數(shù)計(jì)算在內(nèi)的后續(xù)節(jié)點(diǎn),直到計(jì)數(shù)夠要求的節(jié)點(diǎn)數(shù)。相反,在負(fù)數(shù)的情況下,如果到達(dá)列表頭,則對于剩余的節(jié)點(diǎn)數(shù),依次考慮從下邊界列表頭開始的節(jié)點(diǎn)號。
在當(dāng)前節(jié)點(diǎn)不出現(xiàn)在上邊界列表中時,識別當(dāng)前節(jié)點(diǎn)在下邊界列表中的位置,如果從形狀編碼讀出的數(shù)字是正數(shù),則讀出朝下邊界列表頭方向的節(jié)點(diǎn)數(shù),讀出的最后一個節(jié)點(diǎn)用于更新當(dāng)前節(jié)點(diǎn)。在從形狀編碼讀出的數(shù)字是負(fù)數(shù)且當(dāng)前節(jié)點(diǎn)不出現(xiàn)在上邊界列表中時,從當(dāng)前節(jié)點(diǎn)開始向著下邊界列表尾,由來自形狀編碼的數(shù)字表示的節(jié)點(diǎn)數(shù)被讀出。
如果到達(dá)下邊界列表的頭或尾,則更多節(jié)點(diǎn)從上邊界列表計(jì)數(shù)(在正數(shù)情況下從頭開始,在負(fù)數(shù)情況下從尾部向后),直到由形狀編碼識別的所有節(jié)點(diǎn)號都考慮了。然后,當(dāng)前節(jié)點(diǎn)值設(shè)成等于該邊界列表中識別的最后一個節(jié)點(diǎn)。
在當(dāng)前節(jié)點(diǎn)數(shù)據(jù)更新以后(S11-2),解碼模塊28(S11-3)從形狀編碼列表讀出下兩個數(shù)字。在以上示例形狀編碼列表的情況下,這些數(shù)字是數(shù)字2和2。
在下兩個數(shù)字從形狀編碼列表讀出以后,解碼模塊28(S11-4)確定是否讀出的這兩個數(shù)字都等于1。
如果情況是這樣,則解碼模塊28(S11-5)繼續(xù)從鏈接列表43讀符號,直到讀出的符號E的個數(shù)超過從列表中讀出的其它符號的個數(shù)。這將包括用于由鏈接編碼模塊24產(chǎn)生的簡化柵格的一個鏈接的鏈接編碼。然后,如現(xiàn)在參考圖12將要具體描述的,從鏈接列表43讀出的鏈接編碼將被處理,其中圖12是解碼模塊28處理來自鏈接列表43的鏈接編碼以再生由該鏈接編碼表示的編碼柵格部分的流程圖。
首先參考圖12,解碼模塊28確定(S12-1)當(dāng)前節(jié)點(diǎn)是否對應(yīng)于上邊界列表中的節(jié)點(diǎn)。如果情況是這樣,則當(dāng)處理鏈接編碼時,添加到用于所產(chǎn)生柵格結(jié)構(gòu)的嵌入數(shù)據(jù)的任何節(jié)點(diǎn)都添加到每層的列表頭。否則新添加的節(jié)點(diǎn)添加到嵌入數(shù)據(jù)中的列表尾。
然后產(chǎn)生識別作為起始節(jié)點(diǎn)添加到柵格的最后一個節(jié)點(diǎn)和空結(jié)束節(jié)點(diǎn)的鏈接數(shù)據(jù),而且從鏈接列表讀出的鏈接編碼與新產(chǎn)生的鏈接數(shù)據(jù)和識別包含所產(chǎn)生鏈接起始節(jié)點(diǎn)的層的層數(shù)據(jù)關(guān)聯(lián)。然后解碼模塊28依次處理與鏈接編碼關(guān)聯(lián)的每個鏈接。
具體而言,解碼模塊28最初(S12-2)確定所處理鏈接編碼中的第一個符號是否是字母D。如果情況是這樣,則解碼模塊28(S12-3)增加與該鏈接關(guān)聯(lián)的層數(shù)據(jù)并從用于該鏈接的鏈接編碼中刪除前兩個符號。
如果與鏈接關(guān)聯(lián)的鏈接編碼的第一個符號不是字母D,則解碼模塊(S12-4)確定第一個符號是否是字母P(S12-4)。如果情況是這樣,則節(jié)點(diǎn)列表中的下一元素被讀出,而且與所處理鏈接編碼關(guān)聯(lián)的鏈接數(shù)據(jù)被更新(S12-5),以識別作為結(jié)束節(jié)點(diǎn)從節(jié)點(diǎn)列表讀出的節(jié)點(diǎn)號。
大于與鏈接關(guān)聯(lián)的數(shù)據(jù)的層的節(jié)點(diǎn)列表更新成包括該鏈接的結(jié)束節(jié)點(diǎn)。
然后產(chǎn)生以新讀出節(jié)點(diǎn)為起始節(jié)點(diǎn)并具有空結(jié)束節(jié)點(diǎn)的新鏈接數(shù)據(jù),并與識別包含該鏈接起始節(jié)點(diǎn)的層的層數(shù)據(jù)關(guān)聯(lián)。然后,與所處理鏈接關(guān)聯(lián)的鏈接編碼通過從鏈接編碼中刪除第一個符號,字母P,來更新。然后一個接一個讀出剩余鏈接編碼中的符號,直到讀出的字母E的個數(shù)超過其它字母的個數(shù)。該讀出的鏈接編碼數(shù)據(jù)與新產(chǎn)生的鏈接數(shù)據(jù)關(guān)聯(lián),由解碼模塊28讀出的符號從當(dāng)前處理的鏈接的鏈接編碼中刪除。
如果所處理鏈接編碼的下一符號未確定是字母P(S12-4),則解碼模塊28(S12-6)確定所處理鏈接編碼開始的符號是否是字母M。
如果情況是這樣,則解碼模塊28(S12-7)產(chǎn)生與所處理鏈接編碼關(guān)聯(lián)的鏈接數(shù)據(jù)和層數(shù)據(jù)的拷貝。然后,解碼模塊28通過從與當(dāng)前鏈接關(guān)聯(lián)的符號序列開始刪除字母M并讀出鏈接編碼數(shù)據(jù)的符號直到字母E的個數(shù)超過鏈接編碼中其它字母的個數(shù)來更新與當(dāng)前鏈接關(guān)聯(lián)的鏈接編碼數(shù)據(jù)。然后,從鏈接編碼中讀出的符號作為鏈接編碼與新產(chǎn)生的鏈接關(guān)聯(lián),而用于所處理鏈接的鏈接編碼通過將讀出的鏈接編碼從與該鏈接關(guān)聯(lián)的符號列表中刪除來更新。
因而,例如,參考圖13A-F,考慮解碼來自與以下初始鏈接數(shù)據(jù)和層數(shù)據(jù)(0,-)-層0關(guān)聯(lián)的鏈接列表的以下數(shù)據(jù)[MDEPEEDEDEE]和以下嵌入數(shù)據(jù)的情況嵌入數(shù)據(jù)層0
參考圖13A,以上鏈接編碼和鏈接數(shù)據(jù)示意性地在圖13A中說明,其中鏈接的起始節(jié)點(diǎn)示為圓圈中的數(shù)字,而鏈接示為指向第二個圓圈的箭頭。圖中,節(jié)點(diǎn)長度對應(yīng)于層數(shù)據(jù),較長的箭頭與較大的層號關(guān)聯(lián),而鏈接編碼示為緊挨著鏈接。
最初,鏈接編碼中的第一個字母是字母M,因此將創(chuàng)建鏈接數(shù)據(jù)(0,-)和層數(shù)據(jù)的拷貝。鏈接數(shù)據(jù)的這兩個拷貝將與以下鏈接編碼[DEPEE]和[DEDEE]關(guān)聯(lián)。因而在這個階段,如圖13B所說明的,以下數(shù)據(jù)將被存儲鏈接鏈接編碼層(0,-) [DEPEE] 層0(0,-) [DEDEE] 層0由于與這兩個鏈接關(guān)聯(lián)的編碼數(shù)據(jù)不是單個字母E,因此其中一個鏈接編碼將然后被選擇進(jìn)行處理。
在第一個鏈接編碼[DEPEE]的情況下,第一個符號是D。于是用于該鏈接的層數(shù)據(jù)加1。用于該鏈接的鏈接編碼由鏈接編碼[PEE]代替。因而,在這個階段,如圖13C所說明的,以下數(shù)據(jù)將被存儲鏈接鏈接編碼層(0,-) [PEE]層1(0,-) [DEDEE] 層0當(dāng)處理更新后的鏈接編碼時,由于第一個符號是字母P,因此與該鏈接關(guān)聯(lián)的鏈接編碼通過將結(jié)束節(jié)點(diǎn)設(shè)成出現(xiàn)在節(jié)點(diǎn)列表上的下一節(jié)點(diǎn)來更新,以該新節(jié)點(diǎn)為起始節(jié)點(diǎn)的新鏈接產(chǎn)生并與從中刪除第一和最后一個符號的前一鏈接編碼關(guān)聯(lián)。然后,該新節(jié)點(diǎn)添加到與由所處理鏈接的層數(shù)據(jù)識別的層相鄰的節(jié)點(diǎn)列表,而且新鏈接然后與識別這層的層數(shù)據(jù)關(guān)聯(lián)。
因而,在這個階段,如果節(jié)點(diǎn)列表上的下一節(jié)點(diǎn)是節(jié)點(diǎn)1,則以下數(shù)據(jù)將存儲。
嵌入數(shù)據(jù)層0
層1 -層2 [1]
鏈接數(shù)據(jù)鏈接編碼層(0,1) [E] 層1(0,-) [DDEE] 層0(1,-) [E] 層2該數(shù)據(jù)由圖13D說明。
由于剩余鏈接都與鏈接編碼E關(guān)聯(lián),因此解碼模塊28然后將開始處理與鏈接數(shù)據(jù)(0,-)關(guān)聯(lián)的鏈接編碼。由于這個鏈接編碼包括DEDEE,因此這將使層數(shù)據(jù)更新成等于2,在這點(diǎn)編碼將只包括單個字母E。在此之后所有鏈接編碼數(shù)據(jù)都已處理。在處理鏈接編碼末尾的數(shù)據(jù)由圖13E說明。
因而,以這種方式,解碼模塊28能夠處理來自鏈接列表的數(shù)據(jù),產(chǎn)生表示包括一條或多條由鏈接編碼數(shù)據(jù)40編碼的并行線性節(jié)點(diǎn)路徑的柵格結(jié)構(gòu)部分的嵌入數(shù)據(jù)和鏈接數(shù)據(jù)。
返回圖11A,在所有鏈接數(shù)據(jù)都處理完以后(S11-5),解碼模塊28然后(S11-6)從節(jié)點(diǎn)列表44讀下一節(jié)點(diǎn)。這個節(jié)點(diǎn)號用于通過用從節(jié)點(diǎn)列表44讀出的節(jié)點(diǎn)值代替空值來更新由解碼模塊28根據(jù)處理從鏈接列表43獲得的具有空結(jié)束節(jié)點(diǎn)的鏈接編碼而產(chǎn)生的鏈接數(shù)據(jù)。然后選擇剛更新的一個鏈接,而且從節(jié)點(diǎn)列表44讀出的節(jié)點(diǎn)然后添加到由該鏈接層數(shù)據(jù)識別的層的下一層的節(jié)點(diǎn)列表。
因而,例如,在上述鏈接的情況下,如果下一節(jié)點(diǎn)號是節(jié)點(diǎn)2,則嵌入數(shù)據(jù)和鏈接數(shù)據(jù)將然后變成嵌入數(shù)據(jù)層0
層1層2 [1]層3 [2]鏈接數(shù)據(jù)(0,1),(0,2),(1,2)以上例子在節(jié)點(diǎn)2添加以后的最終結(jié)構(gòu)由圖13F示出。
然后,當(dāng)前節(jié)點(diǎn)數(shù)據(jù)和最后處理的節(jié)點(diǎn)數(shù)據(jù)重置成等于從節(jié)點(diǎn)列表44讀出的最后一個節(jié)點(diǎn),而上下邊界列表重置成包含單個元素,它是從節(jié)點(diǎn)列表44讀出的最后一個節(jié)點(diǎn)號。
然后(S11-7),解碼模塊28確定是否所有形狀編碼數(shù)據(jù)42都已處理。如后所述,如果所有形狀編碼數(shù)據(jù)42都已處理,則(S11-23)解碼模塊28利用存儲在數(shù)據(jù)存儲器20中的虛鏈接/節(jié)點(diǎn)數(shù)據(jù)38和交叉鏈接數(shù)據(jù)39完成柵格結(jié)構(gòu)的表示??蛇x地,如果情況不是這樣,則解碼模塊28繼續(xù)處理(S11-7)形狀編碼42中的下一數(shù)字,同樣如后面具體描述的。
如果當(dāng)初始上下路徑數(shù)從形狀編碼42中讀出時(S11-3)確定該數(shù)字不都是1(S11-4),則解碼模塊28繼續(xù)(S11-8)從鏈接列表43讀該鏈接編碼的下一部分,直到由字母E表示的符號總數(shù)超過其它符號的個數(shù),并以前述相同的方式關(guān)于步驟(S11-5)繼續(xù)處理該鏈接編碼數(shù)據(jù)。
在從鏈接列表43讀出的鏈接編碼數(shù)據(jù)處理完以后,解碼模塊28(S11-9)從節(jié)點(diǎn)列表44讀下一節(jié)點(diǎn)號。然后,作為處理識別空結(jié)束節(jié)點(diǎn)的鏈接編碼數(shù)據(jù)的結(jié)果而產(chǎn)生的任何鏈接數(shù)據(jù)都更新成包括從節(jié)點(diǎn)列表44讀出的該節(jié)點(diǎn)作為起始節(jié)點(diǎn)。然后以前述方式更新柵格結(jié)構(gòu)的嵌入數(shù)據(jù),其中從節(jié)點(diǎn)列表44讀出的節(jié)點(diǎn)號添加到由剛更新的任何鏈接的層數(shù)據(jù)所識別層的相鄰層節(jié)點(diǎn)列表。
然后(S11-10)解碼模塊28確定是否由所處理形狀編碼數(shù)據(jù)編碼的所有上路徑都已解碼(S11-10)。即,由于所處理形狀編碼是從形狀編碼42中讀出的,因此解碼模塊28計(jì)算作為步驟(S11-9)處理結(jié)果鏈接編碼和節(jié)點(diǎn)添加到所產(chǎn)生柵格結(jié)構(gòu)的次數(shù)。如果這小于從形狀編碼42讀出的三位數(shù)串中的第二個數(shù)字,則解碼模塊28繼續(xù)處理(S11-8)來自鏈接列表43的鏈接編碼的下一部分,然后讀出并處理(S11-9)節(jié)點(diǎn)列表44中的下一節(jié)點(diǎn)。
因而,例如,如果以下數(shù)據(jù)由數(shù)據(jù)存儲器20存儲當(dāng)前節(jié)點(diǎn)0
節(jié)點(diǎn)列表[2,3,1,...]鏈接列表[EEEE...]形狀編碼
嵌入數(shù)據(jù)層1
鏈接數(shù)據(jù)無上邊界
下邊界
在處理鏈接列表中的前兩項(xiàng)之后,數(shù)據(jù)存儲器中所存儲的數(shù)據(jù)將是當(dāng)前節(jié)點(diǎn)0節(jié)點(diǎn)列表[1...]鏈接列表[EE...]形狀編碼
嵌入數(shù)據(jù)層1
層2 [2]層3 [3]鏈接數(shù)據(jù)(0,2),(2,3)上邊界
下邊界
當(dāng)解碼模塊28確定由形狀編碼42中第二個數(shù)字識別的用于處理的所有鏈接都處理完以后,解碼模塊28(S11-11)繼續(xù)記下所添加最后一個節(jié)點(diǎn)的節(jié)點(diǎn)號并處理(S11-13)來自鏈接列表包括比其它字母多的字母E的鏈接編碼的下一部分。然后,解碼模塊28將從鏈接列表43讀出的鏈接編碼與具有對應(yīng)于當(dāng)前節(jié)點(diǎn)的起始節(jié)點(diǎn)和空結(jié)束節(jié)點(diǎn)的所產(chǎn)生鏈接關(guān)聯(lián)。然后以前述相同的方式處理該鏈接編碼。在鏈接編碼項(xiàng)處理完以后,解碼模塊28(S11-14)確定從記下最后一個節(jié)點(diǎn)值(S11-11)開始由步驟(S11-13)處理的鏈接編碼部分的總數(shù)是否對應(yīng)于所處理形狀編碼中的最后一個數(shù)字(S11-14)。
如果情況不是這樣,則解碼模塊28(S11-15)從節(jié)點(diǎn)列表讀出下一節(jié)點(diǎn),將該節(jié)點(diǎn)作為結(jié)束節(jié)點(diǎn)添加到當(dāng)前識別出空結(jié)束節(jié)點(diǎn)的鏈接數(shù)據(jù)。嵌入數(shù)據(jù)是以前述方式關(guān)于步驟(S11-9)利用這個節(jié)點(diǎn)號更新的。然后,解碼模塊28更新與所產(chǎn)生柵格關(guān)聯(lián)的邊界列表。在本例中,當(dāng)當(dāng)前節(jié)點(diǎn)同時是上下邊界列表的成員時,與步驟(S11-9)的更新相反,這種更新涉及將新識別的節(jié)點(diǎn)添加到下邊界列表。
因而,在上述例子的情況下,在來自鏈接列表的另兩個鏈接編碼數(shù)據(jù)項(xiàng)處理完之后,以下數(shù)據(jù)將被存儲當(dāng)前節(jié)點(diǎn)0節(jié)點(diǎn)列表[1...]鏈接列表[...]形狀編碼
嵌入數(shù)據(jù)層1
層2 [2,1]層3 [3]鏈接數(shù)據(jù)(0,2),(2,3),(0,1),(1,-)上邊界
下邊界
最后一個節(jié)點(diǎn)3當(dāng)從記下最后一個節(jié)點(diǎn)(S11-11)開始由步驟(S11-13)處理的鏈接編碼數(shù)據(jù)部分的總數(shù)對應(yīng)于由所處理形狀編碼最后一個值識別的數(shù)字時,解碼模塊28(S11-16)修正以空值作為結(jié)束節(jié)點(diǎn)的鏈接數(shù)據(jù)以識別最后一個節(jié)點(diǎn),并將該最后一個節(jié)點(diǎn)添加到下邊界列表。
因此,關(guān)于上例,由解碼模塊28存儲在數(shù)據(jù)存儲器20中的嵌入數(shù)據(jù)、鏈接數(shù)據(jù)和上下邊界列表如下嵌入數(shù)據(jù)層1
層2[2,1]層3[3]鏈接數(shù)據(jù) (0,2),(2,3),(0,1),(1,3)上邊界
下邊界
在這個階段由這種嵌入數(shù)據(jù)和鏈接數(shù)據(jù)編碼的柵格結(jié)構(gòu)由圖14A說明,其中對應(yīng)于同一層的節(jié)點(diǎn)在垂直列中示出,而鏈接數(shù)據(jù)由連接該鏈接數(shù)據(jù)起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的箭頭說明。
比較圖14A與圖10A的結(jié)構(gòu),很顯然所產(chǎn)生的結(jié)構(gòu)對應(yīng)于圖10A的陰影節(jié)點(diǎn)和完整箭頭。進(jìn)一步比較本例中的初始節(jié)點(diǎn)列表,鏈接列表及形狀編碼與圖10A例子中對應(yīng)的節(jié)點(diǎn)列表、鏈接列表及形狀編碼,很顯然通過以所述方式處理為結(jié)構(gòu)產(chǎn)生的節(jié)點(diǎn)列表、形狀編碼和鏈接列表使該結(jié)構(gòu)可以重建。
在包括用于源自柵格中第一節(jié)點(diǎn)的鏈接的形狀編碼的第一組三位數(shù)被解碼且對應(yīng)的柵格結(jié)構(gòu)產(chǎn)生以后,解碼模塊(S11-7)確定是否所有編碼數(shù)據(jù)都已處理。
如果情況不是這樣,參考圖11C,解碼模塊28(S11-17)從形狀編碼42讀出下一數(shù)字。然后,解碼模塊28以前述相同的方式關(guān)于步驟(S11-2)更新當(dāng)前節(jié)點(diǎn)號。即,如果從形狀編碼列表42讀出的數(shù)字是0,則不發(fā)生更新。如果該數(shù)字是正或負(fù)數(shù),則選擇已編碼結(jié)構(gòu)邊界上的另一節(jié)點(diǎn),所選節(jié)點(diǎn)是上或下邊界列表中的一個節(jié)點(diǎn)。
因而,在圖14A結(jié)構(gòu)的情況下,如果形狀編碼中的下一數(shù)字是1,當(dāng)前節(jié)點(diǎn)號當(dāng)前設(shè)成0并存儲了上下邊界列表
和
,則當(dāng)前節(jié)點(diǎn)號將設(shè)成2。
在當(dāng)前節(jié)點(diǎn)號更新以后(S11-17),解碼模塊28(S11-18)確定由當(dāng)前節(jié)點(diǎn)號識別的節(jié)點(diǎn)是否對應(yīng)于邊界列表中的最后一個節(jié)點(diǎn)。如果情況是這樣,則解碼模塊28(S11-3-S11-6)以與前述完全相同的方式關(guān)于步驟(S11-3-S11-16)處理形狀編碼中的下兩個數(shù)字及鏈接列表中的關(guān)聯(lián)鏈接編碼和節(jié)點(diǎn)列表44中的關(guān)聯(lián)節(jié)點(diǎn)。
如果由當(dāng)前節(jié)點(diǎn)號識別的節(jié)點(diǎn)不等于由邊界列表中最后一個數(shù)字識別的節(jié)點(diǎn),則讀出形狀編碼42的下兩個數(shù)字。然后(S11-19)如果有的話,則解碼模塊28確定要處理并添加到所產(chǎn)生結(jié)構(gòu)中最后一個節(jié)點(diǎn)的鏈接數(shù)。
具體而言,最初解碼模塊28確定當(dāng)前節(jié)點(diǎn)是否是上邊界列表中的節(jié)點(diǎn)。如果情況是這樣,則形狀編碼兩個數(shù)字中的第二個數(shù)字與將當(dāng)前節(jié)點(diǎn)和上邊界列表末尾隔開的節(jié)點(diǎn)數(shù)進(jìn)行比較。
在形狀編碼的該第二個數(shù)字超過將當(dāng)前節(jié)點(diǎn)與上邊界列表中最后一個節(jié)點(diǎn)隔開的節(jié)點(diǎn)數(shù)時,確定形狀編碼中第一個數(shù)字與將當(dāng)前節(jié)點(diǎn)與上邊界列表末尾隔開的節(jié)點(diǎn)數(shù)的差值,其設(shè)置成要處理的鏈接數(shù)。
如果當(dāng)前節(jié)點(diǎn)不是由上邊界列表中的節(jié)點(diǎn)識別,則確定將當(dāng)前節(jié)點(diǎn)與下邊界列表末尾隔開的節(jié)點(diǎn)數(shù)。然后這個數(shù)字與形狀編碼兩個數(shù)字中的第一個數(shù)字進(jìn)行比較。在形狀編碼的第一個數(shù)字超過將當(dāng)前節(jié)點(diǎn)與下邊界列表末尾隔開的節(jié)點(diǎn)數(shù)時,形狀編碼第一個數(shù)字與將當(dāng)前節(jié)點(diǎn)和下邊界列表末尾隔開的節(jié)點(diǎn)數(shù)之間的差值設(shè)置成要處理的鏈接數(shù)。
因而,例如,在處理形狀編碼[1,3,3]的情況下,其中當(dāng)前節(jié)點(diǎn)設(shè)成節(jié)點(diǎn)2,上下邊界等于以下上邊界
下邊界
當(dāng)前節(jié)點(diǎn)2將識別為在上邊界中并且由節(jié)點(diǎn)3和4與上邊界的末尾隔開。由于節(jié)點(diǎn)總數(shù)2小于形狀編碼[1,3,3]中最后一個數(shù)字,因此額外的節(jié)點(diǎn)將識別為必須從已產(chǎn)生結(jié)構(gòu)的最后一個節(jié)點(diǎn)(節(jié)點(diǎn)4)添加到該結(jié)構(gòu)。
相反,如果上例中當(dāng)前節(jié)點(diǎn)識別為節(jié)點(diǎn)1且相同的形狀編碼對相同的邊界進(jìn)行處理,則由于上例節(jié)點(diǎn)1是由節(jié)點(diǎn)2、3和4與上邊界中的最后一個節(jié)點(diǎn)隔開的,因此比較這個節(jié)點(diǎn)數(shù)與所處理形狀編碼中的最后一個數(shù)字將識別出沒有節(jié)點(diǎn)要添加到邊界列表的最后一個節(jié)點(diǎn)。
在要添加的鏈接總數(shù)確定以后(S11-19),解碼模塊28確定是否所有必需的鏈接都已處理(S11-20)。如果情況不是這樣,則解碼模塊28(S11-21)繼續(xù)讀是列表頭符號的下一鏈接的鏈接編碼數(shù)據(jù),直到由字母E表示的符號總數(shù)超過由其它字母表示的符號總數(shù)。然后參考圖12以前述相同的方式處理這個鏈接編碼。
然后讀節(jié)點(diǎn)列表44中的下一節(jié)點(diǎn)號(S11-22)。然后這個節(jié)點(diǎn)號用于更新將空值識別為結(jié)束節(jié)點(diǎn)的任何鏈接數(shù)據(jù)。然后識別與更新鏈接關(guān)聯(lián)的層數(shù)據(jù),而對應(yīng)于讀出節(jié)點(diǎn)號的數(shù)字添加到嵌入數(shù)據(jù)中與由所更新鏈接層數(shù)據(jù)識別的層相鄰的層的節(jié)點(diǎn)列表。
當(dāng)嵌入數(shù)據(jù)和鏈接數(shù)據(jù)都更新以后,在當(dāng)前節(jié)點(diǎn)不由上邊界列表中的節(jié)點(diǎn)識別時節(jié)點(diǎn)號添加到上邊界列表的末尾,或者在當(dāng)前節(jié)點(diǎn)由上邊界列表中的節(jié)點(diǎn)號識別時添加到下邊界列表。
然后解碼模塊28重新確定(S11-20)由步驟(S11-21)處理的鏈接數(shù)據(jù)部分的總數(shù)是否對應(yīng)于需要處理的必需鏈接數(shù)。如果情況不是這樣,則還有鏈接數(shù)據(jù)被處理(S11-21),而邊界數(shù)據(jù)、嵌入數(shù)據(jù)和鏈接數(shù)據(jù)都更新(S11-21,S11-22)。
因而,例如,參考圖14B,在由節(jié)點(diǎn)0、2、3和1識別的區(qū)域的形狀編碼已如上所述關(guān)于圖14A處理以后,如果要處理的下一形狀編碼是編碼[1,2,2]。在這種情況下,第一數(shù)字1指示從沿解碼區(qū)域順時針移動的原始起始節(jié)點(diǎn)0到達(dá)節(jié)點(diǎn)2的偏移。這個節(jié)點(diǎn)在上邊界0、2、3中,并由單個鏈接2-3與該邊界的最后一個節(jié)點(diǎn)隔開。
然后,比較形狀編碼中的最后一個數(shù)字,在這個例子中是2,與將當(dāng)前節(jié)點(diǎn)2和解碼區(qū)域中最后一個節(jié)點(diǎn)隔開的鏈接數(shù),在這個例子中是單個鏈接。由于形狀編碼識別出比將當(dāng)前節(jié)點(diǎn)與解碼區(qū)域中最后一個節(jié)點(diǎn)隔開的鏈接數(shù)大的數(shù)字,因此需要添加到最后一個節(jié)點(diǎn)的鏈接數(shù)確定為該差值,在這種情況下是另一個鏈接。
然后處理一組鏈接數(shù)據(jù),從節(jié)點(diǎn)表讀出下一節(jié)點(diǎn)并添加到下一層。圖14B是鏈接數(shù)據(jù)DEE已處理且下一節(jié)點(diǎn)號7已從節(jié)點(diǎn)列表44讀出后圖14A更新結(jié)構(gòu)的說明。
在任何必需的節(jié)點(diǎn)已連接添加到前一編碼區(qū)域中的最后一個節(jié)點(diǎn)以后,解碼模塊(S11-13)從鏈接列表43讀出符號E比由其它字母表示的符號多的下一部分。然后以前述方式進(jìn)行處理。
然后(S11-14)解碼模塊28確定是否所有必需的附加鏈接都已處理,如果情況不是這樣,則解碼模塊28繼續(xù)從節(jié)點(diǎn)列表讀下一字節(jié)并利用新讀出的節(jié)點(diǎn)更新上或下邊界(S11-15)。
更具體而言,在當(dāng)前節(jié)點(diǎn)由上邊界列表上不是列表頭數(shù)字的數(shù)字識別時,由步驟(S11-13)處理的鏈接編碼部分?jǐn)?shù)同從形狀編碼讀出的數(shù)字對中的第一個數(shù)字進(jìn)行比較。如果所處理鏈接編碼的部分?jǐn)?shù)等于這個數(shù)字,則不添加更多節(jié)點(diǎn)。如果情況不是這樣,則讀出下一節(jié)點(diǎn),并且以前述方式預(yù)更新的嵌入數(shù)據(jù)和鏈接數(shù)據(jù)及上邊界列表隨后更新。
當(dāng)?shù)谝淮蔚逻吔缌斜頃r,從當(dāng)前節(jié)點(diǎn)到上邊界中最后一個節(jié)點(diǎn)的所有節(jié)點(diǎn)都刪除,從節(jié)點(diǎn)列表44中讀出的新節(jié)點(diǎn)附加到上邊界的節(jié)點(diǎn)列表。對于所有后續(xù)迭代,不發(fā)生刪除,而且新節(jié)點(diǎn)添加到上邊界列表。
相反,當(dāng)節(jié)點(diǎn)添加到下邊界列表中不同時在上邊界列表中的當(dāng)前節(jié)點(diǎn)時,由步驟(S11-13)處理的鏈接編碼部分?jǐn)?shù)同從形狀編碼讀出的數(shù)字對的第二個數(shù)字進(jìn)行比較。如果鏈接編碼部分?jǐn)?shù)等于這個數(shù)字,則不添加更多節(jié)點(diǎn)。如果情況不是這樣,則下一節(jié)點(diǎn)從節(jié)點(diǎn)列表讀出,而嵌入數(shù)據(jù)和鏈接數(shù)據(jù)如前所述更新。然后更新下邊界列表。這種更新是對第一次迭代從當(dāng)前節(jié)點(diǎn)到下邊界列表末尾的所有節(jié)點(diǎn)都刪除,新讀出的節(jié)點(diǎn)添加到列表末尾。在后續(xù)迭代不發(fā)生刪除,且新節(jié)點(diǎn)號添加到列表末尾。
當(dāng)確定解碼模塊28已處理完所需的鏈接編碼部分?jǐn)?shù)時(S11-14),更新所產(chǎn)生的具有空結(jié)束節(jié)點(diǎn)的鏈接,以便有識別不包括當(dāng)前節(jié)點(diǎn)的邊界列表中的最后一個節(jié)點(diǎn)的結(jié)束節(jié)點(diǎn)。然后,不包括當(dāng)前節(jié)點(diǎn)的邊界列表中的最后一個節(jié)點(diǎn)附加到包括當(dāng)前節(jié)點(diǎn)的邊界列表的末尾。
因而,例如,處理具有先前產(chǎn)生的圖14A的結(jié)構(gòu)和形狀編碼已處理部分的編碼1、2、2,以產(chǎn)生圖14B所示的結(jié)構(gòu),要添加到當(dāng)前節(jié)點(diǎn),節(jié)點(diǎn)2,的最后兩個鏈接將被識別并一個接一個處理。
在這樣做的時候,在節(jié)點(diǎn)列表中下一節(jié)點(diǎn)是[6]且鏈接編碼下一部分是[DEEE]時,上邊界列表將首先修正變成
。在兩個所需鏈接都處理之后上邊界將變成
。結(jié)果產(chǎn)生圖14C的結(jié)構(gòu)。
因而,考慮以下形狀編碼,鏈接列表和節(jié)點(diǎn)列表形狀編碼
鏈接編碼[EEEEDEEDEEEPEEPMEEPEEMPEDEEPEDEE]節(jié)點(diǎn)列表
這對應(yīng)于通過編碼圖8H結(jié)構(gòu)所產(chǎn)生的形狀編碼、節(jié)點(diǎn)列表和鏈接列表,圖14A-14F的結(jié)構(gòu)將一個接一個逐步建立。
更具體而言,在處理以下之后形狀編碼
鏈接編碼 [EEEEDEEDEEE]節(jié)點(diǎn)列表
圖14C的結(jié)構(gòu)將產(chǎn)生,所處理的節(jié)點(diǎn)將識別節(jié)點(diǎn)2。
形狀編碼的下一數(shù)字[1]將識別節(jié)點(diǎn)6為要處理的下一節(jié)點(diǎn)。下兩個數(shù)字1,2將指示要添加到節(jié)點(diǎn)7的鏈接。處理鏈接編碼下一部分[PEE]并添加下兩個節(jié)點(diǎn)將產(chǎn)生圖14D的結(jié)構(gòu)。
然后處理鏈接編碼下一部分[PMEEPEE],添加從節(jié)點(diǎn)6出發(fā)的鏈接。圖14E說明了處理該鏈接編碼的同時所產(chǎn)生的結(jié)構(gòu),其中鏈接編碼[PEE]保留要與鏈接(8,-)關(guān)聯(lián)進(jìn)行處理。
然后處理剩余數(shù)據(jù),最終將創(chuàng)建圖14F的結(jié)構(gòu)。
當(dāng)確定最終形狀編碼處理完以后(S11-7),解碼模塊28開始(S11-23)除去添加到該結(jié)構(gòu)的虛鏈接和虛節(jié)點(diǎn)。
更具體而言,解碼模塊識別出現(xiàn)在兩個節(jié)點(diǎn)列表中的虛節(jié)點(diǎn)及由存儲在數(shù)據(jù)存儲器20中的數(shù)據(jù)所識別的虛節(jié)點(diǎn)/虛鏈接38,并從由解碼模塊28為所解碼結(jié)構(gòu)創(chuàng)建的嵌入數(shù)據(jù)除去表示對應(yīng)的所產(chǎn)生節(jié)點(diǎn)的數(shù)據(jù)。無論何時除去一虛節(jié)點(diǎn),將該虛節(jié)點(diǎn)識別為起始節(jié)點(diǎn)或結(jié)束節(jié)點(diǎn)的任何鏈接數(shù)據(jù)也要刪除。
然后,對應(yīng)于虛鏈接38的鏈接也從鏈接數(shù)據(jù)中刪除,對應(yīng)于交叉鏈接39的新鏈接添加到存儲在嵌入表36中的數(shù)據(jù)。
因而,例如,在從形狀編碼數(shù)據(jù)42、鏈接列表43和節(jié)點(diǎn)列表44產(chǎn)生圖14F所說明的柵格結(jié)構(gòu)以后,如果以下虛鏈接/節(jié)點(diǎn)數(shù)據(jù)38和交叉鏈接數(shù)據(jù)39要存儲虛節(jié)點(diǎn) [D1,D2,D3,D4,D5]虛鏈接 (5,7)交叉鏈接 (5,6)在處理虛節(jié)點(diǎn)和鏈接數(shù)據(jù)38及交叉鏈接數(shù)據(jù)39之后,由嵌入表36中所產(chǎn)生嵌入數(shù)據(jù)和鏈接數(shù)據(jù)定義的柵格結(jié)構(gòu)將定義由圖14G說明的結(jié)構(gòu)。
比較圖14G的結(jié)構(gòu)與圖6A的原始結(jié)構(gòu),很顯然圖6A和圖14G說明的柵格是完全相同的,因?yàn)楸M管有些層中的節(jié)點(diǎn)稍微重新排了序,但相同的節(jié)點(diǎn)都出現(xiàn)在相同的層中。而且,對于圖6A節(jié)點(diǎn)之間的每個連接,在圖14G中對于具有相同編號的節(jié)點(diǎn)都有對應(yīng)的連接。因此,由圖14G識別的柵格結(jié)構(gòu)是最初由嵌入模塊22處理的語音節(jié)點(diǎn)數(shù)據(jù)30所表示的原始柵格結(jié)構(gòu)的表示,圖6A也是其一種表示。此外,由于圖14G的柵格結(jié)構(gòu)是從定義的形狀編碼42、鏈接列表43和節(jié)點(diǎn)列表44的解碼操作的結(jié)果,因此當(dāng)形狀編碼42、鏈接列表43和節(jié)點(diǎn)列表44被另一解碼模塊48以相同的方式處理,必然產(chǎn)生一種結(jié)構(gòu)。
因此,由解碼模塊28產(chǎn)生的最終柵格結(jié)構(gòu)可用于確定該柵格結(jié)構(gòu)鏈接的特定順序,因此由語音鏈接數(shù)據(jù)32與那些特定鏈接關(guān)聯(lián)的數(shù)據(jù)可以特定順序傳遞到壓縮模塊12。
輸出模塊執(zhí)行的處理在語音柵格結(jié)構(gòu)的最終表示由解碼模塊28產(chǎn)生并存儲在嵌入表36中以后,調(diào)用輸出模塊29。然后輸出模塊29將先前由形狀編碼模塊26產(chǎn)生的形狀編碼42和鏈接列表43傳遞到數(shù)據(jù)壓縮模塊12。然后輸出模塊29將識別虛鏈接38和交叉鏈接39的數(shù)據(jù)及定時數(shù)據(jù)34傳遞到數(shù)據(jù)轉(zhuǎn)換模塊12。
然后,輸出模塊29利用節(jié)點(diǎn)列表44依次選擇由語音節(jié)點(diǎn)數(shù)據(jù)30與語音柵格中每個節(jié)點(diǎn)關(guān)聯(lián)的其它數(shù)據(jù)項(xiàng)。具體而言,讀出節(jié)點(diǎn)列表44中的第一個節(jié)點(diǎn),然后由語音節(jié)點(diǎn)數(shù)據(jù)30與該節(jié)點(diǎn)關(guān)聯(lián)的其它數(shù)據(jù)傳遞到數(shù)據(jù)壓縮模塊。然后識別節(jié)點(diǎn)列表中的下一節(jié)點(diǎn),由語音節(jié)點(diǎn)數(shù)據(jù)30與該節(jié)點(diǎn)關(guān)聯(lián)的其它數(shù)據(jù)傳遞到數(shù)據(jù)壓縮模塊12。在虛節(jié)點(diǎn)出現(xiàn)在節(jié)點(diǎn)列表44中的情況下,將節(jié)點(diǎn)識別為虛節(jié)點(diǎn)的數(shù)據(jù)傳遞到數(shù)據(jù)壓縮模塊。這種處理重復(fù)進(jìn)行,直到到達(dá)節(jié)點(diǎn)列表44的末尾。
最后,輸出模塊29通過起始節(jié)點(diǎn)號排序存儲在嵌入表36中的柵格結(jié)構(gòu)的鏈接數(shù)據(jù),并以該鏈接結(jié)束節(jié)點(diǎn)出現(xiàn)在與嵌入數(shù)據(jù)層關(guān)聯(lián)的列表中的順序排序具有相同起始節(jié)點(diǎn)號的鏈接數(shù)據(jù)。
因而,例如,在圖14G柵格的情況下,圖14G所示鏈接將以以下順序放置(0,2),(0,1),(2,3),(2,6),(1,3),(1,4),(1,5),(3,7),(4,7),(5,6),(6,8),(6,8),(8,10),(7,9)然后,輸出模塊29為每個有序鏈接識別語音鏈接數(shù)據(jù)32中的對應(yīng)鏈接,并將與那些鏈接中每個關(guān)聯(lián)的數(shù)據(jù)以對應(yīng)于鏈接順序的順序輸出到數(shù)據(jù)壓縮模塊。
因而,以這種方式,使數(shù)據(jù)壓縮模塊12接收表示柵格結(jié)構(gòu)的形狀編碼42和鏈接列表43、定時數(shù)據(jù)34的列表、添加到或從該柵格結(jié)構(gòu)除去的鏈接和節(jié)點(diǎn)38及交叉鏈接39、虛數(shù)據(jù)34、以定義好的順序與原始語音柵格中每個節(jié)點(diǎn)和鏈接關(guān)聯(lián)的其它數(shù)據(jù)及與原始語音柵格中每個鏈接關(guān)聯(lián)的數(shù)據(jù)。
在以壓縮形式由網(wǎng)絡(luò)3發(fā)送到文檔存儲單元2之前,所有這些數(shù)據(jù)都由數(shù)據(jù)壓縮模塊12以傳統(tǒng)方式進(jìn)行處理。
文檔存儲單元的處理現(xiàn)在將參考圖15具體描述文檔存儲單元2響應(yīng)壓縮語音柵格數(shù)據(jù)的接收而執(zhí)行的處理。
最初(S15-1),當(dāng)經(jīng)網(wǎng)絡(luò)3從客戶計(jì)算機(jī)1接收到壓縮數(shù)據(jù)時,該壓縮數(shù)據(jù)由解壓縮單元15以傳統(tǒng)方式解壓縮。
解壓縮單元15對數(shù)據(jù)的解壓縮使文檔存儲單元2能夠再生形狀編碼42、鏈接列表43、虛節(jié)點(diǎn)和鏈接列表38、交叉鏈接39、定時數(shù)據(jù)34、由語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32分別與鏈接和節(jié)點(diǎn)關(guān)聯(lián)的原始有序數(shù)據(jù)。
由語音節(jié)點(diǎn)數(shù)據(jù)30和語音節(jié)點(diǎn)關(guān)聯(lián)的其它數(shù)據(jù)再生成由柵格處理器輸出到數(shù)據(jù)壓縮模塊12的順序。其它數(shù)據(jù)的每一項(xiàng)都與一個節(jié)點(diǎn)號關(guān)聯(lián),該節(jié)點(diǎn)號以數(shù)字順序產(chǎn)生。這種數(shù)據(jù)由再生模塊17存儲。由再生模塊17存儲的還有通過解壓縮單元15處理壓縮數(shù)據(jù)獲得的定時數(shù)據(jù)34、虛鏈接和節(jié)點(diǎn)38、交叉鏈接39、形狀編碼42及鏈接列表43。
然后(S15-2)再生模塊17繼續(xù)處理所接收的形狀編碼42和鏈接列表43。除了在柵格處理器11需要新節(jié)點(diǎn)時不是從節(jié)點(diǎn)列表44選擇數(shù)字而是使用下一個數(shù)字順序的可用數(shù)字以外,再生模塊17的處理與前述由解碼模塊28執(zhí)行的處理是完全一樣的,因此這里將不再重復(fù)。
作為處理形狀編碼42和鏈接列表43的結(jié)果,將由再生模塊17產(chǎn)生定義由客戶計(jì)算機(jī)1的柵格處理器11編碼的柵格結(jié)構(gòu)的嵌入數(shù)據(jù)和鏈接數(shù)據(jù)。然后,這些數(shù)據(jù)用于為由再生模塊17存儲的語音節(jié)點(diǎn)數(shù)據(jù)30的每一項(xiàng)創(chuàng)建鏈接節(jié)點(diǎn)列表和定時數(shù)據(jù)。
然后(S15-3),柵格處理器11如前所述關(guān)于客戶計(jì)算機(jī)1柵格處理器11的輸出模塊29的處理通過起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)排序嵌入表36中的鏈接數(shù)據(jù)。然后,通過將以其接收順序與鏈接關(guān)聯(lián)的其它數(shù)據(jù)與識別嵌入表36中鏈接的有序數(shù)據(jù)關(guān)聯(lián)產(chǎn)生語音鏈接數(shù)據(jù)32。這數(shù)據(jù)由再生模塊17存儲為語音鏈接數(shù)據(jù)32。
在語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32由再生模塊17重建后,該語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32傳遞到文檔檢索單元19。然后(S15-4)文檔檢索單元19利用接收到的語音節(jié)點(diǎn)數(shù)據(jù)30和語音鏈接數(shù)據(jù)32選擇一文檔進(jìn)行檢索,該文檔隨后經(jīng)網(wǎng)絡(luò)3傳遞到客戶計(jì)算機(jī)1。因而,以這種方式,由客戶計(jì)算機(jī)1產(chǎn)生的語音柵格用于訪問存儲在文檔存儲單元2中的文檔,為了經(jīng)網(wǎng)絡(luò)3發(fā)送,為語音信號產(chǎn)生的語音柵格被編碼和壓縮。
其它實(shí)施方式及修改盡管在上述實(shí)施方式中與節(jié)點(diǎn)和鏈接關(guān)聯(lián)的數(shù)據(jù)已經(jīng)描述為以特定方式排序,但是應(yīng)當(dāng)理解一旦由形狀編碼和鏈接列表表示的柵格結(jié)構(gòu)形狀已經(jīng)以嵌入表36中嵌入數(shù)據(jù)和鏈接數(shù)據(jù)的形式確定,則任何合適的排序都可以用于將特定數(shù)據(jù)分配給識別出的節(jié)點(diǎn)或鏈接。
盡管在上述實(shí)施方式中嵌入模塊22的處理已描述為基于作為對前一層中節(jié)點(diǎn)位置平均值計(jì)算的順序號對層中的節(jié)點(diǎn)進(jìn)行排序,但是應(yīng)當(dāng)理解用于最小化柵格結(jié)構(gòu)嵌入中交叉鏈接數(shù)的任何傳統(tǒng)技術(shù)都可以用于執(zhí)行這種排序。因而,例如,排序可以根據(jù)中值而不是平均值執(zhí)行。
在上述實(shí)施方式中,嵌入表36描述為重新排序以最小化初始嵌入表示中的交叉鏈接數(shù)。應(yīng)當(dāng)理解,這一步是為了最小化隨后經(jīng)網(wǎng)絡(luò)3發(fā)送到文檔存儲單元2的交叉鏈接數(shù)據(jù)39的量而執(zhí)行的。但是,應(yīng)當(dāng)理解該重新排序步驟可以忽略,而是更多交叉鏈接數(shù)據(jù)39經(jīng)網(wǎng)絡(luò)3發(fā)送。
在上述編碼系統(tǒng)中,虛節(jié)點(diǎn)是對每個編碼的虛節(jié)點(diǎn)利用字母DE編碼的。但應(yīng)當(dāng)理解,更短的編碼D可以使用。在這種實(shí)施方式中,用于不同鏈接的鏈接編碼數(shù)據(jù)可以通過連續(xù)從鏈接列表44讀符號讀出,直到符號E的個數(shù)超過符號M和P的個數(shù)。當(dāng)處理鏈接編碼時,每次遇到字母D并從所處理鏈接編碼的頭除去字母D都將與鏈接關(guān)聯(lián)的層數(shù)據(jù)更新1。
還應(yīng)當(dāng)理解,在鏈接編碼中有同一字母的多個拷貝時,鏈接編碼數(shù)據(jù)可以由識別不同字母的第一編碼和對每個不同字母表示指示一特定字母重復(fù)次數(shù)的數(shù)字的第二編碼來表示。
因而,例如,在鏈接列表[DDDDDDEEEEEEE]的情況下,該鏈接列表可以兩個列表的形式代替表示,一個是列表[DE],另一個是[6,7]。
在這種實(shí)施方式的情況下,在多組字母D彼此相鄰地編碼時,與鏈接關(guān)聯(lián)的層數(shù)據(jù)可以通過將層數(shù)據(jù)增加連續(xù)D的個數(shù)自動更新,而不是分別處理每個字母D。
此外,在其它實(shí)施方式中,這兩個列表可以包括字母列表和數(shù)字列表,其中只有虛節(jié)點(diǎn)的副本字母從字母列表中除去,而數(shù)字列表識別虛節(jié)點(diǎn)重復(fù)編碼的次數(shù)。在如上這種實(shí)施方式中,用于虛節(jié)點(diǎn)的字母可以通過將層數(shù)據(jù)增加與數(shù)字列表中該字母關(guān)聯(lián)的數(shù)字一步處理。
盡管在上述實(shí)施方式中將新區(qū)域添加到所產(chǎn)生柵格結(jié)構(gòu)的偏移值描述為正或負(fù)數(shù),但是應(yīng)當(dāng)理解在可選實(shí)施方式中可能只使用正數(shù),其中該偏移識別在特定方向?qū)⒂糜诋a(chǎn)生區(qū)域的最后一個節(jié)點(diǎn)和用于產(chǎn)生區(qū)域的下一節(jié)點(diǎn)隔開的圍繞邊界的節(jié)點(diǎn)數(shù)。
可選地,不利用當(dāng)前節(jié)點(diǎn)和邊界列表上要處理的下一節(jié)點(diǎn)的相對位置的偏移值,可以使用相對于例如節(jié)點(diǎn)列表中當(dāng)前節(jié)點(diǎn)的偏移值。或者更一般地,任何能夠使下一節(jié)點(diǎn)從偏移值和當(dāng)前值識別出來的合適偏移都可以使用。
在上述實(shí)施方式中,當(dāng)鏈接編碼數(shù)據(jù)40產(chǎn)生且任兩個鏈接合并時,新鏈接編碼數(shù)據(jù)描述為通過以依賴于那些鏈接的鏈接編碼數(shù)據(jù)40長度的順序附加與被除去鏈接關(guān)聯(lián)的鏈接編碼數(shù)據(jù)來產(chǎn)生。以這種方式為新鏈接產(chǎn)生鏈接編碼數(shù)據(jù)40是優(yōu)選的,因?yàn)檫@往往產(chǎn)生重復(fù)的字母序列,因而很容易利用傳統(tǒng)技術(shù)壓縮。但是,產(chǎn)生該編碼數(shù)據(jù)40的其它方法也可以使用,例如選擇一種鏈接編碼數(shù)據(jù)基于嵌入表36中鏈接排序附加的順序。
在上述實(shí)施方式中,虛節(jié)點(diǎn)描述為添加到連接與非相鄰定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)的所有鏈接。然后,所有虛節(jié)點(diǎn)都利用該鏈接編碼數(shù)據(jù)編碼。然后,所產(chǎn)生鏈接編碼數(shù)據(jù)的后續(xù)解碼用于確保當(dāng)節(jié)點(diǎn)再生時它們與正確的定時關(guān)聯(lián)。
應(yīng)當(dāng)理解,在添加對不止一個鏈接是結(jié)束節(jié)點(diǎn)的節(jié)點(diǎn)時,確保當(dāng)鏈接編碼處理時以一節(jié)點(diǎn)作為結(jié)束節(jié)點(diǎn)的至少一個所產(chǎn)生鏈接與層數(shù)據(jù)關(guān)聯(lián)是足夠的,因此該結(jié)束節(jié)點(diǎn)可以正確地放置在層中,從而與正確的定時數(shù)據(jù)關(guān)聯(lián)。
在一種可選實(shí)施方式中,在柵格表示產(chǎn)生以后,每個節(jié)點(diǎn)在所有路徑中都由相同個數(shù)的節(jié)點(diǎn)與起始節(jié)點(diǎn)隔開。然后,所產(chǎn)生的柵格結(jié)構(gòu)可以進(jìn)行處理,以除去多個虛節(jié)點(diǎn),同時確保柵格結(jié)構(gòu)中每個適當(dāng)?shù)墓?jié)點(diǎn)仍然象前面一樣在至少一條到達(dá)該節(jié)點(diǎn)的路徑上由相同個數(shù)的節(jié)點(diǎn)與起始節(jié)點(diǎn)隔開。然后簡化的柵格可以前述相同的方式編碼。
更具體而言,從第一層開始,第一層中的所有實(shí)際節(jié)點(diǎn)都可以被識別并與識別已知節(jié)點(diǎn)層的數(shù)據(jù)關(guān)聯(lián)。對于具有與識別已知層的數(shù)據(jù)關(guān)聯(lián)的實(shí)際起始節(jié)點(diǎn)的每個鏈接,由那些鏈接識別的實(shí)際結(jié)束節(jié)點(diǎn)也與識別實(shí)際結(jié)束節(jié)點(diǎn)具有已知層的數(shù)據(jù)關(guān)聯(lián)。
當(dāng)所有鏈接都考慮完以后,可以識別不與已知層數(shù)據(jù)關(guān)聯(lián)的每個實(shí)際節(jié)點(diǎn)。從第二層中的實(shí)際節(jié)點(diǎn)開始,如果任何實(shí)際節(jié)點(diǎn)不與已知層數(shù)據(jù)關(guān)聯(lián),則可以執(zhí)行深度優(yōu)先搜索,以便找出從前面任一層中與已知層數(shù)據(jù)關(guān)聯(lián)的一實(shí)際節(jié)點(diǎn)到所考慮節(jié)點(diǎn)的最短路徑。然后,該路徑中的所有虛節(jié)點(diǎn)都識別為保留的,所處理的實(shí)際節(jié)點(diǎn)與已知層數(shù)據(jù)關(guān)聯(lián)。然后這種處理對每個后續(xù)的層重復(fù)進(jìn)行,直到所有實(shí)際節(jié)點(diǎn)都識別為具有已知的層。然后沒有識別為保留的虛節(jié)點(diǎn)可以刪除。
當(dāng)解碼柵格時,無論何時新節(jié)點(diǎn)要添加到嵌入表36中的嵌入數(shù)據(jù),包含該新節(jié)點(diǎn)作為結(jié)束節(jié)點(diǎn)的鏈接都可以被識別,新節(jié)點(diǎn)與由從鏈接層數(shù)據(jù)確定的最大數(shù)識別的層關(guān)聯(lián)。在這種實(shí)施方式中產(chǎn)生的結(jié)果結(jié)構(gòu)將與以上實(shí)施方式中所述方式產(chǎn)生的結(jié)構(gòu)完全相同。但是,由于多個虛節(jié)點(diǎn)已除去而沒有編碼,因此必需由壓縮單元12壓縮的數(shù)據(jù)量將比較小,因而可以實(shí)現(xiàn)更好的壓縮。
盡管在上述實(shí)施方式中交叉鏈接描述為在確定鏈接編碼之前除去,但在一種可選實(shí)施方式中交叉鏈接可以在鏈接編碼產(chǎn)生時被識別和編碼。在這種實(shí)施方式中,(C,起始節(jié)點(diǎn),結(jié)束節(jié)點(diǎn))形式的鏈接編碼可以用于識別已編碼的交叉鏈接。當(dāng)解碼鏈接編碼時,交叉鏈接可以從識別兩節(jié)點(diǎn)之間交叉鏈接已編碼的這種數(shù)據(jù)再生。
盡管在上述實(shí)施方式中平面圖描述為在作為形狀編碼進(jìn)行編碼之前通過除去線性和并行路徑來產(chǎn)生并簡化,但應(yīng)當(dāng)理解表示柵格部分的平面圖的簡化可以省略。
在這種實(shí)施方式中,在單條線性路徑在兩層之間擴(kuò)展時,可以使用(偏移,鏈接數(shù),0)形式的形狀編碼。在一對鏈接具有相同的起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)時,可以使用(偏移,1,1)形式的形狀編碼。
除編碼(0,1,1)將不再指示從柵格末端擴(kuò)展的單個鏈接,而是形狀編碼為0的最后一個數(shù)字將指示單條路徑添加到柵格末端之外,結(jié)果形狀編碼的后續(xù)處理將基本上與前面所述相同。
在這種實(shí)施方式的情況下,圖6E的柵格將以如下簡單形狀編碼的形式編碼,其中偏移值以前述相同的方式計(jì)算
在所述實(shí)施方式中,柵格從形狀編碼和鏈接編碼的再生描述為通過同時處理形狀編碼和鏈接編碼來建立。在其它實(shí)施方式中,初始柵格結(jié)構(gòu)可以通過只處理形狀編碼來產(chǎn)生,其中鏈接編碼數(shù)據(jù)與初始結(jié)構(gòu)中的鏈接關(guān)聯(lián)。在整個形狀編碼處理完以后,鏈接編碼可以被處理,與初始柵格中節(jié)點(diǎn)關(guān)聯(lián)的層數(shù)據(jù)可以利用鏈接編碼及當(dāng)處理該鏈接編碼時添加的附加節(jié)點(diǎn)和鏈接來更新。
在上述實(shí)施方式中,與鏈接關(guān)聯(lián)的數(shù)據(jù)描述為基于從形狀編碼和鏈接編碼產(chǎn)生的嵌入中鏈接的排序來排序。但是也可以使用其它排序。更具體而言,與柵格中鏈接關(guān)聯(lián)的數(shù)據(jù)可以那些鏈接從形狀編碼和鏈接編碼產(chǎn)生的順序排序。通過以這種方式對數(shù)據(jù)排序,柵格部分的完整表示可以在整個柵格結(jié)構(gòu)確定之前再生。
在以上實(shí)施方式中,所有節(jié)點(diǎn)都處理了,以便向既不是至少一個鏈接起始節(jié)點(diǎn)也不是結(jié)束節(jié)點(diǎn)的節(jié)點(diǎn)添加虛鏈接。在一種可選實(shí)施方式中,不是添加虛鏈接,形狀編碼可以將節(jié)點(diǎn)識別為未連接的。例如,(偏移,0,1)形式的形狀編碼可以用于識別在一個方向上從由該偏移識別的節(jié)點(diǎn)到未連接節(jié)點(diǎn)的鏈接,而(偏移,0,0)形式的編碼可以用于識別相反方向的鏈接。
識別未連接節(jié)點(diǎn)的可選方法可用于識別僅是多個鏈接結(jié)束節(jié)點(diǎn)或僅是起始節(jié)點(diǎn)的節(jié)點(diǎn)。
因而,例如,在對任何鏈接都不是起始節(jié)點(diǎn)的節(jié)點(diǎn)情況下,形狀編碼可用于識別該節(jié)點(diǎn)。例如,可以使用(偏移,-1,-1)形式的編碼。當(dāng)處理下一區(qū)域時,所識別的節(jié)點(diǎn)可以忽略,所識別的節(jié)點(diǎn)從邊界列表中刪除,而一個邊界列表中最后一個節(jié)點(diǎn)添加到另一邊界列表,因此圍繞未連接節(jié)點(diǎn)的區(qū)域可以編碼。
在節(jié)點(diǎn)不是任何鏈接結(jié)束節(jié)點(diǎn)的情況下,可以用形狀編碼識別不是任何鏈接結(jié)束節(jié)點(diǎn)的節(jié)點(diǎn)。然后,與所識別節(jié)點(diǎn)關(guān)聯(lián)的層數(shù)據(jù)可以修改,因此所識別節(jié)點(diǎn)先于它連接的節(jié)點(diǎn)。于是與所識別節(jié)點(diǎn)相鄰的區(qū)域可以正常方式處理。
盡管在以上實(shí)施方式中描述了使原始柵格結(jié)構(gòu)再生的編碼方法,但在有些實(shí)施方式中可以生成只部分對應(yīng)于原始柵格的柵格。因而,例如,在確定原始柵格的嵌入后,多個鏈接可以除去,從而確定無交叉鏈接的平面圖。只有對應(yīng)于由該平面圖所定義結(jié)構(gòu)的語音柵格部分可以上述方式處理。
盡管只有部分原始柵格將由所產(chǎn)生的數(shù)據(jù)表示,但由于交叉鏈接數(shù)據(jù)不需要產(chǎn)生,因此改進(jìn)壓縮是可能的。在這種系統(tǒng)中,除去且不表示的鏈接可以選作與低概率關(guān)聯(lián)的交叉鏈接,因此編碼結(jié)構(gòu)表示所接收信號表示的更可能假設(shè)。
可選地,不是除去交叉鏈接來產(chǎn)生平面圖,可以使用其它方法。在一種例子中,虛節(jié)點(diǎn)可以在所有交叉點(diǎn)引入,交叉鏈接由經(jīng)過所添加虛節(jié)點(diǎn)的鏈接代替。
可選地,在確定一部分柵格不能表示為沒有任何交叉鏈接時,表示那部分的節(jié)點(diǎn)和鏈接的附加拷貝可以產(chǎn)生,交叉鏈接由到所添加部分的鏈接代替。盡管在這種實(shí)施方式中柵格的大小將增加,但因?yàn)閷?yīng)區(qū)域的編碼是相似的,所以為較大柵格產(chǎn)生的數(shù)據(jù)應(yīng)當(dāng)可壓縮到與原始柵格編碼相似的大小。
在上述實(shí)施方式中,描述了減少交叉鏈接數(shù)的節(jié)點(diǎn)的重新排序。以這種方式節(jié)點(diǎn)重新排序的復(fù)雜度依賴于要處理的節(jié)點(diǎn)和鏈接數(shù)。應(yīng)當(dāng)理解在可選實(shí)施方式中,要處理的柵格結(jié)構(gòu)可以在執(zhí)行重新排序步驟之前簡化。
因而,例如,柵格部分的鏈接編碼可以確定,因此,柵格結(jié)構(gòu)中表示的節(jié)點(diǎn)和鏈接數(shù)可以減少。然后,簡化的柵格可以重新排序,以最小化交叉鏈接。然后,任何剩余的交叉鏈接都可以除去,所處理柵格還可以除去可以由那個時候的鏈接編碼數(shù)據(jù)所表示的任何更多部分。然后可以前述相同方式產(chǎn)生用于剩余柵格結(jié)構(gòu)的形狀編碼。
盡管在上述實(shí)施方式中虛節(jié)點(diǎn)描述為用于使節(jié)點(diǎn)與正確的定時數(shù)據(jù)項(xiàng)關(guān)聯(lián),但其它方法也可以使用。在一種例子中,時間偏移列表可用于為節(jié)點(diǎn)列表中的每個節(jié)點(diǎn)識別該節(jié)點(diǎn)相對于列表中其緊接著前一個節(jié)點(diǎn)的相對層。
盡管在上述實(shí)施方式中已描述了以偏移和上下路徑中多個鏈接的形式識別區(qū)域形狀編碼的數(shù)據(jù),但其它方式也可以用于識別區(qū)域的形狀。
因而,例如,可以使用識別定界一區(qū)域的鏈接數(shù)的數(shù)字及識別還構(gòu)成編碼區(qū)域一部分的編碼區(qū)域邊界的最后一個鏈接的數(shù)據(jù)。然后,在這種系統(tǒng)中產(chǎn)生的形狀需要處理,以便將節(jié)點(diǎn)與定時數(shù)據(jù)關(guān)聯(lián)。這可以通過明確地編碼節(jié)點(diǎn)的定時來實(shí)現(xiàn)。
可選地,在所有虛節(jié)點(diǎn)都保留時,構(gòu)成區(qū)域的上下路徑有必要包含相同個數(shù)的節(jié)點(diǎn)和鏈接。因而,由于另一路徑必需包含相同個數(shù)的節(jié)點(diǎn),因此這種區(qū)域可以識別起始節(jié)點(diǎn)的數(shù)據(jù)和只識別一條路徑中鏈接數(shù)的數(shù)據(jù)的形式編碼。
盡管在以上實(shí)施方式中描述了語音柵格的處理,但應(yīng)當(dāng)理解本發(fā)明是更廣泛可應(yīng)用的。因而,例如,本發(fā)明可用于編碼任何柵格結(jié)構(gòu),其中節(jié)點(diǎn)可以某種順序放置,因此可以創(chuàng)建柵格的嵌入表示。
在沒有定義的起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)及節(jié)點(diǎn)排序的柵格結(jié)構(gòu),如用于對象圖形表示的柵格結(jié)構(gòu),要編碼時,可以確定任意起始節(jié)點(diǎn)、結(jié)束節(jié)點(diǎn)和節(jié)點(diǎn)排序,因此柵格可以處理。
盡管在上述實(shí)施方式中描述了壓縮編碼數(shù)據(jù)的發(fā)送,但應(yīng)當(dāng)理解本發(fā)明同樣適用于要存儲的柵格結(jié)構(gòu)數(shù)據(jù)的壓縮。
盡管參考附圖描述的本發(fā)明實(shí)施方式包括計(jì)算機(jī)裝置和在計(jì)算機(jī)裝置中執(zhí)行的處理,但本發(fā)明還可以擴(kuò)展到計(jì)算機(jī)程序,尤其是在載體上或載體中適于將本發(fā)明付諸實(shí)踐的計(jì)算機(jī)程序。該程序可以是源或?qū)ο蟠a的形式,或者是適于實(shí)現(xiàn)根據(jù)本發(fā)明處理的任何其它形式。載體是能夠攜帶該程序的任何實(shí)體或設(shè)備。
例如,載體可以包括存儲介質(zhì),如ROM,例如CDROM或半導(dǎo)體ROM,或磁記錄介質(zhì),例如軟盤或硬盤。此外,載體可以是發(fā)送載體,如可以通過電或光纜或由無線電或其它裝置傳送的電或光信號。
當(dāng)程序在可以由電纜或其它設(shè)備或裝置直接傳送的信號中體現(xiàn)時,載體可以由這種電纜或其它設(shè)備或裝置構(gòu)成。
可選地,載體可以是其中嵌入了程序的集成電路,該集成電路適于執(zhí)行相關(guān)處理或用于相關(guān)處理的執(zhí)行。
權(quán)利要求
1.一種產(chǎn)生識別數(shù)據(jù)的方法,包括接收定義包括多個由鏈接連接的節(jié)點(diǎn)的柵格結(jié)構(gòu)的柵格數(shù)據(jù),所述鏈接與識別單元的數(shù)據(jù)關(guān)聯(lián);為至少部分由所述柵格數(shù)據(jù)定義的柵格結(jié)構(gòu)確定具有由至少部分所述柵格結(jié)構(gòu)的節(jié)點(diǎn)和鏈接定義的邊和頂點(diǎn)的多個區(qū)域;為所述區(qū)域產(chǎn)生識別定界每個區(qū)域的鏈接數(shù)的數(shù)據(jù)和識別所述區(qū)域在至少部分所述柵格結(jié)構(gòu)中的位置的數(shù)據(jù);及作為識別數(shù)據(jù)輸出識別與鏈接關(guān)聯(lián)的所述單元的數(shù)據(jù)和定義區(qū)域的所述數(shù)據(jù)。
2.一種產(chǎn)生定義語音柵格的數(shù)據(jù)的方法,包括接收定義包括多個由鏈接互連的節(jié)點(diǎn)的第一語音柵格的數(shù)據(jù),所述鏈接與識別語音單元的數(shù)據(jù)關(guān)聯(lián);處理所述接收到的數(shù)據(jù)以確定包括具有多個由鏈接互連的節(jié)點(diǎn)的平面圖的第二語音柵格,在平面圖中沒有鏈接交叉,所述鏈接與識別語音單元的數(shù)據(jù)關(guān)聯(lián),所述平面圖的節(jié)點(diǎn)和鏈接在兩維平面上定義區(qū)域的邊和頂點(diǎn);作為定義所述平面圖的數(shù)據(jù)產(chǎn)生識別定界由所述平面圖定義的每個所述區(qū)域的鏈接數(shù)和所述區(qū)域在所述平面圖中的位置的識別數(shù)據(jù);及作為定義所述第二語音柵格的數(shù)據(jù)輸出所述識別數(shù)據(jù)和識別與由所述識別數(shù)據(jù)定義的平面圖的鏈接關(guān)聯(lián)的語音單元的數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其中所述處理包括在由所述接收數(shù)據(jù)定義的柵格結(jié)構(gòu)的兩維平面中確定嵌入;及處理所述確定的嵌入,從而產(chǎn)生所述第二語音柵格。
4.如權(quán)利要求3所述的方法,其中所述處理所述確定的嵌入包括識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分;及刪除一些所述識別出的交叉鏈接,從而產(chǎn)生所述第二語音柵格。
5.如權(quán)利要求4所述的方法,其中所述識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分包括確定識別每個鏈接與多少鏈接交叉的交叉鏈接數(shù)據(jù);及利用所述交叉鏈接數(shù)據(jù)選擇一些所述識別出的交叉鏈接除去,以便從所述嵌入消除交叉鏈接。
6.如權(quán)利要求5所述的方法,其中所選鏈接包括與比未除去的識別出的交叉鏈接更多的鏈接交叉的鏈接。
7.如權(quán)利要求4所述的方法,其中所述一些刪除的所述識別出的交叉鏈接包括根據(jù)與所述鏈接關(guān)聯(lián)的概率數(shù)據(jù)除去的交叉鏈接。
8.如權(quán)利要求3所述的方法,其中所述柵格結(jié)構(gòu)的嵌入的所述確定包括在兩維平面中確定所述柵格結(jié)構(gòu)的初始嵌入;及處理所述初始嵌入以確定所述柵格結(jié)構(gòu)的另一嵌入,其中所述另一嵌入中交叉的鏈接數(shù)少于所述初始嵌入中交叉的鏈接數(shù)。
9.如權(quán)利要求2所述的方法,其中所述產(chǎn)生識別數(shù)據(jù)包括為每個所述區(qū)域產(chǎn)生識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù);及識別在從所述第一節(jié)點(diǎn)到所選的定義所述區(qū)域另一頂點(diǎn)的第二節(jié)點(diǎn)的一對路徑中鏈接數(shù)的第一和第二數(shù)字。
10.如權(quán)利要求9所述的方法,其中每個所述節(jié)點(diǎn)都與多個有序?qū)又械囊粋€關(guān)聯(lián),其中區(qū)域的所述第一節(jié)點(diǎn)包括定義一層中頂點(diǎn)的節(jié)點(diǎn),而所述第二節(jié)點(diǎn)包括定義與進(jìn)一步從與所述第一節(jié)點(diǎn)關(guān)聯(lián)的所述層而不是與定義所述區(qū)域頂點(diǎn)的其它節(jié)點(diǎn)關(guān)聯(lián)的層除去的層關(guān)聯(lián)的頂點(diǎn)的節(jié)點(diǎn)。
11.如權(quán)利要求10所述的方法,其中所述柵格結(jié)構(gòu)中的每個所述節(jié)點(diǎn)都與定時數(shù)據(jù)關(guān)聯(lián),與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)與同一層關(guān)聯(lián)。
12.如權(quán)利要求2所述的方法,其中所述產(chǎn)生識別數(shù)據(jù)包括為每個所述區(qū)域產(chǎn)生識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù),識別定界所述區(qū)域的鏈接總數(shù)的數(shù)據(jù);及識別所述區(qū)域與已為其產(chǎn)生數(shù)據(jù)的區(qū)域共享的鏈接數(shù)的數(shù)據(jù)。
13.如權(quán)利要求2所述的方法,其中所述產(chǎn)生識別數(shù)據(jù)包括產(chǎn)生識別第一選定區(qū)域的數(shù)據(jù);及產(chǎn)生識別由所述平面圖定義的剩余區(qū)域的數(shù)據(jù),其中所述識別數(shù)據(jù)產(chǎn)生的順序是使為之產(chǎn)生識別數(shù)據(jù)的區(qū)域?qū)?yīng)于與前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域相鄰的區(qū)域。
14.如權(quán)利要求13所述的方法,其中識別定義區(qū)域頂點(diǎn)的節(jié)點(diǎn)的所述數(shù)據(jù)包括識別所述節(jié)點(diǎn)相對于識別前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域頂點(diǎn)的節(jié)點(diǎn)位置的偏移值。
15.如權(quán)利要求14所述的方法,其中所述偏移值包括識別所述節(jié)點(diǎn)在節(jié)點(diǎn)列表中的相對位置的偏移值。
16.如權(quán)利要求15所述的方法,其中所述列表包括循環(huán)列表。
17.如權(quán)利要求16所述的方法,其中所述偏移值包括識別所述列表中不同方向偏移的正或負(fù)數(shù)。
18.如權(quán)利要求15所述的方法,其中所述列表包括識別已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域邊界頂點(diǎn)的節(jié)點(diǎn)列表。
19.如權(quán)利要求2所述的方法,其中所述識別數(shù)據(jù)包括為由所述平面圖定義的每個所述區(qū)域產(chǎn)生的所述識別數(shù)據(jù)的級聯(lián)。
20.如權(quán)利要求19所述的方法,其中所述識別數(shù)據(jù)的所述級聯(lián)包括以為所述區(qū)域產(chǎn)生識別數(shù)據(jù)的順序進(jìn)行排序的級聯(lián)。
21.一種產(chǎn)生柵格的方法,包括接收定義兩維平面中具有對應(yīng)于平面圖中節(jié)點(diǎn)和鏈接的頂點(diǎn)和邊的多個區(qū)域的形狀數(shù)據(jù),其中所述鏈接都不交叉;接收將由該形狀數(shù)據(jù)定義的平面圖的鏈接與識別單元的數(shù)據(jù)關(guān)聯(lián)的假設(shè)數(shù)據(jù)項(xiàng);及通過以下產(chǎn)生包括多個由鏈接連接的節(jié)點(diǎn)的柵格確定由所述形狀數(shù)據(jù)定義的平面圖;及利用所述假設(shè)數(shù)據(jù)將所述確定的平面圖的鏈接與單元關(guān)聯(lián)。
22.如權(quán)利要求21所述的方法,其中所述形狀數(shù)據(jù)對于每個所述區(qū)域包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù);及識別在從所述第一節(jié)點(diǎn)到所選的定義所述區(qū)域另一頂點(diǎn)的第二節(jié)點(diǎn)的一對路徑中鏈接數(shù)的第一和第二數(shù)字。
23.如權(quán)利要求22所述的方法,其中每個所述節(jié)點(diǎn)都與多個有序?qū)又械囊粋€關(guān)聯(lián),其中區(qū)域的所述第一節(jié)點(diǎn)包括定義一層中頂點(diǎn)的節(jié)點(diǎn),而所述第二節(jié)點(diǎn)包括定義與進(jìn)一步從與所述第一節(jié)點(diǎn)關(guān)聯(lián)的所述層而不是與定義所述區(qū)域頂點(diǎn)的其它節(jié)點(diǎn)關(guān)聯(lián)的層除去的層關(guān)聯(lián)的頂點(diǎn)的節(jié)點(diǎn)。
24.如權(quán)利要求23所述的方法,其中所述柵格結(jié)構(gòu)中的每個所述節(jié)點(diǎn)都與定時數(shù)據(jù)關(guān)聯(lián),與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)與同一層關(guān)聯(lián)。
25.如權(quán)利要求21所述的方法,其中所述形狀數(shù)據(jù)對于每個所述區(qū)域包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù),識別定界所述區(qū)域的鏈接總數(shù)的數(shù)據(jù);及識別所述區(qū)域與已為其產(chǎn)生數(shù)據(jù)的區(qū)域共享的鏈接數(shù)的數(shù)據(jù)。
26.如權(quán)利要求22所述的方法,其中識別定義區(qū)域頂點(diǎn)的節(jié)點(diǎn)的所述數(shù)據(jù)包括識別所述節(jié)點(diǎn)相對于識別前面已為之產(chǎn)生了數(shù)據(jù)的區(qū)域頂點(diǎn)的節(jié)點(diǎn)位置的偏移值。
27.如權(quán)利要求26所述的方法,其中所述偏移值包括識別所述節(jié)點(diǎn)在節(jié)點(diǎn)列表中的相對位置的偏移值。
28.如權(quán)利要求27所述的方法,其中所述列表包括循環(huán)列表。
29.如權(quán)利要求28所述的方法,其中所述偏移值包括識別所述列表中不同方向偏移的正或負(fù)數(shù)。
30.如權(quán)利要求27所述的方法,其中所述列表包括識別已為之產(chǎn)生了數(shù)據(jù)的區(qū)域邊界頂點(diǎn)的節(jié)點(diǎn)列表。
31.如權(quán)利要求27所述的方法,其中所述識別數(shù)據(jù)包括為由所述平面圖定義的每個所述區(qū)域產(chǎn)生的所述數(shù)據(jù)的級聯(lián)。
32.如權(quán)利要求31所述的方法,其中所述識別數(shù)據(jù)的所述級聯(lián)包括以為所述區(qū)域產(chǎn)生識別數(shù)據(jù)的順序進(jìn)行排序的級聯(lián)。
33.如權(quán)利要求1所述的產(chǎn)生識別數(shù)據(jù)的方法,還包括步驟確定識別所述至少部分所述柵格結(jié)構(gòu)和由所述接收數(shù)據(jù)定義的柵格結(jié)構(gòu)之間差異的差異數(shù)據(jù);及作為識別數(shù)據(jù)輸出識別與鏈接關(guān)聯(lián)的所述單元的數(shù)據(jù);定義區(qū)域的所述數(shù)據(jù);及所述差異數(shù)據(jù)。
34.一種產(chǎn)生定義柵格結(jié)構(gòu)的數(shù)據(jù)的方法,包括接收定義包括多個由鏈接互連的節(jié)點(diǎn)的柵格結(jié)構(gòu)的數(shù)據(jù);處理所接收的數(shù)據(jù),以確定所述柵格結(jié)構(gòu)在兩維平面中的嵌入和包括多個由鏈接互連的節(jié)點(diǎn)的平面圖之間的差異,其中平面圖中鏈接都不交叉,所述平面圖的節(jié)點(diǎn)和鏈接定義兩維平面中區(qū)域的邊和頂點(diǎn);產(chǎn)生識別所述確定的差異的差異數(shù)據(jù);為由所述平面圖定義的所述兩維平面的所述區(qū)域產(chǎn)生識別定界每個所述區(qū)域的鏈接數(shù)的識別數(shù)據(jù)和識別所述區(qū)域在所述平面圖中位置的數(shù)據(jù);及作為定義所述柵格結(jié)構(gòu)的數(shù)據(jù)輸出所述產(chǎn)生的識別數(shù)據(jù)和所述產(chǎn)生的差異數(shù)據(jù)。
35.如權(quán)利要求34所述的方法,其中所述處理包括確定所述柵格結(jié)構(gòu)在兩維平面中的嵌入;識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分;及為所述確定的嵌入識別沒有交叉鏈接的平面圖,該平面圖對應(yīng)于缺少一些所述識別出的鏈接的所述嵌入,其中所述差異數(shù)據(jù)包括識別所述確定的嵌入和所述識別出的平面圖之間的差異的數(shù)據(jù)。
36.如權(quán)利要求35所述的方法,其中所述處理包括確定所述柵格結(jié)構(gòu)在兩維平面中的嵌入;識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分;及通過從所述確定的嵌入中除去識別一些所述交叉鏈接的數(shù)據(jù)來產(chǎn)生沒有交叉鏈接的平面圖,其中所述差異數(shù)據(jù)包括識別從所述柵格結(jié)構(gòu)所述確定的嵌入中除去的鏈接的數(shù)據(jù)。
37.如權(quán)利要求35所述的方法,其中所述識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分包括確定識別每個鏈接與多少鏈接交叉的交叉鏈接數(shù)據(jù);及利用所述交叉鏈接數(shù)據(jù)選擇一些所述識別出的交叉鏈接除去,以便從所述嵌入消除交叉鏈接。
38.如權(quán)利要求37所述的方法,其中所選鏈接包括與比未除去的識別出的交叉鏈接更多的鏈接交叉的鏈接。
39.如權(quán)利要求35所述的方法,其中所述柵格結(jié)構(gòu)的嵌入的所述確定包括在兩維平面中確定所述柵格結(jié)構(gòu)的初始嵌入;及處理所述初始嵌入以確定所述柵格結(jié)構(gòu)的另一嵌入,其中所述另一嵌入中交叉的鏈接數(shù)少于所述初始嵌入中交叉的鏈接數(shù)。
40.如權(quán)利要求35所述的方法,還包括接收將由所接收數(shù)據(jù)定義的所述柵格結(jié)構(gòu)的每個所述節(jié)點(diǎn)與定時數(shù)據(jù)項(xiàng)關(guān)聯(lián)的數(shù)據(jù),所述定時數(shù)據(jù)項(xiàng)一起定義定時序列;識別與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn);及通過以下來修改所述柵格結(jié)構(gòu)的所述確定的嵌入確定所述第一定時是否與單個節(jié)點(diǎn)關(guān)聯(lián);及如果所述定時不與單個節(jié)點(diǎn)關(guān)聯(lián),則在所述序列中產(chǎn)生一較早定時,一虛節(jié)點(diǎn)與所述較早定時關(guān)聯(lián),并在所述產(chǎn)生的虛節(jié)點(diǎn)和與所述第一定時關(guān)聯(lián)的節(jié)點(diǎn)之間產(chǎn)生鏈接,其中所述差異數(shù)據(jù)包括識別所述添加節(jié)點(diǎn)的數(shù)據(jù)。
41.如權(quán)利要求40所述的方法,其中所述修改所述柵格結(jié)構(gòu)的所述確定的嵌入還包括確定所述最后一個定時是否與單個節(jié)點(diǎn)關(guān)聯(lián);及如果所述定時不與單個節(jié)點(diǎn)關(guān)聯(lián),則在所述序列中產(chǎn)生一較晚定時,一虛節(jié)點(diǎn)與所述較晚定時關(guān)聯(lián),并在所述產(chǎn)生的虛節(jié)點(diǎn)和與所述最后一個定時關(guān)聯(lián)的節(jié)點(diǎn)之間產(chǎn)生鏈接,其中所述差異數(shù)據(jù)包括識別所述添加節(jié)點(diǎn)的數(shù)據(jù)。
42.如權(quán)利要求40所述的方法,其中所述修改所述柵格結(jié)構(gòu)的所述確定的嵌入還包括用連接與由所述要除去鏈接識別的所述節(jié)點(diǎn)的所述定時之間所述序列中的每個所述定時的定時數(shù)據(jù)關(guān)聯(lián)的虛節(jié)點(diǎn)的一系列鏈接代替與所述定時序列中不相鄰定時關(guān)聯(lián)的節(jié)點(diǎn)之間的鏈接;其中所述差異數(shù)據(jù)包括識別所述柵格結(jié)構(gòu)的所述修改部分的數(shù)據(jù)。
43.如權(quán)利要求40所述的方法,其中所述修改所述柵格結(jié)構(gòu)的所述確定的嵌入還包括為不與所述定時序列中最早和最晚定時關(guān)聯(lián)的節(jié)點(diǎn)確定每個所述節(jié)點(diǎn)是否由不與其它鏈接交叉的鏈接識別為所述嵌入式柵格中鏈接的起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn);及如果節(jié)點(diǎn)沒有識別為既是起始節(jié)點(diǎn)又是結(jié)束節(jié)點(diǎn),則向所述嵌入添加另一鏈接,使所有所述節(jié)點(diǎn)都識別為既是鏈接的起始節(jié)點(diǎn)又是鏈接的結(jié)束節(jié)點(diǎn),其中所述差異數(shù)據(jù)包括識別所述添加鏈接的數(shù)據(jù)。
44.如權(quán)利要求40所述的方法,其中所述修改所述柵格結(jié)構(gòu)的所述確定的嵌入還包括確定經(jīng)一條或多條不包括任何虛節(jié)點(diǎn)的路徑鏈接到與所述定時序列中第一定時關(guān)聯(lián)的節(jié)點(diǎn)的所述柵格結(jié)構(gòu)的節(jié)點(diǎn);及為與所述定時序列中連續(xù)定時關(guān)聯(lián)的節(jié)點(diǎn)確定是否有任何節(jié)點(diǎn)不在所述確定的組中,并為所述節(jié)點(diǎn)識別包括將所述節(jié)點(diǎn)連接到所述確定的組中與較早定時關(guān)聯(lián)的節(jié)點(diǎn)的虛節(jié)點(diǎn)的路徑;及用所述節(jié)點(diǎn)之間的鏈接代替節(jié)點(diǎn)間經(jīng)不包括在所述識別出的路徑中的虛節(jié)點(diǎn)的路徑,其中所述差異數(shù)據(jù)包括識別剩余虛節(jié)點(diǎn)的數(shù)據(jù)。
45.如權(quán)利要求35所述的方法,還包括通過識別所述嵌入定義節(jié)點(diǎn)對之間路徑的部分來修改所述確定的嵌入,其中所述部分不鏈接到所述柵格結(jié)構(gòu)的任何其它節(jié)點(diǎn);用識別所述節(jié)點(diǎn)對之間單個鏈接的數(shù)據(jù)代替所述部分;及將所述節(jié)點(diǎn)對之間的所述鏈接與識別所述刪除部分中節(jié)點(diǎn)和鏈接的數(shù)據(jù)關(guān)聯(lián);其中所述差異數(shù)據(jù)包括與鏈接關(guān)聯(lián)的所述數(shù)據(jù)。
46.如權(quán)利要求45所述的方法,其中所述部分包括節(jié)點(diǎn)路徑對之間經(jīng)其它節(jié)點(diǎn)的路徑,所述其它節(jié)點(diǎn)識別為單個鏈接的起始節(jié)點(diǎn)和單個鏈接的結(jié)束節(jié)點(diǎn),其中所述與所產(chǎn)生鏈接關(guān)聯(lián)的數(shù)據(jù)包括識別除去所述節(jié)點(diǎn)的數(shù)據(jù)和與以所述節(jié)點(diǎn)作為起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的刪除鏈接關(guān)聯(lián)的數(shù)據(jù)。
47.如權(quán)利要求45所述的方法,其中所述部分包括節(jié)點(diǎn)對之間包括所述節(jié)點(diǎn)對之間一對鏈接的路徑;其中與所述節(jié)點(diǎn)之間所產(chǎn)生鏈接關(guān)聯(lián)的所述數(shù)據(jù)包括識別所述鏈接對的合并的數(shù)據(jù)及與刪除鏈接關(guān)聯(lián)的數(shù)據(jù)。
48.如權(quán)利要求47所述的方法,其中與代替一對合并鏈接的鏈接關(guān)聯(lián)的所述數(shù)據(jù)包括識別鏈接對的合并及與所述合并鏈接關(guān)聯(lián)的數(shù)據(jù)的級聯(lián)的數(shù)據(jù),所述數(shù)據(jù)以依賴于與每個所述鏈接關(guān)聯(lián)的數(shù)據(jù)量的順序級聯(lián)。
49.如權(quán)利要求34所述的方法,其中所述產(chǎn)生識別數(shù)據(jù)包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù);及識別在從所述第一節(jié)點(diǎn)到所選的定義所述區(qū)域另一頂點(diǎn)的第二節(jié)點(diǎn)的一對路徑中鏈接數(shù)的第一和第二數(shù)字。
50.如權(quán)利要求49所述的方法,其中每個所述節(jié)點(diǎn)都與多個有序?qū)又械囊粋€關(guān)聯(lián),其中區(qū)域的所述第一節(jié)點(diǎn)包括定義一層中頂點(diǎn)的節(jié)點(diǎn),而所述第二節(jié)點(diǎn)包括定義與進(jìn)一步從與所述第一節(jié)點(diǎn)關(guān)聯(lián)的所述層而不是與定義所述區(qū)域頂點(diǎn)的其它節(jié)點(diǎn)關(guān)聯(lián)的層除去的層關(guān)聯(lián)的頂點(diǎn)的節(jié)點(diǎn)。
51.如權(quán)利要求50所述的方法,其中所述柵格結(jié)構(gòu)中的每個所述節(jié)點(diǎn)都與定時數(shù)據(jù)關(guān)聯(lián),與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)與同一層關(guān)聯(lián)。
52.如權(quán)利要求34所述的方法,其中所述產(chǎn)生識別數(shù)據(jù)包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù),識別定界所述區(qū)域的鏈接總數(shù)的數(shù)據(jù);及識別所述區(qū)域與已為其產(chǎn)生數(shù)據(jù)的區(qū)域共享的鏈接數(shù)的數(shù)據(jù)。
53.如權(quán)利要求34所述的方法,其中所述產(chǎn)生識別數(shù)據(jù)包括產(chǎn)生識別第一選定區(qū)域的數(shù)據(jù);及產(chǎn)生識別由所述平面圖定義的剩余區(qū)域的數(shù)據(jù),其中所述識別數(shù)據(jù)產(chǎn)生的順序是使為之產(chǎn)生識別數(shù)據(jù)的區(qū)域?qū)?yīng)于與前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域相鄰的區(qū)域。
54.如權(quán)利要求53所述的方法,其中識別定義區(qū)域頂點(diǎn)的節(jié)點(diǎn)的所述數(shù)據(jù)包括識別所述節(jié)點(diǎn)相對于識別前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域頂點(diǎn)的節(jié)點(diǎn)位置的偏移值。
55.如權(quán)利要求54所述的方法,其中所述偏移值包括識別所述節(jié)點(diǎn)在節(jié)點(diǎn)列表中的相對位置的偏移值。
56.如權(quán)利要求55所述的方法,其中所述列表包括循環(huán)列表。
57.如權(quán)利要求55所述的方法,其中所述偏移值包括識別所述列表中不同方向偏移的正或負(fù)數(shù)。
58.如權(quán)利要求55所述的方法,其中所述列表包括識別已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域邊界頂點(diǎn)的節(jié)點(diǎn)列表。
59.如權(quán)利要求34所述的方法,其中所述識別數(shù)據(jù)包括為由所述平面圖定義的每個所述區(qū)域產(chǎn)生的所述識別數(shù)據(jù)的級聯(lián)。
60.如權(quán)利要求59所述的方法,其中所述識別數(shù)據(jù)的所述級聯(lián)包括以識別數(shù)據(jù)為所述區(qū)域產(chǎn)生的順序進(jìn)行排序的級聯(lián)。
61.如權(quán)利要求34所述的方法,其中所述差異數(shù)據(jù)包括與平面圖鏈接關(guān)聯(lián)的所述產(chǎn)生的數(shù)據(jù)的級聯(lián)。
62.一種用于產(chǎn)生識別數(shù)據(jù)的裝置,包括接收器,可操作為接收定義包括多個由鏈接連接的節(jié)點(diǎn)的柵格結(jié)構(gòu)的柵格數(shù)據(jù),所述鏈接與識別單元的數(shù)據(jù)關(guān)聯(lián);確定器,可操作為至少部分由所述接收器接收的柵格數(shù)據(jù)定義的柵格結(jié)構(gòu)確定具有由至少部分所述柵格結(jié)構(gòu)的節(jié)點(diǎn)和鏈接定義的邊和頂點(diǎn)的多個區(qū)域;產(chǎn)生器,可操作為由所述確定器確定的所述區(qū)域產(chǎn)生識別定界每個區(qū)域的鏈接數(shù)的數(shù)據(jù)和識別所述區(qū)域在至少部分所述柵格結(jié)構(gòu)中位置的數(shù)據(jù);及輸出單元,可操作為作為識別數(shù)據(jù)輸出以下識別與鏈接關(guān)聯(lián)的所述單元的數(shù)據(jù)和定義區(qū)域的所述數(shù)據(jù)。
63.一種用于產(chǎn)生定義語音柵格的數(shù)據(jù)的裝置,包括接收器,可操作為接收定義包括多個由鏈接互連的節(jié)點(diǎn)的第一語音柵格的數(shù)據(jù),所述鏈接與識別語音單元的數(shù)據(jù)關(guān)聯(lián);處理單元,可操作為處理由所述接收器接收的數(shù)據(jù),以確定包括具有多個由鏈接互連的節(jié)點(diǎn)的平面圖的第二語音柵格,平面圖中沒有鏈接交叉,所述鏈接與識別語音單元的數(shù)據(jù)關(guān)聯(lián),所述平面圖的節(jié)點(diǎn)和鏈接在兩維平面上定義區(qū)域的邊和頂點(diǎn);產(chǎn)生器,可操作為作為定義由所述處理單元確定的平面圖的數(shù)據(jù),產(chǎn)生識別定界由所述平面圖定義的每個所述區(qū)域的鏈接數(shù)和所述區(qū)域在所述平面圖中位置的識別數(shù)據(jù);及輸出單元,可操作為作為定義所述第二語音柵格的數(shù)據(jù),輸出由所述產(chǎn)生器產(chǎn)生的所述識別數(shù)據(jù)和識別與由所述接收器接收的所述識別數(shù)據(jù)定義的平面圖的鏈接關(guān)聯(lián)的語音單元的數(shù)據(jù)。
64.如權(quán)利要求63所述的裝置,其中所述處理單元包括嵌入單元,可操作為在由所述接收器所接收數(shù)據(jù)定義的柵格結(jié)構(gòu)的兩維平面中確定嵌入;及嵌入處理器,可操作為處理所述確定的嵌入,從而產(chǎn)生所述第二語音柵格。
65.如權(quán)利要求64所述的裝置,其中所述嵌入處理器可操作為識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分;及刪除一些所述識別出的交叉鏈接,從而產(chǎn)生所述第二語音柵格。
66.如權(quán)利要求65所述的裝置,其中所述嵌入處理器可操作為通過以下處理來識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分確定識別每個鏈接與多少鏈接交叉的交叉鏈接數(shù)據(jù);及利用所述交叉鏈接數(shù)據(jù)選擇一些所述識別出的交叉鏈接除去,以便從所述嵌入消除交叉鏈接。
67.如權(quán)利要求66所述的裝置,其中所選鏈接包括與比未除去的識別出的交叉鏈接更多的鏈接交叉的鏈接。
68.如權(quán)利要求65所述的裝置,其中所述接收器可操作為接收將概率與所述柵格中鏈接關(guān)聯(lián)的概率數(shù)據(jù);所述嵌入處理器可操作為根據(jù)與所述鏈接關(guān)聯(lián)的概率數(shù)據(jù)刪除鏈接。
69.如權(quán)利要求64所述的裝置,其中所述嵌入單元可操作為在兩維平面中確定所述柵格結(jié)構(gòu)的初始嵌入;及處理所述初始嵌入以確定所述柵格結(jié)構(gòu)的另一嵌入,其中所述另一嵌入中交叉的鏈接數(shù)少于所述初始嵌入中交叉的鏈接數(shù)。
70.如權(quán)利要求63所述的裝置,其中所述產(chǎn)生器可操作為產(chǎn)生對于每個所述區(qū)域包括以下的識別數(shù)據(jù)識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù);及識別在從所述第一節(jié)點(diǎn)到所選的定義所述區(qū)域另一頂點(diǎn)的第二節(jié)點(diǎn)的一對路徑中鏈接數(shù)的第一和第二數(shù)字。
71.如權(quán)利要求70所述的裝置,其中所述處理單元可操作為將每個所述節(jié)點(diǎn)與多個有序?qū)又械囊粋€關(guān)聯(lián),其中所述產(chǎn)生器可操作為產(chǎn)生識別數(shù)據(jù),其中區(qū)域的所述第一節(jié)點(diǎn)包括定義一層中頂點(diǎn)的節(jié)點(diǎn),而所述第二節(jié)點(diǎn)包括定義與進(jìn)一步從與所述第一節(jié)點(diǎn)關(guān)聯(lián)的所述層而不是與定義所述區(qū)域頂點(diǎn)的其它節(jié)點(diǎn)關(guān)聯(lián)的層除去的層關(guān)聯(lián)的頂點(diǎn)的節(jié)點(diǎn)。
72.如權(quán)利要求71所述的裝置,其中所述接收器可操作為接收將所述柵格結(jié)構(gòu)中每個所述節(jié)點(diǎn)與定時數(shù)據(jù)關(guān)聯(lián)的數(shù)據(jù),與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)與同一層關(guān)聯(lián)。
73.如權(quán)利要求63所述的裝置,其中所述產(chǎn)生器可操作為為每個區(qū)域產(chǎn)生識別數(shù)據(jù),該識別數(shù)據(jù)包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù),識別定界所述區(qū)域的鏈接總數(shù)的數(shù)據(jù);及識別所述區(qū)域與已為其產(chǎn)生數(shù)據(jù)的區(qū)域共享的鏈接數(shù)的數(shù)據(jù)。
74.如權(quán)利要求63所述的裝置,其中所述產(chǎn)生器可操作為產(chǎn)生識別第一選定區(qū)域的數(shù)據(jù);及產(chǎn)生識別由所述平面圖定義的剩余區(qū)域的數(shù)據(jù),其中所述識別數(shù)據(jù)產(chǎn)生的順序是使為之產(chǎn)生識別數(shù)據(jù)的區(qū)域?qū)?yīng)于與前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域相鄰的區(qū)域。
75.如權(quán)利要求74所述的裝置,其中所述產(chǎn)生器可操作為為每個區(qū)域產(chǎn)生識別定義所述區(qū)域頂點(diǎn)的節(jié)點(diǎn)的數(shù)據(jù),該數(shù)據(jù)包括識別所述節(jié)點(diǎn)相對于識別前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域頂點(diǎn)的節(jié)點(diǎn)的位置的偏移值。
76.如權(quán)利要求75所述的裝置,其中所述偏移值包括識別所述節(jié)點(diǎn)在節(jié)點(diǎn)列表中的相對位置的偏移值。
77.如權(quán)利要求76所述的裝置,其中所述列表包括循環(huán)列表。
78.如權(quán)利要求77所述的裝置,其中所述偏移值包括識別所述列表中不同方向偏移的正或負(fù)數(shù)。
79.如權(quán)利要求76所述的裝置,其中所述列表包括識別已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域邊界頂點(diǎn)的節(jié)點(diǎn)列表。
80.如權(quán)利要求63所述的裝置,其中所述產(chǎn)生器可操作為產(chǎn)生識別數(shù)據(jù),識別數(shù)據(jù)包括為由所述平面圖定義的每個所述區(qū)域產(chǎn)生的所述識別數(shù)據(jù)的級聯(lián)。
81.如權(quán)利要求80所述的裝置,其中所述識別數(shù)據(jù)的所述級聯(lián)包括以為所述區(qū)域產(chǎn)生識別數(shù)據(jù)的順序進(jìn)行排序的級聯(lián)。
82.如權(quán)利要求63所述的裝置,還包括壓縮器,可操作為壓縮由所述輸出單元輸出的、定義所述柵格結(jié)構(gòu)的輸出數(shù)據(jù);及發(fā)送器,可操作為發(fā)送由所述壓縮器產(chǎn)生的所述壓縮數(shù)據(jù)。
83.如權(quán)利要求82所述的裝置,還包括解壓縮器,可操作為接收并解壓縮由所述發(fā)送器發(fā)送的壓縮數(shù)據(jù);再生單元,可操作為通過所述解壓縮器處理識別數(shù)據(jù)和所述差異數(shù)據(jù),以確定所述定義的柵格結(jié)構(gòu)。
84.如權(quán)利要求83所述的裝置,其中所述再生單元可操作為利用所述識別數(shù)據(jù)產(chǎn)生平面圖;及利用所述識別語音單元的數(shù)據(jù)將所述平面圖的鏈接與識別語音單元的數(shù)據(jù)關(guān)聯(lián)。
85.一種用于產(chǎn)生柵格的裝置,包括接收器,可操作為接收定義兩維平面中具有對應(yīng)于平面圖中節(jié)點(diǎn)和鏈接的頂點(diǎn)和邊的多個區(qū)域的形狀數(shù)據(jù),平面圖中所述鏈接都不交叉;及將由該形狀數(shù)據(jù)定義的平面圖的鏈接與識別單元的數(shù)據(jù)關(guān)聯(lián)的假設(shè)數(shù)據(jù)項(xiàng);產(chǎn)生器,可操作為通過以下產(chǎn)生包括多個由鏈接連接的節(jié)點(diǎn)的柵格確定由所述接收器接收的所述形狀數(shù)據(jù)定義的平面圖;及利用由所述接收器接收的所述假設(shè)數(shù)據(jù)將所述確定的平面圖的鏈接與單元關(guān)聯(lián)。
86.如權(quán)利要求85所述的裝置,其中所述接收器配置成接收形狀數(shù)據(jù),形狀數(shù)據(jù)對于每個所述區(qū)域包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù);及識別在從所述第一節(jié)點(diǎn)到所選的定義所述區(qū)域另一頂點(diǎn)的第二節(jié)點(diǎn)的一對路徑中鏈接數(shù)的第一和第二數(shù)字。
87.如權(quán)利要求86所述的裝置,其中所述接收器可操作為接收將每個所述節(jié)點(diǎn)與多個有序?qū)又械囊粋€關(guān)聯(lián)的數(shù)據(jù),其中區(qū)域的所述第一節(jié)點(diǎn)包括定義一層中頂點(diǎn)的節(jié)點(diǎn),而所述第二節(jié)點(diǎn)包括定義與進(jìn)一步從與所述第一節(jié)點(diǎn)關(guān)聯(lián)的所述層而不是與定義所述區(qū)域頂點(diǎn)的其它節(jié)點(diǎn)關(guān)聯(lián)的層除去的層關(guān)聯(lián)的頂點(diǎn)的節(jié)點(diǎn)。
88.如權(quán)利要求87所述的裝置,其中所述接收器可操作為接收將所述柵格結(jié)構(gòu)中每個所述節(jié)點(diǎn)與定時數(shù)據(jù)關(guān)聯(lián)的數(shù)據(jù),與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)與同一層關(guān)聯(lián)。
89.如權(quán)利要求85所述的裝置,其中所述接收器配置成接收形狀數(shù)據(jù),形狀數(shù)據(jù)對于每個所述區(qū)域包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù),識別定界所述區(qū)域的鏈接總數(shù)的數(shù)據(jù);及識別所述區(qū)域與已為其產(chǎn)生數(shù)據(jù)的區(qū)域共享的鏈接數(shù)的數(shù)據(jù)。
90.如權(quán)利要求86所述的裝置,其中所述接收器可操作為接收識別定義區(qū)域頂點(diǎn)的節(jié)點(diǎn)的數(shù)據(jù),該數(shù)據(jù)包括識別所述節(jié)點(diǎn)相對于識別前面已為之產(chǎn)生了數(shù)據(jù)的區(qū)域頂點(diǎn)的節(jié)點(diǎn)位置的偏移值。
91.如權(quán)利要求90所述的裝置,其中所述偏移值包括識別所述節(jié)點(diǎn)在節(jié)點(diǎn)列表中的相對位置的偏移值。
92.如權(quán)利要求91所述的裝置,其中所述列表包括循環(huán)列表。
93.如權(quán)利要求92所述的裝置,其中所述偏移值包括識別所述列表中不同方向偏移的正或負(fù)數(shù)。
94.如權(quán)利要求91所述的裝置,其中所述列表包括識別已為之產(chǎn)生了數(shù)據(jù)的區(qū)域邊界頂點(diǎn)的節(jié)點(diǎn)列表。
95.如權(quán)利要求85所述的裝置,其中所述接收器可操作為接收識別數(shù)據(jù),該識別數(shù)據(jù)包括表示由所述平面圖定義的每個所述區(qū)域的所述數(shù)據(jù)的級聯(lián)。
96.如權(quán)利要求95所述的裝置,其中所述識別數(shù)據(jù)的所述級聯(lián)包括以為所述區(qū)域產(chǎn)生識別數(shù)據(jù)的順序進(jìn)行排序的級聯(lián)。
97.如權(quán)利要求62所述用于產(chǎn)生識別數(shù)據(jù)的裝置,還包括差異確定單元,可操作為確定識別所述至少部分所述柵格結(jié)構(gòu)和由所述接收數(shù)據(jù)定義的柵格結(jié)構(gòu)之間差異的差異數(shù)據(jù);其中輸出單元可操作為作為識別數(shù)據(jù)輸出以下識別與鏈接關(guān)聯(lián)的所述單元的數(shù)據(jù);定義區(qū)域的所述數(shù)據(jù);及所述差異數(shù)據(jù)。
98.一種用于產(chǎn)生定義柵格結(jié)構(gòu)的數(shù)據(jù)的裝置,包括接收器,可操作為接收定義包括多個由鏈接互連的節(jié)點(diǎn)的柵格結(jié)構(gòu)的數(shù)據(jù);處理單元,可操作為處理由所述接收器接收的數(shù)據(jù),以確定兩維平面中所述柵格結(jié)構(gòu)的嵌入和包括多個由鏈接互連的節(jié)點(diǎn)且其中鏈接都不交叉的平面圖之間的差異,所述平面圖的節(jié)點(diǎn)和鏈接定義兩維平面中區(qū)域的邊和頂點(diǎn);差異產(chǎn)生器,可操作為產(chǎn)生識別差異的差異數(shù)據(jù);形狀編碼器,可操作為由平面圖定義的所述兩維平面的區(qū)域產(chǎn)生識別定界每個所述區(qū)域的鏈接數(shù)的識別數(shù)據(jù)和識別所述區(qū)域在所述平面圖中位置的數(shù)據(jù);及輸出單元,可操作為作為定義所述柵格結(jié)構(gòu)的數(shù)據(jù)輸出由所述形狀編碼器產(chǎn)生的所述識別數(shù)據(jù)和由所述差異產(chǎn)生器產(chǎn)生的所述差異數(shù)據(jù)。
99.如權(quán)利要求98所述的裝置,其中所述處理單元包括嵌入單元,可操作為確定由所述接收器接收的數(shù)據(jù)定義的柵格結(jié)構(gòu)在兩維平面中的嵌入;及平面圖識別單元,可操作為識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分;及為由所述嵌入單元確定的嵌入識別沒有交叉鏈接的平面圖,平面圖對應(yīng)于沒有一些所述識別出的鏈接的所述嵌入,其中由所述差異產(chǎn)生器產(chǎn)生的所述差異數(shù)據(jù)包括識別所述嵌入和由所述平面圖識別的所述平面圖之間差異的數(shù)據(jù)。
100.如權(quán)利要求98所述的裝置,其中所述處理單元包括嵌入單元,可操作為確定由所述接收器接收的數(shù)據(jù)定義的柵格結(jié)構(gòu)在兩維平面中的嵌入;及平面圖識別單元,可操作為識別所述確定的嵌入中所述嵌入識別交叉鏈接的部分;及通過從所述確定的嵌入中除去識別一些所述交叉鏈接的數(shù)據(jù)來產(chǎn)生沒有交叉鏈接的平面圖,其中由所述差異產(chǎn)生器產(chǎn)生的所述差異數(shù)據(jù)包括識別由所述平面圖識別單元從所述柵格結(jié)構(gòu)的所述確定的嵌入中除去的鏈接的數(shù)據(jù)。
101.如權(quán)利要求99所述的裝置,其中所述平面圖識別單元包括交叉鏈接識別器,可操作為確定識別嵌入的每個鏈接與多少鏈接交叉的交叉鏈接數(shù)據(jù);及鏈接選擇單元,可操作為利用所述交叉鏈接數(shù)據(jù)選擇一些交叉的所述識別出的鏈接除去,以便從所述嵌入消除交叉鏈接。
102.如權(quán)利要求101所述的裝置,其中所述鏈接選擇單元可操作為選擇與比未除去的識別出的交叉鏈接更多的鏈接交叉的鏈接作為要除去的鏈接。
103.如權(quán)利要求99所述的裝置,其中所述嵌入單元包括嵌入確定器,可操作為確定所述柵格結(jié)構(gòu)在兩維平面中的初始嵌入;及嵌入處理器,可操作為處理由所述嵌入確定器確定的初始嵌入,以確定所述柵格結(jié)構(gòu)的另一嵌入,其中所述另一嵌入中交叉的鏈接數(shù)少于所述初始嵌入中交叉的鏈接數(shù)。
104.如權(quán)利要求99所述的裝置,其中所述接收器可操作為接收將由所接收數(shù)據(jù)定義的所述柵格結(jié)構(gòu)的每個所述節(jié)點(diǎn)與定時數(shù)據(jù)項(xiàng)關(guān)聯(lián)的數(shù)據(jù),所述定時數(shù)據(jù)項(xiàng)一起定義時間序列;所述裝置還包括分層單元,可操作為識別與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn);及修改單元,可操作為通過以下修改由所述嵌入單元確定的嵌入確定所述第一定時是否與單個節(jié)點(diǎn)關(guān)聯(lián);及如果所述定時不與單個節(jié)點(diǎn)關(guān)聯(lián),則在所述序列中產(chǎn)生一較早定時,一虛節(jié)點(diǎn)與所述較早定時關(guān)聯(lián),并在所述產(chǎn)生的虛節(jié)點(diǎn)和與所述第一定時關(guān)聯(lián)的節(jié)點(diǎn)之間產(chǎn)生鏈接,其中所述差異產(chǎn)生器可操作為產(chǎn)生包括識別所述添加節(jié)點(diǎn)的數(shù)據(jù)的差異數(shù)據(jù)。
105.如權(quán)利要求104所述的裝置,其中所述修改單元還可操作為通過以下修改由所述嵌入單元確定的嵌入確定所述最后一個定時是否與單個節(jié)點(diǎn)關(guān)聯(lián);及如果所述定時不與單個節(jié)點(diǎn)關(guān)聯(lián),則在所述序列中產(chǎn)生一較晚定時,一虛節(jié)點(diǎn)與所述較晚定時關(guān)聯(lián),并在所述產(chǎn)生的虛節(jié)點(diǎn)和與所述最后一個定時關(guān)聯(lián)的節(jié)點(diǎn)之間產(chǎn)生鏈接,其中差異產(chǎn)生器可操作為產(chǎn)生包括識別所述添加節(jié)點(diǎn)的數(shù)據(jù)的所述差異數(shù)據(jù)。
106.如權(quán)利要求104所述的裝置,其中所述修改單元可操作為通過以下修改由所述嵌入單元確定的嵌入用連接與由所述要除去鏈接識別的所述節(jié)點(diǎn)的所述定時之間所述序列中的每個所述定時的定時數(shù)據(jù)關(guān)聯(lián)的虛節(jié)點(diǎn)的一系列鏈接代替與所述定時序列中不相鄰定時關(guān)聯(lián)的節(jié)點(diǎn)之間的鏈接;其中所述差異產(chǎn)生器可操作為產(chǎn)生包括識別所述柵格結(jié)構(gòu)的所述修改部分的數(shù)據(jù)的所述差異數(shù)據(jù)。
107.如權(quán)利要求104所述的裝置,其中所述修改單元可操作為通過以下修改由所述嵌入單元確定的嵌入為不與所述定時序列中最早和最晚定時關(guān)聯(lián)的節(jié)點(diǎn)確定每個所述節(jié)點(diǎn)是否由不與其它鏈接交叉的鏈接識別為所述嵌入式柵格中鏈接的起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn);及如果節(jié)點(diǎn)沒有識別為既是起始節(jié)點(diǎn)又是結(jié)束節(jié)點(diǎn),則向所述嵌入添加另一鏈接,使所有所述節(jié)點(diǎn)都識別為既是鏈接的起始節(jié)點(diǎn)又是鏈接的結(jié)束節(jié)點(diǎn),其中所述差異產(chǎn)生器可操作為產(chǎn)生包括識別所述添加鏈接的數(shù)據(jù)的所述差異數(shù)據(jù)。
108.如權(quán)利要求104所述的裝置,其中所述修改單元可操作為通過以下修改由所述嵌入單元確定的嵌入確定經(jīng)一條或多條不包括任何虛節(jié)點(diǎn)的路徑鏈接到與所述定時序列中第一定時關(guān)聯(lián)的節(jié)點(diǎn)的所述柵格結(jié)構(gòu)的節(jié)點(diǎn);及為與所述定時序列中連續(xù)定時關(guān)聯(lián)的節(jié)點(diǎn)確定是否有任何節(jié)點(diǎn)不在所述確定的組中,并為所述節(jié)點(diǎn)識別包括將所述節(jié)點(diǎn)連接到所述確定的組中與較早定時關(guān)聯(lián)的節(jié)點(diǎn)的虛節(jié)點(diǎn)的路徑;及用所述節(jié)點(diǎn)之間的鏈接代替節(jié)點(diǎn)間經(jīng)不包括在所述識別出的路徑中的虛節(jié)點(diǎn)的路徑,其中所述差異產(chǎn)生器可操作為產(chǎn)生包括識別剩余虛節(jié)點(diǎn)的數(shù)據(jù)的差異數(shù)據(jù)。
109.如權(quán)利要求99所述的裝置,還包括鏈接編碼器,可操作為通過識別所述嵌入定義節(jié)點(diǎn)對之間路徑的部分來修改所述確定的嵌入,其中所述部分不鏈接到所述柵格結(jié)構(gòu)的任何其它節(jié)點(diǎn);用識別所述節(jié)點(diǎn)對之間單個鏈接的數(shù)據(jù)代替所述部分;及將所述節(jié)點(diǎn)對之間的所述鏈接與識別所述刪除部分中節(jié)點(diǎn)和鏈接的數(shù)據(jù)關(guān)聯(lián);其中所述差異產(chǎn)生器可操作為產(chǎn)生包括與鏈接關(guān)聯(lián)的所述數(shù)據(jù)的差異數(shù)據(jù)。
110.如權(quán)利要求109所述的裝置,其中所述鏈接編碼器可操作為識別包括節(jié)點(diǎn)對之間經(jīng)其它節(jié)點(diǎn)的路徑的部分,所述其它節(jié)點(diǎn)識別為單個鏈接的起始節(jié)點(diǎn)和單個鏈接的結(jié)束節(jié)點(diǎn),其中所述與所產(chǎn)生鏈接關(guān)聯(lián)的數(shù)據(jù)包括識別除去所述節(jié)點(diǎn)的數(shù)據(jù)和與以所述節(jié)點(diǎn)作為起始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)的刪除鏈接關(guān)聯(lián)的數(shù)據(jù)。
111.如權(quán)利要求109所述的裝置,其中所述鏈接編碼器可操作為識別包括節(jié)點(diǎn)對之間的包括所述節(jié)點(diǎn)對之間一對鏈接的路徑的部分;其中與所述節(jié)點(diǎn)之間所產(chǎn)生鏈接關(guān)聯(lián)的所述數(shù)據(jù)包括識別所述鏈接對合并的數(shù)據(jù)及與刪除鏈接關(guān)聯(lián)的數(shù)據(jù)。
112.如權(quán)利要求111所述的裝置,其中所述鏈接編碼器可操作為與代替一對合并鏈接的鏈接關(guān)聯(lián),該一對合并鏈接包括識別一對鏈接合并及與所述合并鏈接關(guān)聯(lián)的數(shù)據(jù)的級聯(lián)的數(shù)據(jù),所述數(shù)據(jù)以依賴于與每個所述鏈接關(guān)聯(lián)的數(shù)據(jù)量的順序級聯(lián)。
113.如權(quán)利要求98所述的裝置,其中所述形狀編碼器可操作為每個區(qū)域產(chǎn)生識別數(shù)據(jù),包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù);及識別在從所述第一節(jié)點(diǎn)到所選的定義所述區(qū)域另一頂點(diǎn)的第二節(jié)點(diǎn)的一對路徑中鏈接數(shù)的第一和第二數(shù)字。
114.如權(quán)利要求113所述的裝置,其中所述處理單元可操作為將每個所述節(jié)點(diǎn)與多個有序?qū)又械囊粋€關(guān)聯(lián),其中區(qū)域的所述第一節(jié)點(diǎn)包括定義一層中頂點(diǎn)的節(jié)點(diǎn),而所述第二節(jié)點(diǎn)包括定義與進(jìn)一步從與所述第一節(jié)點(diǎn)關(guān)聯(lián)的所述層而不是與定義所述區(qū)域頂點(diǎn)的其它節(jié)點(diǎn)關(guān)聯(lián)的層除去的層關(guān)聯(lián)的頂點(diǎn)的節(jié)點(diǎn)。
115.如權(quán)利要求114所述的裝置,其中所述接收器可操作為接收將所述柵格結(jié)構(gòu)中每個所述節(jié)點(diǎn)與定時數(shù)據(jù)關(guān)聯(lián)的數(shù)據(jù),所述處理單元將與相同定時數(shù)據(jù)關(guān)聯(lián)的節(jié)點(diǎn)與同一層關(guān)聯(lián)。
116.如權(quán)利要求98所述的裝置,其中所述形狀編碼器可操作為每個區(qū)域產(chǎn)生識別數(shù)據(jù),識別數(shù)據(jù)包括識別構(gòu)成所述區(qū)域頂點(diǎn)的一節(jié)點(diǎn)的數(shù)據(jù),識別定界所述區(qū)域的鏈接總數(shù)的數(shù)據(jù),及識別所述區(qū)域與已為其產(chǎn)生數(shù)據(jù)的區(qū)域共享的鏈接數(shù)的數(shù)據(jù)。
117.如權(quán)利要求98所述的裝置,其中所述形狀編碼器可操作為產(chǎn)生識別第一選定區(qū)域的數(shù)據(jù);及識別由所述平面圖定義的剩余區(qū)域的數(shù)據(jù),其中所述識別數(shù)據(jù)產(chǎn)生的順序是使為之產(chǎn)生識別數(shù)據(jù)的區(qū)域?qū)?yīng)于與前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域相鄰的區(qū)域。
118.如權(quán)利要求117所述的裝置,其中所述形狀編碼器可操作為每個區(qū)域產(chǎn)生識別定義所述區(qū)域頂點(diǎn)的節(jié)點(diǎn)的數(shù)據(jù),該數(shù)據(jù)包括識別所述節(jié)點(diǎn)相對于識別前面已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域頂點(diǎn)的節(jié)點(diǎn)位置的偏移值。
119.如權(quán)利要求118所述的裝置,其中所述偏移值包括識別所述節(jié)點(diǎn)在節(jié)點(diǎn)列表中的相對位置的偏移值。
120.如權(quán)利要求119所述的裝置,其中所述列表包括循環(huán)列表。
121.如權(quán)利要求119所述的裝置,其中所述偏移值包括識別所述列表中不同方向偏移的正或負(fù)數(shù)。
122.如權(quán)利要求119所述的裝置,其中所述列表包括識別已為之產(chǎn)生了識別數(shù)據(jù)的區(qū)域邊界頂點(diǎn)的節(jié)點(diǎn)列表。
123.如權(quán)利要求98所述的裝置,其中所述形狀編碼器可操作為產(chǎn)生識別數(shù)據(jù),識別數(shù)據(jù)包括為由所述平面圖定義的每個所述區(qū)域產(chǎn)生的所述識別數(shù)據(jù)的級聯(lián)。
124.如權(quán)利要求123所述的裝置,其中所述形狀編碼器可操作為產(chǎn)生以為所述區(qū)域產(chǎn)生識別數(shù)據(jù)的順序進(jìn)行排序的所述識別數(shù)據(jù)的所述級聯(lián)。
125.如權(quán)利要求98所述的裝置,其中所述差異產(chǎn)生器可操作識別數(shù)據(jù)產(chǎn)生包括與平面圖的鏈接關(guān)聯(lián)的所述產(chǎn)生的數(shù)據(jù)的級聯(lián)的數(shù)據(jù)。
126.一種記錄介質(zhì),存儲用于使可編程計(jì)算機(jī)執(zhí)行如權(quán)利要求1所述方法的計(jì)算機(jī)可實(shí)現(xiàn)處理器步驟。
127.一種記錄介質(zhì),存儲用于使可編程計(jì)算機(jī)配置成如權(quán)利要求62所述裝置的計(jì)算機(jī)可實(shí)現(xiàn)處理器步驟。
全文摘要
最初,嵌入模塊(22)確定柵格在兩維平面中的嵌入。然后,嵌入模塊(22)處理初始嵌入,以便產(chǎn)生沒有鏈接交叉的平面圖。然后,該平面圖由鏈接編碼模塊(24)簡化,表示柵格結(jié)構(gòu)的數(shù)據(jù)由形狀編碼模塊(26)產(chǎn)生,其中簡化的平面圖由識別定界由平面圖定義的區(qū)域的鏈接數(shù)的形狀編碼(42)和識別那些區(qū)域在平面圖中位置的數(shù)據(jù)及識別由鏈接編碼模塊(24)對柵格結(jié)構(gòu)所作修改的鏈接列表(43)表示。這些編碼使柵格中相同的子結(jié)構(gòu)利用相同的數(shù)據(jù)表示,從而適于利用傳統(tǒng)技術(shù)進(jìn)行壓縮。
文檔編號G10L15/08GK1705978SQ200380101380
公開日2005年12月7日 申請日期2003年10月10日 優(yōu)先權(quán)日2002年10月15日
發(fā)明者尤威·H.·約斯特, 邁克爾·R.·阿特金森 申請人:佳能株式會社