Top Banner
91

第五章 中文信息处理

Mar 19, 2016

Download

Documents

derron

第五章 中文信息处理. 汉字字形和字形库管理技术. 内容. 汉字字形概述 字形描述技术 字形的压缩和还原 字形的放大和缩小 TTF 字形技术 字库的设计和管理技术 汉字字库的应用. 5.1 汉字字形概述. 汉字字形及其特点 字形、字型和字形库 字形描述技术及其种类. 5.1.1 汉字字形及其特点. 汉字字形指的是汉字形体结构的图像。 汉字字形的特点: 汉字的字形呈方块形 汉字从字形上可以分成各种结构 汉字字形的分解方法和分解标准尚未统一,常用的字形分解方法一般从单字、字根、笔画(或笔形)和形素这四个层次入手。. 5.1.2 字形、字型和字形库. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 第五章 中文信息处理
Page 2: 第五章 中文信息处理

第五章 中文信息处理汉字字形和字形库管理技术汉字字形和字形库管理技术

Page 3: 第五章 中文信息处理

内容• 汉字字形概述• 字形描述技术• 字形的压缩和还原• 字形的放大和缩小• TTF 字形技术• 字库的设计和管理技术• 汉字字库的应用

Page 4: 第五章 中文信息处理

5.1 汉字字形概述 • 汉字字形及其特点• 字形、字型和字形库• 字形描述技术及其种类

Page 5: 第五章 中文信息处理

5.1.1 汉字字形及其特点• 汉字字形指的是汉字形体结构的图像。 • 汉字字形的特点:

– 汉字的字形呈方块形– 汉字从字形上可以分成各种结构– 汉字字形的分解方法和分解标准尚未统一,常用的字形分解方法一般从单字、字根、笔画(或笔形)和形素这四个层次入手。

Page 6: 第五章 中文信息处理

5.1.2 字形、字型和字形库• 字形:字符的一个实例。• 有的时候,几个字符可以合成一个字形,例如美元符号:

–  一个“ S” 形状加上一根竖线:$–  一个“ S” 形状加上一根割断的竖线:–  一个“ S” 形状加上两根竖线:–  一个“ S” 形状加上两根割断的竖线:

• 汉字的字形更加复杂,我国制定了一系列的国家标准来严格定义各种字符集中字符的字形。

Page 7: 第五章 中文信息处理

5.1.2 字形、字型和字形库(续)• 字型:某一个字体的实例,如某个特定的磅值。• 西文的印刷字型有:

– serif– sans serif– script

• 中文使用的主要字型有:– 宋体– 仿宋体– 楷体– 黑体

Page 8: 第五章 中文信息处理

5.1.2 字形、字型和字形库(续)

西文字型和中文字型的对应关系

西文字型 中文字型Serif Song (宋体)Sans serif Hei (黑体)Script Kai (楷体)Other Fangsong (仿宋体)

Page 9: 第五章 中文信息处理

5.1.2 字形、字型和字形库(续)• 字形库中存储的是某个集合所有字符的字形信息。• 实际上,字形库是一个计算机的存储器系统,它的设计、管理和使用原则上与计算机存储器系统是一致的。

Page 10: 第五章 中文信息处理

5.1.3 字形描述技术及其种类• 字形描述技术是以数字代码描述字的形状,在输出版面的时候,由计算机将代码还原,恢复字原来的形状,由输出设备输出。字形描述技术也被称为字形压缩还原技术。• 字形描述技术的水平高低,不仅决定了输出字的速度、字形美观和输出效果,同时也影响到:

– 字库存储空间– 字形还原的计算量

Page 11: 第五章 中文信息处理

5.1.3 字形描述技术及其种类(续)• 字形描述技术描述一般可分为:

– 点阵字形描述技术– 轮廓矢量字形描述技术– 曲线轮廓字形描述技术

Page 12: 第五章 中文信息处理

5.2 字形描述技术• 点阵字形描述技术• 轮廓矢量字形描述技术• 曲线轮廓字形描述技术• 其他字形描述技术

Page 13: 第五章 中文信息处理

5.2.1 点阵字形描述技术• 汉字点阵的规模一般是: m·2n × m·2n

• 在一般情况下, 16 × 16 点阵和 24 × 24 点阵使用的比较多。随着激光印字机、激光照排机、图文记录机等输出设备分辨力的提高,又有了 48 × 48 、 96 × 96 、 128 × 128 、 256 × 256 、 512 × 512 、 1024 × 1024的点阵字库。

