專利名稱:對要進行紋理操作的像素進行分組的制作方法
對要進行紋理操作的像素進行分組
背景技術:
本發(fā)明總體上涉及圖形處理,并且更具體地,涉及圖形處理器的紋理單元。圖形處理器是通常用于處理與圖像顯示相關聯(lián)的處理任務的專用處理器。圖形處理器可以包括多個專用功能單元,這些專用功能單元包括紋理單元。紋理單元執(zhí)行包括紋理解壓縮和各向異性濾波的紋理操作。紋理采樣器是一種特定類型的紋理單元,其優(yōu)化紋理濾波并且比通用處理器更快地執(zhí)行紋理濾波。
圖1是根據(jù)一個實施例的紋理單元的示意圖描述;圖2是針對一個實施例的像素坐標系的描述;以及圖3是針對一個實施例的流程圖。
具體實施例方式根據(jù)一些實施例,諸如紋理采樣器的紋理單元可以用于執(zhí)行數(shù)學計算。在一些實施例中,可以通過減少在對要進行紋理操作的像素組進行編碼時由處理器核心所產(chǎn)生的計算開銷,來提高在該處理器核心和紋理單元之間的通信效率。在一些實施例中,這可以通過范圍指定符來實現(xiàn),所述范圍指定符有效地將像素塊分組為由屬于該組的一個像素所指定的一個范圍。因此,在一些實施例中,紋理用戶接口有益于紋理單元的圖形使用和非圖形使用兩者。參照圖1,紋理單元的紋理單元核心45經(jīng)由紋理控制塊(TCB)46接收紋理請求。 紋理控制塊46可以包括指向紋理表面的指針、紋理表面的寬度和高度、要進行紋理操作的 η個像素的紋理坐標(u,ν)、要執(zhí)行的濾波操作的類型,諸如線性、雙線性、或三線性、是否包含常規(guī)卷積或mxn點積操作、以及紋理濾波結果。在地址產(chǎn)生單元或階段M中的地址產(chǎn)生邏輯計算由給定的濾波操作所使用的所有紋理像素的地址。以非歸一化形式或在0. 0至1. 0之間的歸一化形式傳遞相關像素的坐標u和V。在后一情況中,通過將所述坐標乘以表面尺寸來將所述坐標進行非歸一化。例如,u變成i.bu,其中,i是整數(shù)并且bu是小數(shù)。整數(shù)部分用于產(chǎn)生最近的鄰居。在雙線性內(nèi)插的情況下,存在4個鄰居(i,j)、(i+1,j)、(i,j+1)和(i+1,j+1)。在三線性濾波操作中,存在8個鄰居。小數(shù)部分可以用于計算在對相鄰像素進行混合時可使用的權重。紋理高速緩存56可以耦合到地址產(chǎn)生階段54,并且用于高速緩存來自存儲器58 的數(shù)據(jù),其中所述數(shù)據(jù)通過使用所產(chǎn)生的紋理像素地址來進行存取。內(nèi)插階段62可以耦合到紋理高速緩存56。具有累加邏輯和小存儲緩沖器64的累加階段66在一個實施例中耦合到內(nèi)插階段62。紋理控制塊46被用作經(jīng)過建立階段50的、對范圍指定符解碼器47的輸入。解碼器47可以包括紋理單元中的有限狀態(tài)機(FSM)48以根據(jù)范圍指定符來計算(u,ν)坐標。還可以在解碼器中設置加法器49,并且在一些實施例中,可以使用多個加法器。在一些實施例中,可以使用范圍指定符,來代替指定要進行紋理操作的每個像素各自的u和ν坐標。可以針對常見的幾何形狀,諸如正方形、矩形、三角形等,來定義范圍指定符。例如,諸如以下所述的結構之類的結構可以用于指定矩形區(qū)域struct {int u ;int ν ;int dU ;int dV ;}rectangle_specifier ;在圖2中示出了該矩形區(qū)域。圖2示出了用于基于范圍的尋址的方案,其中在χ和 y方向上指定初始的u和ν值以及偏移量dU和dV,但是提供了陣列元素的矩形窗口以供考慮。具體而言,在圖2示出的示例中,在網(wǎng)格內(nèi)用陰影描繪了 6*5的矩形區(qū)域。用星號標記的左上角位于u,ν坐標(6,5)處。矩形區(qū)域可以由元組{5,6,6,5}來指定,其中前兩個位置(5,6)是u和ν坐標,并且后兩個位置(6,幻分別是在u和ν方向上的dU和dV偏移量。在本示例中,并非是計算陰影塊中每個像素的(u,ν)對,而是可以僅需要用星號標記的左上角像素的(U,ν)對。在本示例中,此舉可以節(jié)省30次(u,ν)計算。 此外,在一些實施例中,并非是指定在陰影矩形內(nèi)的所有U和ν坐標對(這將需要 30*2*4Β或者MOB的對),而可以僅使用一個包含4個B值的元組= 16B),節(jié)省了 224B。減少的存儲隨后可以用于對返回數(shù)據(jù)進行編碼。在一些實施例中,元組的使用可以節(jié)省在將u,ν對傳送至紋理采樣器時的帶寬。因此,可以通過使用一個或多個錨像素(其中,在圖2中由星號指示了一個錨像素)來定義幾何形狀(例如,圖2中所示的矩形)。錨像素是在已知的幾何形狀內(nèi)在所定義位置中的像素?;阱^像素的位置和所述元組,可以將由已知形狀定義的像素組指定為一組。作為另一示例,一個圓形像素組的錨像素例如可以是該圓形的中心。在一些實施例中,還可以在元組內(nèi)對幾何形狀的類型進行編碼。這種方法允許在不同的情況下動態(tài)地選擇最合適的幾何形狀。產(chǎn)生紋理坐標的序列發(fā)生器有限狀態(tài)機(FSM) 52可以以硬件實現(xiàn),實現(xiàn)為范圍解碼邏輯,或者實現(xiàn)為軟件。FSM 52根據(jù)范圍指定符來計算紋理坐標。在一些實施例中,解碼器50內(nèi)的解碼邏輯可以是在地址產(chǎn)生階段44中的額外階段。坐標非歸一化獲得在0. 0至1. 0之間的歸一化的u和ν坐標,并且將歸一化的u 和ν坐標分別乘以圖像尺寸DIMX和DIMY。然后,u坐標變?yōu)閡int. ufract,其中uint是整數(shù)并且ufract是小數(shù)。利用同一命名法,ν坐標變?yōu)関int. vfract。范圍指定符解碼器47中的范圍硬件解碼邏輯(hardware decoding rangelogic) 接受uint和vint值作為輸入,并自動地產(chǎn)生在所指定的范圍內(nèi)的所有地址。坐標產(chǎn)生邏輯的復雜度取決于所支持的形狀的類型。對于簡單的矩形指定符,在一些實施例中,具有單個加法器49的簡單的有限狀態(tài)機就會是足夠的。加法器49用于產(chǎn)生在每個維度中的地址。有限狀態(tài)機52產(chǎn)生在所指定的地址范圍中的所有地址。這些地址被前送到紋理單元管線的剩余部分。以下偽代碼示出了在一些實施例中FSM 52如何產(chǎn)生在所指定的地址范圍中的所有地址的示例輸入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 一起執(zhí)行以上所述的FSM指令序列,以產(chǎn)生包括在該范圍中每個紋理像素各自的(U,V)坐標的序列,這些(U,V)坐標被傳遞通過紋理管線的其余部分以初始化并執(zhí)行對應的濾波操作。序列發(fā)生器FSM 52使得紋理采樣器能夠處理任意常規(guī)的mxn元素的點積。可編程系數(shù)存儲設備60可以存儲線性內(nèi)插器所需的系數(shù)。序列發(fā)生器FSM 52可以將mxn點積分解為2-元素點積操作、4-元素點積操作、8-元素點積操作的組合,其可以使用濾波單元的線性內(nèi)插器、雙線性內(nèi)插器或三線性內(nèi)插器來執(zhí)行。然后,循環(huán)通過點積操作,并使用累加器66進行累加來得到最終的輸出。在一些實施例中,除了提高核心紋理單元通信的效率之外,還可以實現(xiàn)對使用紋理單元硬件進行的通用計算的性能提升。例如,當執(zhí)行基于紋理采樣器的卷積時,基于范圍的指定符可以節(jié)省指定每個像素的(u,ν)對所需的大量計算。對于64個像素的紋理控制塊,使用范圍指定符將會涉及192個指令用來創(chuàng)建該紋理控制塊。在一些實施例中,使用基于范圍的指定符,可以僅使用66個指令,從而節(jié)省1 個指令。在一些情況下,較小的紋理單元建立開銷可以轉換為圖形算法或非圖形應用的更多的計算。在一些情況下,圖1中所示的元件可以被實現(xiàn)為軟件、硬件或固件。在軟件實施例中,范圍指定符解碼器47可以由在計算機可讀介質(zhì)中存儲的指令序列來實現(xiàn),諸如紋理控制塊46。然而,可以使用任何光、磁或半導體存儲器。然后,作為一個示例,所述指令可以由諸如紋理控制塊46的合適的處理器來執(zhí)行。參考圖3,在一個實施例中,紋理控制塊46可以執(zhí)行指令序列70,以用軟件實現(xiàn)解碼器47。在一些實施例中,如框72中所指示的,可以接收幾何形狀,諸如“矩形”。如框74 所指示,可以接收針對一組像素的錨像素的坐標。所述坐標和形狀例如可以是元組的一部分。隨后,如框76所指示,可以將該像素組作為一個組來進行紋理操作。本文描述的圖形處理技術可以被實現(xiàn)在各種硬件架構中。例如,圖形功能可以被集成在芯片組內(nèi)?;蛘?,可以使用分立的圖形處理器。作為另一實施例,圖形功能可以由包括多核心處理器在內(nèi)的通用處理器來實現(xiàn)。雖然本文描述了線性內(nèi)插,但是也可以使用其它形式的內(nèi)插。貫穿該說明書提及的“一個實施例”或“實施例”意味著結合該實施例描述的特定特征、結構或特性被包括在本發(fā)明內(nèi)涵蓋的至少一個實現(xiàn)方式中。因此,短語“一個實施例”或“在實施例中”的出現(xiàn)并非必然是指同一實施例。此外,可以用除了所說明的特定實施例之外的其它合適的形式來構造所述的特定特征、結構或特性,并且所有這種形式皆可被涵蓋在本申請的權利要求之內(nèi)。 雖然已經(jīng)針對有限數(shù)量的實施例描述了本發(fā)明,但是本領域內(nèi)的這些普通技術人員將理解許多變型和根據(jù)這些實施例的改變。意欲所附權利要求覆蓋落入本發(fā)明的真實精神或范圍內(nèi)的所有這種變型和改變。
權利要求
1.一種方法,包括使用已知幾何形狀的一個或多個錨像素的坐標來指定要進行紋理操作的一組像素。
2.根據(jù)權利要求1所述的方法,包括使用元組對所述幾何形狀進行編碼,所述元組將由解碼邏輯進行識別。
3.根據(jù)權利要求2所述的方法,包括解碼邏輯產(chǎn)生在由所述元組所指定的范圍內(nèi)的像素地址。
4.根據(jù)權利要求1所述的方法,包括使用矩形作為所述幾何形狀。
5.根據(jù)權利要求3所述的方法,包括使用有限狀態(tài)機和加法器來產(chǎn)生所述地址。
6.根據(jù)權利要求3所述的方法,包括在所述范圍內(nèi)累加在每個維度上的像素地址。
7.根據(jù)權利要求1所述的方法,包括將組成所述幾何形狀的像素區(qū)域作為一個單元進行紋理操作。
8.根據(jù)權利要求3所述的方法,包括在所述范圍上確定點積。
9.根據(jù)權利要求3所述的方法,包括在所述范圍上確定可編程的卷積。
10.一種存儲指令的計算機可讀介質(zhì),所述指令由計算機執(zhí)行來使用已知幾何形狀的一個或多個錨像素的坐標,來對一組像素進行紋理操作。
11.根據(jù)權利要求10所述的介質(zhì),還存儲用于使用由解碼邏輯識別的元組對所述幾何形狀進行編碼的指令。
12.根據(jù)權利要求11所述的介質(zhì),還存儲用于使用解碼邏輯產(chǎn)生在由所述元組指定的范圍內(nèi)的像素地址的指令。
13.根據(jù)權利要求11所述的介質(zhì),還存儲用于使用矩形作為所述幾何形狀的指令。
14.根據(jù)權利要求12所述的介質(zhì),還存儲用于使用有限狀態(tài)機和加法器來產(chǎn)生所述地址的指令。
15.根據(jù)權利要求12所述的介質(zhì),還存儲用于在所述范圍內(nèi)累加在每個維度上的像素地址的指令。
16.根據(jù)權利要求10所述的介質(zhì),還存儲用于將組成所述幾何形狀的像素區(qū)域作為一個單元進行紋理操作的指令。
17.根據(jù)權利要求12所述的介質(zhì),還存儲用于在所述范圍上確定可編程的卷積的指令。
18.根據(jù)權利要求12所述的介質(zhì),包括在所述范圍上確定點積。
19.一種裝置,包括 處理實體;耦合至所述處理實體的存儲器;以及地址產(chǎn)生邏輯,其使用已知幾何形狀的一個或多個錨像素的坐標來指定要進行紋理操作的一組像素。
20.根據(jù)權利要求19所述的裝置,包括耦合至所述地址產(chǎn)生邏輯的范圍指定符解碼ο
21.根據(jù)權利要求20所述的裝置,還包括在所述解碼器中的有限狀態(tài)機。
22.根據(jù)權利要求21所述的裝置,還包括在所述解碼器中的加法器。
23.根據(jù)權利要求19所述的裝置,還包括耦合至所述地址產(chǎn)生邏輯的紋理高速緩存以及耦合至所述紋理高速緩存的內(nèi)插單元。
24.根據(jù)權利要求23所述的裝置,包括耦合至所述內(nèi)插邏輯的累加邏輯。
25.根據(jù)權利要求20所述的裝置,所述解碼器使用元組來解碼所述幾何形狀。
26.根據(jù)權利要求25所述的裝置,所述解碼器產(chǎn)生在由所述元組所指定的范圍內(nèi)的像素地址。
27.根據(jù)權利要求21所述的裝置,所述解碼器包括有限狀態(tài)機和加法器來產(chǎn)生所述地址。
28.根據(jù)權利要求19所述的裝置,將組成所述幾何形狀的像素區(qū)域作為一個單元進行紋理操作。
全文摘要
可以將像素區(qū)域或像素組作為一個單元來進行紋理操作,其中使用范圍指定符和一個或多個錨像素來定義該組。在一些實施例中,處理被分組的像素提高了效率。
文檔編號G06T1/00GK102184514SQ201010603798
公開日2011年9月14日 申請日期2010年12月22日 優(yōu)先權日2009年12月23日
發(fā)明者C·金, G·S·達西格, J·岡薩雷斯, J·加戈, J·鐘加尼, M·斯梅良斯基, S·加蘭, V·W·李, V·莫亞德爾巴里奧, Y-k·陳 申請人:英特爾公司