使用平行处理以提高多模式过滤器性能的纹理过滤器的制作方法

文档序号:6554137阅读:373来源:国知局
专利名称:使用平行处理以提高多模式过滤器性能的纹理过滤器的制作方法
技术领域
本发明是有关于一种纹理过滤器,特别是有关于一种使用平行处理以提高对于多模式纹理资料(multiple mode texture data)的过滤器处理性能的纹理过滤器。
背景技术
众所周知,计算机图形处理系统处理包括纹理资料在内的大量资料。纹理(texture)是一种通常为矩形的数位图像,其具有(U,V)座标空间。该数位图像还可以用具有(U,V,S)座标空间的三维方式来表达。纹理的最小可定址单位(addressable unit)被称为一质素(texel),并可根据其位置而分配一个特定(U,V)座标。纹理贴图(texture mapping)是一种为人所熟知的技术,可在图形系统中将纹理投射到一个表面。这种技术一般应用于读取代表数位图像的二维纹理的纹理资料(纹理质素),并将该纹理资料贴(mapping)到以三维空间定义的表面之上。该表面被渲染(render)并投影到两维显示平面后,看起来就仿佛具有该纹理贴图所定义的表面特征,其具有很强的真实感。在纹理贴图操作中,纹理被映射到(mapped)图形模型的表面,当模型经渲染后而产生一目标图像(destination image)。在目标图像中,各个质素位于二维空间的(X,Y)座标系统或三维空间的(X,Y,Z)座标系统中的特定座标。
在许多的应用端(如电视游乐器)中,都使用具有强大的尺寸和形状变化的三维表面。有些表面被用来表示距离观看者很遥远的物体,故可能会相对地较小。而有些表面表示看起来距离较近的目标,故可能会很大。为了有效地分配资源,并避免浪费宝贵的处理时间,根据物体与观看者的接近程度而改变物体在显示萤幕(on-screen)上所显示的细节量(amount ofdetail)是有好处的。相较于比较大、较近的物体,较小、较远的物体的渲染细节较低,而不会过分地影响使用者的视觉经验。
此外,三维图像的渲染仍存在许多问题,例如藉由将纹理施加到三角形或多边形图元(primitive)所产生的图像品质问题。当藉由采样(sampling)抽象图像(abstract image)而产生离散图像(discrete image)时,在该离散图像中通常包含有视觉伪象(visual artifact)。通常需要对图像进行过滤以便除去带状(banding)或锯齿(aliasing)效果等视觉伪象。在一幅图像中不同细节等级(level of detail)之间的图像变形(morphing)或变换(transforming)也会导致带状效果等额外的伪象。
在图形应用中使用一种MIP贴图(Multum in parvo mapping(MIP-mapping))技术减轻上述问题并提供纹理贴图中变化的细节等级。该技术是基于为某一特定纹理贴图提供许多细节等级的方案。其中一种特殊类型的MI P贴图方案被称为“三线性纹理过滤”(trilinear texturefiltering),其是对某一特定分辨率度(resolution)下的某一特定纹理质素值进行三个值的内插(interpolated)X座标U;Y座标V和对细节等级的线性描述D。熟知本技术领域者皆知道可以使用多种不同的过滤方法。藉助使用具有适当细节等级的纹理贴图版本而作为渲染图像的参数,MIP贴图可藉助减轻视觉伪象效应,以提高图像品质,而不会过度地增加对于计算和资源的需求。
在习知技术中的三线性纹理过滤方案是以不同的细节等级储存特定纹理贴图的许多版本。通常这些等级是用二次方定义的,例如,过滤(平均化)对应于下一个更高细节等级中的一个纹理质素的2×2方块,从而产生下一个更高等级的质素,其中此2×2方块含有4个纹理质素。在此种限制情况下,整个纹理贴图可被减小到最低细节等级中的一个纹理质素。
在纹理贴图操作中,可选择一个期望的细节等级。藉由改变选定的细节等级,就可让萤幕上的物件“移近”或“远离”使用者的观察点。换句话说,物件距离使用者的视距逐框(frame to frame)变化,而这种变化将导致使用已储存的不同版本的纹理贴图,可能会发生分辨率的中断(discontinuity),而这种分辨率的中断(discontinuity)是可见并且是不希望发生的。
尽管有些MIP贴图引擎采用内插法为已储存的纹理贴图的不同版本之间提供中间(intermediate)细节等级,但是现有技术大都采用特殊硬体和/或多个过滤通道(multiple filter pass)来执行三线过滤。因此,本技术领域一直需要提供一种解决上述缺陷和不足的方案。

发明内容
本发明的一实施例乃是提供一种图形处理系统,其包括纹理过滤器单元、第一纹理过滤器、第二纹理过滤器、累加器,其中纹理过滤器单元可接收纹理资料。第一纹理过滤器乃是置于纹理过滤器单元之内,其接收第一组的纹理资料并产生第一加权值。第二纹理过滤器乃是置于纹理过滤器单元之内,其接收第二组纹理资料并产生第二加权值。累加器系配置为将第一加权值和第二加权值结合,并产生复合加权值。
本发明的另一实施例系提出一种在图形处理器中处理纹理的方法,其包括以下步骤。首先,纹理过滤器单元接收对应于多个像素的纹理资料。接着,将纹理过滤器单元划分为第一纹理过滤器和第二纹理过滤器,其中第一纹理过滤器和第二纹理过滤器的每一个都接收此纹理资料的一部分。之后,由第一纹理过滤器产生第一加权值,并且由第二纹理过滤器产生第二加权值。然后,将第一加权值和第二加权值累加,并产生复合加权值。
本发明的再一实施例系提供一种执行三线性过滤的方法,其为单一透通一纹理过滤器单元的方法,而此执行三线性过滤的方法包括下列数个步骤。首先,接收对应于一个像素的纹理资料。接着,在第一纹理过滤器中对该纹理资料的一部分执行内插,且在第二纹理过滤器中对该纹理资料的一部分执行内插。之后,将来自第一纹理过滤器的第一加权值和来自第二纹理过滤器的第二加权值累加,而产生复合加权值。
本发明的一个实施例提供一种由纹理过滤器单元所构成的图形处理装置,而此图形处理装置包括第一纹理过滤器、第二纹理过滤器与累加器。第一纹理过滤器系配置为接收第一组的纹理资料并产生第一加权值。第二纹理过滤器系配置为接收第二组的纹理资料并产生第二加权值。累加器系配置为接收第一加权值和第二加权值并产生复合加权值。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。