• 下面以 16 × 16 点阵介绍点阵字形描述的方法。

Page 14: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)• 把一个方块横向分成 16 格,纵向也分成 16 格,形成

256 个小方格,即该矩阵有 256 个“点”。每一个点可以有黑、白两种颜色。• 用这样的点阵覆盖到汉字上,凡是与笔画重叠的点,规定它是黑色;凡是不与笔画重叠的点,规定它是白色。

Page 15: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)

汉字“啊”的点阵字形 汉字“啊”点阵字形数字化表示

Page 16: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)• 一个汉字点阵字形的存储量:

– 16 × 16 : 256 位,即 32 个字节– 24 × 24 : 72 个字节– 32 × 32 : 128 个字节

Page 17: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)• 横向点阵:每个点阵数字代码均描述汉字横向点的情况。数字代码是顺序从左到右、自上而下扫描点阵各点状态而形成的。一般适用于显示器 。• 纵向点阵:每个点阵数字代码均描述汉字纵向点的情况。数字代码是顺序从上到下、自左至右扫描点阵各点状态而形成的。一般适用于打印机

Page 18: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)

16 × 16 横向点阵的情况

Page 19: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)• 汉字“啊” 用横向点阵来表示,其数字代码是:

00H 、 04H 、 2FH 、 7EH 、 F9H 、 04H 、 A9H 、 04H 、 AAH 、 14H 、 AAH 、 7CH 、 ACH 、 54H 、 AAH 、 54H 、 AAH 、 54H 、 A9H 、 54H 、 E9H 、 74H 、 ADH 、 54H 、 0AH 、 04H 、 08H 、 04H 、 08H 、 14H 、 08H 、 0CH

Page 20: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)

16 × 16 纵向点阵的情况

Page 21: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)• 汉字“啊”用纵向点阵来表示,其数字代码是:

3FH 、 F0H 、 20H 、 20H 、 7FH 、 F0H 、 20H 、 00H 、 7FH 、 FFH 、 42H 、 10H 、 4DH 、 88H 、 70H 、 70H 、 00H 、 00H 、 47H 、 F0H 、 44H 、 20H 、4FH 、 F2H 、 44H 、 01H 、 FFH 、 FFH 、 40H 、 00H 、 00H 、 00H

Page 22: 第五章 中文信息处理

5.2.1 点阵字形描述技术(续)• 各种精度的点阵字形其特点和用途 :

– 16 × 16 (简易型)– 24 × 24 (普通型)– 32 × 32 (提高型)– 其他更高精度的点阵字形

Page 23: 第五章 中文信息处理

5.2.2 轮廓矢量字形描述技术• 轮廓矢量字库的出现是为了改进点阵字库锯齿状轮廓,同时也是因为绘图机用笔输出的需要而发展起来的一种字形描述技术。 • 轮廓矢量的字形描述技术的核心是用多条直线逼近字形,并进行封闭处理,字形效果明显改观。

Page 24: 第五章 中文信息处理

5.2.2 轮廓矢量字形描述技术(续)

X

Y

0

I VI I I

I I I

轮廓矢量字形描述技术的直角坐标系

Page 25: 第五章 中文信息处理

5.2.2 轮廓矢量字形描述技术(续)

Page 26: 第五章 中文信息处理

5.2.2 轮廓矢量字形描述技术(续)• 轮廓字库解决了点阵字库缩放后失真的问题。这种字形描述技术对汉字横平竖直的字形有很好的描述效果,但对于撇、捺、点,以及圆弧装饰效果的字体,仍然不能十分逼近字形,而且字体放大之后,轮廓仍然具有折线感。• 在大的点阵做成的矢量轮廓字库缩小到很小或小的点阵做成的矢量字放大得很大时,都会带 来失真。• 因此大号字用 256×256 点阵为基础的矢量轮廓,而小号 字仍用

96×96 或 128×128 点阵为基础的矢量轮廓。

Page 27: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术• 曲线轮廓字库是以二次曲线和三次曲线逼近字形轮廓的字形描述方法。其中以 PostScript 字形描述技术为代表。• PostScript 字形描述技术是用美国 Adobe公司的

PostScript页面描述语言来描述字形的一种技术。其特点是以贝塞尔曲线( Bezier curve )拟合文字形状,比较完整地保留了文字原有的字形信息。

Page 28: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术(续)• 解决字形质量的失真问题:

– 特征参数:对用直线、二次曲线或三次曲线描述字形轮廓的字形描述技术的一种补充。– 智能复原:依靠字形复原软件的判断和处理来保证字形复原的质量,而字形描述本身不包含很多的特征信息。

