專利名稱:序列字根法漢字信息處理技術的制作方法
本發明是計算機漢字信息處理領域不設漢字庫而能處理漢字的一項新技術。
計算機漢字信息處理的研究已獲得較大進展,并已在許多領域得到應用。圖1列出了三種有代表性的漢字處理方法。圖1(a)是當前較為流行的漢字處理方法。該法的特點是機內有一個漢字庫(3),存一定字數的點陣信息,輸入時將漢字按某種編碼用鍵盤(1)送入機器,由機器換碼(2)后變成機中的內部碼,供內部處理用。在輸出時根據漢字的內部碼到字庫(3)里取出漢字點陣信息,直接送輸出設備(4)輸出。由于字庫里存的是點陣,輸出時較易處理。缺點是占內存大,軟盤字庫速度太慢;EPROM字庫價格較貴。
為了減少占內存容量,不少單位研制了壓縮字庫。壓縮字庫有多種類型,但采用最多的是圖1(b)所示的字根式壓縮漢字庫。字根庫(8)中收存組成漢字的字根信息,壓縮字庫(7)中收存每個漢字有哪些字根以及這些字根的相對比例關系的信息。該法輸入方法與整字存貯的方法相同,在輸出時,由漢字的機內碼取出字庫中的字根組合信息,配合字根信息合成漢字(9)后輸出。該法較圖1(a)所示方法可大大節省內存,但4000字仍需幾十K內存,另有字型質量差,合成漢字速度低的問題。
本發明的發明人之一于明江,1983年5月在武漢召開的中國中文信息研究會第二次全國學術會議上,發表了題為《無字庫漢字信息處理》的論文,首次提出了“無字庫漢字信息處理”的概念,并闡述了一種不設漢字庫的構思。根據這一構思,漢字處理的過程如圖1(c)所示。輸入時將漢字分解成一串序列字根用鍵盤(11)輸入機內,經(12)代換成序列字根代碼串,在存貯、處理時同英文計算機處理字符串一樣處理字根串,而在輸出時,根據字根串的定位信息及字根信息從字根庫(14)取出字根筆劃端點坐標合成一個漢字(13)后,經輸出設備(15)輸出。經原理性實驗,證明該法原理是可行的,但存在合字速度慢,字型質量差的問題。
發明目的把無字庫漢字信息處理的設想推進到實用階段。為計算機漢字信息處理開辟一條更加合理的可行之路。
詳細技術說明為把無字庫漢字信息處理的設想推進到實用階段,在序列字根代碼系、漢字輸入與機內代碼形成、序列字根代碼變換成漢字點陣模圖的三個關鍵環節上,發明了一系列新的技術和方法。
一、序列字根代碼系的構成1.序列字根代碼系的構成序列字根代碼系是一種與GB1988-80七位編碼字符集兼容的不等長代碼系。它最適合在中英文混合處理的電子計算機或其他設備內部使用。它的主要元素包括(1)漢字基本構件(字根符),(2)基本構件的排列(定位符),(3)漢字區分標志(標識符),也可含有(4)擴展漢字處理功能的其他信息(格式控制符)。
序列字根代碼系主要元素的取值范圍,除了標識符之外,均在GB1988-80字符集中相當于10個阿拉伯數字和26個大寫字母的位組范圍內,也就是圖2中畫有斜線的3/0~3/9和4/1~5/10這36個位組。而標識符是GB1988-80字符集中除前述36個位組之外的任意一個圖形字符所在的位組。
字根符由兩個字節組成。前面的為第一字節,后面的為第二字節,每個字節都用GB1988-80中3/0~3/9和4/1~5/10的位組表示。其碼值需根據所選字根的多少,選擇上述36個位組中全部或部分位組成統一編碼后確定。
定位符也由兩字節組成。第一字節是選定的標識符,第二字節是3/0~3/9和4/1~5/10的36個位組中的一個。
格式控制符由前導的三個字節和若干參數組成。前導的三字節中,第一字節是標識符。第二字節是3/0~3/9和4/1~5/10這36個位組中除定位符占用的以外的一個。第三字節是上述36個位組中的一個。
2.編碼的用法(1)標識符的任意指定標識符是定位符和格式控制符中不可缺少的一部分。在每種語言環境下,都可由用戶(而不光是系統改造者和系統設計者)通過鍵盤或其他設備在標識符的取值范圍內任選一個。標識符指定后,由機器在需要時自動插入,用戶不再干預。
(2)代碼系的進入選定標識符后,定位符、格式控制符均以標識符打頭。而漢字的第一個符號必然是定位符,因此,只要一見標識符,即宣告進入本代碼系。
(3)代碼系的退出每個定位符都隱含著其后字根的個數,格式控制符隱含著參數個數,一旦條件滿足,便自動退出。
(4)中英文混合的文字串中之英文被選作標識符的位組上的符號本身可重復兩次(用戶只按一次,自動插入一次)。其他字符原樣使用。
(5)英文字符當作漢字構件使用時的表示因3/0~3/9和4/1~5/10的位組已用作定位符、格式控制符或字根符的代碼,所以,0~9,A~Z這36個字符在字根碼表中重新編碼(可參見圖4),視同字根一樣處理。其他字符需在前邊插入一個標識符。這些插入工作是機器自動進行的。
3.本編碼主要優點(1)在序列字根代碼組成中除標識符外,其余代碼相當于在10個數字和26個大寫字母范圍內。只要選一個合適的標識符,便能容易地兼容西文軟件。
(2)用序列字根代碼表示的每個漢字,都含有漢字結構和偏旁部首信息,并隱含有筆劃信息。可方便地按偏旁部首或筆劃處理漢字。定位符、字根符的代碼值均為有序值,把序列字根表示的漢字串拿到計算機內按代碼值直接排序時,可產生一種很有規律的按結構、字根、筆劃排列的漢字排列順序。
(3)本編碼字容量大,把圖4加以擴充后,可處理中國漢字,日本漢字,日本平假名、片假名及朝鮮文字等,不存在重碼問題。
(4)本編碼對設備適應性強。用于采用本發明技術設計的機器時,機內可不設漢字庫,由輸出部件直接合成點陣輸出,用于與已有漢字系統連接時,只需一張轉換碼表即可方便進行信息交換。
(5)能顯示漢字的設備,往往是具有點顯示控制的設備。如果僅用于顯示一般漢字,便不能發揮硬件設備的優勢。本編碼把諸如字體點陣大小、筆劃粗細一類漢字可見屬性和點圖形功能考慮在內,便可使西文軟件處理漢字同處理西文一樣方便,但又遠遠超出了西文軟件的原有功能。
二、漢字的輸入與機內代碼串的形成1.漢字輸入方法輸入漢字時,可采用專門設計的專用漢字中鍵盤或通用ASCII字符鍵盤,由操作者按照從左到右,從上到下,從外到內的規則分解漢字,配合定位結構(定位符)鍵按鍵輸入。
上述專用中鍵盤包括94個字根鍵(每個鍵上標有一個GB1988-80字符和5~7個字根),4或5個定位符鍵,5~7個輔助選擇鍵(與字根數相對應)及其他控制鍵。該鍵盤有別于其他字根式鍵盤的主要特點,是設立了獨立的定位符鍵。定位符鍵上標寫定位符符號,這些定位符對應的漢字結構是獨體結構(□),左右結構(
),上下結構(
),包圍結構(⊙)和疊加結構(
)。獨體結構的定位符也可不出現在鍵盤上。
將漢字分解為上述五類結構和這五類結構的重復嵌套組合結構,相應地只用到了五種定位符,實際使用的三十多種定位符,由計算機進行結構分析后自動代換。
2.漢字的結構分析把漢字分解為字根并配合五類定位符輸入計算機后,由計算機把輸入的定位符代換成同類、但參數不同的定位符,以求得與該漢字實際結構最接近的定位符。這個過程便是計算機對漢字結構的分析過程。
計算機賴以進行結構分析的主要依據是字根特征值。為此需為每個字根設兩種特征值X方向特征值和Y方向特征值。兩種特征值各占4位,合占一個字節。該值表征字根分別在X、Y方向的筆劃密度,通常在漢字中所占的大小比例等特點。字根特征值依相應字根碼值的大小順序存放在一個表(特征值表)中,當得到字根碼后,由字根碼直接換算成相應特征值在表中的地址,進而從該地址取出特征值。某種結構下的兩個字根特征值都取出后,由機器計算出兩字根的特征值相對比例,然后為該漢字確定一個合適的定位符。
3.該代碼產生方法的主要優點(1)盡管定位符有30多種,但操作者只需要記住五類結構就可以了,減輕了操作者的負擔。
(2)由計算機根據字根特征值確定定位符,使序列字根代碼串中含有了更加合理的漢字結構信息,從而使合成的漢字字型更趨美觀。
三、序列字根代碼串到點陣模圖轉換技術-漢字合成方法。
在漢字輸出時,機器根據序列字根代碼串中的定位符和隨后的字根符,取出相應的為字根定位的信息和字根的筆劃坐標數據信息,經相應的運算操作后合成漢字點陣模圖輸出。
1.字根在一個漢字中的定位方法為確定一個字根在合成的漢字中的大小和位置,引入幅度(P)和起始位置(M)兩個參數,其中幅度指在所選擇的Nx×Ny的點陣中,該字根在x(或y)方向上應占據的點數,起始位置指該字根在x(或y)方向上距y軸(或X軸)的最小距離。
每種定位符制約1~3個字根,每個字根都具有兩個方向上的幅度P和起始位置M,這樣,要為每種定位符存一組初始參數。每一個參數分別為用于第一層(非定位符嵌套情況時)第j個字根在K(K=X或Y)方向上的幅度P和起始位置MP1jko,M1jko這些參數以初始點陣數Nxo×Nyo設計,它們的取值范圍為0~(Nko-1)。
在多層次嵌套結構的漢字中,當前層定位符要受到前一層定位符的制約。圖6中的陰影部分,表示是第i層中第j個字根的四個定位參數PijxMijxPijyMijy。在Nxo×Nyo的點陣中,這些參數與前一層參數及定位符初始參數的關系為
(i≥2;1≤j≤3;k=x或Y)2.字根筆劃端點坐標數值存放方法字根庫里存放每個字根的筆劃端點坐標數值。這些數值是在Nxo×Nyo的點陣內,對每個字根字形進行設計后得出的,許多字根之間往往有一些相同坐標值的筆劃,將這些有共同筆劃的字根放在一起統一設計,按規律統一存放,而以不同起始地址和不同的筆劃數區分各字根的數據。這種方法我們稱作字根數據的部分重疊存放方法,圖8是這種方法的示意圖。圖8(a)為統一設計的8條筆劃線段,圖8(b)為按1~8順序存放線段數據后,根據不同字根,從不同起始地址開始順序取一組數據。圖示的6個字根,若分別存放共存27條線段,而采用部分重疊存放方法后,僅存8條。
這種字根庫的使用方法與單獨設計的字根庫用法完全一樣,都需要根據內存中設置的每個字根的數據起始存放地址和筆劃數取出相應坐標。
3.漢字合成方法原始坐標數值取出后,根據已算出的定位參數進行坐標數值的運算,就可換算成該字體筆劃端點坐標在漢字中的實際坐標值。實際坐標值與原始坐標值及定位參數的換算關系如下Xi j= (Pi j xNxo-1· XO+ Mi j x)Nx- 1NXo- 1③]]>Yi j= (Pi j yNyo - 1· YO+ Mi j y)Ny- 1Nyo- 1④]]>(i≥2;1≤j≤3)式中Xij、Yij是第i層第j個字根中的實際坐標值Xo,Yo是存放的字根原始坐標值Nx,Ny是字根所處的點陣數Nxo,Nyo是初始設計時的點陣數利用公式①~④,處在任意一層的一個字根的實際筆劃端點坐標都能計算出。分析①~④式可見,這些公式里的乘除混合運算具有 (P·Φ)/(No) 的形式。其中P是幅度,Φ是幅度、起始位置和原始坐標值三個量之一,它們的取值范圍都為0~(Nko-1),而No是初始點陣數減1,對某一個系統而言,它是一個常量。根據這些特點,我們可以以P為行,以Φ為列,設計一張P行×Φ列的二維速算表。該速算表可用于計算漢字中字根的幅度、起始位置、實際筆劃坐標。在Nk=Nko的情況下,求幅度只需查一次速算表,求起始位置、實際筆劃坐標也只查一次速算表和做一次加法運算。
一個漢字中全部字根的筆劃坐標轉換成實際坐標后,采用計算機圖形學方法,產生出一條條線段,最后生成漢字點陣模圖。該點陣模圖即可送輸出設備輸出。
采用上述序列字根代碼串到點陣模圖轉換技術的主要優點是①、占用內存較小。字根庫用部分重疊數據存放方法,使字根庫占內存容量下降。在Nko=16時,字根庫只占4K字節左右。加上全部轉換程序,總程序量為8K字節(Z80指令系統)。將這8K的程序和數據置入輸出設備中,該設備即可獲得最基本漢字輸出功能。
②、操作速度快。采用了前述查速算表方法,化乘除混合運算為查表取數操作,使從接收序列字根串開始到合成點陣模圖為止的合字速度在16×16點陣時達到200字/秒(時鐘3。9M,Z80ACPU)左右。
③、點陣任意可變,由式③、④可見,只要改變Nx,Ny的值,可將漢字筆劃端點坐標放大(或縮小)到任意整數值。
發明實施實例利用前述的“序列字根法漢字信息處理技術”,在EG3200微機系統上開發成功一個功能較強的漢字操作系統。該漢字操作系統主要技術特征是1.采用了前述的序列字根代碼系。其中使用34個定位符,分屬于前述的五大類。所選定位符及其第二字節編碼表如圖3所示,所選字根符及其編碼表如圖4所示。字根符的碼值是以字根的筆劃數為序排列的,同筆劃的字根是以橫(一),豎(丨),撇(丿),點(丶),折(乙)為序排列的。格式控制符第二字節選用5/10的位組。所選用的19種擴展漢字處理功能的格式控制符及其第三字節編碼表如圖5所示,在其后還可擴展任意點圖形功能。
2.可使用標準的ASCII鍵盤或特制的漢字中鍵盤輸入漢字。特制的漢字中鍵盤設有128個鍵,其中有字根鍵94個,定位符鍵四個,這四個定位符鍵是左右結構(
)上下結構(
),包圍結構(⊙)和疊加結構(
)。
3.采用了根據定位符的定位參數和字根筆劃端點坐標數值合成漢字點陣模圖的技術。初始定位參數及初始坐標數值均以16×16點陣設計,其中字根庫的設計采用了部分重疊存放方法,每一坐標值用4bit表示,一字節可存貯一個端點的兩個坐標值,每一筆劃線段占用兩個字節,字根庫總共占用4K字節,并設計了如圖7所示的16行×16列的速算表,使合成漢字速度達200字/秒。此外,在使用公式①~④時,對嵌套層次數進行了限制,規定2≤i≤8,對放大點陣數也進行了限制,規定Nk≤128。
該操作系統與CP/M2.2完全兼容,另外增加了如下功能①、與西文軟件高度兼容。原CP/M下的各類軟件(包括系統工具、高級語言、應用軟件)均可處理漢字。如操作系統下漢字可作文件名;在MACRO-80中,漢字可作注釋、標號、字符串;用ED可直接編輯漢字文本;在BASIC、FORTRAN等高級語言環境中可直接處理漢字,并可使漢字進入DBASEⅡ、SUPERCALS等一類應用軟件。
②、較強的文字處理功能字數已進行四萬字輸入試驗點陣大小在8×8到128×128之間由程序任意設定,共有120×120=14400種點陣供用戶選用。打印、顯示均可,不同大小點陣的字可同行出現。
筆劃粗細每種點陣下的字都可由程序控制筆劃粗細,橫豎可單獨在1~8點間控制。
字體方向每種點陣下每個字都能在四個方向旋轉反相方式黑底白字和白底黑字兩種③、直觀的輸入方法不管是專用鍵盤或通用鍵盤,都能做到直觀輸入,操作者每輸入一個定位符,可顯示定位符示意圖形,在一個字未輸入完時,一個變形的光標指向下一個字根應在的位置。
在EG3200上實現的漢字操作系統也可方便地移植到其他微機系統上去。
序列字根法漢字信息處理技術也可廣泛應用于處理或顯示漢字的各種設備、儀器中。例如可應用于計算機系統、單板機、終端機、測試儀器、工業控制設備、打印機、電報機、繪圖機、大屏幕顯示系統等。
對附圖的簡要說明圖1.幾種不同的漢字信息處理方法(a)整字存貯漢字庫方法(b)字根式壓縮漢字庫方法(c)無字庫序列字根組字方法圖中各代號的含義(1)、(5)、(11)鍵盤 (2)、(6)換碼(4)、(10)、(15)顯示器 (9)、(13)漢字合成(8)、(14)字根庫 (3)點陣式漢字庫(7)壓縮漢字庫 (12)序列字根代碼生成圖2.序列字根代碼在GB1988-80字符集中所占位置示意。
圖3.實例中選用的定位符及其第二字節編碼表。
圖4.實例中選用的字根符及其編碼表。
圖5.實例中選用的格式控制符及其第三字節編碼表。
圖6.字根在漢字中的定位參數示意。
圖7.實例中采用的速算表,其初始點陣為16×16。
圖8.字根筆劃數據的部分重疊存放示意。
(a)統一設計的8條筆劃線段(b)將(a)的8條線段按1-8順序存放后,從不同起始地址開始,順序取一組數據,即獲得不同的字根筆劃數據。
權利要求
1.一種計算機漢字信息處理領域不設漢字庫而能處理漢字的新技術,其特征是采用一種與GB1988-80中的七位代碼系兼容的,包含有定位符、字根符、標識符以及格式控制符的序列字根代碼系;在輸入漢字時,操作者使用標準小鍵盤或專用漢字中鍵盤,把漢字按五種結構分解后輸入計算機,經計算機根據字根特征值進行漢字結構分析,形成規范化的序列字根代碼串;在輸出時,根據定位符的定位參數和字根筆劃端點坐標數值,合成漢字點陣模圖供輸出。
2.權利要求
1中所述標識符的指定方法,其特征是它可由用戶(不光是系統設計者和系統改造者)在GB1988-80字符集內3/0~3/9和4/1~5/10的36個位組之外的圖形字符所占的位組內任選一個。
3.權利要求
1中敘及的定位符,其特征在于它由兩字節組成,其第一字節是選定的標識符,第二字節是GB1988-80字符集中3/0~3/9和4/1~5/10的36個位組中的一個,定位符確定后,可編出第二字節的編碼表。
4.權利要求
3中敘及的定位符編碼表,其特征是采用了圖3所示的34個定位符并對其第二字節進行了圖3的編碼。
5.權利要求
1中所述的字根符,其特征是它由兩字節組成,每個字節均采用GB1988-80字符集內3/0~3/9和4/1~5/10范圍內的位組表示,根據所選字根的多少,可采用上述36個位組的全部或部分編成字根碼表。
6.權利要求
5中敘述的字根碼表,其特征在于該表具有圖4所示的結構和字根,表中的字根碼值是以字根的筆劃數為序排列的,同筆劃的字根是以橫(一)、豎(丨)、撇(丿)、點(丶)、折(乙)為序排列的。
7.權利要求
1中敘及的格式控制符,其特征在于它由前導的三字節和若干參數組成,前導的三字節中,第一字節是標識符,第二字節是GB1988-80中3/0~3/9和4/1~5/10的36個位組中定位符不占用的一個,第三個字節是上述36個位組之一,格式控制符選定后,可用上述36個位組中的全部或部分編出第三字節編碼表。
8.權利要求
7中敘及的格式控制符第三字節編碼表,其特征是選用了圖5所示的格式控制功能及其第三字節編碼表。
9.權利要求
1中敘及的漢字輸入過程中按五類結構分解漢字的方法,其特征是操作者只把漢字結構分為獨體結構、左右結構、上下結構、包圍結構、疊加結構五類及其嵌套組合,由計算機根據字根的特征進行漢字結構分析后自動確定實際的漢字結構,自動代入合適的定位符。
10.權利要求
1中敘及的漢字輸入時使用的中鍵盤,其特征是鍵面上設有四個定位符鍵,分別表征左右結構、上下結構、包圍結構和疊加結構四類漢字結構。
11.權利要求
1中敘及的根據字根特征值進行漢字的結構分析的方法,其特征在于為每個字根分別設了X方向和Y方向的特征值。這些特征值分別表征字根在X方向和Y方向的筆劃密度、通常在漢字中所占的大小比例等特點。
12.權利要求
1中敘及的根據定位符的定位參數和字根筆劃端點坐標數值,合成漢字點陣模圖的方法,其特征是把定位參數與字根的筆劃端點坐標數值建立了下述的(1)式-(4)式的聯系,采用速算表代替乘除混合運算,首先計算出當前層字根的定位參數,再把取出的按部分重疊存放方法存放的字根原始筆劃端點坐標數值換算成實際坐標數值,利用計算機圖形學方法產生出筆劃線段。定位參數與筆劃端點坐標數值的關系是P1jk=P1jkoPi j k=P1 j k O·P (i - 1 )jkNko- 1(1)]]>M1jk=M1jkoMi j k= M (i - 1 )jk +M1 j k O· P (i - 1 ) jkNk O- 1(2 )]]>Xi j= (Pi j xNxo-1· XO+ Mi j x) ·Nx- 1NXo- 1(3)]]>Yi j= (Pi j yNyo - 1· YO+ Mi j y) ·Ny- 1Nyo- 1(4)]]>(i≥2 1≤j≤3 k=x或y)上述四式中各字母符號含義為P-幅度。在所選點陣中該字根在X(或Y)方向上應占據的點數。M-起始位置。該字根在X(或Y)方向上距坐標系原點的最小距離。X、Y-一個端點的兩個坐標值。Nx、Ny-點陣數,組成Nx×Ny的點陣。幾個下標的含義i-層次數。表征該參數是在嵌套結構漢字中所處第i層的參數。j-字根數。表征該參數是在當前層結構中第j個字根的參數。k-方向。表征該參數是X(或Y)方向的參數。x-X方向。表征該參數是X方向的參數。y-Y方向。表征該參數是Y方向的參數。o-系統原始參數
13.權利要求
12提到的速算表,其特征是根據權利要求
12中的公式(1)~(4)中可將一部分乘除混合運算抽象為 (P·Φ)/(No) ,而No在某一具體環境下是一常數這樣一個特點,設計一個P行×Φ列的二維表格,用于以查表代替乘除混合運算,從而加快處理速度。
14.權利要求
13提及的P行×Φ列的二維表格,其特征在于P、Φ各取16,No取為15,設計出如圖7所示的速算表。
15.權利要求
12中敘及的部分重疊存放方法。其特征是在設計字根庫時,將具有共同筆劃的字根統一設計、統一存放,而以不同起始地址和不同的筆劃數區分各字根的筆劃數據。
專利摘要
本發明是計算機漢字信息處理領域的一項新技術。其特征是機內不設漢字庫。采用了一種GB1988-80字符集兼容的不等長序列字根代碼系。該序列字根代碼自身帶有字根定位信息。在輸入漢字時,由計算機根據輸入的定位符和字根符。取出每個字根的特征值進行漢字結構分析后,生成規范化的序列字根代碼。輸出時根據定位符的定位參數和使用“部分重疊存放方法”存放的字根筆劃端點坐標數值。用特設的速算表代替復雜的乘除混合運算,從而快速地合成漢字點陣模圖供輸出。
文檔編號G06F3/14GK85102473SQ85102473
公開日1987年6月17日 申請日期1985年4月1日
發明者于明江, 李中偉, 于靜 申請人:山東電子研究所導出引文BiBTeX, EndNote, RefMan