对要进行纹理操作的像素进行分组的制作方法

文档序号:6339777阅读:170来源:国知局
专利名称:对要进行纹理操作的像素进行分组的制作方法
对要进行纹理操作的像素进行分组
背景技术
本发明总体上涉及图形处理,并且更具体地,涉及图形处理器的纹理单元。图形处理器是通常用于处理与图像显示相关联的处理任务的专用处理器。图形处理器可以包括多个专用功能单元,这些专用功能单元包括纹理单元。纹理单元执行包括纹理解压缩和各向异性滤波的纹理操作。纹理采样器是一种特定类型的纹理单元,其优化纹理滤波并且比通用处理器更快地执行纹理滤波。


图1是根据一个实施例的纹理单元的示意图描述;图2是针对一个实施例的像素坐标系的描述;以及图3是针对一个实施例的流程图。
具体实施例方式根据一些实施例,诸如纹理采样器的纹理单元可以用于执行数学计算。在一些实施例中,可以通过减少在对要进行纹理操作的像素组进行编码时由处理器核心所产生的计算开销,来提高在该处理器核心和纹理单元之间的通信效率。在一些实施例中,这可以通过范围指定符来实现,所述范围指定符有效地将像素块分组为由属于该组的一个像素所指定的一个范围。因此,在一些实施例中,纹理用户接口有益于纹理单元的图形使用和非图形使用两者。参照图1,纹理单元的纹理单元核心45经由纹理控制块(TCB)46接收纹理请求。 纹理控制块46可以包括指向纹理表面的指针、纹理表面的宽度和高度、要进行纹理操作的 η个像素的纹理坐标(u,ν)、要执行的滤波操作的类型,诸如线性、双线性、或三线性、是否包含常规卷积或mxn点积操作、以及纹理滤波结果。在地址产生单元或阶段M中的地址产生逻辑计算由给定的滤波操作所使用的所有纹理像素的地址。以非归一化形式或在0. 0至1. 0之间的归一化形式传递相关像素的坐标u和V。在后一情况中,通过将所述坐标乘以表面尺寸来将所述坐标进行非归一化。例如,u变成i.bu,其中,i是整数并且bu是小数。整数部分用于产生最近的邻居。在双线性内插的情况下,存在4个邻居(i,j)、(i+1,j)、(i,j+1)和(i+1,j+1)。在三线性滤波操作中,存在8个邻居。小数部分可以用于计算在对相邻像素进行混合时可使用的权重。纹理高速缓存56可以耦合到地址产生阶段54,并且用于高速缓存来自存储器58 的数据,其中所述数据通过使用所产生的纹理像素地址来进行存取。内插阶段62可以耦合到纹理高速缓存56。具有累加逻辑和小存储缓冲器64的累加阶段66在一个实施例中耦合到内插阶段62。纹理控制块46被用作经过建立阶段50的、对范围指定符解码器47的输入。解码器47可以包括纹理单元中的有限状态机(FSM)48以根据范围指定符来计算(u,ν)坐标。还可以在解码器中设置加法器49,并且在一些实施例中,可以使用多个加法器。在一些实施例中,可以使用范围指定符,来代替指定要进行纹理操作的每个像素各自的u和ν坐标。可以针对常见的几何形状,诸如正方形、矩形、三角形等,来定义范围指定符。例如,诸如以下所述的结构之类的结构可以用于指定矩形区域struct {int u ;int ν ;int dU ;int dV ;}rectangle_specifier ;在图2中示出了该矩形区域。图2示出了用于基于范围的寻址的方案,其中在χ和 y方向上指定初始的u和ν值以及偏移量dU和dV,但是提供了阵列元素的矩形窗口以供考虑。具体而言,在图2示出的示例中,在网格内用阴影描绘了 6*5的矩形区域。用星号标记的左上角位于u,ν坐标(6,5)处。矩形区域可以由元组{5,6,6,5}来指定,其中前两个位置(5,6)是u和ν坐标,并且后两个位置(6,幻分别是在u和ν方向上的dU和dV偏移量。在本示例中,并非是计算阴影块中每个像素的(u,ν)对,而是可以仅需要用星号标记的左上角像素的(U,ν)对。在本示例中,此举可以节省30次(u,ν)计算。 此外,在一些实施例中,并非是指定在阴影矩形内的所有U和ν坐标对(这将需要 30*2*4Β或者MOB的对),而可以仅使用一个包含4个B值的元组= 16B),节省了 224B。减少的存储随后可以用于对返回数据进行编码。在一些实施例中,元组的使用可以节省在将u,ν对传送至纹理采样器时的带宽。因此,可以通过使用一个或多个锚像素(其中,在图2中由星号指示了一个锚像素)来定义几何形状(例如,图2中所示的矩形)。锚像素是在已知的几何形状内在所定义位置中的像素。基于锚像素的位置和所述元组,可以将由已知形状定义的像素组指定为一组。作为另一示例,一个圆形像素组的锚像素例如可以是该圆形的中心。在一些实施例中,还可以在元组内对几何形状的类型进行编码。这种方法允许在不同的情况下动态地选择最合适的几何形状。产生纹理坐标的序列发生器有限状态机(FSM) 52可以以硬件实现,实现为范围解码逻辑,或者实现为软件。FSM 52根据范围指定符来计算纹理坐标。在一些实施例中,解码器50内的解码逻辑可以是在地址产生阶段44中的额外阶段。坐标非归一化获得在0. 0至1. 0之间的归一化的u和ν坐标,并且将归一化的u 和ν坐标分别乘以图像尺寸DIMX和DIMY。然后,u坐标变为uint. ufract,其中uint是整数并且ufract是小数。利用同一命名法,ν坐标变为vint. vfract。范围指定符解码器47中的范围硬件解码逻辑(hardware decoding rangelogic) 接受uint和vint值作为输入,并自动地产生在所指定的范围内的所有地址。坐标产生逻辑的复杂度取决于所支持的形状的类型。对于简单的矩形指定符,在一些实施例中,具有单个加法器49的简单的有限状态机就会是足够的。加法器49用于产生在每个维度中的地址。有限状态机52产生在所指定的地址范围中的所有地址。这些地址被前送到纹理单元管线的剩余部分。以下伪代码示出了在一些实施例中FSM 52如何产生在所指定的地址范围中的所有地址的示例输入integer base uint(floor(u*DIMX)), integer base vint (floor(v氺DIMY)),u range (dU), ν range (dV),FSM pair = (uint, vint)for(i = 0 ;i < dU ;i++)for(j = 0 ;j < dV ;j++)pair+ = (1,1)范围指定符FSM 48可以与加法器49 一起执行以上所述的FSM指令序列,以产生包括在该范围中每个纹理像素各自的(U,V)坐标的序列,这些(U,V)坐标被传递通过纹理管线的其余部分以初始化并执行对应的滤波操作。序列发生器FSM 52使得纹理采样器能够处理任意常规的mxn元素的点积。可编程系数存储设备60可以存储线性内插器所需的系数。序列发生器FSM 52可以将mxn点积分解为2-元素点积操作、4-元素点积操作、8-元素点积操作的组合,其可以使用滤波单元的线性内插器、双线性内插器或三线性内插器来执行。然后,循环通过点积操作,并使用累加器66进行累加来得到最终的输出。在一些实施例中,除了提高核心纹理单元通信的效率之外,还可以实现对使用纹理单元硬件进行的通用计算的性能提升。例如,当执行基于纹理采样器的卷积时,基于范围的指定符可以节省指定每个像素的(u,ν)对所需的大量计算。对于64个像素的纹理控制块,使用范围指定符将会涉及192个指令用来创建该纹理控制块。在一些实施例中,使用基于范围的指定符,可以仅使用66个指令,从而节省1 个指令。在一些情况下,较小的纹理单元建立开销可以转换为图形算法或非图形应用的更多的计算。在一些情况下,图1中所示的元件可以被实现为软件、硬件或固件。在软件实施例中,范围指定符解码器47可以由在计算机可读介质中存储的指令序列来实现,诸如纹理控制块46。然而,可以使用任何光、磁或半导体存储器。然后,作为一个示例,所述指令可以由诸如纹理控制块46的合适的处理器来执行。参考图3,在一个实施例中,纹理控制块46可以执行指令序列70,以用软件实现解码器47。在一些实施例中,如框72中所指示的,可以接收几何形状,诸如“矩形”。如框74 所指示,可以接收针对一组像素的锚像素的坐标。所述坐标和形状例如可以是元组的一部分。随后,如框76所指示,可以将该像素组作为一个组来进行纹理操作。本文描述的图形处理技术可以被实现在各种硬件架构中。例如,图形功能可以被集成在芯片组内。或者,可以使用分立的图形处理器。作为另一实施例,图形功能可以由包括多核心处理器在内的通用处理器来实现。虽然本文描述了线性内插,但是也可以使用其它形式的内插。贯穿该说明书提及的“一个实施例”或“实施例”意味着结合该实施例描述的特定特征、结构或特性被包括在本发明内涵盖的至少一个实现方式中。因此,短语“一个实施例”或“在实施例中”的出现并非必然是指同一实施例。此外,可以用除了所说明的特定实施例之外的其它合适的形式来构造所述的特定特征、结构或特性,并且所有这种形式皆可被涵盖在本申请的权利要求之内。 虽然已经针对有限数量的实施例描述了本发明,但是本领域内的这些普通技术人员将理解许多变型和根据这些实施例的改变。意欲所附权利要求覆盖落入本发明的真实精神或范围内的所有这种变型和改变。
权利要求
1.一种方法,包括使用已知几何形状的一个或多个锚像素的坐标来指定要进行纹理操作的一组像素。
2.根据权利要求1所述的方法,包括使用元组对所述几何形状进行编码,所述元组将由解码逻辑进行识别。
3.根据权利要求2所述的方法,包括解码逻辑产生在由所述元组所指定的范围内的像素地址。
4.根据权利要求1所述的方法,包括使用矩形作为所述几何形状。
5.根据权利要求3所述的方法,包括使用有限状态机和加法器来产生所述地址。
6.根据权利要求3所述的方法,包括在所述范围内累加在每个维度上的像素地址。
7.根据权利要求1所述的方法,包括将组成所述几何形状的像素区域作为一个单元进行纹理操作。
8.根据权利要求3所述的方法,包括在所述范围上确定点积。
9.根据权利要求3所述的方法,包括在所述范围上确定可编程的卷积。
10.一种存储指令的计算机可读介质,所述指令由计算机执行来使用已知几何形状的一个或多个锚像素的坐标,来对一组像素进行纹理操作。
11.根据权利要求10所述的介质,还存储用于使用由解码逻辑识别的元组对所述几何形状进行编码的指令。
12.根据权利要求11所述的介质,还存储用于使用解码逻辑产生在由所述元组指定的范围内的像素地址的指令。
13.根据权利要求11所述的介质,还存储用于使用矩形作为所述几何形状的指令。
14.根据权利要求12所述的介质,还存储用于使用有限状态机和加法器来产生所述地址的指令。
15.根据权利要求12所述的介质,还存储用于在所述范围内累加在每个维度上的像素地址的指令。
16.根据权利要求10所述的介质,还存储用于将组成所述几何形状的像素区域作为一个单元进行纹理操作的指令。
17.根据权利要求12所述的介质,还存储用于在所述范围上确定可编程的卷积的指令。
18.根据权利要求12所述的介质,包括在所述范围上确定点积。
19.一种装置,包括 处理实体;耦合至所述处理实体的存储器;以及地址产生逻辑,其使用已知几何形状的一个或多个锚像素的坐标来指定要进行纹理操作的一组像素。
20.根据权利要求19所述的装置,包括耦合至所述地址产生逻辑的范围指定符解码ο
21.根据权利要求20所述的装置,还包括在所述解码器中的有限状态机。
22.根据权利要求21所述的装置,还包括在所述解码器中的加法器。
23.根据权利要求19所述的装置,还包括耦合至所述地址产生逻辑的纹理高速缓存以及耦合至所述纹理高速缓存的内插单元。
24.根据权利要求23所述的装置,包括耦合至所述内插逻辑的累加逻辑。
25.根据权利要求20所述的装置,所述解码器使用元组来解码所述几何形状。
26.根据权利要求25所述的装置,所述解码器产生在由所述元组所指定的范围内的像素地址。
27.根据权利要求21所述的装置,所述解码器包括有限状态机和加法器来产生所述地址。
28.根据权利要求19所述的装置,将组成所述几何形状的像素区域作为一个单元进行纹理操作。
全文摘要
可以将像素区域或像素组作为一个单元来进行纹理操作,其中使用范围指定符和一个或多个锚像素来定义该组。在一些实施例中,处理被分组的像素提高了效率。
文档编号G06T1/00GK102184514SQ201010603798
公开日2011年9月14日 申请日期2010年12月22日 优先权日2009年12月23日
发明者C·金, G·S·达西格, J·冈萨雷斯, J·加戈, J·钟加尼, M·斯梅良斯基, S·加兰, V·W·李, V·莫亚德尔巴里奥, Y-k·陈 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1