简化复杂字符以便保持易读性转让专利

申请号 : CN200510108874.X

文献号 : CN1755666B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·J·达根W·希尔G·C·希契科克B·施塔姆G·G·韦德

申请人 : 微软公司

摘要 :

用于给字符增加提示指示,以便改善当字符轮廓被扫描转换时从某种大小和输出分辨率的字符轮廓产生的字符位图的方法,系统和计算机产品。检索将要输出的字符。确定所述字符属于一个语义字符分类,并且访问与所述语义字符分类相关联的提示指示。所述的提示指示保留了所述字符的语义含义,同时基于参考字符大小和输出分辨率改变了所述字符的至少一个特征的至少一个笔划的笔划表现,笔划位置或是这两者。如果所述字符的实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内,执行所述的提示指示。

权利要求 :

1.一种自动地执行字符的提示指示以便改善在字符轮廓被扫描转换时从某种大小和输出分辨率的字符轮廓产生的按比例缩放的字符位图的方法,该方法包括如下动作:检索要被输出的字符,所述字符包括一个或多个特征,每个特征进一步包括一个或多个笔划;

从多个可用的语义字符分类中识别所述字符所属于的一个或多个语义字符分类,其中,每个可用的语义字符分类对具有共有特征的相应字符分类,所述共有特征在被修改时不会显著改变由相应语义字符分类所分类的字符的含义或易读性,从而所述语义字符分类基于字符的语义而不是仅仅基于字符特征的视觉上的类似性;

访问与对应于所检索到的字符的所述一个或多个语义字符分类中的每一个相关联的一个或多个提示指示,所述一个或多个提示指示保留了所述字符的语义含义,同时基于参考字符大小和输出分辨率改变所述字符的至少一个特征的至少一个笔划的笔划表现和笔划位置中的至少一个;

将用于所述字符的实际字符大小和输出分辨率与用于所述一个或多个提示指示的参考字符大小和输出分辨率进行比较;以及如果所述实际字符大小和输出分辨率位于所述参考字符大小和输出分辨率内时,执行所述一个或多个提示指示,以便改变所述字符的至少一个特征的至少一个笔划的笔划表现和笔划位置中的至少一个,以便产生被提示的字符轮廓。

2.如权利要求1所述的方法,其特征在于,所述一个或多个提示指示改变了所述字符的至少一个特征的至少一个笔划的笔划位置。

3.如权利要求1所述的方法,其特征在于,还包括从被提示的字符轮廓创建按比例缩放的字符位图的动作。

4.如权利要求3所述的方法,其特征在于,还包括将所述的位图发送到显示设备的动作。

5.如权利要求1所述的方法,其特征在于,所述字符是来自东亚语言的字符。

6.如权利要求1所述的方法,其特征在于,所述字符属于与一个或多个第一提示指示相关联的第一语义字符分类和与一个或多个第二提示指示相关联的第二语义字符分类。

7.如权利要求6所述的方法,其特征在于,包括执行所述的一个或多个第一提示指示,但是不执行所述的一个或多个第二提示指示的动作。

8.如权利要求1所述的方法,其特征在于,所述一个或多个提示指示改变了所述字符的至少一个特征的至少一个笔划的笔划表现。

9.如权利要求8所述的方法,其特征在于,所述至少一个笔划是垂直笔划。

10.如权利要求1所述的方法,其特征在于,还包括将被提示的字符轮廓输出到打印机的步骤。

11.如权利要求5所述的方法,其特征在于,还包括:

从被提示的字符轮廓创建按比例缩放的字符位图;

将所述按比例缩放的字符位图发送到输出设备。

12.如权利要求11所述的方法,其特征在于,所述一个或多个提示指示改变了所述字符的至少一个特征的至少一个笔划的笔划位置。

13.如权利要求11所述的方法,其特征在于,所述字符属于多个语义字符分类。

14.如权利要求11所述的方法,其特征在于,所述输出设备包括显示设备。

15.一种给字符组增加提示指示以便改善当字符组中的字符的轮廓被扫描转换时从指定大小和输出分辨率的字符的轮廓产生的字符位图的方法,该方法包括如下动作:接收要被输出的字符组,每个字符包括具有一个或多个笔划的一个或多个特征;以及对所述字符组中的每个字符:识别所述字符所属的一个或多个语义字符分类,每个语义字符分类对具有共有特征的相应字符分类,所述共有特征在被修改时不会显著改变由相应语义字符分类所分类的字符的含义或易读性,从而所述语义字符分类基于字符的语义而不是仅仅基于字符特征的视觉上的类似性;

识别与用于所述字符的所述一个或多个语义字符分类相关联的一个或多个提示指示,所述一个或多个提示指示保留了所述字符的语义含义,同时当用于所述字符的实际字符大小和输出分辨率位于参考字符大小和输出分辨率内时,改变所述字符的至少一个特征的至少一个笔划的笔划表现和笔划位置中的至少一个;以及将所述一个或多个提示指示与所述字符相关联。

