CN101702309B - 用于绘制组合字形的区域的方法 - Google Patents
用于绘制组合字形的区域的方法 Download PDFInfo
- Publication number
- CN101702309B CN101702309B CN200910140940XA CN200910140940A CN101702309B CN 101702309 B CN101702309 B CN 101702309B CN 200910140940X A CN200910140940X A CN 200910140940XA CN 200910140940 A CN200910140940 A CN 200910140940A CN 101702309 B CN101702309 B CN 101702309B
- Authority
- CN
- China
- Prior art keywords
- unit
- distance
- distance field
- font
- pixel
- 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.)
- Active
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
一种方法绘制组合字形的区域。组合字形由元素集合定义。二维距离场的集合使用该元素集合来产生,其中二维距离场集合的组合表示该组合字形。组合字形的区域随后使用该二维距离场集合进行绘制。
Description
本申请是申请号为200580011099.4、申请日为2005年3月14日、发明名称为“用于绘制组合字形的区域的方法”的发明专利申请的分案申请。
技术领域
本发明一般地涉及计算机图形学领域,具体地涉及产生和绘制由二维距离场表示的对象。
背景技术
在计算机图形学领域,二维对象的绘制是十分重要的。诸如字符形状,公司标识以及包含在文档中的插图元素的二维对象被作为静止图像或构成动画的帧序列进行绘制。这里有很多适合于二维对象的表示法,并且通常情况是对于诸如绘制和编辑的特定操作一种表示法比其它表示法更好。在这种情况下,从一种形式到其它形式的转换被执行。
尽管在这里我们集中在可能是最普通和重要的二维对象的数字类型上,下面的讨论适用于所有类型的二维对象。
我们从数字类型的一些基本背景开始。诸如Times New Roman或Arial的典型的拉丁字体族包含一组字体,例如普通,斜体,粗体,粗斜体。每种字体包括一组称为字形的独特的字符形状。每个字形通过它的不同设计特征来区分,例如基本几何形状,笔划厚度,衬线,结合点,轮廓的位置和数目,粗细笔划的比值,以及尺寸。
这里有许多表示字体的方式,包括位图,诸如Type 1[AdobeSystems公司1990]和TrueType[Apple Computer公司1990]的轮廓,以及诸如轮廓占主导地位的Knuth’s Metafont的过程字体。基于轮廓的表示法被Cambridge,Mass.的Bitstream公司,Mountain View,Calif.的Adobe Systems公司,Cupertino,Calif.的Apple Computer公司,Bellevue,Wash.的Microsoft公司,Hamburg,Germany的URW以及Wilmington,Mass.的Agfa Compugraphic采用并普及。
Hersch,“Visual and Technical Aspects of Type,”CambridgeUniversity Press.1993以及Knuth,“TEX and METAFONT:NewDirections in Typesetting,”Digital Press,Bedford,MA 1979,包含了字体的历史和科学的综合回顾。
特别重要的是两类字号:正文字号和显示字号。正文类型的字体在相对小的例如14pt.或更小的点尺寸上绘制,并在文档的正文中使用,就像在本段中一样。为了易辨认且阅读舒适,正文类型需要高质量的绘制。正文类型的大小、字样和基线方向在单个文档中很少变化。
显示类型的字体在相对大的例如36pt.或更高的点尺寸上绘制,并被用于篇名,标题,或在设计和广告中用以设置状态或吸引注意力。与正文类型相反,显示类型的重点在于美学,在其中空间和时间混叠的缺乏很重要,而不像在易辨认性中,对比度可能比反混叠更重要。用于表示和绘制类型的框架能够处理好具有不同需求的两种类别是至关重要的。
类型可在诸如打印机或显示器的输出设备上以二值、灰度或彩色方式绘制。一些绘制引擎针对非常小的字号使用二值绘制以获得更好的对比度。然而,很好提示的灰度字体仅仅可读。
提示是和每个字形一起存放用以指定该字形的轮廓在绘制过程中应被如何修改以保持诸如对称性,笔划粗细和在一种字样所有字形上的统一外观等特征的一组准则或过程。
虽然设计自动和半自动的提示系统已被尝试过,提示过程仍然是新字体设计和现有字体针对低分辨率显示设备进行调整时的主要瓶颈。此外,解释提示准则的复杂性排除了使用硬件进行字体绘制。硬件支持的缺乏促使在软件光栅化过程中,特别是在实时动画制作类型的时候进行折衷,例如每像素较少采样点和低级过滤方法的使用。
灰度字体绘制通常涉及某种形式的反混叠。反混叠是平滑出现在二值字体中的外部锯齿边缘或阶梯效应的过程。尽管许多字体绘制引擎是私有的,大部分在网格适配和提示之后使用每像素4或16个采样点的超级采样,紧接着分别用2×2或4×4的盒形过滤器进行降采样。
诸如盒形过滤器的初级过滤器由绘制速度的需要证明有效。然而,即使是该方法对于动态类型所需的实时绘制常常太慢,并且所绘字形受到空间和时间的混叠。
在版面上的三个重要趋势显示了现有技术字体表示和相关方法的一些内在限制,并由此提供了改变的需求。
第一个趋势是由于办公室中计算机的统治作用,在家浏览的因特网的普及率的上升以及PDA和其它手持电子设备的增长,在屏幕上阅读文本的重要性日渐增加。这些显示器通常具有72-150点/英寸的分辨率,这远低于打印设备的分辨率。
低分辨率要求在光栅化类型时特殊处理以确保阅读舒适和易辨认性,像由诸如Microsoft和Bitstream等公司已在他们各自的ClearType和Font Fusion技术上投入的资源证明的那样。
第二个趋势是动态类型或运动版面的使用。动态类型被用来传达情绪,增加兴趣,并在视觉上吸引读者的注意力。动态类型的重要性通过它在电视和因特网广告中的广泛使用来证明。
第三个趋势是针对这类显示器的像素分量并入了多种设计的显示设备的增长。就像在美国专利6,188,385“Method and apparatus fordisplaying images such as text”,Hill et al.中描述的那样,垂直和水平样条的RGB分量已经成为传统显示设备的标准排列。然而,有差别地排列分量具有很多优点,如同在美国专利申请公布号20030085906“Methods and systems for sub-pixel rendering usingadaptive filtering”,Elliott et al.中描述的一样。
不幸地是,传统的基于轮廓的字体和相应的方法在所有这些领域中具有局限性。在低分辨率的显示器上绘制类型需要仔细处理以平衡针对易读性的好的对比度的需求以及针对阅读舒适而减小空间和/或时间混叠。
如上所述,基于轮廓的字体通常被提示以针对最优外观为绘制引擎提供指令。字体提示是劳动密集型和昂贵的。例如,开发一个针对具有超过一万字形的日文或中文字体的好的提示字样要花费数年。因为提示的关键在于改善正文类型的绘制质量,提示对于沿着任意路径放置的类型和动态类型往往是无效的。
尽管高质量的过滤可被用于在具有有限数目的字号和字样的静态文档中对灰度类型进行反混叠,在动态类型中过滤的使用通常被实时绘制需求所限制。
类似在美国专利6,188,385中所描述的现有技术的子像素绘制方法具有许多与三个趋势全部相关的缺点。
首先,他们需要每个像素分量多个采样点以得到令人满意的质量,这是低效的。当在包含多个分量的可选择的像素布局,例如在美国专利申请公布号20030085906中描述的布局上绘制时,他们的方法就不实用了。其次,他们使用显示器的垂直或水平样条来使得针对邻近像素分量的采样点的再利用成为可能,这不能用于许多可选择的像素分量布局。第三,由于使用更好过滤器时他们方法的效率低,他们在采样每个分量时使用低级的过滤器。
第四,所讲解的方法不能提供针对在可选择的像素分量布局上减轻彩色边缘效应的任何测度。第五,非整数像素间隔的字形平移需要该字形的重新绘制。重新绘制通常需要重新解释提示,这是低效的。第六,对于某一像素分量布局,提示常常是特定的,因此必须重做以处理可选择的像素分量布局的增长。重做提示既昂贵又费时。
绘制重叠的对象
当两个或多个对象被绘制时,它们的绘制图像可能重叠。例如,一个文本行中的两个字形的反混叠边缘在字形被靠在一起放置时可能重叠。像另一个例子,单个日文汉字字形可用几个元素的组合来表示,例如笔划,偏旁或基于笔划的偏旁,这在它们被合并以绘制单个日文汉字字形时可能重叠。
在这种情况下,绘制方法必须处理对象重叠的区域。在现有技术中,有几种用于处理这种重叠区域的方法。“Painter’s Algorithm”是一种针对二维和三维绘制的在计算机图形学中常用的方法。在Painter的算法中,对象被从后往前排序,然后按该顺序绘制。由每次绘制所确定的像素简单覆盖掉在上一次绘制中的对应像素。
其他现有技术方法混合重叠像素的彩色或亮度值,即,这些方法根据一种准则合并彩色或亮度值,例如选择最大或最小值或执行重叠像素的算术平均。这些方法中的一部分使用与每个像素相关联的α值,利用所谓的α混合技术来混合重叠像素的值。
那些现有技术方法由于很多原因可能是有问题的。
例如,当在液晶显示器(LCD),有机发光二极管(OLED)或类似具有可独立寻址的像素分量的显示技术上绘制时,Painter的算法将导致紧密间隔的字形之间的彩色失真。
混合像素彩色或亮度的现有技术方法需要针对α值的额外计算和存储,并依赖所用的混合方法表现出诸如边缘模糊或边缘丢失的不同失真。
另外,使用现有技术基于覆盖的反混叠针对一组重叠对象确定的覆盖值一般来说不能被混合在一起以表示组合对象的真实覆盖程度。
另一种处理重叠对象的现有技术方法在绘制前合并对象以产生一个组合对象。例如,对于包含多个元素的基于轮廓的字形,元素的轮廓在绘制前被连接起来形成单一的轮廓描述。类似地,要绘制包含多个笔划的基于笔划的字形,笔划在绘制前被合并成单组笔划。
对于表示为距离场的对象元素,距离场可以使用由Perry et al.,“Kizamu:A System for Sculpting Digital Characters,”ProceedingsACM SIGGRAPH 2001,pp.47-56,2001描述的CSG运算在绘制前合并为单个距离场。当组合对象被表示为自适应采样的距离场时,组合对象需要比元素所需总存储量多很多的存储量,因为合并会给组合对象带来不存在于任何元素中的诸如非常细小的部分或角的精致细节。
所有那些在绘制前进行合并的现有技术方法需要额外的存储空间和复杂运算来产生组合对象。而且那些方法需要两步,一个建立组合对象,一个绘制组合对象。
产生并绘制基于部件的字形
诸如中文,日文或韩文字体的亚洲字体可以包括10,000或更多种字形。为了减小存储需求,这类字体中的字形可被表示成部件的公共集合的组合,在这里部件被称为元素,例如笔划或部首。这些公共元素随后作为字体库被存入存储器中,并在绘制之前或绘制过程中合并以产生组合字形。
现有技术方法是用轮廓描述符定义元素,典型地由Bezier曲线或笔划骨架。元素可在绘制前被合并成诸如组合轮廓或笔划的组合集合的单个形状描述符。可选择地,每个元素可被独立绘制,并针对每个像素从被合并的元素产生反混叠的亮度或覆盖值以产生该像素最终的反混叠亮度或覆盖值。两种方法都有如上所述的问题。
发明内容
本发明提供了绘制组合字形的区域的方法。组合字形由一组元素定义。使用该组元素产生二维距离场集合,其中该二维距离场集合的组合表示组合字形。组合字形的区域随后使用该二维距离场集合进行绘制。
附图说明
图1A和1B是针对字形的现有技术距离场表示法的框图;
图2A和2B是依照本发明优选实施例的距离场表示法的框图;
图3是依照本发明优选实施例的距离场的双二次单元的框图;
图4是依照本发明的用于以图像顺序对对象进行反混叠的方法的流程图;
图5是本发明使用的线性过滤器的曲线图;
图6A,6B和6C是在像素分量附近的采样点的示图;
图7是依照本发明的用于以对象顺序对对象进行反混叠的方法的流程图;
图8是依照本发明的用于基于距离的自动提示的方法的流程图;
图9是依照本发明的用于把笔划转换为距离场的方法的流程图;
图10是依照本发明的用于把二维对象转换为距离场的方法的流程图;
图11是依照本发明的用于把距离场转换为边界描述符的方法的流程图;
图12是依照本发明的用于动画制作对象的方法的流程图;
图13是依照本发明的用于在包围了二维对象的一个角的单元内产生二维距离场的方法的流程图;
图14A和14B是依照本发明的用于以图像顺序对对象集合进行反混叠的方法的流程图;
图15A,15B和15C是依照本发明的用于以对象顺序对对象集合进行反混叠的方法的流程图;
图16A,16B和16C是依照本发明的使用纹理映射绘制基于单元的距离场的方法的流程图;
图17是依照本发明的绘制方法的流程图;
图18A,18B和18C是依照本发明的用于排版字形集合的方法的流程图;
图19A,19B和19C是依照本发明的用于产生组合字形并以图像顺序绘制组合字形的区域的方法的流程图;
图20A-20D是依照本发明的用于产生组合字形并以对象顺序绘制组合字形的区域的方法的流程图;
图21A-21D是依照本发明的角单元的示图;
图22A-22C是依照本发明的两片段单元的示图;
图23是依照本发明的用于在与二维对象相关联的单元中产生二维距离场的方法的流程图;
图24A是在一个区域内的对象的一部分的示图;
图24B-24D是依照本发明的分割区域的三种单元配置的示图;以及
图25是依照本发明的用于针对表示对象的形状描述符的区域产生距离场的最优配置的方法的流程图。
具体实施方式
字形的距离场表示
我们的发明把诸如字形,公司标识或对象的任意数字化表示的闭合二维形状S表示为二维有符号的距离场D。我们使用字形进行说明。
非正式地,字形的距离场测量从场中任意一点到字形边缘的距离,例如最小距离,其中如果该点在字形的外部,则距离的符号为负,如果该点在字形的内部,则为正。在边缘上的点具有零距离。
正式地,距离场是一个针对所有p∈R2的映射D:R2→R,使得D(p)=sign(p)·min{||p-q||:对于S的在零等值面上的所有点q,即边缘},sign(p)={-1,如果p在S外部;+1,如果p在S内部},而||·||是欧几里德范数。
对每个像素或每个像素分量使用单个离散采样点的现有技术基于覆盖的绘制方法即使在采样点离轮廓任意近的时候也可能完全丢失字形。绘制的字形具有锯齿边缘和信息缺失,两者都是空间混叠的形式。如果字形是动态的,那么时间混叠会导致看起来像在运动中“蠕动”的闪动轮廓和锯齿边缘。对每个像素或像素分量采用附加的采样点以产生反混叠的重现可以减小这些混叠效果,但为了得到可接受的结果可能需要很多采样点。
相反地,依照我们的发明连续采样的距离值即使当采样点在形状外部时也表征了该字形的一种近似,因此消除了现有技术的信息缺失失真。依照我们的发明,采样距离值的连续特性可被用来减轻空间混叠失真。
另外,由于距离场变化平缓,即它是C0连续的,当字形移动时采样值变化缓慢,减小了时间混叠失真。
距离场具有其它优点。因为它们是一种隐性表示,它们共有隐函数的好处。特别地,距离场使用于设计字体的直观接口成为可能。例如,诸如竖笔,横笔,圆弧和衬线的独立字形部件可被分别设计。在设计之后,部件可以使用隐性混合方法混合起来组成同种字样的不同字形。
距离场也有很多可用于运动版面或动态类型,因为距离场提供了对于模拟对象间的交互作用很重要的信息。
在优选实施例中,我们使用自适应采样距离场,即ADF,参考美国专利号6,396,492,“Detail-directed hierarchical distance fields,”Frisken,Perry,and Jones,在这里引入作为参考。
ADF是距离场的有效数字表示。ADF使用细节支配的采样来减小表示该场所需的采样点数目。为了有效处理,采样点被存入单元的空间层次结构,即四叉树中。另外,ADF提供了从采样值重构距离场的方法。
细节支配或自适应采样根据场内的局部方差对距离场进行采样:当局部方差高时,使用较多的采样点,而当局部方差低时,使用较少的采样点。自适应采样相比在整个场以统一比率进行采样的规则采样距离场和总在边缘附近以最大比率进行采样的3彩色四叉树之上大大减小了存储需求。
图1A-1B比较了针对Times Roman‘a’和‘D’的3彩色四叉树所需的单元数目和同样精度下在图2A-2B中的双二次ADF所需的单元数目。单元数目直接和存储需求相关。两个四叉树都具有与距离值的512×512图像相当的分辨率。针对‘a’和‘D’的3彩色四叉树分别具有17,393和20,813个单元,而它们对应的双二次ADF具有457和399个单元。双二次ADF通常比Frisken et al.“Adaptively SampledDistance Fields:a General Representation of Shape for ComputerGraphics,”Proceedings ACM SIGGRAPH 2000,pp.249-254,2000的现有技术双线性表示法少需要5-20倍的单元。
双二次重构方法
Frisken等人针对ADF空间层次结构使用四叉树,并且通过双线性内插从在每个单元的四个角上采样的距离重构每个单元内部的距离和梯度。他们提出“高阶的重构方法......可被用于进一步增加压缩比,但该数目已经暗示了一个针对额外努力的回报减少的点”。
然而依照本发明,双线性ADF对于表示,绘制,编辑和动画制作字符字形是不适用的。特别地,它们需要太多的存储量,处理效率太低,并且非边缘单元中的重构场的质量对诸如动态模拟的操作是不够的。
“有界表面”方法通过要求在离表面,即边缘有限距离内的非边缘单元通过一个误差判定测试,可以促使在非边缘单元内的进一步细分,参见Perry et al.,“Kizamu:A System for Sculpting DigitalCharacters,”Proceedings ACM SIGGRAPH 2001,pp.47-56,2001.尽管有界表面方法减小了在该有界区域内部的距离场中的误差,我们发现对于双线性ADF,该方法导致了在单元数目上的不可接受的增长。
为了解决这些局限性,我们用双二次重构方法代替双线性重构方法。典型字形的双二次ADF往往需要比双线性ADF少5-20倍的单元。在所需单元数目上的较高减少发生当我们针对诸如动态模拟和动画类型的操作需要在非边缘单元中的正确距离场的时候。
这种非常大的存储量的减小使得典型动画所需的字形能够被装入现代CPU的片上高速缓存中。这在处理时间上具有显著影响,因为系统存储器的存取基本上被去除了,轻易地补偿了高阶重构方法所需的附加计算。
图3显示了依照我们的优选实施例的双二次ADF单元300。双二次ADF中的每个单元包含九个距离值301。在点(x,y)302的距离和梯度依照下面的等式1-3从这九个距离值进行重构。
这里有多种可用的双二次重构方法。我们采用保证沿相同尺寸的相邻单元的公共边界边缘C0连续的双变量内插多项式。和使用双线性方法类似,在不同尺寸的相邻单元之间的距离场的连续性使用误差判定来保持到指定的偏差内。误差控制在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个浮点运算(flop),而使用浮点算术重构梯度需要~70个浮点运算。因为我们的重构方法不包含分支,并且字形可以全部存在于片上高速缓存中,我们可以通过利用专门的CPU指令和现代CPU的深度指令管道进一步优化这些重构方法。此外,我们可以使用定点算术来重构距离和梯度。
针对传输和存储的压缩
线性四叉树
ADF四叉树的空间层次结构对于某些处理是必要的,例如冲突检测,但对于其它处理是不必要的,例如下面描述的基于单元的绘制。
为了提供针对ADF字形的传输和存储的压缩,我们使用线性四叉树结构,它把我们的双二次ADF作为叶单元的列表进行存储。树结构可在需要时从叶单元重建。
线性ADF四叉树中的每个叶单元包括每个各两字节的该单元的x和y位置,一字节的单元层次,两字节的在单元中心的距离值,以及每个各一字节的距离中心距离值的八个距离偏置,总共15字节/单元。
每个距离偏置通过把它对应的采样距离值从中心距离值减去,用单元尺寸缩放以减小量化误差,并截短为八比特来确定。每个单元位置两个字节以及针对单元层次的一字节可以在上至216×216的分辨率上表示ADF。这对于表示字形以在显示屏幕分辨率上进行绘制来说远远足够。
字形可用16比特的距离值正确表示。把八个距离值编码为8比特的距离偏置提供了在存储这些值的每一个上大致两字节的节约。尽管在理论上,这会导致在大单元的距离场中的一些误差,我们没有观测到任何视觉上的退化。
高分辨率字形通常需要500-1000个叶单元。无损熵编码可以获得进一步的35-50%的压缩率。因此,高分辨率ADF的整个字样可被表示为300-500K字节。如果只需要正文类型或者目标分辨率很低,就像用于蜂窝电话,那么需要1/4~1/2的单元的低分辨率ADF可被使用。
这些尺寸大大小于对每种点尺寸需要~0.5Mbytes/字样的灰度位图字体,在尺寸上与很好提示的基于轮廓的字体相当。TrueType字体的尺寸根据字形个数和提示的数目和方法在十几Kbytes到十几Mbytes的范围内变化。Monotype公司的两种很好提示的字体Arial和Times New Roman分别需要266 Kbytes和316 Kbytes。
从轮廓运行时产生
根据我们的发明,就像在下面详细描述的那样,ADF可以使用Perry等人描述的平铺发生器从现有的轮廓或诸如Bezier曲线的边界描述符中快速产生。到字形轮廓或边界的最小距离使用Bezier切片有效地计算,参见Sederberg et al.,“Geometric Hermite Approximationof Surface Patch Intersection Curves,”CAGD,8(2),pp.97-114,1991.
产生在2GHz Pentium IV处理器上需要0.04-0.08秒/字形。整个字样可以在大约四秒内产生。由于不需要传统的提示,产生ADF所需的边界描述符大大小于它们对应的提示副本。
因此,与其存储ADF,我们可以存储这些最小轮廓,并在需要时从这些轮廓动态产生ADF字形。这些最小轮廓的缩减尺寸对于具有有限存储量的设备和在有限带宽的网络上传输字形的应用来说很重要。
图10显示了用于把诸如字形的二维对象转换成二维距离场的方法1000。对象1001被表示为诸如样条的边界描述符集合和诸如偶-奇准则或非零缠绕准则的填充准则。
该边界描述符集合首先被预处理1010。预处理细分边界描述符以减小它们的空间范围。边界描述符也可被合并以减小边界描述符集合的势。预处理允许我们在确定无符号距离时减小针对每个位置所需查询的边界描述符的数目,如下所述。
空间层次结构1021,例如四叉树,从边界描述符的预处理集合1011中构建1020。交点1031的快速缓存被初始化1030。交点1031的快速缓存保存边界描述符与距离场的一组诸如水平,垂直,对角等等线条相交的位置和相交的方向。这消除了在确定无符号距离的符号时的冗余计算。交点可用间距来保存。
空间层次结构1021随后在位置集合被查询1040用以确定在这些位置的距离集合。该距离集合被用来构建二维距离场1041。查询在每个位置调用诸如Bezier切片的距离函数来确定无符号距离。交点的快速缓存,位置和填充准则被用来确定距离的符号。
通过基于部件的字体进行压缩
针对包含10,000或更多字形的中文,日文和韩文字体的最有效的压缩可通过使用类似字体融合中的基于部件的表示法来实现。该表示法把字形分解成公共笔划或部首,即多个字体共有的复杂形状,把笔划和部首存入字体库中,然后在字体绘制引擎中对它们进行重组。
因为距离场是一种隐性的表示,ADF可以使用混合或CSG运算被轻易地组合,因此很适合用于通过基于部件的方法进行的压缩。
表示二维距离场中的角
使用双线性或双二次重构方法的细节支配的采样允许ADF用少量距离值来表示二维对象边界的相对平滑的部分。然而在靠近角处,距离场具有高的方差,不能被这些重构方法很好地近似。为了正确地表示靠近角的距离场,这种ADF要求包含角的单元被高度细分,大大增加了存储需求。另外,在如Perry等人所述的在ADF产生过程中采用的ADF的最大细分级别限制了使用双线性和双二次ADF单元表示角的正确率。
为了解决这个问题,我们的发明提供了用于在与诸如字形的二维对象的角相关联的单元内产生二维距离场的方法1300。
方法1300从二维对象确定1310边界描述符1311的有序集合,并从该边界描述符1311的有序集合中识别出1320与单元相关联,例如靠近或在内部,的角点1321。该单元随后被分割1330成两个区域,第一区域离角最近,第二区域离对象边界最近。方法1300也指定了1340用于在单元内重构距离的重构方法和一组采样距离值1371,并把该角点1321,为区域定界的线,重构方法和该组采样距离值1371保存1380到存储器中。
重构方法根据该点所在的区域确定单元内一点的距离。在第一区域中的查询点的距离被确定为从查询点到角点的距离。
为了确定第二区域中的距离,我们把边界描述符1311的有序集合分割1350成两个子集,一个包含在角点1321之前的边界描述符,一个包含在角点1321之后的边界描述符。边界描述符的每个子集随后被延长1360以形成把单元分割成内部和外部部分的延长线。对每个部分,在单元内的距离场可从由对应延长线确定1370的采样距离值1371集合重构。双二次重建方法要求针对两条延长线中的每一个保存九个距离值。
注意两个内部部分的交点形成了对象的角。因此,在第二区域内的距离可通过重构到第一内部部分的距离和到第二内部部分的距离,然后选择两个确定距离的最小值来决定。
这两个区域可从穿过角点的两条有向直线来指定,每条线垂直于边界描述符两个子集中的一个。每条线可用角点和在角点处边界描述符对应子集的面向外侧的法线来表示。当直线像这样被确定时,我们可以通过测定从查询点到角点的向量和面向外侧的法线的叉积来判断查询点位于直线的哪一侧。位于两条直线外侧的点位于第一区域,而位于任意一条直线内侧的点位于第二区域。
图21A-21D举例说明了角单元的表示法。在图21A中,单元2102包含对象2104的一部分,其中对象2104的内部被画上阴影,而外部则被留为白色。该对象2104在单元2102内的边界包括第一组边界描述符2114,角点2116和第二组边界描述符2118。
在对象2104该部分的单元2102中的距离场可以通过合并在图21B中示出的延长线2115的距离场,在图21C中示出的延长线2119的距离场和在图21D中示出的角点2116的距离场来表示。延长线2115通过延长第一组边界描述符来定义。类似地,延长线2199通过延长第二组边界描述符来定义。
在优选实施例中,延长线2115和2119的距离场各自使用一组采样距离和诸如双线性或双二次重构方法的重构方法来表示,而角点2116的距离场由用于确定从采样点到角点2116的有符号距离的程序来表示。
角点2116的距离场的符号可从由角点2116表示的角的角度来确定。如果在对象2104该部分的外侧测量得到的角角度是锐的,那么角点2116的距离场符号为正。如果在对象2104该部分的外侧测量得到的角角度是钝的,那么角点2116的距离场符号为负。例如,由角点2116表示的角是钝的,那么该角的距离场符号为负。
延长线2115和2119以及角点2116的距离场各自具有一个有效范围和无效范围。有效范围和无效范围用由延长线2115的法向向量2120定义的第一直线和由延长线2119的法向向量2122定义的第二直线分隔开,两条线都通过角点2116。
图21B,21C和21D分别显示了针对延长线2115,2119和角点2116的有阴影的无效范围2124,2126和2128以及无阴影的有效范围2130,2132和2134。在上面针对方法1300定义的第一和第二区域可从有效范围确定。第一区域,即离角点2116最近的单元区域,与角点2116的有效区域2134相同。第二区域,即离对象2104的边界最近的单元区域,是延长线2115的有效区域2130和延长线2119的有效区域2132的并集。
在本发明的一个实施例中,为了确定单元2102中的采样点的距离,我们从延长线2115的距离场重构第一有符号距离和对应的第一有效性标志,从延长线2119的距离场重构第二有符号距离和对应的第二有效性标志,从角点2116的距离场重构第三有符号距离和对应的第三有效性标志。第一,第二和第三有效性标志分别根据采样点位于延长线2115,延长线2119和角点2116的有效区域的内部还是外部来确定。从采样点到对象2104该部分的距离是针对该采样点的有效的第一,第二和第三有符号距离的最小值。
表示二维距离场中的竖笔和其它细小结构
使用角单元使使得ADF无需过度细分单元就能够正确表示角。然而除角之外,诸如字形的二维对象可以具有诸如垂直竖笔或水平横笔的细小结构。在这些结构附近,距离场是C1不连续的。当梯度在一点奇异,即不连续时,距离场在该点上是C1不连续的。
例如,距离场沿着在细小结构任一侧上的边界描述符之间的曲线中段是C1不连续的。因为这种不连续性需要对ADF的单元进行过度细分,这就有在细小结构附近更好的单元表示和重构方法的需求。
我们的本发明提供了针对在细小结构附近的单元的‘两片段单元’表示和两片段单元重构方法。图22A,22B和22C示出了依照我们的本发明的两片段单元。
在图22A中,单元2202包含对象2206的一部分,在其中对象2206的内部被画上阴影而外部则被留为白色。在单元2202内的对象2206该部分的边界包含包括第一片段2214的第一组边界描述符和包括第二片段2216的第二组边界描述符。
在单元2202中的对象2206该部分的距离场可通过合并在图22B中示出的第一片段2214的距离场和在图22C中示出的第二片段2216的距离场来表示。在优选实施例中,第一片段2214和第二片段2216的距离场各自使用一组采样距离和诸如双线性或双二次重构方法的重构方法来表示。
为了确定从采样地到单元2202内的对象2206该部分的距离,我们在该采样点从第一片段2214的距离场重构第一有符号距离,并从第二片段2216的距离场重构第二有符号距离。
在图22B中,针对第一片段2214的有符号距离场的正范围2220被画上阴影,而负范围2222则被留为白色。在图22C中,针对第二片段2216的有符号距离场的正范围2230被画上阴影,而负范围2232则被留为白色。在单元2202中的对象2206该部分是图22B的有阴影的正范围2220和图22C的有阴影的正范围2230的交集。在优选实施例中,从采样点到单元2202中的对象2206该部分的距离是第一有符号距离和第二有符号距离的最小值。
图23示出了用于在与二维对象2301相关联的两片段单元2302中产生二维距离场的方法。一组边界描述符2311针对对象2301被确定2310。边界描述符2311可以有不同的表示,包括线段和诸如Bezier曲线的样条曲线。
边界描述符2311被分割2320成一组片段2321,其中该组片段2321中的片段由在预处理步骤或在分割2320过程中确定的一组特征来定界。特征的例子包括对象2301的角,边界描述符2311具有巨大弯曲度的点,特定边界描述符的端点或在特定边界描述符上沿特定片段的累加曲率超过预定门限的点。例如,把一个特征放在大的累加曲率的点上使得能够在一个片段开始弯回到自身,即当片段的累加曲率幅度超过90度时,划定该片段的边界。
我们针对单元2302在该组片段2321中识别2330第一片段2331和第二片段2332。在优选实施例中,识别2330通过确定从每个测试点到该组片段2321中的每个片段的距离,从该组片段2321中为单元2302内的一组测试点中的每个测试点定位最近的片段。如果单元2302中的每个测试点距离该组片段2321内两个特定片段中的一个最近,那么我们把这两个特定片段识别2330为两片段单元的第一片段2331和第二片段2332。
我们指定2340第一组距离值2341来表示第一片段2331的距离场,第二组距离值2342来表示第二片段2332的距离场。例如,一组九个距离值可于双二次重构方法一起被指定2340用来表示对应一个片段的距离场。
方法2300定义2350了用于合并第一组距离值2341和第二组距离值2342以重构单元2302内的距离场的重构方法2351。在优选实施例中,重构方法2351通过使用第一组距离值2341确定从采样点到第一片段2331的距离,使用第二组距离值2342确定从采样点到第二片段2332的距离,然后通过取第一距离和第二距离的最小值来合并第一距离和第二距离来重构在单元2302内一个采样点上的距离场。
距离值2341的集合,距离值2342的集合和重构方法2351被存入2360存储器2370中,以使得在单元2302内的二维对象2301的二维距离场的重构成为可能。
为具有专用单元的距离场确定单元的最优配置
使用诸如角单元和两片段单元的专用单元可以减轻ADF单元的过度细分,该ADF表示具有角和细小结构的诸如字形的对象。然而,针对使用这些专用单元的距离场确定单元的最优配置相对于确定不使用专用单元的单元最优配置复杂很多。针对距离场的单元配置包括,例如单元的位置,尺寸,方向,重构方法,类型和几何特性。
用于分割包含表示对象的距离场的区域的可能单元配置有很多。Frisken等人的现有技术讲解了一种自顶向下和自底向上的细分方法,该方法把区域分割成矩形单元以产生基于四叉树或基于八叉树的ADF,从而提供一种没有专用单元的非最优配置。不同于现有技术,本发明提供了一种用于产生具有最优单元配置的基于单元的距离场表示方法。在优选实施例中,最优配置可以包括诸如角单元和两片段单元的专用单元。
图24A示出了包含二维对象2401一部分的区域2460,其中对象的内部被画上阴影而外部则被留为白色。在区域2460内部的对象2401该部分的边界包括与第一组边界描述符相关联的第一片段2406,与第二组边界描述符相关联的第二片段2408,以及与第三组边界描述符相关联的第三片段2410。第一片段2406和第二片段2408在对象2401该部分的角2412相遇,而第二片段2408和第三片段2410在对象2401该部分的角2414相遇。
分割区域2460以确定单元配置的方式有很多。图24B-24D显示了在该配置可以包含两片段单元和角单元的时候,分割区域2460的不同单元配置。对于最优配置的“最优”的详细定义依赖于许多参数,一些参数在图24B-24D中示出,而其它参数将在下面描述。
图24B显示了针对在区域2460内对象2401的边界的Voronoi图。每个不同阴影的单元显示了最接近某一片段或角的区域2460的一部分。在单元2420中的点最接近片断2406。在单元2422中的点最接近片断2408。在单元2424中的点最接近片断2410。在单元2426中的点最接近角2414。最后,在单元2428中的点最接近角2414。
图24B的Voronoi图是当该配置仅使用“一片段单元”时,针对区域2460的最优单元配置的例子,一片段单元定义为在该单元内的距离场可从单个片段确定的单元。在一片段单元中的距离可通过例如在最接近该单元的片断具有非常低的曲率时使用双二次重构方法从一组采样距离值进行重构。多种可选择的重构方法也是可能的,包括从单元内一点到离该单元最近的片断的距离的解析确定。
图24B的Voronoi图在它提供了从中对象2401该部分的距离场可使用一片段单元在区域2460的任何地方被准确重构的最小数目的单元的意义上是一种最优单元配置。使用Voronoi图分割区域2460的一个缺点是确定Voronoi图的准确配置是困难的。使用Voronoi图的第二个缺点是那些单元具有非常复杂的边界,因此导致了在绘制过程中针对光栅化和定位单元的非常长的运算时间。
图24C提供了一种分割区域2460的可选择的最优单元配置,该配置使用如上定义的角单元。区域2460被分割成第一角单元2430和第二角单元2432。在角单元2430中的距离可使用第一片段2406,角2412和第二片段2408进行重构。在角单元2432中的距离可使用第二片段2408,角2414和第三片段2410进行重构。在角单元2430或角单元2432中的距离可以使用诸如上面描述的方法那样的角单元重构方法从采样距离值以非常高的精度进行重构。
在图24C中示出的单元配置在图24B和24D的配置之上的优点是图24C中的配置需要较少的单元。一个缺点是角单元重构方法通常比一片段或两片段重构方法更加复杂和低效,并且图24C的单元配置需要角单元重构方法被用于区域2460的所有点。图24C的配置的第二个缺点是,与图24B的Voronoi图类似,单元边界可能很难确定。第三个缺点是单元边界可能非常复杂,因此导致了在绘制过程中针对光栅化和定位单元的非常长的计算时间。
图24D示出了区域2460的第三种可选择的最优分割。区域2460被分割成四叉树,其中四叉树中的每个叶子节点依照它的单元类型被画上阴影。单元2440是一片段单元,单元内的点最接近片断2410。单元2442是一个两片段单元,单元内的点最接近片断2406或片断2410。在该单元内的距离可使用两片段重构方法重构。单元2444是一个角单元,其中单元内的点最接近角2414,片断2406或片断2408。单元2446也是一个角单元,其中单元内的点最接近角2414,片断2408或片断2410。在单元2444和单元2446中的距离可使用角单元重构方法进行重构。
单元2448,2450和2452是外部单元,即位于距对象2401的边界最小距离之外的在对象2401该部分外部的单元。如果该距离场的正确表示在最小距离之外是不需要的,那么在单元2448,2450和2452内的点的距离可用更简单的重构方法近似。例如,在该点的距离可使用双二次重构方法从九个采样距离值重构,因此减少了存储量和计算时间。
在图24D中示出的分割的一个优点是单元具有简单的边界,因此可以在绘制过程中快速且轻易地光栅化和定位。第二个优点是四叉树提供了一种使距离场的快速查询称谓可能的空间数据结构。在图24C的配置之上的优点是诸如一片段或双二次重构方法的简单重构方法被用于区域中的一些点,而诸如两片段或角重构方法的较复杂的方法仅在需要时使用,因此减少了计算时间。缺点是相比图24B和24C的配置,图24D的配置中有更多的单元。
就像由在图24B,24C和24D中显示的例子说明的那样,当专用单元类型被使用时,存在很多种针对分割表示对象的距离场的最优单元配置。当产生一种配置时,定义“最优”依赖于许多参数,包括如何绘制,编辑和处理该配置。
通过最优配置,我们想要一种平衡基于单元的距离场表示的一组期望特征的配置。配置的优化可以通过最小化距离场尺寸,最小化绘制距离场所需的时间,最小化产生距离场的时间,最大化距离场绘制的质量度量,最小化单元总数以及最大化距离场的精度来指导,仅以这些为例。
图25示出了用于针对表示对象的形状描述符2502的区域2501产生基于单元的距离场的方法2500。单元类型2511的集合被定义2510,其中单元类型可包括双线性或双二次单元类型和包含角单元类型和两片段单元类型各种专用单元类型,仅以这些为例。
方法2500产生2520针对区域2501的一组单元的配置2521,其中该组单元中的每个单元具有特定的与单元类型集合2511定义的一样的单元类型和用于重构该单元内的距离场的重构方法2512。该组单元的配置2521使用形状描述符2502,区域2501和单元类型集合2511进行修改2530,直到达到针对区域2501该组单元的最优配置2531。该组单元的最优配置2531被存储2540在存储器2541中以产生基于单元的距离场。
不同于Frisken等人描述的现有技术自顶向下和自底向上的产生方法,依照本发明的配置能够提供区域2501的完备的棋盘形布置或不完备的棋盘形布置。例如,依照本发明,配置2521和最优配置2531都可以覆盖区域的一个子集,留下没有表示距离场的区域范围,或提供区域外部距离场表示的区域超集。不同于现有技术方法,在本发明中的单元可以相互重叠,提供产生最优配置的额外机会。
现有技术方法没有用优化准则指导,因此不能产生任何意义下的最优配置。现有技术使用严格的确定性方法,导致通常是受限的和次优的配置。现有技术也没有在产生过程中考虑专用单元。
为了获得依照本发明的最优配置,该组单元的配置2521的产生2520和修改2530均可由用户手动,由计算机自动或由具有用户输入的计算机半自动地完成。修改2530可以通过从该组单元的配置2521中添加或删除单元,或通过改变特定单元的诸如该特定单元的几何特性,位置,方向和类型的属性来改变该组单元的配置2521。产生2520和修改2530均可使用确定性方法或包括概率方法和随机方法在内的不确定性方法来实现。
在一个实施例中,产生2520把单个单元放在区域2501内的任意或预定的位置上,并且修改2530把该单元调整到最优形状和尺寸上。修改2530随后把新的单元添加到区域2501的未覆盖区域,调整每个单元至最优形状和尺寸,并重复该过程直至实现最优配置2531。在另一个实施例中,产生2520把一组初始角单元放在形状描述符2502的角点附近,修改2530把区域2501剩余的未覆盖区域棋盘化以确定另一个最优配置2531。这些实施例都提供了在Frisken等人的现有技术方法中不可能得到的最优配置2531。
在另一个实施例中,产生2520可以包括预处理形状描述符2502以生成一组预处理后的形状描述符和一组对应的可被用来加速产生2520和修改2530的预处理距离程序。
例如,预处理可以从形状描述符中确定边界描述符,把边界描述符分割成由边界描述符的特征定界的一组片断。该特征如上所述包括角点,具有巨大曲率的沿着边界描述符的点,边界描述符的端点以及巨大累加曲率的点。特征可通过添加,删除和变更特定特征在修改2530过程中被改变。当特征在修改2530过程中被改变时,该组预处理后的形状描述符和该组预处理后的距离程序可被权宜采用。
字体绘制
在当今的字体绘制引擎中,字体大多被表示为可在需要时进行缩放以与期望的输出尺寸相匹配的轮廓。而大部分高分辨率打印机使用二值绘制,现代显示设备通常使用灰度绘制或者在小的点尺寸上使用灰度和二值绘制的组合。
光栅化灰度字形的常用方法涉及缩放和提示它们的轮廓。缩放和提示的轮廓被扫描转换为高分辨率的图像,通常比期望分辨率大四或十六倍。然后该高分辨率图像使用诸如盒形过滤器的过滤方法降采样以产生最终的灰度图象。
对于正文类型,单个字形可被光栅化一次,然后作为灰度位图存入高速缓存以便在预处理步骤中重复利用。针对字形的子像素位移的需求需要光栅化每个字形的几个版本。针对正文类型使用高速缓存允许在诸如在Adobe Acrobat PDF文档中进行页面调度的任务的过程中,以诸如1/2秒的短延迟进行较高质量的绘制。
然而,在任意路径上绘制的类型和动态类型排除了高速缓存的使用,因此必须在需要时被产生。实时绘制需求迫使使用低级的过滤器,例如每像素四个采样点的盒形过滤,并阻碍了提示的使用。这将导致空间和时间混叠,以及基线抖动和不连续的笔划宽度。该混叠可使用位于系统存储器上的提示设备字体来减小。然后,保持实时的帧率对如何使用提示设备字体设置了几个限制,例如提示设备字体不能被动态缩放或旋转。
Microsoft在ClearType上的新近工作导致了针对LCD彩色显示器的空间处理,它包含了可寻址的彩色子像素,即分量的重复模式。Platt在“Optimal Filtering for Patterned Displays,”IEEE SignalProcessing Letters,7(7),pp.179-180,2000,中描述了一组针对每个彩色分量的感知最优的过滤器。在实际中,最优过滤器作为一组三置换的盒形过滤器来实现,每个针对一种颜色。
ClearType使用基于现有技术提示和覆盖的反混叠方法来确定每个像素的每个分量的亮度,因此具有上述所有缺点。相反地,我们的基于距离场的方法使用距离场来确定每个像素每个分量的亮度,并使用较少采样点来实现。在下面描述的我们的ADF反混叠方法可替换盒形过滤器以提供每个像素较少采样点的最优过滤器的更好的仿真。
反混叠
了解绘制字体中的外形失真需要对混叠有所了解。典型地,一个像素包含离散分量,例如在彩色打印机或显示器中的红绿蓝分量。在灰度设备中,该像素是单个离散分量。由于像素是离散的,绘制到输出设备本质上是一个采样过程。采样率依赖于设备的分辨率。除非采样率至少是源信号中最高(Nyquist)频率的两倍,采样信号呈现混叠。
诸如字形轮廓的边缘具有无穷大的频率分量。因此边缘不能用采样数据精确地表示。边缘的不充分采样导致了在运动图像中往往是沿着被采样边缘爬行的锯齿。如果源信号还包含诸如“m”的重复垂直笔划和“i”的单个垂直笔划的空间模式,它们的频率分量对于采样率来说过高,那么采样数据将呈现信息缺失,摩尔条纹和时间抖动。
为了避免混叠,输入信号必须被预过滤以去除在采样率允许之上的频率分量。大体上有两种预过滤的方法。
第一种被称为解析过滤。它在采样前对源信号的连续表示使用空间平均的某种形式。遗憾地是,解析过滤常常是不可能的,或者是因为源信号没有作为连续信号提供,这是图像处理的通常情况,或者是因为确定在过滤器占位内的信号的解析描述过于复杂。这是计算机图形学中的所有除了简单几何形状的情况,无疑是基于样条的轮廓的情况。
第二种方法被称为离散过滤。在该方法中,源信号通常以比目标比率更高的比率采样以获得超采样的图像。然后,离散过滤器被用来在把图像降采样为目标比率之前减小超采样图像中的高频。离散方法在计算机图形学中被称为规则超采样。
根据处理预算,硬件因素和关于输出图像中的对比度对平滑度的个人偏好可以使用不同的离散过滤器。通常用于绘制类型的盒形过滤器把超采样值的矩形阵列简单替换为它们的算术平均,一般被认为是信号处理界的低级过滤器。
在另一种方法中,自适应超采样把采样和过滤的可用资源集中在具有较高局部频率分量的图像区域上。最优自适应采样可从图像中的局部变化程度确定。然而,该技术的有效性受需要估计图像局部方差的限制,该处理的计算费用很大。
由高频模式的不充分规则采样引起的摩尔条纹对于人的视觉系统是特别排斥的。在一般的图像处理中,随机或抖动采样被用来解决该问题。对于随机采样,采样点稍微偏离其例行位置被随机放置。随机采样倾向于用高频噪声代替混叠的摩尔条纹,并已被证明在减小时间混叠上是非常有效的。
用基于距离的反混叠进行绘制
由字形边缘引入的无限大的频率分量是在现有技术字体绘制中引起混叠的主要成分。相反地,依照本发明通过使用2D距离场来表示2D对象,然后采样该2D距离场,由于这种表示是C0连续的,我们避免了这样的边界。作为替代,最大频率依赖于字形本身的空间模式,例如,‘m’的重复垂直笔划或‘i’的单个垂直笔划。
通过用它的2D距离场来表示字形,我们可以把解析预过滤器有效地用于该字形。如下所述的我们的针对绘制距离场的反混叠方法产生一个与传统解析预过滤器的输出不同的输出。
用距离场反混叠
图4显示了以图像顺序对表示410为二维距离场411的诸如字形的对象401进行反混叠的方法400。每个像素402可包含一个或多个分量404,典型地用于‘RGB’类型的输出设备的红蓝绿分量。该方法针对每个像素402的每个分量404使用一个或多个采样点。方法400提供自适应的基于距离的超采样,基于距离的自动提示和基于距离的网格适配。作为结果的反混叠像素亮度可作为图像的一部分在CRT或类似LCD的显示器上绘制。该方法对于绘制运动模糊特别有用。
在表示对象401的二维距离场411中的采样点407的集合403与每个像素402的每个分量404相关联420。距离(D)405从二维距离场411和该采样点集合403确定430。然后,距离405被映射440为该像素402该分量404的反混叠亮度(I)406。
如上所述,在优选实施例中,字形401用双二次ADF 411表示410。这使得在字体绘制过程中能够有效使用基于距离的反混叠。其它诸如二维距离映射,二维距离框架,包括专用单元的最优ADF和程序上的距离场的表示也可被使用。
对于图像中每个像素402的每个分量404,诸如叶单元的包含分量404的单元使用在2002年7月31号提交的名为“Method forTraversing Quadtrees,Octrees,and N-Dimensional Bitrees,”的U.S专利申请号10/209,302中描述的四叉树遍历方法进行定位,通过参考其全文在这里并入。尽管其它在本技术中已知的遍历方法可与我们的发明一起使用,上述方法是无比较的,因此可以有效执行。在分量404的距离从该单元的距离值重构并被映射440为反混叠亮度(I)406。
可以使用不同的映射,包括线性,Gaussian和S形函数。最优映射函数的选择是主观的。在一个实施例中,我们的映射是两个函数的组合。第一个函数如上所诉,第二个是对比度增强函数。这两个函数被合并用以把距离场(D)405映射440为分量404的反混叠亮度(I)406。
图5显示了作为距离502的函数的亮度501的线性映射500,例如[0,1]。该映射把距离转换为该像素每个分量的反混叠图像亮度。距离在对象内部为正,在对象外部为负。不同的截止值503和504影响边缘对比度和笔划宽度。对于显示类型,我们在(-0.75,0.75)像素的外部503和内部504过滤器截止值上获得了好的结果,对于正文类型是(-0.5,0.625)像素。
映射440可以用用户接口选择,这允许显示器制造商针对他们的显示器调整映射440。类似地,用户接口可在应用软件或操作系统层次上提供以使得每个用户能够根据他们个人的偏好优化映射440。
最优的基于距离的自适应超采样
上述的基于距离的反混叠方法减小了由字形边缘引起的混叠。然而,当竖笔宽度或字形部件间的间隔相对显示器的采样率太小时,混叠失真仍会发生。在这种情况下,我们采用如下所述的基于距离的自适应超采样进一步减小空间和时间混叠。
在优选实施例中,我们使用具有我们新的基于距离的自适应超采样的双二次ADF在现有技术基于轮廓的表示法和基于覆盖的自适应超采样方法之上提供重大的改进。由于ADF使用细节支配的采样,具有高的局部方差的距离场区域用较小的叶单元表示。因此,ADF四叉树的结构提供了实现最优的基于距离的自适应采样所需的局部方差的映射,克服了在如上所述的确定局部方差的现有技术自适应超采样反混叠方法中的困难。
对于图像中每个像素402的每个分量404,包含分量404的单元被定位,并且在该分量的过滤器半径r内的采样点407的集合403被关联到像素分量404。每个分量的采样点407(spc)的数目依赖于单元关于r的相对尺寸(cellSize)。在采样点407的采样距离被过滤以确定430单个加权平均距离405,该距离随后被映射440为该像素402该分量404的反混叠亮度406。
多种过滤器和采样策略是可能的。在优选实施例中,我们使用Gaussian过滤器的一般形式,用对每个采样点加权,其中d是从采样点到该像素分量的距离,而W则是用于该分量的权重的和。类似的结果可用盒形过滤器,锥形过滤器,负的叶片过滤器和Gaussian过滤器的其它形式来获得。
图6A-C显示了我们的采样策略。为了权值及权值和的有效计算,采样点407被放在靠近分量601的同心圆610内。我们使用是像素间间隔的1.3倍的过滤器半径r602,并且当cellSize>r时(图6A)以1spc,当r/2<cellSize≤r时(图6B)以5spc,当cellSize≤r/2时(图6C)以13spc进行采样。
除了同心圆,本发明可使用许多其它策略来关联采样点407和像素分量404。我们的方法对于精确的采样策略并不十分敏感。
如下所述的其它自适应采样策略把采样点放置在包含在过滤器半径r之内的所有单元的中心。该策略具有同样的好结果。
基于单元的反混叠
上述的距离场反混叠方法可使用基于扫描行的光栅化在软件中实现。可选择地,被分割成单元的距离场,例如双二次ADF或包含专用单元的最优ADF,可一个单元接一个单元,即以对象顺序进行反混叠。基于单元的绘制排除了用于定位包含该采样点的单元的树遍历,排除了用于计算单个单元内的距离和梯度的冗余机构,并减少了单元数据的重复检索,即存储器读取。
另外,由于绘制所需的单元可被表示为固定尺寸的完备单元的有序块,即单元内点的距离和梯度从该单元的距离值确定,我们的基于单元的方法可服从于硬件实现,使实时绘制成为可能。
图7显示了以对象顺序对表示710为二维距离场711的诸如字形的对象701进行反混叠的方法700。方法700提供了自适应的基于距离的超采样,基于距离的自动提示和基于距离的网格适配。作为结果的反混叠像素亮度可作为图形的一部分在CRT和类似LCD的显示器上绘制。该方法对于绘制运动模糊特别有用。我们可以在二维距离场711的单元以空间层次结构进行组织以减小所需的距离采样点数目的时候使用mip映射。
二维距离场711被分割成单元712。在我们使用双二次自适应采样距离场的优选实施例中,每个单元的尺寸依赖于该二维距离场的局部方差。每个单元包括用于重构该单元内的二维距离场的方法(M)713。包含待绘制距离场区域(虚线)722的一组单元721被定义720。
区域722被用来定位730与该区域相关联的一组像素731。在该组像素731中的每个像素的分量集合741被指定740。然后,反混叠亮度751针对每个像素的每个分量从该组单元中的距离确定。这里,距离从该组单元重构。随后该距离被映射为反混叠亮度,如上所述。
在一个实施例中,我们可以通过定位在该像素分量附近的在该组单元内的单个采样点来确定距离,并从该组单元重构在该单个采样点上的距离。在这个实施例中,二维距离场711可被表示为包含专用单元的最优ADF。
在我们的使用双二次自适应采样距离场的优选实施例中,该方法通过对比用于自适应的基于距离的超采样的过滤器半径小的单元进行特殊处理而被增强。由于小的单元出现在距离场中的高方差部分,靠近这些单元的像素内的距离可在把该距离映射为亮度之前被预过滤。
我们初始化元素的一个组合缓冲区,其中每个元素对应于该组像素中每个像素的一个分量。在该组单元中的每个单元可被独立处理。在优选实施例中,每个元素包含均被初始化为零的加权距离和累加权值。当单元被处理时,这些加权距离和累加权值在与位于单元内或单元中心的过滤器半径内的像素分量相对应的缓冲区元素中增加。
处理完所有单元后,加权距离用针对每个像素每个分量的累加权重归一化以产生随后被映射为反混叠分量亮度的距离。在优选实施例中,我们使用与上面描述相同的Gaussian权重和过滤器半径。
迄今描述的我们的基于单元的绘制往往处理该组单元中的每个叶单元,而不考虑每个单元关于过滤器半径的相对尺寸。理论上,这提供了最优的自适应的基于距离的超采样。实际上,ADF四叉树可作为mip映射使用以减小单元的数目。
ADF四叉树结构允许我们把小的叶单元替换为它们的祖先,有效地在某个预定单元尺寸上截短四叉树。只要该单元的尺寸小于等于像素间间隔的1/4,在自适应的基于距离的超采样结果中不存在视觉感知上的退化。这减小了用于绘制该区域的单元数目。
绘制表示为二维距离场的重叠对象
本发明提供了避开现有技术中的问题的用于绘制表示为二维距离场的重叠对象的方法和设备。特别地,不混合从基于覆盖的反混叠得到的彩色和亮度值,也不在绘制前把重叠对象合并成单个组合对象,本发明合并在针对像素分量的绘制过程中在需要时确定的距离值。组合距离随后被映射用以确定该像素分量的反混叠亮度。
图14A和14B显示了以图像顺序绘制对象集合1410的方法1400。参考图14A,该对象集合1410用二维距离场集合1430表示1420,每个对象有一个距离场,例如,距离场1431对应于对象1411,而距离场1433对应于对象1413。
如图14B所示,每个像素1404可包含一个或多个分量1406,对于RGB绘制通常是红绿蓝分量。方法1400确定像素1404的分量1406的反混叠亮度1402。采样点集合1441-1443与该像素分量1406相关联1440,在每个采样点集合和二维距离场集合1430中的每个距离场之间是一一对应的。例如,采样点集合1441对应距离场1431,而采样点集合1443对应距离场1433。
对应距离随后针对每个距离场1431-1433使用它的对应采样点集合1441-1443来确定,产生对应距离1451-1453。例如,对应距离1451针对距离场1431使用它的对应采样点集合1441来确定。
对应距离1451-1453随后被合并1460以确定组合距离1461。该组合距离1461随后被映射1470以确定像素1404的分量1406的反混叠亮度1402。
图15A,15B和15C显示了用于以对象顺序绘制对象集合1510的方法1500。参考图15A,该对象集合1510中的每个对象1511-1513用对应的二维距离场1521-1523表示1501。对应的二维距离场1521-1523组成了二维距离场集合1520。例如,距离场1521对应对象1511,而距离场1523对应对象1513。
参考图15B,二维距离场集合1520中的每个距离场1521-1523被分割1525成单元,其中每个单元与重构1531该单元内的二维距离场的方法相关联1530。
如图15C所示,要绘制对象集合1510的区域1545,一组像素1551被定位1550,并且针对该组像素1551中每个像素的分量集合1560被指定1555。注意该组像素1551中的每个像素可以包含一个或多个分量,对于RGB绘制通常是红绿蓝分量。方法1500针对该组像素1551中的每个像素的每个分量1561确定反混叠亮度1566。
针对二维距离场集合1520中的每个二维距离场1521-1523,与区域1545相关联的对应单元1541-1543集合被识别1540,例如,单元集合1541针对距离场1521被识别1540,而单元集合1543针对距离场1523被识别1540。
针对该组像素1551中每个像素的每个分量1561,反混叠亮度1566通过首先针对该分量1561使用对应的单元1541-1543集合来确定1570每个距离场的对应距离1571-1573来确定1565。例如,对于距离场1521,对应距离1571针对分量1561使用单元1541集合来确定1570。
对应距离场1571-1573随后被合并1575以确定一个组合距离1576。该组合距离1576随后被映射1580以产生该像素分量1561的反混叠亮度1566。
不同于通过混合或合并所绘对象的彩色或亮度值或通过合并基于覆盖的反混叠值来绘制重叠区域的现有技术,方法1400和1500合并距离场,因此减轻了现有技术表现出的彩色失真和混合失真。
不同于Perry等人的现有方法,方法1400和1500不在绘制前产生组合距离场用以表示组合对象。替代地,根据我们的本发敏发明,组合距离在绘制过程中根据需要针对像素分量通过合并为该分量测定的距离来确定。
合并1460对应距离1451-1453和合并1475对应距离1571-1573的方法有好几种。例如,使用针对距离场的内部正外部负的符号规定,合并可选取对应距离的最大值以产生对象的并集,或对应距离的最小值以产生对象的交集。其它合并方法包括选取差分,执行算术平均,或执行对应距离的隐性混合,仅以这些为例。
隐性混合可被用来使对象间的角变圆,而算术平均可被用来通过进一步减小所绘区域中的高频内容来提供额外的反混叠。更一般地,合并可以是任何算术或条件运算。另外,合并可使用程序或表格来确定组合距离。
使用纹理映射绘制基于单元的距离场
本发明可以使用纹理映射绘制表示诸如二维字形的对象的距离场,其中纹理映射组成了多阶段绘制管道中的一个阶段。我们首先提供绘制管道的每个阶段的概述,然后连同本发明的几个实施例一起描述不同阶段的详尽细节。
图16A和16B显示了依照本发明的用于绘制表示对象1603的距离场1602的方法1600。
如图16A所示,距离场1602被分割成单元集合1606,其中每个单元1604包括一组距离采样点1605和使用距离采样点1605重构单元1604内的距离场1602的方法。
表示对象1603的距离场1602的区域1601被定义。为了绘制该区域1601,我们从绘制管道中的第一阶段开始,然后按顺序进行后续阶段。
第一阶段从距离场1602的单元集合1606中选择1610源单元集合1611。选择1610使区域1601的绘制成为可能。例如,覆盖区域1601的源单元集合1611可被选择1610。
在图16B中,第二阶段把源单元集合1611中的每个源单元1612表示1620为在世界坐标系中定义的几何元素1621。每个几何元素1621和纹理映射1623相关联,其中纹理映射1623包括对应的源单元1612的距离采样点1605。
几何元素1621可被描述成四边形,三角形,多边形,一组构成具有弯曲边缘的形状的控制顶点,仅以这些为例。几何元素1621的描述通常被选择以与对应源单元1612的几何特征相匹配,虽然本发明并不限于该方法。
第三阶段把每个几何元素1621从世界坐标系变换1630为像素坐标系中的几何元素1631。执行该变换1630的方式有很多,如下所述。
第四阶段纹理映射1640每个几何元素1631以确定与该几何元素1631相关联的每个像素1643的每个分量1642的距离1641。纹理映射1640涉及光栅化几何元素1631以产生与几何元素1631相关联的像素1643,然后确定该像素1643的“颜色”。实际上,在本发明中,像素1643的颜色表示该像素1643分量1642的距离值1641。纹理映射1640使用存入纹理映射1623中的距离采样点1605用以针对与几何元素1631相关联的每个像素1643每个分量1642实现几何元素1631内的距离场1602的重构。
在绘制管道的第五和最后阶段,我们把每个像素1643的每个分量1642的距离1641映射1650为该像素1643分量1642的反混叠亮度1651。
多阶段绘制管道的各阶段可在中央处理器,应用程序专用集成电路,定函数图形硬件,可编程图形硬件及各种组合上实现,仅以这些为例。
参见Real-Time Rendering,Akenine-Moller and Haines,A KPeters,2002,ISBN 1-56881-182-9,可编程图形硬件允许我们的多阶段绘制管道中的变换1630,纹理映射1640和映射1650阶段由顶点或像素浓淡处理器控制。顶点浓淡处理器定义了在几何元素上运行以产生变换几何元素的程序。像素浓淡处理器接收光栅化像素,这些像素随后可在它们最终到达帧缓存之前被处理,例如彩色化。顶点和像素浓淡处理器提供了绘制对象时的极大的灵活性。
在本发明中,我们可以使用两种类型的浓淡处理器来实现我们的绘制管道的多个方面。例如,变换1630可由顶点浓淡处理器执行,纹理映射1640可由像素浓淡处理器执行,而映射1650可由像素浓淡处理器执行。
纹理映射1640能够执行多种内插方法以确定针对每个像素1643的每个分量1642的距离1641,例如双线性内插,三次线性内插,双二次内插,更高阶的诸如双三次内插,仅以这些为例。纹理映射1640或者近似针对每个像素1643的每个分量1642的距离1641,由此产生对象1603的较不忠实的绘制,或者精确测定针对每个像素1643的每个分量1642的距离1641。近似方法可以在针对源单元1612的重构方法过于复杂以至于不能实现或需要过多时间来执行的时候使用。
当多纹理单元可用时,纹理映射1640能够并行地独立确定每个像素1643的每个分量1642的距离1641,因此有效地绘制对象1603。
映射1650可使用一维纹理映射来确定针对每个像素1643的每个分量1642的反混叠亮度1651。该一维纹理映射可被用来近似一个过滤器函数。映射1650也可使用查找表或像素浓淡处理器来确定针对每个像素1643的每个分量1642的反混叠亮度1651。
在绘制表示多个对象的多个距离场时,或在绘制用距离场集合表示的组合字形时,距离场可以重叠,且必须被适当对待,参见上文。
图16C显示了包含本发明的方法1600的附加步骤以正确处理重叠情况的实施例。合并步骤1670在纹理映射1650之后执行。在该实施例中,我们针对每个像素1643的每个分量1642,合并1670由纹理映射1640确定的距离1661-1663,以确定组合距离1671。然后我们把每个像素1643的每个分量1642的组合距离1671映射为该像素1643分量1642的反混叠亮度1681。
不同于本发明,现有技术字体绘制不能使用硬件有效地绘制高质量的字形。现有技术提示由于具有执行流程的很多分支和复杂的数据结构,太复杂以至于不能使硬件成为有效解决方案。
尽管现有技术为了很多目的使用纹理映射,使用纹理映射依照本发明绘制表示对象的距离场是唯一的。另外,依照本发明的针对每个像素每个分量的距离值的独立和并行确定也是独创的。
不同于现有技术,我们的发明使用像素浓淡着色器重构单元内的距离场使得诸如距离场的角单元或两片断单元的专用单元的绘制成为可能。
使用逐级高速缓存系统结构进行绘制
图17显示了用于有效绘制表示为二维距离场的图形对象的系统1700。系统1700包括绘制管道1710,高速缓存管理器1720和逐级高速缓存1730。
管道1710包括彼此顺序连接的绘制阶段1711-1716。第一阶段1711作为输入接收绘制请求1701,而最后阶段1716输出显示图像1702。每个阶段的输出提供针对后续阶段的输入。
高速缓存管理器1720把管道1710连接到逐级高速缓存1730上,高速缓存管理器在管道和逐级高速缓存之间发送高速缓存元素。
逐级高速缓存1730包括预处理形状描述符高速缓存1731,距离场高速缓存1732,距离值高速缓存1733,反混叠亮度高速缓存1734和彩色化图像高速缓存1735。逐级高速缓存1731-1735在图17中被从最不完美,即最不完整的高速缓存元素到最完美,即最完整的高速缓存元素从左到右放置,因此,高速缓存1730被认为是“逐级的”。
每个高速缓存1731-1735包括针对输入到绘制管道1710中对应阶段的下一阶段以及针对对应阶段的输出的数据储备。管道的绘制阶段和数据储备之间的一一对应按常规用虚的双箭头1741-1745指出。这些阶段增加了经过管道的元素的完成级别,并且针对完成的每个级别有一个高速缓存。
使用逐级高速缓存系统操作进行绘制
首先,针对图形对象的绘制请求1701被产生。
其次,逐级高速缓存1730被高速缓存管理器1720查询1721以确定最能表示显示图像1702的最完整的高速缓存元素1722,例如可用于满足绘制请求的高速缓存类型1-5的元素。
第三,查询逐级高速缓存的结果,即最完整的高速缓存元素1722,被传送,也就是输送,到适当的绘制阶段,即包含最完整高速缓存元素1722的高速缓存的对应阶段的下一阶段,以完成该对象的绘制。如果没有高速缓存元素可用1723,那么绘制请求的处理在阶段1712中开始。
当每个绘制阶段完成处理后,该阶段的输出为了潜在的贮藏和稍后的再利用经由高速缓存管理器1720也被传送,即输送回逐级高速缓存1730。例如,阶段1716的输出作为高速缓存1735的输入被传送。
对逐级高速缓存1730中的高速缓存元素使用压缩方法增加了逐级高速缓存1730的有效尺寸,因此通过提供较大的高速缓存命中比率增加了管道1710的总效率。由于距离场的连续特性,距离场高速缓存1732和距离值高速缓存1733尤其易受压缩的影响。
有很多在该技术中众所周知的用于保存和定位在个体高速缓存1731-1735中的高速缓存元素的方式。一种这类方法是散列法,其中对译本从绘制请求1701中构建然后散列以产生指示潜在高速缓存元素的位置的索引。当绘制请求1701包含指定字样的字形时,该对译本可能包括针对字形的字符编码和针对字样的名称的逐位串接。
为了增加我们的逐级高速缓存1730的有效性,我们可使用最近最少使用,即LRU方法来管理高速缓存元素。在该算法中,最近最少使用的高速缓存元素在逐级高速缓存1730变满时被丢弃。然而,注意到我们的逐级高速缓存1730可使用针对高速缓存元素的不同内存管理方法,而不限于LRU方法是很重要的。
在该系统1700的另一个实施例中,逐级高速缓存1730中的高速缓存比绘制管道1710中的阶段少。在该实施例中,不是所有阶段都有一个对应的高速缓存。有时删减逐级高速缓存1730中的一个个体高速缓存是有利的,因为对应阶段非常有效,而在个体高速缓存中贮藏输出是不必要且浪费存储量的。另外,对应阶段的输出可能需要过多存储量来实现。
该领域技术人员很容易理解如何修改系统1700以包含各种绘制管道和各种逐级高速缓存来使绘制需求得以被满足。
处理像素分量
一个像素包含一个或多个分量。例如,位于典型的CRT或LCD彩色监视器上的像素包含红绿蓝分量。在我们的发明中,当像素包含多个分量时,它们可被独立对待,如上所述,或作为单个分量进行处理。当多个分量作为单个分量进行处理时,该像素的颜色和α值可从单个分量的反混叠亮度确定。
把多个分量当作单个分量处理的原因有两个。第一,它减少了绘制时间。第二,当多个分量不能被单独寻址时,或当个体分量的相对位置未知时,每个分量的单独对待是困难的。
当诸如LCD和OLED的显示设备具有可寻址的像素分量时,在该技术中众所周知的是独立处理多个分量能够增加设备的有效分辨率。我们的发明使用这种设备的这个特征来提供具有在现有技术之上的高质量的基于距离场的反混叠。
当在具有可寻址的像素分量的可选择的像素布局上绘制时,我们的发明具有在现有技术之上的许多优点。例如,我们可以使用每个像素分量单个距离采样点,并获得即使当现有技术使用每像素分量多个基于覆盖的采样点时,在现有技术之上的较高的质量。我们的方法本身在任何布局上足够快,而不需要像现有技术那样重复使用采样点。在现有技术中,采样点的再利用在许多可选择的像素布局上不能工作。另外,通过调整我们的诸如映射440的绘制参数,我们的方法减轻了现有技术的彩色边缘问题,并允许我们说明像素分量的不同特征,例如尺寸和亮度。
动画制作二维对象
图12显示了用于依照动画脚本1202把对象1201动画制作成帧序列的方法1200的流程图。动画脚本1202为帧序列中的每一帧指示该对象的状态,例如,位置,尺寸,方向和该对象的变形。该对象被表示成二维距离场。对象1201的姿态1211依照动画脚本1202针对帧序列1221中的每一针进行更新1210。对象1201使用更新的姿态1211和基于距离场的反混叠绘制方法1212进行绘制。
表示对象1201的二维距离场可从该对象的不同表示中获取,例如,该对象的轮廓描述或该对象的位图描述。
针对某一对象1201的姿态1211更新1210可通过对对象使用各种诸如刚体变换,自由变形,柔体撞击变形,层次设置方法,粒子模拟的操作以及改变绘制属性来实现。
当绘制1220该对象时,我们把表示对象的二维距离场中的一组采样点和帧序列1221中一帧内的像素分量相关联。通过从二维距离场和该组采样点确定距离,我们可以把距离映射为该像素分量的反混叠亮度。
在优选实施例中,我们把表示对象1201的二维距离场分割成单元,每个单元包括用于重构该单元内二维距离场的方法。为了在该实例中进行绘制1220,我们识别出表示包含待绘制二维距离场区域的对象1201的二维距离场的单元集合,并定位与该区域相关联的像素集合。针对该像素集合中每个像素的一组分量被指定。关于该像素每个分量的距离从单元集合中确定,并且该距离被映射为该像素分量的反混叠亮度以确定关于像素集合中每个像素每个分量的反混叠亮度。
基于距离的自动提示
标准字体表示法中的提示是费时的人工处理,在其中类型设计者和提示专家产生用于使个体字形与像素网格更好地适配的一组准则。好的提示在小的字号上处理被很好隔开的字形,具有好的对比度,并且在外形上一致。
这些准则提供:具有相同对比度分布,具有有最强烈的可能对比度的左侧和下侧边缘的垂直笔划;具有针对把可视结构传输到眼睛的充分对比度的对角线笔划和细小部分,字形的圆形部分;抱在一起,提供足够被人眼捕捉到的侧重点的衬线,参见Hersch et al.,“Perceptually Tuned Generation of Grayscale Fonts,”IEEE CG&A,Nov,pp.78-89,1995.
注意,现有技术过滤方法产生模糊字符,并为不同的字符部分分配不同的对比度分布,这就违反了类型设计的重要准则。为了克服这些限制,提示针对每种字体的每个字形被开发。现有技术提示方法有很多问题:它们对于开发是劳动密集型的,绘制缓慢,并且复杂,因而不可能硬件实现。
对于基于轮廓的字体,具有提示的绘制是一个三步过程。首先,字形的轮廓被缩放并调准到像素网格上。其次,该轮廓被修正以控制竖笔,横笔和衬线的对比度,并增加非常细的部分和弧线的厚度。第三,修改后的轮廓用过滤器进行跟随有降采样的超采样。
尽管如上所述的我们的无提示的基于距离的反混叠绘制方法比使用提示的现有技术字体绘制方法有利,众所周知,知觉提示可以在小的字号上改善阅读的舒适度。
因此,如图8所示,我们针对在小的点尺寸上绘制字形使用距离场来提供基于距离的自动提示。提示中的第一步810是把距离场缩放并调准到像素或像素分量网格。这可从给定或获得的诸如大写字母高度,x高度和基线位置的字体测度来自动完成。字体测度可使用距离场的梯度从距离场自动获得用以检测诸如大写字母高度的特定字体测度。步骤810包括诸如变形的距离场的常规变换以使能够正确调准到像素或像素分量网格。
在使用了这种形式的网格适配之后,我们使用距离场及其梯度场来提供知觉提示。
在一个实施例中,距离场的梯度方向被用来检测820在对象左侧和下侧边缘上的像素。通过涂黑830这些像素并使在对立边缘上的像素变亮840,我们在左侧和下侧边缘上获得了更高的对比度而无需改变外表上的笔划宽度。这可通过减小和增加对应像素亮度来实现。
在另一个实施例中,梯度场被用来提供针对对角笔划和细小弧线的更好的对比度。我们注意到当像素位于或接近字形的细小区域时,该像素两侧的邻居具有相反的梯度方向,即它们的点积是负的。通过检测梯度方向上的突然变化,我们可以涂黑850在这些细小区域上的像素。
这里只有两个如何使用距离场自动提供知觉提示的例子。距离场也可被用来提供最优的字符间隔和统一的笔划宽度。
排版字形
排版在给定诸如轮廓,该轮廓的起始位置以及针对该字形的诸如设置宽度和字距调整对的相关字体测度的输入数据的情况下确定字形位置。我们把字形的走格定义为到下一字体的偏置,例如向量;走格通常包括字形的设置宽度,设置宽度和字距调整值,或由用户定义,由轮廓指定或从字体测度得到的众多其它组合。走格考虑了在直线,Bezier曲线,或其它由布局指定的复杂路径上的排版。“TEX andMETAFONT:New Directions in Typesetting”提供了排版的好的综述。
排版的典型应用包括确定单词中字母的位置以及确定段落中的行中断。排版在确定字形位置时考虑了字形的基本表示。例如,位图字体不能被放置在像素的小数部分,但是轮廓字体可以。轮廓字体常常被提示,这导致了字形位置的调整。
排版表示为二维距离场的字形
有很多种方式来排版表示为二维距离场的字形。
在一个实施例中,我们关闭基于距离的自动提示以使当用排版方法指示时字形位置的准确放置成为可能。
在另一个实施例中,我们使用基于距离的自动提示来进行网格适配,即把表示每个字形的距离场调准到像素网格上,从而近似当使用排版方法指示时字形位置到像素小数部分的放置。
在另一个实施例中,为了获得更高的精度,我们使用基于距离的自动提示来进行网格适配,即把表示每个字形的距离场调准到像素网格的分量上,从而近似当使用排版方法指示时字形位置到像素更小部分的放置。
在另一个实施例中,如图18A-18C所示,方法1800排版一个字形集合1801。该字形集合1801可以表示,例如单词的字母或文档的字母。当前字形1802从字形集合1801中被选择1805,例如,单词的第一个字母被选择。当前位置1803也被选择1810。选择1810可由用户通过诸如鼠标的输入设备选择或从字形集合1801的布局得到。
终止条件1804被测试1815,例如,该单词的所有字母被排版了吗,如果满足,方法1800停止。如果终止条件1804不满足1850,那么方法1800重复确定下一字形1806的下一位置1809,例如,单词中的下一字母,其中下一字母1806从字形集合1801中选择1820。
选择1820之后,当前字形1802被表示1825为二维距离场1807。然后,下一位置1809使用当前位置1803,当前字形1802的走格1808和二维距离场1807的调准1835来确定1830,例如,下一位置1809被确定为距离当前位置1803的走格1808的偏置,其中该偏置根据调准1835进行调整。
最后,当前字形1802被更新1840为下一字形1806,而当前位置1803则被更新1845为下一位置1809以为下次迭代做准备。
调准1835可以是当前字形1802的绘制结果,或者可以不通过绘制确定。注意,调准1835依赖于所选的二维距离场1807的等值线,因为所选的等值线可以改变当前字形1802的尺寸。
在另一个实施例中,下一位置1809使用当前位置1803,当前字形1802的走格1808和所选的二维距离场1807的等值线来确定。例如,下一位置1809被确定为距离当前位置1803的走格1808的偏置,其中该偏置根据所选等值线进行调整。
零等值线可以导致无调整。负的等值线可以导致距离当前位置1803的较大偏置,因为负的等值线增加了当前字形1802的尺寸。正的等值线可以导致距离当前位置1803的较小偏置,因为正的等值线减小了当前字形1802的尺寸。
产生并编辑字体
设计字体的基本方法有两种。第一种是手动。在那里,字形用手绘画,数字化,随后轮廓被适配到数字化的位图上。第二种是用计算机。
在后一种情况中,三种类型的工具是可用的。直接可视工具可被用于曲线处理。程序设计工具通过执行程序指令构建字体形状。该程序或者定义形状的轮廓并填充它,或者定义被具有许多诸如几何特性和方向的属性的笔尖划过的路径。基于部件的设计工具允许设计者建立诸如竖笔,弧线和其它重复出现的形状的部件,然后合并这些部件以产生字形。
我们使用雕刻编辑器来提供基于笔划的设计。这是如何在2001年3月16号提交的U.S.专利申请号09/810,260,“System and Methodfor Sculpting Digital Models,”中所描述的3D雕刻的2D对应物,在这里作为参考并入。笔划可交互式地完成或者它可照原本绘制以仿效可编程的设计工具。
使用与Adobe Illustrator中类似的Bezier曲线处理工具的基于曲线的设计也可被使用。基于曲线的设计可以和用来把轮廓转换为距离场,把距离场转换为轮廓的方法相结合以提供设计范例之间的无缝接口。
基于部件的设计在隐性距离场上使用CSG和混合操作。这允许部件被分别设计,并在编辑或绘制过程中合并。
我们也提供了用于从模拟和数字字体母片自动产生ADF的方法。
对于基于部件的设计,我们的字体编辑器提供了使用四叉树处理有效表达和旋转ADF以模拟在字形中普遍存在的对称性的能力。附加的特征包括ADF缩放,变换和诸如CSG和混合的用于合并多个ADF的操作。
对于基于笔划的设计,我们提供了具有几何外形的雕刻工具以仿效笔尖。模拟笔尖的方向和尺寸可沿笔划变化以摹拟书法。
图9显示了用于从笔划产生二维距离场931的方法900。我们在笔划过程中采样笔的状态,笔的状态包括在笔划过程中笔的位置。笔的状态也可以包括方向和几何特征。从笔状态的采样点901,我们产生910沿笔划的笔状态的有序列表911。然后,一组边界描述符921从笔状态的有序列表中产生920。最后,我们从该组边界描述符921产生930二维距离场931。
在优选实施例中,边界描述符921是诸如三次Bezier曲线的曲线。
在优选实施例中,我们使用曲线适配过程以用户定义的精度把G2连续曲线的最小集合适配到笔的路径上。我们也使用工具尺寸和方向从该路径产生偏置点的两个附加有序列表,并把曲线适配到这些偏置点上以产生笔划轮廓。为了有效处理,轮廓曲线以空间层次结构放置。我们使用平铺发生器从该层次结构产生二维ADF,参见在2001年3月16号提交的U.S.专利申请号09/810,983,在这里并入作为参考。
到轮廓的最小距离使用Bezier切片有效地计算。笔划被转换为ADF,而没有用户可感知的延时。对于曲线处理,我们提供Bezier曲线编辑器。
如图11所示,我们也提供了把距离场转换为诸如Bezier曲线的边界描述符的能力,以提供在所有三种设计范例之间的无缝接口。
在优选实施例中,我们使用双二次ADF来产生边界描述符,其中该转换使用针对快速领域搜索的ADF层次结构遍历叶单元,产生沿着该ADF的零值等值线的点的有序列表,随后如参考下面图11所描述的那样适配曲线。
与在其中边界描述符误差从点的列表计算的现有技术相反,我们从距离场直接计算边界描述符的误差。我们特别关注锐利的角。我们的方法足够快,可允许用户在范例之间以不可察觉的延时进行无缝切换。
图11显示了用于把二维距离场1101转换为一组边界描述符1131的方法1100。首先,我们选择1110该二维距离场1101的一条等值线1111,例如,具有零值或少许偏置的距离。
接着,我们从等值线1111和二维距离场1101产生1120点的有序列表1121。在我们的使用双二次自适应采样距离场的优选实施例中,该步骤使用邻域搜索技术顺序访问自适应采样距离场1101的邻近单元。该搜索技术使用自适应采样距离场1101的空间层次结构以沿着等值线1111有效定位下一邻域。
在另一实施例中,我们通过在ADF 1101中选择边界单元,在每个边界单元播下一组有序点,然后使用ADF 1101的距离场和梯度场把每个点移向ADF 1101的等值线1111来产生1120点的有序列表1121。
然后,我们初始化1130一组边界描述符1131以适配点的有序列表1121。边界描述符1131通过连接点的有序列表1121的邻近点来初始化1130以形成构成初始边界描述符1131的线段集合。
在另一个实施例中,我们通过定位角点,把点的有序列表细分成由角点定界的片段,并确定片段边界描述符以适配每个片段来初始化1130一组边界描述符1131。片段边界描述符的并集构成了初始边界描述符1131。
角点可通过测量从距离场确定的曲率来定位。在其中距离场是双二次ADF的优选实施例中,高曲率的区域用ADF中的小单元表示,因此角点可通过使用ADF的单元尺寸来定位。
一旦边界描述符1131被初始化1130,该边界描述符1131被更新1140。更新1140通过重构距离场并测量边界描述符到等值线的平均或最大偏差来确定针对每个边界描述符的误差。
边界描述符1131被更新1140直到针对每个边界描述符的误差可以接受,或预定时间总量已经过去,或边界描述符1131的集合的势最小。
为了合并以非数字形式,即模拟母片,或以类似位图的数字形式,即数字母片,保存的字体的现有遗产,我们的编辑系统提供了用于从高分辨率的二值位图上产生ADF的方法。
模拟母片首先被扫描用以在至少比目标ADF分辨率高四倍的分辨率上产生二值数字母片,例如,4096×4096的数字母片对于现今的显示分辨率和显示尺寸是足够的。精确的欧几里德距离变换随后被应用于位图以产生表示字形的规则采样的距离场。
然后,我们使用平铺发生器从这个规则采样的距离场中产生ADF。在2GHZ的Pentium IV处理器上从位图到ADF的转换需要~10秒/字形。
为了从字形的现有现有技术描述符转换到用一组边界描述符描述字形的距离场,我们使用参考图10描述的方法。
产生和绘制基于部件的字形
本发明提供了用于产生和绘制组合字形的方法。不同于现有技术方法,它们用轮廓描述符或笔划骨架表示部件,即元素,并且或者在绘制前把元素合并为单个形状描述符,或者光栅化每个元素并合并反混叠亮度或覆盖值,本发明把组合字形的元素表示为二维距离场,并使用这些二维距离场绘制该组合字形。
在优选实施例中,绘制使用二维距离场合并针对像素分量确定的距离,然后把组合距离映射为针对该像素分量的反混叠亮度。通过合并距离值而不是反混叠亮度或覆盖值,本发明减轻了现有技术表现出的彩色失真和混合失真。
不同于Perry等人的现有方法,本发明不在绘制之前产生组合距离场以表示组合字形。替代地,依照我们的发明,与该像素分量相关联的组合距离通过合并从每个元素确定的距离在绘制过程中在需要时确定。
图19A和19B显示了用于产生组合字形1911并以图像顺序绘制该组合字形1911的区域1941,产生绘制区域1943的方法1900。组合字形1911首先用元素集合1901定义1910。二维距离场集合1930随后使用该元素集合1901产生1920以使得组合字形1911用该二维距离场集合1930中的距离场1931-1933的组合来表示。组合字形1911的区域1941使用该二维距离场集合1930进行绘制1940。
图19C显示了针对方法1900的绘制1940的优选实施例。区域1941中的每个像素1944可以包含一个或多个分量1946,对于RGB绘制通常是红绿蓝分量。绘制1940针对区域1941中每个元素1944的每个分量1946确定一个反混叠亮度1942。
采样点的集合1951-1953与该像素分量1946相关联,在每个采样点集合和二维距离场集合1930中的每个距离场之间是一一对应。例如,采样点集合1951对应距离场1931,而采样点集合1953对应距离场1933。
对应距离随后使用它的对应采用点集合1951-1953针对每个距离场1931-1933确定1960,产生对应距离1961-1963。例如,对应距离1961使用它的对应采用点集合1951针对距离场1931确定1960。
对应距离1961-1963随后被合并1970以确定组合距离1971。该组合距离1971随后被映射1980以确定该像素1944分量1946的反混叠亮度1942。
图20A和20B显示了用于产生组合字形2006并以对象顺序绘制该组合字形2006的区域2036,产生绘制区域2037的方法2000。组合字形2006首先用元素集合2001定义2005。二维距离场集合2020随后使用该元素集合2001产生2010以使得组合字形2006用二维距离场集合2020中的距离场2021-2023的组合来表示。
二维距离场集合2020中的每个距离场2021-2023被分割2025成单元,其中每个单元与用于重构2031该单元内的二维距离场的方法相关联2030。组合字形2006的区域2036随后使用该二维距离场集合2020进行绘制2035。
图20C和20D显示了针对方法2000的绘制2035的优选实施例。为了绘制组合字形2006的区域2036,一组像素2046从区域2036中被定位,并且针对该组像素2036中每个像素的分量集合2055被指定2050。注意该组像素2046中的每个像素可以包含一个或多个分量,对于RGB绘制通常是红绿蓝分量。
绘制2035针对该组像素2046中的每个像素的每个分量2056确定反混叠亮度2061。
针对二维距离场集合2020中的每个二维距离场2021-2023,与区域2036相关联的对应单元集合2041-2043被识别2040,例如,单元集合2041针对距离场2021被识别2040,而单元集合2043针对距离场2023被识别2040。
针对该组像素2046中的每个像素的每个分量2056,反混叠亮度2061通过首先使用对应单元集合2041-2043为该分量2056确定2070针对每个距离场2021-2023的对应距离2071-2073来确定2060。例如,对应距离2071使用单元集合2041为分量2056针对距离场2021被确定2070。
对应距离2071-2073随后被合并2075以确定组合距离2076。该组合距离2076随后被映射2080以确定该像素分量2056的反混叠亮度2061。
方法1900的组合字形1911的元素1901和方法2000的组合字形2006的元素2001具有多种表示法。例如,它们可用一维和二维形状描述符表示,例如笔划,轮廓,偏旁,笔划偏旁,路经和用户绘画的曲线,笔划和路径。元素可用距离场表示,例如距离映射,自适应采样的距离场,用于产生距离的程序和距离函数。元素本身可以是诸如第一形状描述符和第二形状描述符的隐性混合的合成体,或具有偏置描述符的骨架。
元素1901可使用许多方法定义1910,同时元素2001也可使用许多方法定义2005。例如定义可使用诸如自动形状检测,形状匹配和骨架化的程序自动执行。定义可由用户交互执行或由用户指导用于定义元素的程序半自动地执行。
定义1910和2005可从表示组合字形的距离场执行。例如,元素可通过在距离场上执行基于距离的自动形状检测,形状匹配和骨架化来定义。另外,定义可首先确定针对一个元素的形状描述符,然后确定针对形状描述符的距离函数以定义该元素。
在距离场集合1930和2020中的距离场可被表示为自适应采样的距离场,存入存储器中的距离集合,或用过程表示,仅以这些为例。
几种方法可被用来在方法1900中合并1970对于距离1961-1963,以及在方法2000中合并2075对于距离2071-2073。例如,针对距离场使用内部正,外部负的符号转换,合并可选取对于距离的最大值来产生对象的并集,或选取对于距离的最小值来产生对象的交集。
其它合并方法包括选取差分,执行算数平均,或执行对应距离的隐性混合,仅以这些为例。隐性混合可被用来使对象间的角变圆,而算术平均可被用来通过进一步减小所绘区域中的高频内容来提供额外的反混叠。更一般地,合并可以是任何算术或条件运算。另外,合并可使用程序或表格来确定组合距离。
针对活动版面的计算量减小
我们的ADF字形框架的距离场和空间层次结构属性也可被用于诸如字形,公司标识或任何2D形状的2D对象的计算机仿真。例如,两个属性都可被用于碰撞检测和避免,计算互相渗透的物体之间的力,以及模拟柔体变形。
使用有符号距离场的层次设置方法可被用来模拟诸如融化和流体动力的多种效果。ADF是一种紧致的隐性表示,它可被有效查询以计算距离值和梯度,上面所列方法所需的两种重要计算。
相反,从移动或变形的轮廓确定距离值和梯度对于实时交互在软件中是不可实现的,参见Hoff el al.,“Fast and Simple 2D GeometricProximity Queries Using Graphics Hardware,”Proc.Interactive 3DGraphics’01,2001.为了变形用线段近似的曲线,Hoff等人使用图形软件在苍蝇上产生规则采样的2D距离场。
距离场的隐性特性允许复杂的拓扑变化,例如用基于轮廓的字体很难模拟的表面偏移。另外,距离场可被用来提供动态对象的非真实感绘制以增加艺术效果。
本发明的效果
本发明提供了用于表示,绘制,编辑,处理,制作动画字符字形,公司标识或任何二维对象的新框架。
在优选实施例中,本发明使用距离场表示二维对象。本发明包括用于产生包含双二次ADF和具有专用单元的ADF的距离场的不同示例的方法。我们的方法提供了在现有技术之上在存储需求量上的大幅减小和在精度上的大幅改善。
我们的基于距离的反混叠绘制方法相比在现有技术中使用的方法提供了更好且更有效的反混叠。
我们的方法还提供了针对基于距离的自动提示,基于距离的网格适配,产生和绘制基于笔划和基于偏旁的组合字形,排版字形,统一三种通用数字字体设计范例以及产生针对活动版面的各种特殊效果的计算量的减小。
我们的框架提供了很多优点:不需要使用劳动密集型的手工提示即使在非常小的字体尺寸下的高可读性的类型;针对具有多种并且有时候很复杂的像素分量排列的诸如OLED的平板显示器的非并行的适应性;使交互用户能够针对增强观看舒适度和用户优选项调节类型的绘制参数的唯一控制;直接在硅片上实现,以及同时在定函数图形硬件和可编程图形硬件上实现的计算完全的绘制管道;以及对诸如基于画笔的输入的先进应用的支持。
尽管本发明通过优选实施例的示例的方式被描述,需要了解的是许多其它适配和修改可在本发明的精神和范围内进行。因此,所附的权利要求的目的是覆盖在本发明的真实精神和范围内的所有这些变化和修改。
Claims (21)
1.一种用于存储表示区域中的二维对象的距离场的方法,包括下列步骤:
定义单元类型集合;
产生针对该区域的单元集合的配置,每个单元具有由所述单元类型集合定义的特定单元类型和用于重构该单元内的距离场的方法;
根据表示所述对象的形状描述符、所述区域和所述单元类型集合,修改所述单元集合的配置,直到达到针对该区域的单元集合的最优配置;以及
将所述最优配置存入存储器中以产生基于单元的距离场。
2.根据权利要求1的方法,其中,所述修改包括向所述单元集合的配置中添加单元。
3.根据权利要求1的方法,其中,所述修改包括从所述单元集合的配置中删除单元。
4.根据权利要求1的方法,其中,所述修改包括改变特定单元的属性。
5.根据权利要求1至4中任一项的方法,其中,所述单元集合的配置棋盘形布置所述区域。
6.根据权利要求1至4中任一项的方法,其中,所述单元集合的配置中的单元重叠。
7.根据权利要求1至4中任一项的方法,其中,所述单元类型集合中的特定单元类型是两片段单元类型。
8.根据权利要求5的方法,其中,所述单元类型集合中的特定单元类型是两片段单元类型。
9.根据权利要求6的方法,其中,所述单元类型集合中的特定单元类型是两片段单元类型。
10.根据权利要求1至4中任一项的方法,其中,所述单元类型集合中的特定单元类型是角单元类型。
11.根据权利要求5的方法,其中,所述单元类型集合中的特定单元类型是角单元类型。
12.根据权利要求6的方法,其中,所述单元类型集合中的特定单元类型是角单元类型。
13.根据权利要求1至4中任一项的方法,其中,所述用于重构的方法包括双二次重构方法。
14.根据权利要求5的方法,其中,所述用于重构的方法包括双二次重构方法。
15.根据权利要求6的方法,其中,所述用于重构的方法包括双二次重构方法。
16.根据权利要求1至4中任一项的方法,其中,所述用于重构的方法包括双线性重构方法。
17.根据权利要求5的方法,其中,所述用于重构的方法包括双线性重构方法。
18.根据权利要求6的方法,其中,所述用于重构的方法包括双线性重构方法。
19.根据权利要求1至4中任一项的方法,其中,所述单元集合的最优配置最小化所述距离场的尺寸。
20.根据权利要求1至4中任一项的方法,其中,所述单元集合的最优配置最小化绘制所述距离场所需的时间。
21.根据权利要求1至4中任一项的方法,其中,所述单元集合的最优配置最大化所述距离场绘制的质量度量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/802,233 | 2004-03-16 | ||
US10/802,233 US7006108B2 (en) | 2003-03-25 | 2004-03-16 | Method for generating a composite glyph and rendering a region of the composite glyph in image-order |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800110994A Division CN1998023A (zh) | 2004-03-16 | 2005-03-14 | 用于绘制组合字形的区域的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101702309A CN101702309A (zh) | 2010-05-05 |
CN101702309B true CN101702309B (zh) | 2013-04-17 |
Family
ID=34962345
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800110994A Pending CN1998023A (zh) | 2004-03-16 | 2005-03-14 | 用于绘制组合字形的区域的方法 |
CN200910140940XA Active CN101702309B (zh) | 2004-03-16 | 2005-03-14 | 用于绘制组合字形的区域的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800110994A Pending CN1998023A (zh) | 2004-03-16 | 2005-03-14 | 用于绘制组合字形的区域的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7006108B2 (zh) |
EP (3) | EP2031563B1 (zh) |
JP (1) | JP4762901B2 (zh) |
CN (2) | CN1998023A (zh) |
WO (1) | WO2005088550A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7916144B2 (en) * | 2005-07-13 | 2011-03-29 | Siemens Medical Solutions Usa, Inc. | High speed image reconstruction for k-space trajectory data using graphic processing unit (GPU) |
US8520007B2 (en) * | 2008-01-15 | 2013-08-27 | Mitsubishi Electronic Corporation | Graphic drawing device and graphic drawing method |
JP5183286B2 (ja) * | 2008-04-15 | 2013-04-17 | 三菱電機株式会社 | 文字表示装置 |
US20100013854A1 (en) * | 2008-07-18 | 2010-01-21 | Microsoft Corporation | Gpu bezier path rasterization |
US8207984B2 (en) * | 2008-07-21 | 2012-06-26 | Matthew John Kuhns | Method and system for typesetting with multiple-color characters using layer fonts |
US8427509B2 (en) * | 2008-12-31 | 2013-04-23 | Mitsubishi Electric Research Laboratories, Inc. | Method for embedding messages into documents using distance fields |
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 |
CN101807290B (zh) * | 2010-03-26 | 2011-12-07 | 浙江大学 | 二维卡通角色形变方法 |
JP5323251B2 (ja) * | 2010-03-30 | 2013-10-23 | 三菱電機株式会社 | アニメーション表示装置 |
US8947438B2 (en) | 2011-08-01 | 2015-02-03 | Microsoft Corporation | Reducing font instructions |
US9245361B2 (en) | 2011-09-01 | 2016-01-26 | Microsoft Technology Licensing, Llc | Consolidating glyphs of a font |
CN103177709B (zh) * | 2011-12-20 | 2015-03-11 | 北大方正集团有限公司 | 字符显示方法和装置 |
WO2014174569A1 (ja) * | 2013-04-22 | 2014-10-30 | 三菱電機株式会社 | フォント描画装置 |
US20150062140A1 (en) * | 2013-08-29 | 2015-03-05 | Monotype Imaging Inc. | Dynamically Adjustable Distance Fields for Adaptive Rendering |
KR102178258B1 (ko) * | 2013-09-27 | 2020-11-12 | 삼성전자주식회사 | 디스플레이 장치 및 이의 글자 효과 제공 방법 |
US9224196B2 (en) | 2014-03-12 | 2015-12-29 | ClearMark Systems, LLC | System and method for authentication |
CN106683189B (zh) * | 2016-11-29 | 2019-09-27 | 浙江科澜信息技术有限公司 | 一种在三维场景中渲染文字的方法 |
US11030937B2 (en) | 2019-04-24 | 2021-06-08 | Glenfly Technology Co., Ltd. | Sub-pixel rendering method and device |
CN111105500B (zh) * | 2019-10-31 | 2023-09-22 | 青岛小鸟看看科技有限公司 | 虚拟现实场景下的安全区域绘制方法、装置和虚拟现实系统 |
CN114820836A (zh) * | 2021-01-28 | 2022-07-29 | 北京字跳网络技术有限公司 | 有向距离场图像、文字效果图像生成方法、设备及介质 |
CN114820834A (zh) * | 2021-01-28 | 2022-07-29 | 北京字跳网络技术有限公司 | 一种效果处理方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5402337A (en) * | 1991-07-24 | 1995-03-28 | Kabushiki Kaisha Toshiba | Method and apparatus for constructing three-dimensional surface shading image display |
CN1155715A (zh) * | 1995-10-06 | 1997-07-30 | 任天堂株式会社 | 轮廓边缘的去混叠 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542036A (en) * | 1994-07-05 | 1996-07-30 | General Electric Company | Implicit modeling of swept volumes and swept surfaces |
JPH09134157A (ja) * | 1995-11-09 | 1997-05-20 | Fujitsu Ltd | ヒント付け方法及びフォントファイル構成方法 |
US5875040A (en) * | 1995-12-04 | 1999-02-23 | Eastman Kodak Company | Gradient based method for providing values for unknown pixels in a digital image |
JP3780103B2 (ja) * | 1997-09-03 | 2006-05-31 | キヤノン株式会社 | 情報処理装置、情報処理方法、記憶媒体、及び、印刷システム |
EP0902378A3 (en) * | 1997-09-15 | 2003-07-16 | Canon Kabushiki Kaisha | A font architecture and creation tool for producing richer text |
US6329977B1 (en) * | 1998-03-10 | 2001-12-11 | Compaq Computer Corporation | Pre-filtered antialiased lines using distance functions |
JP4434355B2 (ja) * | 1998-03-27 | 2010-03-17 | キヤノン株式会社 | アニメ―ションフォント作成装置 |
JPH11306366A (ja) * | 1998-04-22 | 1999-11-05 | Sony Corp | グラフィック演算装置およびその方法 |
US6188385B1 (en) | 1998-10-07 | 2001-02-13 | Microsoft Corporation | Method and apparatus for displaying images such as text |
US6721446B1 (en) * | 1999-04-26 | 2004-04-13 | Adobe Systems Incorporated | Identifying intrinsic pixel colors in a region of uncertain pixels |
US6700672B1 (en) * | 1999-07-30 | 2004-03-02 | Mitsubishi Electric Research Labs, Inc. | Anti-aliasing with line samples |
US6282327B1 (en) * | 1999-07-30 | 2001-08-28 | Microsoft Corporation | Maintaining advance widths of existing characters that have been resolution enhanced |
US6396492B1 (en) | 1999-08-06 | 2002-05-28 | Mitsubishi Electric Research Laboratories, Inc | Detail-directed hierarchical distance fields |
US6603484B1 (en) * | 1999-08-06 | 2003-08-05 | Mitsubishi Electric Research Laboratories, Inc. | Sculpting objects using detail-directed hierarchical distance fields |
JP2002169533A (ja) * | 2000-12-04 | 2002-06-14 | Ricoh Co Ltd | フォントの圧縮方法 |
US7113617B2 (en) * | 2000-12-12 | 2006-09-26 | Hewlett-Packard Development Company, L.P. | Method of computing sub-pixel Euclidean distance maps |
US6954203B2 (en) * | 2001-03-16 | 2005-10-11 | Mitsubishi Electric Research Labs, Inc. | Modeling and combining multiple graphics objects |
US7002570B2 (en) * | 2001-03-16 | 2006-02-21 | Mitsubishi Electric Research Laboratories, Inc. | System and method for generating adaptively sampled distance fields with bounded distance trees |
US7184066B2 (en) | 2001-05-09 | 2007-02-27 | Clairvoyante, Inc | Methods and systems for sub-pixel rendering with adaptive filtering |
JP2003295047A (ja) * | 2002-04-05 | 2003-10-15 | Canon Inc | 撮像装置および撮像システム |
US7002598B2 (en) | 2003-03-25 | 2006-02-21 | Mitsubishi Electric Research Labs., Inc. | Method for generating a composite glyph and rendering a region of the composite glyph in object-order |
US6982724B2 (en) * | 2003-03-25 | 2006-01-03 | Mitsubishi Electric Research Labs, Inc. | Method for antialiasing an object represented as a two-dimensional distance field in object-order |
US6933952B2 (en) * | 2003-03-25 | 2005-08-23 | Mitsubishi Electric Research Labs, Inc. | Method for antialiasing a set of objects represented as a set of two-dimensional distance fields in object-order |
-
2004
- 2004-03-16 US US10/802,233 patent/US7006108B2/en not_active Expired - Lifetime
-
2005
- 2005-03-14 CN CNA2005800110994A patent/CN1998023A/zh active Pending
- 2005-03-14 EP EP08020074.4A patent/EP2031563B1/en active Active
- 2005-03-14 CN CN200910140940XA patent/CN101702309B/zh active Active
- 2005-03-14 JP JP2006529403A patent/JP4762901B2/ja active Active
- 2005-03-14 WO PCT/JP2005/004889 patent/WO2005088550A1/en active Application Filing
- 2005-03-14 EP EP09000373.2A patent/EP2043048B1/en active Active
- 2005-03-14 EP EP05721076A patent/EP1725988A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5402337A (en) * | 1991-07-24 | 1995-03-28 | Kabushiki Kaisha Toshiba | Method and apparatus for constructing three-dimensional surface shading image display |
CN1155715A (zh) * | 1995-10-06 | 1997-07-30 | 任天堂株式会社 | 轮廓边缘的去混叠 |
Also Published As
Publication number | Publication date |
---|---|
EP2043048A3 (en) | 2009-08-05 |
EP2031563A3 (en) | 2009-08-05 |
EP2043048A2 (en) | 2009-04-01 |
EP2043048B1 (en) | 2014-09-17 |
CN1998023A (zh) | 2007-07-11 |
JP4762901B2 (ja) | 2011-08-31 |
EP1725988A1 (en) | 2006-11-29 |
US7006108B2 (en) | 2006-02-28 |
US20040189663A1 (en) | 2004-09-30 |
CN101702309A (zh) | 2010-05-05 |
JP2007529788A (ja) | 2007-10-25 |
EP2031563B1 (en) | 2014-11-12 |
WO2005088550A1 (en) | 2005-09-22 |
EP2031563A2 (en) | 2009-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
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 | |
US6982724B2 (en) | Method for antialiasing an object represented as a two-dimensional distance field in object-order | |
CN100401370C (zh) | 一种确定象素成分的反锯齿强度的方法及装置 | |
US7042458B2 (en) | Methods for generating an adaptively sampled distance field of an object with specialized cells | |
US6933952B2 (en) | Method for antialiasing a set of objects represented as a set of two-dimensional distance fields in object-order | |
US7190367B2 (en) | Method, apparatus, and system for rendering using a progressive cache | |
US7030881B2 (en) | Method for converting two-dimensional objects to distance fields | |
CN1698071A (zh) | 在与二维对象的拐角相关联的单元内生成一个二维距离场的方法 | |
CN1698073A (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 | |
US20040189638A1 (en) | Method for converting a two-dimensional distance field to a set of boundary descriptors | |
FIELD | US PATENT DOCUMENTS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |