将象形文字字符的象形文字字形数据解压缩的装置和方法

文档序号:2494374阅读:261来源:国知局
专利名称:将象形文字字符的象形文字字形数据解压缩的装置和方法
技术领域
本发明涉及在数据处理系统中的位图字形数据的存储。
背景技术
在数据处理系统中文本数据一般被存储为字符码序列,在要求向用户提供文本数据时,例如在屏幕上显示它或打印它,则必须将每个字符码转换成能够提供给用户的象形文字的形式。这种转换使用了字形数据,它对每一个字符码指定一个象形文字的形式。一种字形数据是对每个字符码存储该字符的位图的表示法。对于显示和打印,这种位图处理起来可以相对地简单一些。
在此种系统中发生的问题是在存储字形数据和用于访问这些字形数据的任何相关的数据时所使用的存储容量的总量。在象形文字字符(例如中文、朝鲜文和日文字符)的情况下所占用的存储器资源的总量能够成为一将特殊的问题。在这些场合,需要被表示的字符的数量可能非常之高,例如中国的象形文字字形可能包括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有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1