16.如权利要求15所述的方法,其特征在于,还包括开发所述一个或多个语义字符分类的步骤。

17.如权利要求15所述的方法,其特征在于,所述字符组是来自东亚语言的一个或多个字符。

18.如权利要求17所述的方法,其特征在于,所述一个或多个提示指示基于用于所述字符的Unicode值与所述字符相关联。

19.如权利要求15所述的方法,其特征在于,所述字符组包括一种字体的至少一部分。

20.如权利要求19所述的方法,其特征在于,还包括将至少一个提示指示与特定于至少一个字符的所述字体的至少一个字符相关联的步骤。

21.如权利要求15所述的方法,其特征在于,所述字符属于与一个或多个第一提示指示和第一参考字符大小和输出分辨率相关联的第一语义字符分类,以及与一个或多个第二提示指示和第二参考字符大小和输出分辨率相关联的第二语义字符分类,其中所述第一参考字符大小和输出分辨率不同于所述第二参考字符大小和输出分辨率。

22.如权利要求15所述的方法,其特征在于,还包括为所述一个或多个语义字符分类中的每一个定义一个或多个提示指示的动作。

23.如权利要求17所述的方法,其特征在于,所述字符属于多个语义字符分类。

24.如权利要求15所述的方法,其特征在于,所述字符组是来自拉丁字体的一个或多个字符。

25.一种减少至少一个字符笔划以改善当字符轮廓被扫描转换时从某种大小和输出分辨率的字符轮廓产生的按比例缩放的字符位图的字符易读性的方法,该方法包括如下动作:定义字符轮廓,所述的字符轮廓包括一个或多个特征,每个特征进一步包括一个或多个笔划;

定义一个或多个参考字符大小和输出分辨率;

将用于所述字符的实际字符大小和输出分辨率与所述一个或多个参考字符大小和输出分辨率进行比较;

将字符分类成一个或多个语义字符分类,每个语义字符分类对具有共有特征的相应字符分类,所述共有特征在被修改时不会显著改变由相应语义字符分类所分类的字符的含义或易读性,从而所述语义字符分类基于字符的语义而不是仅仅基于字符特征的视觉上的类似性;

定义用于所述字符的所述一个或多个语义字符分类的一个或多个提示指示,以便如果所述实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内,则执行所述的一个或多个提示指示,与基于字符特征的视觉上的相似性定义所述一个或多个提示指示相反,所述的一个或多个提示指示保留了所述字符的语义含义,同时减少了所述字符的至少一个特征的至少一个笔划而不显著改变字符的含义或易读性。

26.如权利要求25所述的方法,其特征在于,所述字符轮廓是来自东亚语言的字符轮廓。

27.如权利要求25所述的方法,其特征在于,所述一个或多个参考字符大小和输出分辨率被以目标点大小和输出分辨率表示。

28.如权利要求25所述的方法,其特征在于,所述一个或多个参考字符大小和输出分辨率被按每个行长单位的像素数表示。

29.如权利要求25所述的方法,其特征在于,如果所述实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内,所述一个或多个提示指示折叠所述至少一个笔划。

30.如权利要求29所述的方法,其特征在于,所述至少一个笔划是水平笔划。

31.如权利要求25所述的方法,其特征在于,如果所述实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内,所述一个或多个提示指示部分地折叠所述至少一个笔划。

32.如权利要求25的方法,其特征在于,如果所述实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内,所述一个或多个提示指示缩短所述至少一个笔划。

说明书 :

简化复杂字符以便保持易读性

技术领域

[0001] 本发明涉及字符的易读性。更具体地,本发明涉及给字符增加提示指示,以便改善当字符轮廓被扫描转换时从某种大小和输出分辨率的所述字符的轮廓产生的字符位图。

背景技术

