亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多字體全字號(hào)印刷漢字的產(chǎn)生方法

文檔序號(hào):110613閱讀:715來源:國知局
專利名稱:多字體全字號(hào)印刷漢字的產(chǎn)生方法
本發(fā)明所涉及的是漢字及其它字符的計(jì)算機(jī)產(chǎn)生、輸出方法及設(shè)備。
在一切中文計(jì)算機(jī)系統(tǒng)、中外文排版印刷系統(tǒng),特別是各種微型機(jī)漢字系統(tǒng)和微機(jī)印刷系統(tǒng)以及打字機(jī)系統(tǒng)中,如何用最有效的方法產(chǎn)生各種字體和各種字號(hào)的大量印刷體漢字,是本領(lǐng)域中需要解決的一個(gè)重要課題。如果用完全不壓縮數(shù)據(jù)的整字存貯法,產(chǎn)生一萬個(gè)漢字的30種不同字體,每種字體20種不同階次的點(diǎn)陣,所需總存貯量在100千兆字節(jié)以上,是一般計(jì)算機(jī)系統(tǒng)無法接收的。目前普遍采用字形數(shù)據(jù)壓縮方法,如“整字壓縮法”把每個(gè)漢字點(diǎn)陣分別孤立地予以壓縮,這種方法的數(shù)據(jù)壓縮率相當(dāng)?shù)?,需要?shù)十兆字節(jié)的存貯量。“字元法”把成千上萬個(gè)漢字的公用字元抽取出來,用它們?nèi)ソM成一切漢字,從而達(dá)到壓縮存貯量的目的,但其存貯量仍然較大。最突出的例子是北京大學(xué)王選1982年6月1日向歐洲申請的一項(xiàng)專利(Europeam Patent Application NO.82302816·2)。這項(xiàng)專利把每個(gè)漢字看作由筆劃組成,筆劃分為規(guī)則的與不規(guī)則的兩類,對規(guī)則筆劃(橫、豎、折)用三至四個(gè)字節(jié)描述它們在漢字中的位置及其形狀特征;對非規(guī)則筆劃(如點(diǎn)、撇、捺)則用包絡(luò)線表示,并用直線段逼近包絡(luò)線。復(fù)原輸出時(shí),從壓縮數(shù)據(jù)首先產(chǎn)生標(biāo)記字點(diǎn)陣,然后對標(biāo)記字點(diǎn)陣逐點(diǎn)掃描、判斷,產(chǎn)生字形點(diǎn)陣輸出。這項(xiàng)專利已完全實(shí)現(xiàn),它以5兆字節(jié)存貯量提供從62×62至576×576共16種字號(hào),9種字體的7千漢字。對5號(hào)字平均每字存貯量約100字節(jié)。速度每秒100字。然而,這一方法所用存貯量仍較大,利用這一方法制作的漢字發(fā)生器因造價(jià)較高,其應(yīng)用范圍有限,特別是該方法不太適用微機(jī)漢字系統(tǒng),微機(jī)輕印刷系統(tǒng)及臺(tái)式,手提式中外文電子打字系統(tǒng)等內(nèi)存貯量小的設(shè)備。
本發(fā)明的目的,是為中文計(jì)算機(jī)系統(tǒng)、中外文印刷系統(tǒng)、特別是各種微型機(jī)漢字系統(tǒng)和微型機(jī)印刷系統(tǒng)以及中外文電子打字系統(tǒng)提供一個(gè)廉價(jià)的多字體全字號(hào)精密印刷體漢字及其它各種文字的半導(dǎo)體通用壓縮字庫。
本發(fā)明建立的壓縮字庫,所采取的技術(shù)方案是將漢字的字形結(jié)構(gòu)組成與筆劃形狀的描述分開處理,對組成漢字的若干基本筆劃按一定順序一一編碼、貯存,并按統(tǒng)一規(guī)律組成各層次的結(jié)構(gòu)代碼;解壓時(shí),利用坐標(biāo)將基本筆劃組成漢字“骨架”結(jié)構(gòu),同時(shí)根據(jù)筆劃段的信息描述筆形,生成漢字全信息點(diǎn)陣而輸出。
其具體方案如下
一.基準(zhǔn)字庫與基準(zhǔn)點(diǎn)陣本發(fā)明以印刷業(yè)常用的宋體字為基準(zhǔn),基準(zhǔn)點(diǎn)陣為48×48。采用32-12.8之間的其他點(diǎn)陣都是可行的。
二.基本筆劃及其代碼所有宋體字由有限N個(gè)基本筆劃在平面上依一定位置排列而成。用N個(gè)數(shù)碼表示上述N個(gè)基本筆劃。這N個(gè)數(shù)碼叫作筆劃代碼。N個(gè)基本筆劃的形狀即其輪廓線彼此都不相同。這里的基本筆劃都是數(shù)字化了的0-1點(diǎn)陣。沒有任何兩個(gè)基本筆劃具有相同的0-1點(diǎn)陣是本發(fā)明減少字庫所需存貯量的有效措施之一。
三.基本筆劃板及準(zhǔn)線每個(gè)基本筆劃被劃在一塊矩形網(wǎng)格板上,圖1、圖2是一些代表性的筆劃板。每個(gè)筆劃有一條中線(虛線)叫作準(zhǔn)線。矩形板左上角的角點(diǎn)以0表示。筆劃最左點(diǎn)(最上點(diǎn))到矩形板左邊線(頂邊線)的距離分別以△X和△Y表示,它們通常是很小的數(shù),0或1或至多是2,單位為比特(位)。矩形板邊線的長度可以無限。于是,一個(gè)筆劃板上的筆劃由它的包線、準(zhǔn)線、△X和△Y描述其位形特征。
基本筆劃與基本筆劃板一一對應(yīng),基本筆劃代碼也是它們筆劃板的代碼。
四.漢字板和筆劃位置的確定每個(gè)漢字被看成寫在一塊矩形網(wǎng)板上(圖3)。或者說,漢字是由筆劃板在漢字板上保持矩形邊彼此平行移動(dòng)到一定位置而構(gòu)成的。把漢字板看作漢字坐標(biāo)系,則筆劃在漢字中的位置可由該筆劃板左上角點(diǎn)O在漢字坐標(biāo)系O0XY中的坐標(biāo)(x、y)確定。
五.漢字結(jié)構(gòu)的壓縮的代碼表示圖3的漢字“個(gè)”由筆劃代碼分別為a、b、c的三個(gè)筆劃構(gòu)成,設(shè)(xa、ya),(xb,yb),(xc,yc)分別是三個(gè)筆劃在漢字坐標(biāo)系中的坐標(biāo),漢字“個(gè)”可以用如下的數(shù)字串表示Z↑
(axa ya bxb yb cxc yc) (1)(1)式是漢字字形結(jié)構(gòu)的壓縮的代碼表示。
筆劃代碼和它的坐標(biāo)統(tǒng)稱一個(gè)結(jié)構(gòu)代碼。
六.漢字結(jié)構(gòu)數(shù)據(jù)的進(jìn)一步壓縮-定義子字如果只按(1)式描述為許多漢字及復(fù)雜子字所共用的簡單子字,再由簡單子字構(gòu)成復(fù)雜子字乃至偏旁、部首,最后由偏旁部首構(gòu)成漢字,則描述漢字結(jié)構(gòu)所需的數(shù)據(jù)可進(jìn)一步減少。
七.用更少的數(shù)據(jù)描述更多的子字-筆劃的特殊順序像田日口
等五個(gè)子字是漢字中常常出現(xiàn)的,但如分別用筆劃代碼及其坐標(biāo)表示,則上述五個(gè)子字總共需要20個(gè)結(jié)構(gòu)代碼。因?yàn)檫@五個(gè)子字形成一個(gè)子字串,其中每一個(gè)是它的前一個(gè)的子字,如果我們按圖4指出的筆劃順序編碼出字,則實(shí)際上同時(shí)完成了上述五個(gè)子字的編碼,而總共只用到6個(gè)結(jié)構(gòu)代碼。當(dāng)從第一個(gè)筆劃順序往下取數(shù),得到田字的結(jié)構(gòu)代碼序列;從第二個(gè)筆劃順序往下取,得到日字的代碼序列。其他子字可依次得到。
對于其他成串的子字,也可按上述方法編碼,得到壓縮結(jié)構(gòu)數(shù)據(jù)的效果。
八.結(jié)構(gòu)代碼的數(shù)據(jù)形式結(jié)構(gòu)代碼在存貯器中如下表所示|S|I|x|y|△x1|△y1|△x2|△y2|其中I字段占1位,如果I=0,則C字段是一個(gè)基本筆劃代碼,X-Y字段分別是C的坐標(biāo)。如果I=1,則C是某個(gè)子字的代碼。S字段也是一位,如果S=1,則表示以下的結(jié)構(gòu)代碼屬于另一個(gè)子字。關(guān)于△X、△Y字段的意義以后再作說明。
九.基本筆劃劃分為若干基本筆劃段許多基本筆劃被分成筆頭、筆身、筆尾等若干個(gè)基本筆劃的串接?;竟P劃段具有這樣的性質(zhì)你可以而且只可以從X方向自左向右進(jìn)入它一次。因此像圖2的“勾”不是基本筆劃段,因?yàn)閺腁線的上方(見圖2)可以進(jìn)入“勾”兩次。如果沿A線把“勾”截為兩段,則這兩段都是基本筆劃段。
把筆劃分成許多基本筆劃段,其一是為了描述的簡便。其二是為了壓縮描述筆劃形狀所需的數(shù)據(jù)量,因?yàn)榛竟P劃段常為許多基本筆劃所共用,把它們抽出來后只需描述一次即可。而且以后只需改變筆劃段,就可以改變字形,從而有效地生成更多字體。
圖5、圖6給出筆劃的分段表示。必須指出,在結(jié)構(gòu)代碼中只有基本筆劃代碼,在描述基本筆劃的形狀時(shí)我們才將它分解成多個(gè)基本筆劃段的串接。
十.基本筆劃串的有效描述圖7有6個(gè)筆劃,除了筆頭略有區(qū)別外,每個(gè)筆劃是第一筆劃a的一部分。如果逐一描述每個(gè)筆劃的形狀,需要較多的數(shù)據(jù)。實(shí)際上只要描述第一個(gè)筆劃a和六個(gè)筆劃頭即可,其他五個(gè)筆劃的筆身筆尾都可以從筆劃a中截取出來。
十一.筆劃段的描述每個(gè)筆劃段的左右兩條邊線均由L個(gè)正整數(shù)描述,它們分別是離散邊線的L個(gè)橫坐標(biāo)值。L叫作筆劃段的長度。我們也常說該筆劃段有L個(gè)筆元。
筆劃段的另一個(gè)描述方式是給出兩條邊線值分別對上一個(gè)邊線值的差值,這可以使筆劃數(shù)據(jù)占用的存貯量更少。
對點(diǎn)和大多數(shù)的撇與捺,用以下方式描述更節(jié)約存儲(chǔ)量,這對于基本筆劃很多的楷體字很有意義用一個(gè)6位數(shù)表示筆劃段左邊線上第一點(diǎn)的橫坐標(biāo),用一個(gè)3位數(shù)表示右邊線對左邊線的增量。兩條邊線以下各點(diǎn)對上一點(diǎn)的差值都只用3位數(shù)字(一個(gè)符號(hào)位)表示,這可以節(jié)約將近一倍的存儲(chǔ)量。
十二.豎筆劃與斜豎筆劃段的描述對這兩種筆劃段的描述用更簡單緊湊的方法對豎筆劃段只需指出其長度和寬度;對斜豎除指出段的長度和寬度外,還指出其斜率。它是一個(gè)整數(shù)n,表示每n個(gè)筆元移一位,當(dāng)n為十號(hào)時(shí)是右移,這是傾角大于90°的斜豎,反之是左移,即傾角小于90°的斜豎。
橫筆劃看成由三個(gè)基本筆劃段構(gòu)成(圖8)其中的第二段可以像豎一樣用長度與寬度兩個(gè)參數(shù)描述。
十三.壓縮數(shù)據(jù)的存貯字庫有三個(gè)數(shù)據(jù)區(qū),第一個(gè)區(qū)存貯結(jié)構(gòu)代碼,第二個(gè)區(qū)存貯基本筆劃段的數(shù)據(jù),第三個(gè)區(qū)存貯每個(gè)基本筆劃的裝配數(shù)據(jù)(連接信息)。
十四.壓縮數(shù)據(jù)的解壓與漢字的產(chǎn)生這是由拼字部件來完成的,當(dāng)它接收一個(gè)漢字國標(biāo)碼后,即可找到相應(yīng)漢字結(jié)構(gòu)代碼串的首地址并從該地址往下讀代碼串直到S=1為止。當(dāng)一個(gè)結(jié)構(gòu)代碼的I字段為1時(shí),此結(jié)構(gòu)代碼是組成該漢字的一個(gè)子字,它的C字段是該子字的代碼,實(shí)際是一指示器,指向存貯該子字的結(jié)構(gòu)代碼串的首地址。然后又由此地址往下讀出并分析該子字的所有結(jié)構(gòu)代碼串,并作坐標(biāo)變換,把在子字坐標(biāo)系中的結(jié)構(gòu)坐標(biāo)變成在漢字坐標(biāo)系中的坐標(biāo)。最后,把該漢字的所有基本筆劃及其在漢字坐標(biāo)系中的坐標(biāo)都找出來。每個(gè)基本筆劃代碼也都是指示器,分別指向各自的裝配數(shù)據(jù)區(qū)。裝配數(shù)據(jù)區(qū)存有該基本筆劃由多少筆劃段構(gòu)成的信息,并存有指向各筆劃段數(shù)據(jù)存貯區(qū)的首地址及把各組成段連成完整基本筆劃的必要信息。然后拼字部件根據(jù)筆劃坐標(biāo)把各基本筆劃生成在漢字坐標(biāo)系的適當(dāng)位置,完成該漢字的生成。漢字坐標(biāo)系實(shí)際是一個(gè)存貯所生成的漢字的緩沖存貯器。
十五.下三角矩陣為了快速地填充筆劃的兩邊界線之間的空間,采用了一個(gè)下三角形矩陣。對例為48×48點(diǎn)陣漢字,可取一49×48的下三角矩陣如下表為了把y行的左邊線X和
大的三角矩陣ABC(圖9)看作由全等的小三角矩陣ADE、EGH、HJK、KLC及一些矩陣DEFG、FHIJ、IKBL之和。這使得可以用一個(gè)小三角形矩陣實(shí)現(xiàn)大三角形矩陣的功能,對16位字長的機(jī)器,可用16階三角陣去實(shí)現(xiàn)任意階字符點(diǎn)陣的快速生成。在8位機(jī)器中就采用8階三角形矩陣。也可用4位或更低位的機(jī)器。采用多少位的下三角形矩陣供字形復(fù)原,這取決于所用機(jī)器的字長。在設(shè)計(jì)專用復(fù)原設(shè)備時(shí),則根據(jù)所需要的字生成速度來定。在需要高速字輸出時(shí),應(yīng)采用較高階下三角形矩陣;反之則采用低階三角陣使元件節(jié)省。
一個(gè)相應(yīng)的邏輯電路完成由小下三角形矩陣拼成大下三角形矩陣的功能。相應(yīng)的算法也可以在通用機(jī)上由程序去實(shí)現(xiàn)。
采用下三角形矩陣作為填充筆劃輪廓線內(nèi)區(qū)的工具,可以比逐點(diǎn)逐位填充快很多倍,從而加快了漢字的生成速度。
十六.豎和斜豎的快速生成對于有不規(guī)則邊界的筆劃用下三角形矩陣可以快速生成筆劃。對于邊線極有規(guī)律的豎和斜豎兩種筆劃,用下面的方法可以更快生成。對于豎,在第一次填充完成后,其它的只需重復(fù)往下送數(shù)L次即可,其中L是豎筆劃段的長度。對于斜豎,則每往下送數(shù)n次后要作一次移位,然后再往下送數(shù)n次。當(dāng)n是正數(shù)時(shí)為右移,反之是左移。
十七.漢字的放大漢字的放大實(shí)際是筆劃的放大與平滑,也就是筆劃段的兩條邊線的擴(kuò)展與平滑。
下面的方法保證筆劃放大K=2m倍無階梯形畸變,而且放大是快速實(shí)現(xiàn)的。
表格2是某個(gè)筆劃段的差分表示,其中x0、x′0分別是筆劃段左、右邊線的初值,隨后的△x1和△x′1是下一邊界點(diǎn)相對于上一邊界點(diǎn)差值。表格3是放大了K倍的同一個(gè)筆劃段,其中N=kn。
按下面的方法由表格2的數(shù)據(jù)產(chǎn)生的表格3中的數(shù)據(jù)給出無階梯形畸變的光滑的筆劃邊界。
a)把X0左移m位得到Y(jié)0,b)如△X1≠0,產(chǎn)生如下K個(gè)差分值△Y1=△X1,△Y2=△X1+△X2,……,△Yk=Σi=1K]]>△X1,轉(zhuǎn)步驟C如△X1=△X2=……△XL=0,△XL+1≠0,則△Y1=0,△Y2=0,……△YL=0△YL+1=△XL+1,△YL+1+1=……△Y2(L+1)-1=0△Y2(L+1)=△XL+1,△Y2(L+1)+1=……△Y3(L+1)-1=0… … …△Y(K-1)(L+1)=△XL+1,△Y(k-1)(L+1)+1=……△Yk(L+1)-1=0△Yk(L+1)=△XL+1c)取下一個(gè)差分值,如果這不是最后一個(gè)差分值,則重復(fù)步驟b),否則假定后面還有一個(gè)適當(dāng)?shù)牟罘种担ǔ?刹扇∨c前一差分值相同的差分值,再按步驟b)處理一次后結(jié)束。
d)右邊線的放大與平滑類同。
對于有些筆劃為了確保放大后的巨號(hào)字形良好,則可提高基準(zhǔn)點(diǎn)陣的階次。
十八.提高放大的階次前面說的都是以48×48點(diǎn)陣字的筆劃為放大的基準(zhǔn)。有些筆劃經(jīng)高位放大后筆劃邊線呈折線形,對這小部分筆劃,其放大基準(zhǔn)取96×96點(diǎn)陣漢字中的筆劃描述更細(xì)致,高倍放大后的筆劃就有更好的邊界。
十九.筆劃放大的修正有些筆劃在高位放大后,筆頭、特別是筆劃收尾部分不太好,對這些筆劃的起始或收尾部分,則事先用第十二項(xiàng)的方法把筆頭或筆劃的收尾部分準(zhǔn)確描述好,并把有關(guān)筆形數(shù)據(jù)存貯在一定空間,在字形放大時(shí)直接把這個(gè)字形良好的筆頭或筆尾“裝到”被放大的筆劃的相應(yīng)位置,從而確保高倍放大漢字筆劃的形狀。
二十.長體字的產(chǎn)生通常在漢字點(diǎn)陣中插入某些行來得到長體字,這個(gè)方法的缺點(diǎn)是,長體字中某些字的某些橫向筆劃段變粗,影響了字形的勻稱和美觀,本發(fā)明用下面的方法得到勻稱的長體字對一切橫向筆劃段,按不拉長的原來的方法產(chǎn)生,僅對其他筆劃實(shí)行拉長的運(yùn)算?!袄L”是每隔若干個(gè)筆劃元素插入一個(gè)與上一筆劃元素相同的元素。每隔一個(gè)插入一個(gè)就是拉長一倍,每隔二個(gè)插入一個(gè)就是拉長1/2倍。
二一.多字體的產(chǎn)生本發(fā)明能以最少的存貯增量產(chǎn)生眾多字體。
1)把橫筆劃的厚度改變,可以得到多種不同風(fēng)格的字體。標(biāo)題宋體和黑宋體就是這么產(chǎn)生的,由于每個(gè)筆劃有自己的代碼,因此容易從代碼上加以識(shí)別并使之具有任意的厚度。
2)報(bào)版宋體和書版宋體的產(chǎn)生只要把兩條筆劃邊線中的一條或同時(shí)改變二條邊線,即得到了好幾種具有不同粗細(xì)筆劃的宋體字,所需增加的存貯量也是很少的,因?yàn)樾碌倪吘€與舊的邊線只有極小的差別,而且改變僅限于筆劃邊界數(shù)據(jù),結(jié)構(gòu)數(shù)據(jù)毋須作任何變動(dòng)。
3)黑體字的產(chǎn)生在每一個(gè)宋體筆劃的筆劃板上,以準(zhǔn)線為基準(zhǔn)劃一黑體筆劃,該黑體筆劃包含宋體筆劃的準(zhǔn)線,并且盡量靠緊筆劃板的左邊線和頂線。把這樣設(shè)計(jì)的黑體筆劃“裝到”宋體筆劃的結(jié)構(gòu)框架上,生成黑體字。
結(jié)合1)和2)的方法,又可以得到具有不同粗細(xì)筆劃的粗黑體、細(xì)黑體及藝術(shù)黑體等多種字體。
4)園體和隸體的產(chǎn)生類似于黑體,只是在黑體筆劃的位置上換上園體或隸體筆劃就是。
5)楷體和仿宋體的產(chǎn)生,方法與產(chǎn)生3),4)相同。
二二.筆劃位置的微調(diào)生成新字體如黑體時(shí),在個(gè)別情況下黑體筆劃之間銜接不很理想,這時(shí)可在結(jié)構(gòu)代碼中的筆劃坐標(biāo)上附加二個(gè)小量△X和△Y以實(shí)現(xiàn)筆劃位置的微調(diào)。因△X和△Y通常只需一位,因此增加的存貯量也是極少的(參看圖1、圖2)。
二三.外國文字或符號(hào),一律分解為基本筆劃段,對每個(gè)筆劃段,定義其坐標(biāo),因而每個(gè)外國文字或字符都像漢字一樣,由組成該字的筆劃段及其相應(yīng)坐標(biāo)構(gòu)成,然后用第十一節(jié)的方法描述筆劃段的兩條邊線,從而完成對外文字符的完整描述。
外文字符的壓縮數(shù)據(jù)的解壓與漢字共用一個(gè)算法。放大算法也是一樣的。
二四.字符生成的加速上述方法高度壓縮了字形數(shù)據(jù)。為了使系統(tǒng)有更好的字生成速度,對那些最頻繁地用來生成文字的筆劃,采用部分預(yù)解壓的方法,使之能迅速生成點(diǎn)陣輸出。這些最常用筆劃可以由漢字字頻統(tǒng)計(jì)和本系統(tǒng)的筆劃數(shù)據(jù)中精確地挑選出來。
本發(fā)明具有如下特點(diǎn)1.精確的字形描述保證高質(zhì)量字形;
2.高效率的數(shù)據(jù)壓縮。對于國標(biāo)兩級(jí)漢字,平均每一種基本方體漢字,(長體、扁體不計(jì)在內(nèi))所需存貯量低于30KB,因而最有效地解決了印刷業(yè)所需的多字體問題;
3.所提供的字號(hào)范圍最寬,下至16×16、24×24,上至3072×3072,而且字生成的速度基本上與字的面積成反比。這是一個(gè)很好的技術(shù)特性、使頁面速度基本恒定而與所排的字號(hào)無關(guān);
4.字生成速度快;
5.在16位乃至8位微機(jī)上用匯編語言實(shí)現(xiàn)即可達(dá)到實(shí)用的字輸出速度。
由于這些特點(diǎn),這項(xiàng)發(fā)明所提供的字庫很容易實(shí)現(xiàn),很容易推廣,成本極低,并且適用范圍極廣,不但適用于一切微機(jī)漢字系統(tǒng),中西文臺(tái)式或手提式打字機(jī),也適用于大中型計(jì)算機(jī)高級(jí)激光照排系統(tǒng)。
這樣的字發(fā)生系統(tǒng)已由中南工業(yè)大學(xué)分別在M20與IBM-PC兩種個(gè)人機(jī)上實(shí)現(xiàn),排印出了小冊子和小報(bào)。中南工業(yè)大學(xué)??呀?jīng)用這項(xiàng)發(fā)明提供的字庫排印。
本發(fā)明的實(shí)施例1.把用本發(fā)明提供的描述中文字符的壓縮數(shù)據(jù)制成固定漢卡,由主機(jī)對壓縮數(shù)據(jù)進(jìn)行解壓還原。
2.制成通用漢字發(fā)生器,這是一個(gè)單板機(jī),由三個(gè)主要部件構(gòu)成壓縮數(shù)據(jù)存貯器,CPU以及通用接接口。借通用接口,漢字發(fā)生器可以當(dāng)作一個(gè)通用的外部設(shè)備連接到任何計(jì)算機(jī)系統(tǒng)上去。這種發(fā)生器可以分成低、中、高三種速度檔。它們的區(qū)別僅在于有大小不同的RAM。按照用戶的要求把最常用的字體字號(hào)的高頻字預(yù)解壓并存于RAM,以獲得相應(yīng)檔次的平均字輸出速度。
3.制成高速專用漢字發(fā)生器,采用并行與流水線技術(shù),實(shí)行快速解壓復(fù)原,可以設(shè)計(jì)高速的專用漢字發(fā)生器。
權(quán)利要求
1.多字體全字號(hào)印刷漢字的產(chǎn)生方法,用于漢字及其它字符的計(jì)算機(jī)產(chǎn)生與輸出,所建立的多字體全字號(hào)的壓縮字庫,是將組成漢字的若干基本筆劃分別編碼、貯存,在需要時(shí)把壓縮了的漢字信息解壓恢復(fù)后輸出,本發(fā)明的特征在于(1)按下述方案組成漢字字形數(shù)據(jù)(1.1)以一種正方形漢字字體為基準(zhǔn)字體,由基準(zhǔn)字體分解出的所有基本筆劃的點(diǎn)陣彼此不完全相同,且分別由與其相匹配的矩形筆劃板確定,基本筆劃在有關(guān)結(jié)構(gòu)中的位置利用筆劃板按坐標(biāo)確定,(1.2)基本筆劃及其筆劃板具有相同的代碼,子字串中只對其中最高級(jí)的子字基本筆劃編碼,并且按筆劃數(shù)由多到少構(gòu)成各子字的順序排成一個(gè)序列,(1.3)基本筆劃分解成其點(diǎn)陣橫向?yàn)檫B續(xù)的若干筆劃段,筆劃串中,將截取的全部筆頭分別編碼,再按長短差值逐步劃分為筆劃段,筆劃段由(1.3.1)L對數(shù)據(jù)組成,每一對數(shù)據(jù)表示一個(gè)筆元的左、右兩個(gè)邊界值或與上一個(gè)相鄰邊界的差分值;或者由(1.3.2)一對表示筆元邊界值的數(shù)據(jù)和一個(gè)表示筆劃段長度的數(shù)據(jù)組成,(1.4)所有正方形字體的漢字共用基準(zhǔn)漢字的結(jié)構(gòu)骨架,筆形不同于基準(zhǔn)漢字的部分,其修正值附加在所對應(yīng)的筆劃段數(shù)據(jù)中,或?qū)⒉糠止P劃予以編碼,(2)漢字的產(chǎn)生是由拼字部件按字形數(shù)據(jù)層次地形成,(3)以一種點(diǎn)陣為基準(zhǔn)點(diǎn)陣,各種字號(hào)的點(diǎn)陣將基準(zhǔn)點(diǎn)陣按K=2m倍放大而得到,m為正整數(shù),其算法為a)把X0左移m位得到Y(jié)0;b)如ΔX1≠0,產(chǎn)生如下K個(gè)差分值ΔY1=ΔX1,ΔY2=ΔX1+ΔX2……,
轉(zhuǎn)步驟C);如ΔX1=ΔX2=……ΔXL=0 ΔXL+1≠0,則ΔY1=0,ΔY2=0,……ΔYL=0ΔYL+1=ΔXL+1,ΔYL+1+1=……ΔY2(L+1)-1=0ΔY2(L+1)=ΔXL+1,ΔY2(L+1)+1=……ΔZ3(L+1)-1=0… …ΔY(K-1)(L+1)=ΔXL+1,ΔY(K-1)(L+1)+1=……ΔY(K+1)-1=0ΔYK(L+1)=ΔXL+1C)取下一個(gè)差分值,如果這不是最后一個(gè)差分值,則重復(fù)步驟b),否則假設(shè)后面還有一個(gè)適當(dāng)?shù)牟罘种担ǔH∨c前一差分值相同的差分值,再按b)處理一次后結(jié)束。D)右邊線的放大與平滑類同。其中X0為第一個(gè)筆元的左邊界數(shù)據(jù),ΔX1,ΔX2,……ΔXn為差分值,Y0為放大后第一筆元的左邊界數(shù)據(jù),ΔY1,ΔY2,……ΔYK(L+1)為放大后的新差分值,(4)長體字是對需加長的筆劃,采取間隔地重復(fù)上一對數(shù)據(jù)而獲得,(5)筆劃的復(fù)形借助于下三角形矩陣,由不大于128階的下三角矩陣根據(jù)字號(hào)陣大小邏輯地拼成任意階下三角形矩陣,(6)其它字符按與漢字相同的方案編碼、貯存、產(chǎn)生。
2.根據(jù)權(quán)利要求
1所述的方法,其特征在于,(1)筆劃板邊線到基本筆劃輪廓線的距離不大于2位,(2)以宋體字為基準(zhǔn)字體,(3)以48×48或96×96點(diǎn)陣為基準(zhǔn)點(diǎn)陣。
3.根據(jù)權(quán)利要求
1或2所述的方法,其特征在于,結(jié)構(gòu)代碼的形式為|S|I|x|y|△x1|△y1|△x2|△y2|其中C字段為基本筆劃代碼或子字代碼;x·y字段為坐標(biāo)碼;△x、△y為微調(diào)結(jié)構(gòu)骨架的坐標(biāo)碼;I字段用于區(qū)分基本筆劃或是字;S字段用于子字間的隔離。
專利摘要
一種多字體全字號(hào)印刷漢字的產(chǎn)生方法,提供一個(gè)廉價(jià)的半導(dǎo)體通用壓縮字庫。字庫中各種字體、字號(hào)的漢字共用宋體漢字的字形結(jié)構(gòu),結(jié)構(gòu)代碼由基本筆劃層次地組成,基本筆劃再劃分為筆劃段?;军c(diǎn)陣在32-128階之間選擇,借助于程序放大得到各種字號(hào)的漢字及其它字符。平均40KB可產(chǎn)生兩級(jí)國標(biāo)漢字的一種方形基本字體,適用于任何16位以上計(jì)算機(jī),輸出速度40字/秒以上。
文檔編號(hào)G06K15/02GK87102002SQ87102002
公開日1988年10月12日 申請日期1987年3月20日
發(fā)明者謝克中 申請人:中南工業(yè)大學(xué)導(dǎo)出引文BiBTeX, EndNote, RefMan
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1