CN101911123B - 图形描绘装置以及图形描绘方法 - Google Patents
图形描绘装置以及图形描绘方法 Download PDFInfo
- Publication number
- CN101911123B CN101911123B CN2008801248219A CN200880124821A CN101911123B CN 101911123 B CN101911123 B CN 101911123B CN 2008801248219 A CN2008801248219 A CN 2008801248219A CN 200880124821 A CN200880124821 A CN 200880124821A CN 101911123 B CN101911123 B CN 101911123B
- Authority
- CN
- China
- Prior art keywords
- pixel
- rasterizing
- information
- range information
- carried out
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
- G09G5/28—Generation of individual character patterns for enhancement of character form, e.g. smoothing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
设置:距离信息生成部(4),以直线单元与角部单元的组合,对由曲线分割部(2)进行了分割的微小线段进行栅格化,生成与显示器的像素(12)对应的距离信息(5);以及边缘栅格化部(7),对由曲线分割部(2)进行了分割的微小线段的边缘信息进行栅格化,映射部(10)使用由边缘栅格化部(7)进行了栅格化的边缘信息(8)来实施像素(12)的内外判定,按照该内外判定的判定结果,将由距离信息生成部(4)生成的距离信息(5)映射到包含在像素(12)中的成分(13)的抗混叠强度(11)。
Description
技术领域
本发明涉及将以矢量(vector)形式定义的二维目标在距离场(distance field)进行展开从而进行抗混叠(anti aliasing)描绘的图形描绘装置以及图形描绘方法。
背景技术
由于用贝塞尔曲线、样条曲线等公式来提供以矢量形式定义的二维目标,所以具有即使如位图图像那样进行放大缩小也不会产生锯齿状(jaggy)而可以实现高质量的图形描绘这样的特征。
例如,TrueType的轮廓字形(outline font)、基于W3C的SVG(Scalable Vector Graphics:可缩放矢量图形)等是该矢量图形处理的一个方式。
另外,作为矢量图形的低等级API(Application ProgrammingInterface:应用编程接口),制定了OpenVG的规格,并开发了与OpenVG对应的图形库、硬件。
在矢量图形中,为了平滑地显示轮廓部的锯齿状,需要抗混叠描绘。
作为抗混叠描绘的方法,有将像素分割成多个子像素并根据面积的占有率来计算出亮度值的超级采样方法(例如,参照专利文献1)、根据距像素中心的距离来计算出亮度值的方法(例如,参照专利文献2)等。
在超级采样、多重采样(multi-sample)的方法中,将像素分割成更小的子像素,并根据这些子像素的平均值来决定像素的值。
例如,将1个像素分割为4×4的16个,对各个假想的16个子像素进行描绘,最终将这些子像素的平均值设为像素的最终值。
因此,在该方法中,描绘时间与子像素的数量成比例地增加,所以难以实现实时的高速描绘。
因此,为了实现高速描绘,需要并行地进行子像素的运算处理,会增加硬件规模。
而且,在该方法中,无法无灰阶地表现亮度值(在本次的情况下,仅能够表现16灰度)。因此,没有正确地计算出应描绘的亮度值,所以无法描绘平滑的轮廓线。其结果,无法可靠地防止产生锯齿状,有时显示图像变差。
另一方面,在根据距像素中心的距离来计算亮度值的方法中,必须针对每个像素计算出直到直线为止的距离。另外,在以矢量形式定义的曲线等的抗混叠描绘中,不得不在从曲线分割为微小线段之后从很多直到微小线段为止的距离中选择最短的距离。
因此,需要预先计算出从应描绘的像素的中心到所分割的所有微小线段为止的距离。
在以下的专利文献2中,仅叙述了直线的抗混叠,在目标是复杂的曲线的情况下,距离计算的运算量变得庞大。
专利文献1:PCT WO03/096275A2
专利文献2:日本特开平6-274641号公报(段落编号[0014]、图1)
以往的图形描绘装置如上所述构成,所以存在如下问题:为了实现实时的高速描绘,需要并行地进行子像素的运算处理,会增加硬件规模。另外,还存在如下问题:由于无法描绘平滑的轮廓线,所以无法可靠地防止产生锯齿状,有时显示图像变差。
发明内容
本发明是为了解决上述那样的问题而完成的,目的在于提供一种图形描绘装置以及图形描绘方法,不会导致显示图像变差而能够通过较少的运算量来实现正确的抗混叠描绘。
本发明的图形描绘装置设置有:距离信息生成部件,以直线单元(straight line cell)与角部单元(corner cell)的组合,对由曲线分割部件进行了分割的微小线段进行栅格化(rasterize),生成与显示器的像素对应的距离信息;以及边缘栅格化部件,对由曲线分割部件进行了分割的微小线段的边缘信息进行栅格化,映射部件使用由边缘栅格化部件进行了栅格化的边缘信息来实施像素的内外判定,按照该内外判定的判定结果,将由距离信息生成部件生成的距离信息映射到包含在像素中的成分(component)的抗混叠强度。
由此,具有不会导致显示图像变差而能够通过较少的运算量来实现正确的抗混叠描绘的效果。
附图说明
图1是示出本发明的实施方式1的图形描绘装置的结构图。
图2是示出本发明的实施方式1的图形描绘方法的流程图。
图3是示出2次的贝塞尔曲线PCQ的说明图。
图4是示出以直线单元与角部单元的组合对微小线段进行栅格化处理的样子的说明图。
图5是示出直线单元的说明图。
图6是示出关于微小线段的边缘的内外判定处理的说明图。
图7是示出关于星形的路径数据的边缘的内外判定处理的说明图。
图8是示出直线单元被分解成具有将线宽的1/2与截断(cut off)相加而得到的宽度的2个长方形的样子的说明图。
图9是示出本发明的实施方式2的图形描绘装置的结构图。
图10是示出彩色值计算部22的具体的处理内容的流程图。
图11是示出放射状型的层次(gradation)的说明图。
图12是示出本发明的实施方式3的图形描绘装置的结构图。
图13是示出可利用标志缓冲器进行高速处理的图形描绘装置的结构图。
图14是示出自动提示(hinting)的处理内容的流程图。
具体实施方式
以下,为了更详细地说明本发明,根据附图对用于实施本发明的优选的方式进行说明。
实施方式1.
图1是示出本发明的实施方式1的图形描绘装置的结构图,在图中,矢量数据1例如是由贝塞尔曲线、样条曲线、直线等任意的路径数据构成的图形目标(任意闭合曲线、任意行程(stroke))。
曲线分割部2实施如下处理:对矢量数据1所表现的曲线(此处的“曲线”是除了所谓的曲线以外还包括直线的概念)的顶点坐标与控制点坐标进行矩阵变换,将矩阵变换后的曲线分割成微小线段。另外,曲线分割部2构成曲线分割部件。
参数设定部3实施如下处理:作为指定对构成矢量数据1的路径数据实施的抗混叠强度的抗混叠设定参数,设定外部截断与内部截断。
距离信息生成部4实施如下处理:使用由参数设定部3设定的抗混叠设定参数,以直线单元与角部单元的组合对由曲线分割部2分割了的微小线段进行栅格化,生成与显示器的各像素12对应的距离信息5(距离信息5是“-1”至“1”的范围的值,轮廓线上的值用“0”的值来表现,负的数表示该像素处于目标的外部)。
距离缓冲器6是保存由距离信息生成部4生成的距离信息5的存储器。
另外,由参数设定部3、距离信息生成部4以及距离缓冲器6构成距离信息生成部件。
边缘栅格化部7对由曲线分割部2分割了的微小线段的边缘信息进行栅格化,将栅格化后的边缘信息8保存在边缘缓冲器9中。
边缘缓冲器9是保存由边缘栅格化部7进行了栅格化的边缘信息8的存储器。
另外,由边缘栅格化部7以及边缘缓冲器9构成边缘栅格化部件。
映射部10实施如下处理:使用保存在边缘缓冲器9中的边缘信息8,实施各像素12的内外判定,按照该内外判定的判定结果,将保存在距离缓冲器6中的距离信息5映射到包含在像素12中的成分13的抗混叠强度11。
另外,映射部10构成映射部件。
像素12可以包含1个或者多个成分13(例如,在“RGB”型的输出设备的情况下,通常是红、蓝以及绿的成分)。
抗混叠后的像素强度可以作为影像的一部分而描绘在CRT、LCD那样的显示器上。
在图1的例子中,设想作为图形描绘装置的构成要素的曲线分割部2、参数设定部3、距离信息生成部4、边缘栅格化部7以及映射部10分别由专用的硬件(例如,安装了MPU的半导体电路基板)构成的例子,但在图形描绘装置由计算机构成的情况下,也可以将记述有曲线分割部2、参数设定部3、距离信息生成部4、边缘栅格化部7以及映射部10的处理内容的图形描绘程序保存在计算机的存储器中,并由该计算机的CPU执行保存在该存储器中的图形描绘程序。
图2是示出本发明的实施方式1的图形描绘方法的流程图。
接下来对动作进行说明。
曲线分割部2如果输入了矢量数据1,则对该矢量数据1表现的曲线的顶点坐标与控制点坐标进行矩阵变换(步骤ST1)。
由此,可以实施对构成矢量数据1的路径数据进行放大、缩小、旋转、平行移动等的处理。
如果作为矩阵例如使用4×4的矩阵行列,则还可以进行投影变换,可以得到三维的俯视显示的效果。
如果对矢量数据1所表现的曲线的顶点坐标与控制点坐标进行矩阵变换,则曲线分割部2将矩阵变换后的曲线分割成微小线段(步骤ST2)。
即,曲线分割部2实施将矩阵变换后的曲线近似分割成多个微小线段的处理。
分割数是根据曲线的曲率、大小来决定的,决定视觉上所需的充分的最小的分割数。
例如,在图3所示的2次的贝塞尔曲线PCQ的情况下,使用参数t(0≤t≤1),以以下的参量形式定义了贝塞尔曲线。其中,P(x0,y0)、Q(x2,y2)是顶点坐标,C(x1,y1)是控制点坐标。
x(t)=(1-t)2×x0+2×(1-t)×t×x1+t2×x2
y(t)=(1-t)2×y0+2×(1-t)×t×y1+t2×y2
因此,贝塞尔曲线上的中点M(xm,ym)如下所述。
[式1]
另外,直线PQ的中点H(xh,yh)如下所述。
[式2]
使用从中点M(xm,ym)到中点H(xh,yh)的距离D,如下所述决定分割数N。
其中,T是常数,如果设为T=0,则分割数成为∞,等于进行了真(true)的曲线处理。
[式3]
参数设定部3设定外部截断与内部截断作为指定对构成矢量数据1的路径数据实施的抗混叠强度的抗混叠设定参数。
例如,如果增大截断值,则可以增大轮廓部的模糊,如果减小截断值,则可以减小模糊。
如果将截断值设为“0”,则与无抗混叠等同,可以设为带锯齿状的轮廓。
另外,如果使外部截断值大于内部截断值,则可以得到使全体***的效果。另一方面,如果使外部截断值小于内部截断值,则可以得到使全体变细的效果。
如果曲线分割部2将矩阵变换后的曲线分割成微小线段,则距离信息生成部4使用由参数设定部3设定的抗混叠设定参数,以直线单元与角部单元的组合对分割了的微小线段进行栅格化,生成与显示器的各像素12对应的距离信息5,并将该距离信息5保存在距离缓冲器6中(步骤ST3)。
此处,距离信息5是从“-1”到“1”的范围的值,用“0”的值来表现轮廓线上的值,负的数表示该像素位于目标的外部。
图4是示出以直线单元与角部单元的组合对微小线段进行栅格化处理的样子的说明图。
在图4的例子中,直线单元由外部截断侧的长方形ABEF与内部截断侧的长方形BCDE构成。
对外部截断值与内部截断值进行比较,选择长方形ABEF与长方形BCDE的宽度大的一方。
微小线段也可以是真的轮廓线,所以关于在微小线段上的点,距离值被表现为“0”。
在该阶段中,由于未解决目标的内外判定,所以截断侧顶点的距离值被一律设成“-1”。
因此,长方形ABEF的各顶点的距离值被定义成“-1,0,0,-1”,长方形BCDE的各顶点的距离值被定义成“0,-1,-1,0”。
如果决定了长方形ABDE与长方形BCDE,则通过栅格化处理按照像素单位来生成距离信息5(距离值)。
在栅格化处理中,预先针对X方向以及Y方向,求出距离值的增量值,向扫描线方向进行线性插值处理,从而可以高速地计算出距离值。
另一方面,角部单元由以外部截断值或者内部截断值为半径的完美的圆构成。
圆的中心点处的距离值被表现为“0”,圆周上的距离值被表现为“-1”。
对于从像素到中心点的距离,可以使用下式来计算,但也可以通过使用了查询表的近似计算来高速地计算。
[式4]
关于直线单元与角部单元,一边相互重叠,一边向距离缓冲器6按照像素单位进行栅格化。
因此,为了将最大的距离值写入到距离缓冲器6,在距离信息生成部4将距离值写入到距离缓冲器6时,在源端(source)与目的端(destination)之间实施距离值的大小比较,写入大的一方(接近0的一方)的距离值。
这样,按照形状上最佳的分割数N将构成矢量数据1的路径数据分割成微小线段,以直线单元与角部单元的组合对该微小线段进行栅格化处理,从而即使在微小线段彼此的连结部中也可以无间隙地高速生成抗混叠处理中所需的正确的距离信息5。
如果曲线分割部2将矩阵变换后的曲线分割成微小线段,则边缘栅格化部7对分割了的微小线段的边缘信息进行栅格化,将栅格化后的边缘信息8保存在边缘缓冲器9中(步骤ST4)。
关于边缘信息8的栅格化,例如使用DDA(Digital DifferentialAnalyzer:数字微分解析器),根据微小线段的起点坐标与终点坐标计算出应描绘的坐标。
如图6以及图7所示,在边缘朝上的情况下,对保存在边缘缓冲器9中的边缘数据(实施栅格化的途中的边缘信息8)实施“+1”的加法处理,在边缘朝下的情况下,对保存在边缘缓冲器9中的边缘数据实施“-1”的减法处理。
例如,在同一坐标中的边缘的重叠被定义为到128次的情况下,作为边缘缓冲器9的深度方向的比特宽度需要8bit(27=128+符号比特)。
如果1个路径数据的栅格化处理结束,则映射部10从距离缓冲器6以及边缘缓冲器9,逐个像素地读出距离信息5与边缘信息8。
映射部10使用该边缘信息8,实施该像素12的内外判定(步骤ST5),按照该内外判定的判定结果,将该距离信息5映射到包含在像素12中的成分13的抗混叠强度11(步骤ST6)。
例如,如图6以及图7那样进行像素12的内外判定处理。
图6示出对图4中示出的微小线段的边缘进行处理的情况,图7示出对星形的路径数据的边缘进行处理的情况。
内外判定中使用的计数器的初始值是“0”,从边缘缓冲器9中读出的值601、701相对于计数器依次被相加(参照602、702)。
在填充(fill)的缠绕(winding)规则是Non-Zero规范(非零规则)的情况下,计数器值为“0”的像素被判断为是外部,计数器值为“0”以外的像素被判断为是内部(参照603、703)。
另一方面,在缠绕规则是Even-Odd规范(奇偶规则)的情况下,计数器值的最下位比特为“0”的像素被判断为是外部,最下位比特为“1”的像素被判断为是内部(参照604、704)。
如果1个扫描线的处理结束,则计数器被复位成“0”。
关于从距离缓冲器6读出的负的距离值,如图4(c)所示针对判定为内部的区域进行距离值的符号的反转处理。
在外部截断值与内部截断值不同的情况下,不将从距离值“-1”到“1”的范围直接映射到抗混叠强度11,而是将与截断值对应的有效的距离值的范围映射到抗混叠强度11。
另外,针对倾斜直线,例如通过伽玛校正等,对显示器实施最佳的亮度校正处理(参照图4(d))。
这样,用从边缘缓冲器9读出的边缘信息来实施内外判定处理,根据该内外判定结果来实施从距离缓冲器6读出的距离信息5的变换处理,从而可以正确地计算出抗混叠强度11。
另外,距离缓冲器6以及边缘缓冲器9的尺寸既可以是可以保存整个画面的距离信息5以及边缘信息8的容量,也可以是可以保存画面的一部分区域的容量。
在将区域的一部分进行保存的情况下,根据所分割的区域,执行多次距离信息生成部4以及边缘栅格化部7中的栅格化处理、以及映射部10中的映射处理。
在该情况下,由于距离缓冲器6以及边缘缓冲器9的尺寸为小容量即可,所以具有可以使用能够实现高速存取的存储器的优点。
这在由CPU进行处理的情况下,是收敛于片上高速缓冲存储器(on chip cache)的容量,即使在通过专用硬件进行处理的情况下,也无需使用外部存储器而能够仅通过小容量的内置存储器进行处理。
另外,在不是由任意路径数据包围矢量数据的闭合曲线而是具有由任意路径数据指定的线宽的行程的情况下,不需要进行包括填充的缠绕规则的内外判定处理。
如图8所示,将直线单元分解成具有将线宽的1/2与截断进行相加而得到的宽度的2个长方形,对距离值进行栅格化。同样地,关于角部单元,也对具有将线宽的1/2与截断值进行相加而得到的半径的圆的距离值进行栅格化。
之后,只使用进行了栅格化的距离值来计算出抗混叠强度。因此,例如在描绘仅用框架定义的行程字形的情况下,不用进行边缘的栅格化处理而可以实现抗混叠描绘,也不需要边缘缓冲器。
如上所述,根据本实施方式1,构成为设置:距离信息生成部4,以直线单元与角部单元的组合对由曲线分割部2分割了的微小线段进行栅格化,生成与显示器的像素12对应的距离信息5;以及边缘栅格化部7,对由曲线分割部2分割了的微小线段的边缘信息进行栅格化,映射部10使用由边缘栅格化部7进行了栅格化的边缘信息8来实施像素12的内外判定,并按照该内外判定的判定结果,将由距离信息生成部4生成的距离信息5映射到包含在像素12中的成分13的抗混叠强度11,所以起到不会导致显示图像变差而能够通过较少的运算量来实现正确的抗混叠描绘的效果。
实施方式2.
图9是示出本发明的实施方式2的图形描绘装置的结构图,在图中,与图1相同的符号表示同一或者相当的部分,所以省略说明。
纹理(texture)读出部21实施纹理数据(用于粘贴到二维目标的影像数据)的读出处理。
彩色值计算部22实施如下处理:根据由纹理读出部21读出的纹理数据来实施颜色的层次运算与纹理运算,计算出包含在像素12中的成分13的彩色值23。
另外,由纹理读出部21以及彩色值计算部22构成彩色值计算部件。
映射部24与图1的映射部10同样地,将距离信息5映射到抗混叠强度,使用映射后的抗混叠强度,对由彩色值计算部22计算出的彩色值23进行阿尔法混合(alpha blend)。
另外,映射部24构成映射部件。
在本实施方式2中,示出将所述实施方式1扩展而进行更通用的矢量图形的处理的方法。
在与所述实施方式1同样地对1个路径数据的距离信息与边缘信息进行了栅格化处理之后,彩色值计算部22根据由纹理读出部21读出的纹理数据来实施颜色的层次运算与纹理运算,计算出包含在像素12中的成分13的彩色值23。
此处,图10是示出彩色值计算部22的具体的处理内容的流程图。
在图10中,在100中根据路径数据的X、Y坐标,计算出用于从纹理数据102读出作为采样数据的纹理彩色103所需的地址101。在X、Y坐标的计算中还使用纹理矩阵的信息。
在110中进行彩色层次运算。作为层次例如有以下的种类。
·平坦型
·线性型
·放射状型
平坦型是用单一彩色进行填充的处理。
线性型是在指定了2点的彩色值的情况下,用距2点的距离对任意的点的彩色进行线性插值的处理。
放射状型如图11所示,在指定了中心点C(cx,cy)的彩色值、关注点F(fx,fy)的彩色值、半径r的情况下,用FQ之间的倾斜d1/d2来计算出任意的点P(x,y)处的彩色值。
在120中对从纹理数据102中读出的多个纹理彩色103进行滤波处理。作为滤波器使用双线性、Mipmap、双三次等。
在130中,进行由110计算出的层次彩色、以及由120进行了滤波处理的纹理彩色的混合处理。
在用硬件进行安装的情况下,通常直到从纹理数据102读出纹理彩色103为止的等待时间较大。
因此,可以在距离信息生成部4中的栅格化处理的阶段中计算出纹理地址,并对纹理存储器实施预取(prefetch),从而屏蔽存取等待时间。
另外,还可以通过安装纹理高速缓冲存储器,缩短等待时间。
映射部24与图1的映射部10同样地,如果将距离信息5映射到了抗混叠强度,则使用映射后的抗混叠强度,对由彩色值计算部22计算出的彩色值23阿尔法混合,并将其结果作为最终彩色25。
这样,起到如下效果:在矢量数据1的抗混叠描绘中,可以对任意图形进行层次彩色的显示与纹理影像的粘贴,可以实现高质量的逼真的表现。
实施方式3.
图12是示出本发明的实施方式3的图形描绘装置的结构图,在图中,与图9相同的符号表示同一或者相当的部分,所以省略说明。
信息变换部31实施如下处理:将由距离信息生成部4生成的距离信息5变换为浓度信息32,将该浓度信息32保存在浓度缓冲器33中。
浓度缓冲器33是保存由信息变换部31变换后的浓度信息32的存储器。
另外,由信息变换部31以及浓度缓冲器33构成信息变换部件。
映射部34使用保存在边缘缓冲器9中的边缘信息8,实施各像素12的内外判定,依照该内外判定的判定结果,将保存在浓度缓冲器33中的浓度信息32映射到包含在像素12中的成分13的抗混叠强度11,另外使用映射后的抗混叠强度,对由彩色值计算部22计算出的彩色值23进行阿尔法混合。
另外,映射部34构成映射部件。
在所述实施方式1、2中,示出了映射部10、24将保存在距离缓冲器6中的距离信息5映射到包含在像素12中的成分13的抗混叠强度11的例子,但也可以将该距离信息5变换为浓度信息32,代替该距离信息5而将该浓度信息32映射到包含在像素12中的成分13的抗混叠强度11。
为了在任何缩放比例(scaling)下都进行正确的抗混叠描绘,需要确保足够精度的距离信息5。
因此,在使用固定小数点格式、或者浮动小数点格式中的任意一个作为距离缓冲器6的格式的情况下,都需要32bit左右的数据比特长。
另一方面,如果代替距离信息5而使用与显示器对应的浓度信息32,则即使是较少的数据比特长也能够维持足够的精度。
例如,如果显示器的灰度是256等级,则可以利用8bit的数据比特长来实现正确的抗混叠描绘。
因此,在本实施方式3中,信息变换部31将由距离信息生成部4生成的距离信息5变换为浓度信息32,将该浓度信息32保存在浓度缓冲器33中。
在针对浓度缓冲器33写入浓度信息32的写入处理中,与距离缓冲器6同样地,在源端与目的端之间进行大小比较,写入较大的一方的浓度信息。
映射部34与图1以及图9的映射部10、24同样地,如果实施了各像素12的内外判定,则按照该内外判定的判定结果,将保存在浓度缓冲器33中的浓度信息32映射到包含在像素12中的成分13的抗混叠强度11。另外,与图9的映射部24同样地,使用映射后的抗混叠强度,对由彩色值计算部22计算出的彩色值23进行阿尔法混合。
这样,通过代替距离信息5而使用浓度信息32,与距离缓冲器6相比,可以大幅抑制浓度缓冲器33的容量,可以减小硬件规模、功耗。由此,特别是在便携电话、便携型信息仪器等中,起到可以延长电池的持续时间的效果。
实施方式4.
图13是示出可以通过标志缓冲器实现高速的处理的图形描绘装置的结构图。
在本实施方式4中,可以对所述实施方式3的图形描绘装置进行具体化,通过标志缓冲器来实现高速的处理。
字形引擎(glyph engine)51如果输入了矢量数据1,则对构成该矢量数据1的路径数据进行矩阵变换,将曲线分割成微小线段。
另外,字形引擎51根据所分割的微小线段,计算出直线单元、角部单元、边缘的顶点数据以及参数。
另外,作为字形引擎51,可以使用DSP、SIMD处理器、着色(shader)处理器(三维图形中使用的顶点着色、像素着色)等可编程的处理器。
另外,字形引擎51构成提示部件,通过运用距离信息,提供即使是小的字符尺寸也进行视觉辨认性良好的高质量的字形描绘的自动提示。
此处,图14是示出自动提示的处理内容的流程图。
在提示中,最初根据直线单元与角部单元来进行与像素的栅格一致的处理(参照140)。
接下来,使用距离倾斜的方向,检测目标的左以及下方的边缘上的像素(参照141)。
接下来,使检测出的像素变浓(参照142),并使相向的边缘上的像素变薄(参照143),由此不改变外观上的行程重心而提高左以及下方的边缘上的对比度。
而且,使用距离倾斜,使相对倾斜的字符主体、细的衬线(serif)的对比度变得良好。即,通过对倾斜方向的急剧的变化进行检测,从而使这些薄的区域上的像素变浓(参照144)。
另外,这些只是使用距离信息自动地提供视觉上的提示的一个例子。距离信息还可以用于提供最佳的字符间隔以及一样的行程重心。
直线单元栅格化器52以及角部单元栅格化器53通过缓冲器RAM控制部55,向浓度缓冲器56进行栅格化。
边缘栅格化器54向边缘缓冲器57进行栅格化。
栅格化的像素移动顺序例如在图5所示的直线单元的情况下,从真的轮廓线向左右两个方向移动,在圆的情况下,从Y方向直径向左右两个方向移动。
缓冲器RAM控制部55实施浓度缓冲器56、边缘缓冲器57以及标志缓冲器58的双缓冲器控制。
通过采用双缓冲器方式,可以并行地处理来自各栅格化器的描绘以及通过遍历混合器(traverse blender)63执行的读出。
由此,可以使吞吐量提高至2倍。
标志缓冲器58是用于以低分辨率来保存向浓度缓冲器56的写入发生状况的缓冲器。例如,以4×4像素来保持1bit的信息,如果向该区域的像素发生了写入,则将对应的比特设为“1”。
然后,在遍历混合器63从浓度缓冲器56读出浓度信息时,仅读出所描绘的区域所需的像素浓度信息。
由此,可以判定向浓度缓冲器56描绘的路径数据的区域,高效地计算出抗混叠强度。
纹理高速缓冲存储器60对保存在纹理存储器59中的纹理数据进行高速缓冲存储,降低存取等待时间。
纹理引擎61计算出纹理地址,从纹理高速缓冲存储器60读出采样数据来进行滤波处理。
层次引擎62进行彩色层次运算与纹理混合处理。
最后,遍历混合器63进行如下处理:从浓度缓冲器56、边缘缓冲器57以及标志缓冲器58读出数据,根据内外判定处理结果来计算出最终彩色值,将该最终彩色值写入到帧缓冲器64中。
这样,可以通过字形引擎51来实现自动提示,不需要以往需要的字形的提示信息。
另外,通过将浓度缓冲器56、边缘缓冲器57等设为双缓冲器结构,可以并行地处理描绘与读出,可以提高吞吐量。
而且,可以通过标志缓冲器58高效地仅读出所需区域的信息,高速地处理抗混叠强度的计算。
产业上的可利用性
如上所述,本发明的图形描绘装置适用于将以矢量形式定义的二维目标在距离场进行展开,并以较少的运算量来实现正确的抗混叠描绘。
Claims (6)
1.一种图形描绘装置,将矢量数据抗混叠描绘到显示装置,具备:
曲线分割部件,输入矢量数据,并对该矢量数据所表现的曲线的顶点坐标和控制点坐标进行矩阵变换,将矩阵变换后的曲线分割成微小线段;
距离信息生成部件,以直线单元与角部单元的组合,对由所述曲线分割部件进行了分割的微小线段进行栅格化,生成与所述显示装置的像素对应的距离信息;
边缘栅格化部件,对由所述曲线分割部件进行了分割的微小线段的边缘信息进行栅格化;以及
映射部件,使用由所述边缘栅格化部件进行了栅格化的边缘信息来实施所述像素的内外判定,按照所述内外判定的判定结果,将由所述距离信息生成部件生成的距离信息映射到包含在所述像素中的成分的抗混叠强度。
2.根据权利要求1所述的图形描绘装置,其特征在于,
设置有彩色值计算部件,该彩色值计算部件根据纹理数据来实施颜色的层次运算和纹理运算,计算包含在像素中的成分的彩色值,
使用映射部件映射后的抗混叠强度,对由所述彩色值计算部件计算出的彩色值进行阿尔法混合。
3.根据权利要求1所述的图形描绘装置,其特征在于,
设置有信息变换部件,该信息变换部件将由距离信息生成部件生成的距离信息变换为浓度信息,
映射部件代替由所述距离信息生成部件生成的距离信息,而将由所述信息变换部件进行了变换的浓度信息映射到包含在像素中的成分的抗混叠强度。
4.根据权利要求3所述的图形描绘装置,其特征在于,
设置有标志缓冲器,该标志缓冲器保存针对浓度缓冲器的浓度信息的写入发生状况。
5.根据权利要求4所述的图形描绘装置,其特征在于,
由双缓冲器构成浓度缓冲器以及标志缓冲器。
6.一种图形描绘方法,由将矢量数据抗混叠描绘到显示装置的装置执行,具备:
曲线分割步骤,输入矢量数据,并对矢量数据所表现的曲线的顶点坐标和控制点坐标进行矩阵变换,将矩阵变换后的曲线分割成微小线段;
距离信息生成步骤,以直线单元与角部单元的组合,对通过所述曲线分割步骤进行了分割的微小线段进行栅格化,生成与所述显示装置的像素对应的距离信息;
边缘栅格化步骤,对通过所述曲线分割步骤进行了分割的微小线段的边缘信息进行栅格化;以及
映射步骤,使用通过所述边缘栅格化步骤进行了栅格化的边缘信息来实施所述像素的内外判定,依照所述内外判定的判定结果,将通过所述距离信息生成步骤生成的距离信息映射到包含在所述像素中的成分的抗混叠强度。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/050350 WO2009090726A1 (ja) | 2008-01-15 | 2008-01-15 | 図形描画装置及び図形描画方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101911123A CN101911123A (zh) | 2010-12-08 |
CN101911123B true CN101911123B (zh) | 2012-09-26 |
Family
ID=40885137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008801248219A Active CN101911123B (zh) | 2008-01-15 | 2008-01-15 | 图形描绘装置以及图形描绘方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8520007B2 (zh) |
EP (1) | EP2230642B1 (zh) |
JP (1) | JP4937359B2 (zh) |
CN (1) | CN101911123B (zh) |
WO (1) | WO2009090726A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646281B (zh) * | 2011-02-16 | 2015-02-11 | 富士通株式会社 | 用于对椭圆弧进行栅格化的方法和*** |
EP2717224A4 (en) * | 2011-05-30 | 2014-11-19 | Aisin Seiki | PRESENTING DEVICE, PRESENTATION METHOD AND PROGRAM THEREFOR |
CN102819853B (zh) * | 2011-06-10 | 2015-11-25 | 富士通株式会社 | 曲线渲染方法和*** |
CN102651137B (zh) * | 2012-04-01 | 2014-05-07 | 浙江大学 | 一种基于像素精度的代数曲线光栅化方法 |
JP2015103226A (ja) * | 2013-11-28 | 2015-06-04 | 株式会社Screenホールディングス | データ演算方法、データ演算装置および欠陥検査装置 |
EP2985735B1 (en) | 2014-08-11 | 2019-12-04 | Samsung Electronics Co., Ltd | Method and apparatus for performing tile-based path rendering |
US9804709B2 (en) | 2015-04-28 | 2017-10-31 | Samsung Display Co., Ltd. | Vector fill segment method and apparatus to reduce display latency of touch events |
KR101666131B1 (ko) * | 2015-05-29 | 2016-10-14 | 경북대학교 산학협력단 | 서브 픽셀의 패턴을 고려한 벡터 글꼴의 렌더링 방법 |
KR102443697B1 (ko) | 2015-09-11 | 2022-09-15 | 삼성전자주식회사 | 경로 스트로크를 수행하는 방법 및 장치 |
US10283062B2 (en) * | 2016-08-04 | 2019-05-07 | Apple Inc. | Display with pixel dimming for curved edges |
WO2019043564A1 (en) * | 2017-08-28 | 2019-03-07 | Will Dobbie | SYSTEM AND METHOD FOR RENDERING A GRAPHIC FORM |
WO2019043562A1 (en) * | 2017-08-28 | 2019-03-07 | Will Dobbie | METHOD AND APPARATUS FOR REPRESENTING A VISUAL REPRESENTATION OF A POLICE GLYPHE |
CN109724617B (zh) * | 2017-10-31 | 2021-12-24 | 腾讯科技(深圳)有限公司 | 一种导航路线的绘制方法以及相关设备 |
US11062499B2 (en) * | 2018-10-31 | 2021-07-13 | Facebook Technologies, Llc | Distance-field texture interpolation optimizations |
CN111443864B (zh) * | 2020-04-14 | 2023-03-07 | 重庆赋比兴科技有限公司 | 基于iOS的曲线绘制方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071508A (zh) * | 2006-05-11 | 2007-11-14 | 株式会社东芝 | 图像处理装置和图像处理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155822A (en) * | 1987-08-13 | 1992-10-13 | Digital Equipment Corporation | High performance graphics workstation |
JPH07296176A (ja) | 1992-05-19 | 1995-11-10 | Uin Syst:Kk | 多角形塗りつぶし情報出力方式 |
JPH06274641A (ja) | 1993-03-19 | 1994-09-30 | Fujitsu Ltd | アンチエイリアシング直線表示装置 |
JPH08146936A (ja) * | 1994-11-21 | 1996-06-07 | Fujitsu Ltd | アウトラインフォントデータの処理方法および装置 |
JP3161372B2 (ja) | 1997-07-10 | 2001-04-25 | ヤマハ株式会社 | 多角形描画方法及び装置 |
JP2000235383A (ja) | 1999-02-15 | 2000-08-29 | Fuji Xerox Co Ltd | 文字処理装置および文字処理方法 |
US6700672B1 (en) * | 1999-07-30 | 2004-03-02 | Mitsubishi Electric Research Labs, Inc. | Anti-aliasing with line samples |
JP4085303B2 (ja) | 2001-02-22 | 2008-05-14 | 株式会社セガ | 画像表示制御装置及びプログラム |
US7131907B2 (en) | 2001-02-22 | 2006-11-07 | Kabushiki Kaisha Sega | System and method for superimposing an image on another image in a video game |
CN1653488A (zh) | 2002-05-10 | 2005-08-10 | 比特波伊斯有限责任公司 | 显示驱动器ic、显示模块以及合并有图形引擎的电子装置 |
US6917369B2 (en) | 2003-03-25 | 2005-07-12 | Mitsubishi Electric Research Labs, Inc. | Method and apparatus for rendering cell-based distance fields using texture mapping |
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 |
US7006108B2 (en) | 2003-03-25 | 2006-02-28 | Mitsubishi Electric Research Laboratories, Inc. | Method for generating a composite glyph and rendering a region of the composite glyph in image-order |
US7006110B2 (en) * | 2003-04-15 | 2006-02-28 | Nokia Corporation | Determining a coverage mask for a pixel |
-
2008
- 2008-01-15 CN CN2008801248219A patent/CN101911123B/zh active Active
- 2008-01-15 EP EP08703214.0A patent/EP2230642B1/en active Active
- 2008-01-15 WO PCT/JP2008/050350 patent/WO2009090726A1/ja active Application Filing
- 2008-01-15 JP JP2009549917A patent/JP4937359B2/ja active Active
- 2008-01-15 US US12/810,192 patent/US8520007B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071508A (zh) * | 2006-05-11 | 2007-11-14 | 株式会社东芝 | 图像处理装置和图像处理方法 |
Non-Patent Citations (4)
Title |
---|
JP特开2000-235383A 2000.08.29 |
JP特开2003-6675A 2003.01.10 |
JP特开平11-31233A 1999.02.02 |
JP特开平7-296176A 1995.11.10 |
Also Published As
Publication number | Publication date |
---|---|
US20100271382A1 (en) | 2010-10-28 |
CN101911123A (zh) | 2010-12-08 |
EP2230642A4 (en) | 2014-11-19 |
JPWO2009090726A1 (ja) | 2011-05-26 |
WO2009090726A1 (ja) | 2009-07-23 |
EP2230642A1 (en) | 2010-09-22 |
EP2230642B1 (en) | 2022-05-18 |
JP4937359B2 (ja) | 2012-05-23 |
US8520007B2 (en) | 2013-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101911123B (zh) | 图形描绘装置以及图形描绘方法 | |
JP4693660B2 (ja) | 描画装置、描画方法及び描画プログラム | |
US6459428B1 (en) | Programmable sample filtering for image rendering | |
US9183651B2 (en) | Target independent rasterization | |
US8928667B2 (en) | Rendering stroked curves in graphics processing systems | |
US8928668B2 (en) | Method and apparatus for rendering a stroked curve for display in a graphics processing system | |
US6795080B2 (en) | Batch processing of primitives for use with a texture accumulation buffer | |
US7684641B1 (en) | Inside testing for paths using a derivative mask | |
US20060170703A1 (en) | Color compression using an edge data bitmask in a multi-sample anti-aliasing scheme | |
US10140736B2 (en) | Graphics processing systems | |
US8139075B2 (en) | Color packing glyph textures with a processor | |
EP2883211A1 (en) | Gpu-accelerated rendering of paths with a dash pattern | |
US6947054B2 (en) | Anisotropic filtering | |
US8068106B1 (en) | Rendering cubic Bézier curves as quadratic curves using a GPU | |
US6731300B2 (en) | Efficient anti-aliased dot rasterization | |
KR20130095651A (ko) | 텍스트 렌더링을 위한 룩업 테이블 | |
US20080284780A1 (en) | Method for enabling alpha-to-coverage transformation | |
US6859209B2 (en) | Graphics data accumulation for improved multi-layer texture performance | |
US6914609B2 (en) | Multiple scan line sample filtering | |
US6661423B2 (en) | Splitting grouped writes to different memory blocks | |
KR20180037839A (ko) | 그래픽스 프로세싱 장치 및 인스트럭션의 실행 방법 | |
JP2008299642A (ja) | 図形描画装置 | |
US6819320B2 (en) | Reading or writing a non-super sampled image into a super sampled buffer | |
US20080001964A1 (en) | Simplification of 3D texture address computation based on aligned, non-perspective objects | |
US20040174368A1 (en) | Parallel box filtering through reuse of existing circular filter |
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 |