[0002] 图1示出了字符轮廓100。字符轮廓是使用直线和曲线对字符形状的数学描述。字符轮廓100包括由笔划121-126组成的特征120,并且包括笔划111-112和131-133。将笔划121-126识别为特征120是一种有些随意的指定,下面将以本发明的各种实施例更详细地对其进行描述。对于现在,理解一个特征是字符的一个或多个笔划的的集合就足够了。
[0003] 图2示出了被按比例缩放到60个像素的网格的字符轮廓100的位图200。与字符轮廓100类似,位图200包括由笔划221-226组成的特征220,并且包括笔划211-212和231-233。图2示出当有足够的像素可用于特定大小的字符时,字符呈现是相对直接和简单的处理。
[0004] 然而,考虑各种输出设备上的位图200的大小。即使是当前最便宜的激光打印机也提供每英寸300个点的分辨率(DPI),具有600个点的更常见。虽然对于激光打印机是不常见的,大于2400DPI的分辨率对于喷墨打印机来说并不是不常见的。因此,如果被呈现在300DPI的激光打印机上,位图200将有1/5英寸高。
[0005] 然而典型的显示设备,具有低得多的分辨率。例如,每英寸大约100到133个像素(PPI)的监视器分辨率被认为是高的,具有72PPI的分辨率是相当常见的。结果,在如果被呈现在高分辨率监视器上,位图200将大约有1/2英寸高。
[0006] 通常被接受的是字符的最佳阅读大小在大约9到12个点之间。一个点大约是1/72英寸。将点的大小转换为英寸,因此字符的最佳阅读大小大约是1/8英寸到大约1/6英寸。
[0007] 如上指出的,如果被呈现在300DPI的激光打印机上,位图200将是1/5英寸高,这对于阅读来说是大的,但不是十分不合理。然而,上面还提到,如果被呈现在高分辨率的监视器上,位图200将具有大约1/2英寸的高度,这对于有效的阅读来说太大了。
[0008] 如图3所示,为了在72PPI的监视器上使得字符轮廓100成为最佳阅读的位图,字符轮廓100需要被按比例缩放到12像素的网格。在72PPI的监视器上,位图300有1/8英寸高。然而注意,当字符轮廓100被按比例缩放到12像素的网格时,没有足够的像素以便准确地表现该字符的形状。
[0009] 与位图200类似,位图300包括由笔划321-326组成的特征320,并且包括笔划311-312和331-333。然而如图3所示,由于冲突的像素和块状点,该字符的形状看起来是断裂的。例如,在笔划322和324A之间以及笔划326和332之间没有空白。
[0010] 如图4的基本位图400中所示,垂直方向上的14个像素大约是准确地表示字符轮廓100所需的最小数目,假设:一个像素用于笔划411的顶部,一个像素用于笔划412,一个像素用于笔划412和422之间的间隔,一个像素用于笔划422,一个像素用于笔划422和笔划424A之间的间隔,一个像素用于笔划424A,一个像素用于笔划424A和笔划424B之间的间隔,一个像素用于笔划424B,一个像素用于笔划424B和笔划426之间的间隔,一个像素用于笔划426,一个像素用于笔划426和笔划432之间的间隔,一个像素用于笔划432,两个像素用于笔划431和433。当然,准确地表示一个字符所需的最少像素数目随着字符的不同而不同。
[0011] 粗略地,一种字体的最高字符的顶部到最低字符的底部之间的垂直距离被定义为“em(行长单位)”。也可以有一些补白(padding),并且某些字体字符可以超过一个em。em不是一个测量单位,而是对这种距离的一种缩写描述。每个em的像素数有助于确定是否容易发生图3中示出的字符形状问题。每个em有60个像素(图2)比每个em有12个像素(图3)更不易发生字符形状问题。
[0012] 回到图4,如果在重置方向上不可得到14个像素,则字符可以被改变以便改善易读性。应当注意,虽然图4示出了垂直方向上不足的像素,没有足够的像素表示字符也适用于水平方向。一种改变字符以便改善易读性的方法是从字符中删除笔划。出于示例的目的,为字符轮廓100选择了亚洲字符,亚洲字符与拉丁字符相比往往具有大量的笔划,并且因此一般地,或是在水平方向或是在垂直方向上,对于适合于有效地阅读的字符大小,更易出现图3所示的形状问题。当然,取决于字符轮廓中的笔划数目,字符的目标大小,输出设备的分辨率等等,拉丁和其它字符也容易出现同样的形状问题。
[0013] 从亚洲字符中删除笔划粗略地近似于从英文单字中删除字母。对于大多数英文单字,删除一个字母不会使得该单字不可辨认,特别是在周围单字的上下文中。当然,某些字母具有比其它字母更多的影响-删除单字中间的元音可能比删除单字开头的辅音引起更少的问题。类似地,从亚洲字符中删除笔划可以减少表示字符所需的像素数,而不会太大程度地影响易读性。然而类似于从英文单字中删除字母,应当选择要被从亚洲字符中删除的笔划,以便最小化对易读性的任何潜在地减少。
[0014] 结果,不是按比例缩放字符轮廓100,传统的亚洲字体包括由字体开发者创建的多个位图,以便以不同字体大小呈现字符。图5中示出的减少了笔划的位图500是图1中示出的字符轮廓100的示例位图。注意笔划124A和124B被折叠并为单个笔划524以便改善易读性。其余的笔划511,512,521,522,523,526和531-533大部分未改变。
[0015] 虽然图5中示出的解决方案解决了图3中示出的字符形状问题,为每个字符提供多个位图极大地增加了开发亚洲字体所需的资源,并且极大地增加了所述字体所需的存储要求。例如,考虑一种亚洲字体可以包含多于20,000个不同的字符。为了给每个字符提供多个位图,用于单个亚洲字体的位图数目可以超过400,000。结果,开发一种亚洲字体可能需要与50个字体设计者一整年的工作相当的工作量。
[0016] 因此,本发明提供了用于给字符增加提示指示(hinting instruction)以便改善当字符轮廓被扫描转换时从某种大小和输出分辨率的字符轮廓产生的按比例缩放的字符位图的易读性的方法,系统和计算机程序产品。

发明内容

[0017] 本发明涉及用于给字符增加提示指示,在某些情况下自动地增加提示指示,以便改善当字符轮廓被扫描转换时从某种大小和输出分辨率的所述字符轮廓产生的按比例缩放的字符位图。
[0018] 根据本发明的实施例的示例方法,要被输出的字符被检索,所述字符包括一个或多个特征,这些特征中的每一个包括一个或多个笔划。该方法确定所述字符属于一个或多个语义字符分类,并且访问与所述的一个或多个语义字符分类中的每一个相关联的一个或多个提示指示。所述的一个或多个提示指示保持了该字符的语义含义,同时基于参考字符大小和输出分辨率或是改变了该字符的至少一个特征的至少一个笔划的笔划表现,笔划位置或是这两者。对用于所述字符的实际的字符大小和输出分辨率与用于所述的一个或多个提示指示的参考字符大小和输出分辨率进行比较,并且所述的一个或多个提示指示被执行以便或是改变所述字符的至少一个特征的至少一个笔划的笔划表现,笔划位置,或是改变这两者,以便产生被提示的字符轮廓。
[0019] 可以从所述被提示的字符轮廓创建按比例缩放的位图,并且将其发送到显示设备或打印机。在某些实施例中,所述的字符来自一种东亚语言。
[0020] 根据本发明的另一个示例的计算机程序产品实施例,接收一组将被输出的字符,每个字符包括具有一个或多个笔划的一个或多个特征。对于所述字符组中的每个字符,识别出该字符所属的一个或多个语义字符分类和与所述语义字符分类相关联的一个或多个提示指示。所述的一个或多个提示指示保留了所述字符的语义含义,同时基于参考字符大小和输出分辨率改变所述字符的至少一个特征的至少一个笔划的笔划表现,笔划位置,或是改变这两者。所述的一个或多个提示指示被与所述字符关联在一起。
[0021] 与所述字符相关联的一个或多个提示指示可以基于所述字符的Unicode值或某些其它编码,并且所述的字符组可以包括一种字体的至少一部分。例如,所述的字符组可以是来自东亚语言的一个或多个字符。应当注意,一个字符可以属于多个语义字符分类,不同的参考字符大小和输出分辨率可以被应用于不同的提示指示,并且某些提示指示可以与一个字符相关联,并且仅特定于该字符。
[0022] 该方法还包括开发一个或多个语义字符分类,并且定义用于所述一个或多个语义字符分类中的每一个的一个或多个提示指示。
[0023] 根据本发明的另一个示例方法的实施例,字符轮廓包括一个或多个特征,每个特征包括一个或多个笔划,并且定义一个或多个参考字符大小和输出分辨率。用于所述字符的实际字符大小和输出分辨率被与所述一个或多个参考字符大小和输出分辨率比较。一个或多个用于字符的提示指示(与一个或多个减少笔划的位图相对)被定义,以便在如果所述的实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内时被执行。所述的一个或多个提示指示保留了所述字符的语义含义,同时减少了所述字符的至少一个特征的至少一个笔划,以便改善字符易读性。
[0024] 如果所述的实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内,所述的一个或多个提示指示可以折叠笔划,部分地折叠该笔划,缩短该笔划等。所述的笔划可以是任意的字符笔划,包括水平的笔划,垂直笔划或有角的笔划。
[0025] 所述参考字符大小和输出分辨率可以被按照目标点大小和输出分辨率,以每个em的像素数或以任意其它适合的方法表示。
[0026] 在下面的说明中将提出本发明的其它特征和优点,并且从所述的说明中可以部分地明了这些特征和优点,或可以通过本发明的实践被认识到。可以借助于所附权利要求中特别指出的说明和组合实现和获得本发明的特征和优点。从下面的描述和所附的权利要求,将更完整地明了本发明的这些和其它的特征,或可以通过下面提出的本发明的实践认识到。

附图说明

