CN101356548B - 矢量图形的防失真 - Google Patents

矢量图形的防失真 Download PDF

Info

Publication number
CN101356548B
CN101356548B CN2006800505758A CN200680050575A CN101356548B CN 101356548 B CN101356548 B CN 101356548B CN 2006800505758 A CN2006800505758 A CN 2006800505758A CN 200680050575 A CN200680050575 A CN 200680050575A CN 101356548 B CN101356548 B CN 101356548B
Authority
CN
China
Prior art keywords
pixel
counter value
sample points
sub
current
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.)
Expired - Fee Related
Application number
CN2006800505758A
Other languages
English (en)
Other versions
CN101356548A (zh
Inventor
米卡·图奥米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN101356548A publication Critical patent/CN101356548A/zh
Application granted granted Critical
Publication of CN101356548B publication Critical patent/CN101356548B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing

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

一种在手持设备中使用的处理器单元,配置为用于矢量图形图像的防失真,并包括配置为在光栅化方向上每次针对一条边并且逐个像素地计算每个像素的计数器值,配置为将计算的计数器值存储在边缓冲器中的计数器值记录器,以及配置为基于存储的计数器值来计算像素覆盖率值的像素覆盖率值计算器。计算的像素覆盖率值能够用于在光栅化矢量图形图像时对该矢量图形图像进行防失真。

Description

矢量图形的防失真
技术领域
本发明一般涉及矢量图形处理,更具体地,涉及矢量图形图像的防失真。
背景技术
近年来,计算机图形被用来描绘数字图像,例如光栅图形、矢量图形等。能够作为像素网格存储和处理光栅图形图像。典型地,像素网格可以是矩形的,具有水平维度和垂直维度。光栅图形图像能显示在例如诸如监控器的显示设备、诸如纸张的媒质等上。可以单独定义每一个像素的颜色。典型地,每一个像素可以由像素的红色、绿色以及蓝色分量的独立的值来表示。此外,图形图像的每一个像素可以包括透明分量或“阿尔法”值。因此,通过光栅图形图像的分辨率(例如,像素总数)及其颜色深度(例如,每一个像素中的信息量)可以确定光栅图形图像。
相反,矢量图形图像能包括几何对象,例如曲线、直线、多边形等。采用矢量图形图像,除了可以存储并处理图像的每一个像素外,还可以存储描述包括在图像中的几何对象的信息。例如,在例如圆的几何对象的情况下,存储的用于绘制圆的信息能包括圆的半径、圆心的位置、用于该圆的笔划线的类型和颜色、用于该圆的填充的样式和颜色,等等。
通常,几何对象能够分解成多个简单的几何对象。例如,一个四边形可以分解成两个三角形。在矢量图形技术中,术语“基元”可以用于意指矢量图形图像中几何对象的基础或基本元素,且可以包括点、线、面、圆、球、三角形、多边形等。当基元包括一条或多条线段时,这些线段能被称为矢量图形技术中的“边”。例如,四边形是包括四条边的多边形。
矢量图形相对光栅图形的优点是能包括明显较小的文件大小,这是因为需要存储的信息量最小。此外,文件大小不用依赖包含在图像中的单个几何对象或多个几何对象的维度。而且,矢量图形能够用于描述二维和三维几何对象,且矢量图形图像能被缩放而不会失去其质量。
即使矢量图形图像能以包括绘图信息的上述格式存储和修改,矢量图形图像典型地能够转换成光栅图形图像以用于显示,且该过程被称为“光栅化”。典型地,光栅化可以包括循环通过每一个基元,确定当前的基元影响到图像中哪些像素,并从而修改对应的像素。
在光栅化矢量图形图像时,“防失真”通常用于平滑所产生的光栅图形图像,并且防失真可以包括处理图形图像中轮廓的外观平滑度,例如,通过处理邻近该轮廓的像素的透明度。防失真通常用于计算机图形技术中,特别是在诸如台式计算机、服务器等传统的计算机的环境中。例如,在计算机屏幕上显示的可缩放的字体可以是防失真的,该防失真包括为每一个用于显示字符的像素确定字符占用了多少个像素,以及以对应的不透明度绘制该像素。例如,当在白色背景上绘制黑色字符时,如果像素可以是理想的半填充(例如,如通过角到角的对角线),则可以以50%的灰度等级绘制该像素。
此外,发展了多种三维图形的防失真的实现。例如,用于基于多边形的三维渲染(rendering)的典型的防失真的解决方法包括全屏防失真,其中整个帧缓冲器首先以较高分辨率渲染然后被向下采样。通过使用合适的采样方案,可以用相对低的采样量来实现防失真而不牺牲性能。但是,该方法不是特别适用二维渲染,这是因为二维渲染中对防失真质量的要求较高。换句话说,二维渲染中的防失真要求采样的数量特别大,这会给存储器的利用造成相当大的不利。此外,这种方法在输出位图中需要对采样进行特定的布置以获得合适的采样图案。因此,二维防失真算法典型地与具有用于样品布置的规则的样品网格的位图一起使用。因此,与二维渲染结合使用的防失真方案应当能够与具有用于样品布置的规则的样品网格的位图一起操作。
典型地,已经过滤了织构数据,使得只需在多边形的边上使用较高的采样频率。因此,一些防失真技术使用该经验(observation)来计算仅用于多边形数据的防失真,例如,通过覆盖率(coverage)掩码,其中只在覆盖率掩码定义部分填充区域时才需要混合从不同多边形中取得的颜色值。
二维多边形防失真算法的方案能够分为基于采样的方法和分析方法。基于采样的方法典型地在内部使用高分辨率数据并从该数据计算像素的强度。高分辨率数据的生成能够包括直接光栅化成高分辨率缓冲器或使用用于组成高分辨率缓冲器的边掩码的查找表。仅在较高分辨率的渲染和然后的缩放能够视为是基于采样的方法的简化版本。但是,由于必须处理大量的采样,因此对于带宽和存储器的使用,该基于采样的方法花费相对较大。
另一方面,分析方法尝试通过数学分析计算精确的多边形像素覆盖率。分析方法比基于采样的方法能在多边形的边上产生更高的色调量。此外,分析方法不会遭受采样伪像的影响。但是,分析方法在计算上花费大,例如,由于需要以像素级和在多边形之间剪辑。此外,即使能避免采样伪像,如果结合分析方法使用优化,也会存在其它类型的伪像。再者,分析方法不容易扩展以支持多种填充规则,而宁可将多边形典型地再分成更小的多边形或三角形,这导致处理中的时耗步骤。
一般采用高处理能力的计算机来使用上述防失真方法和算法,其中典型地需要功能强大的处理器来实施该防失真技术。采用通常配备有附加于中央处理单元的独立的图形处理单元的现代计算机,该技术不会出现大的问题。但是,随着诸如移动电话、个人数字助理、手持计算机等多种手持设备越来越普及(这些设备包括用于显示图形的显示器,但典型地处理能力比传统计算机低得多),因而需要一种能提供变化范围的特征且仍然有效(例如,不需要高端平台)和实施简单的防失真方案。
另外,开发了某种图形标准,例如2005年7月28日由Khronos组开发的OpenVG 1.0标准,于此通过引用将其并入,其提供应用程序编程接口(API)用于包括防失真的硬件加速的二维矢量和光栅图形。因此,OpenVG规范提供要实施的一组设备独立的规范(例如,通过设备制造商)以提供范围从腕表到完全基于微处理器的台式机和服务器机器的设备上的硬件加速。但是,OpenVG规范没有教或建议怎样实际执行它们的规范。
发明内容
因此,需要缓解上述的问题。通过本发明示例性实施例处理以上以及其它的问题,该实施例提供高质量、数学上校正的具有子像素精度的矢量图形图像的防失真,其包括支持具有孔的凹进的自相交多边形、支持偶奇缠绕(winding)填充规则和非零缠绕填充规则等,并足够有效以容许在具有有限的处理能力的手持设备等上实施。因此,可以在多种图形应用中使用所述示例性实施例,所述图形应用包括:计算机图形应用等等,并且特别是手持设备应用、低计算性能的设备应用、存储空间有限的设备应用等。有利的是,示例性实施例的防失真解决方案能很好地适合对应的硬件的实施等。
因此,在本发明的示例性实施例中,提供了一种配置为用于矢量图形图像的防失真的处理器单元,所述矢量图形图像包括至少一个具有至少一条边的基元。所述矢量图形图像被光栅化成具有第一维度和第二维度的一组像素。所述光栅化在平行于所述第一维度的光栅化方向上执行。存在与每个像素关联的多个子像素采样点,以及计数器值与每个子像素采样点关联。所述处理器单元能够包括配置为计算每个像素的计数器值的计数器值计算器。由所述计数器值计算器在所述光栅化方向上逐个像素地并且每次针对一条边来执行所述计数器值的计算。处理器单元还包括配置为将所述计算的计数器值存储在边缓冲器中的计数器值记录器,以及配置为基于所述存储的计数器值计算像素覆盖率值的像素覆盖率值计算器。所述计算的像素覆盖率值用于在将所述矢量图形图像光栅化成所述组像素时对所述矢量图形图像进行防失真。
示例性实施例还能够包括诸如手持设备等的设备,并包括配置为将矢量图形图像光栅化成具有第一维度和第二维度的一组像素的光栅化器,该矢量图形图像包括至少一个具有至少一条边的基元。所述光栅化在平行于所述第一维度的光栅化方向上执行,其中,多个子像素采样点与每个像素关联,以及计数器值与每个子像素采样点关联。所述手持设备还包括配置为对促进所述矢量图形图像的防失真的处理器单元,并且包括配置为计算每个像素的计数器值的计数器值计算器。由所述计数器值计算器在所述光栅化方向上逐个像素地并且每次针对一条边来执行所述计数器值的计算。所述处理器单元还包括配置为将所述计算的计数器值存储在所述边缓冲器中的计数器值记录器,以及配置为基于所述存储的计数器值计算像素覆盖率值的像素覆盖率值计算器。所述计算的像素覆盖率值由所述光栅化器用于在将所述矢量图形图像光栅化时对所述矢量图形图像进行的所述防失真。
示例实施例还能够包括一种用于矢量图形图像的防失真的处理器单元,所述矢量图形图像包括至少一个具有至少一条边的基元。所述矢量图形图像被光栅化成具有第一维度和第二维度的一组像素。所述光栅化在平行于所述第一维度的光栅化方向上执行,多个子像素采样点与每个像素关联,以及计数器值与每个子像素采样点关联。所述处理器单元包括用于计算每个像素的所述计数器值的计数器值计算装置。由所述计数器值计算装置在所述光栅化方向上逐个像素地并且每次针对一条边来执行所述计数器值的计算。所述处理器单元还包括用于将所述计算的计数器值存储在边缓冲装置中的计数器值记录装置,以及用于基于所述存储的计数器值计算像素覆盖率值的像素覆盖率值计算装置。所述计算的像素覆盖率值用于在将所述矢量图形图像光栅化成所述组像素时对所述矢量图形图像进行防失真。
示例性实施例还能够包括诸如手持设备等的设备,并包括边缓冲装置、用于光栅化矢量图形图像成具有第一维度和第二维度的一组像素的光栅化装置,该矢量图形图像包括至少一个具有至少一条边的基元。所述光栅化在平行于所述第一维度的光栅化方向上执行,多个子像素采样点与每个像素关联,以及计数器值与每个子像素采样点关联。所述手持设备还包括用于所述矢量图形图像的防失真的处理器单元,并且包括用于计算每个像素的计数器值的计数器值计算装置。由所述计数器值计算装置在所述光栅化方向上逐个像素地并且每次针对一条边来执行所述计数器值的计算。所述处理器单元还包括用于将所述计算的计数器值存储在所述边缓冲装置中的计数器值记录装置,以及用于基于所述存储的计数器值计算像素覆盖率值的像素覆盖率值计算装置。所述计算的像素覆盖率值由所述光栅化装置用于在将所述矢量图形图像光栅化时对所述矢量图形图像进行的所述防失真。
在示例实施例中,所述计数器值计算器还配置为如下执行计数器值的计算:(i)在当前像素内的当前子像素采样点与具有第一矢量方向当前边相交时,将与所述当前子像素采样点关联的计数器值增大,其中所述第一矢量方向不平行于所述光栅化方向;(ii)在所述当前子像素采样点与具有第二矢量方向当前边相交时,将与所述当前像素内的所述当前子像素采样点关联的计数器值减小,其中所述第二矢量方向不平行于所述光栅化方向;(iii)在所述当前像素内的所述当前子像素采样点在所述光栅化方向上位于具有所述第一矢量方向的所述当前边之后时,将与当前子像素采样点关联的所述计数器值增大;(iv)在所述当前像素内的所述当前子像素采样点在所述光栅化方向上位于具有所述第二矢量方向的所述当前边之后时,将与当前子像素采样点关联的所述计数器值减小;(v)在所述当前子像素采样点在所述光栅化方向上位于具有所述第一矢量方向的所述当前边之前时,并且在所述当前子像素采样点和所述光栅化方向上所述当前像素的下一个像素内的另一个子像素采样点对应地定位于它们各自的像素内时,将与所述另一个子像素采样点关联的计数器值增大;以及(vi)在所述当前子像素采样点在所述光栅化方向上位于具有所述第二矢量方向的所述当前边之前时,并且在所述当前子像素采样点和所述光栅化方向上所述当前像素的所述下一个像素内的所述另一个子像素采样点对应地定位于它们各自的像素内时,将与所述另一个子像素采样点关联的计数器值增大。
在示例性实施例中,由计数器值计算器每次针对一条边执行所述计数器值的计算。例如,当矢量图形图像总共包括至少两条边时,在继续移动以增大/减小与受随后的边影响的子像素采样点关联的计数器值之前增大/减小与所有像素内以上述方式受到当前边影响的子像素采样点关联的计数器值。
在示例性实施例中,所述像素覆盖率值计算器还配置为通过组合当前像素的每个子像素采样点的存储的计数器值和当前像素线中的每个先前的像素的每个子像素采样点的存储的计数器值来计算所述当前像素的像素覆盖率值。所述像素覆盖率值计算器还配置为将所述当前像素的阿尔法值与所述当前像素的所述计算的像素覆盖率值相乘。
有利的是,示例性实施例容许以有效的方式进行矢量图形图像的防失真,使得容许在诸如手持设备的具有有限处理能力的设备上实施防失真,手持设备包括移动电话、个人数字助理、手持计算机等等,且该实施例很好地适合于硬件实施。另外,该示例性实施例通过支持例如具有孔的凹进的自相交多边形、偶奇缠绕填充规则、非零缠绕填充规则、数学上校正的具有子像素精度的防失真等,容许矢量图形图像的高质量防失真。
通过示例若干示例性实施例和实施情况(包括用于执行本发明的预期最佳模式),从下面的详细描述中可以很容易看出本发明的其它方面、特征和优点。本发明还允许其它的不同实施例,并且可以在不背离本发明的精神和范围的情况下在多个方面修改其数个细节。因此,附图和说明均视为实际上是示例性的,而非限制性的。
附图说明
在附图的图示中,通过示例性而非限定性的方式来示例本发明的实施例,并且在附图中,相同的参考数字表示相似的元件,并且其中:
图1是示例根据本发明的示例性实施例的示例性手持设备的框图;
图2a示例了具有一个基元而且能够通过本发明的示例性实施例光栅化和防失真成成一组像素的示例性矢量图形图像;
图2b示例了根据本发明的示例性实施例在图2a的该组像素的一个像素中的采样点的示例性分布;以及
图2c示例了根据本发明的示例性实施例的用于图2a的该组像素的两个连续像素的示例性计数器值的计算。
具体实施方式
现在参考附图,其中相同的参考数字指示遍及数个视图的相同或对应部分,更特别是在图1中,根据示例性实施例示出了示例性手持设备100。在图1中,手持设备100可以包括例如移动电话、个人数字助理、手持计算机等。手持设备100可以包括边缓冲器120、该缓冲器120包括留用于示例性实施例的下述功能的存储器的部分。存储器包括例如手持设备100的存储器电路、包括在手持设备100中的图形板的存储器电路(未示出)等,边缓冲器120为该存储器的一部分,该存储器可以用于其它功能。在进一步的示例性实施例中,边缓冲器120可以是专用于只执行示例性实施例的功能的存储器的部分。
手持设备100可以包括配置为将矢量图形图像光栅化成一组具有第一维度和第二维度的像素的光栅化器130。矢量图形图像可以包括具有至少一条边的至少一个基元。在一个示例性实施例中,使用与每一个像素关联的多个子像素采样点以及与每一个子像素采样点关联的计数器值可以在平行于第一维度的光栅化方向上执行光栅化。
图2a示例了能够由图1中的光栅化器130光栅化并且要在被光栅化时防失真的示例性矢量图形图像,其中通过图1中的处理器单元110促进防失真。虽然,为了清楚起见,图2a中示例的矢量图形图像是只包括一个基元的简单的图形图像,但是示例性实施例能够应用到包括多个基元的典型的、真实的、矢量图形图像,如图形技术领域的技术人员所能理解的。因此,基元210是具有四条边211、212、213和214的简单的多边形,且由于如名称暗示的,矢量图形与矢量有关,因此边211、212、213和214的每一条是矢量。这样,边211、212、213和214的每一条具有如图2a中箭头所示的关联的矢量方向。为示例性实施例的目的,与边211、212、213和214关联的矢量方向能分类成与第一或水平维度不平行且彼此基本相反的两个主要组,该两个主要组包括向上或第一方向的组和向下或第二方向的组。例如,边211和213属于向下的方向的组,而边212和214属于向上的方向的组。
根据关于图2a的示例性实施例,多边形210可以光栅化成光栅图形图像200,例如,该光栅图形图像200可以包括一组16×16的像素。换句话说,光栅图形图像200包括具有第一维度或水平维度和第二维度或垂直维度的矩形。因此,光栅图形图像200在水平维度上包括16个像素且在垂直维度上包括16个像素。然而,在进一步的示例性实施例中,第一和第二维度不需要是相等幅度。在示例性实施例中,通过逐个处理16×16个像素中的每一个可以将多边形210光栅化成光栅图形图像200。例如,可以从左到右处理第一行像素,然后再从左到右处理下一行像素,且该过程可以重复进行直到处理完所有行的像素。因此,在示例性实施例中,如图2a所示,光栅化方向可以平行于水平维度或从左到右。
如图形技术领域的技术人员可以理解的,如果没有执行防失真,光栅化典型地会导致与被绘制的多边形210相交的光栅图形图像200的像素全部成黑色(例如,假定多边形210的笔划颜色为黑色)。然而,采用防失真,与多边形210相交的那些像素的一些以及邻近像素的一些可以绘制成具有多个透明度或者在黑白图像的情况下,有效地绘制成多种灰度,以提供平滑轮廓的外观。有利的是,示例性实施例允许以计算上有效的方式确定要绘制哪些像素以及以哪一透明度绘制,由此容许甚至在诸如手持设备等具有非常有限的处理能力的设备上被实施防失真。
图2b示例了根据示例性实施例在图2a的该组像素的像素220中的采样点的示例性分布。在示例性实施例中,图2a的该组像素的其余的像素能使用采样点的相似的分布。如从图2b中可以看出,像素220被分成16×16的子像素,其中,填充有灰色的子像素表示子像素采样点。在示例性实施例中,采样点可以以统一的方式分布,例如,如图2b所示,每个水平子像素行包括一个采样点,每个垂直子像素行包括一个采样点,以及每条对角子像素线包括一个采样点。因此,像素220可以使用总共16个采样点。在示例性实施例中,计数器值可以与该16个采样点的每一个关联。每个计数器值可以具有预定的位长(例如,8比特或1个字节)。如进一步描述的,每一个像素的每个计数器值可以存储在边缓冲器120中。因此,根据示例性实施例,由于存在16×16个像素,每一个像素具有16个关联的计数器值,以及每个计数器值具有一个字节的长度,边缓冲器120可以配置为存储16×16×16个字节或4096个字节。但是,在进一步的示例性实施例中,可以使用其它像素网格大小、其它子像素网格大小、其它采样点分布、其它计数器位长等,如图形技术领域的技术人员所理解的。
根据示例性实施例,图1中的手持设备100还能够包括配置为促进矢量图形图像的防失真的处理器单元110。在示例性实施例中,处理器单元110能够形成例如诸如手持设备100的中央处理单元、图形处理单元等的多用途处理器的一部分。在进一步的示例性实施例中,处理器单元110能够配置为专用于执行示例性实施例的功能的附加处理器的至少一部分。
处理器单元110能够包括能够配置为计算每个像素的计数器值的计数器值计算器111。在示例性实施例中,能够在光栅化方向上每次对一条边且逐个像素地执行计数器值的计算。
图2c示例了根据示例性实施例的图2a中的该组像素的像素220和230的示例性计数器值的计算。如图2c所示,多边形210向上的边214与像素220相交,其中,填充灰色的方框表示子像素采样点,而填充黑色的方框表示其关联的计数器值受到向上的边214影响的子像素采样点。
在示例性实施例中,计数器值计算器111能够配置为在当前像素内的当前子像素采样点与具有第一矢量方向的当前边相交时,通过增大与该当前子像素采样点关联的计数器值来执行计数器值的计算,其中第一矢量方向与光栅化方向不平行。例如,假定当前像素是图2a-2c的像素220,当前边是边214,并且第一矢量方向是向上的,那么子像素采样点22001和22002与向上的边214相交。由此,能够增大与子像素采样点22001和22002关联的对应值。在示例性实施例中,计数器值可以设置成初始值为0,并且无论何时计数器值增大或减小,都能够将计数器增大一或减小一。
在示例性实施例中,计数器值计算器111还能够配置为在当前像素内的当前子像素采样点与具有第二矢量方向的当前边相交时,通过减小与该当前子像素采样点关联的计数器值来执行计数器值的计算,其中第二矢量方向与光栅化方向不平行。例如,假定当前像素是图2a-2c的像素220,当前边是边214,并且第二矢量方向是向下的,那么没有与像素220内的任何子像素采样点关联的计数器值减小,因为没有向下的边与像素220相交。
在示例性实施例中,计数器值计算器111还能够配置为在当前子像素采样点在光栅化方向上位于具有第一矢量方向的当前边之后时,通过增大与当前像素内的当前子像素采样点关联的计数器值来执行计数器值的计算。例如,假定当前像素是图2a-2c的像素220,当前边是边214,并且第一矢量方向是向上的,且光栅化方向是从左到右的,那么与子像素采样点22004、22005、22006、22007、22008、22009及22010关联的计数器值增大,因为子像素采样点22004、22005、22006、22007、22008、22009及22010位于向上的边214的右边(例如,在光栅化方向上的向上边214后面)。
在示例性实施例中,计数器值计算器111还能够配置为在当前像素内的当前子像素采样点在光栅化方向上位于具有第二矢量方向的当前边之后时,通过减小与该当前子像素采样点关联的计数器值来执行计数器值的计算。例如,假定当前像素是图2a-2c的像素220,当前边是边214,并且第二矢量方向是向下的,且光栅化方向是从左到右的,那么没有与像素220内的任何子像素采样点关联的计数器值减小,因为没有影响像素220的向下的边。
在示例性实施例中,计数器值计算器111还能够配置为在当前子像素采样点在光栅化方向上位于具有第一矢量方向的当前边之前时,且在当前子像素采样点和光栅化方向上当前像素的下一个像素内的另一子像素采样点对应地定位于它们各自的像素内时,通过增大与该另一子像素采样点关联的计数器值来执行计数器值的计算。例如,假定当前像素是图2a-2c的像素220,当前边是边214,并且第一矢量方向是向上的,且光栅化方向是从左到右的,那么与子像素采样点23001、23002、23003、23004、23005及23006关联的计数器值增大,因为像素230是光栅化方向上(例如,向右)像素220的下一个像素,并且因为空间地对应于子像素采样点23001、23002、23003、23004、23005及23006的像素220的子像素采样点(例如灰色采样点)位于向上边214的左边(例如,光栅化方向上的向上边214之前)。
在示例性实施例中,计数器值计算器111还能够配置为在当前子像素采样点位于光栅化方向上在具有第二矢量方向的当前边之前时,且在当前子像素采样点和光栅化方向上当前像素的下一个像素内的另一子像素采样点对应地定位于它们各自的像素内时,通过减小与该另一子像素采样点关联的计数器值来执行计数器值的计算。例如,假定当前像素是图2a-2c的像素220,当前边是边214,并且第二矢量方向是向下的,且光栅化方向是从左到右的,那么没有与像素230内的任何子像素采样点关联的计数器值减小,因为没有影响像素220的向下的边。
尽管上述范例只包括影响像素220和230的计数器值的一条边(例如,向上的边214),但是在更复杂的实施例中可以存在影响单个像素的计数器值的数条条边(例如,可能既有向上的又有向下的)。因此,在示例性实施例中,在移动以处理下一条边的影响之前能够处理一条边对所有像素及它们的计数器值的影响。
处理器单元110还能够包括能够配置为将计算的计数器值存储在边缓冲器120中的计数器值记录器112。处理器单元110还包括能够配置为基于存储的计数器值来计算像素覆盖率值的像素覆盖率值计算器113,其中计算的像素覆盖率值能够由光栅化器130用于在光栅化矢量图形图像时对矢量图形图像进行防失真。
在示例性实施例中,像素覆盖率值计算器113还能够配置为通过组合当前像素的每个子像素采样点的存储的计数器值和当前像素线中的每个先前的像素的每个子像素采样点的存储的计数器值来计算当前像素的像素覆盖率值。例如,为了计算像素220的像素覆盖率值,将相同的水平像素行(例如,从上起第七行)中的三个先前的像素的子像素采样点的存储的计数器值与像素220的子像素采样点的存储的计数器值进行组合。然而,由于没有边影响那三个先前的像素,所以三个先前的像素的子像素采样点的存储的计数器值为零。结果,像素220的像素覆盖率值能够是像素220的子像素采样点的存储的计数器值的组合。换句话说,因为像素220的总共16个计数器值中的10个计数器值由于向上的边214而增大一,并且因为剩余的6个计数器值保持初始值0,所以,像素220的像素覆盖率值能够设置为10/16。
类似地,为了计算像素230的像素覆盖率值,能够组合相同的水平像素行中的初始三个像素的子像素采样点的存储的计数器值以及像素220的那些计数器值和像素230的子像素采样点的存储的计数器值。因此,像素230的像素覆盖率值能够是像素220和230的子像素采样点的存储的计数器值的组合。换句话说,因为像素230的总共16个计数器值中的六个计数器值由于向上的边214而增大一、因为剩余的10个计数器值保持初始值0、并且因为像素220的子像素采样点的以上计数器值能够与像素230的子像素采样点的计数器值组合,所以像素230的像素覆盖率值可以设置为16/16或10/16+6/16。
在示例性实施例中,只有在相同的水平像素行中的像素的子像素采样点的计数器值能够以上述方式进行累积,其中为了促进计数器值的这种累积,可以使用辅助缓冲器(未示出)。这种辅助缓冲器可以包括与一个像素的子像素采样点的计数器值的量至少相同的辅助计数器值的量或者16个辅助计数器值。辅助缓冲器可以用作临时贮存器,用于在计算当前像素的像素覆盖率值时累积当前像素线中先前的像素的计数器值。最初,辅助计数器值能够设置为0。因此,继续关于在光栅图像200的第7行的像素220和230的以上范例,像素220的子像素采样点的计数器值能够存储在边缓冲器120中并且能够与辅助缓冲器中的辅助计数器值(例如,初始为0)组合,从而产生以上像素220的像素覆盖率值10/16。初始辅助计数器值和像素220的子像素采样点的计数器值的这种组合能够形成用于下一个像素230的随后的辅助计数器值。因此,存储在边缓冲器120中的像素230的子像素采样点的计数器值能够与辅助缓冲器中的随后的辅助计数器值组合,从而产生像素230的像素覆盖率值16/16。
在示例性实施例中,像素覆盖率值计算器113还能够配置为将当前像素的阿尔法值与计算的当前像素的像素覆盖率值相乘。如图形技术领域的技术人员所理解的,阿尔法值是用于定义透明度的比率,典型地,阿尔法值为100%表示像素完全不透明,阿尔法值为0%表示像素完全透明,在两者之间的阿尔法值表示像素的透明度。例如,假定光栅图像200中的所有像素的初始阿尔法值为100%,那么像素220的最终的阿尔法值为10/16×100%=62.5%(例如,稍微透明的),而像素230最终的阿尔法值为16/16×100%=100%(例如,完全不透明)。
示例性实施例可以包括在任何合适的设备中,所述设备例如包括任何合适的服务器、工作站、PC、笔记本计算机、PDA、因特网工具、手持设备、蜂窝电话、无线设备、其它设备等,所述任何合适的设备能够执行示例性实施例的处理,并且可以经由一个或者多个接口机制进行通信,所述接口机制包括,例如,因特网接入、任何合适形式的无线电通信(例如,语音、调制解调器等)、无线通信媒介、一个或者多个无线通信网络、蜂窝通信网络、G3通信网络、公共交换电话网络(PSTN)、分组数据网络(PDN)、因特网、内联网、或其组合等。
如硬件领域的那些技术人员而言可以理解的,应当理解,示例性实施例是出于示例的目的,因为用于实施示例性实施例的特定硬件的各种变化都是可能的。例如,可以经由一个或者多个硬件设备来实施示例性实施例的一个或者多个组件的功能元件。
示例性实施例可以存储与于此描述的多种处理相关的信息。此信息可以存储在一个或者多个存储器中,例如硬盘、光盘、磁光盘、RAM等等。一个或者多个数据库可以存储用于实施本发明的示例性实施例的信息。可以通过使用包括在于此列出的一个或者多个存储器或者存储设备中的数据结构(例如,记录、表、队列、域、图表、树、列表、等等)来组织数据库。根据示例性实施例所描述的处理可以包括合适的数据结构,用于将所收集的和/或由示例性实施例的设备和子系统的处理所生成的数据存储在一个或者多个数据库中。
电学领域的那些技术人员可以理解,可以通过预备专用集成电路或者通过互联传统组件电路的合适网络来实施所述示例性实施例的全部或者部分。
如上所述,示例性实施例的组件可以包括计算机可读介质或者根据本发明教示的存储器,并且用于保存数据结构、表、记录和/或于此描述的其它数据。计算机可读介质可以包括任何适合的介质,该介质参与提供指令到处理器以进行执行。这样的介质可以采取多种形式,包括但不限于:非易失性媒介、易失性媒介、传输媒介等等。非易失性媒介可以包括:例如,光盘或磁盘、磁光盘等等。易失性媒介可以包括动态存储器等等。传输媒介可以包括同轴电缆、铜电线、光纤等等。传输媒介还可以采用声、光、电磁波等形式,例如在射频(RF)通信、红外(IR)数据通信等期间所产生的那些。计算机可读媒介的常用形式可以包括:例如,软盘、柔性盘、硬盘、磁带、任何其它合适的磁性介质、CR-ROM、CDRW、DVD、任何其它合适的光介质、穿孔卡片、纸带、光学标记片(optical mark sheet)、任何其它合适的具有模式孔或者其它光学可识别的标志的物理媒介、RAM、PROM、EPROM、FLASH-EPROM、任何其它合适的存储芯片或单元存储器、载波或计算机可从中进行读取的任何其它合适的介质。
虽然已经结合若干示例性实施例和实施而描述了本发明,但本发明并不限于此,而是覆盖率了落入预期权利要求书的范围的各种更动和等同布置。

Claims (7)

1.一种用于矢量图形图像的防失真的处理器单元,所述矢量图形图像包括至少一个具有至少一条边的基元,其中,所述矢量图形图像被光栅化成具有第一维度和第二维度的一组像素,所述光栅化在平行于所述第一维度的光栅化方向上执行,多个子像素采样点与每个像素关联,以及计数器值与每个子像素采样点关联,所述处理器单元包括:
计数器值计算器,配置为计算每个像素的计数器值,
其中,在所述光栅化方向上每次针对一条边并且逐个像素地执行所述计数器值的计算;
计数器值记录器,配置为将所述计算的计数器值存储在边缓冲器中;以及
像素覆盖率值计算器,配置为基于所述存储的计数器值计算像素覆盖率值,
其中,所述计算的像素覆盖率值用于在将所述矢量图形图像光栅化成所述一组像素时对所述矢量图形图像进行防失真。
2.如权利要求1所述的处理器单元,其中,所述计数器值计算器还配置为如下来执行所述计数器值的计算:
在当前像素内的当前子像素采样点与分别具有第一矢量方向和第二矢量方向中的一个方向的当前边相交时,将与所述当前子像素采样点关联的计数器值增大或减小,其中,所述第一和第二矢量方向不平行于所述光栅化方向;
在所述当前像素内的所述当前子像素采样点在所述光栅化方向上位于分别具有所述第一矢量方向和所述第二矢量方向中的一个方向的所述当前边之后时,将与所述当前子像素采样点关联的所述计数器值增大或减小;以及
在所述当前子像素采样点在所述光栅化方向上位于分别具有所述第一矢量方向和所述第二矢量方向中的一个方向的所述当前边之前时,并且在所述当前子像素采样点和所述光栅化方向上所述当前像素的下一个像素内的另一个子像素采样点对应地定位于它们各自的像素内时,将与所述另一个子像素采样点关联的计数器值增大或减小。
3.如权利要求1所述的处理器单元,其中,所述像素覆盖率值计算器还配置为通过组合当前像素的每个子像素采样点的存储的计数器值和当前像素线中每个先前的像素的每个子像素采样点的存储的计数器值来计算所述当前像素的像素覆盖率值。
4.如权利要求3所述的处理器单元,其中,所述像素覆盖率值计算器还配置为将所述当前像素的阿尔法值与所述当前像素的所述计算的像素覆盖率值相乘。
5.一种图形设备,包括:
边缓冲器;
光栅化器,配置为光栅化矢量图形图像,所述矢量图形图像包括至少一个具有至少一条边的基元,
其中,所述矢量图形图像被光栅化成具有第一维度和第二维度的一组像素,
所述光栅化在平行于所述第一维度的光栅化方向上执行,
多个子像素采样点与每个像素关联,以及
计数器值与每个子像素采样点关联;以及
处理器单元,配置为用于所述矢量图形图像的防失真,并且包括:
计数器值计算器,配置为计算每个像素的所述计数器值,
其中,在所述光栅化方向上每次针对一条边并且逐个像素地执行所述计数器值的计算,
计数器值记录器,配置为将所述计算的计数器值存储在所述边缓冲器中,以及
像素覆盖率值计算器,配置为基于所述存储的计数器值来计算像素覆盖率值,
其中,所述计算的像素覆盖率值由所述光栅化器用于在将所述矢量图形图像光栅化时对所述矢量图形图像进行的所述防失真。
6.如权利要求5所述的设备,其中,所述计数器值计算器还配置为如下来执行所述计数器值的计算:
在当前像素内的当前子像素采样点与分别具有第一矢量方向和第二矢量方向中的一个方向的当前边相交时,将与所述当前子像素采样点关联的计数器值增大或减小,其中,所述第一和第二矢量方向不平行于所述光栅化方向;
在所述当前像素内的所述当前子像素采样点在所述光栅化方向上位于分别具有所述第一矢量方向和所述第二矢量方向中的一个方向的所述当前边之后时,将与所述当前子像素采样点关联的所述计数器值增大或减小;以及
在所述当前子像素采样点在所述光栅化方向上位于分别具有所述第一矢量方向和所述第二矢量方向中的一个方向的所述当前边之前时,并且在所述当前子像素采样点和所述光栅化方向上所述当前像素的下一个像素内的另一个子像素采样点对应地定位于它们各自的像素内时,将与所述另一个子像素采样点关联的计数器值增大或减小。
7.如权利要求5所述的设备,其中,所述设备包括手持设备。
CN2006800505758A 2005-11-15 2006-11-15 矢量图形的防失真 Expired - Fee Related CN101356548B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/272,866 US8269788B2 (en) 2005-11-15 2005-11-15 Vector graphics anti-aliasing
US11/272,866 2005-11-15
PCT/FI2006/000375 WO2007057506A1 (en) 2005-11-15 2006-11-15 Vector graphics anti-aliasing

Publications (2)

Publication Number Publication Date
CN101356548A CN101356548A (zh) 2009-01-28
CN101356548B true CN101356548B (zh) 2012-03-21

Family

ID=38040315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800505758A Expired - Fee Related CN101356548B (zh) 2005-11-15 2006-11-15 矢量图形的防失真

Country Status (5)

Country Link
US (1) US8269788B2 (zh)
EP (1) EP1958162B1 (zh)
JP (1) JP4982498B2 (zh)
CN (1) CN101356548B (zh)
WO (1) WO2007057506A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4766657B2 (ja) * 2005-05-02 2011-09-07 キヤノン株式会社 画像処理装置及びその制御方法、プログラム
KR100803947B1 (ko) * 2006-12-01 2008-02-15 주식회사 코아로직 오픈 벡터그래픽 응용 프로그램 인터페이스 변환 장치와방법, 모바일 단말기, 및 그 방법이 기록된 기록매체
US20090033671A1 (en) * 2007-08-02 2009-02-05 Ati Technologies Ulc Multi-sample rendering of 2d vector images
WO2010046792A1 (en) * 2008-10-21 2010-04-29 Nxp B.V. Method of edge anti-aliasing a graphics geometry and a vectorgraphics processor for executing the same
GB2469526B (en) * 2009-04-17 2015-06-24 Advanced Risc Mach Ltd Generating and resolving pixel values within a graphics processing pipeline
CN101923699B (zh) * 2009-06-10 2012-09-26 炬力集成电路设计有限公司 一种降低在矢量图形填充过程中对cpu耗费的方法及装置
US20110285736A1 (en) 2010-05-21 2011-11-24 Kilgard Mark J Decomposing cubic bèzier segments for tessellation-free stencil filling
KR102426667B1 (ko) * 2015-06-23 2022-07-28 삼성전자주식회사 경로 렌더링에서 에일리어싱을 방지하는 방법 및 장치.
EP4040395A1 (en) 2016-01-18 2022-08-10 Advanced Micro Devices, Inc. Performing anti-aliasing operations in a computing system
US20190318455A1 (en) 2018-04-12 2019-10-17 Nvidia Corporation Adding greater realism to a computer-generated image by smoothing jagged edges within the image in an efficient manner
CN109636751B (zh) * 2018-12-07 2020-11-27 厦门天马微电子有限公司 一种异形显示面板的边缘处理方法、显示面板及显示装置
US11076151B2 (en) 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
US11631215B2 (en) * 2020-03-11 2023-04-18 Qualcomm Incorporated Methods and apparatus for edge compression anti-aliasing
US11915337B2 (en) 2020-03-13 2024-02-27 Advanced Micro Devices, Inc. Single pass downsampler

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748178A (en) * 1995-07-18 1998-05-05 Sybase, Inc. Digital video system and methods for efficient rendering of superimposed vector graphics
US6166748A (en) * 1995-11-22 2000-12-26 Nintendo Co., Ltd. Interface for a high performance low cost video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
CN1653487A (zh) * 2002-05-10 2005-08-10 比特波伊斯有限责任公司 具有边绘制单元的图形引擎以及合并有该图形引擎的电子装置及存储器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4554538A (en) * 1983-05-25 1985-11-19 Westinghouse Electric Corp. Multi-level raster scan display system
US4808988A (en) * 1984-04-13 1989-02-28 Megatek Corporation Digital vector generator for a graphic display system
US4908780A (en) * 1988-10-14 1990-03-13 Sun Microsystems, Inc. Anti-aliasing raster operations utilizing sub-pixel crossing information to control pixel shading
US5303321A (en) * 1990-09-14 1994-04-12 Hughes Aircraft Company Integrated hardware generator for area fill, conics and vectors in a graphics rendering processor
US5815162A (en) * 1996-04-19 1998-09-29 Silicon Graphics, Inc. System and method of drawing anti-aliased lines using a modified bresenham line-drawing algorithm
US6057855A (en) 1997-07-02 2000-05-02 Hewlett-Packard Company Method and apparatus for providing polygon pixel sub-sample information using incremental means
JP3639108B2 (ja) * 1998-03-31 2005-04-20 株式会社ソニー・コンピュータエンタテインメント 描画装置および描画方法、並びに提供媒体
US6501483B1 (en) * 1998-05-29 2002-12-31 Ati Technologies, Inc. Method and apparatus for antialiasing using a non-uniform pixel sampling pattern
US7064771B1 (en) * 1999-04-28 2006-06-20 Compaq Information Technologies Group, L.P. Method and apparatus for compositing colors of images using pixel fragments with Z and Z gradient parameters
JP4332934B2 (ja) * 1999-06-17 2009-09-16 株式会社セガ アンチエイリアシング方法及びこれを用いた画像処理装置
JP3898426B2 (ja) * 2000-08-07 2007-03-28 松下電器産業株式会社 図形描画装置
JP2006515939A (ja) * 2002-06-20 2006-06-08 アルベルト・バロンチェッリ 表示システムのためのベクトルグラフィックス回路
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
US7006110B2 (en) * 2003-04-15 2006-02-28 Nokia Corporation Determining a coverage mask for a pixel
EP1480171B1 (en) * 2003-05-22 2016-11-02 Telefonaktiebolaget LM Ericsson (publ) Method and system for supersampling rasterization of image data
US7280120B2 (en) * 2003-06-26 2007-10-09 Canon Kabushiki Kaisha Compositing with a sub-pixel mask in graphic object rendering
AU2003903448A0 (en) * 2003-06-26 2003-07-17 Canon Kabushiki Kaisha A method for tracking depths in a scanline based raster image processor
US6967663B1 (en) * 2003-09-08 2005-11-22 Nvidia Corporation Antialiasing using hybrid supersampling-multisampling
JP2005100177A (ja) * 2003-09-25 2005-04-14 Sony Corp 画像処理装置およびその方法
WO2006129943A1 (en) 2005-06-03 2006-12-07 Polidigm Co., Ltd. Fast anti-aliasing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748178A (en) * 1995-07-18 1998-05-05 Sybase, Inc. Digital video system and methods for efficient rendering of superimposed vector graphics
US6166748A (en) * 1995-11-22 2000-12-26 Nintendo Co., Ltd. Interface for a high performance low cost video game system with coprocessor providing high speed efficient 3D graphics and digital audio signal processing
CN1653487A (zh) * 2002-05-10 2005-08-10 比特波伊斯有限责任公司 具有边绘制单元的图形引擎以及合并有该图形引擎的电子装置及存储器

Also Published As

Publication number Publication date
EP1958162B1 (en) 2019-05-08
EP1958162A4 (en) 2012-06-20
EP1958162A1 (en) 2008-08-20
CN101356548A (zh) 2009-01-28
US20070109318A1 (en) 2007-05-17
WO2007057506A1 (en) 2007-05-24
JP4982498B2 (ja) 2012-07-25
JP2009516250A (ja) 2009-04-16
US8269788B2 (en) 2012-09-18

Similar Documents

Publication Publication Date Title
CN101356548B (zh) 矢量图形的防失真
KR100243174B1 (ko) 서브픽셀 마스크 발생방법 및 장치
KR100902974B1 (ko) 그래픽 파이프 라인에서의 타일 기반 정밀 래스터화
US8111264B2 (en) Method of and system for non-uniform image enhancement
US7872648B2 (en) Random-access vector graphics
Nehab et al. Random-access rendering of general vector graphics
US8520007B2 (en) Graphic drawing device and graphic drawing method
CN101887592B (zh) 一种矢量图形地图符号的绘制方法
US7554546B1 (en) Stippled lines using direct distance evaluation
US10540789B2 (en) Line stylization through graphics processor unit (GPU) textures
CN100401370C (zh) 一种确定象素成分的反锯齿强度的方法及装置
US20040189666A1 (en) Method for generating a composite glyph and rendering a region of the composite glyph in object-order
US20200279415A1 (en) Efficiently Computed Distance Fields
US6933952B2 (en) Method for antialiasing a set of objects represented as a set of two-dimensional distance fields in object-order
US20040189642A1 (en) Methods for generating an adaptively sampled distance field of an object with specialized cells
US20040189663A1 (en) Method for generating a composite glyph and rendering a region of the composite glyph in image-order
CN106575428A (zh) 图形处理单元中的高阶滤波
KR101222360B1 (ko) 픽셀 샘플링용 방법 및 장치
US8115780B2 (en) Image generator
CN105761225A (zh) 一种优化图片显示效果的方法
US7123271B2 (en) Method and apparatus for antialiasing a set of objects represented as a set of two-dimensional distance fields in image-order
CN102074004B (zh) 空间实体遮挡类型的判定方法及装置
US9123173B2 (en) Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
JPH10116176A (ja) オブジェクト参照メモリマッピング
JP3745152B2 (ja) 画像表示装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ADVANCED MICRO DEVICES CORPORATION

Free format text: FORMER OWNER: DDEEG MICRO CONSULTANTS CO., LTD.

Effective date: 20101209

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: NOORMARKKU, FINLAND TO: CALIFORNIA STATE, UNITED STATES

TA01 Transfer of patent application right

Effective date of registration: 20101209

Address after: American California

Applicant after: Advanced Micro Devices Inc.

Address before: Finland

Applicant before: DDEEG micro consultants LLC

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120321

Termination date: 20191115