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