本发明的目的在于,提供一种信息压缩比高、极少占用主机内存、字形完整且美观、能用国家标准码输入以及与输入编码无关,字形产生速度快、具有多种分辨以适应不同中文计算机要求的通用型汉字库-中文卡,从而解决微型计算机处理中文信息系统及汉字联机和通讯终端中的一般形式的汉字库问题,从而对汉字信息处理计算机的普及、推广起到积极、有效的作用。
本发明在分析与研究了汉字字形结构规律的基础上,研制出叠加法汉字压缩技术汉字库。叠加法汉字压缩技术的基本原理是,采用8种基本笔划作为组成汉字的基本构件。
8种基本笔划是:(1)直:“丨”、(2)直钩:“亅”、(3)横:“-”、(4)横钩:“
”、(5)横捺:“
”、(6)撇:“丿”或“
”、(7)直撇:“
”、(8)捺:“\”或“
”。根据不同字体的要求,以这八种笔划为基础进行修正、变形,适应不同的要求。
8种基本笔划组合成为独体字和偏旁部首,基本笔划、独体字、偏旁部首经过压缩位移叠加成合体字,合体字、偏旁部首、独体字、基本笔划又可相互配合经压缩位移叠加组合成另外的合体字。各构件相互叠加组合成字,没有条件限制。构件大小和位置逐字调整,直到得到完整美观的字形。为了叙述的方便起见,我们在本发明中把组成某个字的基本笔划、偏旁部首、独体字、合体字均称为构件。
在本发明中,构件和由构件叠加组合而成的汉字点阵关系由下式表示:
n★ 1n★ 2=
n1-j·n2-j/Xysj·Yysj
在上式中,n1-j·n2-j为构件j的点阵,n★ 1·n★ 2为叠加后的点阵且n★ 1、n★ 2、n1-j、n2-j、m、j都是大于或等于1的正整数;Xysj为第j个构件的X方向压缩倍数,Yysj为第j个构件的Y方向压缩倍数。
第j个构件中第P个点经压缩位移后的坐标变更关系式为:
Zjp=Xjp+iYjp
Z★ jp=(Xjp/Xysj+Xwyj)+i(Yjp/Yysj+Ywyj)
其中:Zjp是第j个构件中P点在压缩位移前的座标量,Z★ jp是第j个构件中P点经压缩位移后的座标量,Xwyj是第j个构件的X方向位移量,Ywyj是第j个构件Y方向位移量。
现在对本发明所述的叠加造字过程做出说明。
第一步:根据前述原理,分别用14位二进制数对笔划数据和压缩位移数据进行格式安排。
笔划数据规定:各用4位二进制数表示笔划在直角座标第1象限内的起点座标Xo、Yo,笔划长度用3位二进制数表示、笔划种类也用3位二进制数表示。
压缩位移数据规定:以字的中点为直角座标原点,分别用4位二进制数以补码表示被压缩位移构件的X方向和Y方向的压缩数。
以1位二进制数表示字形信息的结束,以1位二进制数区别上述的数据性质-是笔划还是压缩位移数据。这样,一个完整的数据格式(即笔划数据格式和压缩位移数据格式)占用2个字节长度。
X和Y方向的压缩位移互不相关,压缩位移数据后面顺序下来的2个字节规定为被压缩位移构件的内部码-存贮器地址码。
因此,基本笔划起点座标、笔划长度、构件的压缩位移量乘以指定的同一系数,就得到了由系数大小决定的输出点阵,亦即可得到易于安排变动的字形点阵输出。
第二步:将所要造的字按字形结构规律分类。(一)没有共同构件的字或构件以任意方式排列。(二)具有共同构件的字排列于一个连续的地址段内,共同构件只占用其本身一个构件的信息位置。在这个段内的字,其另外构件是字库中已有的完整构件,则只用此构件的内部码标出,构件的压缩位移特征量由表格归类统一给出,亦即对其给以共同的构件和由表格给以压缩位移特征数。这样使得存放国家标准的一、二级汉字只用24.5k字节,而且在此基础上增加一个汉字,一般只需2个字节存放构成该字的非公共构件的内码。
若段内的字,其另外构件字库中无完整构件,则需按本步骤第(一)项规则,逐一列出。
第三步:按照第二步的第(二)项,在座标纸上绘出由基本笔划构成的偏旁部首、独体字,再进而绘出合体字,并取得相应的初始构字字形数据。
第四步:编制计算机调试程序,在计算机终端CRT上逐个调试,直到显示和打印出的字形完整美观,该字形数据就可用了。
第五步:对全部要造的字进行总排列,列出共同构件地址段表和公用压缩位移特征表及国家标准GB2312-80码入口表,编制字形形成程序。字形形成程序是用逐点比较法和字节点阵叠加法,逐一算出每个构字笔划点阵,逐一叠加而得到整字点阵。
字形的入口即是存贮器的地址,和固定点阵形式一致,字形与输入编码无关,能用国家标准码输入。
本中文卡所应用的叠加法汉字信息压缩技术,能通用于各种中文信息处理系统,如军事通讯、电报接收、汉字打印或联机终端等。它能输出七种指定的等线体和宋体点阵字形信息,能输出简体、繁体字一万六千以上,信息压缩比高达五百五十倍,这是现有技术中其它形式的中文字形发生器和其它普通汉字库所不及的。且本中文卡与现有类似产品相比,造价更低廉,体积亦更小。
下面结合附图对本发明的实施做出说明。
实施例(一):
图1为将该字库用于APPle-Ⅱ,计算机的逻辑原理图,其中字库部分是用Z80CPU的微计算机,做成一块插卡,可插入Apple-Ⅱ的I/O插槽(2#-7#)。Apple-Ⅱ机是使用6502CPU的微计算机,两者之间的通信经过Z80APIO进行。
图1中APPle-Ⅱ使用插卡的地址说明如下表:
Apple中文卡使用的接口地址
Apple-Ⅱ读取字形的程序框图见图2。PIO的A口以方式二(双向方式)工作,BSTB为国家标准码或特征码写入的请求信号,而ASTB则为读取字形码(或标志)以后的回答信号。Z80A与此相应的接口程序见图3。
Apple-Ⅱ机向字库打入特征码,主要是用于规定字形分辨率,可以从16×16、24×24、32×32、40×40、48×48五种点阵分辨率中任选,其字形码长度分别为32字节、72字节、128字节、200字节、288字节。在未打入新的特征码以前,字库总是以原先规定的分辩率构组字形。当国家标准码打入后,字库即进入组字程序,并在字形组成后发出一个字形已组成的标准码。Apple-Ⅱ查询到这个标准码后,则以规定的时间间隔读取字形码,直至结束。
在Apple-Ⅱ中文卡中,还包括中文处理的监控程序,其程序地址为C800~CFFF。由于这里只有2K地址,而监控程序需4K-8K的寻址范围,所以图1中还包括了地址扩充的逻辑原理图。扩充办法是一块EPROM 2764存放监控程序,其最高位地址A12、A11两个D触发器控制,并可按前表的介绍由Apple-Ⅱ写入。为了简化线路,减少元器件,Z80A的时钟由Apple总线上的7M信号二分频获得。
实施例(二):
图4为将该字库用于IBMPC计算机的逻辑原理框图,其中字库部分同Apple-Ⅱ中文卡一样,也做成一块插卡,可插入PC机的相应插槽。所不同的是为了提高速度,用建立(字形码)缓冲区的方法取代了Z80APIO接口,PC机与中文卡之间通信以DMA(直接存贮器存取)方式进行。当PC机向Z80ACPU发出DMA请求,Z80ACPU响应后,PC机便控制了中文卡上SRAM(静态随机存贮器)的存取工作。在SRAM中,有四个双方约定的地址,分别用于存放特征码、标志码的第一、第二字节。另外有若干地址作为字形码的缓冲区。缓冲区长度随字形分辩率的不同而异,从32字节到512字节不等。特征码规定了点阵分辩率,如实施(一)所述。标志码用于存放双方通信联络的标志,包括组字请求标准、组字完成标志等。
IBMPC机读取字形的程序框图见图5。
Z80ACPU以查询方向不断读判标志码。读到组字请求标志以后,转入组字程序。然后向PC机发出中断请求,通知PC主机组字结束。PC机在接到中断信号后,先获得对SRAM操作的控制,尔后进行其它处理。
PC机在写入请求组字标志国家标准码和进行中断处理、读取字形码时,都必须获取对SRAM的控制。