[0027] 为了说明可以获得本发明的上述和其它优点的方式,通过参考在附图中示出的特定实施例,给出了上述简要描述的本发明的更具体的说明。应当理解这些图仅示出了本发明的典型的实施例。并且因此不被认为限定了其范围,通过使用附图将以附加的特征和细节描述并解释本发明,其中:
[0028] 图1给出了一个字符的字符轮廓;
[0029] 图2示出了图1中示出的字符轮廓被按比例缩放到60个像素网格的位图表示;
[0030] 图3给出了图1中示出的字符轮廓被按比例缩放到12个像素网格的位图表示;
[0031] 图4示出了为了准确地表示图1中示出的字符轮廓在垂直方向上所需的像素数;
[0032] 图5示出了由字体设计者创建的,图1示出的字符轮廓的减少笔划的位图;
[0033] 图6示出了已经使用了用于网格拟合的提示的图1中示出的字符轮廓的按比例缩放的位图;
[0034] 图7示出了已经使用了用于网格拟合和笔划减少的提示的图1中示出的字符轮廓的按比例缩放的位图;
[0035] 图8和图9示出了用于给字符或字符集增加提示指示的方法的动作和步骤;和[0036] 图10示出了提供了适合于本发明的操作环境的示例的计算机系统。

具体实施方式

