專利名稱:將象形文字字符的象形文字字形數據解壓縮的裝置和方法
技術領域:
本發明涉及在數據處理系統中的位圖字形數據的存儲。
背景技術:
在數據處理系統中文本數據一般被存儲為字符碼序列,在要求向用戶提供文本數據時,例如在屏幕上顯示它或打印它,則必須將每個字符碼轉換成能夠提供給用戶的象形文字的形式。這種轉換使用了字形數據,它對每一個字符碼指定一個象形文字的形式。一種字形數據是對每個字符碼存儲該字符的位圖的表示法。對于顯示和打印,這種位圖處理起來可以相對地簡單一些。
在此種系統中發生的問題是在存儲字形數據和用于訪問這些字形數據的任何相關的數據時所使用的存儲容量的總量。在象形文字字符(例如中文、朝鮮文和日文字符)的情況下所占用的存儲器資源的總量能夠成為一將特殊的問題。在這些場合,需要被表示的字符的數量可能非常之高,例如中國的象形文字字形可能包括13,000個不同的象形文字字符。
發明內容
人們強烈地期待能夠減少為處理字形數據所需的存儲容量的方法。
從一個方面看,本發明提供了一種分解象形文字字符的象形文字字形數據的裝置,所說的象形文字字符的非壓縮數據以N乘M像素位圖的形式出現,所說的裝置包括(i)一個熵譯碼器,用于將熵譯碼成許多個熵代碼,每個表示一幅P乘Q個像素的位圖,從而生成許多幅關于所說的象形文字的字符的P乘Q像素的位圖;以及(ii)用于將許多幅P乘Q像素位圖合并的邏輯,以生成關于所說象形文字字符的M乘N像素的位圖。
象形文字字形一般有非常多數目的字符。進一步講,每個單獨的字符可能在形狀上是非常之復雜以致于為了適當地表示它需要相對細化的位圖。本發明考慮到,在象形文字字符可能在形狀上非常復雜的同時,實際上在它們的形式中存在著相當大的冗余部分,如果字符被分為較小的小片(tile),則某些形式的小片比其他小片許多倍更為頻繁地出現。本發明的通過應用熵編碼表示每個圖標來利用這個現象,使得通常出現的圖標可被給予較小的熵代碼而不經常出現的圖標被給予較大的熵代碼。用這種方式,只要比較光柵掃描字符位圖,就能夠達到增大了的數據壓縮度并由此得到壓縮的比特流。赫夫曼(Huffman)編碼是一種特別適合于用作此種目的的熵編碼形式。
對于P乘Q像素位圖,二比一的高寬比已被發現是特別適合的。具有16×16或24×24像素大小的單個的象形文字字符位圖較好地兼顧了所能顯示的細節和所需的存儲容量的總量。
在與上面提及的討論相類似的方法中,可以體會到,通過一個受軟件控制工作的通用數據處理器可以方便地提供本發明的解壓縮技術所需要的赫夫曼譯碼器和合并邏輯。
從一個附加的方面來看,本發明提供用于壓縮象形文字字符的象形文字字形數據的裝置,所說的象形文字字符的非壓縮數據以N×M像素位圖的形式出現,所說的裝置包括(i)用于劃分所說象形文字字符的所說的N×M像素的位圖以產生許多幅P×Q像素位圖的邏輯;以及(ii)熵編碼器,用于將所說的象形文字字符的所說的許多P×Q像素位圖的每一幅熵編碼為熵代碼以生成表示所說象形字符的大量的熵代碼。
從另一方面看,本發明提供一種將象形文字字符的象形文字字形數據進行解壓縮的方法,所說象形文字字符的非壓縮數據以N×M像素位圖的形式出現,所說的方法包括的步驟有(i)對每個表示一個P×Q像素位圖的大量的熵代碼進行熵譯碼,以產生對于所說象形文字字符的大量的P×Q像素位圖;以及(ii)將所說的大量的P×Q像素位圖合并以生成所說的象形文字字符的所說的M×N像素的位圖。
從另一個方面看,本發明提供一個壓縮象形文字字符的象形文字字形數據的方法,所說的象形文字字符的非壓縮數據以N×M像素的位圖的形式出現,所說的方法包括的步驟有(i)劃分所說的象形文字字符的所說N×M像素的位圖以生成許多P
×Q像素的位圖;以及(ii)將所說象形文字字符的所說的許多P×Q像素位圖的每一個進行熵編碼成為熵代碼,以產生表示所說象形文字字符的許多個熵編碼。
將會理解到,當按索引排列的表以及具有熵代碼的小片能夠分別被使用時,它們一起提供一個特別改進了的系統。
本發明的以上的和其它的目的,特性和優點將從下面的說明性實施例的詳細描述中明顯地看到,該實施例應與附圖結合起來理解。
圖1說明一個字形符代碼和該字形符代碼的可變長度編碼數據以及該字形符的圖像表示之間的關系;圖2說明將一個A位字形符代碼映像于在保存表示該字符的一個像素位圖的可變長度編碼的數據的存儲器內的一個存儲單元的方法;以及圖3是說明圖2的系統的工作的流程圖;圖4說明一個象形文字字符位圖以及在赫夫曼編碼之前它的成小片狀的劃分;圖5和6分別是說明象形文字字符的壓縮和解壓縮的流程圖;以及圖7圖示一個用于完成關于圖1至圖6所描述的方法的通用數據處理系統。
具體實施例方式
圖1說明表示在一種象形文字字形中的一個字形符的字符代碼2,該象形文字字形是一個中文字符字形并且一般可能包括大約13,000字符。為此,采用雙字節字符代碼。
字符代碼2可以被映射到表示所涉及的中文象形文字字符6的位圖可變長度編碼數據4。當著這個可變長度編碼數據4被譯碼時(例如赫夫曼譯碼的,映射到組分小片并組合成字符形式),則所表示的中文象形文字字符6可以被顯示和打印。
當著表示象形文字字符的像素位圖數據是可變長度編碼的,系統必須確定在此可變長度編碼的數據流中在何處將會找到與特定字符代碼6相對應的特定數據4。圖2說明完成這種映像的方法。
兩字節字符代碼2需要被映射至表示該字形中所有象形文字字符的像素位圖的赫夫曼編碼的數據流10里的起始位置8。有關特定字符的可變長度編碼數據4形成總的可變長度編碼數據10的一小部分。
該處理的第一階段是利用字符代碼(A位字符代碼)的9個最重要的位(B位段)去檢索表1。表1是一個512入口的表,每行中有6字節數據。因此,字符碼2的9個最高有效位9MSB能被用來直接檢索表1內的行入口。
表1中所檢索行的最初兩個字節提供一個偏置值TB20ff指示在第二表表2里的一個位置。表1中該行里的隨后三個字節提供一個赫夫曼偏置值Huffoff,指示在赫夫曼編碼的數據流10里的一個起始偏置值。表1的所檢索的行里的最后一個字節給出一個與具有對應于表1中該行的9個最高有效位的這些象形文字字符有關的平均長度值ArSz。
表2偏置值TB2off被用來指示表2內與9MSB值相對應的區域18的開始位置14。表2內的入口包括兩字節的行,兩字節行的前面7位被用來與字符代碼2的相應的最低7個有效位7LSB匹配。表2的行中的剩余9位提供一個帶符號的誤差值Err。
知道了表2中的起始點14、表2中下一區域的起始點也能從表1中的下一個入口讀出。這在表2里產生一個范圍,在其中可以找到任何匹配的入口。于是通過將字符代碼2的最低7個有效位與正在搜索的范圍中點處表2中入口的最高有效的7位相比較,這個范圍就被二進制地搜索。中點入口可能匹配或者換句話說能夠確定無論如何匹配的入口將在正被試驗的當前中點的上方或下方。如果中點不匹配,則在上方或下方的被識別范圍的新的中點將被用來作下一次試驗。這個過程被重量直到匹配被發現,或者確定對于該代碼在表2中不存在有效的入口為止。
換句話說,從表2中的起始點14開始,向下對表2的入口進行搜索直到找到一個入口,該入口的7個最高有效的位與字符碼2的最低7個有效位相匹配。
在表中產生匹配的入口將在第N行。表2里的諸入口可以在每個范圍內對應于字符碼2的9個最重要的位被分類以按照可能的有效字符碼的最低的7個有效位的順序進行,當著對應于字符碼2,表2中的行被找到,則關于此行的誤差值Err可以被讀出。
如果赫夫曼編碼的數據流10被存儲在起始地址為Huff Date Start的存儲器中,則為尋找與字符代碼2相對應的數據的位置的一級近似通過將赫夫曼偏置值加到起始地址上來達到。這指向一個位置16,從此位置開始具有與字符代碼相同的9個最高有效位的那些字符的赫夫曼編碼數據被存儲。表1還給出關于具有這9個最高有效位的字符代碼的平均長度值AvSz,因此,當在表2中進行搜索并確定在區域18中的第N行是匹配于字符代碼的最低7個有效位的行時,則數據4的起始地址的二級近似可以通過在地址16上加(AvSz*N)以得到地址20來作到,通過將地址20加上從表2讀出的關于該字符代碼2的誤差值Err就能獲得最終的地址8。
圖3是說明圖2所示過程的流程圖。在步驟22上,利用字符碼2的最高9個最高有效位完成了在表1中的查表操作以檢索表1里的一行。
在步驟24上,表2偏置值TB2off,赫夫曼偏置值Huffoff以及平均長度值AvSz全部被從表1中所檢索的行讀出。
在步驟26上,為找出與字符碼2的最低7位有效位匹配的入口,從由TB2off給定的位置開始在表2中進行搜索(從由表1指示的區域的頂部開始第N個)。
在步驟27,按照是否在表2中已經找到有效的匹配入口來進行試驗,如果有效的匹配入口沒有被找到,則過程中止。
在步驟28,從已在步驟26識別了的第N個入口讀出誤差值Err。
在步驟30,利用赫夫曼數據流10的存儲器中的起始地址Huff DataStart加上值Huffoff,(AvSz*N)和Err計算赫夫曼編碼的可變長度數據的地址。這個計算值指出關于字符碼2的赫夫曼編碼數據4的起始地址8。
在步驟32,從所計算的地址讀出赫夫曼編碼數據4。
在步驟34,赫夫曼編碼數據4被分解并且繪制出字符的象形文字位圖表示。
圖4顯示一幅表示象形文字字符6的N×M位圖36。在此例中位圖是一幅16×16像素的位圖。在較高分辨率的系統中24×24像素的位圖可以被使用。
像素位圖36被分成32個4×2像素小片38。這些小片的每一個能用一個8位碼唯一地標識,因為在小片中有256個可能的變化。
本發明利用了這樣一種認識即一些小片圖樣比起其它的更為常用得多。因此,表示小片的8位碼38可以用赫夫曼代碼來代替,經常出現的小片被給予短的赫夫曼代碼。用這種方式,象形文字像素位圖字形數據能夠被有效地壓縮。
圖5是一個說明象形文字字符的壓縮的流程圖。在步驟40,16×16像素位圖被分成32個4×2像素的小片。在步驟42,這些小片的每一個被分配一個在0到255之間的與其對應的代碼值,在步驟44,在0到255之間的32個值是使用對整個字形的赫夫曼編碼表作赫夫曼編碼的,以產生相應的赫夫曼代碼流。這個赫夫曼代碼流即是16×16像素位圖36的可變長度編碼表示。
圖6是說明關于象形文字字符的像素位圖的赫夫曼編碼的字形數據的解壓縮流程圖。在步驟46,赫夫曼代碼流被譯碼以產生在0到255之間的32個值的流。這些8位值每個對應于一個4×2像素小片的特定的像素圖樣。在步驟48,這些像素圖樣被查找并且以預置的順序被合并(例如8個水平行的水平光柵,每行包括4個小片)。這組合成16×16像素的位圖36并可以在步驟50被繪制(例如顯示或打印)。
圖7圖示一個典型的數據處理系統,它可以被用來完成上述的方法。公用總線52連接中央處理器54,隨機存取存儲器56,只讀存儲器58和顯示驅動電路60。顯示器62,比如液晶顯示板,是由顯示驅動電路60驅動的。
在工作時,存儲在只讀存儲器58中的軟件可以由中央處理單元54執行以實現上述的方法。圖7所示系統工作時完成先前所描述的各個邏輯單元的任務。
只讀存儲器58還存儲赫夫曼編碼字形數據10,第一表表1和第二表表2。
當著象形文字字符的像素位圖36已被中央處理單元54譯碼時它可以被送至顯示驅動電路60,該電路將依次提供必需的信號給顯示器62,以向用戶顯示象形文字字符6。
雖然本發明的說明性的實施例已經在這里參照附圖被詳細說明,應該理解,本發明并不局限于這些明顯的實施例,在那些由精通本專業的人員所作的不偏離本發明的領域和精神的各種各樣的變化和修改亦能夠是有效的,就象附加權利要求所規定的一樣。
權利要求
1.用于將象形文字字符的象形文字字形數據解壓縮的裝置,所說的象形文字字符的非壓縮數據以N×M像素位圖的形式出現,所說的裝置包括(i)用于對許多熵代碼進行熵譯碼的熵譯碼器,每個熵代碼表示一個P×Q像素位圖,產生用于所說象形文字字符的許多P×Q像素位圖;以及(ii)用于將大量的P×Q像素位圖合并產生用于所說的象形文字字符的所說的N×M像素的位圖的邏輯。
2.按照權利要求1所要求的裝置,其中所說熵譯碼器是一個赫夫曼譯碼器并且所說的熵代碼是赫夫曼代碼。根據關于所說的象形文字字形數據的赫夫曼編碼表,每個代碼表示一個所說的P×Q像素位圖。
3.按照權利要求1中所要求的裝置,其中所說的P×Q像素位圖為高寬比不等于1比1的矩形。
4.按照權利要求3中所要求的裝置,其中所說的P×Q像素位圖具有2比1的高寬比。
5.按照權利要求4要求的裝置,其中P是4而Q為2。
6.按照權利要求1要求的裝置,其中N為24且M為24。
7.按照權利要求1要求的裝置,其中N為16且M為16。
8.按照權利要求1所要求的裝置,其中所說的熵譯碼器和所說的關于合并的邏輯是由受軟件控制的數據處理器邏輯操作所提供的。
9.用于壓縮關于象形文字字符的象形文字字形數據的裝置,所說的象形文字字符的非壓縮數據以N×M像素位圖的形式出現,所說的裝置包括(i)用于劃分所說象形文字字符的N×M像素位圖產生許多P×Q像素位圖的邏輯;以及(ii)熵編碼器,用于將對所說的象形文字字符的所說的許多P×Q像素的位圖中的每個進行熵編碼成為熵代碼以產生大量的表示所說象形文字字符的熵代碼。
10.將象形文字字符的象形文字字形數據解壓縮的方法,用于所說的象形文字字符的非壓縮數據以N×M像素位圖的形式出現,所說的方法包括的步驟有(i)對大量的每個表示一P×Q像素位圖的熵代碼進行熵譯碼以產生大量的用于所說的象形文字字符的P×Q像素的位圖;以及(ii)合并所說的大量P×Q像素位圖生成用于所說的象形文字字符的所說的N×M像素的位圖。
11.壓縮關于象形文字字符的象形文字字形數據的方法,用于所說的象形文字字符的非壓縮數據以N×M像素位圖的形式出現,所說的方法包括的步驟有(i)劃分用于所說象形文字字符的所說的N×M像素位圖以產生許多的P×Q像素位圖,以及(ii)將用于所說象形文字字符的所說的許多個P×Q像素的位圖的每一個進行熵編碼成為熵代碼以生成表示所說的象形文字字符的許多的熵代碼。
全文摘要
表示象形文字字形的字符6的字符代碼2可以被用來確定在與所涉及字符6有關的全部字形的像素數據的可變長度編碼數據流10中的地址8。這個存取經過兩級表查詢,第一級表表1返回一個在編碼的數據流內的初始偏置Huffoff,一個字符數據的平均長度AvSz和對第二表表2的一個指針TB2off。于是第二表被用來查詢一個誤差值Err,利用該誤差Err來修正由表1中的信息所產生的地址的估計值以及在第二表表2內的位置N該位置導致匹配。象形文字字符6的像素位圖36能夠被劃分成較小的小片38并且每塊這樣的小片給定一個碼。該小片代碼于是可以被赫夫曼編碼以提供像素位圖字形數據的高效壓縮。
文檔編號B41J5/44GK1495617SQ031284
公開日2004年5月12日 申請日期1999年7月5日 優先權日1999年2月5日
發明者D·H·塞姆斯, D H 塞姆斯 申請人:Arm有限公司