CN1774727A - 为像素确定覆盖掩模 - Google Patents
为像素确定覆盖掩模 Download PDFInfo
- Publication number
- CN1774727A CN1774727A CNA200480010225XA CN200480010225A CN1774727A CN 1774727 A CN1774727 A CN 1774727A CN A200480010225X A CNA200480010225X A CN A200480010225XA CN 200480010225 A CN200480010225 A CN 200480010225A CN 1774727 A CN1774727 A CN 1774727A
- Authority
- CN
- China
- Prior art keywords
- edge
- quadrant
- coverage mask
- pixel
- vectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- 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
- G06T7/00—Image analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种方法、一种设备、一种系统和一种软件程序产品,用于为像素确定覆盖掩模,其反映了原始边缘矢量的取向,还可能反映了原始边缘矢量离开像素中心的距离。该像素被用于在显示器上显示至少一部分几何基元,并且原始边缘矢量表示几何基元的取向边缘。为了减少所需用于覆盖掩模的存储空间,提出了一种方法,其包括确定笛卡尔坐标系统的四个象限中的一个象限,该原始边缘矢量由于其取向而属于该象限,作为第一步骤。然后将原始边缘矢量转置到四个象限中的一个预定象限。随后,抽取存储的覆盖掩模,其与转置的边缘矢量至少间接关联。最后,将抽取的覆盖掩模变换到原始边缘矢量所属的象限。
Description
技术领域
本发明涉及一种用于为像素确定覆盖掩模的方法,该覆盖掩模反映了原始边缘矢量的取向,还优选地反映了其离开像素中心的距离。像素用于在显示器上显示至少一部分几何基元,且原始边缘矢量表示几何基元的取向边缘。本发明同样涉及一种设备、一种系统和一种软件程序产品,用于确定该覆盖掩模。
背景技术
在计算机图形学中,图像是通过离散的像素栅格显示在屏幕上的。每个像素表示屏幕上的点。因此,待显示在屏幕上的来自连续的对象空间的精确定义的几何基元,如三角形,须被光栅化为像素值。该处理牵涉,寻找至少部分由基元覆盖的像素,并且定义像素的颜色。如果像素仅部分地由基元覆盖,则需要用于确定像素的适当的颜色的特殊方法。由于在该情况中,像素具有至少两个覆盖其的基元,因此像素的颜色须为由该像素表示的连续对象空间的区域中的基元的颜色的插值。如果该处理未正确地执行,则结果图像受到锯齿的困扰。
这样,在屏幕上的对象空间的重建图像中,由于对象空间的高的空间频率伪装成低的频率,导致了锯齿现象。锯齿现象产生了不需要的视觉制品,关于基元的边缘的被称为“锯齿”或“阶跃”效应的视觉制品,其导致了不精确的边缘;关于在整个屏幕上移动的非常小的基元的被称为“振荡”效应的视觉制品;或者被称为当前图像的“闪烁”的视觉制品。
为了在一定程度上消除锯齿现象,使用了抗锯齿技术。应当注意,完全消除在理论上是不可能的。
抗锯齿技术对于高质量图形是基本的,并且它们得到了如OpenGL和Microsoft的DirectX-Direct 3D的技术标准的支持。抗锯齿对于包括3D(三维)图形并且具有“中间尺寸”显示的产品,即显示分辨率小于例如,VGA(Video Graphics Array,视频图形阵列),但是大于QQVGA(Quarter Quarter VGA,十六分之一VGA),具有特别的重要性。而且,大于QQVGA的显示中的抗锯齿的有效的和低功率的实现方案典型地需要硬件加速。这对于例如移动设备而言是重要的。
由信号采样理论,计算机成像中的锯齿的起因是公知的,并且可以分解成两个分量。第一个分量是由于几何基元自连续对象空间的不充分采样而引起的。第二个分量是由于显示图像自生成样本的不正确或不充分重建而引起的。
尽管已提出了许多抗锯齿技术,但是仍没有成功地一次移除两个锯齿分量起因的实际有效的解决方案。因此,用于抗锯齿的实际方案可以分类为预滤波和后滤波方法。
在后滤波抗锯齿方法中,其还被称为超采样抗锯齿方法,连续对象空间中的几何基元在高于可以显示的速率的速率下进行点采样,即每个像素有多个样本。然后由离散数字滤波器对这些样本进行数字滤波,用于在显示分辨率下重新采样。由于采用多个样本的方法,因此后滤波硬件算法具有增加的计算和存储成本。而且,由于连续对象空间通常包含无限的空间频率,因此它们导致了图像制品中的某些由于不充分的采样率而引起的情况。
预滤波抗锯齿方法,其还被称为区域采样抗锯齿方法,相比于后滤波方法,通过对每个像素仅存储一个样本,生成了较高质量的显示图像,同时伴有潜在较低的硬件成本。预滤波抗锯齿方法在显示之前,通过在预滤波器级中执行低通滤波,从图像中移除了将产生锯齿的高频分量。然后,带宽受限的图像在显示分辨率下进行点采样,以产生具有减少的锯齿的图像。几何基元的预滤波是通过确定像素覆盖值而执行的,其用于加重在采样过程中计算的像素颜色或使之平滑。具有预滤波的实际方案严重地依赖于预先计算的覆盖掩模查找表格。通过包含关于从像素中心到几何基元边缘的距离的信息、关于边缘斜率的信息和关于边缘的可能取向的信息的参数,为这些表格编写索引。覆盖遮罩同每个索引关联,其给出了关于基元覆盖像素的范围的信息,并且因此其允许加重像素颜色。
具有预滤波的抗锯齿是在基元的光栅化时间过程中执行的。简而言之,基元的光栅化是,通过插值从连续对象空间中的具有二维顶点的基元描述转换为显示器上的属于基元的内部和属于基元的边界边缘的正确遮蔽的像素序列。如果发现像素位于基元的边界上,则此时通过使用像素的覆盖值加重像素颜色,执行抗锯齿,以便于使边缘平滑。因此,所选用于基元光栅化的方法将向可以有效地结合光栅化引擎在硬件中实现的预滤波抗锯齿算法的类型加入了限制。
为了说明,在下文中将描述基于预滤波的用于光栅化方法的不同的硬件解决方案和适用的抗锯齿方法。待显示的几何基元被假设为三角形。
通过传统的三角形光栅化和抗锯齿,给出了第一类型的解决方案。
传统的三角形光栅化,其还被称为三角形扫描转换,典型地通过这样的算法来执行,该算法由其内部循环中的跟随有跨度插值阶段的边缘移动插值阶段组成。在边缘移动阶段中,从顶部到底部垂直扫描三角形,对于每个截取的显示扫描线,沿着在特定时间访问的两个边缘,顺序交付三角形的边界。该三角形的边界构成了跨度插值阶段的起点和终点。在边缘移动阶段中,使用Bresenham线算法执行边缘插值。在Bresenham线算法中,可增量式计算的控制参数的符号位,确定了构成针对须由该算法绘制的理想线的最佳近似的各自的下一像素。各自确定的下一像素作为绘制线的一部分输出在屏幕上。
结合该传统的三角形扫描转换方法工作的具有预滤波的硬件抗锯齿算法,集中于修改Bresenham线算法,以并入区域采样。
例如,M.L.V.Pitteway和D.Watkinson在文献“Bresenham’sAlgorithm with Grey Scale”,Communications of ACM,vol.23,no.11,pp.625-626,November 1980中提出了修改方案,其允许将控制参数值解释为从作为光栅化线的一部分绘制的像素到理想线的距离测量结果,并且允许使用该控制参数值,以加重将显示的像素的颜色。该方法的主要缺陷涉及这一事实,即其不能正确地处理线端。
S.Gupta和R.F.Sproull在文献“Filtering Edges forGray-Scale Displays”,Computer Graphics(SIGGRAPH 81Conference Proceedings),vol.15,no.3,pp.1-5,August 1981中描述了可用于使三角形的边缘平滑的另一种具有抗锯齿能力的Bresenham线算法的版本。通过环形对称滤波器对理想线求卷积。卷积运算是通过查找表格实现的,由从像素中心到线中心的垂直距离为其编写索引。再一次地,难于得到关于线端的解析表达式,并且由于不够精确的二维查找表格,需要单独的更加复杂的索引编写方案。而且,当结合基于预滤波的抗锯齿算法使用时,考虑到三角形的顶点的抗锯齿,即两个线端将相交的点的抗锯齿,或者小于像素的三角形的抗锯齿,即存在多个线端和顶点的情况,使传统的光栅化方法具有较少的吸引力,增加了计算复杂度。
基于传统的光栅化方法的具有预滤波的抗锯齿算法的缺陷在于,难于实现三角形的角的准确的抗锯齿,并且其是计算昂贵的。该方法的缺陷还在于,由扫描转换算法设置三角形遍历顺序。从顶部到底部垂直扫描三角形,并且对于每个生成跨度,跨度末端之间的所有片段在可以生成其他跨度上的片段之前进行插值。这使得非常难于以随机的顺序并行地生成数个片段,并且使得以平铺光栅化顺序生成片段的实现方案是不可行的。数种纹理缓存的研究呈现了使用平铺光栅化顺序的优点,其中屏幕由矩形图块平铺,该矩形同纹理缓存的尺寸相关。一个平铺图块中的所有片段是在另一平铺图块中的任何片段之前生成的。相似地,大部分帧缓冲器物理地使屏幕由矩形页面图块平铺,并且遵从这些页面边界的平铺光栅化允许可以更加有效地进行预取的较少的页面交叉。传统的光栅化方法不能够有效地使用该硬件构造。由具有边缘函数和抗锯齿的三角形光栅化给出了基于预滤波的关于光栅化和抗锯齿的第二类型的解决方案。
在该类型的解决方案中,三角形光栅化基于三角形边缘的代数表示。三角形的边缘可以表示为其各个顶点之间的矢量,其中分别将一个顶点看作矢量的源点并将另一个顶点看作矢量的宿点。这在图1a中说明,其中三角形边缘的一个顶点被示为笛卡尔坐标系统中的位置(xA,yA)处的第一点,并且其中三角形边缘的另一顶点被示为笛卡尔坐标系统中的位置(xA+Δx,yA+Δy)处的第二点。Δx表示第一点和第二点之间的x方向上的距离,而Δy表示第一点和第二点之间的y方向上的距离。使第一点同第二点连接的箭头V构成了表示三角形边缘的矢量。由此,该边缘由开始于点(xA,yA)且具有斜率Δy/Δx的矢量定义。
当从该边缘矢量开始进行时,可以检测屏幕空间中的当前光栅化位置(xM,yM)是否位于由边缘矢量V划界的一个半平面“左侧”或“右侧”中或者精确地位于边缘矢量V上。检测处理牵涉边缘矢量V同由该边缘矢量的源点(xA,yA)和当前光栅化位置(xM,yM)形成的矢量的叉积。对于屏幕上的任何任意的像素位置(x,y),该叉积可以表示为解析函数,被称为边缘函数,具有未知数(x,y)。如果当前光栅化位置(xM,yM)处的边缘函数的估值结果是0,则位置(xM,yM)精确地位于由边缘矢量V定义的边缘上。否则,依赖于估值结果的符号,位置(xM,yM)位于由边缘矢量V划界的一个半平面中。
在考虑由顺时针或逆时针的取向边缘矢量描述的三角形时,位置属于三角形的内部,如果关于该位置计算的所有其边缘函数和三个边缘矢量具有相同的符号。这在图1b中说明,三角形具有顶点A、B和C。三角形的内部由各个边缘矢量V1、V2和V3表示的取向边缘AB、BC和CA的右侧的并集形成。正号同三角形的内部关联,并且负号同由边缘矢量V1、V2和V3划界并位于三角形外侧的平面关联。关于边缘函数的值用作“模板”,其仅在像素位于三角形的内部时允许修改像素的颜色。因此,使三角形光栅化的处理可以减少为这样的算法,其遍历包括三角形内部的任意区域,并且不严格地遵循三角形的轮廓,如传统的扫描转换光栅化方法的情况。
此外,如果边缘函数进行适当的归一化,其估值产生了从各个边缘矢量到像素位置(x,y)的距离,并且该距离可用于确定三角形边缘对位置(x,y)处的像素的覆盖。这意味着,归一化的边缘函数可用于光栅化和抗锯齿。
在图2a、2b和2c中更加详细地说明了具有边缘函数的抗锯齿算法的工作原理。
图2a说明了16位覆盖掩模编码方案。在图2a的左手侧,16位覆盖掩模或子像素掩模的序列由16个正方形m0-m15的序列表示。每个位表示关于二维4×4子像素栅格的子像素的二进制值。在图2a的右手侧示出了相应的4×4子像素栅格10,其同像素区域关联。因此,通过设置相应的位m0-m15,每个子像素可以独立地发光和不发光。在具有归一化边缘函数的用于抗锯齿的硬件实现方案中,对于边缘到像素中心的不同距离以及边缘的不同角度,预先计算编码为覆盖掩模的像素覆盖的图示表示。预先计算的覆盖掩模存储在覆盖掩模查找表格中。
图2b说明了从查找表格中抽取存储的覆盖掩模。在图2b的左手侧,示出了屏幕上的像素区域11,边缘矢量V通过该区域11。在图2b的中间,示出了查找表格LUT 12,并且在图2b的右手侧,以4×4子像素栅格的形式示出了覆盖掩模13。在光栅化过程中,针对当前光栅化位置(xM,yM)计算的归一化边缘函数被解释为离开像素中心M的边缘矢量V的距离d。距离d同边缘斜率α一同使用,用作查找表格地址,以抽取关于该边缘的当前光栅化位置的16位覆盖掩模13。在示出的掩模13中,黑色正方形表示各个子像素的位值“1”,而白色正方形表示各个子像素的位值“0”。
图2c说明了,通过对关于三角形的三个边缘矢量的覆盖掩模求与,使用盒式滤波确定关于像素的最终覆盖值。第一正方形14表示部分由三角形15覆盖的像素区域。针对三角形15的全部三个边缘执行参考图2b描述的表格查找,导致了三个相区别的覆盖掩模16、17和18。在图2c中以4×4子像素栅格的形式表示每个覆盖掩模16、17和18。然后,通过与运算,逻辑组合三个结果覆盖掩模16、17和18,以产生最终覆盖掩模19。最终覆盖掩模19表示当前光栅化位置(xM,yM)处的像素由三角形覆盖的范围。由最终覆盖掩模19中表示的发光子像素的数目相对于子像素的总数目,可以计算由三角形覆盖的像素的分数。在呈现的示例中,16位中的6个位具有“1”的值,并且因此被认为发光,其导致了6/16的覆盖值。
结果覆盖值用于调制像素的颜色,即透明值或alpha值,其是通过关于当前光栅化位置(xM,yM)的插值而计算的。
图2c中呈现的方案是具有盒形滤波器内核的预滤波处理的等效方案。
H.Fuchs等人在文献“Fast Spheres,Shadows,Textures,Transparencies,and Image Enhancements in Pixel-Planes”,Computer Graphics(SIGGRAPH 85 Conference Proceedings),vol.19,no.3,pp.111-120,July 1985中,在Pixel Plane中采用了参考图2a~2c呈现的光栅化和抗锯齿方法。Pixel Plane是一种用于光栅图形和成像的具有高度通用性的逻辑增强存储系统。使用全局计算结构,更具体地,使用按照位次序的顺序估值的线性表达式树,对于屏幕上的每个像素位置(x,y),该系统可以并行地对如边缘函数的线性表达式估值。通过使用归一化的边缘函数值和一个给出了关于边缘斜率的信息的边缘函数的系数,编写预先计算的覆盖掩模的查找表格的索引,抽取关于边缘的覆盖掩模。由于其针对显示中的每个像素提供了单独的处理器,因此该系统是特别大的。每个像素处理器包含1位ALU(算术逻辑单元)和小量的存储器。在1986年完成的Pixel-Planes 4的全尺寸系统,包含262144个处理器,形成了512×512的像素图像。
在J.Pineda的文献“A Parallel Algorithm for PolygonRasterization”,Computer Graphics (SIGGRAPH 88 ConferenceProceedings),vol.22,no.4,pp.17-20,August 1988中,在边缘函数式中体现了关于矢量叉积的有效表达式,其强调了,对于相邻像素,可以使用迭代技术用于对边缘函数估值,对于每个像素仅具有一次加法。对于如图1a中所呈现的由点(xA,yA)和(xA+Δx,yA+Δy)定义的边缘矢量,关于位置(xM,yM)处的特定点,即像素的中心M的该边缘函数表达为:
E(xM,yM)=(xM-xA)·Δy-(yM-yA)·Δx (1)
迭代属性良好地适用于低成本的光栅器,其通过在每个步骤中生成一个或一组片段的三角形而步进。通过该新的边缘函数式,第二呈现类型的解决方案的三角形光栅化方法相比于上文呈现的作为第一类型的解决方案的传统的光栅化方法,在性能和硬件成本上是更加有效的。
由A.Schilling在文献“A New Simple and EfficientAntialiasing with Subpixel Masks”,Computer Graphics(SIGGRAPH 91 Conference Proceedings),vol.25,no.4,pp.133-141,July 1991中,提出了一种使用覆盖掩模的抗锯齿算法,其基于来自上述文献“A Parallel Algorithm for PolygonRasterization”的边缘函数式。每个像素被表示为4×4的子像素矩阵,并且相关的覆盖掩模被编码为16位的字,如图2a中所呈现的。提出了一种基于利用L1-norm的边缘函数归一化的、具有良好准确性的、关于边缘矢量到像素中心M的距离的新的函数式,其避免了Euclidian距离估值所牵涉的平方和和平方根计算:
=(xM-xA)·dex(α)-(yM-yA)·dey(α) (2)
=sgn(dL1(M))·f(d,α)
L1-norm距离dL1(M)和参数dex(α)和dey(α)是图2b中呈现的Euclidian距离d和角度α的函数。
使用参数dL1(M)、dex(α)和sgn(dey(α))可以明确地识别2D(二维)空间中的离开像素中心M的任何Euclidian距离d的和任何角度α的任何边缘矢量。由于角度α自身难于计算,因此用于从覆盖掩模查找表格中抽取覆盖掩模的索引可以由参数dL1(M)、dex(α)和sgn(dey(α))组成。在实际的实现方案中,仅须将关于被部分覆盖的像素的覆盖掩模存储在覆盖掩模查找表格中,将关于L1-norm距离的范围设置为dL1(M)∈(-0.5,+0.5)。在该范围外部,依赖于L1-norm距离dL1(M)的符号,像素全部由三角形边缘覆盖或者全不由三角形边缘覆盖,并且可以隐性分布覆盖掩模,以包括全部设置或全未设置的子像素。关于独自依赖于边缘矢量的角度α的其他参数的范围是dex(α)∈[-1,+1]和sgn(dey(α))∈{-1,+1}。
为了将覆盖掩模查找表格限制于合理的尺寸,边缘矢量可以分组为边缘矢量类,并且仅将数个代表性的类存储在覆盖掩模查找表格中。在该环境中,边缘矢量类被定义为具有相同的dex(α)和sgn(dey(α))值,但具有不同的dL1(M)值的所有边缘矢量的集合,该值位于上文指出的范围内。因此,边缘矢量类包含可部分覆盖像素的具有相同斜率的所有边缘矢量。
通过4×4的子像素栅格,仅须存储来自平面的所有四个象限的32个代表性的边缘矢量类,如图3a和3b所说明的。
图3a示出了放大的7×7子像素栅格,其中子像素被示为点正方形。放大的栅格的右上角中的4×4子像素表示关于第一取向的矢量的第一象限。放大的栅格的左上角中的4×4子像素表示关于第二取向的矢量的第二象限。放大的栅格的左下角中的4×4子像素表示关于第三取向的矢量的第三象限。放大的栅格的右下角中的4×4子像素表示关于第四取向的矢量的第四象限。这样,子像素的中间行和中间列共同属于各自的两个4×4子像素栅格。而且,示出了通过每个类别的各自的样本边缘矢量表示的32个代表性的边缘矢量类,所有矢量具有位于放大的栅格的中心子像素的源点。8个样本边缘矢量被分别标注为A~H。通过从角子像素的中心开始,绘制通过像素的子像素中心的所有可能的边缘矢量,选择32个代表性的边缘矢量类。
图3b示出了属于代表性边缘矢量类B的边缘矢量,即具有同图3a的边缘矢量B相同的斜率的所有边缘矢量,并且具有到4×4子像素栅格20的中心的17个可能距离dL1(M)中的一个。
然后,通过基于像素的实际覆盖区域,确保覆盖掩模中的发光子像素的数目正确地是子像素的正的或负的1/2,计算所将存储的对应于由边缘矢量的参数dL1(M)、dex(α)和sgn(dey(α))给出的索引的覆盖掩模。
通过将舍位到包括符号位的5个msb(最高有效位)的L1-norm距离dL1(M)、舍位到包括符号位的5个msb的参数dex(α)以及关于参数dey(α)的符号的一个位连成一串,获得了关于覆盖掩模查找表格中的条目的索引。然而,在表格中还建立了额外的冗余。一方面,须确保两个相邻的三角形,两个前向面或两个后向面,总是互补,即大于每个像素的4×4个子像素的总覆盖是不可能的。占用了超过100%的像素的相邻基元导致了颜色错误,如边缘裂化。另一方面,基于朝向-∞的舍位的取整方案的偏差须在二进制补码系统中抵消。这将覆盖掩模查找表格的尺寸增加到包括8000个覆盖掩模的8000个16位的字。
同基于传统的光栅化方法的具有预滤波的抗锯齿方法相反,基于归一化的边缘函数的具有预滤波的抗锯齿方法准确地执行边缘相交的抗锯齿。而且,它们不偏向于任何特定的三角形遍历顺序,这使得它们良好地适用于平铺光栅化顺序。然而,它们基于覆盖掩模查找表格的硬件实现方案常常是低效率的。覆盖掩模查找表格包含成千个覆盖掩模,其消耗了可观的芯片面积。这导致了一种覆盖掩模查找表格的分时访问方法,并且阻碍了利用并行计算减少抗锯齿电路内部的活动因素的低功耗技术的使用。大的查找表格对于移动设备具有特别的缺陷。而且,与用于在光栅化过程中抽取覆盖掩模的机制组合的大的覆盖掩模查找表格的内容是不准确性的起源,须通过额外的措施使之最小。
另一个针对预过滤抗锯齿技术的文献是美国专利No.5,742,277,其公开了一种方法,其中在显示之前正确地执行内部边缘的抗锯齿,以避免在过滤器中执行该抗锯齿时出现的问题。该方法利用覆盖值形成像素颜色,但是未描述该覆盖值的实际形成。国际专利申请WO 99/45502 A1描述了一种方法,用于通过对像素子采样创建覆盖alpha值。美国专利No.5,369,739描述了可用于确定覆盖值的子采样。
发明内容
本发明的目的在于提供一种具有预滤波的抗锯齿技术,其避免了上文提及的现有技术的解决方案的问题。
特别地,本发明的目的在于,减少所需用于覆盖掩模的存储空间,同时维持上文呈现的基于归一化边缘函数的具有预滤波的抗锯齿的优点。
提出了一种用于为像素确定反映了原始边缘矢量取向的覆盖掩模的方法,该像素被用于在显示器上显示至少一部分几何基元,其中原始边缘矢量表示几何基元的取向边缘。所提出的方法包括下列步骤:
a)确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限;
b)将原始边缘矢量转置到四个象限中的预定的一个象限中;
c)抽取至少同转置边缘矢量间接关联的存储覆盖掩模;和
d)将抽取的覆盖掩模变换到原始边缘矢量所属的象限。
而且,提出了一种确定该覆盖掩模的设备。所提出的设备包括计算部分,用于确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限。而且,所提出的设备包括象限消歧部分,用于将原始边缘矢量转置到四个象限中的预定的一个象限中。而且,所提出的设备包括覆盖掩模查找部分,用于抽取存储的覆盖掩模,该覆盖掩模至少与转置部分提供的转置边缘矢量间接关联。最后,所提出的设备包括变换部分,用于将覆盖掩模查找部分提供的覆盖掩模变换到计算部分确定的象限。
而且,提出了一种图形显示系统,其一方面包括显示设备,并且另一方面,包括处理设备。处理设备包括与所提出的设备相同的处理部分,并且另外包括组合部分,用于组合变换部分提供的关于特定像素的变换覆盖掩模,并且基于组合的覆盖掩模由显示设备修改用于显示的像素的颜色。
最后,提出了一种具有程序代码的软件程序产品,用于确定该覆盖掩模。该程序代码适用于执行所提出的方法的步骤。其存储在机器可读载体上,并且其目的在于,由信号处理部件执行该程序。
本发明从考虑所需用于以“旋转对称”方式相互对应的四个象限的每一个的边缘矢量的覆盖掩模开始进行。即,如果以90°的步长旋转边缘矢量,其由于其取向而属于一个象限并且需要特定的覆盖掩模,则其他象限中的结果边缘矢量将需要以相应的90°的步长旋转的相同的特定覆盖掩模。因此提出了,仅存储关于由于其取向而属于所选的一个象限,例如第一象限的边缘矢量的覆盖掩模。通过抽取的关于属于所选象限的相应的边缘矢量的覆盖掩模的简单变换,获得了关于由于其取向而属于另一象限的边缘矢量的覆盖掩模。将原始边缘矢量转置到所选象限以及将抽取的覆盖掩模变换到原始边缘矢量的象限,可以通过例如,求反和/或旋转运算实现。
本发明允许通过预滤波进行高质量的抗锯齿。
本发明的优点在于,相比于现有技术的解决方案,由于仅须存储四分之一的覆盖掩模,因此显著减少了所需用于存储覆盖掩模的存储空间。同时,本发明未增加用于覆盖掩模查找的所需计算的数量。
而且,本发明的优点在于,其允许在全部角度充分地使边缘平滑,并且其未放弃任何片段,不论其尺寸如何。
同样地,本发明的优点在于,其是非常通用的。例如,不论存储的覆盖掩模的尺寸如何,且不论存储的覆盖掩模的数量如何,均可以应用本发明。
在本发明的优选实施例中,每个存储的覆盖掩模,同第一象限中的特定取向的边缘矢量的组合以及矢量到各个像素的中心的特定距离的组合相关联。在该情况中,另外确定原始边缘矢量和像素中心之间的距离。然后抽取存储的覆盖掩模,其一方面至少间接同转置的边缘矢量相关联,并且另一方面,同针对原始边缘矢量确定的距离相关联。本发明的优点在于,不论用于测量边缘相对于当前处理的像素中心的位置的度量标准如何,均可以应用本发明。
在本发明的另一优选实施例中,本发明被用于确定关于几何基元的每个边缘的覆盖掩模。然后,可以将关于全部边缘的结果覆盖掩模组合为单一的关于各个像素的覆盖掩模。该组合的覆盖掩模表示由几何基元覆盖像素的范围。然后该范围可用于以已知的方式修改像素的颜色。由于减少了存储需要,因此本发明通过复制关于几何基元的每个边缘的覆盖掩模查找方案,还提供了边层级平行的可能,并且因此提供了增加抗锯齿性能和减少抗锯齿功耗的可能。
在本发明的另一优选实施例中,定义了具有不同的预定取向的代表性的边缘矢量。由这些预定的取向以“旋转对称”的方式将代表性的边缘矢量分布到笛卡尔坐标系统中的四个象限。即,如果以90°的步长旋转针对一个象限定义的代表性边缘矢量的集合,则结果边缘矢量准确地对应于另一象限的集合。在该情况中,选择预定象限中的一个代表性的边缘矢量,其具有同转置边缘矢量相似的取向。然后,抽取存储的覆盖掩模,其同所选的代表性边缘矢量相关联,并由此间接地同转置边缘矢量相关联。由于利用“旋转对称”确定覆盖掩模的最终占用,因此实现了两个相邻基元的100%的占用,并且因此可以在所有的情况中准确地确定像素的颜色。
在本发明的另一优选实施例中,关于代表性边缘矢量的预定取向被选择为,在角度相关空间中,即在dex(α)空间中,均匀地将代表性边缘矢量分布到四个象限。由此,表示几何基元对像素的覆盖的范围的覆盖值的准确性,其是基于本发明确定的,高于现有技术中获得的覆盖值的准确性。而且,由于“旋转对称”,该经调节的分布不会导致任何对两个相邻基元的100%占用的偏离。
几何基元的边缘的取向可以是顺时针的或者逆时针的。有利地,对于这些可能取向中的一个取向,仅存储专用的覆盖掩模。这样,如果下面的几何基元具有这样的取向,即未存储关于该取向的专用的覆盖掩模,则随后修正抽取的覆盖掩模。因此,本发明可以以独立于三角形遍历顺序的方式实现。
所提出的方法可以在硬件中实现,例如作为2D/3D图形硬件加速器的一部分,或者在软件中实现,例如作为软件图形流水线的一部分。然而,应当注意,由于覆盖掩模变换在软件上是非常昂贵的,因此软件实现方案意味着大的性能损失。
如果通过硬件实现,则所提出的方法可以是流水线的或并行的,或者是它们的组合。
而且,本发明是不依赖于数据表示的,允许硬件实施例在内部使用任何被认为适用于增强吞吐率或者减少功耗的数据表示。可能的数据表示是,例如,二进制补码、符号量值等。
由于根据本发明,所需用于存储覆盖掩模的查找表格是小的,因此其可以针对每个边缘进行复制,以减少实现抗锯齿的处理部件内部的活动因素,用于降低功耗。
本发明可用于任何通过边缘函数描述其边缘的对象的抗锯齿目的,即,不仅用于三角形。
通过下面的详细描述,结合考虑附图,本发明的其他目的和特征将变得显而易见。然而,应当理解,附图被设计为唯一用于说明的目的,而非作为对本发明的限制的定义,对于本发明的限制,应参考附属权利要求。而且,应当理解,附图不是依比例绘制的,并且它们仅用于概念性地说明此处描述的结构和程序。
附图说明
图1a说明了如从现有技术中公知的将三角形边缘表示为矢量;
图1b说明了如从现有技术中公知的任意位置同三角形内部或外部的关联;
图2a说明了如从现有技术中公知的16位覆盖掩模编码方案;
图2b说明了如从现有技术中公知的自查找表格抽取覆盖掩模;
图2c说明了如从现有技术中公知的确定关于像素的覆盖值;
图3a说明了如现有技术中使用的,通过每个类一个样本边缘表示的32个边缘矢量类;
图3b示出了属于图3a中表示的一个边缘矢量类的边缘矢量;
图4是示意性地说明了根据本发明的方法的实施例中的边缘矢量类群集化的图示;
图5是示意性地说明了根据本发明的方法的实施例的流程图;
图6a示意性地示出了属于第二象限的原始边缘矢量;
图6b示意性地示出了等价于图6a的原始边缘矢量的属于第一象限的边缘矢量;
图6c示意性地示出了同图6b的边缘矢量相关联的覆盖掩模;
图6d示意性地示出了通过变换图6c的覆盖掩模获得的图6a的原始边缘矢量的覆盖掩模;
图7a示意性地示出了属于第三象限的原始边缘矢量;
图7b示意性地示出了等价于图7a的原始边缘矢量的属于第一象限的边缘矢量;
图7c示意性地示出了同图7b的边缘矢量相关联的覆盖掩模;
图7d示意性地示出了通过变换图7c的覆盖掩模获得的图7a的原始边缘矢量的覆盖掩模;
图8示意性地说明了在根据本发明的方法的实施例中执行的边缘矢量类消歧;
图9是表示根据本发明的方法的实施例中使用的边缘矢量类消歧规则的表格;
图10a示意性地示出了属于第一象限的边缘矢量;
图10b示意性地示出了等价于图10a的边缘矢量且通过折回(wrap around)获得的属于第一象限的边缘矢量;
图10c示意性地示出了同图10b的边缘矢量相关联的覆盖掩模;
图10d示意性地示出了90°旋转之后的图10c的覆盖掩模;
图10e示意性地示出了关于图10a的边缘矢量的覆盖掩模,该覆盖掩模是通过对图10d的覆盖掩模应用垂直反相变换获得的;
图11a示意性地说明了边缘矢量类分布的第一可能方案;
图11b示意性地说明了边缘矢量类分布的改进的可能方案;
图12是覆盖掩模ROM值的列表;
图13是其中实现了根据本发明的方法的实施例的设备的框图;并且
图14是其中实现了根据本发明的方法的实施例的图形显示系统的框图。
具体实施方式
上文已描述了图1~3。
现将通过参考图4~12描述根据本发明的方法的实施例。该实施例能够通过预滤波实现抗锯齿。更具体地,其允许借助于查找表格确定关于针对三角形检测的边缘矢量的覆盖掩模。如上文描述的使用具有边缘函数的三角形光栅化的现有技术解决方案,检测边缘矢量。
本发明利用了上文叙述的文献“A Parallel Algorithm forPolygon Rasterization”和“A New Simple and EfficientAntialiasing with Subpixel Masks”的数学架构,其在此处并入列为参考。
对于本实施例,定义了平面的四个象限中的新的边缘矢量类群集化。在图4中说明了该新的群集化。
图4示出了平面中的第一象限Q1、第二象限Q2、第三象限Q3和第四象限Q4。每个象限表示关于另外的边缘矢量取向的相同的4×4子像素栅格。该子像素栅格被表示为点正方形。
三角形的取向边缘可以表示为从三角形的各个源点顶点延伸到三角形的各个宿点顶点的矢量,如图1a和1b中说明的。给定关于像素区域的4×4子像素栅格,代表性的边缘矢量可以属于32个不同的类中的一个,其中每个类由其斜率和其取向定义。基于它们的取向,并因此根据它们所属的象限,使32个边缘矢量类进一步群集化。
对于水平/垂直边缘矢量类,作出约定。在图4的实施例中,水平边缘矢量类总是同象限Q1或象限Q3相关联,而垂直边缘矢量类总是同象限Q2或象限Q4相关联。
对于象限Q1,在图4中示出了由各个样本边缘矢量A~H表示的8个边缘矢量类。每个样本边缘矢量具有位于该象限的4×4栅格的第一列的最后的子像素的中心处的源点。除了该栅格的第一列的开始的三个子像素以外,该栅格的每个子像素的中心同8个样本边缘矢量中的一个相交。而且,对于象限Q2,示出了由各个样本边缘矢量表示的8个边缘矢量类。每个样本边缘矢量具有位于该象限的4×4栅格的最后列的最后的子像素的中心处的源点。除了该栅格的最后行的开始的三个子像素以外,该栅格的每个子像素的中心同8个样本边缘矢量中的一个相交。而且,对于象限Q3,示出了由各个样本边缘矢量表示的8个边缘矢量类。每个样本边缘矢量具有位于该象限的4×4栅格的第一行的最后的子像素的中心处的源点。除了该栅格的最后列的最后的三个子像素以外,该栅格的每个子像素的中心同8个样本边缘矢量中的一个相交。最后,同样对于象限Q4,示出了由各个样本边缘矢量表示的8个边缘矢量类。每个样本边缘矢量具有位于该象限的4×4栅格的第一行的第一子像素的中心处的源点。除了该栅格的第一行的最后的三个子像素以外,该栅格的每个子像素的中心同8个样本边缘矢量中的一个相交。
如图4中可以看到的,存在象限Q1~Q4之间的“旋转对称”。
在覆盖掩模查找表格中仅存出了关于第一象限Q1中的边缘矢量类的覆盖掩模。由于象限之间的“旋转对称”,由关于第一象限Q1的覆盖掩模可以确定关于其他象限Q2~Q4中的边缘矢量类的覆盖掩模。
在下文中,将通过参考图5的流程图解释,对于任意象限的边缘矢量,如何基于存储的覆盖掩模确定关于特定像素的覆盖掩模。
在第一步骤501中,计算描述了同像素中心M相关的边缘矢量的特征的参数。更具体地,基于上文指出的式(2)确定参数dL1(M)、dex(α)和dey(α)。由参数dex(α)的符号,和dey(α),得到了边缘矢量的原始象限。
在第二步骤502中,执行象限消歧。更具体地,通过变换描述同像素中心M相关的该边缘矢量的特征的参数,即dL1(M)、dex(α)和dey(α),将边缘矢量几何转置到第一象限Q1。
在第三步骤503中,执行边缘矢量类消歧。更具体地,第二步骤502中得到的边缘矢量的参数映射到最近匹配的代表性边缘矢量的参数,关于该代表性边缘矢量的覆盖掩模存储在查找表格中。
在第四步骤504中,使用在第三步骤503中计算的关于代表性Q1边缘矢量的参数,从查找表格中抽取关于代表性Q1边缘矢量的覆盖掩模。该查找表格专门包含Q1边缘矢量类的情况。
在第五步骤505中,执行针对原始象限的抽取覆盖掩模的几何变换。该几何变换可以包括掩模旋转和按位求反,并且使用关于原始边缘矢量的原始象限的信息。
在第六步骤506中,通过根据三角形的取向约定,即顺时针或逆时针,修正在第五步骤505中得到的覆盖掩模,获得了最终的覆盖掩模。
对于覆盖像素的三角形的每个边缘,重复步骤501~506。然后,通过组合所有针对该像素生成的最终覆盖掩模,确定覆盖值,并且结果覆盖值被用于修改待显示的像素的颜色,如上文参考图2c描述的。
下文将更加详细地解释六个步骤501~506。
图5的流程图中的步骤501和504同上文叙述的文献“A ParallelAlgorithm for Polygon Rasterization”和“A New Simple andEfficient Antialiasing with Subpixel Masks”的方法中执行的相应的步骤相同。但是,在这些现有技术的文献中,针对更大的查找表格执行对应于步骤504的查找处理,具有增加的访问延迟。
将协同解释图5的流程图中的步骤502和505,但是在实际的实现方案中,它们可以是无耦合的。
步骤502和505的目的在于将任意象限的边缘矢量变换为Q1边缘矢量,以便于针对步骤504中的覆盖掩模检索,仅需要关于代表性Q1边缘矢量的减少的覆盖掩模查找表格。在从查找表格中抽取覆盖掩模之后,须针对覆盖掩模实行逆变换,以便于获得关于原始的任意象限边缘矢量的正确的覆盖掩模。
步骤502中的对象限Q1的前向映射和步骤505中的自象限Q1的后向映射基于归一化边缘函数的两个重要属性。第一属性在于,归一化边缘函数相对于沿其关联线的其定义矢量的原点是不变的。第二属性在于,归一化边缘函数相对于沿其关联线的其定义矢量的长度是不变的。
在原始边缘矢量属于第一象限Q1的情况中,不需要步骤502和505中的变换。
在图6a~6d中呈现了所需用于原始边缘矢量属于第二象限Q2的情况的变换。
图6a和6b说明了步骤502中的变换。两个图均示出了像素区域30、31及其中心M。图6a进一步示出了开始于点A的Q2边缘矢量V4。图6a的Q2边缘矢量通过顺时针旋转90°被变换为等价的Q1边缘矢量。在图6b中示出了开始于点A的结果Q1边缘矢量V5。
步骤502的变换可由下式表达:
ΔyQ1=-ΔxQ2dex Q1=-dey Q2
ΔxQ1=ΔyQ2dey Q1=dex Q2
dL1 Q1=dL1 Q2
标记Q1和Q2表示各个参数所属的边缘矢量的象限。
图6c和6d说明了步骤505中的变换。在步骤503和504中使用图6b的Q1边缘矢量,以从覆盖掩模查找表格中抽取关联的覆盖掩模。在图6c中以4×4的子像素栅格32的形式呈现了抽取的覆盖掩模,其中某些子像素是黑色的,即,发光的。该掩模逆时针旋转90°以获得关于原始Q2边缘矢量的覆盖掩模。在图6d中以4×4的子像素栅格33的形式呈现了结果覆盖掩模,其中其他的子像素是发光的。
步骤505的变换可以由下式表达:
Coverage_MaskQ2=
rotate_counterclockwise_90(Coverage_MaskQ1)
其中Coverage_MaskQ2表示关于原始Q2边缘矢量的16位的覆盖掩模,其中Coverage_MaskQ1表示关于等价Q1边缘矢量的16位的覆盖掩模,并且其中算子rotate_counterclockwise_90()表示编码为16位覆盖掩模的4×4子像素栅格的90°的逆时针旋转。
在图7a~7d中呈现了所需用于原始边缘矢量属于第三象限Q3的情况的变换。
图7a和7b说明了步骤502中的变换。两个图均示出了像素区域40、41及其中心M。图7a进一步示出了开始于点A的Q3边缘矢量V6。图7a的Q3边缘矢量通过反相其取向被变换为等价的Q1边缘矢量V7。在图7b中示出了结束于点A的结果Q1边缘矢量V7。
步骤502的变换可由下式表达:
ΔxQ1=-ΔxQ3dey Q1=-dey Q3
ΔyQ1=-ΔyQ3dex Q1=-dex Q3
dL1 Q1=-dL1 Q3
标记Q1和Q2表示各个参数所属的边缘矢量的象限。
图7c和7d说明了步骤505中的变换。在步骤503和504中使用图7b的Q1边缘矢量,以从覆盖掩模查找表格中抽取关联的覆盖掩模。在图7c中以4×4的子像素栅格42的形式呈现了抽取的覆盖掩模,其中某些子像素是黑色的,即,发光的。该掩模进行按位求反以获得关于原始Q3边缘矢量V6的覆盖掩模。在图7d中以4×4的子像素栅格43的形式呈现了结果覆盖掩模,其中其他的子像素是发光的。
步骤505的变换可以由下式表达:
Coverage_MaskQ3=not(Coverage_MaskQ1)
其中Coverage_MaskQ3表示关于原始Q3边缘矢量的16位的覆盖掩模,其中Coverage_MaskQ1表示关于等价Q1边缘矢量的16位的覆盖掩模,并且其中算子not()表示16位覆盖掩模的按位求反。
在原始边缘矢量属于第四象限Q4的情况中,所需的操作是混合计算Q4→Q2→Q1→Q2→Q4。即,原始Q4边缘矢量首先变换为等价的Q2边缘矢量,并且结果Q2边缘矢量随即变换为等价的Q1边缘矢量。关于等价Q1边缘矢量的覆盖掩模首先变换为关于等价Q2边缘矢量的覆盖掩模,随后关于等价Q2边缘矢量的覆盖掩模首先变换为关于原始Q4边缘矢量的覆盖掩模。关于前向转换Q4→Q2和关于后向转换Q2→Q4的变换分别同上文描述的变换Q3→Q1和Q1→Q3相似。
关于步骤502中的前向变换的混合计算可由下式表达:
ΔyQ1=-ΔxQ2=ΔxQ4dex Q1=dey Q4
ΔxQ1=ΔyQ2=-ΔyQ4dey Q1=-dex Q4
dL1 Q1=dL1 Q2=-dL1 Q4
标记Q1、Q2和Q4表示各个参数所属的边缘矢量的象限。
关于步骤505中的后向变换的混合计算可由下式表达:
Coverage_MaskQ4
=not(Coverage_MaskQ2)
=not(rotate_counterclockwise_90(Coverage_MaskQ1))
其中Coverage_MaskQ4表示关于原始Q4边缘矢量的16位的覆盖掩模,其中Coverage_MaskQ2表示关于等价Q2边缘矢量的16位的覆盖掩模,其中Coverage_MaskQ1表示关于等价Q2边缘矢量的16位的覆盖掩模,其中算子not()表示16位覆盖掩模的按位求反,并且其中算子rotate_counterclockwise_90()表示编码为16位覆盖掩模的4×4子像素栅格的90°的逆时针旋转。
由于覆盖掩模查找表格仅包含关于Q1边缘矢量类的条目这一事实,关于查找表格的索引编写方案相比于现有技术的解决方案,变得较简单。可以仅考虑变换参数dL1 Q1(M)和dex Q1(α)组成索引。Q1边缘矢量类可以仅通过dex Q1(α)的值相互区分。关于参数dex Q1(α)的范围是dex Q1(α)∈[0,+1]。根据参考图4提及的约定,在第一象限Q1和第二象限Q2之间的相交线处找到的垂直边缘矢量类属于第二象限Q2。仅包含关于Q1边缘矢量类的覆盖掩模的覆盖掩模查找表格还被称为覆盖掩模ROM(只读存储器)。
现将通过参考图8~10解释图5的流程图中的步骤503,其负责边缘矢量类消歧。
如上文简单提及的,边缘矢量类消歧步骤503的任务是,将步骤502中的得到的Q1边缘矢量的参数映射到最近匹配的代表性边缘矢量的参数,该代表性边缘矢量的覆盖掩模驻留在查找表格中。
步骤502中得到的Q1边缘矢量可能具有任何斜率,然而仅存储了关于具有8个离散斜率中的一个斜率的边缘矢量类的覆盖掩模。因此Q1边缘矢量须被分类为8个边缘矢量类中的一个,关于该边缘矢量类的覆盖掩模存储在覆盖掩模ROM中。概念地,边缘矢量类的消歧处理简化为寻找相邻象限的一个边缘矢量类之间的边界的问题,关于该边缘矢量类的掩模存储在覆盖掩模ROM中。
图8是呈现出由边缘矢量A~H表示的第一象限Q1的边缘矢量类,以及另外的8个二等分线Bisector_AB、Bisector_BC、...、Bisector_GH、Bisector_H_Vertical的图示。每个二等分线由开始于边缘矢量A~H的源点并且在两个相邻的边缘矢量A~H之间延伸的线表示。二等分线的标记表示两个各自的边缘矢量A~H,相关联的线在其之间延伸。仅有最后的二等分线Bisector_H_Vertical的线在最后的边缘矢量H和垂直线之间延伸。对于每个二等分线,根据其线的斜率使参数dex Q1(α)的值关联。这些值同样可以根据上文指出的式(2)确定。
现在,输入Q1边缘矢量可以基于其自身的dex Q1(α)值被分类到一个Q1边缘矢量类,二等分线表示用于同特定的Q1边缘矢量类关联的界限。例如,如果输入Q1边缘矢量的dex Q1(α)值位于二等分线Bisector_AB和Bisector_BC之间,则输入Q1边缘矢量被分类到边缘矢量类B,并且输入Q1边缘矢量的dex Q1(α)值由边缘矢量类B的dex Q1(α)值替换。
由于在覆盖掩模ROM中仅表示了8个边缘矢量类,因此仅需要3个位用于对覆盖掩模ROM索引中的其dex Q1(α)值进行编码。该3位码是作为使用二等分线的边缘矢量类消歧的结果而直接产生的。在覆盖掩模ROM中,存储了256个覆盖掩模。因此,如现有技术中的,在ROM索引中保留5个位用于编码L1-norm距离dL1(M)。即,对于每个边缘矢量类,可以存储关于从象素中心M到特定的边缘斜线的距离dL1(M)的32个不同的值的覆盖掩模。
在图9中呈现了关于使用二等分线的边缘矢量类消歧的规则。
图9是一个表格,其在第一列中呈现了关于输入Q1边缘矢量的dex Q1(α)值的范围。第一范围从0延伸到第一二等分线Bisector_AB的dex Q1(α)的值。后面的7个范围分别从一个二等分线的dex Q1(α)值延伸到下一二等分线的dex Q1(α)值。最后的范围从最后的二等分线Bisector_H_Veftical延伸到+1。
图9的表格的第二列呈现了同第一列中的各个范围相关联的消歧的dex Q1(α)值,即各个代表性的边缘矢量类dex A~dex H的dex Q1(α)值。这些消歧的dex Q1(α)值表示常数,其可以编程在硬件中。因此,在光栅化时间不需要用于计算它们的计算工作量。
具有标题“dex ROM_index_code”的图9的表格的第三列呈现了覆盖掩模ROM索引中的所需用于对消歧的dex Q1(α)值编码的3位码。该码从顶部到底部表示从“000”到“111”的值,并且最后行中的值再次是“000”。
需要具有标题“wrap_around_flag”的图9的表格的第四列,用于以特定的方法处理特例情况,如下文所将解释的。
参考图8,对于斜率位于Bisector_H_Vertical和垂直线之间的任何输入Q1边缘矢量的消歧,出现了特例情况。通常,该边缘矢量需被消歧至垂直边缘矢量类,但是根据图4中呈现的约定,该边缘矢量类属于第二象限Q2,不属于第一象限Q1。
因此,通过折回到边缘矢量类A,使该特例边缘矢量消歧,如图9的表格中的最后行中呈现的。而且,根据图9的表格的第四列设置二进制条件信号wrap_around_flag。在任何其他的情况中不设置该标志。
然后,可以在步骤504中使用确定的ROM索引,以从查找表格中抽取关联的覆盖掩模。
如果在步骤503中设置了条件信号wrap_around_flag,则在步骤504中从查找表格中抽取了覆盖掩模时,在进行到步骤505之前,须执行针对抽取的覆盖掩模的修正。
在图10a~10e中呈现了该覆盖掩模修正处理。
图10a和10b均示出了像素区域50、51及其中心M。图10a进一步呈现了原始Q1边缘矢量V8,其具有在最后的二等分线Bisector_H_Vertical和垂直线之间的范围中的斜率。图10b示出了属于边缘矢量类A的等价的Q1边缘矢量V9,其是通过折回获得的。
等价Q1边缘矢量V9被用于从查找表格中抽取关联的覆盖掩模。在图10c中以4×4的子像素栅格52的形式呈现了该覆盖掩模,其中某些子像素是黑色的,即,发光的。使抽取的覆盖掩模逆时针旋转90°。在图10d中以4×4的子像素栅格53的形式呈现了结果覆盖掩模,其中某些其他的子像素是发光的。然后,通过最终垂直反相变换,获得了关于原始Q1边缘矢量V8的修正的覆盖掩模。在图10e中以4×4的子像素栅格54的形式呈现了修正的覆盖掩模,其中仍有其他的子像素是发光的。
修正处理可以由下式表达:
Adjusted_MaskQ1=
flip_vertically(rotate_counterclockwise_90(Coverage_MaskQ1))
其中Adjusted_MaskQ1表示16位的所需的修正的覆盖掩模,其中Coverage_MaskQ1表示16位的抽取的覆盖掩模,其中算子rotate_counterclockwise_90()表示编码为16位覆盖掩模的4×4子像素栅格的90°的逆时针旋转,并且其中算子flip_verticaly()表示编码为16位覆盖掩模的4×4子像素栅格的垂直镜像。选择掩模的镜像,以便于确保覆盖掩模几何重组由三角形的边缘覆盖的像素区域。
最后,实现图5的流程图中的步骤506,以确保所描述的覆盖掩模查找方案可被用于同具有顺时针或逆时针取向的边缘的三角形一同工作,如OpenGL和Microsoft的DirectX-Direct 3D的灵活性所需要的。
仅针对三角形边缘矢量的顺时针取向计算覆盖掩模ROM中的覆盖掩模。对于具有逆时针取向的边缘的三角形,通过迄今为止描述的操作获得的覆盖掩模须通过算子not()进行按位求反,以交付最终的覆盖掩模。通过计算上文呈现的如式(1)的边缘函数EAB(xC,yC)的符号,或者等效地,通过计算归一化边缘函数dL1 AB(C),标记A和B表示两种情况中的关于三角形的边缘矢量的源点顶点A和宿点顶点B,可以检测三角形边缘的取向。可替换地,可以使用三角形顶点A、B和C的任何其他的循环排列。如果计算的边缘函数值是正的,则三角形的边缘是顺时针取向的,如果它们是负的,则三角形的边缘是逆时针取向的。在它们等于0的情况中,三角形是退化的,并且完全不进行光栅化。无论对于什么样的三角形插值设置,需要该计算,即,δz/δx、δz/δy等。
为了总结所描述的步骤501~506,呈现了完整的硬件算法,用于抽取关于边缘矢量的覆盖掩模,该边缘矢量呈现出对当前的光栅化位置的部分覆盖,即对当前像素的部分覆盖:
1.计算关于边缘矢量的dex和dey,并且由dex和dey的符号确定关于该边缘矢量的初始象限。这对每个边缘仅执行一次。
2.计算关于该边缘触及的当前的光栅化位置的dL1。
3.对于象限消歧,如果关于边缘矢量的初始象限如下,则执行后面的操作:
Q1:dex Q1=dex and dL1 ROM_index=dL1
Q2:dex Q1=-dey and dL1 ROM_index=dL1
Q3:dex Q1=-dex and dL1 ROM_index=-dL1
Q4:dex Q1=dey and dL1 ROM_index=-dL1
4.对于边缘矢量类消歧,根据图9的表格对关于dex Q1的值消歧,由此产生了3位的dex ROM_index_code值。如果该消歧产生了折回,则设置wrap_around_flag,否则不设置wrap_around_flag。
5.使用3位的dex ROM_index_code值和dL1 ROM_index的5位最高有效位组成地址,并且基于组合的地址从覆盖掩模ROM中抽取覆盖掩模MASK。
6.如果必要,通过产生中间覆盖掩模MASK_ADJUSTED,调节覆盖掩模MASK,即:
如果设置了wrap_around_flag,则执行
MASK_ADJUSTED=flip_vertically(rotate_counterclockwise_90(MASK))
否则执行
MASK_ADJUSTED=MASK
7.如果关于边缘矢量的初始象限如下,则计算另一中间覆盖掩模COVERAGE_MASK:
COVERAGE_MASK:
Q1:
COVERAGE_MASK=MASK_ADJUSTED
Q2:
COVERAGE_MASK=rotate_counterclockwise_90(MASK_ADJUSTED)
Q3:
COVERAGE_MASK=not(MASK_ADJUSTED)
Q4:
COVERAGE_MASK=
not(rotate_counterclockwise_90(MASK_ADJUSTED))
8.通过检查三角形边缘的取向,计算关于边缘矢量的最终覆盖掩模。
如果三角形的边缘是顺时针取向的(dL1 AB(C)>0或EAB(xC,yC)>0),则执行:
FINAL-COVERAGE_MASK=COVERAGE-MASK
否则执行:
FINAL_COVERAGE_MASK=not(COVERAGE_MASK)
通过调节8个边缘矢量类在Q1空间中的分布,可以进一步增加通过本实施例实现的准确性。
8个边缘矢量类在Q1空间中的初始分布对覆盖掩模ROM的内容有巨大的影响,并且还影响在光栅化过程中实时执行的抗锯齿处理的精度。如果来自第一象限Q1的8个边缘矢量类被选择为通过像素的子像素的中心,则边缘矢量类未均匀地散布于第一象限Q1的角空间中,而且该象限中的误差分布将是不均匀的。该分布被用于图4和8中的边缘矢量类的表示,对应于参考图3a和3b描述的现有技术。出于比较的原因,在图11a中再次示出了该分布。图11a呈现了被示为点正方形的子像素的4×4栅格60。而且,示出了表示各个边缘矢量类的8个边缘矢量A~H。每个边缘矢量通过至少一个子像素的中心。可以看到,该分布相对于所实现的矢量斜率是不均匀的。
一系列实验表明,通过使8个边缘矢量类均匀地散布在dex Q1(α)空间中,获得了准确性的较大的增加。在图11b中呈现了该均匀分布。图11b再次示出了被示为点正方形的子像素的4×4栅格61。而且,示出了表示各个边缘矢量类的8个边缘矢量A~H。然而,这里边缘矢量不必通过一个子像素的中心。更确切地,从一个矢量到下一个矢量的斜率的差是近似相同的,并且因此分布是几乎均匀的。
该均匀分布提供了两方面的优点。一方面,在边缘矢量类消歧过程中的抗锯齿方案的误差更加均匀地分布在代表性边缘矢量之间。另一方面,面积绝对误差的上限从现有技术证明的15.25%减少到关于本方案的8.34%。
对于将8个边缘矢量类均匀散布在第一象限Q1的dex Q1(α)空间中的设置,图9的表格的第一列中呈现的二等分线的dex Q1(α)值是:
dex Bisector_AB=0.0663522979;
dex Bisector_BC=0.1909830036;
dex Bisector_CD=0.3150379610;
dex Bisector_DE=0.4384471872;
dex Bisector_EF=0.5615528130;
dex Bisector_FG=0.6849620384;
dex Bisector_GH=0.8090169944;
dex Bisector_H_Vertical=0.9336477008.
而且,将呈现关于该设置的可行的覆盖掩模ROM的内容。在图2a中说明了覆盖掩模编码,即使16个位同4×4的子像素栅格相关联。存在数种使8位的索引值[0]~[255]同覆盖掩模相关联的方法,将呈现其中的一个。如果覆盖掩模ROM中的索引被表示为8位码串,则开始的3msb表示关于边缘矢量类的码,如图9的表格中所呈现的。其余的5个位表示51sb(最低有效位)的dL1 ROM_index值,其中dL1 ROM_index∈[-0.5,+0.5]。dL1 ROM_index值被编码为二进制补码符号数,其向左移动5位。由此-16/32的dL1 ROM_index值作为“10000”编码到索引的51sb,-15/32的dL1 ROM_index值被编码为“10001”,并且+15/32的dL1 ROM_index值被编码为“01111”。
在图12a~12d中呈现了使该8位索引值同16位的覆盖掩模相关联的覆盖掩模ROM。图12a~12d表示分布于四页中的单一的表格。
通过考虑更多的象限Q1边缘矢量类或更准确的覆盖掩模(5×5、6×6等)或者此两者,可以在不修改所提出的方法的情况下增加所实现的抗锯齿的质量。
本方法可以在不同的设备和系统中实现。
图13是作为示例的设备100的示意性框图,其中实现了本方法。设备100可以是例如,计算机或移动终端。此外,设备100包括显示器101、芯片102、ROM 103和处理部件104。本方法实际上是作为硬件算法在芯片102中实现的。为此,芯片102包括相互串联连接的计算部分111,用于执行步骤501;象限消歧部分112,用于执行步骤502;边缘矢量类消歧部分113,用于执行步骤503;覆盖掩模查找部分114,用于执行步骤504;变换部分115,用于执行步骤505;和修正部分116,用于执行步骤506。而且,芯片102包括组合部分117,用于针对每个像素组合针对覆盖各个像素的三角形的所有边缘确定的覆盖掩模,基于组合的覆盖掩模确定各自的覆盖值,并且据此修改像素的颜色。
计算部分111接收关于将由处理部分104显示在显示器101上的各个三角形的图形数据。覆盖掩模查找部分114可以访问ROM103,其存储覆盖掩模查找表格。该覆盖掩模查找表格的内容仅占现有技术所需的边缘矢量类的数目的四分之一。由组合部分117向用于显示的显示器101部件提供关于每个像素的经修改的颜色。
通过这样的构造,即两个相邻的三角形,两个前向面或两个后向面,总是互补,并且大于4×4个子像素的总覆盖是不可能的,确保了分别由象限消歧部分112和变换部分115执行的根据步骤502和505的前向和后向变换。不需要如现有技术的情况中为此目的而建立的覆盖掩模查找表格中的额外的冗余。
通过小的额外成本,可以实现由象限消歧部分112使用的符号互补一元算子,其依赖于下面的数据表示。第一方法在于,如果使用了符号量数值表示,则仅转换符号位。第二方法在于,如果使用了二进制补码数值表示,则对运算数按位求反并且随即在ulp(最低有效位的数)位置中加“1”。该计算还可以在其他位置的所需计算中屏蔽,或者可以计算一次并且多次重复使用。这是关于dex(α)的典型情况,并且dex(α)符号互补在三角形设置阶段中计算一次,并且随后针对位于边缘矢量边界上的所有片段重复使用。
通过正确地路由表示覆盖掩模中的位的信号,可以简单地实现变换部分115使用的覆盖掩模旋转算子rotate_counterclockwise_90()。
由变换部分115使用的按位求反算子not()需要用于覆盖掩模的每个位的反相器。如果使用了具有差动逻辑输入/输出的逻辑种类,例如DCVSL(Differential Cascade Voltage Switched Logic,差动级联电压开关逻辑),则这可以是不需要的。
边缘矢量类消歧部分113可以包括具有对数深度的快速逻辑电路,其通过图9的表格的第三和第四列中呈现的输出,实现了用于边缘矢量类消歧的排序树。而且,在三角形设置阶段,可以对排序树估值一次,并且随后可以针对位于边缘矢量边界上的所有片段重复使用该结果。
在声明了条件信号wrap_around_flag的情况中,须在步骤504和505之间引入抽取的覆盖掩模的修正,并且其可以在覆盖掩模查找部分114和变换部分115之间的额外的部分中实现,或者可替换地,可以在两个部分114、115中的一个中实现。该修正可能意味着,例如,由信号wrap_around_flag控制的一个额外的2∶1 MUX(多路转换器)的硬件成本。可替换地,对于所需用于修正覆盖掩模的旋转和镜像,完全不需要任何成本,原因在于,这些操作可以混合在一起,仅通过正确地路由表示覆盖掩模中的位的信号实现。
修正部分116的硬件可以包括2∶1 MUX和用于覆盖掩模的每个位的反相器。如针对变换部分115解释的相同的硬件考虑应用于该部分116中的按位求反。
应当注意,所示出的芯片的处理部分不必是单独的部分。例如,可由电路的单独部分执行关于数个部分的特定的处理步骤。而且,所示出的部分不必直接相互连接,它们之间可能配置了执行额外的处理步骤的其他部分。
图14是作为示例的图形显示系统200的示意性框图,其中实现了本方法。系统200包括处理设备201和显示设备202,其相互连接。处理设备201可以是例如计算机,并且显示设备202可以是例如连接到计算机的监视器。此外,处理设备201包括信号处理部件211、用于存储覆盖掩模查找表格的ROM212和用于存可由处理部件211执行的储软件代码的存储部件213。存储在存储部件213中的软件代码包括实现本方法的软件算法214。当该软件算法214加载到处理部件211中并被执行时,根据图5的流程图的步骤501~506处理待显示的关于三角形的可利用的图形数据。此外,该软件算法涉及,针对每个像素组合针对覆盖各个像素的三角形的所有边缘而确定的覆盖掩模,基于组合的覆盖掩模确定各自的覆盖值,并且据此修改像素的颜色。然后,将确定的像素颜色提供给显示设备202,用于显示该三角形。为了在步骤504中从查找表格中抽取覆盖掩模,处理部件访问ROM212。
应当理解,本发明还可以通过软件在设备中实现或者通过硬件在系统中实现。在硬件实现的情况中,硬件没有必要进一步集成在芯片中。
尽管示出和描述并指出了本发明的基本新颖特征,如应用于其优选实施例的,但是应当理解,在不偏离本发明的精神的前提下,本领域的技术人员可以进行所描述的设备和方法的形式和细节上的不同的省略和替换以及修改。例如,清楚地,其目的在于,以基本相同的方式执行基本相同的功能以实现相同的结果的这些元件和/或方法步骤的所有组合在本发明的范围内。而且,应当认识到,结合任何公开形式或本发明的实施例示出和/或描述的结构和/或元件和/或方法步骤可以并入到任何其他的公开或描述或建议的形式或实施例中,作为设计选择的一般问题。因此,其目的在于,仅由附属权利要求的范围限定。
权利要求书
(按照条约第19条的修改)
1.一种为像素确定反映了原始边缘矢量取向的覆盖掩模的方法,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的取向的边缘,并且其中定义了具有不同的预定取向的代表性的边缘矢量,关于所述代表性边缘矢量的所述预定取向被选择为,使得将所述代表性边缘矢量在对于所述四个象限角度相关的空间上被均匀分布,所述方法包括:
a)确定笛卡尔坐标系统的四个象限中的一个象限,所述原始边缘矢量由于其取向而属于该象限;
b)将所述原始边缘矢量转置到所述四个象限中预定的一个象限中;
c)选择所述预定象限中所述代表性边缘矢量其中之一,该代表性边缘矢量具有同所述转置的边缘矢量相似的取向;
d)抽取与所述选择的代表性边缘矢量相关联、并且由此间接同所述转置的边缘矢量关联的所存储的覆盖掩模;和
e)将所述抽取的覆盖掩模变换到所述原始边缘矢量所属的所述象限。
2.权利要求1的方法,进一步包括确定所述原始边缘矢量和所述像素的中心之间的距离,其中每个所存储的覆盖掩模同到各个像素中心的特定距离的以及特定取向的边缘矢量的组合相关联,并且其中在步骤d)中,抽取所存储的覆盖掩模,其间接地同所述转置的边缘矢量、以及同针对所述原始边缘矢量确定的所述距离相关联。
3.权利要求2的方法,其中原始边缘矢量是通过以所述原始边缘矢量为特征的参数定义的,第一参数dL1(M)标识了所述边缘矢量离开所述像素的中心M的距离,第二参数dex(α)表示所述边缘矢量的源点和所述边缘矢量的宿点之间的x方向上的距离,且第三参数dey(α)表示所述边缘矢量的所述源点和所述边缘矢量的所述宿点之间的y方向上的距离,其中所述原始边缘矢量所属的所述象限是基于所述第二和所述第三参数的符号确定的,并且其中通过适合所述第一参数以及所述第二和所述第三参数中的一个的值,将所述原始边缘矢量转置到所述预定的象限。
4.权利要求3的方法,其中所述预定象限是所述笛卡尔坐标系统的第一象限,并且其中执行将原始边缘矢量转置到所述第一象限中是:
在原始边缘矢量属于所述第一象限的情况中,通过保持所述第一参数dL1(M)和所述第二参数dex(α)的原始值;
在原始边缘矢量属于所述第二象限的情况中,通过向所述第二参数dex(α)分配所述第三参数dey(α)的反相的原始值,并且通过保持所述第一参数dL1(M)的原始值;
在原始边缘矢量属于所述第三象限的情况中,通过向所述第一参数dex(α)分配所述第一参数dex(α)的反相的原始值,并且通过向所述第一参数dL1(M)分配所述第一参数dL1(M)的反相的原始值;
在原始边缘矢量属于所述第四象限的情况中,通过向所述第一参数dex(α)分配所述第二参数dey(α)的原始值,并且通过向所述第一参数dL1(M)分配所述第一参数dL1(M)的反相的原始值。
5.权利要求1的方法,其中所述预定象限是所述笛卡尔坐标系统的第一象限,其中每个所存储的覆盖掩模包括表示关于覆盖由显示器上的所述像素表示的区域的子像素栅格的子像素值的位序列,并且其中执行将所述抽取的覆盖掩模变换到所述原始边缘矢量所属的所述象限是:
在原始边缘矢量属于所述第一象限的情况中,通过保持所述抽取的覆盖掩模;
在原始边缘矢量属于所述第二象限的情况中,通过将所述抽取的覆盖掩模逆时针旋转90°;
在原始边缘矢量属于所述第三象限的情况中,通过对所述抽取的覆盖掩模的每个位按位求反;
在原始边缘矢量属于所述第四象限的情况中,通过将所述抽取的覆盖掩模逆时针旋转90°,并且通过对所述旋转的覆盖掩模的每个位按位求反。
6.权利要求1的方法,进一步包括为所述几何基元的每个边缘确定覆盖掩模,以及将所述变换的覆盖掩模组合为关于所述像素的单一的覆盖掩模,所述组合的覆盖掩模表示所述像素由所述几何基元覆盖的范围。
7.权利要求1的方法,其中通过所述预定取向以旋转对称的方式将所述代表性的边缘矢量分布到所述笛卡尔坐标系统中的所述四个象限,由此如果以90°的步长旋转针对一个象限定义的代表性边缘矢量的集合,则所产生的边缘矢量准确地对应于针对另一象限定义的代表性边缘矢量的集合。
8.权利要求7的方法,其中所述预定象限的第一代表性边缘矢量位于关于所述预定象限的第一相邻象限的第一边界上,其中位于关于所述预定象限的第二相邻象限的第二边界上的代表性边缘矢量构成了所述第二相邻象限的第一代表性边缘矢量,其中如果所述转置的边缘矢量具有同所述第二相邻象限的所述第一代表性边缘矢量相似的取向,则所述方法包括例外的额外步骤c),即选择所述预定象限的所述第一代表性边缘矢量作为代表性边缘矢量,其中步骤d)包括,抽取同所述选择的代表性边缘矢量相关联的所存储的覆盖掩模,并且作为在步骤d)之后例外的额外步骤,修正所述抽取的覆盖掩模。
9.权利要求1的方法,其中所述几何基元的边缘取向被选择为顺时针或逆时针中的一个,其中仅针对所述顺时针和所述逆时针取向中的一个存储专用的覆盖掩模,并且其中如果几何基元具有对于其未存储专用的覆盖掩模这样的取向,则修正抽取的覆盖掩模。
10.一种用于为像素确定反映了原始边缘矢量取向的覆盖掩模的设备,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的取向边缘,并且其中定义了具有不同的预定取向的代表性的边缘矢量,关于所述代表性边缘矢量的所述预定取向被选择为,使得将所述代表性边缘矢量在对于笛卡尔坐标系统的四个象限角度相关的空间上被均匀分布,所述设备包括:
计算部分,用于确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限;
象限消歧部分,用于将原始边缘矢量转置到所述四个象限中预定的一个象限中;
边缘矢量消歧部分,用于选择所述预定象限中所述代表性边缘向量中的一个,该代表性边缘矢量具有同所述转置部分提供的转置的边缘矢量相似的取向;
覆盖掩模查找部分,用于抽取所存储的覆盖掩模,该覆盖掩模与由所述边缘矢量消歧部分所选择的代表性边缘矢量相关联、并且由此间接地与所述转置部分提供的转置边缘矢量相关联;和
变换部分,用于将所述覆盖掩模查找部分提供的覆盖掩模变换到所述计算部分确定的象限。
11.权利要求10的设备,进一步包括存储单元,用于存储多个覆盖掩模,所述覆盖掩模查找部分访问所述存储单元用于抽取覆盖掩模,该覆盖掩模间接与所述转置部分提供的转置边缘矢量相关联。
12.权利要求10的设备,进一步包括组合部分,用于组合关于特定像素的由所述变换部分提供的多个变换覆盖掩模,并且基于所述组合的覆盖掩模修改用于显示的所述像素的颜色。
13.权利要求12的设备,进一步包括显示器,用于显示像素,其颜色由所述组合单元修改。
14.权利要求10的设备,其中所述设备是移动终端。
15.权利要求10的设备,其中所述设备是计算机。
16.权利要求10的设备,其中所述设备是芯片。
17.一种为像素确定反映了原始边缘矢量取向的覆盖掩模的图形显示系统,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的被取向的边缘,并且其中定义了具有不同的预定取向的代表性的边缘矢量,关于所述代表性边缘矢量的所述预定取向被选择为,使得将所述代表性边缘矢量在对于笛卡尔坐标系统的四个象限角度相关的空间上被均匀分布,所述图形显示系统包括所述显示设备和处理设备,所述处理设备包括:
计算部分,用于确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限;
象限消歧部分,用于将原始边缘矢量转置到所述四个象限中预定的一个象限中;
边缘矢量消歧部分,用于选择所述预定象限中所述代表性边缘向量中的一个,该代表性边缘矢量具有同所述转置部分提供的转置的边缘矢量相似的取向;
覆盖掩模查找部分,用于抽取所存储的覆盖掩模,该覆盖掩模与由所述边缘矢量消歧部分所选择的代表性边缘矢量相关联、并且由此间接地与所述转置部分提供的转置边缘矢量相关联;
变换部分,用于将所述覆盖掩模查找部分提供的覆盖掩模变换到所述计算部分确定的象限;和
组合部分,用于组合关于特定像素的由所述变换部分提供的所变换的覆盖掩模,并且基于组合的覆盖掩模,修改用于由所述显示设备显示的所述像素的颜色。
18.一种具有程序代码的软件程序产品,用于为像素确定反映了原始边缘矢量取向的覆盖掩模,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的取向边缘,并且其中定义了具有不同的预定取向的代表性的边缘矢量,关于所述代表性边缘矢量的所述预定取向被选择为,使得将所述代表性边缘矢量在对于笛卡尔坐标系统的四个象限角度相关的空间上被均匀分布,所述图形显示系统包括所述显示设备和处理设备,该程序代码存储在机器可读载体中,用于:
确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限;
将原始边缘矢量转置到所述四个象限中预定的一个象限中;
选择所述预定象限中所述代表性边缘矢量其中之一,该代表性边缘矢量具有同所述转置的边缘矢量相似的取向;
抽取所存储的覆盖掩模,其与所述选择的代表性边缘矢量相关联、并且由此与转置的边缘矢量间接关联;和
将所述抽取的覆盖掩模变换到原始边缘矢量由于其取向而所属的所述象限;
其中所述程序代码是由信号处理部件执行的。
Claims (19)
1.一种为像素确定反映了原始边缘矢量取向的覆盖掩模的方法,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的取向的边缘,所述方法包括:
a)确定笛卡尔坐标系统的四个象限中的一个象限,所述原始边缘矢量由于其取向而属于该象限;
b)将所述原始边缘矢量转置到所述四个象限中预定的一个象限中;
c)抽取至少间接同所述转置的边缘矢量关联的所存储的覆盖掩模;和
d)将所述抽取的覆盖掩模变换到所述原始边缘矢量所属的所述象限。
2.权利要求1的方法,进一步包括确定所述原始边缘矢量和所述像素的中心之间的距离,其中每个所存储的覆盖掩模同到各个像素中心的特定距离的以及特定取向的边缘矢量的组合相关联,并且其中在步骤c)中,抽取所存储的覆盖掩模,其至少间接地同所述转置的边缘矢量、以及同针对所述原始边缘矢量确定的所述距离相关联。
3.权利要求2的方法,其中原始边缘矢量是通过以所述原始边缘矢量为特征的参数定义的,第一参数dL1(M)标识了所述边缘矢量离开所述像素的中心M的距离,第二参数dex(α)表示所述边缘矢量的源点和所述边缘矢量的宿点之间的x方向上的距离,且第三参数dey(α)表示所述边缘矢量的所述源点和所述边缘矢量的所述宿点之间的y方向上的距离,其中所述原始边缘矢量所属的所述象限是基于所述第二和所述第三参数的符号确定的,并且其中通过适合所述第一参数以及所述第二和所述第三参数中的一个的值,将所述原始边缘矢量转置到所述预定的象限。
4.权利要求3的方法,其中所述预定象限是所述笛卡尔坐标系统的第一象限,并且其中执行将原始边缘矢量转置到所述第一象限中是:
在原始边缘矢量属于所述第一象限的情况中,通过保持所述第一参数dL1(M)和所述第二参数dex(α)的原始值;
在原始边缘矢量属于所述第二象限的情况中,通过向所述第二参数dex(α)分配所述第三参数dey(α)的反相的原始值,并且通过保持所述第一参数dL1(M)的原始值;
在原始边缘矢量属于所述第三象限的情况中,通过向所述第一参数dex(α)分配所述第一参数dex(α)的反相的原始值,并且通过向所述第一参数dL1(M)分配所述第一参数dL1(M)的反相的原始值;
在原始边缘矢量属于所述第四象限的情况中,通过向所述第一参数dex(α)分配所述第二参数dey(α)的原始值,并且通过向所述第一参数dL1(M)分配所述第一参数dL1(M)的反相的原始值。
5.权利要求1的方法,其中所述预定象限是所述笛卡尔坐标系统的第一象限,其中每个所存储的覆盖掩模包括表示关于覆盖由显示器上的所述像素表示的区域的子像素栅格的子像素值的位序列,并且其中执行将所述抽取的覆盖掩模变换到所述原始边缘矢量所属的所述象限是:
在原始边缘矢量属于所述第一象限的情况中,通过保持所述抽取的覆盖掩模;
在原始边缘矢量属于所述第二象限的情况中,通过将所述抽取的覆盖掩模逆时针旋转90°;
在原始边缘矢量属于所述第三象限的情况中,通过对所述抽取的覆盖掩模的每个位按位求反;
在原始边缘矢量属于所述第四象限的情况中,通过将所述抽取的覆盖掩模逆时针旋转90°,并且通过对所述旋转的覆盖掩模的每个位按位求反。
6.权利要求1的方法,进一步包括为所述几何基元的每个边缘确定覆盖掩模,以及将所述变换的覆盖掩模组合为关于所述像素的单一的覆盖掩模,所述组合的覆盖掩模表示所述像素由所述几何基元覆盖的范围。
7.权利要求1的方法,其中定义了具有不同的预定取向的代表性的边缘矢量,通过所述预定取向以旋转对称的方式将所述代表性的边缘矢量分布到所述笛卡尔坐标系统中的所述四个象限,由此如果以90°的步长旋转针对一个象限定义的代表性边缘矢量的集合,则所产生的边缘矢量准确地对应于针对另一象限定义的代表性边缘矢量的集合,所述方法进一步包括在步骤b)之后选择所述预定象限中所述代表性边缘矢量其中之一,该代表性边缘矢量具有同所述转置的边缘矢量相似的取向,其中步骤c)包括抽取所存储的覆盖掩模,其同所述选择的代表性边缘矢量相关联,并由此间接地同所述转置的边缘矢量相关联。
8.权利要求7的方法,其中所述预定象限的第一代表性边缘矢量位于关于所述预定象限的第一相邻象限的第一边界上,其中位于关于所述预定象限的第二相邻象限的第二边界上的代表性边缘矢量构成了所述第二相邻象限的第一代表性边缘矢量,其中如果所述转置的边缘矢量具有同所述第二相邻象限的所述第一代表性边缘矢量相似的取向,则所述方法包括在步骤b)之后例外的额外步骤,即选择所述预定象限的所述第一代表性边缘矢量作为代表性边缘矢量,其中步骤c)包括,抽取同所述选择的代表性边缘矢量相关联的所存储的覆盖掩模,并且作为在步骤c)之后例外的额外步骤,修正所述抽取的覆盖掩模。
9.权利要求7的方法,其中关于所述代表性边缘矢量的所述预定取向被选择为,使得将所述代表性边缘矢量在对于所述四个象限角度相关的空间上被均匀分布。
10.权利要求1的方法,其中所述几何基元的边缘取向被选择为顺时针或逆时针中的一个,其中仅针对所述顺时针和所述逆时针取向中的一个存储专用的覆盖掩模,并且其中如果几何基元具有对于其未存储专用的覆盖掩模这样的取向,则修正抽取的覆盖掩模。
11.一种用于为像素确定反映了原始边缘矢量取向的覆盖掩模的设备,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的取向边缘,所述设备包括:
计算部分,用于确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限;
象限消歧部分,用于将原始边缘矢量转置到所述四个象限中预定的一个象限中;
覆盖掩模查找部分,用于抽取所存储的覆盖掩模,该覆盖掩模至少间接地与所述转置部分提供的转置边缘矢量相关联;和
变换部分,用于将所述覆盖掩模查找部分提供的覆盖掩模变换到所述计算部分确定的象限。
12.权利要求11的设备,进一步包括存储单元,用于存储多个覆盖掩模,所述覆盖掩模查找部分访问所述存储单元用于抽取覆盖掩模,该覆盖掩模至少间接与所述转置部分提供的转置边缘矢量相关联。
13.权利要求11的设备,进一步包括组合部分,用于组合关于特定像素的由所述变换部分提供的多个变换覆盖掩模,并且基于所述组合的覆盖掩模修改用于显示的所述像素的颜色。
14.权利要求13的设备,进一步包括显示器,用于显示像素,其颜色由所述组合单元修改。
15.权利要求11的设备,其中所述设备是移动终端。
16.权利要求11的设备,其中所述设备是计算机。
17.权利要求11的设备,其中所述设备是芯片。
18.一种为像素确定反映了原始边缘矢量取向的覆盖掩模的图形显示系统,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的被取向的边缘,所述图形显示系统包括所述显示设备和处理设备,所述处理设备包括:
计算部分,用于确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限;
象限消歧部分,用于将原始边缘矢量转置到所述四个象限中预定的一个象限中;
覆盖掩模查找部分,用于抽取所存储的覆盖掩模,该覆盖掩模至少间接地与所述转置部分提供的转置边缘矢量相关联;
变换部分,用于将所述覆盖掩模查找部分提供的覆盖掩模变换到所述计算部分确定的象限;和
组合部分,用于组合关于特定像素的由所述变换部分提供的所变换的覆盖掩模,并且基于组合的覆盖掩模,修改用于由所述显示设备显示的所述像素的颜色。
19.一种具有程序代码的软件程序产品,用于为像素确定反映了原始边缘矢量取向的覆盖掩模,该像素被用于在显示器上显示至少一部分几何基元,其中所述原始边缘矢量表示所述几何基元的取向边缘,该程序代码存储在机器可读载体中,用于:
确定笛卡尔坐标系统的四个象限中的一个象限,原始边缘矢量由于其取向而属于该象限;
将原始边缘矢量转置到所述四个象限中预定的一个象限中;
抽取所存储的覆盖掩模,其至少与转置边缘矢量间接关联;和
将所述抽取的覆盖掩模变换到原始边缘矢量由于其取向而所属的所述象限;
其中所述程序代码是由信号处理部件执行的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/414,462 | 2003-04-15 | ||
US10/414,462 US7006110B2 (en) | 2003-04-15 | 2003-04-15 | Determining a coverage mask for a pixel |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1774727A true CN1774727A (zh) | 2006-05-17 |
Family
ID=33158703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200480010225XA Pending CN1774727A (zh) | 2003-04-15 | 2004-04-13 | 为像素确定覆盖掩模 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7006110B2 (zh) |
EP (1) | EP1614071A2 (zh) |
KR (1) | KR20050121263A (zh) |
CN (1) | CN1774727A (zh) |
WO (1) | WO2004093012A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794456A (zh) * | 2009-01-15 | 2010-08-04 | Arm有限公司 | 用于处理图形的方法和装置 |
CN103238178A (zh) * | 2010-11-15 | 2013-08-07 | 思科技术公司 | 用于在视频环境中提供增强的图形的系统和方法 |
CN104050704A (zh) * | 2013-03-14 | 2014-09-17 | 辉达公司 | 用于可变分辨率渲染的一致性顶点捕捉 |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US10204391B2 (en) | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
CN113225558A (zh) * | 2020-02-05 | 2021-08-06 | 苹果公司 | 平滑定向和dc帧内预测 |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8692844B1 (en) | 2000-09-28 | 2014-04-08 | Nvidia Corporation | Method and system for efficient antialiased rendering |
US7589729B2 (en) * | 2002-05-15 | 2009-09-15 | Mental Images Gmbh | Image synthesis by rank-1 lattices |
US7142211B2 (en) * | 2003-07-07 | 2006-11-28 | Arcsoft, Inc. | Graphic engine for fill style transferring in a resource-constrained device |
US20050007369A1 (en) * | 2003-07-07 | 2005-01-13 | Jiangen Cao | Graphic engine for approximating a quadratic Bezier curve in a resource-constrained device |
US7161597B2 (en) * | 2003-07-07 | 2007-01-09 | Arcsoft, Inc. | Graphic engine for rasterizing a straight edge in a resource-constrained device |
US8775112B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for increasing die yield |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US9218689B1 (en) * | 2003-12-31 | 2015-12-22 | Zilabs Inc., Ltd. | Multi-sample antialiasing optimization via edge tracking |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
EP1908017A2 (en) * | 2005-06-23 | 2008-04-09 | Mental Images GmbH | Image synthesis by rank-1 lattices |
US8269788B2 (en) * | 2005-11-15 | 2012-09-18 | Advanced Micro Devices Inc. | Vector graphics anti-aliasing |
US8294731B2 (en) * | 2005-11-15 | 2012-10-23 | Advanced Micro Devices, Inc. | Buffer management in vector graphics hardware |
US7460124B2 (en) * | 2005-12-05 | 2008-12-02 | Microsoft Corporation | Vector-based geometric polygon schema |
US8698811B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Nested boustrophedonic patterns for rasterization |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US8390645B1 (en) | 2005-12-19 | 2013-03-05 | Nvidia Corporation | Method and system for rendering connecting antialiased line segments |
US7965902B1 (en) | 2006-05-19 | 2011-06-21 | Google Inc. | Large-scale image processing using mass parallelization techniques |
US20070268304A1 (en) * | 2006-05-22 | 2007-11-22 | Microsoft Corporation | Gradient Brush and Stroke |
US7854518B2 (en) * | 2006-06-16 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Mesh for rendering an image frame |
US7800628B2 (en) * | 2006-06-16 | 2010-09-21 | Hewlett-Packard Development Company, L.P. | System and method for generating scale maps |
US9137504B2 (en) | 2006-06-16 | 2015-09-15 | Hewlett-Packard Development Company, L.P. | System and method for projecting multiple image streams |
US7907792B2 (en) * | 2006-06-16 | 2011-03-15 | Hewlett-Packard Development Company, L.P. | Blend maps for rendering an image frame |
US8762493B1 (en) | 2006-06-22 | 2014-06-24 | Google Inc. | Hierarchical spatial data structure and 3D index data versioning for generating packet data |
US8928676B2 (en) | 2006-06-23 | 2015-01-06 | Nvidia Corporation | Method for parallel fine rasterization in a raster stage of a graphics pipeline |
US7652677B2 (en) * | 2006-08-03 | 2010-01-26 | Qualcomm Incorporated | Graphics system employing pixel mask |
US7944442B2 (en) * | 2006-09-26 | 2011-05-17 | Qualcomm Incorporated | Graphics system employing shape buffer |
US8478808B1 (en) * | 2006-10-20 | 2013-07-02 | Gauda, Inc. | Approximate calculation of 2D matrix entries via GPU |
US8237738B1 (en) * | 2006-11-02 | 2012-08-07 | Nvidia Corporation | Smooth rasterization of polygonal graphics primitives |
US8427487B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Multiple tile output using interface compression in a raster stage |
US8243069B1 (en) * | 2006-11-03 | 2012-08-14 | Nvidia Corporation | Late Z testing for multiple render targets |
US8482567B1 (en) | 2006-11-03 | 2013-07-09 | Nvidia Corporation | Line rasterization techniques |
US8102394B2 (en) * | 2006-12-14 | 2012-01-24 | Mental Images Gmbh | Computer graphics using meshless finite elements for light transport |
US20080284780A1 (en) * | 2007-05-15 | 2008-11-20 | R-Ming Hsu | Method for enabling alpha-to-coverage transformation |
US8724483B2 (en) | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
CN101911123B (zh) * | 2008-01-15 | 2012-09-26 | 三菱电机株式会社 | 图形描绘装置以及图形描绘方法 |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8269775B2 (en) * | 2008-12-09 | 2012-09-18 | Qualcomm Incorporated | Discarding of vertex points during two-dimensional graphics rendering using three-dimensional graphics hardware |
US8328365B2 (en) | 2009-04-30 | 2012-12-11 | Hewlett-Packard Development Company, L.P. | Mesh for mapping domains based on regularized fiducial marks |
US20110063305A1 (en) | 2009-09-16 | 2011-03-17 | Nvidia Corporation | Co-processing techniques on heterogeneous graphics processing units |
US9530189B2 (en) | 2009-12-31 | 2016-12-27 | Nvidia Corporation | Alternate reduction ratios and threshold mechanisms for framebuffer compression |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
US9171350B2 (en) | 2010-10-28 | 2015-10-27 | Nvidia Corporation | Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up |
US9395193B2 (en) * | 2012-06-10 | 2016-07-19 | Apple Inc. | Scalable and efficient cutting of map tiles |
US9390540B2 (en) * | 2012-12-21 | 2016-07-12 | Nvidia Corporation | Deferred shading graphics processing unit, geometry data structure and method of performing anti-aliasing in deferred shading |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
RU2013110494A (ru) * | 2013-03-11 | 2014-09-20 | ЭлЭсАй Корпорейшн | Устройство обработки изображений с уровнем оценки, реализующим программный и аппаратный алгоритмы разной точности |
US9183652B2 (en) * | 2013-05-15 | 2015-11-10 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US9710894B2 (en) | 2013-06-04 | 2017-07-18 | Nvidia Corporation | System and method for enhanced multi-sample anti-aliasing |
US9501859B2 (en) * | 2013-07-19 | 2016-11-22 | Adobe Systems Incorporated | Triangle rasterization |
US9633441B2 (en) * | 2014-06-09 | 2017-04-25 | Omnivision Technologies, Inc. | Systems and methods for obtaining image depth information |
US10410081B2 (en) * | 2014-12-23 | 2019-09-10 | Intel Corporation | Method and apparatus for a high throughput rasterizer |
US10242286B2 (en) | 2015-03-25 | 2019-03-26 | Intel Corporation | Edge-based coverage mask compression |
US9922449B2 (en) | 2015-06-01 | 2018-03-20 | Intel Corporation | Apparatus and method for dynamic polygon or primitive sorting for improved culling |
US9959643B2 (en) | 2015-10-29 | 2018-05-01 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US10089964B2 (en) * | 2015-12-18 | 2018-10-02 | Intel Corporation | Graphics processor logic for encoding increasing or decreasing values |
GB2560306B (en) * | 2017-03-01 | 2020-07-08 | Sony Interactive Entertainment Inc | Image processing |
US10319064B2 (en) * | 2017-04-10 | 2019-06-11 | Intel Corporation | Graphics anti-aliasing resolve with stencil mask |
CN107886840B (zh) * | 2017-12-05 | 2020-12-08 | 京东方科技集团股份有限公司 | 异形显示面板及其制作方法、装置与显示装置 |
GB2570172B (en) | 2018-06-29 | 2020-02-12 | Imagination Tech Ltd | Conservative Rasterization Using Gradients |
KR102311200B1 (ko) * | 2020-11-27 | 2021-10-13 | 한국건설기술연구원 | Bim 데이터를 기반으로 건설장비 라이브러리를 구축하기 위한 장치 및 그 방법 |
US11882295B2 (en) | 2022-04-15 | 2024-01-23 | Meta Platforms Technologies, Llc | Low-power high throughput hardware decoder with random block access |
US20230334736A1 (en) * | 2022-04-15 | 2023-10-19 | Meta Platforms Technologies, Llc | Rasterization Optimization for Analytic Anti-Aliasing |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369739A (en) | 1993-07-09 | 1994-11-29 | Silicon Graphics, Inc. | Apparatus and method for generating point sample masks in a graphics display system |
KR100200818B1 (ko) | 1993-11-30 | 1999-06-15 | 윤종용 | 분할된 룩업테이블을 이용한 효과적인 앤티에일리어싱 방법 |
US5742277A (en) | 1995-10-06 | 1998-04-21 | Silicon Graphics, Inc. | Antialiasing of silhouette edges |
USH1812H (en) * | 1997-10-24 | 1999-11-02 | Sun Microsystems, Inc. | Method for encoding bounding boxes of drawing primitives to be rendered for multi-resolution supersampled frame buffers |
US6577312B2 (en) * | 1998-02-17 | 2003-06-10 | Sun Microsystems, Inc. | Graphics system configured to filter samples using a variable support filter |
ATE249074T1 (de) | 1998-03-05 | 2003-09-15 | Microsoft Corp | Antialiasing mit unterabtastung für textur- raender |
US6919906B2 (en) * | 2001-05-08 | 2005-07-19 | Microsoft Corporation | Discontinuity edge overdraw |
-
2003
- 2003-04-15 US US10/414,462 patent/US7006110B2/en not_active Expired - Lifetime
-
2004
- 2004-04-13 WO PCT/IB2004/001293 patent/WO2004093012A2/en not_active Application Discontinuation
- 2004-04-13 KR KR1020057019577A patent/KR20050121263A/ko active IP Right Grant
- 2004-04-13 EP EP04727070A patent/EP1614071A2/en not_active Withdrawn
- 2004-04-13 CN CNA200480010225XA patent/CN1774727A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794456A (zh) * | 2009-01-15 | 2010-08-04 | Arm有限公司 | 用于处理图形的方法和装置 |
US8681168B2 (en) | 2009-01-15 | 2014-03-25 | Arm Limited | Methods of and apparatus for processing graphics |
CN103238178A (zh) * | 2010-11-15 | 2013-08-07 | 思科技术公司 | 用于在视频环境中提供增强的图形的系统和方法 |
CN103238178B (zh) * | 2010-11-15 | 2016-01-13 | 思科技术公司 | 用于在视频环境中提供增强的图形的系统和方法 |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
CN104050704A (zh) * | 2013-03-14 | 2014-09-17 | 辉达公司 | 用于可变分辨率渲染的一致性顶点捕捉 |
US10204391B2 (en) | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
CN113225558A (zh) * | 2020-02-05 | 2021-08-06 | 苹果公司 | 平滑定向和dc帧内预测 |
Also Published As
Publication number | Publication date |
---|---|
US7006110B2 (en) | 2006-02-28 |
US20040207642A1 (en) | 2004-10-21 |
WO2004093012A2 (en) | 2004-10-28 |
EP1614071A2 (en) | 2006-01-11 |
WO2004093012B1 (en) | 2005-03-31 |
WO2004093012A3 (en) | 2005-02-17 |
KR20050121263A (ko) | 2005-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1774727A (zh) | 为像素确定覆盖掩模 | |
CN1324526C (zh) | 视频信号的自适应缩放 | |
CN1111836C (zh) | 数据处理器和数据处理设备 | |
CN1845178A (zh) | 使用各向异性纹理映射的图像绘制方法和图像绘制设备 | |
CN1691069A (zh) | 采用多图形处理器加速方格片元过滤的实时体绘制方法 | |
CN1008021B (zh) | 图象数据处理方法及其系统 | |
CN1250013C (zh) | 用于校正读取图象缺陷的图象处理 | |
CN1264480C (zh) | 三维反投影方法和一种x射线计算机层析成像装置 | |
CN1254676C (zh) | 由锥形束投影数据再现物体三维ct图象的方法 | |
CN1293518C (zh) | 具有割截与支援框线模式的三角形描绘方法与装置 | |
CN1268035A (zh) | 利用螺旋扫描ct再现立体图像 | |
CN1795468A (zh) | 在基于扫描线的光栅图像处理器中跟踪深度的方法 | |
CN1653487A (zh) | 具有边绘制单元的图形引擎以及合并有该图形引擎的电子装置及存储器 | |
CN1942896A (zh) | 用图形处理单元处理图形操作的系统和方法 | |
CN1272933A (zh) | 图像处理装置与图像处理方法、程序提供媒体、以及数据提供媒体 | |
CN1924931A (zh) | 视频绘制装置及方法 | |
CN1656465A (zh) | 可缩放的高性能3d图形显示 | |
CN1333528A (zh) | 显示设备、显示方法和记录显示控制程序的记录媒体 | |
CN1674049A (zh) | 图像处理装置及其方法 | |
CN1278350A (zh) | 三维图象绘制装置及方法 | |
CN1343343A (zh) | 处理图像的方法和设备 | |
CN1527990A (zh) | 图像处理器及其组件、和渲染方法 | |
CN101046892A (zh) | 图形描绘设备 | |
CN1684058A (zh) | 处理器 | |
CN1526098A (zh) | 与二维或三维几何实体相关的数据的输出方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |