一种提升小曲线轮廓字体显示品质的机理.docx_第1页
一种提升小曲线轮廓字体显示品质的机理.docx_第2页
一种提升小曲线轮廓字体显示品质的机理.docx_第3页
一种提升小曲线轮廓字体显示品质的机理.docx_第4页
一种提升小曲线轮廓字体显示品质的机理.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种提升小曲线轮廓字体显示品质的机理摘 要:本文提出了一种用于手持显示器设备中,提升显示小曲线轮廓字体的还原质量的算法。本算法由三个步骤组成,首先根据字体曲线的曲率动态离散曲线,然后利用小字体在低像素的特点,根据斜率和分辨率的大小进行去冗余操作,最后对字体边缘进行微调。关键词: 印刷领域;曲线轮廓字体;字形还原算法;bezier曲线;控制点;低分辨率。 0引言汉字字形的描述经历了从笔画式汉字、点阵式汉字到曲线轮廓汉字的发展过程,目前已进入研究和应用高精度曲线轮廓汉字的阶段。而在新兴的手持设备上,如手机、pda、手持电子书等,由于其显示的分辨率低、显示速度慢、存储容量小等特点,主要使用的还是点阵字,远落后于pc机和印刷领域。然而,用户对手持设备显示效果的要求越来越高,不仅要求字形可以随意放大和缩小,并且要求可以显示不同风格的字体,面对这些需求,点阵字显然无法完全满足这些需求。如果使用点阵字,每种大小字形都要保存,致使对手持设备的存储容量要求大大提高。我们知道当今世界上的语言种类数量繁多,其中最为复杂的就是汉字,国家标准的gb2312中有6367个汉字,gbk中有20902个汉字,在unicode cjk ext. b中更有多达42711个汉字,字体文件非常大,比如收录gbk标准的truetype字体文件一般要89m,而收录unicode cjk ext. b的truetype字库一般要20m以上。另外,要解析这么大的一个字体文件,系统的运行速度也受到较大的影响。曲线轮廓汉字采用曲线和直线段描述字形的轮廓,还原时,先将字形轮廓按要求作缩放变换,再对变换后的轮廓作扫描变换,形成汉字的点阵图像,这一过程从原理上实现了字形的无级缩放。但是由于计算机图像的数字化特点,还原出的曲线轮廓汉字图像最终都会以离散的整数象素来显示。在变换形成离散的点阵表示时,必须经过随机性的舍取,从而导致还原出的字形质量有不同程度的破坏。例如会使还原出的汉字出现笔画宽度不一致,笔锋失去规则,甚至笔画断开、丢失等严重损坏字形质量的失真现象。为了解决这一问题,字体制造商在字体文件中加入了hint指令用来在字体还原过程中对字形进行网格对齐的调整。另外,由于truetype的hinting有专利,freetype21提供了autohint技术,这种技术用来对字形进行自动的网格对齐,但是反而在中文字体显示上容易造成反效果,比如会使字体的某些特征丢失,字体边缘不齐等等。本文提出的优化算法首先根据曲线的曲率动态离散曲线,然后设计了去冗余的算法,根据斜率和显示设备的分辨率去除冗余点,解决了上述的失真问题,并进一步对字形边缘进行微调,使字形笔画更加光滑美观。通过实验结果表明,在低分辨率下,字体还原显示效果明显提升,并且由于控制点的大量减少,存储需求大大降低,显示速度显著提高,较好于其它任何优化算法。1提升低分辨率下的小曲线轮廓字体显示品质的算法思想:一般的曲线字体都是由点和线组成的,而点,又分为控制点和线上点,线分为直线和曲线,一般是二阶或三阶的bezier曲线。由于在计算机中显示曲线的运算量比较大,速度比较慢,所以大多数情况下我们都采用将曲线离散成不同的直线来逼近曲线。但是由于一个文字尤其是汉字比较复杂,本身就有80-300个控制点,如华文仿宋体的“新”字就有140个控制点:图1 “新”的控制点如果将曲线离散之后可能会产生上千个控制点,而在分辨率较低的情况下就会产生冗余,比如会有两个或多个控制点对应显示设备上的同一个像素点,并且由于控制点比较多,会导致边缘不齐的现象,使字体显得比较难看。本算法在对曲线动态离散的基础上,主要针对离散的过程避免和去除冗余的控制点来提升字体的现实品质。算法主要分为三个步骤,首先通过使用cas-teljau算法对曲线进行动态离散,然后对产生的控制点进行去冗余,最后对字的笔画进行微调。1.1 去冗余曲线离散之后得到的是一小段一小段的直线,去冗余的步骤是要精简控制点数量,使控制点数量尽量少,且误差控制在合理的范围内。我们的算法是当两条相邻的直线如果斜率相差小于误差精度,我们就认为这两条直线趋近一条直线,则将这两天直线合并为一条直线。设字形轮廓的一个连通区域为数组,为离散之后的控制点的总数,数组元素为离散之后的控制点坐标;为去冗余后的控制点的集合,其中 。去冗余的算法描述如下:(1) 将初始点加入到中(2) 计算到的欧氏距离,为当前点的序号;(3) 判断是否小于精度值,如果小于则跳到(5);(4) 将加入到数组中;(5) 选取下一个,重复(2)(3)(4)(5)直至n = m时结束。误差精度的选取,根据曲率设定几个固定的值。即当在曲率较大的时候即弯曲较大的时候,需要最大限度地保存字体的特征,所以可将的值设定较小,当曲率较小时,字体特征不是很明显,所以我们可以将设定较大,这样可以保证字形的特征不丢失,使字形失真的程度最小。1.2曲线的离散1.2.1离散算法由于bezier曲线的离散性,可以得到给定的n阶bezier曲线:根据著名的cas-teljau算法310,可以方便的将其离散成多段bezier曲线:其中即为,是在曲线上具有参数t的点。如图1: 图21.2.2 离散终结条件离散的终结条件是决定逼近程度的重要条件,本算法中采取计算曲线点的高度来控制结束条件,设表示n次有理bezier曲线在参数为t处的高度,即表示到的直线段,表示欧氏距离。当最大的小于给定的精度时离散终止。在文献2中对终止条件做了进一步的改进,当曲线为二阶bezier曲线时,取,其中, ,文献2中也给出了三阶和四阶的终止条件,而曲线字体只用到了二阶和三阶的bezier曲线。文献2中的离散精度是固定的,在高精度下采用离散到个像素下为用直线代替曲线,在低精度下,当离散到1个像素内的时候用直线代替曲线然后用bresenham算法绘制直线段。这种算法的缺点是只能使用固定的精度,从而使分辨率低的时候可能由于精度不够而是字体变得很难看。由文献6中我们可以看到如果选取个像素,会出现一些特殊情况影响最终的还原过程,而选取个像素这些特殊的情况基本上就不会出现了。所以我们采取动态选取的方法,即对于离散的精度的选取,根据曲线的曲率不同而不同,即当曲线的曲率比较大时我们选取精度为个像素的大小,使其离散的更为精细,尽量保持字体的特征;当曲率比较小时,我们选用1个像素的大小,这样可以保证不会产生很多的控制点。1.3 边缘微调汉字有横平竖直的特点,但是由于计算机数字化的特点,使得还原出的汉字边缘可能会出现不同程度的不光滑的现象,如图2为30*30像素下的黑体“儿”字,边缘明显不够光滑。图3 黑体的“儿”针对上述问题,算法的第三步对边缘进行微调,以保证在低分辨率,并保证字体特征不变的情况下,对边缘进行微调。设字形的控制点集合为,为的x坐标,为的y坐标,边缘微调算法如下:对于点,计算,如果小于字体大小的跳到(2);如果不小于字体大小的跳到(5);计算,判断是否小于精度或大于,如果小于则跳到(3),如果大于则跳到(4);更改,跳到(5);更改,跳到(5);继续计算下一个点,直至结束。本算法中第一步确认d小于字体大小的是为了保证只调整较明显的笔画,而对于一些微小的地方不作修改,避免产生误差。实验结果表明,经过上述处理使字体笔画变得比较光滑。2算法程序运行实例分析根据以上的算法思想,我们编写了以离散去冗余的方法绘制曲线汉字的程序,并且对具体的数据与效果进行了测试,图3为黑体60和30像素下,处理前与处理后的效果:60像素30像素处理前处理后处理前处理后 图4 处理前后字体显示情况对比字体字像素控制点离散后的控制点去冗余后的控制点冗余百分比黑体儿6033744736.5%3033523630.8%新6011462828654.5%3011433216251.2%华文仿宋儿604540017456.5%30452349758.5%灌6020657228350.5%3020636818650.5%表1 各种情况的控制点数目表1为经过去冗余前后的控制点数目的分析,我们可以看到,通过上述算法得到的字形与单独离散后产生的字形效果基本上没有差别,而所需要的控制点则比原来平均少了50%左右,并且个别字体的显示效果由于控制点的减少显得更好一点,比如黑体的“儿”字,左半边的边缘明显光滑了许多。在实验中,我们发现在60像素的分辨率下,如果使用定精度离散比如个像素,“灌”字产生了多达3000多个控制点,而通过我们的去冗余方法后剩下380多个控制点,可见我们的去冗余算法效果明显。由于控制点的大量减少,存储器容量需求降低,显示速度提高。3结语本文重点研究了在低分辨率下如何快速的还原显示曲线字的方法。本文的算法对于在500以下的设备效果比较明显,对于分辨率较高的情况下与文献1和文献6的效果基本相同。综合各种因素考虑和实验分析,该算法简单且容易实现,计算速度较快,对原图直方图灰度范围比较大、但灰度分布失衡的图像进行处理会有较好的效果。另外,在仿真中发现对于某些图像,本算法相对直方图均衡算法在噪声方面有所增强。但由于汉字比较复杂,对于分辨率特别小的显示设备,如在小于30的分辨率的设备下显示,由于笔画较多,会使得字体变得一团黑,我们可以考虑对笔画进一步精简,或者对笔画进行细化,有待以后改进。参考文献:1 david turner. freetype projectol. 2005-03-142 章仁江,王国瑾. 有理bzier曲线离散终判准则的改进p. journal of software. 2003,vol.l.14, no.10:501504.3 timothe groleau. proof of casteljau methodz. 20024 有理曲线的多项式逼近j.陈效群,陈发来,陈长松.高校应用数学学报. 1998,vol.13 ser.a.5 黄宜华,袁春凤. 曲线轮廓汉字字形缩放与还原中的几个问题的研究j. journal of chinese information processing. vol.9 no.26 周天祥,杨勛年,汪国昭. 快速绘制bzier曲线j. journal of computer-aided design & computer graphics. june, 2002 vol.14, no.67 刘勇奎,石教英. 曲线的整数型生成算法j. chinese j. computers. 1998. vol. 21 no. 3.8 ariel shamir. constraint-based a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论