專利名稱:于圖形處理器中的多余三角形分離的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機(jī)圖形處理的技術(shù),特別涉及一種于圖形處理器中的多余三角形分離的系統(tǒng)及方法。
背景技術(shù):
對于行動裝置的多媒體應(yīng)用技術(shù)而言,能同時支持視訊及圖形兩者的技術(shù)是未來的趨勢。不同于桌上型計算機(jī)用的圖形處理器,由于行動裝置是由電池供應(yīng)電力,因此行動裝置用的圖形處理器的運(yùn)作是受限于環(huán)境資源以及電源的限制。近來,相當(dāng)多有關(guān)于行動裝置用的圖形處理器的研究陸續(xù)被提出,KAMEYAMA M.和KATOY.于Proc.Graphics Hardware’03(2003),pp.60-67中,提出「″Z3D″行動電話的三維圖形大規(guī)模集成電路核心」,KAMEYAMA M.和KATOY.所公開的技術(shù)是第一個將圖形專用處理器與繪圖處理器一起整合至同一芯片中,然而,此芯片僅支持固定的圖形管道。SOHNJ.-H.等人于Proc.Graphics Hardware’04(2004)中,提出「具有固定點SIMD數(shù)據(jù)路徑的可程序化頂點繪圖器的低功率無線應(yīng)用裝置」,此論文公開最早的行動裝置用的頂點繪圖器,其使用固定點的數(shù)據(jù)路徑來取代浮點的數(shù)據(jù)路徑以節(jié)省功率消耗以及硬件費用。然而,對于復(fù)雜的圖形仍須要浮點數(shù)據(jù)路徑的精確的描繪。Munshi等人于美國專利U.S.Pat.No.6,919,908中,提出只有使用三角形剪裁運(yùn)算。
雖然習(xí)用的頂點繪圖器在頂點傳送到繪圖階段后,會對于所有頂點執(zhí)行繪圖處理,但是在繪圖處理器運(yùn)作時將發(fā)現(xiàn)大多數(shù)的三角形是無法在畫面上顯示,并且大量的處理資源被浪費在這些無法顯示的三角形上。若是這些無法顯示的三角形能夠在圖形轉(zhuǎn)換階段中及早被找出來,則可以省去須要大的運(yùn)算處理量的打光運(yùn)算,因此,可省下大量的頂點處理程序。
基于上述原因,能節(jié)省大量的頂點運(yùn)算的新穎的圖形處理器是迫切須要的。對于位于剪裁邊界外的三角形、背面三角形或未覆蓋到屏幕上的任何格點的零面積三角形等三種型式的三角形,應(yīng)該在頂點處理器將頂點由對象空間轉(zhuǎn)換至剪裁空間之后及早被刪除。最后一類型式的三角形的刪除是依據(jù)應(yīng)用程序所定義的刪除程序來決定。對于某些應(yīng)用程序而言,此類型式的三角形應(yīng)該于管道中被刪除。
發(fā)明內(nèi)容
本發(fā)明的目的是為解決上述問題而提供一種于圖形處理器中的多余三角形分離及方法,其可以減少圖形階段的運(yùn)算進(jìn)而改善多邊形處理率以及節(jié)省功率消耗。
本發(fā)明為達(dá)成上述目的提供一種于圖形處理器中的多余三角形分離的系統(tǒng),此系統(tǒng)包括(1)一頂點高速緩存,供由一中央處理器取得一三角形的頂點資料以及儲存上述頂點數(shù)據(jù);(2)一頂點繪圖運(yùn)算邏輯器,供處理上述頂點資料以及上述頂點數(shù)據(jù)的相關(guān)狀態(tài);(3)一多余三角形分離器,供藉由參考上述三角形的上述頂點數(shù)據(jù)的相關(guān)狀態(tài)來決定上述三角形有效或無效;(4)一打光與貼圖階段應(yīng)用程序,供將被決定有效的三角形打光與貼圖成為頂點信息;(5)一索引高速緩存,供由一驅(qū)動程序取得索引數(shù)據(jù)而將上述頂點數(shù)據(jù)組合成三角形;以及(6)一剪裁模塊,用來對于通過上述多余三角形分離器后的有效的三角形施行剪裁。
本發(fā)明尚提供一種于圖形處理器中的多余三角形分離的方法,此方法首先于一剪裁空間中將三角形的頂點數(shù)據(jù)轉(zhuǎn)換成已轉(zhuǎn)換頂點。其次,將上述三角形轉(zhuǎn)換成二維的畫面位置數(shù)據(jù)。其次,決定上述三角形是有效或無效,藉由利用上述二維的畫面位置數(shù)據(jù)來判斷是否有任何的三角形位于剪裁邊界之外、為背面三角形或為零面積三角形。其次,將被決定有效的三角形打光與貼圖成為頂點信息。最后,上傳上述頂點信息本發(fā)明所提出的繪圖處理器具有整體的架構(gòu),不僅可以有效地執(zhí)行圖形的頂點運(yùn)算亦可進(jìn)行視訊編碼運(yùn)算的移動預(yù)測運(yùn)算(motion estimation),具有50MHz的工作頻率以及20mW的功率消耗,其可達(dá)到每秒8.3百萬個頂點轉(zhuǎn)換以及6.25百萬個多邊形運(yùn)算的速度。再者,本發(fā)明所提出的繪圖處理器提供浮點數(shù)據(jù)路徑、可重組內(nèi)存以及特別的指令可加速視訊編碼運(yùn)算的移動預(yù)測運(yùn)算。此強(qiáng)力繪圖及視訊雙功能可程序化處理器對于多媒體消費產(chǎn)品是一很好的解決方案。
為了讓本發(fā)明的上述和其它目的、特征、和優(yōu)點能更明顯易懂,以下配合附圖以及較佳實施例以說明本發(fā)明。
圖1為本發(fā)明于圖形處理器中的多余三角形分離的系統(tǒng)的方塊圖。
圖2為本發(fā)明多余三角形分離器的方塊圖。
圖3為本發(fā)明于圖形處理器中的多余三角形分離的方法的步驟的流程圖。
圖4為決定程序細(xì)部內(nèi)容的一較佳方案的流程圖。
圖5為舉例說明三角形位于剪裁邊界之外的示意圖。
圖6為舉例說明背面三角形的示意圖。
圖7為舉例說明零面積三角形的示意圖。
圖8為判定零面積程序細(xì)部內(nèi)容的一較佳方案的流程圖。
附圖標(biāo)記說明于圖形處理器中的多余三角形分離的系統(tǒng)100;頂點繪圖運(yùn)算邏輯器110;轉(zhuǎn)換階段應(yīng)用程序120;打光與貼圖階段應(yīng)用程序130;頂點高速緩存140;多余三角形分離器150;索引高速緩存152;剪裁模塊160;三角形設(shè)定模塊170;頂點資料142;轉(zhuǎn)換旗標(biāo)144;打光旗標(biāo)146;快取命中旗標(biāo)147;有效旗標(biāo)148。
具體實施例方式
本發(fā)明是提供一種于圖形處理器中的多余三角形分離的系統(tǒng)及方法,供應(yīng)用在數(shù)字相機(jī)(DSC)、數(shù)字?jǐn)z影機(jī)(DV)、個人數(shù)字助理器(PDA)、行動電子設(shè)備、第三代行動電話、手持式行動電話或智能型手機(jī)等可攜手持式裝置上,但并不限定為上述裝置。
圖1為本發(fā)明于圖形處理器中的多余三角形分離的系統(tǒng)的方塊圖,如圖1所示,系統(tǒng)100包括一頂點繪圖運(yùn)算邏輯器(vertex shader arithmetic logic unit)110、一轉(zhuǎn)換階段應(yīng)用程序120、一打光與貼圖階段應(yīng)用程序130、一頂點高速緩存140、一多余三角形分離器150、一索引高速緩存152、一剪裁模塊160以及一三角形設(shè)定模塊170。
上述頂點高速緩存140供由一系統(tǒng)內(nèi)存或視訊內(nèi)存取得頂點數(shù)據(jù)142以及作為儲存頂點數(shù)據(jù)142和頂點數(shù)據(jù)的相關(guān)狀態(tài)之用,此些相關(guān)狀態(tài)包括轉(zhuǎn)換旗標(biāo)144、打光旗標(biāo)146、快取命中旗標(biāo)147以及有效旗標(biāo)148。各個轉(zhuǎn)換旗標(biāo)144表示所對應(yīng)的頂點的轉(zhuǎn)換階段是否完成。各個快取命中旗標(biāo)147表示是否有任一頂點被高速緩存選中以避免重復(fù)處理相同的頂點。上述頂點繪圖運(yùn)算邏輯器110供處理頂點數(shù)據(jù)142。上述多余三角形分離器150供藉由參考各個三角形的頂點數(shù)據(jù)的相關(guān)狀態(tài)來決定三角形有效或無效,于頂點高速緩存140中記作有效的三角形才能通過接下來的打光與貼圖階段應(yīng)用程序130。打光與貼圖階段應(yīng)用程序130供將有效的三角形打光與貼圖成為頂點信息。上述索引高速緩存152供由一驅(qū)動程序取得索引數(shù)據(jù)而將頂點數(shù)據(jù)142組合成三角形。剪裁模塊160作為對于通過上述多余三角形分離器150后的有效的三角形施行剪裁。圖1中箭頭是表示資料流動的方向。
各個頂點數(shù)據(jù)142是放入頂點高速緩存140中的一對應(yīng)位置,當(dāng)由外部系統(tǒng)內(nèi)存或視訊內(nèi)存取得頂點數(shù)據(jù)142時,有效旗標(biāo)148是打開的。頂點繪圖運(yùn)算邏輯器110根據(jù)這個有效旗標(biāo)148知道所要處理的數(shù)據(jù)是否已經(jīng)讀取進(jìn)頂點高速緩存140中。若是頂點數(shù)據(jù)142為有效,便進(jìn)行轉(zhuǎn)換階段應(yīng)用程序120,且將頂點高速緩存140中的所有頂點依序轉(zhuǎn)換,并且把轉(zhuǎn)換旗標(biāo)144打開。
多余三角形分離器150會根據(jù)轉(zhuǎn)換旗標(biāo)144知道頂點高速緩存140中的哪些頂點已經(jīng)轉(zhuǎn)換,然后根據(jù)索引高速緩存152中的索引數(shù)據(jù)組合頂點成為已經(jīng)轉(zhuǎn)換的三角形并進(jìn)行刪除測試判斷是否真正有效,若不是有效的則會再把頂點高速緩存140中不是有效的頂點的有效旗標(biāo)148關(guān)閉;是有效的則繼續(xù)保持有效旗標(biāo)148是打開的。本發(fā)明的多余三角形分離器150可以具有刪除無效三角型以及剪裁有效三角型的功能。
當(dāng)頂點繪圖運(yùn)算邏輯器110進(jìn)行打光與貼圖階段應(yīng)用程序130時會再根據(jù)頂點高速緩存140中的有效旗標(biāo)148循序地把真正有效的頂點執(zhí)行打光與貼圖,并把已經(jīng)打光與貼圖過的頂點的打光旗標(biāo)146打開。
因為頂點數(shù)據(jù)142會有重復(fù)性。對于頂點高速緩存140就是發(fā)生快取命中。在這種架構(gòu)下,可避免大量重復(fù)性的數(shù)據(jù)需要從外部系統(tǒng)內(nèi)存或視訊內(nèi)存讀回來。因此當(dāng)頂點高速緩存140發(fā)生快取命中,則快取命中旗標(biāo)147會打開來通知頂點繪圖運(yùn)算邏輯器110發(fā)生快取命中,可以不用再進(jìn)行轉(zhuǎn)換階段應(yīng)用程序120,甚至也不用進(jìn)行打光與貼圖階段應(yīng)用程序130。因為此快取命中旗標(biāo)147表示之前已經(jīng)處理過,所以不用再重復(fù)處理。在這種架構(gòu)下不但節(jié)省記體體讀取頻寬也節(jié)省了重復(fù)運(yùn)算,因而可節(jié)省大量功率消耗。
因為系統(tǒng)100具有高速緩存快取命中機(jī)制,所以可以避免重復(fù)處理轉(zhuǎn)換、打光與貼圖。但是因為系統(tǒng)100具有刪除機(jī)制會導(dǎo)致,當(dāng)一個三角形發(fā)生刪除時,此時頂點高速緩存140中的轉(zhuǎn)換旗標(biāo)144會是打開的、有效旗標(biāo)148是關(guān)閉的,而打光旗標(biāo)146因為不是有效的所以也是是關(guān)閉的。結(jié)果當(dāng)下一個新的三角形要處理而此三角形發(fā)生快取命中,也就是與之前的三角形有重復(fù)頂點時。若此三角形被多余三角形分離器150判定為有效,這時頂點繪圖運(yùn)算邏輯器110仍要對快取命中的頂點進(jìn)行打光與貼圖,而不能省略此運(yùn)算。因為對于此三角形而言,雖然有一個先前的三角形發(fā)生快取命中,但因為前一級的三角形被刪除所以并未進(jìn)行打光與貼圖。所以必須進(jìn)行打光補(bǔ)償(LightCompensate),因此當(dāng)頂點繪圖運(yùn)算邏輯器110進(jìn)行打光與貼圖時且當(dāng)快取命中旗標(biāo)147是打開的而打光旗標(biāo)146是關(guān)閉的之時,則仍要進(jìn)行打光運(yùn)算。
圖2為本發(fā)明多余三角形分離器的方塊圖,如圖2所示,三角形的三個頂點的各別位置是記錄在索引高速緩存152中,記成VertexAID、Vertex B ID、Vertex C ID。因為頂點高速緩存140可以擁有大量的頂點數(shù)據(jù),而多余三角形分離器150具有現(xiàn)在正在處理的三角形是位于頂點高速緩存140內(nèi)的什么位置的信息,這就是Vertex ID的功能,Vertex A ID就是表示現(xiàn)在這個三角形頂點A在頂點高速緩存140的位置。有這三個頂點ID,三角形分離的裝置150就知道要去高速緩存140內(nèi)讀取哪些頂點的轉(zhuǎn)換數(shù)據(jù)(Transformation Data)與轉(zhuǎn)換訊號(Trans.Signals)以及進(jìn)行三維(3-dimension,3D)到二維的投影轉(zhuǎn)換(View Port Transformation),使原本在三度空間的坐標(biāo)投影到二度空間的顯示器畫面坐標(biāo)。剪裁代碼產(chǎn)生模塊使用六個位(Bit)的數(shù)據(jù)結(jié)構(gòu)來表示上、下、左、右、前、后等六個象限,來判斷頂點是落在哪個象限之外。此判斷頂點是落在哪個象限之外算法為習(xí)知技術(shù),于此不再贅述。剪裁代碼產(chǎn)生模塊在產(chǎn)生剪裁代碼后,就可以由多余三角形分離器150判別三角形是否為在屏幕邊界外。
圖3為本發(fā)明于圖形處理器中的多余三角形分離的方法的步驟的流程圖,首先,對于頂點高速緩存140中的頂點數(shù)據(jù)啟動繪圖程序,如步驟S100所示。
如步驟S110所示,于一剪裁空間中將三角形的頂點數(shù)據(jù)轉(zhuǎn)換成已轉(zhuǎn)換頂點。
如步驟S120所示,若是頂點數(shù)據(jù)已全部轉(zhuǎn)換完成,程序執(zhí)行步驟S130,否則則回至步驟S110。
如步驟S130所示,決定三角形是有效或無效,若是有無效的三角形須要被刪除,程序回至步驟S100,否則則執(zhí)行步驟S140。圖4為決定程序細(xì)部內(nèi)容的一較佳方案的流程圖,首先,將三角形轉(zhuǎn)換成二維的畫面位置數(shù)據(jù),如步驟S200所示。
如步驟S210所示,使用剪裁空間位置數(shù)據(jù)來產(chǎn)生剪裁代碼以判斷是否有任何的三角形位于剪裁邊界之外(outside clipping boundary),如圖5所示。
如步驟S220所示,使用二維的畫面位置數(shù)據(jù)來產(chǎn)生屏幕坐標(biāo)轉(zhuǎn)換。
如步驟S230所示,使用二維的畫面位置數(shù)據(jù)來計算面向量(face vector)以判斷是否有任何的三角形為背面三角形(back-faced triangle),如圖6所示。
如步驟S240所示,使用二維的畫面位置數(shù)據(jù)來計算面向量(face vector)以判斷是否有任何的三角形為零面積三角形(triangle zero area),亦即未覆蓋到屏幕上的任何格點,如圖7所示,其中,一三角形10是X方向零面積三角形,當(dāng)三角形的三個頂點的整數(shù)X坐標(biāo)都相同而且三個頂點的X坐標(biāo)皆非在整數(shù)點上,則此三角形將不會顯示在畫面上,而會被刪除。一三角形20是Y方向零面積三角形,當(dāng)三角形的三個頂點的整數(shù)Y坐標(biāo)都相同而且三個頂點的Y坐標(biāo)皆非在整數(shù)點上,則此三角形將不會顯示在畫面上,而會被刪除。
圖8為判定零面積程序細(xì)部內(nèi)容的一較佳方案的流程圖,首先,將剪裁坐標(biāo)(clipping coordinates)轉(zhuǎn)換成一三角形的三個頂點的屏幕坐標(biāo),如步驟S300所示。
如步驟S310所示,對所有頂點屏幕坐標(biāo)取整數(shù),舍棄小數(shù)點部分。
如步驟S320所示,當(dāng)三個頂點的整數(shù)X坐標(biāo)都相等,且無任何一個頂點本身就在整數(shù)點上,則產(chǎn)生零面積訊號。
最后,如步驟S330所示,當(dāng)三個頂點的整數(shù)Y坐標(biāo)都相等,且無任何一個頂點本身就在整數(shù)點上,則產(chǎn)生零面積訊號。
如步驟S250所示,若是有任何一個三角形須要被刪除,程序回至步驟S100,否則則執(zhí)行步驟S140,如圖4所示。
如圖3所示,于步驟S140中,打光與貼圖階段應(yīng)用程序130將有效的三角形打光與貼圖成為頂點信息。
如步驟S160所示,若是有效的三角形已全部打光與貼圖完成,程序執(zhí)行步驟S160,否則則回至步驟S140。
最后,如步驟S160所示,將頂點信息傳送至剪裁模塊160。
本發(fā)明運(yùn)用頂點高速緩存140以及多余三角形分離器150,且將頂點繪圖運(yùn)算邏輯器110分成兩階段處理,轉(zhuǎn)換階段與打光階段,貼圖在此并入打光階段。利用頂點快取頂點高速緩存140記錄頂點繪圖運(yùn)算邏輯器110目前處理頂點的運(yùn)算狀態(tài)。當(dāng)頂點繪圖運(yùn)算邏輯器110運(yùn)算完一個頂點的轉(zhuǎn)換階段,并不會立即進(jìn)入打光階段,而是進(jìn)入下一個頂點的轉(zhuǎn)換階段,也因為有頂點高速緩存140會儲存頂點信息,因此不會因為處理下一個頂點而遺失前一個頂點的轉(zhuǎn)換信息。當(dāng)頂點高速緩存140中所有的頂點的轉(zhuǎn)換階段都處理完時,才會再回到原本的第一個頂點處理接下來的打光階段,此時多余三角形分離器150可從頂點高速緩存140獲得完整的三角形轉(zhuǎn)換信息進(jìn)而可分離出多余的三角形進(jìn)而把這些多余的三角形從頂點高速緩存140中移除。當(dāng)這些頂點在頂點高速緩存140中移除時,頂點繪圖運(yùn)算邏輯器110就不會去處理這些多余三角形頂點接下來的打光階段運(yùn)算。如此可省去多余三角形占有大的運(yùn)算處理量的打光階段運(yùn)算,因此,可省下大量的頂點處理程序。
權(quán)利要求
1.一種于圖形處理器中的多余三角形分離的系統(tǒng),其特征在于,包括一頂點高速緩存,供由一中央處理器取得一三角形的頂點資料以及儲存該等頂點數(shù)據(jù);一頂點繪圖運(yùn)算邏輯器,供處理該等頂點資料以及該等頂點數(shù)據(jù)的相關(guān)狀態(tài);一多余三角形分離器,供藉由參考該三角形的該等頂點數(shù)據(jù)的相關(guān)狀態(tài)來決定該三角形有效或無效;一打光與貼圖階段應(yīng)用程序,供將被決定有效的三角形打光與貼圖成為頂點信息;一索引高速緩存,供由一驅(qū)動程序取得索引數(shù)據(jù)而將該等頂點數(shù)據(jù)組合成三角形;以及一剪裁模塊,用來對于通過該多余三角形分離器后的有效的三角形施行剪裁。
2.如權(quán)利要求1所述的于圖形處理器中的多余三角形分離的系統(tǒng),其特征在于,該多余三角形分離器具有現(xiàn)在正在處理的三角形是位于該頂點高速緩存內(nèi)的位置信息。
3.如權(quán)利要求1所述的于圖形處理器中的多余三角形分離的系統(tǒng),其特征在于,該多余三角形分離器知道要去該頂點高速緩存內(nèi)讀取哪些頂點數(shù)據(jù)的相關(guān)狀態(tài)以及于顯示器畫面上進(jìn)行三維到二維的投影轉(zhuǎn)換。
4.如權(quán)利要求1所述的于圖形處理器中的多余三角形分離的系統(tǒng),其特征在于,該多余三角形分離器具有刪除無效三角型以及剪裁有效三角型的功能。
5.如權(quán)利要求1所述的于圖形處理器中的多余三角形分離的系統(tǒng),其特征在于,該系統(tǒng)供應(yīng)用在手持式裝置,包括數(shù)字相機(jī)、數(shù)字?jǐn)z影機(jī)、個人數(shù)字助理器、行動電子設(shè)備、第三代行動電話、手持式行動電話或智能型手機(jī)。
6.一種于圖形處理器中的多余三角形分離的方法,其特征在于,包括下列步驟于一剪裁空間中將三角形的頂點數(shù)據(jù)轉(zhuǎn)換成已轉(zhuǎn)換頂點;將該三角形轉(zhuǎn)換成二維的畫面位置數(shù)據(jù);決定該三角形是有效或無效,藉由利用該二維的畫面位置數(shù)據(jù)來判斷是否有任何的三角形位于剪裁邊界之外、為背面三角形或為零面積三角形;將被決定有效的三角形打光與貼圖成為頂點信息;以及上傳該頂點信息。
7.如權(quán)利要求6所述的于圖形處理器中的多余三角形分離的方法,其特征在于,該決定該三角形是有效或無效的步驟,更包括下列步驟將剪裁坐標(biāo)轉(zhuǎn)換成一三角形的三個頂點的屏幕坐標(biāo);對該頂點屏幕坐標(biāo)取整數(shù);當(dāng)三個頂點的整數(shù)X坐標(biāo)都相等,且無任何一個頂點本身就在整數(shù)點上,則產(chǎn)生零面積訊號;以及當(dāng)三個頂點的整數(shù)Y坐標(biāo)都相等,且無任何一個頂點本身就在整數(shù)點上,則產(chǎn)生零面積訊號。
8.如權(quán)利要求6所述的于圖形處理器中的多余三角形分離的方法,其特征在于,該系統(tǒng)供應(yīng)用在手持式裝置,包括手持式裝置是數(shù)字相機(jī)、數(shù)字?jǐn)z影機(jī)、個人數(shù)字助理器、行動電子設(shè)備、第三代行動電話、手持式行動電話或智能型手機(jī)。
全文摘要
本發(fā)明涉及一種于圖形處理器中的多余三角形分離的系統(tǒng)及方法,本系統(tǒng)包括1.一頂點高速緩存,供由一中央處理器取得一三角形的頂點資料以及儲存上述頂點數(shù)據(jù);2.一頂點繪圖運(yùn)算邏輯器,供處理上述頂點資料以及上述頂點數(shù)據(jù)的相關(guān)狀態(tài);3.一多余三角形分離器,供藉由參考上述三角形的上述頂點數(shù)據(jù)的相關(guān)狀態(tài)來決定上述三角形有效或無效;4.一打光與貼圖階段應(yīng)用程序,供將被決定有效的三角形打光與貼圖成為頂點信息;5.一索引高速緩存,供由一驅(qū)動程序取得索引數(shù)據(jù)而將上述頂點數(shù)據(jù)組合成三角形;以及6.一剪裁模塊,用來對于通過上述多余三角形分離器后的有效的三角形施行剪裁。
文檔編號G06T15/00GK1996394SQ200610000408
公開日2007年7月11日 申請日期2006年1月5日 優(yōu)先權(quán)日2006年1月5日
發(fā)明者曹友銘 申請人:繪展科技股份有限公司