参考附图可更容易地理解本发明。各图中所示的部件播没有按比例绘制,其重点在于清楚地展示本发明的原理,其中在所有图中,相同的标记乃是代表相同的部件。
图1是计算机系统100的简化方块图。
图2是执行本发明的纹理过滤操作的一实施例的系统200的方块图。
图3是本发明的一个实施例的某些基本组件的示意方块图。
图4绘示为本发明的一实施例的逻辑组件排列结构的方块图,其中此逻辑组件系用以处理纹理资料。
图5绘示为本发明一实施例的纹理过滤器单元和累加器的结构的方块图。
图6是图5所示的纹理过滤器1的一实施例的配置示意方块图。
图7是图5所示的纹理过滤器2的一实施例的配置示意方块图。
图8是本发明一实施例的箱形过滤的概念示意图。
图9a-图9b是本发明一实施例的二线性过滤的概念示意图。
图10是本发明一实施例中的纹理贴图所使用的MIP贴图的示意图。
图11是在一些实施例中所使用的线性内插单元的组件方块图。
图12是图11所示的线性内插单元的多工器、移位器和加法器之间的操作方块图。
图13是本发明的一实施例的一种累加器的操作方块图。
图14是本发明的实施例的不同过滤模式中所使用的一种累加器加权值的列表。
图15是本发明的一种处理纹理资料方法的方块图。
100计算机系统102中央处理单元104记忆体106纹理贴图108系统介面 110图形处理系统112前端处理器114、116高速缓冲记忆体118纹理过滤器120框缓冲器130显示装置 200系统202图元处理器204资料采样器206纹理过滤器208随机存取记忆体210像素处理器212渲染缓冲器310图形组件 312纹理过滤器单元314累加器318、320纹理过滤器402记忆体介面404缓冲器408、410、412纹理过滤器 502纹理样本510纹理过滤器单元512、514纹理过滤器520累加器1/600纹理过滤器602纹理样本 610、612、620线性内插单元2/700纹理过滤器 702纹理样本710箱形过滤器720、730、740线性内插单元A、B、C、D纹理质素C1、C2、Cc、CA、CB、CC、CD、CAB、CCD、CABCD加权颜色值T0、T1、T2、T3、T’质素 Di、Ui、Vi整数分量Df、Uf分数分量 810质素820纹理样本 830像素910质素 920纹理样本922、924加权颜色值线 930像素1010纹理贴图 1012纹理图像1020、1030等级 1050质素1110线性内插单元 1120多工器1130移位器 1140加法器1220多工器 1230移位器1240加法器 1302、1304纹理样本1310、1312过滤器 1320累加器
1322、1324乘法器 1326加法器1400表1510接收纹理资料于一纹理过滤器单元1520将纹理过滤器单元划分为第一和第二部分1530第一和第二部分各自产生第一与第二加权值1540累加第一和第二加权值1550产生一复合加权值具体实施方式
以上是对本发明的内容作一简要说明,下面将对附图中所示的本发明进行详细说明。尽管下面将结合附图而对本发明进行详细说明,但并不会限制本发明的实施例。相反地,其目的是为了涵盖后附专利范围所定义的发明实质和范围所包括的所有变化例和修改例。
如下面所欲详细说明的,在图形系统中存在许多可实施本发明的特征或各个方面。同样地,由此详细说明中可知,本发明亦可以实行于在计算机图形以外的技术领域中的系统和环境。
请参照图1,绘示为计算机系统100的简化方块图。计算机系统100包括中央处理单元102、记忆体104和图形处理系统110。中央处理单元102可执行各种功能,包括对资讯的判定,例如视点(viewpoint)的位置,从而能够产成图形显示。记忆体104储存各种资料,包括图形显示资料,如多个纹理贴图106。记忆体104可以是系统记忆体、图像记忆体(video memory)或者两者的结合。图形处理系统110为显示装置130(例如为显示器)产生显示资料。
中央处理单元102经由系统介面(system interface)108向图形处理系统110提出各种请求,包括请求处理并显示图形资料。来自中央处理单元102的图形请求被图形处理系统110接收并提供给前端处理器112,以产生质素流,其中此质素流含有与显示装置130相关的质素座标。
由前端处理器112所产生的、与质素座标相关的资讯被提供给纹理过滤器118。纹理过滤器118对每个质素的资讯进行过滤并产生纹理资料。该纹理资料是被送到框缓冲器(frame buffer)120的最终颜色资料的一个分量(component),其被用于在显示装置130上产生一个显示画面。
图形处理系统110包括多个高速缓冲记忆体114、116,用来储存在图形处理时所使用的部分的纹理贴图106。纹理贴图106可将纹理资讯储存为纹理质素的独立的纹理元素的形式,该纹理质素在图形处理期间被用来定义在质素座标上所显示的颜色资料。纹理资料从记忆体104流向高速缓冲记忆体114、116。
请参照图2,绘示为执行本发明的纹理过滤操作的一实施例的系统200的方块图。此系统200一般在计算机或类似处理设备内的图形处理系统中执行。系统200包括图元处理器202(primitive processor)、资料采样器(data sampler)204、纹理过滤器(texture filter)206、用以储存纹理的随机存取记忆体208、像素处理器(pixel processor)210和渲染缓冲器(rendering buffer)212。
图元处理器202可以是三角处理器(triangle processor),其典型地是接收三维几何图形元素(例如三角形或其他图形图元)并处理描述图形图元的大小、形状、位置和其他相关特征的资料。
资料采样器204从图元处理器202所接收到的多边形资料中选择一个数值的有限集(finite set)。纹理过滤器206执行某一过滤技术(例如二线性过滤(bilinear filtering)、三线性过滤(trilinear filtering)、箱形过滤(box filtering)及/或其组合),以计算出新纹理质素的颜色值(或其他属性),然后将其分配给某一特定质素。纹理过滤器206可根据接收到的来自于随机存取记忆体208的资料而产生已经由过滤和纹理的质素值。
质素处理器210执行渲染操作(rendering operatons)并且由渲染缓冲器212储存图像,而该图像可在显示装置上显示或用于渲染另一幅图像。
请参照图3,是本发明一个实施例的某些基本组件。图3包括被称为“图形组件”310的组件,该组件可指定为或代表在图形管线(pipeline)中的硬体组件。在该组件中,可为纹理过滤器单元312提供一个逻辑电路,纹理过滤器单元312处理纹理资料以便产生修饰(modifying)质素颜色的加权颜色值(也称为加权值)。如下所述,纹理过滤器单元312还可被划分为多个纹理过滤器,包括例如为第一纹理过滤器318和第二纹理过滤器320。同样,累加器(accumulator)314可用于累加单个纹理过滤器的结果以便产生一复合加权颜色值。
请参照图4,是本发明的一实施例的逻辑组件排列结构的方块图,其中此逻辑组件系用以处理纹理资料。系统记忆体和记忆体介面402为纹理过滤器系统提供储存在纹理贴图中的纹理资料。当请求该纹理资料时,可以纹理地址资料的形式而提供给缓冲器404。尽管纹理地址资料可以是实体地址(physical address)资料的形式,但是本发明的某些实施例仍使用逻辑地址(logical address)资料,其最终会被解析为实体地址资料。尽管图中未绘示,在另一实施例中,可以提供由一个或多个的可储存纹理资料的资料高速缓冲记忆体所构成的缓冲器404。在缓冲器404由多个资料高速缓冲记忆体所构成的情况下,可以藉助该些高速缓冲记忆体中的任何一个或其任何组合,以接收并储存纹理资料。纹理资料储存于缓冲器404中,以便于纹理过滤器408进行后续处理。纹理过滤器408可以被划分为单个的纹理过滤器410和412,这样的纹理过滤器410和412可以能够独立地或组合地执行过滤操作。
请参照图5,绘示为本发明一实施例的纹理过滤器单元和累加器的结构的方块图。纹理过滤器单元510包括第一纹理过滤器512和第二纹理过滤器514。每个纹理过滤器512、514都各自被配置以接收多个纹理样本502。在一些情况下,第一纹理过滤器512独立于第二纹理过滤器514操作,用来处理纹理资料502的多个样本并产生一加权颜色值C1。这种情况下的纹理过滤器会执行二线性过滤,以下请参考图9a-9b对此进行讨论。
同样地,第二纹理过滤器514可接收纹理资料的4个样本并产生加权颜色值C2。如以下将参考图7所讨论的,第二纹理过滤器514在独立于第一纹理过滤器512而单独操作时,可以执行二线性过滤或自由三线性过滤(free-trilinear filtering)。
在另一实施例中,第一纹理过滤器512和第二纹理过滤器514可平行操作,而为某一特定像素处理8个纹理资料样本502。不管第一和第二纹理过滤器512、514是独立操作还是共同操作,累加器520皆可接收到C1和C2的加权颜色值。当第一和第二纹理过滤器512、514独立操作时,累加器520所执行的操作相当于一个多工器(multiplexer),使得Cc是来自于第一纹理过滤器512或第二纹理过滤器514的加权颜色值。在又一实施例中,当第一和第二纹理过滤器512、514共同操作时,累加器520产生由两个加权颜色值C1和C2所组合的复合加权颜色值Cc。累加器520还可结合第二纹理过滤器514在不同周期中所产生的加权颜色值,以连续地(serially)执行三线性过滤。
请参照图6,其绘示为图5的纹理过滤器1的一实施例的配置结构的方块图。如上所述,纹理过滤器1/600(即第一纹理过滤器)接收多个纹理样本602并产生一加权颜色值C1,其中纹理样本602乃是与最靠近像素的纹理质素相关。纹理过滤器1/600在独立于纹理过滤器2操作时执行二线性内插(bilinear interpolation),其要求与像素最接近的4个质素的纹理样本602。一般来说,例如,二线性内插包含接收最靠近正在被解析的点的4个已知加权颜色值。线性内插是执行关于两对4个已知的加权颜色值中的每一对加权颜色值的一个维度,以决定一对中间复合加权值(intermediatecomposite weight values)。例如,可执行这两对加权颜色值对于U维度的线性内插。可执行该中间复合加权值对于第二维度的第二线性内插,以决定一复合加权值。例如,可以执行该中间复合加权值对于V维度的线性内插。纹理样本602包括座标位置值U、V,并且可选择性地包括D,以及加权颜色值CA、CB、CC、CD。第一纹理过滤器600包括三个线性内插单元(linearinterpolation unit,LRP)610、612和620,其例如在U和/或D维度中执行线性内插。
两线性内插单元610、612被配置为分别接收两纹理样本602。一般可配对纹理样本602,以共用同一U或V座标,例如,每个线性内插单元610和612都会对相关的成对纹理样本602执行线性内插。例如,线性内插单元610对具有加权颜色值CA和CB的纹理样本602执行线性内插,以产生加权颜色值CAB。同样地,线性内插单元612对具有加权颜色值CC和CD的纹理样本602执行线性内插,以产生加权颜色值CCD。两加权颜色值CAB和CCD都是在同一维度内进行线性内插的结果。例如,加权颜色值CAB是CA和CB沿着U轴的线性内插,而加权颜色值CCD也是CC和CD沿着U轴的线性内插。
第三个线性内插单元620可接收CAB和CCD加权颜色值并在例如V维度中执行线性内插。线性内插单元620可产生加权颜色值CABCD,其构成第一纹理过滤器600的输出。加权颜色值CABCD也被称为C1,其代表4个纹理样本602在U维度和V维度的线性内插。
现在请参照图7,是图5所示的纹理过滤器2的一实施例的配置结构的方块图。如上所述,纹理过滤器2/700(也称为第二纹理过滤器)接收对应于最靠近像素的纹理质素的多个纹理样本702并产生一加权颜色值C2。当过滤器2/700独立于过滤器1操作时,可执行二线性内插或自由三线性内插。可由接收到的纹理资料的格式来决定执行二线性内插还是三线性内插。例如,在多个纹理样本702不包括在第三维度(例如为D维度)中具有多于一个单一值的多个样本的情况下,那么每个箱形过滤器710可只接收一个单一纹理样本,例如为CA0。得到的加权颜色值将必须等于在此情况下基于最靠近像素技术的输入值。在一实施例中,多个纹理样本702在第三维度中具有多于一个的单一值,那么将有必要为每个箱形过滤器710提供多于一个的纹理样本并且选择最靠近像素的样本。
如图7所示,纹理过滤器2/700包括4个箱形过滤器710和3个线性内插单元720、730和740。具有本领域的通常知识者皆可了解,在其他实施例中,能够使用不同数量的箱形过滤器710,其包括但不限于2X个箱形过滤器,其中X是正整数。箱形过滤器710被配置为接收多个纹理样本702。例如,每个箱形过滤器710接收在U、V维度(某些情况下还有D维度)中的对应于靠近像素的纹理资料的纹理样本702,其中D是指在MIP纹理贴图技术中所使用的细节等级值。当第二纹理过滤器700执行二线性内插时,箱形过滤器710为有效的直通过滤器(pass-through filter),而不执行资料操作(data manipulation)。在这种情况下,线性内插单元720、730和740执行二线性过滤,其执行方式与纹理过滤器1的线性内插单元相同。
在纹理过滤器2执行一自由三线性过滤操作的情况下,可过滤纹理样本在箱形过滤器710中对于三个维度(U、V或D)中的一个维度。可藉由利用相对于第一维度的过滤精度较差的箱形过滤器而执行自由三线性过滤,并相对于第二维度和第三维度而执行前述的二线性内插。该箱形过滤的精度不如使用线性内插法的过滤技术,这是因为箱形过滤器710仅仅产生一输出值,其对应于4个最靠近质素的相等(equally)加权平均值。例如,箱形过滤器710使用D=N纹理表面中的4个质素,以在D=N+1纹理表面中产生一个质素。假定D=N纹理表面中的4个邻近质素为T0、T1、T2和T3,那么D=N+1纹理表面中所对应的质素则按下式计算T’=(T0+T1+T2+T3)/4。在一些实施例中,当使用箱形过滤器710以执行自由三线性过滤时,纹理过滤器2仅支持固定格式数(fixed format numbers),不像纹理过滤器1既支持浮点数也支持固定格式数。具有本领域的通常知识者皆可了解,能够支持浮点和固定格式数的箱形过滤器皆在本发明所欲保护的范围内。线性内插单元720、730可接收箱形过滤器710所产生的加权颜色值CA、CB、CC和CD,以便沿着其他维度进行内插。线性内插单元720、730可产生加权颜色值CAB和CCD,然后这些值可被线性内插单元740接收,以便沿着其他维度进行内插。线性内插单元740产生CABCD,也称为C2,其是基于三维中的纹理样本的加权颜色值估计值。
请参照图8,绘示为本发明一实施例的箱形过滤的概念示意图。图中绘示为分别被标为A、B、C、D的4个质素810的2×2区块(block),其构成最接近像素830的纹理样本820。每个纹理样本820都具有分别对应于相关质素的颜色值CA、CB、CC和CD。在本实施例中,箱形过滤器所产生的加权颜色值是颜色值CA、CB、CC和CD的相同加权平均值。
请参照图9a至图9b,绘示为本发明一实施例的二线性过滤的概念示意图。首先,请参照图9a,4个标为A、B、C和D的纹理质素910的2×2区块,其构成最接近像素930的4个纹理样本920。纹理样本920具有加权颜色值CA、CB、CC和CD,分别对应于相应的纹理质素910。假定每个纹理质素910的宽度被标准化为等于1,并且Uf代表像素930到分割(dissecting)纹理质素B和D的直线的距离,则(1-Uf)就等于像素930到分割纹理质素A和C的直线的距离。从此关系可以得出在U维度中内插的加权颜色值的等式,如下CAB=CA*(Uf)+CB*(1-Uf),且CCD=CC*(Uf)+CD*(1-Uf)请参照图9b,用来表示加权颜色值线CAB/922和CCD/924的上述的成对质素之间的直线取代了图9a中所示的纹理样本。与图9a所述的情况类似,假定每个纹理质素910的宽度被标准化为1,并且Vf代表像素930到加权颜色值线CAB/922的距离。像素930与加权颜色值线CCD/924之间的距离为(1-Vf)。由这一关系可得出在V维度对已在U维度内插的加权颜色值的内插公式为
CABCD=CCD*(Vf)+CAB*(1-Vf)上面的三个等式分别代表图6所示的各个线性内插单元的函数。
请参照图10,绘示为本发明中用于纹理贴图的一MIP贴图的一实施例的示意图。纹理贴图1010的第一等级为具有N×N质素的维度。纹理图像1012以全尺寸(full size)储存于纹理贴图1010中。质素或纹理资料被定义为第一值和第二值,其中第一值可以用U=Ui+Uf表达,而Ui代表第一值的整数分量,Uf代表第一值的分数分量。同样地,第二值可以用V=Vi+Vf表达,其中Vi代表第二值的整数分量(integer component),Uf代表第二值的分数分量(fractonal component)。图中还显示了纹理图像的等级1020、1030,其依次具有更低等级的细节。使用在每个相继等级上更少的质素将可得到更低的细节等级1020、1030。例如,纹理资料在纹理贴图D=0/1010中使用256(16×16)质素的情况下,D=1等级可使用64(8×8)质素,以定义相同纹理图像。同样地,D=2等级可仅使用16(4×4)质素以定义相同纹理图像。减少资料点的数量就可降低细节等级。
细节等级代表在纹理贴图中所使用的比例因数(scaling factor),可以表示为D=Di+Df,其中Di代表整数分量,Df代表分数分量。例如,相较于在相对较大的图元上渲染纹理图像,当要在相对较小的图元(例如具有较远观察距离)上渲染纹理图像时,仅需要较小的细节。每个接续的较低细节等级都可被认为是增加整数分量,如此纹理图像1010将对应于D值为0。在一实施例中,具有N/2×N/2的质素的维度的下一等级1020具有等于1的对应D值。因此,在另一实施例中,最高等级1030具有N/4×N/4质素的维度并且D值为2。此外,如上所述,每个纹理样本包括一个加权颜色值。具有本领域的通常知识者皆可知道该加权颜色值可以是一个对应多个独立颜色值的单一值或是复合值(composite value)。
如图所示,在一实施例中,纹理图像的第二细节等级和第三细节等级之间具有一个质素1050。如在图6和图7中所述,可藉助许多种不同的过滤技术以决定质素1050的加权颜色值。例如,使用4个纹理样本的二线性过滤器可接收在纹理图像1010中与最近的U座标和V座标相关联的纹理样本。但是该二线性技术方案的加权颜色值并无法说明细节等级值D。
自由三线性过滤方法的应用包含在一个维度中使用一箱形过滤器,其后使用二线性过滤器来解析另外两个维度。在一实施例中,在每个等级1010、1020和1030中的纹理样本提供于箱形过滤器,其中该纹理样本乃是对应于在U和V座标中最靠近的4个纹理样本。请参照图7,纹理样本702/CA0-CA3乃是对应于由U和V座标所定义的有关质素A的纹理样本的细节颜色样本的每个等级。箱形过滤器710的处理结果将会是此纹理样本,其具有对于像素的最靠近的细节等级值D。在图10中,Df的值乃是小于1-Df的值,其中该Df的值乃是像素1050的细节等级与具有细节等级D=1的纹理贴图1020之间的差值,而该1-Df的值乃是像素1050的细节等级与具有细节等级D=2的纹理贴图1030之间的差值。这时,箱形过滤器710会将由细节等级D=1的纹理贴图1020返回到对应于纹理样本的值。尽管与二线性过滤不同的是,自由三线性过滤必须考虑细节等级,但是其在D维度的过滤乃是相对地粗略(coarse)并有效地不受其他细节等级的影响。
藉助使用第一和第二过滤器以平行地处理8个纹理样本,将可执行真实三线性过滤(true trilinear filtering),其中此真实三线性过滤将会为所有三个维度提供内插。请参照图10所示的MIP贴图,例如,第一过滤器将会接收位于纹理贴图1020中细节等级D=1的U和V维度中的4个最近的纹理样本。同样地,第二过滤器会接收纹理贴图1030中细节等级D=2的U和V维度中的4个最近纹理样本。第一和第二过滤器会各自执行对应于U和V维度的二线性过滤操作并会分别形成加权颜色值C1和C2。累加器可接收来自于第一和第二过滤器的加权颜色值,且累加器可执行在D维度中的线性内插。
请参照图11,其绘示为一些实施例中所使用的线性内插单元的组件方块图。一个实施例的线性内插单元1110被配置以接收加权颜色值CA和CB,其代表在一个维度中最接近的2个纹理样本。线性内插单元1110可产生对应于像素的内插值的颜色加权值CAB。该像素具有纹理座标,而此纹理座标具有多个维度,其中每个维度都包括一个整数分量和一个分数分量。例如具有6位元的分数值的固定分数点的格式将会具有在000000到111111,或0到63的分数范围,其中该值可作为0到1的分数值。
在一实施例中,像素维度值(U)具有13位元的整数分量和6位元的分数分量的格式。两个最接近的质素为Tfloor和Tceil,其分别具有最低值和最高值。像素左边的质素的整数座标值(Ufloor)乃是由下式决定Ufloor=INTEGER(U-0.5)像素右边的质素的整数座标值(Uceil)由下式决定Uceil=Ufloor+1藉由使用分数函数于数值(U-0.5)而产生Uceil的分数加权值(Wceil)Wceil=FRAC=FRACTI0N(U-0.5)并且Ufloor的分数加权值(Wfloor)乃是由下式决定Wfloor=1-Wceil=1-FRAC因此,下式将决定线性内插的结果LRP=Tfloor·Wfloor+Tceil·Wceil变量Wfloor和Wceil可各自以FRAC来表达,其是定义于Tfloor之上的分数值并为用于Tceil的加权因数的变量。当上述方程式被FRAC取代时,则线性内插方程式则变为LRP=Tfloor·(1-FRAC)+Tceil·FRAC.
表达式“1-FRAC”可等于FRAC的倒数(FRAC-1)加上由FRAC格式所决定的变量(ULP)的总和。例如,如果FRAC以6.0格式来表达,那么ULP=1。在另一实施例中,若以0.6格式来表达FRAC,那么ULP=2-6。为了本实施例的目的,我们假定FRAC乃是以6.0格式来表达,其产生如下的等式1-FRAC=FRAC-1+1由这一关系还可进一步得出线性内插为LRP=Tfloor·FRAC-1+Tceil·FRAC+Tfloor·1.
由于LRP等式中的乘数因子(multiplier factors)FRAC和FRAC-1具有倒数关系,LRP单元1110能够藉助在加法器(adder)1140之前使用MUX 1120和移位器(shifter)1130来代替两个乘法器(multiplier),从而节省闸电路。在一个实施例中,MUX 1120被FRAC值中的连续位元控制。具有本领域的通常知识者皆可理解,FRAC-1值也可用于同一目的。移位器1130被用来将对应于FRAC值中的特定位元的选定资料移位。每一FRAC位元都可决定选择Tfloor值或Tceil值。
请参照图12,绘示为图11所示的线性内插单元(LRP)的MUX、移位器和加法器之间的操作方块图。在一实施例中,FRAC 1202是6位元101010所代表的数值。由FRAC的最低有效位元所产生的加法器1240的第一运算元为0。当MUX 1220接收到0值时,将选择Tfloor值1232。这时,由于FRAC的选择位元是最低有效位元,因此没有移位功能并且将Tfloor值1232作为加法器1240的运算元之一。FRAC 1202的下一位元是1,因此MUX 1220选择Tceil值1234。移位器1230将Tceil值1234左移一位元,其中此位元乃是对应于FRAC 1202中的选择位元的位置。移位器Tceil值1234可建立作为加法器1240的第二运算元。同样地,由于FRAC 1202中的下一位元是0,因此由MUX1220选择Tfloor值1236并且在移位器1230中左移两位元。该Tfloor值1236代表加法器1240的第三运算元。继续FRAC 1202的剩余位元,6个被选定并被移位的值是加法器1240的运算元,以便产生LRP值的一部分。
Tfloor·FRAC-1+Tceil·FRAC剩余运算元是Tfloor·ULP,或在这里是指未移位的Tfloor值1244。这7个运算元在加法器1240中被加总,以便由下式产生LRP值
LRP=Tfloor·FRAC-1+Tceil·FRAC+Tfloor·1请参照图13,绘示为本发明一实施例的一种累加器的操作方块图。继续上述的真实三线性过滤的实施例,第一过滤器1310(也称作过滤器1)可接收到来自等级D=1的纹理贴图的纹理样本1302,并且第二过滤器1312(也称作过滤器2)可接收到来自等级D=2的纹理贴图的纹理样本1304。第一和第二过滤器1310、1312可分别产生加权颜色值C1、C2,其被累加器1320接收。在累加器1320内的两个加权颜色值C1、C2分别被乘法器1322、1324接收。第一乘法器1322计算出第一加权颜色值C1与分数值(1-Df)的乘积。第二乘法器1324计算出第二加权颜色值C2与分数值Df的乘积。这两个乘积C1·(1-Df)和C2·Df被加法器1326接收并产生复合加权颜色值C12。加权颜色值C12代表在三个维度U、V和D中经过内插的纹理样本资料。具有本领域的通常知识者皆可知悉本发明的范围和精神并不限于该实施例。例如,尽管在上述实例中,在过滤器中执行了U和V维度的内插,并在累加器中执行了D维度内插,具有本领域的通常知识者皆可知悉在过滤器或累加器中的任何维度都可以被内插。
请参照图14,绘示为在本发明实施例的不同过滤器模式中所使用的一种累加器加权值的列表。表1400列出在多个过滤器模式中的累加器的两个加权值的公式。累加器前的两个LRP是上述图6和图7所示的二线性过滤器的第二阶段。累加器接收线性内插单元的输出并利用表中的示范性数值以完成被请求的过滤器操作。例如,当过滤器操作是二维二线性过滤时,累加器可作为一透通过滤器(bypass filter)使用,其可100%通过一个进入的过滤器值并0%通过另一个进入的过滤器值。这一实施例反映在2D二线性行中的Wta和Wtb列的加权值1.0和0.0中。如上述图10中所述,Df值是MIP贴图的分数值。同样地,Qf是纹理座标在Q维度的分数值,其指出三维纹理的邻近切片(slice)之间的距离。
表1400还显示了藉由提供一个进入回路(entry loop),被请求的过滤器操作要求超过一个通道(pass)以便执行过滤的情况。在这些情况下,每个过滤器通道(pass)的累加器权重将被重新计算。例如,对应于三维度三线性过滤操作的行可提供用于在第二过滤器通道中计算累加器权重的附加公式。此外,累加器处理当请求各个不同等级的异向过滤(anisotropicfiltering)时的情况,如表1400中的最后三行。异向过滤是MIP贴图过滤的变形,其利用沿一异向线所取得的多纹理样本。异向过滤操作都需要多过滤器通道并利用权重Wfn,以计算每一“n”个过滤器通道中的累加器权重。过滤器通道的数量与每个质素的异向过滤器样本的数量一致。
请参照图15,绘示为本发明的一种处理纹理资料方法的方块图。在方块1510中,纹理过滤器单元接收纹理资料。于方块1520中,纹理过滤器单元被划分为第一和第二纹理过滤器。第一和第二纹理过滤器可被用采以平行配置方式来处理纹理资料以便执行真实的三线性过滤。在另一实施例中,第一和第二纹理过滤器可被独立地用来执行二线性过滤或者是第二纹理过滤器可用来执行自由三线性过滤。在方块1530中,在每种情况下,第一和第二纹理过滤器都各自产生一颜色定义加权值。在方块1540中,藉助累加器而使得加权值由第一和第二纹理过滤器累加。在方块1550中,累加器产生一复合加权颜色值,以用来定义颜色。当第一和第二过滤器在独立操作的情况下,复合加权颜色值与过滤器的加权值相同。在另一实施例中,当第一和第二纹理过滤器为同一质素平行地过滤纹理资料时,则复合加权颜色值是这两个过滤器的加权值的结合。
本发明的实施例可以实行在硬体、软体、韧体(firmware)或其组合中。在一些实施例中,方法和系统可实行在储存于记忆体内的软体或韧体中并藉由适当的指令执行系统来执行。在另一实施例中,如果实行在硬体中时,该方法和系统可结合下列任何一个技术或其组合来执行,其中这些技术都是具有本领域的通常知识者所熟知的,包括具有逻辑闸电路的离散逻辑电路,其根据资料信号来执行逻辑功能、具有适当组合的逻辑闸电路的特定用途的集成电路(ASIC)、可编程闸阵列(PGA)、现场可编程闸阵列(FPGA)等等。
具有本领域的通常知识者应可知悉,在本发明的任何的过程描述或流程图中的方块都代表多个模组(module)、区段(segment)或部分代码(code),其包含一个或多个执行指令,用以实现特定逻辑功能或过程中的步骤。取决于所涉及的功能,而不按照图示或上述的顺序(包括同步或相反顺序)来执行各种功能的另一实施例,皆包含在本发明所揭露的范围之内。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。
权利要求
1.一种图形处理系统,其包括一纹理过滤器单元,接收纹理资料;一第一纹理过滤器,配置于该纹理过滤器单元之内,而该第一纹理过滤器接收一第一组的纹理资料并产生一第一加权值;一第二纹理过滤器,配置于该纹理过滤器单元之内,而该第二纹理过滤器接收一第二组的纹理资料并产生一第二加权值;以及一累加器,配置为将该第一加权值与该第二加权值结合并产生一复合加权值。
2.根据权利要求1所述的图形处理系统,其中该累加器更配置为用一第一常数乘以该第一加权值并用一第二常数乘以该第二加权值。
3.根据权利要求2所述的图形处理系统,其中该第一常数和该第二常数是相关值,而该第一常数与该第二常数的和等于一。
4.根据权利要求3所述的图形处理系统,其中该第一常数等于一,而该复合加权值等于该第一加权值。
5.根据权利要求4所述的图形处理系统,其中该第一加权值是藉由对该第一组的纹理资料进行二线性纹理过滤所产生的。
6.根据权利要求5所述的图形处理系统,其中该二线性纹理过滤是相对于纹理位置座标而执行的。
7.如专利范围第3所述的图形处理系统,其中该第二常数等于一,而该复合加权值等于该第二加权值。
8.根据权利要求7所述的图形处理系统,其中该纹理过滤包括多重过滤器通道,以执行三线性纹理过滤。
9.根据权利要求2所述的图形处理系统,其中该第一常数和该第二常数都具有大于零的值,且该纹理过滤包括对该第一组的纹理资料和该第二组的纹理资料的结合的三线性纹理过滤。
10.根据权利要求9所述的图形处理系统,其中该三线性纹理过滤是相对于两个纹理位置座标和一个细节轴的等级而执行的。
11.根据权利要求1所述的图形处理系统,其中该第一组的纹理资料和该第二组的纹理资料都对应N个像素。
12.根据权利要求11所述的图形处理系统,其中该第一纹理过滤器和该第二纹理过滤器都包括N-1个线性内插器。
13.根据权利要求12所述的图形处理系统,其中该第二纹理过滤器更包括N个箱形过滤器,而该些箱形过滤器被配置为,如果使用自由三线性纹理过滤,就预处理该第二组的纹理资料,且如果使用真实三线性或二线性纹理过滤,则该些箱形过滤是透通过滤器(pass through filter)。
14.根据权利要求13所述的图形处理系统,其中N等于2的X次方,其中X包括正整数。
15.根据权利要求1所述的图形处理系统,其中该第一纹理过滤器被配置为接收浮点和固定数格式。
16.一种在图形处理器中处理纹理资料的方法,包括以下步骤接收对应于多数个像素的一纹理资料;将该纹理资料划分为一第一部分和一第二部分;从该第一部分产生一第一加权值并从该第二部分产生一第二加权值;将该第一加权值与该第二加权值累加;以及产生一复合加权值。
17.根据权利要求16所述的在图形处理器中处理纹理资料的方法,其中产生该复合加权值的步骤包括从该第一加权值和该第二加权值的族群中选择一个值。
18.根据权利要求16所述的在图形处理器中处理纹理资料的方法,其中产生该第一加权值的步骤包括执行二轴线性内插。
19.根据权利要求18所述的在图形处理器中处理纹理资料的方法,其中产生该第二加权值的步骤包括执行二轴线性内插。
20.根据权利要求19所述的在图形处理器中处理纹理资料的方法,其中产生该复合加权值的步骤包括执行三轴线性内插。
21.根据权利要求16所述的在图形处理器中处理纹理资料的方法,其中产生该第一加权值的步骤包括在一第一维度中执行一第一线性内插;在该第一维度中执行一第二线性内插;以及在一第二维度中执行一第三线性内插。
22.根据权利要求16所述的在图形处理器中处理纹理资料的方法,其中产生该第二加权值的步骤包括在一第一维度中执行一箱形过滤;在一第二维度中执行一第一线性内插;在该第二维度中执行一第二线性内插;以及在一第三维度中执行一第三线性内插。
23.根据权利要求22所述的在图形处理器中处理纹理资料的方法,其中执行该箱形过滤的步骤包括当请求三轴线性内插近似值时,则进行处理该线性内插单元的固定格式资料。
24.根据权利要求16所述的在图形处理器中处理纹理资料的方法,其中产生该复合加权值的步骤包括将该第一加权值乘以一第一常数,以产生一第一乘积;将该第二加权值乘以一第二常数,以产生一第二乘积;以及将该第一乘积加入该第二乘积。
25.一种图形处理装置,包括纹理过滤器单元,而该图形处理装置包括一第一纹理过滤器,配置为接收一第一组的纹理资料并产生一第一加权值;一第二纹理过滤器,配置为接收一第二组的纹理资料并产生一第二加权值;以及一累加器,配置为接收该第一加权值和该第二加权值并产生一复合加权值。
26.根据权利要求25所述的图形处理装置,其中该第一纹理过滤器包括线性内插逻辑电路。
27.根据权利要求25所述的图形处理装置,其中该第二纹理过滤器包括一线性内插逻辑电路和一箱形过滤逻辑电路。
28.根据权利要求27所述的图形处理装置,其中该线性内插逻辑电路包括一多工器(Multiplexer,MUX),配置为在多数个输入中选择;一移位器,配置为接收多数个多工器的输出值;以及一加法器,配置为产生多数个移位器的输出的和。
29.根据权利要求28所述的图形处理装置,其中该多工器接收一最低值、一最高值和一选择信号。
30.根据权利要求29所述的图形处理装置,其中该选择信号包括多数个分数值位元中的其中一个。
31.根据权利要求30所述的图形处理装置,其中该多工器在每一该些分数值位元中的该最低值和该最高值之间进行选择。
32.根据权利要求30所述的图形处理装置,其中根据该些分数值位元中的哪一个提供于该选择信号,而决定移位哪一个该些多工器的输出值。
33.根据权利要求29所述的图形处理装置,其中该最低值乃是加入该些移位器的输出的和。
34.根据权利要求25所述的图形处理装置,其中该累加器包括一第一乘法器,配置为产生该第一加权值和该第一分数值的一第一乘积;一第二乘法器,配置为产生该第二加权值和该第二分数值的一第二乘积;以及一加法器,配置为产生该第一乘积和该第二乘积的和。
35.一种执行三线性过滤的方法,是单一透通一纹理过滤器单元的方法,而该执行三线性过滤的方法包括接收对应于一个像素的一纹理资料;将该纹理资料的一第一部分进行内插;将该纹理资料的一第二部分进行内插;将来自于该第一部分的一第一加权值和来自该第二部分的一第二加权值累加;以及产生一复合加权值。
36.根据权利要求35所述的执行三线性过滤的方法,其中该累加的步骤更包括将该第一加权值乘以一第一常数,以产生一第一乘积,并将该第二加权值乘以一第二常数,以产生一第二乘积。
37.根据权利要求36所述的执行三线性过滤的方法,其中该第一常数和该第二常数是相关的数值,而该第一常数与该第二常数的和等于一。
38.根据权利要求37所述的执行三线性过滤的方法,其中产生该复合加权值的步骤包括将该第一乘积与该第二乘积相加。
39.根据权利要求38所述的执行三线性过滤的方法,其中该第一常数和该第二常数各自对应于一个细节值的等级的分数分量。
40.根据权利要求38所述的执行三线性过滤的方法,其中该复合加权值等于该第一加权值。
41.根据权利要求38所述的执行三线性过滤的方法,其中该复合加权值等于该第二加权值。
42.根据权利要求35所述的执行三线性过滤的方法,其中将该纹理资料的该第二部分进行内插的步骤包括在一第一维度中对该纹理资料执行最接近的邻近过滤;以及在一第二维度和一第三维度中对该纹理资料执行内插。
全文摘要
本发明提供一种处理纹理资料方法、图形处理系统和图形处理装置,其利用三线性过滤的平行处理纹理过滤器,以提高图形系统性能。纹理过滤器单元包括多个过滤器单元,其可以单独地用于二线性和自由三线性过滤或共同使用执行真实三线性过滤。
文档编号G06T15/04GK1801219SQ200610001139
公开日2006年7月12日 申请日期2006年1月13日 优先权日2005年7月7日
发明者徐建明 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1