[0037] 本发明涉及用于给字符增加提示指示,以便改善当字符轮廓被扫描转换时从某种大小和输出分辨率的字符轮廓产生的字符位图的方法,系统和计算机程序产品。应当注意,出于说明和清楚的目的,公开的不同的实施例可以集中于本发明的不同方面。因此,公开的实施例不应被用于限制本发明的范围,并且因此应当理解所公开的实施例的组合和/或所公开的实施例的某些部分被包括在本发明的范围内。
[0038] 图6示出了图1中示出的字符轮廓的已经使用了用于网格拟合目的的提示的按比例缩放的位图600。网格拟合使用提示指示描述了在确定哪些像素应被打开之前如何相对于网格拟合字符轮廓。网格拟合试图保持位置和距离的规则性或近似的规则性,试图保持比例。在图6中,注意水平的612,622,624A,624B,626和632已经被相对于12像素的网格拟合了,从而笔划轮廓沿着单个像素。网格拟合通常首先沿着一个轴发生,然后沿着第二个轴。
[0039] 图6中示出的网格拟合改进了该字符的形状,但是没有解决图像中的块点的问题。参考图4,其原因是最少需要14个像素以便准确地表示字符轮廓100。为了改进位图600的形状,额外的提示被执行以便对特征620的中间的笔划624A或624B之一进行折叠。
[0040] 在图7中示出的位图700中示出了这种额外的提示。尤其注意特征620的水平笔划624A和624B之一已经被折叠为特征720的单个水平笔划724。结果,该字符更易读,特别是由于水平笔划712,722,724,726和732之间的空白。
[0041] 有多种支持提示指示的字体语言,包括通常被Apple和Microsoft使用的字体语言被用于描述字符轮廓,诸如字符轮廓100,以便有助于进行按比例缩放,并且用于提示。然而,如上所述,由于上面所述并且在图3中示出的困难,提示没有被用于减少亚洲字体的按比例缩放的字符轮廓中的笔划,并且尤其是东亚(例如,日文,简体和繁体中文,韩文等)字体。而是,字符轮廓被用于呈现这样的字符,其中有足够的每个em的像素数以便准确地表示字符,并且当没有足够的每个em的像素数以便准确地表示字符时,或是(i)类似于图3中示出的字符位图300,被呈现的字符提供了不足的易读性,或是(ii)用于每个字符的多个笔划减少的位图(见图5)被嵌入在所述字体本身中,导致大的字体开发代价和大的字体文件。相反,使用上面所述的提示,可以匹配与多个位图同样的高易读结果,并且从而消除了开发并在字体文件中嵌入笔划减少的位图的需要。
[0042] 例如,在开发字体时,定义字符轮廓。所述的字符轮廓包括由一个或多个笔划构成的一个或多个特征。应当紧记,一个特征仅是对一个或多个笔划的集合的任意的指定,并且不必暗示字符轮廓上的任意其它结构。
[0043] 还定义了一个或多个参考字符大小和输出分辨率。所述的参考字符大小和输出分辨率指出应当发生笔划减少的字符大小和输出分辨率。对于某些字符,可能不需要减少笔划,但是其它的可能需要在一种特定字符大小和输出分辨率时或在多个字符大小和输出分辨率时进行笔划减少。如以前指出的,所述的参考字符大小和输出分辨率可以被按目标点大小和输出分辨率,按每个em的像素数或以任意其它适合的方式表示。
[0044] 在开发时,用于字符的实际字符大小和输出分辨率的变量被与所述的一个或多个参考字符大小和输出分辨率比较。这种变量在运行时间接收所述的实际字符大小和输出分辨率。
[0045] 与使用一个或多个笔划减少的位图相反,定义了一个或多个用于所述字符的提示指示,以便在如果所述实际字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内时被执行。再次地,所述一个或多个提示指示保留了所述字符的语义含义,同时减少了一个或多个字符特征的一个或多个笔划,改善了字符的易读性。如果实际的字符大小和输出分辨率落在所述参考字符大小和输出分辨率中的一个内,则一个或多个提示指示可以折叠笔划,部分地折叠笔划,缩短笔划等等。所述的笔划可以是任意的字符笔划,包括水平笔划,垂直笔划或有角的笔划。
[0046] 通过认识到某些特征出现在多个字符中,从而可以自动地增加所述的提示,可以实现字体开发资源进一步的缩减。如上指出的,字体特征仅是一个或多个字体笔划的任意的集合。使用术语“特征”的主要原因是希望便于下面的语义字符分析的讨论。换言之,字符特征在语义字符分析之外不必具有任意的意义。
[0047] 虽然在一个层次,通过注意字符特征之间的视觉类似性可以实现某些益处,可以通过考虑改变字符特征的语义意义实现附加的益处。换言之,虽然可以基于视觉感知简单地实施提示,基于关于语义的提示指示而不是仅仅是视觉上的类似性,导致更好的易读性。语义分析不必暗示类似的特征对于不同字符意味着相同的内容,而是类似的提示,诸如笔划减少或移动可以被在不同的字符上执行而不会在很大程度上改变字符的含义或易读性。
在整个说明,附图和权利要求中,术语“笔划减少”应被宽泛地解释为包括,但不限于,水平和/或垂直方向上的笔划的整个移除(折叠),笔划的特征地移除(折叠)或缩短笔划。如下面更详细地说明的,笔划减少旨在在不同字符大小和分辨率时保持字符的语义含义和易读性都可行。
[0048] 语义分析涉及定义一个或多个语义字符分类。再次地,这些分类不必指出所述的字符具有类似的含义,而是类似的提示可以被在语义分类中的字符所共有的特征上执行,以便改善易读性。可以是这样的,特征,即使它们看起来类似,但是具有完全不同的语义意义。例如,字符特征可以完全没有语义意义,因为它是具有语义意义的更大的字符特征的一部分。还应当注意确保移除笔划不能使读者在字符间进行辨认太困难。
[0049] 单个字符可以落在多个语义字符分类中,并且因此多个并且可能是独立的提示指示可以被在单个字符上执行或实行。在某些实施例中,字符可以被局限到单个语义分类以便简化所述的提示。在其它实施例中,落在多个语义分类中的字符可以包括提示语言本身中的额外的检查,以便确认在一种类型的提示被执行之后,该字符仍然落在其它语义分类中。可替换地,语义分类本身可以识别出它们以及它们相关联的提示之间的任何的不相容,从而仅有相容类型的提示被执行。例如,通过使一个或多个语义分类排除一个或多个其它的语义分类,不相容可以被明确地识别出来,或通过使一个或多个语义分类被识别为一个或多个相容的语义分类,可以暗示出所述的不相容。
[0050] 虽然上面说明的大部分集中在亚洲字体,应当认识到亚洲字体只是包括这样的字符,由于这些字符包含的笔划数,它们易于出现指出的问题。笔划的数目,分隔这些笔划所需的空白,显示设备的典型分辨率和最有利于易读性的字体大小使得亚洲字体是特别有问题的。然而,对于适当情况下的任何字符都可能遇到同样的问题。
[0051] 一种定量描述何时上面指出的字符形状问题可能会出现的方法是考虑字符的复杂性。此处,与字符中出现的简单的笔划数目相反,复杂性与字符大小和分辨率背景下的一种字符有关。因此,虽然位图200相应于具有大数目笔划的字符,因为有足够的像素数(在这个例子中为60像素的网格)表示该字符,所以该字符不是复杂的。然而,当字符轮廓100被按比例缩放到诸如图3中示出的12像素网格时,因为没有足够的像素准确地表示该字符,所以该字符成为是复杂的。
[0052] 对实用意义上,在每个em的像素数,特定字体和输出分辨率之间存在一种关系。提示可以考虑每个这些因素,并且因此由于字符基于这些因素被认为是复杂的,在必要时有条件地执行笔划减少或移动。因此,集中于亚洲字符仅是示例,并且不旨在限制本发明的范围。
[0053] 还以这些方法描述本发明,所述方法包括功能步骤和/或非功能动作。下面是对可以在本发明的实现中被执行的动作和步骤的描述。通常,功能步骤从实现的结果的方面描述本发明,而非功能动作描述了实现特定结果的更详细的行动。虽然功能步骤和非功能动作可以被以特定的顺序描述或提出,本发明不必限于任意特定的顺序或所述动作和/步骤的组合。
[0054] 图8和图9示出了给字符或字符组增加提示指示的方法的示例动作和步骤。参考图8,用于接收(810)要被输出的字符的步骤可以包括检索(812)将被输出的字符的动作。例如,根据以图8描述的本发明的实施例,被包含在某些电子数据中的字符可以被一个接一个地检索和处理。如上面指出的,所述字符可以是来自东亚语言的字符。
[0055] 为字符识别(820)一个或多个语义字符分类的步骤可以包括确定(822)所述字符属于一个或多个语义字符分类的动作。识别与所述一个或多个语义字符分类中的每一个相关联的一个或多个提示指示的步骤可以包括访问(832)所述的一个或多个提示指示的动作。如上所述,所述的提示指示保留了所述字符的语义含义,同时基于参考字符大小和输出分辨率为至少一个字符特征的至少一个字符笔划改变了笔划表示或笔划位置或这两者。
[0056] 确定(840)用于所述字符的实际字符大小和输出分辨率是位于用于一个或多个提示指示的参考字符大小和输出分辨率内的步骤可以包括将实际字符大小和输出分辨率与参考字符大小和输出分辨率相比较(842)的动作。例如,取决于每个em的像素数目,字符大小和输出分辨率,提示可能是不需要的。特别地考虑600DPI的打印机和100PPI的显示设备之间的不同。虽然在两个情况下都希望进行网格拟合,当用6倍分辨率打印时,没有必要进行笔划减少,但是笔划减少可以极大地改善所述显示设备上的字符的可读性。
[0057] 通过使用一个或多个提示指示产生(850)被提示的字符的步骤可以包括执行(852)一个或多个提示指示的动作。从被提示的字符轮廓准备(860)按比例缩放的位图的步骤可以包括创建(862)所述位图的动作。输出(870)所述位图的步骤可以包括将所述位图发送到输出设备诸如显示设备或打印机的动作。
[0058] 在某些实施例中,一个字符可以属于多个语义字符分类,而在另一些实施例中,一个字符可以被局限到一个语义字符分类。如果一个字符属于多个语义分类,可能没有、有一个或多个满足所述参考字符大小和输出分辨率要求的提示指示。换言之,不同的提示指示可以具有不同的字符大小和输出分辨率要求以便被执行。
[0059] 参考图9,用于开发(910)一个或多个语义字符分类的步骤可以包括定义(912)一个或多个语义字符分类的动作。开发(920)一个或多个提示指示的步骤可以包括定义(922)用于一个或多个语义字符分类的一个或多个提示指示的动作。此处再次地,一个字符可以属于多个语义字符分类。
[0060] 接收(930)一组要被输出的字符(每个字符包括一个或多个具有一个或多个笔划的特征)的步骤可以包括检索(932)所述字符组的动作。例如,被包含在字体中的字符可以被根据以图9描述的本发明的实施例检索和处理,以便在以前没有或存在有限的提示和语义分析时对字体增加提示和语义分析。再次地,所述的字符组可以是来自东亚语言字体的一个或多个字符(或甚至是所有的字符)。
[0061] 对于所述字符组中的每个字符(判决方框942),用于识别(950)该字符所属的一个或多个语义字符分类的步骤可以包括确定(952)该字符是否属于一个或多个语义字符分类的动作。用于识别(960)与一个或多个语义字符分类相关联的一个或多个提示指示的步骤可以包括如果所述的字符属于所述的语义字符分类,访问(962)与语义字符分类相关联的一个或多个提示指示的动作。
[0062] 如上所述,所述的一个或多个提示指示保留了该字符的语义含义,同时基于参考大小和输出分辨率为该字符的至少一个特征的至少一个笔划或是改变笔划表示,笔划位置或是这两者。将一个或多个提示指示与所述字符相关联(970)的步骤包括对所述字符增加(972)一个或多个提示指示。所述的一个或多个提示指示可以基于Unicode或其它编码系统,所述字符的值与所述字符相关联。
[0063] 本发明的范围内的实施例还包括用于承载或具有被存储在其上的计算机可执行指令或数据结构的计算机可读介质。这种计算机可读介质可以是可以被通用或专用计算机访问的任何可用的介质。例如,但不是限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储,磁盘存储或其它磁存储设备,或任何其它可被用于以计算机可执行指令或数据结构的形式承载或存储所希望的程序代码手段,并且可以被通用或专用计算机访问的其它介质。当信息被在网络或其它通信连接(或是硬连线,无线或硬连线和无线的组合)上传输或提供给计算机时,所述计算机适当地将所述连接看成是计算机可读介质。因此,任意这种连接被适当地称为计算机可读介质。上面的组合也应当被包括在计算机可读介质的范围内。计算机可执行指令包括,例如,使得通用计算机,专用计算机或专用处理设备执行某些功能或功能组的指令和数据。
[0064] 图10和下面的讨论旨在提供本发明可以被实现在其内的适用的计算环境的简要的一般的描述。虽然没有要求,本发明可以被在计算机可执行指令的一般环境中描述,诸如在网络环境中被计算机执行的程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程,程序,对象,组件,数据结构等。计算机可执行指令,有关的数据结构,和程序模块表示用于执行此处公开的方法的步骤的程序代码手段的例子。这种可执行指令或有关的数据结构的特定顺序表示了用于实现这种步骤中描述的功能的相应动作的例子。
[0065] 本领域的技术人员将会理解,本发明可以被在具有许多类型的计算机系统配置的网络计算环境中实现,所述的计算机系统配置包括个人计算机,手持设备,移动电话,多处理器系统,基于微处理器的或可编程消费者电子设备,网络PC,微型计算机,大型计算机等。本发明还可以被在分布式计算环境中实现,其中任务通过通信网络被连接(或是通过硬连线链路,无线链路或通过硬连线或无线链路的组合)的本地和远程处理设备被执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备两者上。
[0066] 参考图10,用于实现本发明的示例系统包括传统计算机1020形式的通用计算设备,包括处理单元1021,系统存储器1022和系统总线1023,系统总线1023将包括系统存储器1022在内的各种系统组件耦合到处理单元1021。然而应当注意,随着移动电话变得更为复杂,它们开始结合传统计算机1020所示的许多组件。因此,以相对较少的调整,大是关于输入/输出设备,对传统计算机1020的描述等同地适用于移动电话。系统总线1023可以是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器,外围总线和使用多种总线体系结构中的任意一种的局部总线。系统存储器包括只读存储器(ROM)1024和随机访问存储器(RAM)1025。包含(诸如在启动过程中)帮助在计算机1020内的元件之间传递信息的基本例程的基本输入/输出系统(BIOS)1026可以被存储在ROM 1024中。
[0067] 计算机20还可以包括用于从磁硬盘1039读和向磁硬盘1039写的磁硬盘驱动器1027,用于从可移动磁盘1029读或向可移动磁盘1029写的磁盘驱动器1028,和用于从可移动光盘1031诸如CD-ROM或其它光学介质读或向其写的光盘驱动器1030。磁硬盘驱动器1027,磁盘驱动器1028和光盘驱动器1030被分别通过硬盘驱动器接口1032,磁盘驱动器接口1033和光学驱动器接口1034连接到系统总线1023。所述的驱动器和它们相关联的计算机可读介质提供了计算机可执行指令,数据结构,程序模块和用于计算机1020的其它数据的非易失存储。虽然此处描述的示例环境使用磁硬盘1039,可移动磁盘1029和可移动光盘1031,也可以使用用于存储数据的其它类型的计算机可读介质,包括磁带,快闪存储器卡,数字通用盘,Bernoulli盒带,RAM,ROM等。
[0068] 包含一个或多个程序模块的程序代码可以被存储在硬盘1039,磁盘1029,光盘1031,ROM 1024或RAM 1025上,所述的程序代码包括操作系统1035,一个或多个应用程序
1036,其它程序模块1037和程序数据1038。用户可以通过键盘40,指点设备1042或其它输入设备(未示出)诸如麦克风,游戏杆,游戏垫卫星天线,扫描仪等向计算机1020内输入命令和信息。这些和其它输入设备通常可以通过耦合到系统总线1023的串行端口接口1046被连接到处理单元1021。可替换地,所述的输入设备可以通过其它接口,诸如并行端口,游戏端口或通用串行总线(USB)被连接。监视器1047和其它显示设备也被通过接口诸如视频适配器1048连接到系统总线1023。除了监视器之外,个人计算机通常包括其它外围输出设备(未示出),诸如扬声器和打印机。
[0069] 计算机1020可以使用到一个或多个远程计算机(诸如远程计算机1049a和1049b)的逻辑连接在联网环境中运行。虽然图10中仅示出了存储器存储设备1050a和
1050b以及它们相关联的应用程序1036a和1036b,每个远程计算机1049a和1049b可以是另一个个人计算机,服务器,路由器,网络PC,对等设备或其它公共网络节点,并且典型地包括上面关于计算机1020描述的元件的许多或全部。图10中示出的逻辑连接包括此处以示例并且不是限制的方式给出的局域网(LAN)1051和广域网(WAN)1052。这种联网环境在办公室范围内或企业范围内的计算机网络,内联网,因特网中是常见的。
[0070] 当被用于LAN联网环境中时,计算机1020被通过网络接口或适配器1053连接到逻辑网络1051。当被用于WAN联网环境中时,计算机1020可以包括调制解调器1054,无线链路或用于在广域网1052(诸如因特网)上建立通信的其它装置。调制解调器1054,可以是内置的或外置的,被通过串行端口接口1046连接到系统总线1023。在联网的环境中,相对于计算机1020或其各部分给出的程序模块可以被存储在远程存储器存储设备中。应当理解,示出的网络连接是示例性的,并且可以使用在广域网1052上建立通信的其它装置。
[0071] 本发明可以被以其它特定的形式表述,而不脱离其精神或基本特征。所描述的实施例在所有方面被认为仅是示例的而不是限制性的。因此本发明的范围由所附的权利要求而不是由前面的说明指出。所有在所述权利要求的等同物的含义和范围内的改变被包含在它们的范围内。