一种能生成多种字体的汉字字模发生器的制作方法

文档序号:6405234阅读:1320来源:国知局
专利名称:一种能生成多种字体的汉字字模发生器的制作方法
技术领域
本发明是一种能生成多种字体的汉字字模发生器,用于汉字信息处理系统中的字模发生。特别是用于实时中高档中文信息处理系统,如中文电子打字机,中文信息处理机,中档轻印刷系统或专用汉字适配器等。
在具有中文信息处理能力的计算机系统中,汉字字模发生器是一个重要组成部分。其构成是储存汉字字形信息的存储器及一些配套硬、软件设备。
根据字模生成方式的不同,汉字字模发生器可分为二大类1.建立在“光栅扫描图片”基础上的点阵法字模发生器。
2.建立在“线条图”或“轮廓图”基础上的向量法或称图形学方法字模发生器。
由于汉字数量众多,因此汉字字模发生器所占的存储量是很大的。采用上述第2种字模生成方式(即向量法),能够有效地压缩存储量,可以直接用计算机中ROM构成字模发生器。但这种字模发生器只能生成直线条形汉字,很难生成多种字体汉字,如楷体、黑体、仿宋体等。点阵法原则上可以生成任何字体和形状的汉字,但由于汉字数量庞大,用点阵法构成汉字字模发生器所需的存储量非常庞大,例如一个24×24点阵的8000汉字,约占0.5M字节(每字节8位)的存储空间;48×48点阵8000汉字需占2.3M字节存储空间。当需要输出较高级多种字体,如40×40点阵楷体、黑体、仿宋体及48×48点阵宋体时(每个字库6764个汉字),存储量将超过6.1M字节,即近50M位。因此,不能不用硬磁盘或ROM、RAM和硬磁盘共同组成的多级存储系统,构成汉字字模发生器。因此,目前无硬磁盘的中文信息处理系统(如中文电子打字机),只能输出低级的单一的汉字字符,16×16点阵的汉字或24×24点阵汉字等。而同时输出多种字体,如楷体、宋体、黑体、仿宋体是构成一个通用中高档中文编辑系统或信息处理系统所必须的。
本方法的目的,是通过对汉字字模点阵信息较大帽度的压缩的方法,实现对原来用硬盘或实行多极存储器构成的能生成多种字体的汉字字模发生器,仅用计算机内部存储器ROM构成的目的,从而解决目前通用中高档汉字信息处理装置输出多种字体的问题。
本发明通过对图形或汉字点阵数据中二种冗余编码——1是部分编码在全部数据中大量重复出现,2是相邻字编码完全一样,采取下述针对性的压缩步骤,实现上述目的一、将全部编码按n位为字长进行统计(n为计算机中字节位数的整倍数),列出相同字出现的频度表(此频度表也是数据还原时的编码表)。
二、对出现频率最高的两个字各用一位来代表,即“0”和“1”,这样一个字(n位)在局部可压缩为一位;对出现频率次之的四个字各用二位“00”、“01”、“10”、“11”来代表,这样一个字(n位)可在局部压缩为2位……余类推。由于压缩后信息位数是不固定的,所以另用log2n位数来表示压缩后的信息位数。(当log2n是小数时,取它的整数部分再加1)。
三、用一位表示相邻字相同或相邻字不同,“0”代表与上一字相贤,“1”代表与上一字不同(或相反表示也行)。当相邻字相同时,可用一位来代表一个字(n位)。连续相同时,可连续用“0”(或“1”)来表示。
四、数据还原是数据压缩的逆过程。
下面以40×40点阵槽体汉字“啊”字为例,具体说明上述压缩过程。
1.40×40点阵汉字,每个汉字由200个字节组成,楷体“啊”字的全部代码。(见附表1)2.在此例中n取8,即以8位(一个字节)为字长。
3.log28=3,即用3位表示每个字压缩后的信息长度。
000 代表长度为1001 代表长度为2010 代表长度为3011 代表长度为4100 代表长度为5101 代表长度为6110 代表长度为7111 代表长度为84.统计结果(见附表2),频度及压缩编码表,此表也是数据还原时的编码表。
在此例中,编码总数200个;相邻字不相同的编码64个(使用步骤二压缩);相邻字相同的编码136个(使用步骤三压缩)。
5.原编码与压缩后编码对照表。(见附表3)单数行是压缩前的原编码(十六进制);双数行是压缩后编码(二进制)。
注压缩后的编码有三部分组成前三位表示局部压缩码的长度,接着是相应长度的局部压缩码。最后是一位的表示下一字节是否与上字节相同的缩码。若连续相同,则连续用一位表示。
6.压缩后编码表(十六进制)。(见附表4)压缩后用73个字节代替了原有200个字节,压缩比达到了63.5%。7.字模发生过程中,编码信息还原过程逻辑框图(见附

图1)。
图中JS为计数单元,同时是还原后字节指针,一个40×40点阵汉字共200个字节,当JS=200时,一个汉字还原结束。
对整个字库也是采取上述方法进行压缩,所不同的是对整个字库的全部编码进行统计,例出频度表进行压缩。即频度及压缩编码表,是基于对整个字库全部编码进行统计的结果。
本发明的汉字字模发生器硬件实现的原理框图(见附图2)。
应用本发明后,可以使汉字字模发生器所用ROM芯片减少50%以上,使得用高容量ROM芯片构成实用的能生成多种字体的汉字字模发生器,在体积和成本上成为可能。例如用本发明的压缩技术,可将前述四个字库6.1M字节数据在不失真的前提下,压缩为2.7M字节,用最新的2M位ROM芯片只需11片即可。对于原来没有硬盘、不能输出多种高级字体从而在应用范围上受到限制的中文信息处理系统,如中文打印机,中文终端,中档轻印刷系统,应用本发明的技术后,能够输出多种字体的高级汉字。
另外,应用本发明还可以使原来只能用硬盘或多级存储系统作字模发生器的汉字信息处理系统,硬件结构发生相应改变,即可以省去构成字模发生器的硬盘,同时在输出速度上使得实时输出多种汉字字体成为可能,并在系统的体积和成本上都带来突出效益。
附表一40×40点阵楷体“啊”字编码。0000 0000000000000000003B1F 1C1C1C0C0C0 0F0E0C0400 0000000000000000000000 0000000000000000000000 00070600E6F6FE76676666 E6E6C70707070707070707 07070707070200000000 0 0000000000307CFCB83020 475F6060F070233F381808 0F0F040000000000000000 0000000000000000000000 0000000000033FFFCE0F07 07C6E6E606C6C6C6060606 060707070707473F3F1F0F 0600000000000000000000 30F8FC0000000000000000 0000000000000000000000 0000000000000000000000
附表二频度及压缩编码表。
在表中,压缩后编码的前三位是表示长度的,在表中用空格加以分隔是为了阅读清楚。原编码(16进制) 出现频度(10进制) 相邻字不相同压缩后编码(共200个) 编码出现频度 (2进制)(共64个)00 109 6000 00F 5 4000 10721 4001 0030 3 3001 01E6 5 3001 1006 7 3001 113F 4 3010 000C6 5 2010 0011F 2 2010 01004 2 2010 011FC 2 2010 100OC 3 2010 110FF 1 1010 111FE 1 1011 0000CE 1 1011 0001B8 1 1011 001060 2 1011 00115F 1 1011 0100F8 1 1011 01013B 1 1011 0110
(附表二续)原编码(16进制)出现频度(10进制)相邻字不相同压缩后编码(共200个)编码出现频度 (2进制)(共64个)F6 1 1011 01111C 3 1011 100003 1 1011 1001C7 1 1011 10107C 1 1011 101138 1 1011 1100FO 1 1011 1101OE 1 1011 111023 1 1011 111167 1 1100 0000066 2 1100 0000176 1 1100 00010OD 1 1100 0001118 1 1100 0010020 1 1100 0010108 1 1100 0011002 1 1100 0011170 1 1100 01000其余的编码出现频度是0,在此表中没有列出。
附表三原编码与压缩后编码对照表。00 0000 0000 00 00000000 0 0 0 0 0 0 000 0000 3B1F 1C 1C1C00 0 10110110 101001010111000 0 00C 0C0D 0F0E 0C 04001010110 0 110000011 10001 10111110 10101101010011 1000000 0000 0000 00 000000 0 0 0 0 0 000 0000 0000 00 000000 0 0 0 0 0 000 0000 0000 00 000700 0 0 0 0 0 10010006 06E6 F6FE 76 6766100111 0 100110 10110111 10110000 110000010 110000000 11000000166 E6E6 C707 07 070701001100 10111010 100100 0 0 007 0707 0707 07 070700 0 0 0 0 0 007 0200 0000 00 00000110000110 10000 0 0 0 0 0
附表三(续)00 00 0000 307C FC B800 0 0 10010110111011 1010100 1011001030 20 475F 6060 F0 70100101 110000101 1010101 10110100 10110011 0 1011110111000100023 3F 3818 080F 0F 0410111111 101000010111100 110000100 110000110 10001 0 101001106 00 0000 0000 00 00100000 0 0 0 0 0 000 00 0000 0000 00 0000 0 0 0 0 0 000 00 0000 0000 00 0000 0 0 0 0 0 003 0F FFCE 0F07 07 C610111001 10100001010111 10110001 10001 100100 0 1010001E6 E6 C6C6 C6C6 06 06100110 0 1010001 0 0 0 100111 006 06 0707 0707 07 4700 1001000 0 0 0 10101013F 3F 1F0F 0600 00 001010000 0 1010010 10001 10011110000 0 0
附表三(续)00 0000 00 00 00 00 300 0 00 0 0 0 100101F8 FC00 00 00 00 00 0010110101 1010100 100000 0 0 0 000 0000 00 00 00 00 000 0 00 0 0 0 000 0000 00 00 00 00 000 0 00 0 0 0 000 0000 00 00 00 00 000 0 00 0 0 0 0附表四压缩后编码(十六进制)。0002DA95C159838DF56A7000000124E9ADEC30580C0A65D480018680025BBA9652E16ADA59AF7117F42F309868A9C0000005CD0AF6319146651138902AD0528CF0004B6B5200000000
权利要求
1.一种能生成多种字体汉字的汉字字模发生器,其特征是通过对多种字体汉字库的点阵信息采用下述方法进行压缩(一)将全部编码按n位为字长进行统计(n为计算机中字节位数的整倍数),列出相同字出现的频度表(此频度表也是数据还原时的编码表);(二)对出现频率最高的两个字各用一位,即“0”、“1”来代表,对出现频率次之的四个字各用二位“00”、“01”、“10”,“11”来代表,出现频率再次之的八个字备用三位来代表……余类推,并用log2n位数来表示压缩后的信息位数(当log2n是小数时,取它的整数部分再加1);(三)用一位表示相邻字相同或相邻字不同,“0”代表与上一字相同,“1”代表与上一字不同(反之也行);(四)数据还原过程是上述压缩过程的逆过程,大幅度地减少汉字字信息的存储量,用ROM芯片构成,输出多种字体汉字。
全文摘要
本发明是一种汉字字模发生器,属于计算机汉字信息处理领域。其特征是通过对多种字体汉字点阵信息较大幅度压缩的方法,解决目前通用中高档汉字信息处理装置输出多种字体汉字问题。具体方法是以字节为单位,对汉字点阵信息中出现频率较高的编码用较少位的信息来表示,同时对相邻相同的编码,用一位信息来表示。采用这种方法,能使汉字点阵信息压缩50%以上,可用于各种计算机汉字信息处理系统的字模发生。
文档编号G06F3/023GK1031140SQ8810420
公开日1989年2月15日 申请日期1988年7月11日 优先权日1988年7月11日
发明者孙强 申请人:北京四通集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1