使用各向异性纹理映射的图像绘制方法和图像绘制设备的制作方法

文档序号:6558102阅读:234来源:国知局
专利名称:使用各向异性纹理映射的图像绘制方法和图像绘制设备的制作方法
技术领域
本发明一般涉及一种图像绘制方法和图像绘制设备。该发明涉及例如各向异性的纹理映射。
背景技术
近年来,图像绘制设备的性能已经被显著地增强。
数字图像数据由一组像素表示。当像素处理被执行时,表示对象表面的图片/图案或材料属性的图像(纹理)被添加。从而更详细的表示被实现。该处理被称为“纹理映射”。纹理上每个像素的位置可从一幅通过将像素投影回纹理上所获得的图像(像素覆盖区)获知。在某些情况下,覆盖区由于纹理上的各向异性而畸变。在这样的情况下,各向异性的方向被估计,而纹理通过某种像在诸如Paul S.Heckbert,“Fundamentals of Texture Mapping and Image Warping (MastersThesis)”,Report No.UCB/CSD 89/516,Computer Science Division,University of California,Berkeley,June 1989中公开的过滤来重建。
然而,在这种方法中,在一个帧缓存上考虑中心位于一个像素上的正态分布(高斯)。正态分布被投影回纹理上,同时一个椭圆畸变过滤器(椭圆加权平均)被使用。从而需要大量的计算,计算代价很高。这不适用于硬件实现。
另一种方法被公开在开放GL扩展的主页上(oss.sgi.com/projects/ogl-sample/registry/EXT/texture_filter_anisotropic.txt)。在这种方法中,计算代价可通过多次使用MIP(小而全)映射电路来减小。然而,当像素覆盖区的形状变得更不像一个矩形时,各向异性的计算将变得更加困难。结果,图像变模糊并且图像绘制的精度变差。

发明内容
考虑到上述问题,本发明被提出,而本发明的目标是提供一种可在减小计算代价的同时增强图像绘制精度的图像绘制方法和图像绘制设备。
按照本发明的一个方面的图像绘制方法包括根据图形信息产生像素;确定通过将像素投影到纹理上所获得的覆盖区的各向异性的方向,在该纹理上,一组纹理元素(texel)被配置在uv坐标上,各向异性的方向通过比较在纹理上的覆盖区的至少三个不同方向上的长度来确定;以及根据各向异性的方向执行MIP图的采样,并针对像素执行纹理映射。
按照本发明的一个方面的图像绘制设备包括一个根据要绘制的图形产生像素的光栅化器,它被包含在多个通过将图形绘制区域分割成矩阵所获得的像素中;多个针对由光栅化器产生的像素执行绘制处理的像素处理部件,由此组成一个帧缓存,在其上一组像素被配置在xy坐标上。
一个执行用于为像素添加纹理的处理的纹理单元,在该纹理上,一组纹理元素被配置在uv坐标上;以及多个用于存储由像素处理部件和纹理单元绘制的像素数据的存储器,纹理单元包括一个计算关于帧缓存上至少三个方向的纹理坐标的微分系数的微分电路;一个根据微分电路的计算结果,计算在纹理坐标的至少三个方向上的微分向量的微分向量计算电路;以及一个根据微分向量计算电路的结果,选择至少三个方向中微分向量幅度最大的一个作为在纹理坐标上的像素形状的各向异性的轴的选择电路。


图1是一幅显示了按照本发明第一个实施例的图像处理设备的结构图;图2是一幅显示了包含在按照本发明第一个实施例的图形处理器中的运算处理部件的结构图;图3是一幅显示了包含在按照本发明第一个实施例的运算处理部件中的纹理单元的结构图;图4是一幅显示了在按照本发明第一个实施例的图像处理方法中的帧缓存和多边形之间的关系的示图;图5是在按照本发明第一个实施例的图像处理方法中的纹理的示意图;图6是一幅示出按照本发明第一个实施例的图像处理方法的流程图;图7是一幅示出按照本发明第一个实施例的图像处理方法的流程图;图8是在按照本发明第一个实施例的图像处理方法中的帧缓存的示意图;图9是在按照本发明第一个实施例的图像处理方法中的纹理的示意图;图10是一幅示出按照本发明第一个实施例的图像处理方法的流程图;图11是在按照本发明第一个实施例的图像处理方法中的帧缓存的示意图;图12是一幅显示了在按照本发明第一个实施例的图像处理方法中的纹理上的覆盖区的示意图;图13是一幅显示了在按照本发明第一个实施例的图像处理方法中的纹理上的覆盖区的示意图;图14是一幅显示了在按照本发明第一个实施例的图像处理方法中的纹理上的覆盖区的示意图;图15是一幅显示了在按照本发明第一个实施例的图像处理方法中的纹理上的覆盖区的示意图;图16是一幅显示了在按照本发明第一个实施例的图像处理方法中的纹理上的覆盖区的示意图;图17是一幅显示了在按照本发明第一个实施例的图像处理方法中的纹理上的覆盖区的示意图;图18是一幅显示了在按照本发明第二个实施例的图像处理方法中的纹理上的覆盖区的示意图;图19是一幅显示了在按照本发明第二个实施例的图像处理方法中的纹理上的覆盖区的示意图;图20是一幅显示了包含在按照本发明第三个实施例的纹理单元中的参数计算器的结构图;图21是一幅显示了包含在按照本发明第三个实施例的纹理单元中的偏微分单元的结构图;图22是一幅显示了包含在按照本发明第三个实施例的纹理单元中的(xy,lr)参数计算单元的结构图;图23是一幅显示了包含在按照本发明第三个实施例的纹理单元中的参数决定单元的结构图;图24是一幅显示了包含在按照本发明第四个实施例的纹理单元中的偏微分单元的结构图;图25是一幅显示了包含在按照本发明第四个实施例的纹理单元中的(xy,lr)参数计算单元的结构图;图26是一幅显示了包含在按照本发明第四个实施例的纹理单元中的参数判定单元的结构图;图27是一幅显示了按照本发明第一至第四个实施例的变型的图像处理方法中的纹理上的覆盖区的示意图;
图28是包含按照本发明第一至第四个实施例的图像处理设备的数字电视机的结构图;以及图29是包含按照本发明第一至第四个实施例的图像处理设备的记录/再现设备的结构图。
具体实施例方式
按照本发明第一个实施例的图像绘制方法和图像绘制设备将参考图1进行描述。图1是一幅显示了按照该实施例的图像绘制处理器系统LSI 10的结构图。
如图1所示,按照第一个实施例的图像绘制处理器系统LSI 10包括主机处理器20,I/O处理器30,主存储器40和图形处理器50。主机处理器20和图形处理器50通过处理器总线BUS连接,以使之可相互通信。
主机处理器20包括一个主处理器21,I/O部件22~24和多个数字信号处理器(DSP)25。这些电路块通过本地网LN1连接以使之可相互通信。主处理器21控制主机处理器20中的各个电路块的操作。I/O部件22经由位于主机处理器20和外部之间的I/O处理器30执行数据的传输/接收。I/O部件23执行和主存储器40的数据传输/接收。I/O部件24经由处理器总线BUS执行和图形处理器50的数据传输/接收。数字信号处理器25执行以从主存储器40读出或来自外部的数据为基础的信号处理。
I/O处理器30将主机处理器20连接到,例如,通用总线,外围的诸如HDD或DVD(数字多功能光盘)的驱动器和网络。在这种情况下,HDD或DVD的驱动器可被嵌入到LSI 10中,或者在LSI 10的外部提供。
主存储器40存储主机处理器20操作所需的程序。该程序可从诸如HDD(未显示)的设备读出并被载入到主存储器40中。
图形处理器50包括DMA(直接存储器存取)控制器51(DMAC),I/O部件52~53和运算处理部件54。DMA控制器51控制在主控制器20和图形处理器50之间的通信,以及在运算处理部件54内部的通信。I/O部件52经由处理器总线BUS控制来自/去往主机处理器20的输入/输出。I/O部件53控制,例如,来自/去往诸如PCI总线的各种通用总线的输入/输出,音频/视频输入/输出,以及来自/去往外部存储器的输入/输出。运算处理部件54执行图像处理的运算操作。
运算处理部件54包括一个光栅化器55,多个像素浓淡处理器56-0~56-3和一个本地存储器57。在这个实施例中,像素浓淡处理器的数目是四。不过,像素浓淡处理器的数目不限于四,也可以是8,16,32等等。现在参考图2,运算处理部件54的结构被描绘。图2是运算处理部件54的结构图。
光栅化器55根据输入的图形信息产生像素。像素是在给定图形被绘制时所处理的最小单位区域。图形用一组像素来绘制。
像素浓淡处理器56-0~56-3以从光栅化器55输入的像素为基础执行运算操作,并产生位于本地存储器之上的帧缓存中的图像数据(将在后面描述)。像素浓淡处理器56-0~56-3中的每一个包括一个数据分配单元60,一个纹理单元63和多个像素浓淡处理单元64。
数据分配单元60接收来自光栅化器55的像素数据,并将接收到的像素数据分配给像素浓淡处理单元64-0~64-3。
纹理单元63执行纹理处理,并将纹理数据添加到像素浓淡处理单元64所处理的像素中(“纹理映射”)。
像素浓淡处理单元64构成浓淡处理引擎,并针对像素数据执行图像绘制程序。各个像素浓淡处理单元64完成SIMD(单指令多数据)操作并同时执行针对四个像素的绘制处理。
本地存储器57可以是eDRAM(嵌入式DRAM)。本地存储器57存储像素浓淡处理器56-0~56-3所绘制的像素数据。本地存储器57包括多个与每个像素浓淡处理单元64关联的存储单元。
下面,包含在每个像素浓淡处理器56-0~56-3中的纹理单元63的结构将参考图3进行描述。图3是一幅显示了纹理单元63的一部分的结构图。如图3所示,纹理单元63包括参数计算器70,坐标计算器71,采样器72,累加器73和纹理高速缓冲存储器74。
图3显示了纹理单元63中执行各向异性纹理映射的部分。各向异性的纹理映射在下面描述。
光栅化器55确定一组被要绘制的图形所覆盖的像素,并从该图形的顶点坐标内插参数值。对于每一个像素,色彩和其它属性以这些参数为基础进行计算,并且计算结果被保存在帧缓存中。帧缓存是一个二维的像素阵列。像素坐标在下文中被表示为(x,y)。
当像素处理被执行时,表示对象表面的图片/图案或材料属性的图像(纹理)被映射。从而更详细的表示被实现。该处理被称为纹理映射。纹理是纹理元素的二维阵列。在下文中,纹理元素的坐标被表示为(u,v)。基本上,纹理元素坐标作为一个参数被赋给图形的每个顶点。通过把每个位于帧缓存上的具有由光栅化器55内插的坐标的像素投影到纹理上所获得的图像(像素覆盖区)依赖于为对象提供纹理元素坐标的方式和投影转换而大为不同。因此,当纹理映射要被执行时,需要对覆盖区内的纹理元素应用某种过滤。
图4和图5显示了该处理的示意图。图4是一幅描绘了对应帧缓存的多边形的概念性视图。假设一个圆形像素位于帧缓存上,如图4所示。并假设对应该像素的多边形相对于视线很大地倾斜。那么,如图5所示,覆盖区具有在某个方向上严重拉伸的形状。该方向被称为“各向异性的方向”。因此,在这种情况下,纹理元素并不照原样被添加到像素上,而是经历某种过滤。
在纹理单元63中使用的过滤方法是双线性过滤和MIP映射。在双线性过滤中,一个给定像素的纹理坐标的四个相邻纹理元素被获得,并且线性内插通过使用这四个纹理元素来执行。该过滤处理由采样器72执行。
在MIP映射中,具有不同清晰度的多个预过滤图像(MIP图)被准备在存储器中。根据覆盖区的大小,选择具有适当清晰度的图像。如果MIP图的数目是N,那么(0~N-1)被称为“MIP图等级”。如果MIP图的等级增加1,图像的大小在高度和宽度上均减半。MIP图的等级由表示纹理的详细度的值LOD选择。值LOD由参数计算器70计算。
在覆盖区在给定方向上拉伸的情况下,即,在覆盖区是各向异性的情况下,采样器72根据各向异性的方向不止一次地执行MIP图的采样。表示采样点数目的值ANISO和采样方向(du,dv)由参数计算器70计算。另外,坐标计算器71根据(du,dv)和ANISO计算采样点的纹理坐标。
累加器73累加在多个点上的MIP图的采样结果,并且将通过把累加值除以ANISO所获得的均值作为最终的结果输出。纹理高速缓冲存储器74存储从本地存储器57读出的纹理数据。采样器72计算必需的纹理数据的存储地址,并向纹理高速缓冲存储器74发出一个纹理数据读出请求。如果必需的数据没有被存储在纹理高速缓冲存储器74中,纹理高速缓冲存储器74被指示从本地存储器读出数据。
下面,具有上述结构的图形处理器50的操作在特别重视各向异性的纹理映射的情况下被描述。图6是一幅描绘了由图形处理器50执行的图形绘制处理的流程图。
当一幅图形要被绘制时,图形信息首先被输入到光栅化器55中(步骤S10)。图形信息包括,例如,图形的顶点坐标和色彩信息。然后,光栅化器55产生对应被要绘制的图形占用的位置的像素,并将产生的像素传送到像素浓淡处理器56-0~56-3中任何一个的数据分配单元60(步骤S11)。数据分配单元60将像素分配给四个像素浓淡处理单元64。像素浓淡处理单元64执行图像绘制程序,并完成像素绘制处理(步骤S12)。随后,像素从像素浓淡处理单元64传送到纹理单元63,然后纹理单元63执行纹理映射(步骤S13)。如果纹理映射被完成,那么像素被存储到本地存储器57中,同时该处理结束(步骤S14)。
纹理映射的结果一旦返回任何一个像素浓淡处理单元64,就被存储到本地存储器中。在像素处理的任意时刻,像素浓淡处理单元64发送一个纹理请求,并能够执行其它指令直到结果从纹理单元63返回。像素浓淡处理单元64可以使用从纹理单元63返回的结果进一步执行像素处理,或发送进一步的纹理请求,或将结果存储到本地存储器中。因为像素浓淡处理单元64根据程序员编写的指令进行操作,上面提到的自由度被提供。从这种意义上说,在图6中,纹理映射(步骤S13)可被认为是像素运算处理(步骤S12)的一部分。
下面,步骤13中的纹理映射的细节将参考图3和图7来描述。图7是纹理映射的流程图。
开始时,像素数据从任何一个像素浓淡处理器64输入到纹理单元63(步骤S20)。在图3中,(2×2)的像素数据p00,p01,p10,p11是输入。四个像素的uv坐标被如下表示p00(p00.u,p00.v)p01(p01.u,p01.v)p10(p10.u,p10.v)p11(p11.u,p11.v)图8和图9显示了位于xy坐标上的一个像素的形状的例子和位于uv坐标上的覆盖区形状的例子。
随后,参数计算器70根据上面的坐标计算ANISO,LOD和(du,dv)(步骤S21)。步骤S21中的处理参考图10的流程图被详细描述。
参数计算器70首先得到在帧缓存上的0°方向(x轴)和90°方向(y轴)上的纹理坐标的偏微分系数du/dx,du/dy,dv/dx和dv/dy(步骤S30)。偏微分系数通过下面的公式(2)获得du/dx=((p10.u-p00.u)+(p11.u-p01.u))/2du/dy=((p10.v-p00.v)+(p11.v-p01.v))/2dv/dx=((p01.u-p00.u)+(p11.u-p10.u))/2dv/dy=((p01.v-p00.v)+(p11.v-p10.v))/2...(2)进一步,参数计算器70得到如图11所示的在相对x轴成45°方向(l轴)和135°方向(r轴)上的纹理坐标的偏微分系数du/dr,du/dl,dv/dr和dv/dl(步骤S31)。这些偏微分系数通过下面的公式(3)获得
du/dl=(p11.u-p00.u)/dv/dl=(p11.v-p00.v)/du/dr=(p10.u-p01.u)/dv/dr=(p10.v-p01.v)/...(3)为了抵消像素对角线的长度,除以被执行。
然后,ANISO和LOD被计算。ANISO和LOD的计算不仅仅关于x轴和y轴进行,也关于l轴和r轴进行。在下文中,针对x轴和y轴的ANISO和LOD被表示为ANISOxy和LODxy,而针对l轴和r轴的ANISO和LOD被表示为ANISOlr和LODlr。
为了计算ANISOxy和LODxy,纹理单元63首先得到Pmax和Pmin(步骤S32)。图12描绘了该处理。图12是uv坐标系,显示了像素的覆盖区。
如图12所示,Pmax是矩形覆盖区四条边中较长边的长度,而Pmin则是较短边的长度。因此,Pmax和Pmin可通过下面的公式(4)和(5)给出Pmax=max(|(du/dx,dv/dx)|,|(du/dy,dv/dy)|)...(4)Pmin=min(|(du/dx,dv/dx)|,|(du/dy,dv/dy)|)...(5)其中max和min是用于获得最大值和最小值的函数。使用Pmax和Pmin,ANISOxy由下面的公式(6)给出ANISOxy=min(ceil(Pmax/Pmin),MAXANISO)...(6)在公式(6)中,ceil是用于将小数部分向上舍入为整数的函数,而MAXANISO则是采样点数目的最大值。简而言之,两者,即覆盖区的(较长边的长度/较短边的长度)和采样点的最大指定数目,中较小的一个成为ANISOxy。LODxy由下面的公式(7)给出LODxy=log2(Pmax/ANISOxy)...(7)按照上述方式,ANISOxy和LODxy被得到。
下面,为了计算ANISOlr和LODlr,纹理单元63得到Qmax和Qmin(步骤S33)。图13描绘了该处理。图13是uv坐标系,显示了如图12所示的同一像素的覆盖区。
如图13所示,Qmax对应覆盖区的较长对角线的长度,而Qmin则对应较短对角线的长度。因此,Qmax和Qmin可通过下面的公式(8)和(9)给出Qmax=max(|(du/dl,dv/dl)|,|(du/dr,dv/dr)|)...(8)Qmin=min(|(du/dl,dv/dl)|,|(du/dr,dv/dr)|)...(9)使用Qmax和Qmin,ANISOlr由下面的公式(10)给出ANISOlr=min(ceil(Qmax/Qmin),MAXANISO)...(10)简而言之,两者,即覆盖区的(较长对角线的长度/较短对角线的长度)和采样点的最大指定数目,中较小的一个成为ANISOlr。另一方面,LODlr由下面的公式(11)给出LODlr=log2(Qmax/ANISOlr) ...(11)按照上述方式,ANISOlr和LODlr被得到。
下面,计算采样方向(du,dv)。类似ANISO和LOD,(du,dv)不仅仅关于x轴和y轴进行计算,也关于l轴和r轴进行计算。在下文中,对于x轴和y轴的du和dv被表示为duxy和dvxy,而对于l轴和r轴的du和dv则被表示为dulr和dvlr。
为了计算duxy和dvxy,纹理单元63首先比较|(du/dx,dv/dx)|和|(du/dy,dv/dy)|(步骤S34)。如果比较结果是|(du/dx,dv/dx)|≥|(du/dy,dv/dy)|(步骤S35),那么duxy和dvxy由下面的公式(12)确定(步骤S36)duxy=du/dxdvxy=dv/dx ...(12)特别地,在图12所示的例子中,采样点被沿着轴D1配置。
如果比较结果是|(du/dx,dv/dx)|<|(du/dy,dv/dy)|,那么duxy和dvxy由下面的公式(13)确定(步骤S37)
duxy=du/dydvxy=dv/dy...(13)特别地,在图12所示的例子中,采样点被沿着轴D2配置。
随后,为了计算dulr和dvlr,纹理单元63比较比较|(du/dl,dv/dl)|和|(du/dr,dv/dr)|(步骤S38)。如果比较结果是|(du/dl,dv/dl)|≥|(du/dr,dv/dr)|(步骤S39),那么dulr和dvlr由下面的公式(14)确定(步骤S40)dulr=du/dldvlr=dv/dl...(14)特别地,在图13所示的例子中,采样点被沿着轴D3配置。
如果比较结果是|(du/dl,dv/dl)|<|(du/dr,dv/dr)|,那么dulr和dvlr由下面的公式(15)确定(步骤S41)dulr=du/drdvlr=dv/dr...(15)特别地,在图13所示的例子中,采样点被沿着轴D4配置。
下一步,ANISO,LOD和(du,dv)被最终确定。对于这些值,关于具有较高各向异性的轴计算的值被选择。各向异性的程度可根据Pmax/Pmin和Qmax/Qmin计算。因此,这些值中较大的一个可被选择。然而,Pmax/Pmin和Qmax/Qmin之间的大小关系等价于Pmax和Qmax之间的大小关系。因此,纹理单元63比较Pmax和Qmax(步骤S42)。
如果比较结果是Pmax≥Qmax(步骤S43),那么ANISO,LOD和(du,dv)由下面的公式(16)给出(步骤S44)ANISO=ANISOxyLOD=LODxy(du,dv)=(duxy,dvxy)...(16)另一方面,如果Pmax<Qmax,那么ANISO,LOD和(du,dv)由下面的公式(17)给出(步骤S45)
ANISO=ANISOlrLOD=LODlr(du,dv)=(dulr,dvlr)...(17)简而言之,如果Pmax≥Qmax,那么通过把矩形四边的长边和短边作为各向异性的长轴和短轴来执行过滤。如果Pmax<Qmax,那么通过把矩形的长对角线和短对角线作为各向异性的长轴和短轴来执行过滤。
当参数被如上所述计算后,坐标计算器71计算采样点的纹理坐标(u,v)(图7中步骤S22)。如果采样点的数目是N(N是一个整数,并且是1,2,...,ANISO),那么纹理坐标通过下面的公式(18)计算(u-du/2+ddu×N,v-dv/2+ddv×N) ...(18)在图12和图13所示的例子中,如果Qmax>Pmax且ANISO=4,那么采样点如图14所示。图14显示了纹理坐标。在图14中ddu和ddv是采样点之间的偏移量,由公式(19)给出ddu=du/(ANISO+1)ddv=dv/(ANISO+1) ...(19)下面,对于公式(18)给出的坐标,采样器72通过根据由公式(16)或(17)给出的LOD选择适当的MIP图等级来执行采样(步骤S23)。累加器73计算多个采样操作的采样结果的均值(步骤S24)。这样,纹理映射被完成。
按照如上所述的本实施例的绘制设备和绘制方法,下面的有益效果(1)可被获得(1)在防止代价增加的同时,执行具有精确近似的覆盖区的各向异性的过滤是可能的。
对于按照本实施例的结构,当纹理坐标的偏微分系数被计算时,相对x轴成45°和135°角度的l轴和r轴与x轴和y轴一起被考虑,如图11所示。特别地,除了关于覆盖区的边计算的LOD外,还有LODlr关于覆盖区的两条对角线被计算。此外,沿着对角线的采样点数目ANISOlr和采样方向(dulr,dvlr)被得到。Pmax和Qmax被比较。如果Pmax较大,那么关于覆盖区的边得到的值被用作LOD,ANISO和(du,dv)。如果Qmax较大,那么关于覆盖区的对角线得到的值被用作LOD,ANISO和(du,dv)。因此,与现有技术比较,各向异性可被更加精确地计算。换句话说,作为多个MIP映射操作的结果被覆盖的区域可更接近覆盖区的形状。通过使用MIP图,计算代价的增加可被抑制,纹理映射的精度可被提高,并且绘制设备的绘制精度可被增大。
举个例子,设想在计算偏微分系数时仅考虑x轴和y轴的情况。假设覆盖区的形状是如图15和图16所示的矩形。如果Pmax>>Pmin,那么各向异性可被正确地计算。这也适用于本实施例的情况,并且ANISOxy,LODxy和(duxy,dvxy)被用作ANISO,LOD和(du,dv)。然而,如果仅考虑x轴和y轴,当覆盖区的形状变得更加不同于矩形时,各向异性的计算误差将增大。例如,如果覆盖区的形状变得更接近菱形,如图17所示,并且PmaxPmin,那么各向异性的程度被认为很小。如果覆盖区的形状是一个理想的菱形,且Pmax=Pmin,那么它被认为是理想地各向同性的。于是,ANISO=1,LOD=log2(Pmax),并且在这种情况下的映射等价于简单的MIP映射。然而,在本实施例中,如果Pmax=Pmin,那么Qmax>Pmax。因此沿着较长对角线的方向被确定为各向异性的方向。从而,即使覆盖区具有理想的菱形,各向异性过滤可以被执行。同时,为了确定各向异性,可以采用在其中覆盖区的面积被考虑用来代替Pmin的方法。然而,与该方法相比,按照本实施例的计算方法可以在覆盖区的形状更接近菱形的情况下获得更高的覆盖区近似精度。
下面,按照本发明第二个实施例的图像绘制设备和图像绘制方法被描述。在第二个实施例中,第一个实施例中的计算公式被修正以使之更适用于基于硬件的体系结构。由于LSI 10的结构和绘制方法和第一个实施例是共同的,相关的描述被省略。在下面主要描绘参数计算器70中的计算方法。实数值利用尾数部分m和指数部分e以m×2e的形式表示。
开始时,在图10的步骤S30中,参数计算器70得到在帧缓存上的0°方向(x轴)和90°方向(y轴)上纹理坐标的偏微分系数du/dx,du/dy,dv/dx和dv/dy。这些值由上面提到的公式(2)获得。随后,参数计算器70得到关于l轴和r轴的纹理坐标的偏微分系数du/dr,du/dl,dv/dr和dv/dl(步骤S31)。在这种情况下,这些值通过下面的代替上述公式(3)的公式(20)得到du/dl=p11.u-p00.udv/dl=p11.v-p00.vdu/dr=p10.u-p01.udu/dr=p10.v-p01.v...(20)除以被从公式(3)中删除。原因是向量的绝对值是基于L2范数得到的,但范数自身没有得到,而是得到其平方。因此,平方根的计算变得不必要。在公式(20)中被避免的除以的校正可通过在公式(22)中除以2来实现。L2范数由下面的公式(21)给出L2范数|(x,y)|=(x2+y2) ...(21)各个向量的范数由下面的公式(22)给出|(du/dx,dv/dx)|2=(du/dx)2+(dv/dx)2|(du/dy,dv/dy)|2=(du/dy)2+(dv/dy)2|(du/dl,dv/dl)|2=((du/dl)2+(dv/dl)2)/2|(du/dr,dv/dr)|2=((du/dr)2+(dv/dr)2)/2 ...(22)这些范数之间的大小关系可用平方值确定。
特别地,在第一个实施例中的公式(4),(5),(8)和(9)被修改为下面的公式(23)~(26)Pmax2=max(|(du/dx,dv/dx)|2,|(du/dy,dv/dy)|2) ...(23)Pmin2=min(|(du/dx,dv/dx)|2,|(du/dy,dv/dy)|2) ...(24)
Qmax2=max(|(du/dl,dv/dl)|2,|(du/dr,dv/dr)|2) ...(25)Qmin2=min(|(du/dl,dv/dl)|2,|(du/dr,dv/dr)|2) ...(26)关于x轴方向和y轴方向的计算将在下面描述。由于涉及l轴方向和r轴方向的计算是相似的,相关的描述被省略。
为了简化后续步骤的计算,ANISO被限制为2的乘方。在公式(6)中,Pmax/Pmin的小数部分被向上舍入为一整数。在本实施例中,接近Pmax/Pmin的值的2的乘方被获得。假设现在Pmax2用尾数部分Mmax和指数部分Emax表示,而Pmin2用尾数部分Mmin和指数部分Emin表示。例如,ANISOxy可通过下面的公式(27)和(28)计算ANISO_EXP=(Emax-Emin-m+BIAS)/2 ...(27)ANISOxy=min(2ANISO_EXP,MAXANISO) ...(28)如果Mmax<Mmin,那么m=1。否则,m=0。由于Pmax/Pmin可用下面的公式(29)表示,公式(27)和(28)可被导出Pmax/Pmin=(Pmax2/Pmin2)1/2=((Mmax/Mmin)×2(Emax-Emin))1/2...(29)当Mmax<Mmin时,指数部分减1。因此,m=1。当Pmax/Pmin的值舍入为2的乘方时,BIAS调节向上/下舍入。在BIAS=0的情况下,当Pmax/Pmin在[2n,2n+1](n整数)的范围内时,ANISO是2n,因此是向下舍入。在BIAS=2的情况下,当Pmax/Pmin在[2n,2n+1](n整数)的范围内时,ANISO是2n+1,因此是向上舍入。在BIAS=1的情况下,当Pmax/Pmin在[×2n,×2n+1]的范围内时,ANISO是2n+1,而×2n成为向上舍入和向下舍入之间的边界值。
假设在公式(28)中,MAXANISO是2的乘方。
因此,公式(6)中的除法被避免。
由于ANISO是2的乘方,LOD通过将第一个实施例中的公式(7)修改为下面的公式(30)来计算
LODxy=log2(Pmax2/(2ANISO_EXP)2)/2=log2(Mmax×2(Emax-2×ANISO_EXP))/2 ...(30)特别地,ANISO_EXP的两倍被从Pmax2的指数部分减去,然后减法结果的以2为底的对数被计算。被表示为m×2e形式的实数的对数通过下面的公式(31)计算log2(m×2e)=e+log2(m)...(31)在公式(31)中,log2(m)可参考表来计算,或在把尾数部分m规格化到[1,2]范围内的前提下通过下面的公式(32)来近似log2(m)=m-1 ...(32)通过上面的修改,公式(7)中的除法被避免。
采样点被配置的方向(du,dv)与公式(12)和(13)中的相同。然而,由于向量范数被保留为平方值,因此比较以这些平方值的方式进行,而无需平方根的计算。如果|(du/dx,dv/dx)|2≥|(du/dy,dv/dy)|2,那么duxy=du/dxdvxy=dv/dx...(33)在图12所示的例子中,采样点被沿着轴D1配置。如果|(du/dx,dv/dx)|2<|(du/dy,dv/dy)|2,那么duxy=du/dydvxy=dv/dy...(34)上述修改适用于公式(10),(11),(14)和(15),而最终的ANISO,LOD和(du,dv)由公式(16)和(17)确定。
采样点的纹理坐标通过修改公式(18)和(19),由下面的公式(35)和(36)得到(u-du/2-ddu/2+ddu×N,v-dv/2-ddv/2+ddv×N)...(35)ddu=du/ANISOddv=dv/ANISO ...(36)在公式(36)中,由于ANISO是2的乘方,除法变成指数部分的减法。在公式(19)中的除以(ANISO+1)变为除以ANISO。如果坐标通过公式(18)计算,那么采样点不会关于原始纹理坐标(u,v)对称。因此,在公式(35)中,具有(-ddu/2,-ddv/2)偏移量的修正被进行。在这种情况下,du/2,dv/2,ddu/2和ddv/2可通过从指数部分减1来计算。
通过使用按照本实施例的计算方法,除上述的第一个实施例的有益效果(1)之外,下面的有益效果(2)将被获得(2)纹理单元的硬件结构体系能够被简化。
按照上述方法,与公式(20)所表示的一样,除以可从偏微分中省略。用于修正除以的公式(22)中的除以2可以通过从指数部分减1来执行。因此,电路配置可被简化,并且计算代价可被减小。
另外,与公式(28)所表示的一样,ANISO被表示为2的乘方。这样,在ANISO的计算中,需要考虑的可能仅是指数部分ANISO_EXP。在这种情况下,整数运算操作在公式(27)和(28)中执行。由于小数部分的计算是不需要的,电路配置可以被简化。此外,公式(6)中的除法可以被避免。另外,为了得到m的值,只有公式(27)中的尾数部分Mmax和Mmin之间的大小关系被需要。这样,这些值Mmax和Mmin的精度可以很低。因此,在向量范数公式(23)~(26)中的尾数部分的精度可被降低,并且计算代价可被减小。
由于ANISO被舍入为2的乘方,折衷发生在图像质量和计算速度之间。在ANISO通过设置BIAS=0而被舍入到2的较小次方的情况下,采样点的数目小于通常所需的数目,并且图像质量退化。不过,由于采样次数减小,计算速度增加。相反地,在通过设置BIAS=2而执行舍入到2的较大次方的情况下,图像质量增加,但计算速度减小。因此,通过设置BIAS=1,中等的图像质量和计算速度可被获得。即使采样次数为了保证图像质量而增加,仅仅是同一处理的重复次数增加,因此电路的面积不会增大。
此外,通过使用公式(30),(31)和(32)的变型,LOD计算时的除法和对数可被避免。
如上所述,通过像在这个实施例中一样修改计算公式,电路配置可以被简化,并且计算代价可以被降低。图18和图19显示了在使用该实施例的方法的情况下的采样点。图18和图19显示了纹理坐标上的覆盖区。图18显示了对应x轴方向的边被确定为各向异性的长轴的情况,而图19显示了对应l轴方向的对角线被确定为各向异性的长轴的情况。
如图18所示,采样点之间的间隔ddu,ddv比公式(18)和(19)的情况大。然而,由于所有采样点都落在覆盖区内,过滤的质量不会变化很大。在图19的情况中,除以被从第一个实施例中的公式(14)省略。因此,采样点之间的间隔ddu,ddv也增加。然而,由于所有采样点都落在覆盖区内,过滤的质量不会恶化。
下面,依据本发明第三个实施例的图像绘制设备被描述。这个实施例涉及实现了被包含在第一个实施例的纹理单元63中的参数计算器70的硬件体系结构。在其它方面,第三个实施例与第一个实施例是共同的,因此共同部分的描述被省略。
图20是参数计算器70的结构图。如图20所示,参数计算器70包括偏微分单元80,(xy,lr)参数计算单元81和参数决定单元82。这些单元将在下面详细描述。
图21是偏微分单元80的电路图。如图21所示,偏微分单元80包括x微分电路90,y微分电路91,l微分电路92和r微分电路93。x微分电路90包括减法器100和101,加法器102和除法器103。减法器100执行(p11.u)和(p01.u)之间的减法,以及(p11.V)和(p01.v)之间的减法。减法器101执行(p10.u)和(p00.u)之间的减法,以及(p10.v)和(p00.v)之间的减法。加法器102把减法器100的减法结果和减法器101的减法结果相加。除法器103把加法器102的加法结果除以2。这样,在公式(2)中表示的du/dx和dv/dx被获得。
y微分电路91包括减法器104和105,加法器106和除法器107。减法器104执行(p11.u)和(p10.u)之间的减法,以及(p11.V)和(p10.v)之间的减法。减法器105执行(p01.u)和(p00.u)之间的减法,以及(p01.v)和(p00.v)之间的减法。加法器106把减法器104的减法结果和减法器105的减法结果相加。除法器107把加法器106的加法结果除以2。这样,在公式(2)中表示的du/dy和dv/dy被获得。
l微分电路92包括减法器108和除法器109。减法器108执行(p11.u)和(p00.u)之间的减法,以及(p11.v)和(p00.v)之间的减法。除法器109把减法器108的减法结果除以。这样,在公式(3)中表示的du/dl和dv/dl被获得。
r微分电路93包括减法器110和除法器111。减法器110执行(p10.u)和(p01.u)之间的减法,以及(p10.v)和(p01.v)之间的减法。除法器111把减法器110的减法结果除以。这样,在公式(3)中表示的du/dr和dv/dr被获得。
图22是(xy,lr)参数计算单元81的电路图。如图22所示,参数计算单元81包括xl轴坐标计算器120,yr轴坐标计算器121和选择器122。
xl轴坐标计算器120执行涉及公式(4),(5),(8)和(9)中x和l的计算,包括平方计算器123和124,加法器125和平方根计算器126。平方计算器123计算(du/dx)2和(du/dl)2。平方计算器124计算(dv/dx)2和(dv/dl)2。加法器125执行(du/dx)/2和(dv/dx)/2的加法,以及(du/dl)2和(dv/dl)/2的加法,它们由平方计算器123和124获得。平方根计算器126计算加法器125的计算结果的平方根。结果,在下面的公式(37)中表示的Nx和Nl被获得Nx=((du/dx)2+(dv/dx)2)Nl=((du/dl)2+(dv/dl)2) ...(37)yr轴坐标计算器121执行涉及公式(4),(5),(8)和(9)中y和r的计算,包括平方计算器127和128,加法器129和平方根计算器130。平方计算器127计算(du/dy)2和(du/dr)2。平方计算器128计算(dv/dy)2和(dv/dr)2。加法器129执行(du/dy)2和(dv/dy)2的加法,以及(du/dr)2和(dv/dr)2的加法,它们由平方计算器127和128获得。平方根计算器130计算加法器129的计算结果的平方根。结果,在下面的公式(38)中表示的Ny和Nr被获得Ny=((du/dy)2+(dv/dy)2)Nr=((du/dr)2+(dv/dr)2)...(38)选择器122包括比较器131和选择器电路132~135。比较器131比较Nx和Ny,以及Nl和Nr。
选择器电路132在比较器131的比较结果是Nx≥Ny时,把Nx作为Pmax输出,而在比较结果是Nx<Ny时,把Ny作为Pmax输出。另外,选择器电路132在Nl≥Nr时,把Nl作为Qmax输出,而在Nl<Nr时,把Nr作为Qmax输出。选择器电路133根据与选择器电路132的规则相反的规则选择Nx或Ny,以及Nl或Nr,并将所选值作为Pmin和Qmin输出。
选择器电路134在比较器131的比较结果是Nx≥Ny时,把du/dx作为duxy输出,而在比较结果是Nx<Ny时,把du/dy作为duxy输出。另外,选择器电路134在Nl≥Nr时,把du/dl作为dulr输出,而在Nl<Nr时,把du/dr作为dulr输出。
选择器电路135在比较器131的比较结果是Nx≥Ny时,把dv/dx作为dvxy输出,而在比较结果是Nx<Ny时,把dv/dy作为dvxy输出。另外,选择器电路135在Nl≥Nr时,把dv/dl作为dvlr输出,而在Nl<Nr时,把dv/dr作为dvlr输出。
这样,公式(4),(5),(8),(9),(12)~(15)和(21)被执行。
图23是参数决定单元82的电路图。参数决定单元82执行公式(6),(7),(10),(11),(16)和(17)。如图23所示,参数决定单元82包括选择器140,ANISO计算器141和LOD计算器142。选择器140包括比较器143和选择器电路144~147。比较器143比较Pmax和Qmax。
选择器电路144在比较器143中的比较结果是Pmax≥Qmax时输出Pmax,而在比较结果是Pmax<Qmax时输出Qmax。选择器电路145在Pmax≥Qmax时输出Pmin,而在Pmax<Qmax时输出Qmin。选择器电路146在Pmax≥Qmax时把duxy作为最终的du输出,而在Pmax<Qmax时把dulr作为最终的du输出。选择器电路147在Pmax≥Qmax时把dvxy作为最终的dv输出,而在Pmax<Qmax时把dvlr作为最终的dv输出。
ANISO计算器141包括除法器148,舍入部件149和选择器电路150。除法器148执行选择器电路144和145的输出的除法(Pmax/Pmin)或(Qmax/Qmin)。舍入部件149将除法器148计算结果的小数部分向上舍入为一整数。选择器电路150选择舍入部件149的输出和MAXANISO中较小的一个,并将所选值作为最终的ANISO输出。
LOD计算器142包括除法器151和对数计算器152。除法器151执行选择器电路144的输出和选择器电路150的输出的除法(Pmax/ANISO)或(Qmax/ANISO)。对数计算器152计算除法器151的输出的对数(log2),并将计算结果作为最终的LOD输出。
这样,LOD,ANISO和(du,dv)可被计算。偏微分单元80和(xy,lr)参数计算单元81中涉及xy轴和lr轴的计算可使用同样的电路通过在不同周期进行计算来执行。特别地,在偏微分单元80中,用于u坐标的偏微分的电路可被用于v坐标的偏微分。另外,在(xy,lr)参数计算单元81中,涉及xy方向的参数计算电路可被用于涉及lr方向的参数计算。无需说明,为涉及xy轴的计算和涉及lr轴的计算分别提供两个完全相同的电路是可能的。
下面,根据本发明第四个实施例的图像绘制设备被描述。这个实施例涉及实现被包含在第二个实施例的纹理单元63中的参数计算器70的硬件体系结构。只有不同于第三个实施例的地方将在下面描述。
参数计算器70的结构配置与图20中所示的一样。图24是偏微分单元80的电路图。如图24所示,偏微分单元80通过从连同第三个实施例描述的图21所示结构中去掉除法器109和111来构建。公式(2)和(20)由该结构执行。
图25是(xy,lr)参数计算单元81的结构图。如图25所示,参数计算单元81通过把在连同第三个实施例描述的图22所示结构中提供的平方根计算器126和130分别替换为除法器160和选择器电路161、以及除法器162和选择器电路163来构建。
关于x轴和y轴,选择器电路161选择加法器125的计算结果((du/dx)2+(dv/dx)2),并将其作为Nx输出,而选择器电路163选择加法器129的计算结果((du/dy)2+(dv/dy)2),并将其作为Ny输出。关于l轴和r轴,除法器160和162将来自加法器125和129的输出除以2。除法结果(((du/dl)2+(dv/dl)2)/2)和(((du/dr)2+(dv/dr)2)/2)作为Nl和Nr输出。即,公式(22)被执行。根据Nx和Ny之间的以及Nl和Nr之间的比较结果,选择器122输出公式(23)~(26),(33)和(34)的执行结果。
图26是参数决定单元82的电路图。参数决定单元82执行公式(27),(28),(30),(31)和(32)。不同于第三个实施例,Pmax2,Pmin2,Qmax2和Qmin2代替Pmax,Pmin,Qmax和Qmin。选择器140具有与在第三个实施例中相同的结构。就像连同第二个实施例被描述的一样,Pmax2和Qmax2用尾数部分Mmax和指数部分Emax表示,而Pmin2和Qmin2用尾数部分Mmin和指数部分Emin表示。因此,选择器电路144输出Pmax2或Qmax2的尾数部分Mmax和指数部分Emax,而选择器电路145输出Pmin2或Qmin2的尾数部分Mmin和指数部分Emin。
ANISO计算器141包括比较器164,选择器电路165和150,减法器166,加法器167,除法器168和乘方计算器169。比较器164比较Mmax和Mmin。选择器电路165在比较器164中的Mmax<Mmin时选择0,在其它情况下选择1,并将所选值作为公式(27)中的(-m+BIAS)=m’输出(BIAS=1)。减法器166计算(Emax-Emin)。加法器167将减法器166的输出和选择器电路165的输出相加。除法器168将加法器167的输出除以2,并输出由公式(27)给出的ANISO_EXP。然后,乘方计算器169计算2ANISO_EXP。乘方的计算可在二值表示中通过把“1”向左(向高比特位的那边)移动输入值的量来执行。选择器电路150选择乘方计算器169的输出和MAXANISO中较小的一个,并执行公式(28)。结果,最终的ANISO被获得。在第二个实施例中,由公式(28)计算的值不是最终的ANISO。然而,在本实施例中,ANISO在比较Pmax和Qmax之后计算。因此,在本阶段获得的值成为最终使用的ANISO。
LOD计算器142执行公式(30),包括减法器170和171,加法器172和除法器173。减法器170从Mmax减1。在这里,公式(32)的近似被执行,并且log2(Mmax)可被计算。减法器171计算log2(2(Emax-2×ANISO_EXP))。即(Emax-2×ANISO_EXP)被计算。(2×ANISO_EXP)可通过将加法器167的输出(Emax-Emin+m’)的最低有效位LSB设置为0来获得。这样,减法器171从Emax减去通过将加法器167的输出的LSB设置为0获得的结果。此后,加法器172将减法器170和171的输出相加。结果,log2(Mmax×2(Emax-2×ANISO_EXP))被获得。然后,除法器173将加法器172的输出除以2,公式(30)的计算被完成。最终的LOD因此被获得。在第二个实施例中,类似ANISO,由公式(30)计算的值被描述为不是最终的LOD。然而,在本实施例中,LOD在比较Pmax和Qmax之后计算。因此,在本阶段获得的值成为最终使用的LOD。
通过使用如上所述的第二个实施例的计算方法,除以和对数运算可被避免。与第三个实施例的结构相比较,元件数量增加了。然而,由于在每一部分中的计算量很小,实际的电路面积可以被减小。
如上所述,根据本发明第一至第四个实施例的图像绘制设备和图像绘制方法,当各向异性的纹理映射被执行时,各向异性通过不仅考虑沿着覆盖区边的方向,而且考虑沿着覆盖区对角线的方向来确定。即使在覆盖区的长边和短边近似相等的情况下,各向异性也可在更高精度下被确定。结果,各向异性过滤的精度被增强,并且具有更高图像质量的纹理映射可被实现。因此,图像绘制设备中的图像绘制精度可被提高。
在上面描述的实施例中的步骤S35,S39和S43中,分支条件被分别设置为|(du/dx,dv/dx)|≥|(du/dy,dv/dy)|,|(du/dl,dv/dl)|≥|(du/dr,dv/dr)|和Pmax≥Qmax。可替换地,这些条件可被设置为|(du/dx,dv/dx)|>|(du/dy,dv/dy)|,|(du/dl,dv/dl)|>|(du/dr,dv/dr)|和Pmax>Qmax。原因是当被比较的两个值相等时,不管是基于xy方向还是lr方向计算,同样的计算结果被获得。
在图10中,Pmax和Qmax可在步骤S33之后比较,如果Pmax大于Qmax,那么步骤S38~S43和S45中的计算是不需要的。在相反的情况下,步骤S34~S37和S42~S44是不需要的。此外,如在第三和第四个实施例中一样,在步骤S32和S33中,只有Pmax,Pmin,Qmax和Qmin可被计算,而ANISO和LOD可以在Pmax和Qmax之间进行比较之后计算。因此,不用执行步骤S43~S45中的选择,最终的ANISO和LOD就可以被计算。
进一步,在上面描述的实施例中,与x轴成45°和135°的l轴和r轴被考虑,如图11所示。然而,被添加到x轴和y轴的轴的角度不限于与x轴成45°和135°,而是可以自由地设置。此外,被添加到x轴和y轴的轴的数目不限于二。例如,一个或三个或更多的轴可被添加。被添加的轴不必要在x轴和y轴之外设置。例如,当考虑三个轴时,可以使用x轴和与x轴成120°和240°的两个轴。当轴的数目增加时,计算量随之增加。轴的数目可考虑到与所需图像质量的折衷来设置。例如,图27显示了只有一个轴(z轴)被添加的情况。即使轴的数目是三,各向异性的计算也可通过比较三轴中的最长轴和最短轴来执行。在图27中,覆盖区具有椭圆形状。在上面描述的实施例中,为了方便描述,覆盖区被假定为矩形。然而,覆盖区可以是如图27所示的椭圆,并且覆盖区的形状是没有限制的。
按照第一至第四个实施例的图像处理设备可适用于例如游戏机,家庭服务器,TV,移动信息终端等。图28是在包括按照第一至第四个实施例的图像处理设备的数字TV中提供的数字板的结构图。数字板被用来控制诸如视频/音频的通信信息。如图28所示,数字板1100包括前端单元1110,图像绘制处理器系统1120,数字输入单元1130,A/D转换器1140和1180,重影减少单元1150,3D YC分离单元1160,色彩解码器1170,LAN处理LSI 1190,LAN终端1200,桥媒体控制器LSI 1210,插件槽1220,闪存1230和大容量存储器(例如动态随机存储器(DRAM))1240。前端单元1110包括数字调谐器模块1111和1112,OFDM(正交频分复用)解调单元1113和QPSK(四相相移键控)解调单元1114。
图像绘制处理器系统1120包括发送/接收电路1121,MPEG2解码器1122,图形引擎1123,数字格式转换器1124和处理器1125。例如,图形引擎1123和处理器1125对应连同第一至第四个实施例描述的图形处理器50和主机处理器20。
在上面的结构中,地面数字广播电波,BS(广播卫星)数字广播电波和110度CS(通信卫星)数字广播电波被前端单元1110解调。另外,地面模拟广播电波和DVD/VTR信号被3D YC分离单元1160和色彩解码器1170解码。解调/解码后的信号输入到图像绘制处理器系统1120,并被发送/接收电路1121分离成视频,音频和数据。关于视频,视频信息经由MPEG2解码器1122输入到图形引擎1123。图形引擎1123随后通过在实施例中描述的方法绘制对象。
图29是包括按照第一至第四个实施例的图像处理设备的记录/再现设备的结构图。如图29所示,记录/再现设备1300包括前置放大器1310,电机驱动器1320,存储器1330,图像信息控制电路1340,用户接口CPU 1350,闪存1360,显示器1370,视频输出单元1380和音频输出单元1390。
图像信息控制电路1340包括存储器接口1341,数字信号处理器1342,处理器1343,视频处理器1345和音频处理器1344。例如,视频处理器1345和数字信号处理器1342对应连同第一至第四个实施例描述的图形处理器50和主机处理器20。
通过上面的结构,从前置放大器1310读出的视频数据输入到图像信息控制电路1340。然后,图形信息从数字信号处理器1342输入到视频处理器1345。视频处理器1345通过在本发明实施例中描述的方法来绘制对象。
在上述数字TV或记录/再现设备,特别是具有3D图形功能的设备的情况下,上面描述的有益效果可被获得。
在第一至第四个实施例中描述的各向异性的纹理映射可通过使用计算机由软件实现。即,CPU可被用来执行在图10中描绘的处理。在这种情况下,执行在图10中描绘的处理的程序可被存储在记录媒体中。因此,该程序可被自由地携带,并且按照实施例的图形绘制方法可在各种硬件中实现。
权利要求
1.一种图像绘制方法,其特征在于包括根据图形信息产生像素(p00,p01,p10,p11);确定通过把像素(p00,p01,p10,p11)投影到纹理上所获得的覆盖区的各向异性的方向(D1~D4),在该纹理上一组纹理元素被配置在uv坐标上,各向异性的方向(D1~D4)通过比较所述纹理上的覆盖区的至少三个不同方向(x轴,y轴,l轴,r轴)上的长度来确定;以及根据各向异性的方向(D1~D4)执行MIP图的采样,并且针对像素(p00,p01,p10,p11)执行纹理映射。
2.按照权利要求1的方法,其特征在于当各向异性被确定时,分别对应x轴方向和y轴方向的覆盖区长度(Pmax,Pmin)和分别对应l轴方向和r轴方向的覆盖区长度(Qmax,Qmin)被比较,其中x轴方向,y轴方向,l轴方向和r轴方向附属于在其上有一组像素存在于xy坐标上的帧缓存,并且l轴相对x轴成45°,而r轴相对x轴成135°。
3.按照权利要求1的方法,其特征在于各向异性的方向的确定包括执行覆盖区上纹理坐标u和v关于x轴,y轴,l轴和r轴的偏微分,从而得到du/dx,du/dy,du/dr,du/dl,dv/dx,dv/dy,dv/dr和dv/dl,其中x轴,y轴,l轴和r轴附属于在其上有一组像素(p00,p01,p10,p11)存在于xy坐标上的帧缓存,而且x轴,y轴,l轴和r轴在帧缓存上的不同方向上延伸;通过使用du/dx,dv/dx,du/dy和dv/dy计算对应覆盖区较长边的长度的值Pmax,并且通过使用du/dl,dv/dl,du/dr和dv/dr计算对应覆盖区较长对角线的长度的值Qmax;以及如果Pmax大于Qmax,确定沿着较长边的方向是各向异性的方向,如果Qmax大于Pmax,确定沿着较长对角线的方向是各向异性的方向。
4.按照权利要求3的方法,其特征在于使用相邻像素之间纹理坐标的差来执行偏微分。
5.按照权利要求3的方法,其特征在于各向异性的方向的确定进一步包括计算涉及MIP图的采样沿着覆盖区的较长边执行的情况的第一个详细度(LODxy),以及涉及MIP图的采样沿着覆盖区的较长对角线执行的情况的第二个详细度(LODlr);以及在纹理映射中,如果沿着较长边的方向被确定为各向异性的方向,那么使用第一个详细度(LODxy)来确定MIP图的等级,如果沿着较长对角线的方向被确定为各向异性的方向,那么使用第二个详细度(LODlr)来确定MIP图的等级。
6.按照权利要求5的方法,其特征在于第一个详细度(LODxy)的计算包括通过使用du/dx,dv/dx,du/dy和dv/dy计算对应覆盖区较短边的长度的值Pmin以及使用Pmax和Pmin之间的比值计算第一个采样数目(ANISOxy),第二个详细度(LODlr)的计算包括通过使用du/dl,dv/dl,du/dr和dv/dr计算对应覆盖区较短对角线的长度的值Qmin以及使用Qmax和Qmin之间的比值计算第二个采样数目(ANISOlr),以及如果沿着较长边的方向被确定为各向异性的方向,那么MIP图的采样被执行和第一个采样数目(ANISOxy)一样多的次数,如果沿着较长对角线的方向被确定为各向异性的方向,那么MIP图的采样被执行和第二个采样数目(ANISOlr)一样多的次数。
7.按照权利要求6的方法,其特征在于Pmax和Pmin之间的比值以及Qmax和Qmin之间的比值被表示为2的乘方。
8.按照权利要求1的方法,其特征在于像素覆盖区具有矩形的形状。
9.一种图像绘制方法,其特征在于包括根据图形信息产生像素(p00,p01,p10,p11);确定通过把像素(p00,p01,p10,p11)投影到纹理上所获得的覆盖区的各向异性的方向(D1~D4),在该纹理上一组纹理元素被配置在uv坐标上,各向异性的方向(D1~D4)由涉及帧缓存上的长度的覆盖区的长度变化率来确定,在该帧缓存上一组像素被配置在二维坐标上,关于帧缓存上至少三个不同方向上的覆盖区的长度比较所述变化率;以及根据各向异性的方向(D1~D4)执行MIP图的采样,并且针对像素(p00,p01,p10,p11)执行纹理映射。
10.按照权利要求9的方法,其特征在于关于帧缓存的x轴方向和y轴方向、以及l方向和r方向所述变化率被比较,l轴相对x轴成45°,而r轴相对x轴成135°。
11.按照权利要求9的方法,其特征在于各向异性的方向的确定包括执行覆盖区上纹理坐标u和v关于x轴,y轴,l轴和r轴的偏微分,从而得到du/dx,du/dy,du/dr,du/dl,dv/dx,dv/dy,dv/dr和dv/dl,其中x轴,y轴,l轴和r轴在帧缓存上的不同方向上延伸;通过使用du/dx,dv/dx,du/dy和dv/dy计算对应覆盖区较长边的长度的值Pmax,并且通过使用du/dl,dv/dl,du/dr和dv/dr计算对应覆盖区较长对角线的长度的值Qmax;以及如果Pmax大于Qmax,确定沿着较长边的方向是各向异性的方向,如果Qmax大于Pmax,确定沿着较长对角线的方向是各向异性的方向。
12.一种图像处理设备,其特征在于包括产生对应所要绘制的图形的像素(p00,p01,p10,p11)的光栅化器(55),这些像素被包含在通过将图形绘制区域分割成矩阵而获得的多个像素中;执行针对由光栅化器(55)产生的像素(p00,p01,p10,p11)的绘制处理的多个像素处理部件(64-0~64-3),由此形成帧缓存,在其上一组像素(p00,p01,p10,p11)被配置在xy坐标上;执行将纹理添加到像素(p00,p01,p10,p11)上的处理的纹理单元(63),在该纹理上,一组纹理元素被配置在uv坐标上;以及存储由像素处理部件(64-0~64-3)和纹理单元(63)绘制的像素(p00,p01,p10,p11)的数据的多个存储器(58-0~58-3),其中纹理单元(63)包括计算关于帧缓存上至少三个方向的纹理坐标的微分系数的微分电路(90~93);根据微分电路(90~93)的计算结果计算在纹理坐标的至少三个方向上的微分向量的微分向量计算电路(120,121);以及根据微分向量计算电路(120,121)的结果选择所述至少三个方向中微分向量幅度最大的一个作为纹理坐标上像素形状的各向异性的轴的选择电路(140)。
13.按照权利要求12的设备,其特征在于微分向量计算电路(120,120)计算微分系数的平方,并使用微分值的平方来计算微分向量幅度的平方,以及选择电路(140)比较微分向量幅度的平方。
全文摘要
一种图像绘制方法包括根据图形信息产生像素(p00,p01,p10,p11),确定通过把像素(p00,p01,p10,p11)投影到纹理上所获得的覆盖区的各向异性的方向(D1~D4),在该纹理上一组纹理元素被配置在uv坐标上,根据各向异性的方向执行MIP图的采样,以及针对像素(p00,p01,p10,p11)执行纹理映射。各向异性的方向(D1~D4)通过比较纹理上覆盖区的至少三个不同方向(x轴,y轴,l轴,r轴)的长度来确定。
文档编号G06T15/10GK1845178SQ20061007418
公开日2006年10月11日 申请日期2006年4月7日 优先权日2005年4月8日
发明者坂东洋介, 斋藤敬弘 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1