计算各向异性滤波的细节等级的制作方法

文档序号:6335416阅读:714来源:国知局
专利名称:计算各向异性滤波的细节等级的制作方法
技术领域
本申请大体上涉及计算机处理以及,尤其涉及图形处理。
背景技术
在图形处理中,必须将屏幕空间中的像素投影或映射至纹理空间中来对其进行纹 理化。将2X2的像素印章或像素方格从x,y屏幕空间投影到U,ν纹理空间。这些原始像 素的投影在纹理空间中形成了四个采样点。然后滤波每个采样点周围的四个纹理像素,以 返回四个经滤波的颜色,每个采样对应一个经滤波的颜色。如果投影的位置互相接近,则各投影之间的所有纹理像素皆对最终的颜色有贡 献,得到消除了锯齿伪影的投影。如果投影的位置互相之间相距太远,则采样点之间的纹理 像素对最终的颜色没有贡献。这就由于锯齿的存在而造成了低质量。如果投影之间的距离 相似,则这可通过Mipmapping (MIP映射)技术来解决。如果投影之间的距离不相似,则用 以防止锯齿的Mipmapping技术会由于引入模糊而导致低质量。在这种情况下必须使用各 向异性滤波,来同时避免锯齿和模糊伪影二者。各向异性滤波增强了相对于相机而处于斜视角的表面上(在此情况下纹理的投 影看上去是非正交的)的纹理像素的图像质量。各向异性滤波可减少或消除锯齿效应而不 引入模糊。