Page 29: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术(续)• PostScript Type 1语言中的特征参数:

– 字符级特征参数:• hstem/vstem :给出水平 /垂直笔段的位置和宽度。• hstem 3/vstem 3 :给出等距等宽的三个平行笔段的位置和宽度。

– 字库级特征参数:• StdHW, StdVW, StemSnapH, StemSnapV :给出字库中字符的标准笔画宽带,或者笔画宽度的跳跃变化,参数为宽度值的数组。• BlueValues :给出西文字形的准线位置,参数为准线位置的数组。

Page 30: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术(续)

部分笔画水平段的情况

Page 31: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术(续)

笔锋高度的测量

Page 32: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术(续)• 字库中每个汉字的特征参数生成完毕以后,还要添加合适的字库级特征参数,主要包括:

– 笔画标准宽度 StdHW/StdVW– 笔画宽度的跳跃变化 StemSnapH/StemSnapV

Page 33: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术(续)• 比较有影响的 PostScript 西文字库有:

– Type 1– Type 3– Type 5

• 国内用 PostScript语言描述的轮廓字体只有以 Type 1 和 Type 3 的格式做出的字库。

Page 34: 第五章 中文信息处理

5.2.3 曲线轮廓字形描述技术(续)• 用 PostScript 技术描述汉字时,在字符笔画过大、字又太细长时,软件为了要显示所有黑色笔画就会忽略笔画间的空白,造成笔画重叠、比例变形等问题。• 对于低分辨力的输出设备(如显示器和针式打印机),这种字库的输出效果反倒不如点阵字库优越,即使增加大量的特征参数描述也得不到较大的改善。因此也采用字库中包含点阵字库用于输出小字号文字的变通方法。

Page 35: 第五章 中文信息处理

5.2.4 其他字形描述技术 • TrueType 字库。微软公司协助苹果公司开发并于 1990年底推出

TrueType 字库。这种字库放弃以三次曲线逼近字形轮廓的优点,而采用二次曲线逼近字形轮廓。 TrueType 字库有精心设计的特征参数处理。• Folio 字库。在 Unix作站的领域中,有 Sun公司的 Folio 字库技术。由于 Sun工作站在美国广泛用于社团和专业用的出版系统,因此

Folio F3 字形描述格式也是值得一提的字形描述技术。• 智能字库( Intellifont )。由爱克发计算机国际公司开发,用于惠普系列激光印字机。

Page 36: 第五章 中文信息处理

5.3 字形的压缩和还原 • 什么是字形的压缩和还原• 字形点阵的压缩和还原• 轮廓矢量字形的压缩方法• 其他字形压缩技术

Page 37: 第五章 中文信息处理

5.3.1 什么是字形的压缩和还原 • 对于正式出版物来说,文字分辨率需 29.2 线 /毫米以上。因此,最常用的五号汉字点阵为 108 × 108 ,特大号字则为

576 × 576 。• 不同精度的点阵表示一个汉字需要的字节数:

48×48 28896×96 1152128×128 2048 2K256×256 8192 8K512×512 32768 32K1024 ×1024 131072 128K

Page 38: 第五章 中文信息处理

5.3.1 什么是字形的压缩和还原(续)• 512×512 点阵字库

GB2312 字符集宋体、楷体、黑体、仿宋体 4 种字体字库容量是 845.375M• 1024×1024 点阵字库

GB2312 字符集宋体、楷体、黑体、仿宋体 4 种字体字库容量是 3381.5M

Page 39: 第五章 中文信息处理

5.3.1 什么是字形的压缩和还原(续)• 字形信息压缩技术应满足以下几方面要求:

– 字形信息压缩技术不允许信息压缩后丢失或发生错误,也就是说压缩信息能正确再现原字形信息,否则在文字复原时将会引起字形畸变。– 字形信息压缩过程应当简便易行,并且可用专门的软件和硬件自动完成,便于用户独立进行缺字补充的操作。– 由文字字形压缩信息向最终输出的点阵字形信息的转换应当迅速可靠。– 压缩效果显著。

Page 40: 第五章 中文信息处理

5.3.1 什么是字形的压缩和还原(续)• 追求压缩效果和文字复原速度这两个指标是相互冲突的,因为压缩倍率越高,字形复原过程就越复杂,复原工作量也越大,文字还原速度也就越慢。• 事实上,任何字形信息的压缩方法都是以损失文字复原速度和输出速度为代价而换来存贮空间的节约的。• 评价一种字形压缩技术的优劣,不仅要看信息压缩倍率的高低,而且还要看是否能做到快速复原。不能进行快速文字复原的字形压缩方法是不实用的。

