CN1698065A - 将二维距离场转换到边界描述符集合的方法 - Google Patents
将二维距离场转换到边界描述符集合的方法 Download PDFInfo
- Publication number
- CN1698065A CN1698065A CNA2004800002711A CN200480000271A CN1698065A CN 1698065 A CN1698065 A CN 1698065A CN A2004800002711 A CNA2004800002711 A CN A2004800002711A CN 200480000271 A CN200480000271 A CN 200480000271A CN 1698065 A CN1698065 A CN 1698065A
- Authority
- CN
- China
- Prior art keywords
- boundary
- distance field
- point
- font
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
将二维距离场转换到边界描述符集合的方法。选择二维距离场的等轮廓线。由等轮廓线和二维距离场生成点的有序列表。初始化边界描述符集合以与点的有序列表相匹配。通过利用二维距离场确定每个边界描述符的误差,并基于每个边界描述符的误差对该边界描述符集合进行改进,使该边界描述符集合得到更新。
Description
技术领域
本发明一般性地涉及计算机图形领域,尤其涉及到将二维距离场(distance field)转换到边界描述符(boundary descriptor)。
背景技术
在计算机图形领域中,二维对象的绘制(rendering)至关重要。例如字符形状、公司标识、含在文件中的插图元素的二维对象都被绘制为静态的图像或包括动画的帧序列。有许多二维对象的表示方法,常常存在的情况是对于例如绘制和编辑的特定操作,一种表示方法比另一种表示方法要好。这种情况下,就要进行一种形式到另一种形式的转换。
尽管在这里我们将注意力集中在数字类型的、可能是最常见的和最重要的二维对象上,但是下面的讨论则适于二维对象的所有类型。
我们从数字类型的某些基本背景开始讨论。像Times New Roman或Arial这样的常见拉丁字体族包含一组字体,例如正规体、斜体、粗体和粗斜体。每种字体包含一组称为字形(glyph)的单个字符形状。通过其各种设计特征,例如基本的几何特征、笔划粗度、衬线、细节(joinery)、轮廓的布局和数量、笔划的薄粗比和大小这样的设计特征来区分每种字形。
有一些表示字体的方法,包含例如Type 1[Adobe Systems,Inc.1990]和True Type[Apple Computer,Inc.1990]的位图、轮廓线,和例如Knuth的Metafont、以字体轮廓线为主的过程字体。马萨诸塞州的剑桥市的Bitstream公司,加州Mountain View的Adobe Systems公司,加州Cupertino的Apple Computer公司,华盛顿州Bellevue的Microsoft公司,德国汉堡的URW公司和马萨诸塞州的Wilmington的Agfa Compugraphic公司都已经采用和普及了基于轮廓线的表示方法。
剑桥大学出版社1993年出版的Herch的“Visual and TEchnicalAspects of Type”和Bedford,MA的Digital Press于1979年出版的Knuth的“TEX and METAFONT:New Directions in Typesetting”中都包含字体科学和历史的综合回顾。
有两类字号(type size)具有特别的重要性:正文(body)字号和显示(display)字号。以相对较小的磅值,例如14pt.或更小的磅值绘制正文型字体,并且该字体被用于文件的正文部分,象在本段落中那样。正文型需要高质量绘制以便易于辨认和阅读的舒适。在单个文件中正文型的大小、字样(typeface)和基线方向都很少改变。
绘制显示型字体的磅值相对较大,例如36pt.或更大,并且用于题目、标题和在设计和宣传中强调语气或引起注意。与正文型相反,显示型的重点在于空间和时间上不混淆的感觉,而不是易于辨认,其中对比度比抗混淆更重要。至关重要的是用于表示和绘制字体的框架能够很好地应付这两类存在冲突要求的字体。
可以将字体以二值、灰度或彩色的方式绘制到例如打印机或显示器的输出设备上。某些绘制引擎对很小的字号使用二值绘制以取得较好的对比度。然而,良好扩缩(well-hinted)的灰度字体能够更容易辨认出来。
扩缩提示(hint)是与每个字形一起存储的一组规则或过程,用于指定在绘制期间应当如何进行修正字形的轮廓以保留例如对称、笔划轻重(stroke weight)和字体中所有字形的统一外观的特性。
虽然已经尝试了自动扩缩(automated hinting)和半自动扩缩(semi-automated hinting)系统,然而扩缩处理在针对低分辨率显示设备的新字体设计和现有字体调整中是一个主要的瓶颈。此外,解释扩缩规则的复杂性排除了使用硬件绘制字体硬件的可能性。缺乏硬件的支持迫使在软件光栅化期间进行折衷考虑,例如每像素使用较少的样本,特别是当进行字体实时动画时。
灰度字体的绘制通常涉及某种形式的抗混淆(antialiasing)。抗混淆是对二值字体中出现的参差不齐的边缘或阶梯形的效果进行平滑的过程。尽管许多字体绘制引擎是专有的,然而其大部分在栅格匹配和扩缩之后,使用每像素4或16个样本的超级取样,以及之后的2×2或4×4的箱式滤波器(box filter)的下降取样。
例如箱式滤波这样的初步滤波根据绘制速度的需要进行调整。然而,对于动画字体所要求的实时绘制,该方法常常太慢,所绘制出的字形受空间和时间上的混淆的影响。
排印技术中两种重要的趋势显示了现有技术中字体表示方法的某些固有局限性,因此需要改变。
第一种趋势是由于办公室中计算机的主导地位而增加对在屏幕上阅读文本的重视,在家中进行因特网浏览的普及率的上升,以及PDA和其它手持电子设备拥有者的数量增多。这些显示器通常具有每英寸72-100点的分辨率,这大大低于打印设备的分辨率。
为了保证阅读的舒适性和易于辨认,当对字体进行光栅化时,这种低分辨率需要进行特殊的处理,如Microsoft和Bitstream这样的公司已经对它们各自的ClearType和Font Fusion的技术投资所做过的那样。
第二种趋势是动画字体或活动字体的使用。动画字体用于传递感情、增加兴趣和在视觉上吸引阅读者的注意力。动画字体的重要性在其广泛用于电视和因特网广告宣传方面得到证明。
不幸的是,传统的基于轮廓线的字体在这两个领域都有其局限性。低分辨率显示器上的字体绘制要求进行仔细的处理以平衡易于辨认的良好对比度和为了阅读舒适性的更低空间和/或时间混淆的需求。
如上所述,为了达到最佳的外观,基于轮廓线的字体通常进行扩缩以向绘制引擎提供指令。字体的扩缩工作量很大,且代价昂贵。例如,开发一种能具有1万多个字形的日本或中国字体的良好扩缩字样可能会花费数年的时间。因为扩缩的焦点在于改善字体的绘制质量,而对于沿任意路径放置的和动画型字体扩缩则效率很低。
尽管可以在具有有限数量的字体大小和字样的静态文件中使用高质量滤波技术来防止灰度字体的混淆,然而在动画字体中使用滤波技术通常受到实时绘制要求的限制。
发明内容
本发明提供一种将二维距离场转换到边界描述符集合的方法。选择二维距离场的等轮廓线(iso-contour)。由等轮廓线和二维距离场生成点的有序列表(ordered list of points)。将边界描述符集合初始化以匹配(fit)点的有序列表。通过利用二维距离场确定每个边界描述符的误差并基于每个边界描述符的误差对该边界描述符集合进行改进,使该边界描述符集合得到更新。
附图说明
图1A和1B是现有技术中字形的距离场表示的方框图;
图2A和2B是根据本发明优选实施例的距离场表示的方框图;
图3是根据本发明优选实施例的距离场的双二次单元的方框图;
图4是根据本发明的图像级对象抗混淆方法的流程图;
图5是本发明所使用的线性滤波器的图表;
图6A、6B和6C是像素分量附近的样本的框图;
图7是根据本发明的对象级对象抗混淆方法的流程图;
图8是根据本发明的基于距离的自动扩缩方法的方框图;
图9是根据本发明的将笔的笔划转换到距离场的方法的流程图;
图10是根据本发明的将二维对象转换到距离场的方法的流程图;
图11是根据本发明的将距离场转换到边界描述符的方法的流程图;
图12是根据本发明使对象活动起来的方法流程图;而
图13是根据本发明、在包围二维对象的拐角的单元内生成二维距离场的方法的流程图。
具体实施方式
字形的距离场表示
我们的发明将例如字形、公司标识或对象的任何数字化表示的封闭二维形状S表示为二维符号化的距离场D。为了我们的描述,我们使用字形进行描述。
非正式地说,字形的距离场测量的是从场中任何点到该字形边缘的最小距离,其中如果该点在该字形之外,则距离的符号是负的,如果该点位于该字形的内部,则距离的符号是正的。边缘上的点为0距离。
正式地,距离场是映射D:R2→R,所有的p∈R2,使得D(p)=sign(p)·min{‖p-q‖:对于0值等表面上,即S的边缘上的所有点q},sign(p)={-1,如果p在S的外边,+1,如果p在S的内部},且‖·‖是欧几里得范数。
即使当样本任意地靠近轮廓线时,现有技术的基于覆盖的绘制方法(对每个像素使用单离散样本)会完全丢失字形。所绘制出的字形具有参差不齐的边缘和缺失,这都是空间混淆的形式。如果使该字形活动起来,时间混淆引起轮廓线的闪烁和参差不齐的边缘,这在动画期间看上去象是在“爬行”。每像素取额外的样本以产生抗混淆绘制,可以减少这些混淆效应,但是对于可接受的结果可能需要许多样本。
与此相反,根据本发明的连续取样距离值指示该字形的接近程度,即使样本位于该形状的外边。事实上,单样本值可以用于估计该字形有多少位于以每个像素为中心的滤波器覆盖区之内。
而且,因为距离场平滑地变化,即它是C0连续的,取样值随着字形的移动缓慢地变化,减少了时间混叠现象。
距离场还具有其它的优点。因为它们是隐式的表示,因此它们享有隐式函数所带来的益处。特别是,距离场使字体设计的界面更加直观。例如,诸如词干、短划、圆形和衬线的字形个体成分可以分别地进行设计。设计后,可以使用隐式混合方法将这些成分混合在一起,以构成同一字样的不同字形。
距离场在活动印刷(Kinetic Typography)或动画字体领域提供更多的优点,因为距离场为对象间相互作用的模拟提供了重要的信息。
在优选实施例中,我们使用自适应取样的距离场,即ADF,见Frisken,Perry和Jones的美国专利6,396,492,“细节控制的分层距离场”,这里一并作为参考。
ADF是距离场的有效数字表示。ADF使用细节控制的取样来减少表示场所需要的样本的数量。为了有效地进行处理,样本存于单元的空间层次结构,例如四叉树中。此外,ADF提供了由取样值重构距离场的方法。
细节控制或自适应的取样方法根据场中的局部变化抽取距离场的样本:当局部变化很大时,使用较多的样本,而当局部变化很小时,使用较少的样本。自适应取样方法显著减少了两种规则取样的距离场和3色四叉树的存储器要求,其中规则取样是以均匀的速率在场中各处取样,3色四叉树总是在边缘附近以最大的速率进行取样。
图1A-1B将Times Roman的“a“和“D”的3色四叉树所需要的单元数量与同一精度下图2A-2B中的双二次ADF所需要的单元数量进行比较。单元数量直接关系到存储要求。这两个四叉树都具有等价于具有距离值的512×512图像的分辨率。“a”和“D”的3色四叉树分别具有17,393和20,813个单元,而对应的双二次ADF具有457和399个单元。双二次ADF通常比现有技术的2次线性表示方法(见Frisken等人“Adaptively Sampled Distance Fields:a GeneralRepresentation of Shape for Computer Graphics”,Proceedings ACM,SIGGRAPH 2000,第249-254页,2000)需要少5-20倍的单元。
双二次重构方法
Frisken等人对ADF空间层次结构使用四叉树,并且经过2次线性插值,由在每个单元的四角取样的距离重构每个单元内的距离和梯度。他们建议“更高阶的重构方法...可用来进一步提高压缩比,但是数据已表明额外的付出收效甚微”。
然而,根据本发明,对于字符的表示、绘制、编辑和动画,2次线性ADF方法是不够的。特别是,它们需要太多的存储器,处理过于低效,并且在非边缘单元中重构场的质量不足以进行例如动态模拟的操作。
“有限表面(bounded-surface)”方法能够通过要求与一个表面,即边缘相距有限距离内的非边缘单元经过误差预测测试,迫使在非边缘单元中进行进一步细分,见Perry等人的“Kizamu:A System forSculpting Digital Characters”,Proceedings of ACM SIGGRAPH2001,第47-56页,2001。尽管在这个有限区域内减少了距离场的误差,但是我们已经发现,对于2次线性ADF,该方法导致单元数量的增加令人难以接受。
为了着手解决那些限制,我们用双二次重构方法来代替2次线性重构方法。常见字形的双二次ADF往往比2次线性ADF要求少5-20倍的单元。对于诸如动态模拟和动画字体的操作,当我们要求非边缘单元中的距离场非常精确时,所需要的单元数量更会急剧减少。
这种显著的存储器减少使得常见动画所需要的字形能够适合现今CPU的芯片内置高速缓存。因为基本消除了对系统存储器的访问,这种存储器减少在处理时间方面有突出的效果,使得容易补偿高阶重构方法所需要的额外计算量。
图3图解了根据本发明的双二次ADF单元300。双二次ADF中的每个单元含有9个距离值301。根据下面的方程式1-3由这9个距离值重构出点(x,y)302处的距离和梯度。
存在各种可用的双二次重构方法。我们使用双变量插值多项式,它在相同大小的相邻单元的共享边缘上确保C0连续性。对于2次线性方法,使用误差预测将不同大小的相邻单元之间的距离场的连续性维持在指定的容限内。误差预测控制ADF生成期间单元的细分,见Perry等人的上述文献。
点(x,y)302处的距离和梯度确定如下,其中在单元坐标中表示x和y,即(x,y)∈[0,1]×[0,1]:
设xv1=x-0.5,xv2=x-1
设yv1=y-0.5,yv2=y-1
设bx1=2xv1·xv2,bx2=-4x·xv2,bx3=2x·xv1
设by1=2yv1·yv2,by2=-4y·yv2,by3=2y·yv1
dist=by1·(bx1·d1+bx2·d2+bx3·d3)+by2·(bx1·d4+bx2·d5+bx3·d6)+by3·(bx1·d7+bx2·d8+bx3·d9) (1)
gradx=-[by1·(4x·(d1-2d2+d3)-3d1-d3+4d2)+by2·(4x·(d4-2d5+d6)-3d4-d6+4d5)+by3·(4x·(d7-2d8+d9)-3d7-d9+4d8)(2)
grady=-[(4y-3)·(bx1·d1+bx2·d2+bx3·d3)-(8y-4)·(bx1·d4+bx2·d5+bx3·d6)+(4y-1)·(bx1·d7+bx2·d8+bx3·d9)] (3)
使用浮点算法重构距离会需要~35次浮点运算(flops),使用浮点算法重构梯度会需要~70flops。因为我们的重构方法不含分枝而且字形可以整个驻留在芯片内置高速缓存中,我们通过利用特殊的CPU指令和现代CPU的深指令流水线可对这些重构方法进一步地优化。而且,我们可以利用定点算法重构距离和梯度。
传输和存储的压缩
线性四叉树
对于例如碰撞检测的某些处理需要ADF的四叉树的空间层次结构,但是对于下面描述的例如基于单元的表示的其它处理来说,这不是必需的。
为了对ADF字体的传输和存储进行压缩,我们使用线性四叉树结构,这种结构将我们的双二次ADF存储为一列叶子单元。可以按照需要收叶子单元重新生成树结构。
对于每个单元总共15个字节而言,线性ADF四叉树中的每个叶子单元包含均占2个字节的单元位置x和y,占一个字节的单元级别,占2个字节的单元中心的距离值,均占1个字节的相对中心距离值的8个距离偏移。
通过从中心距离值减去其相应的样本距离值,按照单元大小进行定标(scale)以降低量化误差,并舍入到8个比特,确定每个距离偏移。每个单元位置的两个字节和单元级别的一个字节能够表示高达216×216分辨率的ADF。这足以在显示屏幕的分辨率下表示要绘制的字形。
可以通过16比特距离值精确地表示字形。将8个距离值编码为8比特距离偏移的方式与用2个字节存储每一个这样的值的方式相比,大大节省了存储容量。尽管在理论上这可能会在大单元的距离场中导致某种误差,但是我们还没有观察到任何视觉上的退化。
高分辨率字形通常需要500-1000个叶子单元。无损熵编码能够进一步取得35%-50%的压缩。因此,高分辨率ADF的整个字样可以用300K-500K字节来表示。如果只需要正文字体或目标分辨率很粗,例如对于蜂窝电话来说,较低分辨率的ADF可以使用,其需要1/4至1/2数量的单元。
这些大小显然比灰度位图字体小得多,其中对于每个磅值的每个字样,灰度位图字体需要~0.5M字节,并且大小上可与良好扩缩的基于轮廓线的字体相比。TrueType字体的大小的范围为从数十千字节到数十兆字节,这取决于字形的数量和扩缩的量和方法。两种由Monotype公司提供的良好扩缩的字体Arial和Times New Roman分别需要266K字节和316K字节。
自轮廓线进行运行时刻生成
如下面的详细描述,根据我们的发明,利用Perry等人所述的平铺生成器(tiled generator)可由已有的轮廓线或边界描述符,例如Bezier曲线迅速地生成ADF。利用Bezier裁剪法有效地计算到字形的轮廓线或边界的最小距离,见Sederberg等人,“Geometric HermiteApproximation of Surface Patch Intersection Curves”,CAGD,8(2),第97-114页,1991年。
在2GHZ的奔腾IV处理器上每个字体的生成需要0.04至0.08秒。可以在大约4秒之内生成整个字样。因为不需要传统的扩缩,因此生成ADF所需要的边界描述符比它们相应的扩缩对应部分小得多。
因此,我们能够存储这些最小的轮廓线并按需由这些轮廓线动态地生成ADF字形,而不是存储ADF。这些最小轮廓线的减小的尺寸对于具有有限存储器和用有限带宽的网络传输字形的应用是很重要的。
图10示出的是将例如字形的二维对象转换到二维距离场的方法1000。对象1001被表示为边界描述符集合,例如样条(spline),和填充规则,例如奇偶规则或非0缠绕(non-zero winding)规则。
首先对该边界描述符集合进行预处理1010。预处理过程将边界描述符细分,从而减少它们的空间范围。也可以将边界描述符合并以减少该边界描述符集合的基数。当确定无符号距离时,预处理过程允许我们减少针对每个位置需要查询的边界描述符的数量,如下所述。
由经过预处理的该边界描述符集合1011构造1020空间层次结构1021,例如四叉树。初始化1030交点(intersection)1031的高速缓存。交点1031的高速缓存存储边界描述符与距离场的一组线条,例如水平线、垂直线、对角线等等相交的位置,和该交点的方向。这消除了确定无符号距离的符号时的冗余计算。该交点可以用间隔(interval)进行排序。
然后在一组位置上查询1040空间层次结构1021,以确定那些位置上的一组距离。该组距离用于构造二维距离场1041。查询在每个位置上调用距离函数,例如Bezier裁剪以确定无符号距离。交点、位置和填充规则的高速缓存用于确定距离的符号。
通过基于分量(component)的字体进行的压缩
对于可由10000个或更多个字形构成的汉字、日文和朝鲜字体,可以象在字体聚合(Font Fusion)中那样利用基于分量的表示取得显著的压缩。该表示方法将字形分解成公共的笔划和词根,即多个字形共用的复杂形状,在字库中存储这些笔划和词根,然后在字体绘制引擎中将它们重新组合。
因为距离场是隐式表示,因此能够容易地利用混合或CSG运算组合ADF,于是非常适于通过基于分量的方法进行压缩。
用二维距离场表示拐角
利用2次线性或双二次重构方法进行的细节控制的取样允许ADF利用少量的距离值表示二维对象的边界的相对平滑的部分。然而,在拐角附近,距离场的变化很大,并且这种变化不能用这些重构方法进行很好的逼近。为了精确地表示拐角附近的距离场,这样的ADF需要将含有拐角的单元高度细分,从而明显地增加了存储器要求。此外,如Perry等人所述,ADF生成期间所使用的ADF的最大细分水平限制了可以利用2次线性和双二次ADF单元表示拐角的精度。
为了解决这个问题,我们的发明提供了在包围例如字形的二维对象的拐角的单元内生成二维距离场的方法1300。
方法1300由二维对象确定1310有序的边界描述符集合1311,并识别1320该有序边界描述符集合的单元内的拐点1321。该单元接着被划分1330成两个区域,即离拐角最近的第一区域和离对象的边界最近的第二区域。方法1300也规定1340用于重构单元内的距离的重构方法和一组取样距离值1371,并将拐点1321、界定区域的线条、重构方法和该组取样距离值1371存于1380存储器中。
根据单元内一个点所位于的区域,重构方法确定此点处的距离。第一区域中一查询点的距离被确定为从查询点到拐点的距离。
为了确定第二区域中的距离,我们将该有序边界描述符集合1311划分1350为两个子集,一个包括拐点1321之前的边界描述符,一个包括拐点1321之后的边界描述符。然后对边界描述符的每个子集扩展1360,以形成将单元划分成内部和外部的扩展曲线。对每个部分,单元内的距离场可以由该组取样距离值1371重构,该组取样距离值1371可由相应扩展曲线确定1370。双二次重构方法会需要针对这两个部分的每一个存储9个距离值。
注意,两个内部的交点形成对象的拐角。因此,第二区域内的距离可以通过重构到第一内部的距离和到第二内部的距离并且然后选择这两个所确定的距离中最小距离来确定。
可以由经过拐点的两个有向线段规定这两个区域,每条线与两个边界描述符子集中的一个子集的垂直。每条线可以通过拐点和拐点处边界描述符的相应子集的向外法线来规定。当如此定义线段时,我们可以通过确定从查询点到拐点的矢量和向外法线的叉积,来确定查询点位于该线的哪一边。位于两条线的外侧的点在第一区域内,而位于每一条线的内侧的点在第二区域内。
字体绘制
在当今的字体绘制引擎中,主要将字体表示为轮廓线,轮廓线按照需要定标以匹配所希望的输出大小。虽然多数高分辨率打印机使用二值绘制,然而现代显示设备在小磅值时更经常使用灰度绘制方法或灰度和二值绘制方法的结合。
栅格化灰度字形的通常方法涉及定标和扩缩其轮廓线。将定标和扩缩的轮廓线扫描转换成高分辨率图像,通常为所希望的分辨率的4倍或16倍。接着,通过使用滤波方法,例如箱式滤波器对高分辨率图像向下采样以产生最终的灰度图像。
对于正文字体,对单个字形进行一次性栅格化处理,并作为灰度位图存于高速缓存中,以在预处理步骤中重用。对字形子像素的布置的需求可能需要待栅格化处理的每个字形的几种版本。在例如对Adobe Acrobat PDF文件进行翻页的任务期间,对正文字体使用高速缓存使得可以用短延迟,例如1/2秒进行较高质量的绘制。
然而,沿任意路径绘制的字体和动画字体排斥使用高速缓存,因此必须按需生成。实时绘制的要求迫使使用较低分辨率的滤波方法,通常每像素取四个样本,以及箱式滤波。这会产生空间和时间混淆。可以利用驻留在系统存储器内的扩缩设备字体减少这种混淆。然而,保持实时帧速率对如何使用扩缩设备字体产生严重的约束,例如扩缩设备字体不能动态定标或旋转。
Microsoft最近关于ClearType的工作已经导致针对含有可寻址彩色子像素,即分量的重复模式的LCD彩色显示器的特殊处理。Platt在“Optimal Filtering for Patterned Displays”,IEEE Signal ProcessingLetters,7(7),第179-180页,2000中描述了针对每个彩色分量的一组感知优化滤波器。实际上,将优化滤波器实现为一组三个错位(displaced)箱式滤波器,每种颜色用一个。
ClearType使用现有技术的基于覆盖的抗混淆方法,来确定每个像素的每种分量的亮度。与此相反,我们的基于距离场的方法使用距离场确定每个像素的每种分量的亮度,并且这样做所用的样本较少。我们下面描述的ADF抗混淆方法能够替代箱式滤波器,以提供每像素较少样本的优化滤波器的更好模拟。
抗混淆
要理解在所绘制的字体中的外观产物,就要理解混淆的概念。通常,像素由离散的分量,例如彩色打印机或显示器中的红、绿、蓝分量构成。在灰度设备中,像素是单离散分量。因为像素是离散的,绘制到输出设备上本身即是一个取样过程。取样速率取决于设备的分辨率。除非取样速率至少是源信号最高(Nyquist)频率的两倍,否则取样的信号将表现出混淆。
例如字形轮廓线的边缘具有无限频率分量。因此,边缘不能被取样的数据精确地表示出来。边缘取样不足会导致边缘参差不齐,这往往使得在活动图像中沿取样边缘出现“爬行”。如果该源信号也包含空间图案,例如,“m”的重复垂直词干或“i”的单垂直词干(其频率分量对于取样速率而言过高),则取样数据会表现出遗失,波纹图案和时间闪烁现象。
为了避免混淆,必须对输入信号预先进行滤波处理以去掉高于取样速率所允许的频率的频率分量。一般来说,采用两个方法预先进行滤波。
第一个方法被称为解析滤波(analytic filtering)。在取样之前,它将某种形式的空间平均应用于源信号的连续表示。不幸的是,解析滤波经常是不可能做到的,因为没有将源数据提供为连续信号,而这在图像处理的过程中是经常碰到的情形,或者因为在滤波器的覆盖范围内确定信号的解析描述太过复杂。这是计算机图像中几乎所有简单几何形状和基于样条的轮廓线的常见情形。
第二个方法称为离散滤波。在该方法中,源信号通常以比目标速率更高的速率取样,来获得超取样的图像。接着,在将图像向下取样到目标速率之前,使用离散滤波器以降低超取样图像的高频。离散方法在计算机图形中称为正则超取样。
可以使用各种离散滤波器,这取决于处理的预算、硬件考虑和个人关于输出图像对比度和平滑程度的偏爱。通常用于绘制字体的箱式滤波器简单地用超取样值的算术平均来替代超取样值的矩阵列,并且一般被视为信号处理领域中的较差的方法。
在另一个方法中,自适应超取样将用于取样和滤波的可用资源集中在具有较高局部频率分量的图像的区域上。可以由图像的局部可变性确定优化的自适应取样。然而,这种技术的可用性受到估计图像的局部变化(计算代价昂贵的处理)的限制。
由于高频图案的正规取样的不足引起的波纹图样对于人类视觉系统来说特别令人讨厌。在一般的图像处理中,已经使用随机或抖动取样来解决这个问题。对于随机取样,随机地将样本相对其标称位置轻微移位。随机取样往往用高频噪声取代波纹图样混淆,并且已经证明对于减少时间混淆特别有效。
具有基于距离的抗混淆的绘制
由字形边缘引入的无限频率分量是现有技术字体绘制中引起混淆的主要原因。相反,通过根据本发明使用2D距离场表示2D对象并且然后对2D距离场进行取样,我们避免了这样的边缘,因为表示是C0连续的。反之,最大频率取决于字形本身的空间图样,例如,“m”的重复垂直词干或“i”的单垂直词干。
通过用其2D距离场表示字形,我们有效地将解析前置滤波器应用于该字形。我们的如下描述的用于绘制距离场的抗混淆方法得出不同于常规解析前置滤波器的输出。
使用距离场的抗混淆
图4示出的是在图像级别针对对象401(例如字形,被表示410为二维距离场411)进行抗混淆的方法400。每个像素402能够包含一种或多种分量404,通常是为“RGB”类型输出设备的红、绿、蓝分量。该方法能够对每个像素402的每种分量404使用一个或多个样本。方法400提供了自适应的基于距离的超取样、基于距离的自动扩缩和基于距离的栅格匹配。能够在CRT和LCD类显示器上作为图像的一部分绘制所得到的抗混淆像素亮度。该方法对于绘制运动模糊(motionblur)特别有用。
表示对象401的二维距离场411中的一组403样本点407与每个像素402的每种分量404相关420。由二维距离场411和该组样本点403确定430距离(D)405。接着,距离405被映射440到像素402的分量404的抗混淆亮度(I)406。
在该优选实施例中,用如上所述的双二次ADF 411表示410字形401。这使得在字体绘制期间运用基于距离的抗混淆技术十分有效。也可以使用例如二维距离映射、二维距离框架(shell)和过程性距离场的其它表示方法。
对于图像中的每个像素402的每种分量404,使用2002年7月31日提交的美国专利申请10/209,302,“遍历四叉树、十叉树和N维二叉树的方法”(这里完整地参考引用了该专利申请)所描述的四叉树遍历方法对含有分量404的单元(例如叶子单元)进行定位。尽管可以对本发明使用现有技术中已知的其它遍历方法,但是前述方法不需进行比较,因此执行起来效率高。由单元的距离值重构分量404的距离,并将其映射440到抗混淆亮度(I)406。
可以使用不同的映射,包含线性、高斯和S形曲线函数。最优映射函数的选择是主观的。在一个实施例中,我们的映射是两个函数的合成。第一个函数如上所述,第二个函数是对比度增强函数。这两个函数被合成以将距离场(D)405映射440到分量404的抗混淆亮度(I)406。
图5示出的是亮度501(例如[0,1])的线性映射500,其作为距离502的函数。该映射将距离转换成该像素的每种分量的抗混淆图像亮度。距离在对象内部为正,在对象的外面为负。不同截取值503和504影响边缘对比度和笔划粗细(stroke weight)。我们对于显示字体的像素(-0.75,0.75)以及正文字体的像素(-0.5,0.625)的滤波器截取值的外部503和内部504都取得很好的结果。
优化的基于距离的自适应超取样
上述基于距离的抗混淆方法减少了字形边缘引起的混淆。然而,当字形分量之间的词干宽度或空隙对于显示器的取样速率来说太小时,仍会出现混淆产物。在这样的情形下,我们运用下述的基于距离的自适应超取样方法以进一步减少空间和时间混淆。
在优选实施例中,我们使用具有新颖的基于距离的自适应超取样的双二次ADF,以提供显著优于现有技术的基于轮廓线的表示和基于覆盖的自适应超取样方法的优点。因为ADF使用细节控制的取样,对于较大局部变化的距离场区域用较小的叶子单元来表示。因此,ADF四叉树的结构提供了实现优化的基于距离的自适应取样所需的局部变化的映射,从而克服现有技术中确定上述局部变化的自适应超取样抗混淆方法中的困难。
对于图像中的每个像素402的每种分量404,确定含有分量404的单元的位置,并且在该分量的滤波器半径r之内的一组403样本点407与像素分量404相关420。每个分量的样本点407的数量(spc)依赖于单元相对于r的大小(cellSize)。对样本点407处的取样距离进行滤波处理,以确定430单加权平均距离405,然后将它映射440到像素402的分量404的抗混淆亮度406。
可有各种滤波器和取样策略。在优选实施例中,我们使用一般形式的高斯滤波器,以W-12-3(d/r)2对每个距离样本加权,其中d是从样本点到该像素分量的距离,W是用于该分量的权重的和。使用箱式滤波器、圆锥滤波器、负瓣滤波器和其它形式的高斯滤波器可以获得类似的结果。
图6A-C示出的是我们的取样策略。样本407位于分量601的附近的同心圆610中,以有效地计算权重和权重和。我们使用1.3倍于像素间隔的滤波器半径r 602,并且当cellSize>r(图6A)时,用1spc进行取样,当r/2<cellSize≤r(图6B)时,用5spc进行取样,当cellSize≤r/2(图6C)时,用13spc进行取样。
本发明可以使用许多其它的策略使样本点407与像素分量404相关,而不使用同心圆。我们的方法对精确取样策略不特别敏感。
下面将要描述的另一个自适应取样策略将样本点置于滤波器半径r之内包含的所有单元的中心。这种策略同样具有很好的结果。
基于单元的抗混淆
上述的距离场抗混淆方法可以通过利用基于扫描线的栅格化的软件来实现。可选地,被划分成单元的距离场可以逐个单元地,即在对象级进行抗混淆。基于单元的绘制方法消除了用于定位含有样本点的单元的树遍历算法,消除了用于计算单个单元内的距离和梯度的冗余设置,减少了单元数据的重复检索,即存储器读取。
此外,由于绘制所需要的单元可以表示为固定大小的自包含单元的顺序块,即单元内点的距离和梯度由单元的距离值来确定,我们的基于单元的方法可适应硬件实现,从而能够实时地进行绘制。
图7示出的是用于针对对象701(例如在对象级表示710为二维距离场711的字形)进行抗混淆的方法700。方法700提供了自适应的基于距离的超取样,基于距离的自动扩缩和基于距离的栅格匹配。所得到的抗混淆像素亮度可以在CRT和LCD类显示器上作为图像的一部分进行绘制。该方法对于绘制运动模糊特别有用。当二维距离场711的单元在空间层次结构中进行组织时,我们可以使用mipmapping方法来减少所需要的距离样本的数量。
将二维距离场711划分成单元712。在我们使用双二次式、自适应取样的距离场的优选实施例中,每个单元的大小取决于二维距离场的局部变化。每个单元包含重构该单元内的二维距离场的方法(M)713。对含有要绘制的距离场的区域(虚线)722的一组单元721进行识别720。
区域722用于与该区域相关的一组像素731的定位730。指定740该组像素731中的每个像素的一组分量741。然后,由该组单元中的距离为每个像素的每种分量确定抗混淆亮度751。这里的距离是由该组单元重构的。然后将这些距离映射到抗混淆亮度,如上所述。
在一个实施例中,我们可以通过将该组单元内的单个样本点定位在该像素的该分量的附近,并且重构该单个样本点相距该组单元的距离,从而确定出距离。在我们的使用双二次自适应取样距离场的优选实施例中,用小于自适应的基于距离的超取样的滤波器半径的单元的特殊处理增强这种方法。因为较小的单元出现在距离场中高度变化的地方,这些单元附近的像素的距离可以在将距离映射到亮度之前进行预先滤波。
我们初始化元素的合成缓冲区,其中每个元素与该组像素的每个像素的一个分量相对应。可以独立处理该组单元中的每个单元。在优选实施例中,每个元素由加杈距离和累加权重构成,它们两个都初始化为0。当对单元进行处理时,这些加权距离和累加权重在缓冲单元中进行递增,该缓冲单元与位于单元内或单元中心的滤波器半径内的像素分量相对应。
在处理了所有的单元之后,通过每个像素的每个分量的累加权重将加权后的距离正规化,以产生接着被映射到抗混淆分量亮度的距离。在这个优选实施例中,我们使用如上相同的高斯权重和滤波器半径。
所述的我们基于单元的绘制总是处理该组单元中的每个叶子单元,而不管每个单元相对滤波器半径的大小如何。理论上,这提供了最优的自适应的基于距离的超取样。实际上,可以使用ADF四叉树作为mipmap,来减少单元的数量。
ADF四叉树结构使我们可以用其祖先代替小的叶子单元,从而有效根据某个预定单元大小去截取四叉树。只要这个单元的大小小于或等于像素间间隔的1/4,就不会在自适应的基于距离的超取样结果中引起视觉的退化。
处理像素分量
像素包括一个或多个分量。例如,通常的CRT或LCD彩色监视器上的像素包括红、绿、蓝分量。在我们的发明中,当像素包括多个分量时,可以单独处理它们,如上所述,或作为单一分量进行处理。当把多个分量当作单一分量处理时,像素的颜色和alpha值可以由单一分量的抗混淆亮度来确定。
有两个理由将多种分量作为单一分量进行处理。首先,它减少了绘制次数。第二,当不能单独访问多种分量或不知道单独分量的相对位置时,不可能对每个分量单独进行处理。
当例如LCD的显示设备拥有可寻址像素分量时,本领域众所周知的是单独处理多个分量会增加该设备的有效分辨率。我们的发明能够利用这种设备的特性,以提供质量优于现有技术的基于距离的抗混淆。
制作二维对象的动画
图12示出的是根据动画原本1202将对象1201制作为帧序列的动画的方法1200。动画脚本1202针对帧序列中的每一帧,控制对象的状态,例如位置、大小、方向和对象的变形。将该对象表示为二维距离场。针对帧序列1221中的每一帧,根据动画脚本1202更新1210对象1201的姿态1211。利用更新后的姿态1211和基于距离的抗混淆绘制方法1212将对象1201绘制出来。
可以从该对象的不同表示,例如该对象的轮廓线描述或该对象的位图描述中获得表示该对象1201的二维距离场。
通过将包含刚体变换、自由形式变形、软体挤压变形、水平设置方法、粒子模拟和绘制属性改变的各种操作运用到特定对象1201,可以进行该对象的姿态1211的更新1210。
当绘制1220该对象时,我们将表示该对象的二维距离场中的一组样本点与帧序列1221的一帧中的像素的分量相关联。通过由二维距离场和该组样本点确定一个距离,我们可以将该距离映射到该像素的分量的抗混淆亮度。
在优选实施例中,我们将表示该对象1201的二维距离场划分成单元,每个单元包含用于重构单元内的二维距离场的方法。为在此情况下进行绘制1220,我们识别表示该对象1201的二维距离场的一组单元(该对象含有要绘制的二维距离场的区域),并且确定与该区域相关的一组像素的位置。为该组像素中的每个像素指定一组分量。由该组单元确定该像素的每种分量的距离,并且将该距离映射到该像素的分量的抗混淆亮度,以确定该组像素的每个像素的每种分量的抗混淆亮度。
基于距离的自动扩缩
标准字体表示的扩缩是耗费时间的手工处理过程,其中字体设计者和扩缩专家产生一组使单个字形与像素栅格较好地进行匹配的规则。好的扩缩产生的间隔很好、具有好的对比度和均匀的外观的小磅值字型。
这些规则提供了:具有相同对比度分布、尽可能最尖锐对比度的左边和底边的垂直词干;字形的具有充分对比度以将视觉结构传递到眼睛的对角斜线和细而圆的部分;固定在一起并且足以被人类视觉捕获的衬线,见Hersch等人的“Perceptually Tuned Generation ofGrayscale Fonts”,IEEE CG&A,1995年11月,第78-89页。
注意,现有技术的滤波方法产生模糊的字符,并对不同的字符部分赋予不同的对比度分布(profile),因此会扰乱字体设计的重要规则。为了克服这些限制,针对每种字体的每个字形研发了扩缩。现有技术的扩缩方法存在很多问题:研制它们的工作量大、绘制缓慢且复杂,因此排除硬件实现的可能性。
对基于轮廓线的字体,利用扩缩的绘制是一个三步骤过程。第一个步骤,字形的轮廓线被定标和调整到像素栅格。第二个步骤,对轮廓线进行修正,以控制词干、短划和衬线的对比度,并对非常细的部分和弧形增加粗度。第三个步骤,对修正过的轮廓线进行超采样,并接着在滤波时进行向下采样。
尽管将上述没有扩缩的基于距离的抗混淆绘制方法与现有技术中使用扩缩的字体绘制方法进行了善意的比较,但是众所周知的是,对于小磅值来说,感知扩缩能够改善阅读的舒适性。
因此,如图8所示,我们利用距离场为绘制小磅值的字形提供基于距离的自动扩缩。扩缩中的第一个步骤810是将距离场定标和调整到像素栅格。这能够由给出或导出的字体度量(例如上限高度、x-高度和基线的位置)自动地做到。
在运用这种形式的栅格匹配之后,我们使用距离场和它的梯度场提供感知扩缩。
在一个实施例中,距离场的梯度的方向用于检测820对象的左边和底边的像素。通过使这些像素变暗830并且使对边的像素变亮840,我们在左边和底边取得较高的对比度,而不明显改变笔划的粗细。这能够通过减少和增加相应的像素亮度来做到。
在另一个实施例中,梯度场用于为对角词干和细弧形提供更好的对比度。我们注意到,当像素位于字形的细区域或其附近时,在像素每侧的相邻像素具有相反的梯度方向,即它们的点积是负的。通过检测梯度方向的尖锐变化,我们能够使这些细区域上的像素变暗850。
这只是两个有关如何将距离场用于自动地提供感知扩缩的例子。距离场也能够用于提供优化字符间隔和均匀笔划粗细。
生成和编辑字体
有两个设计字体的基本方法。第一种方法是手动的。其中,手工画出字形,进行数字化,然后将其轮廓线与数字化位图匹配。第二种是用计算机来完成。
在后一情形下,可以使用三种类型的工具。可以使用直接可视工具进行曲线操作。过程化设计工具通过执行过程的指令来构建字形的形状。过程定义形状的轮廓线并对其进行填充,或定义用具有许多属性(包含几何特性和方向)的笔尖划出的轨迹。基于分量的设计工具使设计者能够构建例如词干、弧形和其它递归形状的基本分量,然后将这些分量组合以产生字形。
我们使用造型编辑器提供基于笔划的设计。这是3D雕刻(carving)的2D对应部分,如美国专利申请09/810,261,2001年3月16日提交,“数字模型造型的系统和方法”中所述,这里一并作为参考。能够交互地完成笔划,或能够书写以仿真可编程设计工具。
也可以使用基于曲线的设计,其中利用类似于Adobe Illustrator的Bezier曲线处理工具。可以将基于曲线的设计与将轮廓线转换成距离场和将距离场转换到轮廓线的方法组合,以在设计范例之间提供无缝的接口。
基于分量的设计使用CSG和对隐式距离场的混合操作。这使得在编辑期间或绘制期间可以将这些分量单独设计和组合。
我们也提供由模拟和数字字体原版(master)自动生成ADF的方法。
对于基于分量的设计,我们的字体编辑器通过利用四叉树模拟字形中公共的对称性提供有效反射和旋转ADF的能力。附加的特征还包含ADF定标,转换和组合多个ADF的操作,例如CSG和混合操作。
对于基于笔划的设计,我们提供带有几何分布的雕刻工具以模仿笔尖。所模仿的笔尖的方向和大小能够沿笔划改变以模仿书法。
图9示出的是由笔的笔划生成二维距离场931的方法900。在笔的书写期间,我们对笔的状态取样,笔的状态包括书写期间笔的位置。这个笔状态也可以包含方向和几何特性。根据该笔状态样本901,我们沿笔的笔划生成910笔的笔状态的顺序列表911。于是,由笔状态的顺序列表生成920边界描述符集合921。最后,我们根据边界描述符集合921生成930二维距离场931。
在该优选实施例中,边界描述符921是例如三次Bezier曲线的曲线。
在该优选实施例中,以用户指定的精度,我们应用曲线拟合处理以将G2连续曲线的最小集合与笔的轨迹进行匹配。我们也利用工具尺寸和方向产生相对这条路径的偏离点的两个附加有序列表,并将曲线与这些偏离点匹配以生成笔划轮廓线。将该轮廓曲线置于空间层次结构中,以进行有效的处理。我们使用平铺生成器由这个层次结构生成二维ADF,见2001年3月16日提交的美国专利申请09/810,983,这里一并作为参考。
利用Bezier裁剪法有效地计算出到轮廓线的最小距离。以对于用户来说不会感觉到延迟的方式将笔划转换成ADF。对于曲线处理,我们提供了Bezier曲线编辑器。
如图11所示,我们也提供了将距离场转换到边界描述符,例如Bezier曲线的能力,以在所有三个设计范例之间提供无缝的接口。
在该优选实施例中,我们使用双二次ADF,其中这种转换利用用于快速相邻搜索的ADF层次结构遍历叶子单元,产生沿ADF的0值等轮廓线的点的有序列表,并且然后拟合参照图11所述的曲线以生成边界描述符。
与由点的列表计算边界描述符误差的现有技术对比,我们直接由距离场计算边界描述符误差。我们特别注意尖锐的拐角。我们的方法足够快速,使得用户能够在范例之间进行无缝切换而不会注意到有任何的延迟。
图11示出的是将二维距离场1101转换到边界描述符集合1131的方法1100。首先,我们选择1100二维距离场1101的等轮廓线1111,例如具有0值或某偏移的距离。
其次,我们由等轮廓线1111和二维距离场1101生成点的有序列表1121。在我们的使用双二次自适应取样距离场的优选实施例中,这个步骤利用相邻搜索技术顺序访问自适应取样距离场1101的相邻单元。搜索技术利用自适应取样距离场1101的空间层次结构有效地定位沿等轮廓线1111的下一个相邻单元。
在另一个实施例中,通过选择ADF 1101中的边界描述符,用一组有序点种出(seeding)每个边界单元,并利用ADF 1101的距离场和梯度场将每个点移到ADF 1101的等轮廓线1111上,我们生成1120点1121的有序列表。
接着,我们对边界描述符集合1131初始化1130以使其与点1121的有序列表匹配。通过联结点的有序列表1121的相邻点将边界描述符1131初始化1130,以形成构成初始边界描述符1131的一组线段。
在另一个实施例中,通过对拐点的定位、将点的有序列表细分成拐点所限定的段,并确定段边界描述符以与每个段匹配,我们将边界描述符集合1131初始化1130。段边界描述符的并集形成初始的边界描述符1131。
能够通过测量由距离场所确定的曲率来定位拐点。在距离场是双二次ADF的优选实施例中,高曲率的区域用ADF中的小单元来表示,因此拐点能够利用ADF单元的大小来进行定位。
一旦将这些边界描述符1131初始化1130,就能更新1140这些边界描述符1131。更新1140通过重构距离场并且测量边界描述符相对等轮廓线的平均或最大偏差,确定出每个边界描述符的误差。
更新1140边界描述符1131,直至每个边界描述符的误差可接受,或已经过预定量的时间,或该边界描述符集合的基数最小。
为了结合以非数字形式(即模拟原版(analog master))或以作为位图的数字形式(即数字原版(digital master))存储的字体的传统,我们的编辑系统提供了由高分辨率的二值位图生成ADF的方法。
首先将模拟原版以至少4倍于目标ADF分辨率的分辨率进行扫描,以产生二值数字原版,例如4096×4096数字原版对于今天的显示器分辨率和显示大小是足够的。然后将精确的欧几里得距离变换运用到该位图,以产生表示该字形的规则取样的距离场。
接着,我们利用平铺发生器由这种规则取样的距离场生成ADF。从位图到ADF的转换在2GHz奔腾IV处理器上每个字形需要~10秒的处理时间。
为了从现有技术的字形描述符转换到用边界描述符集合描述字形的距离场,我们运用参照图10所述的方法。
活动印刷的计算基础
也可以将我们的ADF字形框架的距离场和空间层次结构属性用于2D对象,例如字形、公司标识或任何2D形状的计算机模拟。例如,为计算贯穿体(inteepenetrating body)之间的力和模拟软体变形,可以在碰撞检测和回避中使用这两个属性。
使用有符号距离场的水平设置方法可以用于模拟例如熔化和流体动力学的许多效应。ADF是能够进行有效查询以计算距离值和梯度的紧凑隐式表示,其中距离值和梯度是上述方法所需的两个重要计算。
相反,在实时交互的软件中由移动或变形的轮廓线确定距离值和梯度是不实际的,见Hoff等人的“Fast and Simple 2D GeometricProximity Queries Using Graphics Hardware”,Proc.Interactive 3DGraphics′01,2001。Hoff等人使用图形硬件在运行时刻生成规则取样的2D距离场,以使用线段逼近的曲线变形。
距离场的隐式特性允许进行复杂拓扑变化,例如难以用基于轮廓线的字体模拟的表面偏移。此外,能够使用距离场提供动画对象的非图片写实(non-photorealistic)的绘制以增加艺术效果。
发明的作用
本发明提供了表示、绘制、编辑和制作字符字形、公司标识或任何二维对象的动画的新架构。在优选实施例中,本发明使用二维双二次ADF表示二维对象。双二次重构方法在存储器利用和计算负载之间提供最优平衡。
本发明包含在包围二维对象的拐角的单元内生成二维距离场的方法。这个方法显著减少了存储器要求,并在精度方面明显地优于现有技术。
我们的基于距离的抗混淆绘制方法使用每像素单个无扩缩距离样本提供比现有技术使用的超取样方法更好的抗混淆。
我们的基于距离的方法使用ADF的空间层次结构提供有效的优化自适应的基于距离的超取样,从而导致优良的空间和时间抗混淆。对于基于距离的自动扩缩、基于距离的栅格匹配、将三个公共数字字体设计范例统一、以及为活动印刷生成各种特殊效果,我们的方法提供了计算基础。
尽管已经通过优选实施例对本发明进行了描述,然而应当理解的是,可以在不违背本发明的宗旨和范围的情况下对本发明进行各种其它的形式和细节的修改。因此附加权利要求的目的是覆盖本发明的宗旨和范围之内的所有这样的变化和修改。
Claims (25)
1.一种用于将二维距离场转换到边界描述符集合的方法,包括:
选择二维距离场的等轮廓线;
由等轮廓线和二维距离场生成点的有序列表;
初始化边界描述符集合以匹配点的有序列表;以及
更新该边界描述符集合,所述更新进一步包括:
利用二维距离场确定该边界描述符集合中每个边界描述符的误差;以及
基于每个边界描述符的误差改进该边界描述符集合,以更新该边界描述符集合。
2.如权利要求1所述的方法,其中该边界描述符集合是一组样条。
3.如权利要求1所述的方法,其中二维距离场是自适应取样的距离场。
4.如权利要求3所述的方法,其中生成点的有序列表的步骤利用相邻搜索技术顺序访问自适应取样的距离场的邻近单元,该相邻搜索技术利用自适应取样的距离场的空间层次结构来有效定位等轮廓线上的下一个相邻点。
5.如权利要求3所述的方法,其中生成点的有序列表的步骤进一步包括:
在自适应取样的距离场中选择一单元集;
用一组有序点种出单元集的每个单元,这些有序点集的并集形成点的有序列表;以及
利用自适应取样距离场的距离场和梯度场,将点的有序列表中的每个点移到自适应取样的距离场中的等轮廓线上。
6.如权利要求5所述的方法,其中单元集中的每个单元是含有等轮廓线的自适应取样距离场的叶子单元。
7.如权利要求5所述的方法,其中将该边界描述符集合初始化的步骤包括:
联结点的有序列表中的相邻点以形成一组线段;以及
利用该组线段将该边界描述符集合初始化。
8.如权利要求1所述的方法,其中将该边界描述符集合初始化的步骤进一步包括:
对拐点进行定位;
将点的有序列表细分成由拐点限定的线段;以及
确定段边界描述符以与每个线段匹配,线段边界描述符的并集将该边界描述符集合初始化。
9.如权利要求8所述的方法,其中拐点的定位使用根据二维距离场所确定的曲率。
10.如权利要求8所述的方法,其中二维距离场是自适应取样的距离场,且拐点的定位利用自适应取样距离场中单元的大小。
11.如权利要求8所述的方法,其中拐点的定位确定根据点的有序列表中的相邻点导出的方向发生尖锐变化的位置。
12.如权利要求1所述的方法,其中确定边界描述符的误差的步骤包括在沿边界描述符的一组位置上重构二维距离场。
13.如权利要求1所述的方法,其中边界描述符的误差由边界描述符相对等轮廓线的偏差确定。
14.如权利要求13所述的方法,其中通过在沿边界描述符的一组位置上重构二维距离场,确定偏差。
15.如权利要求13所述的方法,其中此偏差是沿边界描述符的最大偏差。
16.如权利要求13所述的方法,其中此偏差是沿边界描述符的平均偏差。
17.如权利要求1所述的方法,其中当误差大于误差阈值时,改进步骤对该边界描述符集合中的每个边界描述符进行细分。
18.如权利要求1所述的方法,其中改进步骤合并该边界描述符集合中的相邻边界描述符,合并的边界描述符的误差低于误差阈值。
19.如权利要求17所述的方法,其中边界描述符的细分发生在边界描述符的一个位置上,该位置处该边界描述符相对等轮廓线的偏差最大。
20.如权利要求1所述的方法,其中点的有序列表的子集与每个边界描述符相关。
21.如权利要求17所述的方法,其中对特定边界描述符的改进步骤进一步包括对与边界描述符相关的点的有序列表的子集进行细分。
22.如权利要求18所述的方法,其中相邻边界描述符的合并步骤进一步包括对与相邻边界描述符相关的点的有序列表的子集进行合并。
23.如权利要求1所述的方法,其中当该边界描述符集合中没有需要进一步改进的元素时,终止更新步骤。
24.如权利要求1所述的方法,其中当已经超过一时间阈值时,终止更新步骤。
25.如权利要求1所述的方法,其中当该边界描述符集合的基数最小时,终止更新步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/396,256 US20040189638A1 (en) | 2003-03-25 | 2003-03-25 | Method for converting a two-dimensional distance field to a set of boundary descriptors |
US10/396,256 | 2003-03-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1698065A true CN1698065A (zh) | 2005-11-16 |
Family
ID=32988764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800002711A Pending CN1698065A (zh) | 2003-03-25 | 2004-03-22 | 将二维距离场转换到边界描述符集合的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20040189638A1 (zh) |
EP (1) | EP1497793A1 (zh) |
JP (1) | JP2006521625A (zh) |
CN (1) | CN1698065A (zh) |
WO (1) | WO2004086298A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102005033A (zh) * | 2010-11-16 | 2011-04-06 | 中国科学院遥感应用研究所 | 一种图像平滑抑制噪声方法 |
CN101052109B (zh) * | 2007-03-28 | 2012-10-03 | 上海集通数码科技有限责任公司 | 防闪字库处理方法、系统及其应用芯片 |
CN106093517A (zh) * | 2016-05-30 | 2016-11-09 | 广西大学 | 基于埃尔米特插值法的锂离子电池开路电压曲线拟合方法 |
CN113358058A (zh) * | 2021-06-07 | 2021-09-07 | 四川航天长征装备制造有限公司 | 基于离散序列点的焊缝轮廓特征计算机视觉检测方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005122285A2 (en) | 2004-06-04 | 2005-12-22 | The Board Of Trustees Of The University Of Illinois | Methods and devices for fabricating and assembling printable semiconductor elements |
US8269776B2 (en) * | 2009-03-31 | 2012-09-18 | Mitsubishi Electric Research Laboratories, Inc. | Method for generating a distance field of an object represented by stylized strokes |
DE102016214811A1 (de) * | 2016-08-10 | 2018-02-15 | Heidelberger Druckmaschinen Ag | Verfahren zur Verbesserung der Druckqualität von Grafikelementen |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940080A (en) * | 1996-09-12 | 1999-08-17 | Macromedia, Inc. | Method and apparatus for displaying anti-aliased text |
US7113617B2 (en) * | 2000-12-12 | 2006-09-26 | Hewlett-Packard Development Company, L.P. | Method of computing sub-pixel Euclidean distance maps |
-
2003
- 2003-03-25 US US10/396,256 patent/US20040189638A1/en not_active Abandoned
-
2004
- 2004-03-22 WO PCT/JP2004/003841 patent/WO2004086298A1/en not_active Application Discontinuation
- 2004-03-22 JP JP2006507680A patent/JP2006521625A/ja active Pending
- 2004-03-22 CN CNA2004800002711A patent/CN1698065A/zh active Pending
- 2004-03-22 EP EP04722421A patent/EP1497793A1/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052109B (zh) * | 2007-03-28 | 2012-10-03 | 上海集通数码科技有限责任公司 | 防闪字库处理方法、系统及其应用芯片 |
CN102005033A (zh) * | 2010-11-16 | 2011-04-06 | 中国科学院遥感应用研究所 | 一种图像平滑抑制噪声方法 |
CN102005033B (zh) * | 2010-11-16 | 2012-07-04 | 中国科学院遥感应用研究所 | 一种图像平滑抑制噪声方法 |
CN106093517A (zh) * | 2016-05-30 | 2016-11-09 | 广西大学 | 基于埃尔米特插值法的锂离子电池开路电压曲线拟合方法 |
CN113358058A (zh) * | 2021-06-07 | 2021-09-07 | 四川航天长征装备制造有限公司 | 基于离散序列点的焊缝轮廓特征计算机视觉检测方法 |
CN113358058B (zh) * | 2021-06-07 | 2022-10-14 | 四川航天长征装备制造有限公司 | 基于离散序列点的焊缝轮廓特征计算机视觉检测方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2004086298A1 (en) | 2004-10-07 |
US20040189638A1 (en) | 2004-09-30 |
EP1497793A1 (en) | 2005-01-19 |
JP2006521625A (ja) | 2006-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1698072A (zh) | 对表示一个对象的二维距离场的一个区域进行反锯齿的方法及装置 | |
CN1698093A (zh) | 根据代表对象的二维距离场确定一个象素成分的反锯齿强度的方法及装置 | |
CN101702309B (zh) | 用于绘制组合字形的区域的方法 | |
US6917369B2 (en) | Method and apparatus for rendering cell-based distance fields using texture mapping | |
US7002598B2 (en) | Method for generating a composite glyph and rendering a region of the composite glyph in object-order | |
US7006095B2 (en) | Method for typesetting a set glyphs represented as a set of two dimensional distance fields | |
CN1795468A (zh) | 在基于扫描线的光栅图像处理器中跟踪深度的方法 | |
US7042458B2 (en) | Methods for generating an adaptively sampled distance field of an object with specialized cells | |
WO2005088536A1 (en) | Method, apparatus and system for rendering using a cache | |
US6933952B2 (en) | Method for antialiasing a set of objects represented as a set of two-dimensional distance fields in object-order | |
CN1698071A (zh) | 在与二维对象的拐角相关联的单元内生成一个二维距离场的方法 | |
CN1698073A (zh) | 根据动画脚本将对象动态化为帧序列的方法 | |
CN1698070A (zh) | 用于将二维对象转换成二维距离场的方法 | |
CN1698065A (zh) | 将二维距离场转换到边界描述符集合的方法 | |
US20040189618A1 (en) | Method for converting two-dimensional pen strokes to distance fields | |
US7123271B2 (en) | Method and apparatus for antialiasing a set of objects represented as a set of two-dimensional distance fields in image-order |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |