具有重要内插的图形引擎的制作方法

文档序号:6569279阅读:182来源:国知局

专利名称::具有重要内插的图形引擎的制作方法
技术领域
:本发明大体上涉及电子设备,且更特定来说涉及一种图形引擎。
背景技术
:图形处理器广泛用以渲染用于呈现于电子显示器上的2维(2D)和3维(3D)图像。3D图像可经建模而具有表面,且每一表面可与三角形近似。表示3D图像所需的三角形的数目视表面的复杂性和所要图像分辨率而定。用于3D图像的三角形的总数目可能相当大(例如,数百万)。图形处理器试图尽可能快地渲染3D图像的三角形。每个三角形由三角形的三个顶点的(;c,;y)坐标来界定。每个三角形的每一顶点与例如颜色、纹理、深度等各种属性相关联。图形处理器通过内插所述三角形的属性中的每一者来渲染每个三角形。对于每个三角形的每一属性来说,图形处理器确定三角形内的每一像素位置处的所述属性的适当值。图形处理器通常通过使用为三角形的三个顶点处的属性给定的值来执行线性内插而实现此目的。由于3D图像可包括许多三角形且由于每个三角形可具有许多属性,因此渲染过程通常计算量非常大。因此,此项技术中需要一种可重要地执行用于图形渲染的内插的图形引擎。
发明内容本文描述一种可使用较少位重要地执行内插且同时实现良好准确度的图形引擎。所述图形引擎包括设定单元和渲染单元。设定单元计算用于内插3D图像的待渲染的三角形的属性v(例如,如红色、绿色或蓝色等颜色分量)的一组系数丄S和C。系数丄5和C可具有大动态范围且因此可以大量位来表示以实现内插结果的所要准确度。设定单元接着基于所述组系数A、£和C导出一组"压缩"系数^、》和^。压縮系数具有在二进制小数点左侧具有R个"整数"位且在二进制小数点右侧具有T个"分数"位的固定点格式,其中R〉1、且R+T可远小于用以表示系数A、fi和C的位的数目。可基于用于正内插的属性v的位数目来选择整数位的数目(R)。可进一步基于三角形上的属性的值的范围来选择R。另外,R通常还取决于三角形大小。可基于用于渲染三角形的显示屏的尺寸来选择分数位的数目(T)。可进一步基于三角形大小来选择T。下文描述关于内插过程和系数A、S和C以及压缩系数A、》和^的导出的细节。渲染单元使用压縮系数A、^和e来执行属性v的内插。可以不饱和累加器来实施渲染单元,所述不饱和累加器可通过分别累加压缩系数A或5来重要地执行显示屏上的水平或垂直方向上的扫描的内插。借此,大大简化了三角形渲染。下文更详细地描述本发明的各个方面和实施例。结合附图考虑,从下文陈述的具体实施方式中将更加了解本发明的特征和性质,附图中相同参考标号始终相应地作出标示。图1展示用以建模3D图像的表面的三角形。图2展示能够渲染三角形的图形引擎。图3展示图形引擎内的设定单元。图4展示图形引擎内的渲染单元。图5说明用以减少系数的位数目的基本几何学的使用。图6展示产生用于内插的压缩系数的设定单元。图7展示使用用于内插的压縮系数的渲染单元。图8展示利用不饱和累加且不利用乘法来执行内插的渲染单元。图9展示用于渲染三角形的过程的流程图。图IO展示无线装置的框图。具体实施例方式本文使用词语"示范性"意指"充当实例、例子或说明"。本文中描述为"示范性"的任何实施例或设计均未必理解为与其它实施例或设计相比是优选或有利的。图1展示用以建模3D图像的表面的示范性三角形110。所述三角形将在显示屏100上渲染。所述三角形由三角形的三个顶点的坐标"。'3^、"',y"和""y"来界定。所述三角形还与一个或一个以上属性相关联。这些属性可能关于散射颜色的红色、绿色和蓝色分量(三个属性);镜面反射颜色的红色、绿色和蓝色分量(另外三个属性);Z深度、纹理坐标(两个属性);反Z深度等。为了简单起见,以下描述关于三角形的一个属性。如图1所示,此属性指示为v且在三角形的三个顶点处具有三个值vo、w和力。在以下描述中,(A)二(义。,A'义2)、U)-(:vo,^,:M且k)-(Vo,v,v2)。图2展示能够渲染三角形110的图形引擎200的框图。设定单元210接收三角形的输入参数(x,]、{力}和{^}且产生用于内插属性v的系数。渲染单元220接收系数且产生在三角形内各个位置处的属性v的内插值。设定单元210以每个三角形的方式执行,且渲染单元220以给定三角形的每个像素的方式执行。下文描述设定单元210和渲染单元220的示范性设计。图形引擎200通常包括为了简单起见在图2中并未展示的其它处理单元。图形引擎200通过以属性v的内插值填充三角形的内部来渲染三角形110。对于直接估算方法,可基于以下内插等式来导出三角形内任何",y)位置处的属性值v-A'x+S'y+C等式(1)其中A、S和C是可如下所述产生的内插系数。图形引擎200使用等式(1)来计算三角形内所有位置的内插值。在以下描述中,术语"变量"可一般意指输入参数(例如,{x,}、(y,)和(v,P、坐标(例如,;c和)O、系数(例如,A、fi和C)、中间值和最终结果(例如,v)。可从以下一组三个等式中获得用于属性v的系数A、S和C:v0=AXo+B■;y。+C,v,=A.jq+B'h+C,禾B等式(2)v2=Ax2+fi.y2+C。通过将给定顶点(其中!'=0,L2)的输入参数值;c,、》和v,应用到等式(1)来获得等式组(2)中的每一等式。等式组(2)指示每一属性与一组不同系数相关联。等式组(2)可以矩阵形式表达如下<formula>formulaseeoriginaldocumentpage8</formula>接着可计算系数A、s和c如下.-<formula>formulaseeoriginaldocumentpage9</formula>等式(4)可界定矩阵m如下:<formula>formulaseeoriginaldocumentpage9</formula>等式(5)可计算矩阵M的倒数或M—\如下:<formula>formulaseeoriginaldocumentpage9</formula>(M)等式(6)其中det(M)是矩阵M的行列式,Mc是矩阵M的伴随矩阵,D是等于一除以行列式的变量(即,行列式的倒数),且"T"指示转置。矩阵M的行列式等于三角形的面积且可计算如下<formula>formulaseeoriginaldocumentpage9</formula>伴随矩阵Mc可表达如下等式(7)<formula>formulaseeoriginaldocumentpage9</formula>等式(9)每一变量可表示为固定点数或伪浮点数。固定点数具有以下格式pp…ppqq…qq等式(IO)其中每一"p"表示二进制小数点"."左侧的一个二进制"整数"位且每一"q"表示二进制小数点右侧的一个二进制"分数"位。每一整数位表示1或大于1的值,其中由固定点数内的所述整数位的位置来确定精确值。每一分数位表示小于1的值,其中由固定点数内的所述分数位的位置来确定精确值。固定点数具有预定数目的位,且二进制小数点固定在特定位位置处。伪浮点数具有以下格式<table>tableseeoriginaldocumentpage10</column></row><table>。系数A、》和^分别为系数A、£和C的经压縮表示形式,且下文对其进行详细描述。矩阵M的行列式等于三角形的面积且可由具有2P.Qu格式(或2P+Q个位)的固定点数来表示。变量D等于一除以行列式且可由具有Q.Ku格式的固定点数来表示,其中K》2P。如果x,和乂.具有10.6u格式,那么变量D可由6.Ku格式来表示,其中K220。可使用伪浮点表示形式来更重要地表示变量D。可导出变量D且最初以固定点格式(例如,以6.(2P+M)u格式)来表示变量Z),其中K二2P+M。接着可通过以下方式来确定变量D的伪浮点表示形式取得变量的固定点表示形式,从固定点表示形式的最左端位扫描直到遇到第一"1"位,保留此第一个遇到的"1"位和接下来的M-1个位且舍去所有其它位。尾数等于从变量Z)的固定点表示形式保留的M个位。对于伪浮点表示形式来说,尾数包括M个整数位且具有lmm…mm的格式,其中每一"m"可具有"0"或"1"的值。浮点F是此第一"l"从LSB移到MSB的位置。如果变量£>具有6.(2P+M)u格式,那么指数值F从M-6变化到M+2P-1。图3展示由设定单元210a执行以导出使用变量Z)的伪浮点表示形式的系数A、fi和C的计算。设定单元210a是图2中的图形引擎200中的设定单元210的实施例。为了导出系数A,首先在区块312a到312c中基于输入参数值^,]来计算伴随矩阵Mc中的变量("J-(fl。,fl,,fld,如等式(8)所示。接着在区块314a到314c中将变量^,]与属性值(v,.)相乘。在区块316中组合区块314a到314c的输出,且在区块318中将所述输出与变量D的尾数进一步相乘(如等式(9)所指示)以产生系数A。可以与系数/l类似的方式(尽管使用输入参数值b,]和属性值(v,))导出系数£。首先在区块322a到322c中基于输入参数值{x,}来计算伴随矩阵Mc中的变量(&J-(Zv^&2),如等式(8)所示。接着在区块324a到324c中将变量(&,)与属性值(v。相乘。在区块326中组合区块324a到324c的输出,且在区块328中将所述输出与变量D的尾数进一步相乘以产生系数5。为了导出系数C,首先在区块352a-352f、354a-354f和356a-356c中基于输入参数值",f和bJ来计算伴随矩阵Mc中的变量(c,Hk。,q,C2),如等式(8)所示。接着在区块358a到358c中将变量(c^与属性值(v,]相乘。在区块360中组合区块358a到358c的输出,且在区块362中将所述输出与变量Z)的尾数进一步相乘以产生系数C。图3还展示用于表1所示的示范性设计的各个变量的位宽度。对于此设计来说,输入参数(;c,l和b,)具有10.6u格式,且输入参数(v,)具有16.0u格式。以下基本规则用于确定在计算系数A、S和C的过程中的中间结果和最终结果的位宽度。1.两个数的加法或减法产生具有额外位的输出;2.两个数的乘法产生具有等于两个输入数中的位总和的位数目的输出;3.舍位运算(指示为">>")舍弃一定数目的最低重要位(LSB);和4.饱和运算(指示为"SAT")执行最大值(MAX)和/或最小值(MIN)运算以限制最高重要位(MSB)的数目。图3指示可以35+M个位来表示系数a和b中的每一者,且可以45+M个位来表示系数C。大体来说,由于下述原因,系数C比系数A和S多需要P个位。可使用最大值M来指定系数4、5和C的最坏状况(或最大)位宽度。图4展示由渲染单元220a执行以产生属性v的内插值的计算。渲染单元220a是图2中的图形引擎200中的渲染单元220的实施例。渲染单元220a从图3中的设定单元210a接收系数A、S和C。在区块412a和412b中,将三角形内待内插的位置的变量x和y分别与系数A和S相乘,以分别产生中间值夂和^。在区块414中,将中间值^和A与系数C求和,以产生初步结果v'。在区块416中,将初步结果,右移F+6个位位置以考虑变量D的伪浮点表示形式。接着在区块418中,将经移位的值饱和为R个位,其为属性v的整数位的数目。图4还展示用于表1所示的示范性设计的各种变量的位宽度。将上述基本规则应用于每一运算。图4指示可用45+M个位来表示中间值A和^中的每一者,45+M是用于系数C的位数目。屏幕坐标的变量x和y将IO个额外位供应到系数A和使得中间值A和^与系数C的位宽度匹配。初步结果v'具有47+M个位,且属性v的最终结果具有16个位。在图4中,依据用于变量D的尾数的位数目M,给出系数A、fi和C、中间值^和By以及初步结果v'的所有位宽度。较大尾数大小M提供变量Z)和属性v的内插值的较高准确度,但也需要较多位用于内插。可在尾数的位宽度与性能之间进行折衷。可估算(例如,使用计算机模拟)不同尾数大小,以确定随每一不同尾数大小产生的误差范围。接着可选择使用具有所要性能的最小尾数大小。示范性计算机模拟展示用于尾数的M二12个位产生良好结果。然而,也可使用其它尾数大小。返回参看图4,对于M:12来说,可使用(41-F).(F+6)u格式以47个位来表示系数A和B中的每一者,且可使用(51-F).(F+6)u格式以57个位来表示系数C。可使用(51-F).(F+6)u格式以57个位来表示中间值夂和By中的每一者。可使用(53-F).(F+6)u格式以59个位来表示初步结果v'。在初步结果"的59个位中,F+6个LSB用于分数部分且被舍位,且53-F-16个MSB用于整数部分且饱和以获得属性v的最终16个位。对于表1所示的示范性设计,指数值F可在从6到31范围内,或F二[631]。在此情况下,12到37个位被舍位且31到6个位饱和以获得属性v的最终结果。待舍位的位的特定数目和待饱和的位的特定数目视矩阵M的行列式(即,待渲染的三角形的大小)而定。通常以具有与系数C一样大小的累加器来实施实际内插。对于高速渲染来说,通常实施许多(例如,数打)此类累加器,每一累加器用于所渲染的许多属性中的每一者,这耗费硬件。时常,并行运行所述累加器,这耗费功率。本文所述的创新式图形引擎可在硬件与功率方面提供实质性节省。通过利用以下观察可实现用于内插的位数目的大量减少,且因此复杂性显著减小1.由于输入参数x和y归因于固定屏幕大小而受到限制,因此固定数目的分数位可用于系数A、B和C。2.由于待内插的属性v受限于值的一范围内,因此固定数目的整数位可用于系数A、S和C。系数A、S和C的固定和较小位宽度减小了内插过程中中间结果的位宽度且进一步简化计算。可基于屏幕尺寸来减少系数A、fi和C的分数位的数目,且基于用于所渲染的属性的内插值的所要分辨率/准确度来进一步选择系数A、B和C的分数位的数目。返回参看内插等式(1),系数A可视作属性v沿;c轴(例如,水平方向)的增量变化,且系数S可视作属性v沿y轴(例如,垂直方向)的增量变化。对于在水平方向上有P个位的屏幕大小来说,变量;c可取0到2P-l的值。为了俘获i值的整个范围上属性v中的一个LSB的最小变化,系数A应具有至少P个分数位。同样,对于在垂直方向上有P个位的屏幕大小来说,系数fi应具有至少P个分数位以便俘获y值的整个范围上属性v中的一个LSB的最小变化。此外,由于可以P个分数位来表示中间值^-A.x和A=B'y,因此也可以P个分数位来表示系数C。举例来说,对于1024x768的屏幕大小来说,P-10个位用于;c与y,且系数yi和万应具有至少十个分数位。十个分数位接着可用于所有三个系数A、fi和C。或者,12个分数位可用于这些系数以实现较高准确度。大体来说,视属性v的最终内插结果的所要准确度而定,任何数目的分数位可用于系数A、B和C。不同数目的分数位也可用于对误差具有不同等级的敏感性的不同属性。举例来说,较多分数位可用于其中误差引起视觉上较明显的假象的属性,且较少分数位可用于其中误差相对良性的属性。可通过利用属性的三角形渲染的基本几何学来减少系数A、£和C的整数位的数目。将属性的内插值的最终结果限制在由用于属性的位数目(R)所规定的范围内。举例来说,如果属性具有16.0u格式,那么属性的每一内插值为正且限于16个整数位内。这意味着即使等式(1)右侧的三项A^、^和C可为负且甚至可具有多于16个整数位,但基本几何学确保在将所有这三项相加之后,左侧的最终结果将为正且将仅具有16个整数位。图5说明用以减少系数A、S和C的整数位的数目的基本几何学的使用。为了简化起见,图5并未展示二进制小数点右侧的分数位。对于此实例来说,M=12,F=6,中间值A和^中的每一者具有45个整数位,这两个中间值的和具有46个整数位,且系数C具有45个整数位。当在直线上的两个点之间内插时,内插值将具有与被内插的两个端点处的两个值相同的位宽度。因此,即使中间值A和A以及系数C中的每一者具有45个位,但16位属性的内插产生16位内插值。2的补数(其为通常用于表示硬件中的数目的格式)的二进制加法从右向左进行。为了产生属性v的内插值的较低16个位,仅需要量A、A和C的较低16个位。并不需要且可舍去量A^+A的较高30个位和系数C的较高29个位。通过舍去这些较高位对最终结果的精确度并不存在损失。图6展示由设定单元210b执行以导出具有固定数目(R)的整数位和固定数目(T)的分数位的压縮系数^、S和e的计算。设定单元210b是图2中的图形引擎200中的设定单元210的另一实施例。分别基于上文在图3中所述的区块310、320和350中的输入参数(;c,.)和b,]来计算中间系数i、S'和C'。在区块612a到612c中将中间系数^'、5'和C'与变量"的尾数相乘以分别产生系数丄£和C。在区块614a到614c中对系数A、S和C的最右端F+6-T个位进行舍位以分别产生具有T个分数位的系数A'、S"和C"。可通过将系数A、fi和C中的每一者向右移位F+6一T个位且舍去移出的所有F+6-T个二进制位来执行舍位。舍位之后,系数A"、^和(T中的每一者具有T个分数位。接着在区块616a到616c中遮蔽系数^"、S'和C"以保留R个较低整数位和T个分数位。可通过以由用于R+T个最右端位位置的R+T个一和用于所有其它位位置的零构成的掩码对系数A'、5'和C"中的每一者执行逻辑AND(与)运算来实现遮蔽。保留对应于掩码中的一的系数位且舍去对应于掩码中的零的系数位。对系数A'、B"和C"的掩码运算分别产生压縮系数^、^和^。压縮系数中的每一者具有R.T格式。图6还展示用于表1所示的具有R=16且1=12的示范性设计的各个变量的位宽度。系数A和S中的每一者总共具有47个位,其中F+6个为分数位,且系数C总共具有57个位,其中f+6个为分数位。对于t-12来说,系数a、b和c的f+6-12个最右端位被舍位。所得系数A'和S"中的每一者总共具有53-F个位,其中12个为分数位,且系数C"总共具有63-F个位,其中12个为分数位。掩码运算保留系数A'、^和C"的16个较低整数位,舍去所有较高整数位且提供具有16个整数位和12个分数位的压縮系数A、S禾口^。图7展示由渲染单元220b执行以使用由图6中的设定单元210b导出的压縮系数2、》和e来产生属性v的内插值的计算。渲染单元220b是图2中的图形引擎200中的渲染单元220的另一实施例。在区块712a和712b中将待内插的位置的变量x和y分别与压缩系数2和S相乘。在区块714a和714b中遮蔽中间值^和》以仅保留R个较低整数位和T个分数位。接着在区块716中将经遮蔽的值与压縮系数5求和以产生具有R+2个整数位和T个分数位的初步结果v',其中两个额外整数位来自三个数的相加。在区块718中遮蔽初步结果,以仅保留R个较低整数位和T个分数位。在区块720中对T个分数位进行舍位以获得属性v的最终内插结果。图7还展示用于具有R-16且T二12的示范性设计的各个变量的位宽度。可将具有压縮系数的内插等式表达为v={[(A.x)AND掩码]+[(反;y)AND掩码]+5}AND掩码等式(12)其中掩码是具有(R+T)个一的掩码,且等式(12)中的三个AND运算反映不饱和加法器。内插等式(12)中的所有变量和系数是固定点格式的。等式(12)提议需要两次乘法以产生每一内插值。由于乘法比加法复杂,因此如果可能,希望避免或最小化乘法的使用。图8展示可在并无任何乘法的情况下执行内插的渲染单元220c。渲染单元220c是图2中的图形引擎200中的渲染单元220的另一实施例。如上所述产生压縮系数2、》和^且将其提供到还接收Mux—Ctrl信号的多路复用器812。渲染单元220c可通过从三角形的底部开始且转向三角形的顶部一次扫描一行,来渲染三角形。在开始扫描每一行时,由重设(Reset)信号将(R+T)位不饱和累加器814重设为零,多路复用器812提供压縮系数^且累加器814存储所述压縮系数^。对于第一行的扫描来说,多路复用器812提供系数A。对于此行上的每一像素位置来说,累加器814累加系数A且提供具有R个整数位和T个分数位的输出。单元816对累加器输出中的T个分数位进行舍位且提供属性v的最终内插值。累加器814提供此行上的每一像素位置的输出,且单元816提供每一像素位置的最终内插值。通过以x-O且y-行数来估算等式(12),可针对每一行初始化累加器814。多路复用器812提供压縮系数》且累加器814在垂直方向上累加以到达所渲染的行。多路复用器812接着提供压縮系数^。对于所渲染的行上的每一像素位置来说,累加器814累加压縮系数2且将其输出提供到单元816。单元816对累加器输出进行舍位且提供最终内插值。大体来说,可操作多路复用器812和累加器814以在x方向、y方向上或两个方向的组合上进行扫描。累加器814累加来自多路复用器812的输出且忽略任何溢出(因此命名为"不饱和"累加器)。由不饱和累加器来执行图7中的区块718的掩码运算。图9展示用于渲染三角形的过程900的流程图。最初,基于三角形顶点的",yJ坐标形成伴随矩阵Mc(区块912)。计算三角形面积的倒数的变量Z)(区块914)。接着使用具有最左端位的值为"1"的M位尾数的伪浮点格式来表示变量D(区块916)。接着基于伴随矩阵Mc、变量Z)的尾数和待内插的属性v的三角形顶点处的值{1;'}来计算内插等式的系数A、S和C(区块918)。接着分别基于系数A、S和C导出压縮系数A、^和5(区块920)。压縮系数2、》和5具有拥有R个整数位和T个分数位的固定点格式。接着用压縮系数^、^和^来执行属性v的内插(区块922)。区块912到920表示三角形的设定阶段,且区块922表示三角形的渲染阶段。在以上描述中,用T个分数位计算压縮系数^、》和5以处理显示屏的最大可能三角形,且用R个整数位计算压縮系数^、^和5以处理所内插的属性的整个动态范围。在大多数情况下,待渲染的三角形相对较小,且待内插的属性具有远小于所述属性的完全动态范围的值范围。此外,通过当三角形和待内插的属性并不需要时用较少分数位和/或较少整数位来计算系数2、》和5可实现显著的功率节省。可基于待渲染的三角形的大小来选择压缩系数的分数位的数目(Tx),且所述数目可小于P。可基于待内插的属性的值范围来选择压縮系数的二进制位的数目(Rx),且所述数目可小于R。可用R个二进制位和T个分数位来实施图形引擎,其中可基于屏幕大小来选择T且可基于具有最大动态范围的属性的完全动态范围(即,最大数目的二进制位)来选择R。当待渲染的三角形的Tx小于T时,可将(T-Tx)个最右端(或较不重要)分数位设定为零。同样,当待内插的属性的Rx小于R时,可将(R-Rx)个最左端(或较重要)二进制位设定为零。在硬件中,通常当切换位时消耗功率。通过将并不需要的位设定为零,这些位不消耗功率。由于三角形大小与属性范围通常均较小,因此可将许多分数位和二进制位设定为零,且可实现显著的功率节省。此外,可使用相同图形引擎来渲染具有不同大小和不同范围的属性的三角形(而并非优化多个图形引擎以用于不同三角形大小和/或属性范围)。本文所述的图形引擎还可较高程度地重新配置。可通过简单地改变(R+T)个一的掩码来基于每个三角形的尺寸在运行中导出压縮系数。本文所述的图形引擎和三角形渲染技术可用于各种装置、设备和电子单元。三角形渲染技术执行使用固定点格式的内插,其比使用浮点格式的内插在复杂性、功率、晶粒面积和成本方面更为重要。因此,本文所述的图形引擎和三角形渲染技术可有利地用于无线和移动平台。此类平台的实例包括无线通信装置(例如,蜂窝式电话)、个人数字助理(PDA)、便携式视频游戏单元等。图10展示用于无线通信系统的无线装置1000的框图。无线装置1000可为蜂窝式电话、终端、手机、PDA或某一其它设备。无线通信系统可为码分多址(CDMA)系统、全球移动通信系统(GSM)系统等。无线装置1000能够经由接收路径和传输路径来提供双向通信。对于接收路径来说,由系统中的基站传输的信号被天线1012接收、经由双工器(D)1014路由且被提供到接收器单元(RCVR)1016。接收器单元1016调节且数字化所接收的信号且将输入样值提供到调制解调器处理器1020以用于进一步处理。对于传输路径来说,发射器单元(TMTR)1018接收待从调制解调器处理器1020传输的数据、处理并调节所述数据,且产生经调制信号,所述经调制信号经由双工器1014路由且经由天线1012传输到基站。调制解调器处理器1020执行用于数据传输和接收的处理(例如,编码、调制、解调制、解码等)。图形处理器1022执行用于图形应用(例如,视频游戏、3D化身等)的处理。图形处理器1022可实施上述图形引擎和三角形渲染技术。显示器接口单元1024执行某些后处理任务以便于视频、图形、文本等的显示,且进一步与显示器单元1040介接。显示器单元1040可以是任何类型的电子显示器(例如,薄膜晶体管(TFT)、有机发光二极管(OLED)、阴极射线管(CRT)等)。应用处理器1026执行用于例如多路呼叫、网页浏览、电话拨号应用、媒体播放器、游戏、用户接口等各种应用的处理。控制器1030指导无线装置1000内的各个处理单元的操作。存储器单元1032存储由控制器1030和其它处理单元使用的程序代码和数据。各个处理单元可经由一个或一个以上总线1034进行通信。无线装置1000还可包括不同和/或额外的处理器。举例来说,无线装置1000可包括视频处理器以处理用于视频应用(例如,摄像机、视频回放、视频会议等)的视频内容(例如,静止图像、移动视频、移动文本等)。本文所述的图形引擎和三角形渲染技术可提供具有降低的复杂性的良好内插结果。可使用具有固定数目的整数位(归因于基本几何学)和固定数目的分数位(归因于固定大小的屏幕上的内插)的经压縮的R.T固定点格式来表示内插系数。此压縮格式尤其在渲染阶段减小图形引擎中使用的硬件元件(例如,加法器、累加器、多路复用器等)的大小。固定数目的分数位重要地将可变舍位运算从渲染阶段(例如,图4中的区块416)移动到设定阶段(例如,图6中的区块614)。可变舍位通常实施为"桶移位器(barrelshifter)",其一次移一个位。因此,当在设定阶段(其以每个三角形的方式执行)而并非渲染阶段(其以每个像素的方式执行)中实施可变舍位时,可变舍位可消耗显著更少的功率。可在硬件中重要地实施渲染阶段的固定舍位。固定数目的整数位还降低计算复杂性且进一步允许用简单的不饱和累加器实施渲染阶段,如图8所示。本文所述的技术还可用于渲染除三角形以外的其它多边形。大体来说,可如上所述计算系数和内插值。图形引擎内的检査单元确定每一像素是否在待渲染的三角形或多边形内。图形引擎提供属于三角形或多边形内的像素的最终内插值。可由各种装置来实施本文所述的三角形渲染技术。举例来说,可以硬件、软件或其组合来实施这些技术。对于硬件实施方案来说,用以渲染三角形的处理单元可实施于一个或一个以上专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、经设计以执行本文所述功能的其它电子单元或其组合内。对于软件实施方案来说,可以执行本文所述功能的模块(例如,程序、函数等)实施三角形渲染。软件程序代码可存储于存储器单元(例如,图IO中的存储器单元1032)中且由处理器(例如,控制器1030)来执行。存储器单元可实施于处理器内或处理器外部,在后一种情况下存储器单元可经由此项技术中已知的各种方法以通信方式耦合到处理器。对于硬件和软件实施方案来说,可以软件执行设定阶段,且可以硬件执行渲染阶段。提供对所揭示实施例的以上描述以使所属领域的技术人员能够制造或使用本发明。所属领域的技术人员将容易了解对这些实施例的各种修改,且在并不偏离本发明的精神或范围的情况下可将本文界定的一般原理应用于其它实施例。因此,本发明并不希望限于本文所示的实施例,而是应符合与本文揭示的原理和新颖特征一致的最广泛范围。权利要求1.一种图形处理器,其包含设定单元,其操作以计算用以执行内插来渲染多边形的第一组系数,且基于所述第一组系数导出第二组系数,所述第二组中的每一系数是基于所述第一组中的相应系数而导出且具有比所述第一组中的所述相应系数少的位,所述第二组中的每一系数具有在二进制小数点左侧具有R个整数位且在所述二进制小数点右侧具有T个分数位的固定点格式,其中R大于1且T为零或大于零;以及渲染单元,其可操作以用所述第二组系数来执行内插,以渲染所述多边形。2.根据权利要求1所述的图形处理器,其中所述设定单元可操作以基于所述多边形的顶点的坐标形成矩阵Mc,导出指示所述多边形的面积的倒数的变量D;以及基于所述矩阵Mc、所述变量D和待内插的属性的所述多边形的所述顶点处的值来计算所述第一组系数。3.根据权利要求2所述的图形处理器,其中所述设定单元可操作以用固定点格式来表示所述矩阵Mc的元素且用伪浮点格式来表示所述变量D。4.根据权利要求3所述的图形处理器,其中所述设定单元可操作以用M个位来表示所述变量D的尾数,其中M大于1且所述尾数的最左端位的值为1。5.根据权利要求4所述的图形处理器,其中所述设定单元可操作以基于所要的内插结果准确度来选择M。6.根据权利要求4所述的图形处理器,其中M为12或大于12。7.根据权利要求1所述的图形处理器,其中所述设定单元可操作以针对待内插的属性计算所述第一组系数。8.根据权利要求1所述的图形处理器,其中所述设定单元可操作以进一步基于待渲染的所述多边形的尺寸来导出所述第二组系数。9.根据权利要求7所述的图形处理器,其中所述设定单元可操作以基于用于所述属性的整数位的数目来确定R。10.根据权利要求7所述的图形处理器,其中所述设定单元可操作以基于所述多边形上的所述属性的值的范围来确定R。11.根据权利要求IO所述的图形处理器,其中由所述图形处理器支持但并不用于所述属性的较高较重要二进制位被设定为零。12.根据权利要求1所述的图形处理器,其中所述设定单元可操作以基于用于为其渲染所述多边形的显示屏的水平和垂直尺寸的位的数目来确定T。13.根据权利要求1所述的图形处理器,其中所述设定单元可操作以基于所述多边形的大小来确定T,其中T小于用于为其渲染所述多边形的显示屏的水平和垂直尺寸的所述位数目。14.根据权利要求13所述的图形处理器,其中由所述图形处理器支持但并不用于所述多边形的较低较不重要分数位被设定为零。15.根据权利要求1所述的图形处理器,其中所述设定单元可操作以进一步基于所述渲染单元使用二补数加法执行线性内插来导出所述第二组系数。16.根据权利要求1所述的图形处理器,其中所述渲染单元可操作以基于以下等式来执行内插v-([(l;c)AND掩码]+[(》'力AND掩码]+5}AND掩码,其中,2、》和^是所述第二组中的所述系数;jc和y是所述多边形内的一位置的坐标;掩码是具有预定数目的1的掩码;且v是所述(义,y)坐标处的内插值。17.根据权利要求16所述的图形处理器,其中所述渲染单元包含不饱和累加器,其可操作以累加所述系数^以在水平方向上内插且累加所述系数S以在垂直方向上内插。18.—种执行内插来渲染多边形的方法,其包含计算用以执行内插的第一组系数;基于所述第一组系数导出第二组系数,所述第二组中的每一系数是基于所述第一组中的相应系数而导出且具有比所述第一组中的所述相应系数少的位,所述第二组中的每一系数具有在二进制小数点左侧具有R个整数位且在所述二进制小数点右侧具有T个分数位的固定点格式,其中R大于1且T为零或大于零;以及用所述第二组系数来执行内插,以渲染所述多边形。19.根据权利要求8所述的方法,其中针对待内插的属性计算所述第一组系数,且其中基于用于所述属性的整数位的数目来确定R。20.根据权利要求18所述的方法,其中基于用于为其渲染所述多边形的显示屏的水平和垂直尺寸的位的数目来确定T。21.根据权利要求18所述的方法,其中基于以下等式来执行所述内插v={[(A.;c)AND掩码]+AND掩码]+5}AND掩码,其中,3、》和5是所述第二组中的所述系数;x和y是所述多边形内的一位置的坐标;掩码是具有预定数目的1的掩码;且v是所述(jc,y)坐标处的内插值。22.根据权利要求21所述的方法,其中所述执行内插包含执行所述系数^的不饱和累加以在水平方向上内插,以及执行所述系数》的不饱和累加以在垂直方向上内插。23.—种设备,其包含用于计算用以执行内插以渲染多边形的第一组系数的装置;用于基于所述第一组系数导出第二组系数的装置,所述第二组中的每一系数是基于所述第一组中的相应系数而导出且具有比所述第一组中的所述相应系数少的位,所述第二组中的每一系数具有在二进制小数点左侧具有R个整数位且在所述二进制小数点右侧具有T个分数位的固定点格式,其中R大于1且T为零或大于零;以及用于用所述第二组系数来执行内插以渲染所述多边形的装置。24.根据权利要求23所述的设备,其中针对待内插的属性计算所述第一组系数,且其中R是基于用于所述属性的整数位的数目来确定的。25.根据权利要求23所述的设备,其中T是基于用于为其渲染所述多边形的显示屏的水平和垂直尺寸的位的数目来确定的。26.根据权利要求23所述的设备,其中所述内插基于以下等式来执行v={[(S';c)AND掩码]+[(》-力AND掩码]+5}AND掩码,其中,A、》和5是所述第二组中的所述系数;义和y是所述多边形内的一位置的坐标;掩码是具有预定数目的1的掩码;且v是所述(Jc,y)坐标处的内插值。27.根据权利要求26所述的设备,其中所述用于执行内插的装置包含用于执行所述系数A的不饱和累加以在水平方向上内插的装置,以及用于执行所述系数》的不饱和累加以在垂直方向上内插的装置。28.—种便携式装置,其包含图形处理器,其包含设定单元,其操作以计算用以执行内插来渲染多边形的第一组系数,且基于所述第一组系数导出第二组系数,所述第二组中的每一系数是基于所述第一组中的相应系数而导出且具有比所述第一组中的所述相应系数少的位,所述第二组中的每一系数具有在二进制小数点左侧具有R个整数位且在所述二进制小数点右侧具有T个分数位的固定点格式,其中R大于1且T为零或大于零,以及渲染单元,其操作以用所述第二组系数来执行内插以渲染所述多边形;以及控制器,其操作以指导所述图形处理器的操作。29.根据权利要求28所述的便携式装置,且可操作以经由无线通信系统来提供通信。全文摘要一种图形引擎包括设定单元和渲染(rendering)单元。所述设定单元计算用于内插图形图像的待渲染的三角形的属性v的系数A、B和C。所述设定单元接着基于所述系数A、B和C导出压缩系数A、~B和~C。所述压缩系数具有在二进制小数点(binarypoint)左侧具有R个整数位(integerbit)且在所述二进制小数点右侧具有T个分数位(fractionalbit)的固定点(fixed-point)格式,其中R>1且T≥0。R是基于用于属性v的位的数目来选择的,T是基于屏幕尺寸来选择的,且R+T远小于用以表示所述系数A、B和C的位的数目。所述渲染单元使用所述压缩系数A、~B和~C来执行所述属性v的内插,且可用简单的(R+T)位不饱和累加器来实施。文档编号G06T15/00GK101292271SQ200680039069公开日2008年10月22日申请日期2006年8月24日优先权日2005年8月24日发明者拉古·沙拉申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1