Page 41: 第五章 中文信息处理

5.3.2 字形点阵的压缩和还原• 黑白段表示法• 黑白段表示法是考虑到汉字笔画中黑白连续变化的特点而产生的压缩方法。• 压缩时计算机逐行地数取点阵中的空白点数(白段)和非空白点数(黑段), 按一定格式相间地记录下一串数字构成行点阵信息。• 同样也可用重复行数来压缩相邻的重复行信息。• [ 行标志 ][ 重复行数 ][ 白段 ][ 黑段 ]…[ 白段 ][ 黑段 ]

*     N    W1  B1 … Wn  Bn

Page 42: 第五章 中文信息处理

5.3.2 字形点阵的压缩和还原(续)• 线性增量表示法• 采用黑、白段信息格式,保留上述的竖直压缩,增加一种新的压缩格式。• 线性增量表示法用以处理汉字笔画中大量存在的斜线。• 在一行黑、白段记录信息的后面再注明线段的增量,这样下一行的黑、白段长度在上一行的基础上按增量的大小作相应的变化。

Page 43: 第五章 中文信息处理

5.3.2 字形点阵的压缩和还原(续)[ 行标志 ][ 重复行数 ][ 白段 ][ 白段增量 ][ 黑段 ][ 黑段增量 ]

**     N    W1  ΔW1 B1 ΔB1…[白段 ][ 白段增量 ][ 黑段 ][ 黑段增量 ]… Wn  ΔWn Bn ΔBn

• 用增量记录的行数要超过两行( n大于 2 ),压缩才有意义。• 第 1 行是不考虑增量值的黑、白段信息,最后一行是加上相应增量后的黑、白段信息,中间的 n-2行的黑白段长段均在上一行的长度基础上,加上线性增量来补齐的。

Page 44: 第五章 中文信息处理

5.3.2 字形点阵的压缩和还原(续)• 考虑 1024×1024 点阵字库,如采用黑白段表示法得到一行信息:“ * 2 1024 0” ,则表示?• 如果相邻行不相同的概率为 50% ,平均每行有 5 个黑段,则一个汉字的字形信息有:

(1+1+10*2)*1024*(100%-50%)=11K• 国内早期在蒙纳激光照排系统中使用一种 1380×1380 点阵的字库, 1 种字体就要约 2000MB 的存储量。• 采用这两种压缩方法以后,这个系统的黑体、宋体、仿宋体、楷体 4 种字体的字库总存储量约为 65MB 。

Page 45: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法• 规则笔画:横、竖、折。• 规则笔画主要由直线段、起笔笔锋、收笔笔锋和转折笔锋等构成。• 笔锋总共可以分成 7 种,因此在宋体横这一笔画的压缩表示中,用 3 位表示收笔笔锋的号码( 0 - 6 ),其余的信息将指示横的起始点的 x 、 y 坐标,横的长度、宽度以及有无起笔笔锋等。这样宋体的一笔横需 3 - 4 字节便可精确描述而丝毫不失真。• 笔画竖也是如此,起笔笔锋用 3 位信息来表示,收起笔锋用 2 位信息来表示,其余的信息则表示起点坐标、竖的长度和宽度,此外还用 1 个字节来详细描述笔画左、右倾斜的情况,这样描述宋体的竖需要 5 个字节。

Page 46: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法(续)• 不规则笔画:点、撇、捺、钩…• 对不规则笔画,用向量折线对轮廓曲线作一般性的描述。• 为了减少数位的浪费,使压缩信息更加紧凑,采用增设控制字节的方法,按下述规则对之进行装配:

Page 47: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法(续)• 若控制字节的头两位为 11 ,则该字节其余 6 位与下一节合起来,指示不规则笔画起始点的 x 、 y 坐标。

7 6 5 4 3 2 1 0

1 1 笔画起始点的 x坐标x7 笔画起始点的 y坐标

Page 48: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法(续)• 若控制字节的头两位为 10 ,表示所指示的向量的

Δx 、 Δy 的绝对值中至少有一个大于等于 16 ,此时控制字节的末 6 位与下一字节合起来表示该向量的 Δx 、 Δy的数值,数值以原码表示。

7 6 5 4 3 2 1 0

1 0 向量的 Δx

x7 向量的 Δy

Page 49: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法(续)

N

7 6 5 4 3 2 1 0

0 1 向量的个数 N

象限 | Δx | | Δy |

……

象限 | Δx | | Δy |

• 若控制字节的头两位为 01 ,表示后面 N个向量的 Δx 、 Δy绝对值均小于 8 , N由控制字节的最末 5 位指示。后面 N个向量中的每个向量用一个字节表示,其中 2 位指示该向量所处的象限, 3 位指示 Δx 的绝对值,3 位指示 Δy 的绝对值。

Page 50: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法(续)

N

7 6 5 4 3 2 1 0

0 0 象限 向量的个数 N

| Δx | | Δy |

……

| Δx | | Δy |

• 若控制字节的头两位为 00 ,表示后面 N个向量处于同一象限,且Δx 、 Δy 的绝对值均小于 16 。 N由控制字节的最末 4 位表示,控制字节的中间 2 位指明象限,后面 N个向量都由一个字节表示,其中 4 位指示 Δx 的绝对值, 4 位指示 Δy 的绝对值。

Page 51: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法(续)• 在采用了上述的进一步压缩的措施之后, 1 个五号汉字字形信息平均需要 120 字节来记录,而记录 1 个五号汉字字形点阵信息大约需用

1400 多个字节,因此单字的平均压缩倍率大约为 12倍。• 由于五号字最常用,且非变倍字形的恢复速度也最快,故系统字库中只存入五号字的字形压缩信息,而其余字号均由计算机通过五号字字模变倍得到。• 目前的计算机汉字出版系统上中宋体、黑体、仿宋体、楷体、报宋体、小标题宋体几种字模的压缩信息,存储量约为 5MB ,字模总体压缩倍率在 500倍左右。

Page 52: 第五章 中文信息处理

5.3.3 轮廓矢量字形的压缩方法(续)• 字形压缩信息与最终输出的点阵字形信息,这两种数据之间存在着“结构冲突”。

– “ 次序冲突”:字模压缩信息以笔画为序,规则笔画在前,不规则笔画在后,一笔信息完毕再有另一笔信息;而输出点阵信息则是从左至右,一行完了再开始新的一行,二者的次序关系完全不同。– “边界冲突”:字模压缩信息以笔画划分内部信息的边界,而最终要输出的点阵信息以行划分边界,二者的边界完全不同。

Page 53: 第五章 中文信息处理

5.3.4 其他字形压缩技术• 骨架向量法:又称笔画骨架法。用能够表示汉字笔画特征的线段,作为组成汉字字形的最基本元素的字形表示法。

可用下列数据来表示:( 15 , 1E )、( 80 , 8D )( F5 , FE )、( 1D , FD )

Page 54: 第五章 中文信息处理

5.3.4 其他字形压缩技术(续)• 部件组字法:抽取汉字的共性,以最少量的部件和笔画作为基本字元来组织出尽可能多的汉字字形,这就是所谓的组字技术。组字技术并非信息压缩技术。• 汉字字形压缩法还有:无失真向量拟合法、曲线参数拟合法、笔画函数叠加法、轮廓特征分析法、复合压缩法、递推偏差拟合法、折线法、叠加法字形压缩、哈夫曼综合处理法等。

Page 55: 第五章 中文信息处理

5.4 字形的放大和缩小 • 汉字的字号• 字形放大和缩小的基本原理• 防止字形放大和缩小失真的措施• 字形放大缩小的应用

Page 56: 第五章 中文信息处理

5.4.1 汉字的字号• 书版宋体、报版宋体、标题宋体、仿宋体、黑体和楷体这六种字体,均以五号字为基本字号。• 字模存储器中只存放五号字的压缩信息,其余字号都由五号字变倍而得。• 基本字体还可以通过拉长和压扁的变倍方法变化出各种长字体和扁字体。

Page 57: 第五章 中文信息处理

5.4.2 字形放大和缩小的基本原理• 字形在放大和缩小时,也分为规则笔画和不规则笔画这两种情况来处理。• 无论使规则笔画还是不规则笔画,都是用轮廓折线表示的,它们很容易被放大缩小。例如,要使得图形放大 r倍(这里 r不一定是整数),只需把对应的每段轮廓折线放大 r倍,也即对每条折线的 Δx 、 Δy值都乘以 r。• 要得到高质量的放大或缩小的字形,需要采取一系列的措施来防止在变倍过程中的失真。

Page 58: 第五章 中文信息处理

5.4.3 防止字形放大和缩小失真的措施• 1. 防止字形变倍时的舍入误差积累。

变倍时舍入误差的积累

Page 59: 第五章 中文信息处理

5.4.3 防止字形放大和缩小失真的措施(续)• 结点变倍方法,用下面的公式获得变倍后的 Δx’ 、 Δy’(变倍率=r ):

A’B’折线的 Δx’ = B’ 点的 x 坐标 – A’ 点的 x 坐标= (B 点 x 坐标 × r)(舍入 ) - (A 点 x 坐标 × r)(舍入 )

A’B’折线的 Δy’ = B’ 点的 y 坐标 – A’ 点的 y 坐标= (B 点 y 坐标 × r)(舍入 ) - (A 点 y 坐标 × r)(舍入 )

* 这里 (p)(舍入 )表示 p 经过四舍五入后取整数值。

Page 60: 第五章 中文信息处理

5.4.3 防止字形放大和缩小失真的措施(续)• 2. 保证规则笔画宽度的一致性。• 对于规则笔画横、竖、折的宽度部分,不采用结点变倍法,而按下述公式计算:变倍后的宽度 = (变倍前宽度 × r)(舍入 )

Page 61: 第五章 中文信息处理

5.4.3 防止字形放大和缩小失真的措施(续)• 3. 规则笔画与不规则笔画衔接部分的处理

笔画‘勾’的下延伸

A 点的 A’ 点由直线变倍得到,而对应B点的 B’ 点由结点变倍得到。这样, AB直线本来是直的,但变倍后的A’B’折线可能变成向左或向右倾斜一格的斜线。可采取以下措施克服此失真:当延伸的第一笔原 Δx = 0 ,则变倍后永远使这一笔的 Δx’ = 0 。

Page 62: 第五章 中文信息处理

5.4.3 防止字形放大和缩小失真的措施(续)• 4. 小号字横的宽度的控制和笔锋的细致描述。• 字号缩小很小时,在变倍过程中会引起某些部分变得过分密集,尤其当一个字内横的数量很多时。在横的压缩信息中,用两位二进制数细致刻画横宽。

Page 63: 第五章 中文信息处理

5.4.4 字形放大缩小的应用• 点阵方法描述的字形在缩放时采用插值加线或抽线的方法,会产生严重变形或以质量损失为代价。可以采用平滑技术使锯齿边的台阶缩小或用斜边代替锯齿。但是无论平滑技术如何好,所产生的字形因锯齿或折线而产生的不平滑感只能缩小而不能排除。

Page 64: 第五章 中文信息处理

5.4.4 字形放大缩小的应用(续)• 轮廓矢量方法是为了改进点阵字形在缩放时会出现锯齿状轮廓而产生。在文字复原时,通过对向量的长度进行变倍放大或缩小,便可获得不同的字号。• 如果在变倍时对 x 方向和 y 方向分别选不同的倍率,还可以获得变形长体字或扁体字。• 轮廓字库在还原时需经特定的运算将这些用轮廓描述的字形转化成点阵方式,再由输出设备输出。• 这个运算可以在输出设备内进行,也可在计算机上先转换成位图再输出。

Page 65: 第五章 中文信息处理

5.4.4 字形放大缩小的应用(续)• 轮廓字库解决了点阵字库缩放后失真的问题。这种字形描述技术对汉字横平竖直的字形有很好的描述效果,但对于撇、捺、点,以及圆弧装饰效果的字体,即使是缩小直线距,仍然不能十分逼近字形,而且字体放大之后,轮廓仍然具有折线感。• 由于近年来硬件的迅速发展,有能力用二次曲线或三次曲线代替直线描述字形轮廓的字库。

Page 66: 第五章 中文信息处理

5.5 TTF 字形技术• 什么是 TrueType• TrueType 的基本原理• TrueType 字体文件结构• TrueType 的特点和优势• TrueType 的应用• OpenType 的出现

Page 67: 第五章 中文信息处理

5.5.1 什么是 TrueType• TrueType 是 Apple公司和 Microsoft公司合作开发的

PDL ( Page Description Language )语言TrueImage 中的字形描述部分。

• TrueType 有一套专门的指令集,用于完成字形的描述、特征参数的描述及其他一些描述。它用的轮廓描述曲线是二次 B- 样条( Bezier-spline )函数。

Page 68: 第五章 中文信息处理

5.5.2 TrueType 的基本原理• TrueType 字体对字形的描述是轮廓描述,在轮廓上有一串结点组成,这些结点有 on-line 和 off-line 两种属性来描述一个封闭的轮廓线。• TrueType 对字形轮廓上的结点都给出一个编号,其顺序是按顺时针方向走一圈,即填黑的部分永远在其右边。

Page 69: 第五章 中文信息处理

5.5.2 TrueType 的基本原理(续)• TrueType 字库中的主要特征参数• 在 X 方向上有 5 个关键距离值:

– 字身最左边的起始点到字母主干的空间;– 字母主体部分的宽度;– 字身的宽度(西文字母字身不等宽);– 字母主干( stem )的宽度;– 字母衬线( serif )的大小。

• 在 Y 方向上:– 字母横干( crossbar )的厚度;– 字母衬线的厚度;– 字母主体的高度;– 字母横干的高度。

Page 70: 第五章 中文信息处理

5.5.2 TrueType 的基本原理(续)• 在变倍时用数学方法将相同的特征参数值同等定义,在任何字号下都同等还原,这时考虑的是字体各特征点的形状,而不考虑坐标格的修整。• TrueType 的字形文件不单单由轮廓数据而且还有用

TrueType 指令写的程序, TrueType 的字形包括指令和数据及 TrueType 字形发生器。

Page 71: 第五章 中文信息处理

5.5.3 TrueType 字体文件结构TrueType 字体文件总体结构:

文件头( 12 Bytes)描述表目录(每个 16 Bytes)描述表数据

Page 72: 第五章 中文信息处理

5.5.3 TrueType 字体文件结构(续)• 文件头共 12B :

Fixed sfnt_version //TTF文件版本号码( 0x00010000)USHORT numTables //描述表数目USHORT searchRange //描述表快速查找范围USHORT entrySelector //描述表入口选择USHORT rangeShift //范围调整

Page 73: 第五章 中文信息处理

5.5.3 TrueType 字体文件结构(续)• 描述表目录。其目录个数由 numTables 决定,每个目录

项 16B :

ULONG tag //描述表名称( 4 Bytes)ULONG checkSum //描述表内容的校验和ULONG offset //此描述表的位置偏移(从文件头开始)ULONG length //描述表字节长度

Page 74: 第五章 中文信息处理

5.5.3 TrueType 字体文件结构(续)• 常用的 TTF 文件描述表共有 19 个,其中有 10 个为每个

TTF 文件所必须包含的,其他的 9 个可根据需要任选。• 10 个必须的描述表:

– ‘ cmap’ 字符代码到文字序号的映射表– ‘ glyf’ 文字轮廓数据 – ‘ head’ 文件头信息– ‘ hhea’ 水平度量头信息 – ‘ hmtx’ 水平度量信息– ‘ loca’ 字符轮廓数据位置索引– ‘ maxp’ 最大值描述– ‘ name’ 名字表– ‘ post’ PostScript 打印机控制– ‘ OS/2’ OS/2 和 Windows 度量信息

Page 75: 第五章 中文信息处理

5.5.3 TrueType 字体文件结构(续)• 9 个可选的描述表:

– ‘ cvt ’ 控制值表– ‘ fpgm’ 定义程序区– ‘ hdmx’ 水平设备度量– ‘ kern’ 紧排控制– ‘ LTSH’ 线性门限 – ‘ prep’ CVT程序区– ‘ WIN ’ 保留– ‘ VDMX’ 垂直设备度量– ‘ FOCA’ 保留

Page 76: 第五章 中文信息处理

5.5.4 TrueType 的特点和优势• TrueType 的特点是:

– TrueType既可作打印字体,又可以用作屏幕显示。– 由于它是由指定字形进行描述,因此它与分辨率无关,输出时总是按照打印机的分辨率输出。– 无论放大或缩小,字符总是光滑的,不会有锯齿出现。– 相对 PostScript 字体来说,其质量要差一些。特别是在文字太小时,表现得不是很清楚。

Page 77: 第五章 中文信息处理

5.5.4 TrueType 的特点和优势• 由于 TrueType 技术本身的特点而使它具有以下优势:

– 真正的所见即所得效果– 支持字体嵌入技术,保证文件的跨系统传递性– 操作系统平台的兼容性– ABC 字宽值– 精确的字体轮廓描述– 品种繁多的字体家族

Page 78: 第五章 中文信息处理

5.5.5 TrueType 的应用• TTF 字体的创建:使用已有的 TTF 字体编辑软件。• TTF 字体在面向对象程序中的引用:

– Windows 使用 LOGFONT 结构定义字体文件的属性。此结构可以在程序中直接引用。– 程序片断。

Page 79: 第五章 中文信息处理