图1是根据一个实施例,屏幕空间到纹理空间的映射的描述;图2是本发明的一个实施例的流程图;以及图3是一个实施例的示意图。
具体实施例方式通常,通过对多个普通的双线性或三线性纹理滤波器的结果进行混合,来实现各 向异性滤波。这种混合包括计算细节等级以及要使用的纹理采样数,以便由采样所覆盖的 纹理像素区域可以消除或者减少锯齿伪影。椭圆加权平均定义了一个椭圆,其表示在纹理中的扭曲的滤波器区域。椭圆加权 平均基于该椭圆加权平均椭圆的短轴或长轴长度来计算需要的细节等级和采样数。然而, 进行真正的椭圆加权平均花销较大,以至于其并不能在图形处理单元中使用。根据一些实施例,可以产生椭圆加权平均椭圆的长轴或短轴长度的相近的近似 值,此举为各向异性纹理滤波产生相对较高质量的细节等级和采样位置数目,而不用花费 采用真正的椭圆加权平均时所需要的芯片面积。椭圆加权平均根据两个梯度向量生成一个椭圆,这两个梯度向量定义了在给定采 样位置处的纹理扭曲(texture warp)。该纹理扭曲基本上是图像从屏幕空间至纹理空间的 弯曲。这两个向量可以定义为(dudx,dvdx)和(dudy,dvdy)。dudx和dvdx项代表对应于
4在像素空间中沿着X轴移动一个像素,在纹理空间中的沿着U轴和V轴的距离。类似的,其 他两项定义为对应于在像素空间中沿着Y轴移动一步。可根据这些梯度来计算近似的长轴和短轴长度。这些近似的轴长的最大误差是2 的平方根,但是这些长度的乘积精确地等于正确的或真正的椭圆加权平均长度的乘积。因 此,可以通过计算修正因子来得到正确的轴长,将此修正因子乘以一个轴长以及除以另一 轴长。这样可以计算基于经修正的椭圆加权平均的细节等级和采样数,而不会引入在使用 真正的椭圆加权平均时所固有的芯片面积方面的开销。此修正因子和椭圆的绝对尺寸或角度无关。相反,此修正因子依赖于近似的短轴 和长轴的相对长度以及梯度向量之间的角度的余弦值,这两者的值都位于0到1的范围内。 这样,对此精确的修正因子的简单近似得到的长轴或短轴的长度在真实值的百分之二以 内。因此,可以高效地计算相近的近似值。参考图1,可以通过将较长向量a作为长轴的长度来得到近似的长轴和短轴长度。 将较短向量b在向量a上的高度c作为短轴长度。高度c可以是dudx*dvdy减去dvdx*dudy 除以向量a的长度再取绝对值计算得到。将高度c作为近似的短轴长度。这些近似的长轴和短轴长度以一个因子2的平方根不同于正确的椭圆加权平均 的长轴和短轴长度。尽管如此,这些近似的长轴和短轴长度的乘积等于实际的椭圆加权平 均的长轴和短轴长度的乘积。因此,两个假设长度以相同的因子偏移,但是是在相反的方向 上偏移。该因子只依赖于两个向量a和b的相对长度以及这两个向量之间的角度。因此, 基于dudx、dvdx、dudy和dvdy的四变量问题就减少为二变量问题。当精确的修正相当复杂并且可能难以实现时,可以采用一种可以以实际的方式实 现的近似。这两个向量之间的角度的余弦值和这两个向量的长度比皆限制在0到1的范围 内。因此,它们可以被有效地表示为定点数。这两个向量间的角度的余弦值乘以它们的长 度比的平方所得到的乘积也是0到1之间的值。因此这些乘法运算也可用高效的定点算法
来计算。由此将该乘积从范围W.. 1]按比例扩大到范围[1.. V^]以生成所述近似修正因
子,将该近似修正因子乘以长轴长度以及除以短轴长度。这个结果是在真正的椭圆加权平 均的长轴或短轴长度的大约百分之二以内的轴长。在某些实施例中,此计算可以由查找表来替代。在其他实施例中,可以使用类似的 等式来基于两个变量,即向量的相对长度和向量之间的角度,来产生近似修正因子。因此,参考图2,在此图中图示的序列10可由硬件或软件实现。在软件实施中,指 令序列可存储在计算机可读介质中。合适的计算机可读介质包括任何存储设备,包括磁性 存储器、光学存储器、或者半导体存储器。存储在这样的计算机可读介质中的指令序列由计 算机或者处理器执行。作为两个实例,该计算机或者处理器可为通用处理器或者图形处理 单元。首先,计算长轴的长度,如模块12所示。选择两个向量中较长的那个向量作为向量 a。之后,计算向量b在向量a上的高度,如模块14所示。接着,将向量b在向量a上的高 度设为等于短轴长度,如模块16所示。最后,如模块18所示,基于向量a和b之间的角度 以及向量a和b的长度比来计算修正因子。如前所述,随后,用此修正因子乘以长轴长度以 及除以短轴长度。计算机系统130,如图3所示,可包括硬盘驱动器134和可移动介质136,其由总线 104耦合至芯片组核心逻辑110。在一个实施例中,此核心逻辑可(通过总线10 耦合至图形处理器112和主处理器100。图形处理器112又可由总线106耦合至帧缓冲器114。帧 缓冲器114可由总线107耦合至显示屏118,显示屏118又由总线108耦合至传统元件,如 键盘或者鼠标120。在软件实施方案中,用以实现序列10的相关代码可存储在包括主存储器132的任 何合适的半导体存储器、磁性存储器、或者光学存储器中。因此,在一个实施例中,代码139 可存储在机器可读介质中,如主存储器132或帧缓冲器114,以供处理器(如处理器100或 者图形处理器11 执行。在软件实施例中,图2中所示的序列10可为图形处理器112的一部分。然而,该 序列也可在存储在帧缓冲器114或主存储器132中的软件(如139所示)中执行。当然, 这种软件可驻留在图形处理器112或任何其他存储设备中。这里描述的图形处理技术可在各种硬件结构中实现。例如,图形功能可集成于芯 片组内。作为替代,可使用分立的图形处理器。作为再另一实施例,图形功能可由通用处理 器(包括多核处理器)实现。整个本说明书中提到的“一个实施例”或者“实施例”表示结合此实施例所述的特 定的特征、结构或特性包括在本发明中包含的至少一个实现方式中。因此,短语“一个实施 例”或“在实施例中”的出现并不必然指代同一实施例。而且,特定的特征、结构或特性可用 除了所图示说明的特定实施例之外的其它合适的形式来实现,且所有这些形式皆包含在本 申请的权利要求中。虽然已经参照有限数目的实施例对本发明进行了描述,但本领域技术人员可以由 此领会许多修改和变化。所附的权利要求旨在覆盖落入本发明实际精神和范围内的所有这 样的修改和变化。
权利要求
1.一种方法,包括估计椭圆滤波器区域的短轴和长轴的初始长度;生成用于所述估计的长度的修正因子;使用所述修正的长度来对图形信息进行各向异性地滤波。
2.如权利要求1所述的方法,其中,估计包括使用两个向量来定义所述椭圆滤波器区域。
3.如权利要求2所述的方法,其中,估计包括使用所述向量的相对长度和所述向量之 间的角度来估计所述长轴和短轴的长度。
4.如权利要求1所述的方法,其中,估计所述短轴的长度包括基于用于所述长轴和所 述短轴的向量之间的角度来进行估计。
5.如权利要求4所述的方法,包括基于所述两个向量之间的所述角度的余弦值来进 行估计。
6.如权利要求1所述的方法,包括基于用于所述长轴和所述短轴的向量的长度的比 值来进行估计。
7.如权利要求3所述的方法,包括仅使用在0到1之间的数来进行估计。
8.如权利要求1所述的方法,包括基于修正因子进行估计,将所述修正因子乘以所述 长轴的长度以及除以所述短轴的长度。
9.如权利要求1所述的方法,包括基于用于所述短轴的向量在用于所述长轴的向量 上的高度来进行估计。
10.如权利要求1所述的方法,包括使用较短向量在较长向量上的高度作为所述短轴 的长度。
11.如权利要求10所述的方法,包括将所述高度计算为dudX*dvdy减去dvdX*dudy除 以用于所述长轴的向量的长度再取绝对值。
12.—种存储指令的计算机可读介质,所述指令由计算机执行来估计椭圆滤波器区域的短轴和长轴的初始长度;生成用于所述估计的长度的修正因子;使用所述修正的长度来对图形信息进行各向异性地滤波。
13.如权利要求12所述的介质,进一步存储用于以下的指令使用定义了椭圆滤波器 区域的两个向量来估计初始长度,以及使用所述向量的相对长度和所述向量之间的角度来 估计所述长轴和所述短轴的长度。
14.如权利要求12所述的介质,进一步存储用于以下的指令基于用于所述长轴和所 述短轴的向量之间的角度来估计所述短轴的长度。
15.如权利要求14所述的介质,进一步存储用于以下的指令基于所述向量之间的所 述角度的余弦值来估计所述短轴的长度。
16.如权利要求12所述的介质,进一步存储用于以下的指令基于用于所述长轴和所 述短轴的向量的长度的比值来估计所述短轴的长度。
17.如权利要求15所述的介质,进一步存储用于以下的指令仅使用在0到1之间的 数来进行估计。
18.如权利要求12所述的介质,进一步存储用于以下的指令基于修正因子来估计所述短轴的长度,将所述修正因子乘以所述长轴的长度以及除以所述短轴的长度。
19.如权利要求12所述的介质,进一步存储用于以下的指令基于用于所述短轴的向 量在用于所述长轴的向量上的高度来进行估计。
20.如权利要求12所述的介质,进一步存储用于以下的指令使用用于所述短轴的向 量在用于所述长轴的向量上的高度作为所述短轴的长度。
21.如权利要求20所述的介质,进一步存储用于以下的指令将用于所述短轴的向量 在用于所述长轴的向量上的所述高度计算为dudX*dvdy减去dvdX*dudy除以用于所述长轴 的向量的长度再取绝对值。
22.一种装置,包括处理器,用于估计椭圆滤波器区域的短轴和长轴的初始长度;生成用于所述估计的长 度的修正因子;以及使用所述修正的长度来对图形信息进行各向异性地滤波;以及耦合至所述处理器的存储器。
23.如权利要求22所述的装置,所述处理器用于基于用于所述长轴和所述短轴的向量 之间的角度来估计短轴的长度。
24.如权利要求23所述的装置,所述处理器用于基于所述两个向量之间的角度的余弦 值来进行估计。
25.如权利要求22所述的装置,所述处理器用于基于用于所述长轴和所述短轴的向量 的长度的比值来进行估计。
26.如权利要求M所述的装置,所述处理器用于仅使用在0到1之间的数来进行估计。
27.如权利要求22所述的装置,所述处理器用于基于修正因子来进行估计,将所述修 正因子乘以所述长轴的长度以及除以所述短轴的长度。
28.如权利要求22所述的装置,所述处理器用于基于用于所述短轴的向量在用于所述 长轴的向量上的高度来进行估计。
29.如权利要求22所述的装置,所述处理器用于使用较短向量在较长向量上的高度作 为所述短轴的长度。
30.如权利要求四所述的装置,所述处理器用于将所述高度计算为dudX*dvdy减去 dvdx^dudy除以用于所述长轴的向量的长度再取绝对值。
全文摘要
计算各向异性滤波的细节等级。可在图形处理中进行各向异性滤波而不必实际地计算椭圆加权平均椭圆。取而代之的是,可以对短轴的长度使用估计值。该估计避免了椭圆加权平均椭圆的计算中固有的复杂性并减少了开销,同时依旧获得足够的精度。
文档编号G06T15/04GK102087751SQ20101053538
公开日2011年6月8日 申请日期2010年9月26日 优先权日2009年12月3日
发明者L·塞勒 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1