5.5.6 OpenType 的出现• 为了解决 “前后端不一致”的问题,微软和 Adobe公司联合推出了一种新的通用字体格式—— OpenType (简

称 OTF )。• OpenType 集中了 TrueType 和 Type 1 两种字形描述技术的特点,是一个开放、无版权的字形描述技术。

Page 80: 第五章 中文信息处理

5.5.6 OpenType 的出现(续)• OpenType 字体格式能达到以下目的:

– 更宽的多平台支持;– 更好的支持国际字符集;– 更强的字体数据保护;– 字体文件更小,有利于提高发送效率;– 为先进的字体印刷控制提供更多的支持。

Page 81: 第五章 中文信息处理

5.6 字库的设计和管理技术• 汉字字库的基本要求• 汉字库性能的评测• 汉字库结构的设计• 点阵字库的制作

Page 82: 第五章 中文信息处理

5.6.1 汉字字库的基本要求• 汉字库的设计应该追求三项目标:

– 字形质量高– 读取速度快– 系统开销小

• 它们之间的关系是:随着字形点阵数的增加,字形失真就越小;但字形库容量会增大,也就意味着字形库成本增加,字形点阵存取速度下降。

Page 83: 第五章 中文信息处理

5.6.2 汉字库性能的评测• 汉字库的性能主要包括访问字库的速度 v 和字库的内存开销m, v

和m分别与汉字库的性能成正比和反比关系。• 用 k参数来描述汉字库的性能:

k = ( v – v0 ) / m式中 v 为输出模块用此汉字库后所能达到的输出汉字平均速度,m为汉字库的内存开销, v0为输出模块应具备的输出汉字的起码平均速度, v0的取值决定了 k参数描述的有效范围。

Page 84: 第五章 中文信息处理

5.6.2 汉字库性能的评测(续)• 进一步分析 v 与m之间的关系后,用下式表示:

v = m × f( s ) × w式中 s为 GB2312 的全集, f为确定其子集作为汉字库常驻内存部分的法则, w为其它因素。

• 欲提高 k参数,必须寻求 f( s ) 的最佳情况。由于中文信息处理系统的使用环境不是静态的,因此采用静态汉字库结构不可能进一步获得较高的 k参数,而必须考虑动态汉字库结构,以适应动态的使用环境。

Page 85: 第五章 中文信息处理

5.6.3 汉字库结构的设计• 输出模块实际是将汉字内部码转换成对应的汉字字形信息。可以用下面的公式表示这一过程:

y = f ( x )其中 x 为汉字内部码, y 为汉字字形信息, f为输出模块的转换处理。

• 汉字库在中文信息处理系统中占有相当重要的地位。

Page 86: 第五章 中文信息处理

5.6.3 汉字库结构的设计(续)• 静态汉字库:

– 全内存型字库 - 访问速度快,但占用大量的内存资源。– 全外存型字库 - 响应速度较慢,只能满足一般用户的使用要求。– 内外存结合型字库 - 可达到既减小内存开销,又保证访问速度的目的。实践证明具有较高的效率和较好的性能。

Page 87: 第五章 中文信息处理

5.6.3 汉字库结构的设计(续)• 动态汉字库:

– 准动态型字库• 由静态汉字库中的内外存结合型字库改进而成。• 访问这种汉字库的算法。• 称不上真正的动态型字库。

– 自适应型字库• 分为内存字库和外存字库两个部分• 内存字库中的内容由系统根据使用环境进行自动调整,是一种真正的动态型字库。

– 多级型字库• 多级型字库是对自适应型字库的改进。• 设计了三级汉字库,分别是常用字库、动态字库和外存字库。

Page 88: 第五章 中文信息处理

5.6.4 点阵字库的制作• 要做到造字迅速、准确、直观和修改方便,必须使用计算机辅助设计。• 关键要有点阵字形的显示,修改和存储,即要有一个造字软件。• 造字时软件在终端屏幕上画出放大的栅格,然后利用键盘严格按字模移动光标打点、画线,最后完成一个汉字的输入。

Page 89: 第五章 中文信息处理

5.6.4 点阵字库的制作(续)• 点阵字形设计基础是点阵字稿的设计。在进行字稿设计时,应该充分注意下述六个方面:

– 结构端正、重心平稳– 均匀足格、大小一致– 偏旁组合、比例协调、上下对准、左右平衡– 粗细黑白、灵活掌握– 笔画舒展自然– 部首归类,相对统一,灵活套用

Page 90: 第五章 中文信息处理

5.7 汉字字库的应用• 造字程序的使用• 安装新字体

Page 91: 第五章 中文信息处理

本 章 结 束