新四季網

減少z緩衝區流量的三維圖形處理機制的製作方法

2023-05-31 00:48:31

專利名稱:減少z緩衝區流量的三維圖形處理機制的製作方法
技術領域:
本發明是關於圖形處理,特別是關於一減少Z緩衝區流量的三維圖形處理機制。
背景技術:
於三維圖形處理時,螢幕上的每個像素(pixel)通常皆包含一Z值,此Z值標示此像素所表示的物體在螢幕上的「深度」。例如,假設代表一舊物體(比如為一棵樹的一部分)的一像素正顯示於螢幕中,上述像素的Z值設為Z0,之後又有一新物體(比如為一部車的一部分)移入上述舊物體所在的同一像素空間中,而此新物體的Z值設為Z1。當此二物體皆於螢幕顯示時,上述的像素是無法同時表現此二物體,亦即,系統同時僅能於兩者之間擇一顯示。於決定顯示何者時,系統是比較此二物體的Z值,若Z1小於Z0(意即此新物體的深度不若上述的舊物體,新物體在舊物體的「上」),則上述的像素應顯示上述的新物體,且上述像素的Z值是應被更新為Z1;反之若Z1大於Z0(意即此新物體的深度大於上述的舊物體,新物體在舊物體的「下」)則上述的像素應顯示上述的舊物體,且上述像素的Z值是應維持為Z0。依上述的顯示方法,某像素的Z值是為對應至該像素的最淺物體的Z值。
一顯示器中像素的Z值通常被儲放於Z緩衝區(Z buffer)中。因每一像素皆具有一Z值,據此,若一顯示器具有X個水平像素與Y個垂直像素,則Z緩衝區具有X乘上Y個Z值。對於高解析度顯示器而言,Z緩衝區是為相當大的資訊量,且每當要顯示一新畫面時,系統皆需存取上述的Z緩衝區。於存取Z緩衝區內的資料時,將會造成大量資料在上述Z緩衝區與一圖形處理器(GPU,Graphics Processing Unit)之間移動。上述的圖形處理器是利用Z緩衝區內的資料以產生所欲顯示的畫面,然而大量的資料流量將會影響上述圖形處理器的處理速度。據此,減少Z緩衝區的流量是可增進系統的處理速度。
先前已有人嘗試著減少Z緩衝區的流量,這些努力已發展出下列的方法,例如階層式Z法(hierarchical z)、兩步驟繪圖法(two-passrendering),以及影像式Z壓縮法(image-based z compression)等。然而是由於諸多理由,比如低壓縮比、低效率,以及使用上的限制(有些應用程式僅能讀取而無法寫入緩衝區),上述這些先前發展的方法是不能達成令人滿意的結果。有監於此,發展一能更有效減少Z緩衝區流量的機制是屬必要。

發明內容
本發明的目的在於,提供一種減少Z緩衝區流量的三維圖形處理機制,於一種實作方式中,上述的壓縮機制是為一種差分Z壓縮法(delta-based z compression),此壓縮法是於Z緩衝區內儲存壓縮形態的資料(例如差分向量)而非實際的Z值,其中上述的差分向量可於稍後推導得知Z值。以差分向量取代實際Z值後,此壓縮機制是可大幅減少需要儲存於Z緩衝區的資訊量,據此,當自Z緩衝區讀取或寫入的資訊量減少後,則Z緩衝區的流量亦隨的減少。
若欲更進一步減少Z緩衝區流量,本實施例的一種實作方式是為將某些壓縮資訊(例如差分向量)儲存於一圖形處理機制的區域儲存區而非Z緩衝區內。令上述差分向量儲存於此區域儲存區內是可避免自Z緩衝區讀取或寫入上述差分向量,據此可更進一步減少Z緩衝區流量。
本發明一減少Z緩衝區流量的方法,其特徵在於,該減少Z緩衝區流量的方法包含接收一目前影原的資訊;將該目前影原描繪至一影磚,且該影磚具有一相對應於該影磚的緩衝區段以儲存該影磚的資訊;判斷該影磚是否被一大型影原所完全包含;以及當該判斷結果是為該影磚被一大型影原所完全包含時,自一區域儲存區而非自該相對應的緩衝區段獲得該影磚的資訊,藉此以減少Z緩衝區流量。
其中上述的判斷動作還包含處理一相對應於該影磚的碼以判斷該影磚是否被一大型影原所完全包含。
其中上述的自該區域儲存區所獲得的該影磚的資訊包含一壓縮形態的資訊。
其中上述的影磚包含一個或一個以上的像素,且該壓縮形態的資訊是可用於推導該影磚中至少一個像素的Z值。
其中上述的壓縮形態的資訊是包含根據差分Z壓縮法所推導而得的Z值相關資訊。
該減少Z緩衝區流量的方法還包含判斷該影磚是否處於初始狀態;以及當判斷結果是為該影磚處於初始狀態時,存取該相對應的緩衝區段。
其中上述的關於該影磚是否處於初始狀態的判斷動作還包含處理一相對應於該影磚的碼以判定該碼是否指出該影磚是處於初始狀態。
其中上述的影磚包含一個或一個以上像素,且該減少Z緩衝區流量的方法還包含當該關於該影磚是否處於初始狀態的判斷結果是為真時,設定一初始Z值至該影磚的一個或一個以上的像素。
該減少Z緩衝區流量的方法還包含當該判斷結果是為該影磚是未被一大型影原所完全包含時,自該相對應的緩衝區段獲得該影磚的資訊。
該減少Z緩衝區流量的方法還包含判斷該目前影原是否為一大型影原;判斷該目前影原是否完全包含該影磚;以及當該判斷結果是為該目前影原確是為一大型影原且該目前影原完全包含該影磚時,將一該影磚的更新資訊儲存於該區域儲存區而非該相對應的緩衝區段中。
該減少Z緩衝區流量的方法還包含更新一相對應於該影磚的碼以指明該影磚被一大型影原完全包含。
該減少Z緩衝區流量的方法還包含當該判斷結果是為該目前影原是非一大型影原,或該目前影原未完全包含該影磚,或該目前影原既是非一大型影原且亦未完全包含該影磚時,則將該影磚的更新資訊儲存於該相對應的緩衝區段中。
其中上述的目前影原是屬於一目前影格,且該減少Z緩衝區流量的方法還包含根據該目前影格內的影原的尺寸決定用以界定一後續影格中的大型影原的一臨界值。
本發明一減少Z緩衝區流量的圖形處理機制,其特徵在於,該減少Z緩衝區流量的圖形處理機制包含一用以接收一目前影原的資訊的機制;一用以將該目前影原描繪至一影磚的機制,該影磚具有一相對應於該影磚的緩衝區段以儲存該影磚的資訊;一用以判斷該影磚是否被一大型影原所完全包含的機制;以及一機制以當該判斷結果是為該影磚被一大型影原所完全包含時,自一區域儲存區而非該相對應的緩衝區段獲得該影磚的資訊,藉此以減少Z緩衝區流量。
其中上述的用以判斷該影磚是否被一大型影原所完全包含的機制還包含一機制以處理一相對應於該影磚的碼並據以判斷該影磚是否被一個大型影原所完全包含。
其中上述的自該區域儲存區所獲得的該影磚的資訊包含一壓縮形態的資訊。
該減少Z緩衝區流量的圖形處理機制還包含一判斷該影磚是否處於初始狀態的機制;以及一機制以當該判斷結果是為該影磚確是處於初始狀態時存取該相對應的緩衝區段。
該減少Z緩衝區流量的圖形處理機制還包含一機制以當該判斷結果是為於該影磚是未被一大型影原所完全包含時,自該相對應的緩衝區段獲得該影磚的資訊。
該減少Z緩衝區流量的圖形處理機制還包含一判斷該目前影原是否為一大型影原的機制;一判斷該目前影原是否完全包含該影磚的機制;以及一機制以當該判斷結果是為該目前影原確是為一大型影原且該目前影原完全包含該影磚時,將一該影磚的更新資訊儲存於該區域儲存區而非該相對應的緩衝區段中。


為進一步說明本發明的技術內容,以下結合實施例及附圖詳細說明如後,其中
圖1是為一影原描繪至一影磚的一部分的示意圖;圖2是為一儲存差分向量資訊的Z緩衝區段的示意圖,此圖是用於表示使用差分Z壓縮法後的存儲器節省情況;圖3是為多個重疊影原描繪至一影磚的示意圖;圖4是為一儲存多個差分向量的Z緩衝區段的示意圖,其中上述的多個差分向量是對應至不同影原;圖5是為一有多個標頭列的Z緩衝區段的示意圖,其中上述多個標頭列是儲存多組差分向量與多組影原遮罩;圖6是為一描繪至複數個影磚的大型影原的示意圖,其中上述的大型影原是完全包含某些影磚;圖7是為一根據本發明一實施例所提供的系統的功能方塊示意圖;圖8是為一根據圖7所示的系統運作的工作流程示意圖;以及圖9與圖10是為根據本發明一實施例所提供的Z處理的工作流程示意圖。
具體實施例方式
本發明在此所探討的方向為一種減少Z緩衝區流量的三維圖形處理機制。為了能徹底地了解本發明,將在下列的描述中提出詳盡的步驟及其組成。顯然地,本發明的施行並未限定於熟知該項技藝者所熟習的特殊細節。另一方面,眾所周知的組成或步驟並未描述於細節中,以避免造成本發明不必要的限制。本發明的較佳實施例會詳細描述如下,然而除了這些詳細描述之外,本發明還可以廣泛地施行在其他的實施例中,且本發明的範圍不受限定,其以之後的專利範圍為準。
基礎觀念基本名詞定義顯示器(display)顯示器是為給使用者觀看的一視訊繪圖裝置(例如陰極射線管及液晶顯示器等)。上述的顯示器包含複數個像素(pixel),其是以水平排列與垂直排列的方式形成一像素陣列。顯示器可個別操作每個像素以顯示任何影像。
影格(frame)影格是為於任意特定時刻由顯示器繪圖顯示的一完整視訊影像。上述的影格包含組成此視訊影像的所有像素資訊。影格的改變會令顯示器所顯示的視訊影像隨的更動。
影磚(tile)影磚是為顯示器的像素陣列的一子集合。一影磚通常包含一由水平及垂直像素組成的較小集合(例如一個八乘八的正方形像素陣列)。一個由影磚組成的完全集合將可完整組成顯示器的像素陣列。
影原(primitive)影原是為建構視訊影像中物件的一邏輯元件。在圖形處理的領域內,經常被使用的影原是為多邊形(polygon),而上述的多邊形中最常被使用的是為三角形(triangle),且每個物件皆能夠以一個或一個以上的三角形表現。例如一部汽車是能夠以複數個三角形表現。影原是可被描繪(rasterize)至影磚或像素上以供顯示器繪圖(rendering)使用。一影原可能完全位於單一影磚內,或跨越多個影磚(亦即,影原橫越影磚的邊界),換言的,一影原可能涵蓋單一影磚內的所有像素,抑或僅圍繞部分像素。差分Z壓縮法(Delta-based Z compression)導致Z緩衝區高流量的因素的一是有大量資訊儲存於Z緩衝區。若能減少此資訊量,則Z緩衝區的資訊流量亦將隨的減少。差分Z壓縮法的一目的即為減少所需儲存的資訊量。透過下述範例是為了解差分Z壓縮法的最佳方式。
參考圖1所示,其是為一包含64個像素104的八乘八的影磚102。請注意上述尺寸八乘八是便於範例說明,差分Z壓縮法可用於任何p乘q的影磚,其中p與q皆為整數。一影原106是描繪至上述影磚102的一部分,於此範例中,該影原所描繪的形狀是為一三角形。請注意差分Z壓縮法是可應用於任何形態的影原,包括但不限於點(point)、線(line),以及任何其z值具有線性性質(linear property)的多邊形;於此範例中使用三角形是便於說明之故。上述影原106包含了上述影磚102中的部分像素104。在未壓縮的情形下,Z緩衝區需為上述的影磚102儲存64組Z值(因為上述的影磚102包含64個像素104)。然而經過差分Z壓縮之後,Z緩衝區所需儲存的資訊將大幅減少。
如圖1所示,此影原106有三個頂點(vertex),分別為108(0)、108(1),與108(2),且頂點108(0)的座標為X0,Y0,Z0、頂點108(1)的座標為X1,Y1,Z1、以及頂點108(2)的座標為X2,Y2,Z2。利用上述座標,可求解下列方程以推導出一組相對應於上述影原106的差分向量(deltas)
Z0=ZS+ZX*X0+ZY*Y0;第一方程Z1=ZS+ZX*X1+ZY*Y1;第二方程Z2=ZS+ZX*X2+ZY*Y2;第三方程其中上述的差分向量為ZS,ZX,ZY。請注意上述的第一方程、第二方程,與第三方程基本上是為同一方程所衍生(亦即Z=ZS+ZX*X+ZY*Y),而其是為不同的座標值分別代入變數X,Y,Z所得的結果。換言之,代入上述頂點108(0)的座標值可得上述的第一方程,代入上述頂點108(1)的座標值可得上述的第二方程,代入上述頂點108(2)的座標值可得上述的第三方程。
上述的差分向量經推導而得知後,即可用以計算上述影原106所包含的像素104的Z值。更精確地說,Z值可透過下列方程來計算Zn=ZS+ZX*Xn+ZY*Yn;第四方程其中上述的Xn與Yn是為像素104的X與Y的座標值,而Zn是為像素104經計算得出的Z值。因上述影原106所包含的像素104的Z值可由推導得知,據此,Z緩衝區內即不需儲存Z值,故Z緩衝區內僅需儲存差分向量。換言的,僅需差分向量即可於稍後推導出Z值,故當實施上述的壓縮法時,Z緩衝區內僅需儲存較少量資訊。
透過差分Z壓縮法所節省的儲存空間於圖2中更加明顯,其中圖2示出者是為圖1所示的影磚102所對應的一Z緩衝區段(Z buffersection)202。(於一種實作方式中,每個影磚102皆有一對應的Z緩衝區段202。)上述的Z緩衝區段202包含一標頭列(headerentry)204,此標頭列204中是儲存上述影原106的差分向量206(亦即ZS,ZX,ZY)。然而,僅儲存上述的差分向量206仍無法提供足夠資訊,因其無法指出上述的差分向量206可應用於哪些像素104(亦即被上述影原106所包含的像素104)之上。
為提供此類資訊,Z緩衝區亦須於上述的標頭列204中儲存一影原遮罩(primitive mask)208與一Z遮罩)z mask)210。上述的影原遮罩208是用以標示被此影原106所包含的像素104。上述的Z遮罩是用以標示未被此影原106所包含的像素104。若一像素104未被任何影原106所包含,則此像素104的Z值為系統初始(system startup)時指定給全部像素104的初始值(initial value)。一種實作方式是為,此影原遮罩208與Z遮罩210是為一長度為64比特的比特遮罩(bit mask),其中每個比特是代表上述影磚102中的64個像素104之一。於上述的影原遮罩208中,代表一像素104的比特是可標示出其所代表的像素104是否被上述影原106所包含。於上述的Z遮罩210中,代表一像素104的比特是可標示出其所代表的像素104是否被任何影原106所包含。結合上述二者,亦即影原遮罩208與Z遮罩210,即可精確判斷出任一像素104是否為任一個影原106所包含。
從圖1到圖2可明顯示出差分Z壓縮法可節省儲存空間。Z緩衝區不需儲存上述影磚102的64個Z值,僅需儲存上述差分向量206(亦即ZS,ZX,ZY)與上述的兩個64比特長度的影原遮罩208與Z遮罩210。若描繪至一影磚102內的影原106數量不多,則上述的壓縮方法可大幅度減少儲存空間,一般而言此種情況甚為常見。若描繪至一影磚102內的影原106數量超過一特定數量(此特定數量依特定的實作而有所不同),則儲存實際的Z值要比使用差分Z壓縮法更有效率。於一實作方式中,於上述的Z緩衝區段202中是否要採用差分Z壓縮法端賴其是否較具效率而定。
圖1僅示出單一影原106描繪至單一影磚102的情況。於更複雜的情況下,是可能有多個影原106描繪至同一影磚102,圖3所示的實施例即為此類情形。其中,一第二影原306亦被描繪至上述影磚102,且此第二影原306是與上述的影原106部份重疊。於此實施例中,類似上述的原理亦可應用於差分Z壓縮法。
更精確地說,同上述影原106一般,此第二影原306亦有三個頂點308(0),308(1),308(2)。上述的每個頂點分別具有一相關的X,Y,Z座標值((X3,Y3,Z3),(X4,Y4,Z4),(X5,Y5,Z5))。利用上述座標值,可求解下列方程以得出一組針對上述的第二影原306的差分向量(deltas)Z3=ZS+ZX*X3+ZY*Y3;第五方程Z4=ZS+ZX*X4+ZY*Y4;第六方程Z5=ZS+ZX*X5+ZY*Y5;第七方程經推導而得知上述的差分向量(ZS,ZX,ZY)後,即可利用先前提供的第四方程計算上述的第二影原306所包含的任何像素104的Z值,其中上述第四方程中的Xn與Yn是為像素104的X與Y的座標值,而Zn是為像素104經計算得出的Z值。因Z值是可由推導得知,則Z緩衝區僅需儲存上述第二影原306的差分向量而不需儲存實際的Z值。
參考圖4所示,其是為圖3所示的影磚102的Z緩衝區段202的內容示意圖。因上述的影原106與第二影原306是描繪至同一影磚102,據此,Z緩衝區段202需儲放兩組差分向量,一即針對上述影原106的差分向量206,另一為針對上述第二影原306的差分向量402。於加入上述第二影原306後,原圖2中所示的影原遮罩208與Z遮罩210需加以更新。先前已述此Z遮罩210是用以標示未被任何影原所包含的像素104,因上述第二影原306是包含了更多像素104,據此,上述的Z遮罩210需排除被上述第二影原306所包含的像素104。
上述的影原遮罩208亦須加以更新,一種實作方式是為,上述兩組差分向量206與差分向量402是共用此一影原遮罩208。就每組差分向量各設置一個獨立的影原遮罩亦屬可行,然而上述以兩組以上的差分向量共用同一影原遮罩208將節省更多空間,據此得以提供更佳的壓縮率。於上述的共用的影原遮罩208中,每個比特是用於標示其所代表的像素104為某一差分向量所包含。例如,若一比特值是為0,則此比特所代表的像素104是適用於上述差分向量206,亦即此比特所代表的像素104是為上述影原106所包含;反之,若一比特值為1,則此比特所代表的像素104是適用於上述差分向量402,亦即此比特所代表的像素104是為上述第二影原306所包含。就那些既不被上述影原106與上述第二影原306所包含的像素104而言,其所對應的比特值是為一特定的內定值(default value),比如此內定值是可為0。乍看下,上述比特的內定值會讓上述影原的一包含更多像素104,然而,先前所述的Z遮罩210已然指出有那些比特是不被任何影原所包含。據此,利用上述Z遮罩210以處理上述的影原遮罩208可過濾出不被任何影原所包含的像素。
如圖3所示,有些像素同時被上述影原106與第二影原306所包含,據此,於上述的影原遮罩208中是無法明確指出上述的像素為哪個影原所包含。於一實作方式中,一比較Z值的方法是用以決定上述的像素為哪個影原所包含。舉例而言,如圖3所示的一像素104(z)是同時為上述影原106與第二影原306所包含。首先,一上述像素104(z)的Z值是利用上述影原106的差分向量206計算而得出,接著,另一上述像素104(z)的Z值是利用上述影原306的差分向量402計算而得出,然後比較上述兩個Z值何者較小(亦即計算出上述影原106與第二影原306何者較淺,較淺的影原將可包含上述像素104(z))。若利用上述差分向量206所計算得出的Z值較小,則此像素104(z)是為上述影原106所包含;若利用上述差分向量402所計算得出的Z值較小,則此像素104(z)是為上述第二影原306所包含;於是,上述影原遮罩208中代表此像素104(z)的比特值是可據此加以設定。上述比較Z值的方法亦可應用於每一個同時為上述影原106與第二影原306所包含的像素,據以決定此像素所屬的影原為何。
圖3僅示出兩個影原106與306,於實際情況中是可能有更多影原被描繪至上述影磚102內。參考圖5所示,其為於上述的情況下,將差分Z壓縮法所需資訊儲存於上述Z緩衝區段202的示意圖。於一實作方式中,若有一圖3未示出的第三影原被描繪至上述影磚102,則上述Z緩衝區段202將加入一標頭列502,且針對上述第三影原的一差分向量504與一影原遮罩506會被加入於上述的標頭列502中。若有一圖3未示出的第四影原被描繪至上述影磚102,則上述Z緩衝區段202將加入針對上述第四影原的一差分向量508於上述的標頭列502中。如圖5所示,於一實作方式中,一個影原遮罩是對應至兩組差分向量,且每一個標頭列204、502是包含兩組差分向量與其所對應的一個影原遮罩。據此,若有六個影原被描繪至上述的影磚102內,則上述Z緩衝區段202是將儲存一圖5未示出的第三個標頭列,且此第三個標頭列是將包含兩組分別對應至第五個與第六個影原的差分向量與一影原遮罩。
因上述Z緩衝區段202可包含不定數目的標頭列,據此,於上述標頭列204中包含一欄位510以儲存一整數n,據以表示於上述Z緩衝區段202中的標頭列總數。在圖5中,因有兩個標頭列204/502位於上述Z緩衝區段202中,故此時此整數n的值是為2。若有更多影原被描繪至上述影磚102內,則上述的n值將會增加。比如若有六個影原被描繪至上述影磚102內,則須有第三個標頭列以儲存相關的差分向量與影原遮罩,故上述的n值將為3。以此方式在上述標頭列204中儲存此整數n,是有助於得知在上述Z緩衝區段202是有多少個標頭列需被讀取以取得差分Z壓縮法所需的全部資訊。
由理論上觀之,無論有多少影原被描繪至上述的影磚102,皆可適用前述所揭露的壓縮法。然而先前已述,於實用上是存在一實用的影原上限數目,若所欲描繪至一影磚的影原數目超過上述的影原上限,則儲存實際的Z值將比使用上述的壓縮法更節省空間。於一實作方式中,於施行上述的壓縮法前需檢測被描繪至同一影磚的影原數目是否達到上述的影原上限數目,若此檢測的結果為真,則不施作差分Z壓縮法於此一影磚。
於一實作方式中,先前揭露的壓縮法是採每兩組差分向量共同利用一影原遮罩的方式,然而,上述的壓縮法並非必然以一影原遮罩對應至兩組差分向量以及此影原遮罩僅對上述兩組差分向量提供必要資訊的方式實作(雖然此方式是為一可能的實作方式)。反之,於一實作方式中,所有於Z緩衝區段202內的影原遮罩的資訊是可結合,以供所有於Z緩衝區段202內的差分向量提供資訊。
更進一步而言,於一實作方式中,每一個影原遮罩是為一比特形式的遮罩,其中的每一比特是代表一影磚內的一特定像素,且每一比特僅有兩種可能的值,分別是0與1。若有二個以上的影原被描繪至此一影磚102,亦即於Z緩衝區段202中需儲存二個以上的差分向量,據此,即不可能僅用一比特以唯一表示其所代表像素的所屬的影原為何者。圖5示出四組差分向量206、402、504,與508,僅用一比特是無法表示其所代表像素所屬的影原是為此四者之一,因一比特是僅有二種可能值。如圖5中,請注意是有兩個影原遮罩208、506提供資訊至上述四個差分向量206、402、504與508。若結合上述二影原遮罩208、506的比特,是有可能唯一表示某像素所屬的差分向量為何。
舉例而言,上述的影原遮罩208包含一比特代表此影磚102的左上角像素,且上述影原遮罩506亦包含一比特代表此影磚102左上角的同一像素。若此二比特結合為一兩比特長度的值,亦即其值是可能為00、01、10與11其中之一,則每一可能值即可唯一表示上述的四個差分向量的其中之一。比如,若上述的兩比特長度值為00,則此左上角像素即適用上述差分向量206;若上述的兩比特長度值為01,則此左上角像素即適用上述差分向量402;若上述的兩比特長度值為10,則此左上角像素即適用上述差分向量504;若上述的兩比特長度值為11,則此左上角像素即適用上述差分向量508。據此,以此種比特包裹(bit packing)方式結合上述二影原遮罩的比特,是可唯一表示其所代表像素的所屬的差分向量為何。以此類推,以上述比特包裹方式是可適用於具有三個影原遮罩與六個差分向量的情況,亦可適用於具有四個影原遮罩與八個差分向量的情況,且可繼續推廣至具有更多影原遮罩與差分向量的情況。依上述方式實作時,每個影原遮罩非僅提供資訊給兩個差分向量,反之,每個影原遮罩是於Z緩衝區段202中一提供資訊給全部差分向量的整體影原遮罩(overall mask)的一部分。依上述方法實作時會有一缺點,亦即於一新影原遮罩加入時,必須更動先前加入的一個或一個以上的影原遮罩。比如,當上述的影原遮罩506加入時,上述的影原遮罩208可能須加以更動;亦即原先上述的影原遮罩208僅提供上述二差分向量206、402的資訊,而上述的影原遮罩506加入時,此影原遮罩208是成為一整體影原遮罩的一部分,且此整體影原遮罩是提供三或四個差分向量206、402、504與508的資訊。上述作法的一優點在於當差分向量的數目超出影原遮罩208所包含的差分向量數目時才需要施作上述的比特包裹法,並且上述整體影原遮罩的大小是隨著差分向量數目的增加才增加。
大型影原與全域差分向量(global delta)。
先前所述的差分Z壓縮法是透過減少Z緩衝區內資訊量的方式以減少Z緩衝區的流量。進一步而言,Z緩衝區流量的減少亦可由減少Z緩衝區的存取次數而達成。若於某些適當的環境條件下,專利申請人業已觀察到有許多Z緩衝區的存取是可進一步省略,據此,Z緩衝區流量更可進一步減少。
參考圖6所示,其是為一大型影原602被描繪至複數個影磚的示意圖,參考此圖是可了解如何省略Z緩衝區的存取次數。上述的影原602是完全包含複數個影磚102(1)至102(13),亦部分包含了其他影磚的像素。緣其簡單之故,假設上述的每一影磚是皆有一對應的Z緩衝區段,且上述的差分Z壓縮法亦皆應用於此複數個Z緩衝區段。
就上述被此大型影原602完全包含的十三個影磚102(1)至102(13)而言,其所對應的十三個Z緩衝區段皆須儲存下列資訊(1)一對應於上述影原602的差分向量;(2)一影原遮罩以指明此影磚內的所有像素皆被上述影原602所包含;(3)一Z遮罩以指明此影磚內沒有任何像素是未被任何影原包含;(4)一整數n,且其值為1。請注意,上述資訊於上述十三個影磚102(1)至102(13)內皆是相同的。據此,若上述資訊須儲存於上述十三個影磚所對應的十三個Z緩衝區段內,亦即同樣的資訊將寫入Z緩衝區十三次;與此相類,當要讀取Z緩衝區的資訊時,同樣的資訊將被讀取十三次。上述的重複的寫入與讀取動作是無效率,並且平白增加額外非必要的Z緩衝區流量。
於一實作方式中,大型影原的差分向量資訊是不儲放於Z緩衝區內以減少重複存取及Z緩衝區的流量。反之,大型影原的差分向量資訊(在此稱為全域差分向量)是被儲存於一圖形處理機制(GPM,GraphicsProcessing Mechanism)內的區域儲存區(l0cal storage)。據此,當需要讀取上述的全域差分向量資訊時,上述的圖形處理機制可從上述的區域儲存區獲得而不經由Z緩衝區;與此相類,當需要更動上述的全域差分向量資訊時,上述的圖形處理機制可更新上述的區域儲存區而非更動Z緩衝區;據此,將可避免對Z緩衝區的重複性讀寫動作,並且Z緩衝區的流量亦隨的減少。於大多數的影格中,專利申請業已觀察到大型影原是包含一大比例的影磚,據此,避免為上述影磚而存取Z緩衝區將可顯著減少Z緩衝區流量。
較佳實施範例參考圖7,其是為一根據本發明一實施例所建構的圖形處理系統700的方塊示意圖。緣其簡單之故,圖7僅示出與本發明相關的元件。此圖形處理系統700是可能包含一個或一個以上額外的圖形處理元件。
如圖7所示,此圖形處理系統700包含一Z緩衝區702以儲存與一顯示器內所有影磚(圖7未示出)相關的Z值資訊。一實作方式是為,上述的Z緩衝區702包含一m個數目的存儲器區段202,其中m是一整數。上述每個存儲器區段202是對應至一顯示器內的一影磚,亦即影磚與存儲器區段202具有一對一(one-to-one)的關係。因上述的Z緩衝區702具有m個存儲器區段202,據此,上述的顯示器是具有m個影磚,且每一存儲器區段202是用於儲存其所對應的影磚的Z值相關資訊。於一實作方式中,上述的Z值相關資訊是可為實際Z值的形態(亦即未壓縮的形態),亦可為壓縮的形態。更精確而言,此處所謂壓縮形態的資訊是廣泛地指稱能夠以直接或間接方式計算或推導出像素的實際Z值的資訊。緣其簡單之故,於以下討論時將假定任何儲存於存儲器區段202的壓縮形態的資訊是為差分Z壓縮法的形式,亦即於先前討論的圖2、圖4、與圖5所示的形式。然而,上述的壓縮方式非屬必要,其他種壓縮形式亦可能達成相同效果。
此圖形處理系統700還包含一圖形處理機制(GPM)706與上述的Z緩衝區702相接。於一實作方式中,上述圖形處理機制706會進行相關必要的圖形處理動作以產生影格供上述的顯示器繪圖,據此,上述圖形處理機制706必須使用與更新上述Z緩衝區702中的資訊,亦即對上述的Z值相關資訊進行壓縮與解壓縮的動作。除此之外,上述的圖形處理機制706亦負責儲存與處理全域差分向量及壓縮碼(compression code)。就整體而言,於一實作方式中,上述的圖形處理機制706可實作本發明的各項功能。此圖形處理機制706的動作將於稍後詳細說明。如圖7所示,此圖形處理機制706是為一獨立元件,然而,上述圖形處理機制706的各項功能亦可利用複數個獨立元件實作,且上述每個獨立元件是實作一個或一個以上的功能,本發明亦可適用於此種分散式的實作方式。
上述圖形處理機制706的各項功能亦可利用任何已知技術加以實作。例如,上述圖形處理機制706是可以硬體邏輯元件的方式實作,比如上述圖形處理機制706是可為一特殊應用集成電路(ASIC,application specified integrated circuit);除此之外,上述圖形處理機制706的各項功能亦可以軟體的方式實作,比如上述圖形處理機制706是可為一組處理器執行指令的形態。本發明是可適用於以上所述及其他所有可能之上述圖形處理機制706實作方式。
如圖7所示,此圖形處理機制706包含一區域儲存區708。此區域儲存區708是可為上述圖形處理機制706的一部分,比如此區域儲存區708與上述圖形處理機制706是位於同一晶片上;除此之外,此區域儲存區708是可與上述圖形處理機制706分開。只要符合上述圖形處理機制706可存取上述區域儲存區708的實作方式皆符合本發明。
上述的區域儲存區708包含複數個紀錄(entry)720。如圖7所示,此區域儲存區708具有K+1個紀錄720,其中K是為一整數。上述K值是小於上述的m值,亦即上述顯示器的影磚數目是多於上述複數個紀錄的數目。於一實作方式中,每個紀錄是可用於儲存一個影原的相關壓縮資訊,此相關壓縮資訊是可以任何形態存在,然而於一實作方式中,此相關壓縮資訊是為一組根據上述差分Z壓縮法針對一影原所產生的全域差分向量。上述的區域儲存區708的使用方式將於稍後加以詳述。
上述圖形處理系統700還包含一連接至上述圖形處理機制706的壓縮碼緩衝區(compression code buffer)704。此壓縮碼緩衝區704是可為上述Z緩衝區702的一部分,亦或為一獨立的存儲器。上述壓縮碼緩衝區704包含複數個壓縮碼緩衝區段710。於一實作方式中,每個壓縮碼緩衝區段710是對應至一上述的特定影磚與一上述的特定存儲器區段202,亦即此壓縮碼緩衝區段710與上述的影磚,以及壓縮碼緩衝區段710與上述的存儲器區段202皆具有一對一(one-to-one)的關係。據此,此圖形處理系統700具有m個影磚、m個存儲器區段202與m個壓縮碼緩衝區段710。
上述的壓縮碼緩衝區段710是用於儲存與其相對應的影磚及存儲器區段202的相關資訊,此相關資訊是用於指示上述圖形處理機制706該讀取何處的資訊,以及如何處理上述被讀取的資訊。一種實作方式是為,儲存於此壓縮碼緩衝區段710的資訊是為一具有八個比特長度的碼(code),其值是可能為以下四種形態(type)之一(1)0 0 0 0 0 0 0 0 影磚處於初始狀態(2)0 xxxxxxxZ緩衝區段的資訊是為壓縮形態(3)1 1 1 1 1 1 1 1 Z緩衝區段的資訊是非壓縮形態(4)1 xxxxxxx 自區域儲存區讀取壓縮形態的資訊若此碼的內容是全為0,亦即第一形態碼,則代表其所對應的影磚是處於初始狀態,換言的,並無任何影原被描繪至所對應的影磚。據此,於其所對應的影磚內的所有像素的Z值是該被設定為系統的初始Z值,故上述圖形處理機制706是不須存取其所對應的存儲器區段202以獲得關於此影磚的Z值資訊,反之,上述圖形處理機制706僅須將系統的初始Z值填入此影磚的所有像素即可。
若上述碼的值是以0為首並且接著以七個非全為0的比特,亦即第二形態碼,則此碼代表著其所對應的影磚的Z值相關資訊是位於其所對應的存儲器區段202內,除此之外,此碼亦代表著上述的Z值相關資訊是為壓縮形態。據此,上述圖形處理機制706是可得知其須自此碼所對應的存儲器區段202讀取關於此碼所對應的影磚的Z值相關資訊;同時,上述圖形處理機制706亦可得知上述Z值相關資訊是為壓縮形態,亦即須進行解壓縮動作以推導出此影磚內像素的實際Z值。於一實作方式中,此碼內於0之後的七個比特是用以指示此碼所對應的存儲器區段202的標頭列數目,據此是可獲得此存儲器區段202內的全部壓縮資訊。
若上述碼的值是全為1,亦即第三形態碼,則此碼代表著此碼所對應的影磚的Z值相關資訊是以非壓縮形態存在於此碼所對應的存儲器區段202內,亦即此碼所對應的存儲器區段202內的Z值相關資訊是為實際Z值。據此,上述圖形處理機制706可得知其須自此碼所對應的存儲器區段202讀取關於此碼所對應的影磚的Z值相關資訊;同時,上述圖形處理機制706並不須對上述Z值相關資訊進行解壓縮動作。
若上述碼的值是以1為首並且接著以七個非全為1的比特,亦即第四形態碼,則此碼代表著其所對應的影磚是完全為一大型影原所包含。據此,關於此碼所對應的影磚的Z值相關資訊是不存在於此碼所對應的存儲器區段202內,而是存在於上述區域儲存區708的一紀錄720內。根據此碼,上述圖形處理機制706是可得知其應存取上述的區域儲存區708而非存取此碼所對應的存儲器區段202以獲得此碼所對應的影磚的Z值相關資訊。於一實作方式中,此碼於1之後的七個比特是可指定上述區域儲存區708的一紀錄720以獲得Z值相關資訊,上述圖形處理機制706是可根據此碼更快且更容易地存取此紀錄720內的Z值相關資訊。
如上所述,此圖形處理機制706可利用位於上述壓縮碼緩衝區段710的一碼以快速獲得此碼所對應的影磚與存儲器區段202的Z值相關資訊。於某些情況下,上述碼是可令此圖形處理機制706避免對上述Z緩衝區702進行存取動作,據此,Z緩衝區702的流量是可大幅度地減少。
運作範例(Sample Operation)參考圖8、圖9,與圖10,其是為根據本發明的一實施例所建構的一圖形處理系統700的工作流程示意圖。參考圖7到圖10所示,本實施例將詳述於下。
參考圖8,首先進行步驟804,本實施例開始進行系統初始的動作,此動作是進行一些初始化(initialization)的工作。更進一步而言,如圖7所示,位於此壓縮碼緩衝區704的此壓縮碼緩衝區段710的所有碼皆被設定為0 0 0 0 0 0 0 0以指明所有影磚皆處於初始狀態。除此之外,其他元件如上述的圖形處理機制706、Z緩衝區702,與區域儲存區708亦可能需要進行初始化的工作。
於系統初始動作後,接著進行步驟808,上述的圖形處理機制706進行一影格的圖形處理動作,此影格是被稱為目前影格(currentframe)以利後續討論的便。為處理目前影格,接著進行步驟812,上述的圖形處理機制706自一圖中未示出的主機(host)接收一組屬於此影格的有關於一影原的資訊。於一實作方式中,此影原是為三角形的形態,並且上述關於此影原的資訊是包含此三角形三個頂點的座標值。此影原是被稱為目前影原(current primitive)以利後續討論之便。
於自上述的主機獲得資訊後進行步驟816,上述的圖形處理機制706會計算上述的目前影原的大小,亦即上述的目前影原的面積,依此尺寸與一大型影原的臨界值(threshold)相較,據以判斷上述的目前影原是否為一大型影原。於系統初始時,上述的大型影原大小的臨界值是已被設定為一初始值。此初始值是用以與第一個影格中的影原相較,然而,上述的大型影原臨界值於每個影格處理完畢後皆須更新,且更新後的臨界值是用以與下一影格的影原相較,稍後於進行步驟840時將會詳加敘述此一動作。除了判定上述的目前影原是否為一大型影原以外,上述的圖形處理機制706亦針對上述目前影原的面積加以分類。於一實作方式中,上述的分類動作是將目前影原編派至複數個籃框(bucket)的其中之一,其中,每個籃框是依分類而包含具有特定面積範圍的影原。
接著進行步驟820,上述的圖形處理機制706將上述目前影原對應(mapped)至一個或一個以上的影磚,換言的,上述的圖形處理機制706判定有哪些影磚會被上述目前影原所對應。先前已述,一影原的描繪範圍可能跨越多個影磚,據此,上述的目前影原是可能描繪至複數個影磚。於決定上述目前影原的描繪範圍後,接著進行步驟824,上述的圖形處理機制706會擇定一個被上述目前影原所描繪的影磚。於步驟828中,上述的圖形處理機制706對此被擇定的影磚進行Z處理(z processing),此Z處理將於圖9與圖10的討論中詳加敘述。
於進行Z處理後,接著進行步驟832,上述的圖形處理機制706找尋並判斷上述的目前影原是否尚描繪至其他影磚;若找尋結果為真,則上述的圖形處理機制706將重複進行步驟824以後的步驟,即選擇下一影磚並且對其執行上述的Z處理;反之,若所有被上述的目前影原描繪至的影磚已皆處理完畢,則對於上述目前影原的處理業已完畢。接著上述的圖形處理機制706將進行步驟836以判定上述目前影格中是否仍有未經處理的影原;若尚有影原未經處理,則上述的圖形處理機制706將針對上述未經處理的影原重複步驟812以後的流程(步驟812至步驟836);若針對目前影格的處理工作皆已完畢,則上述的圖形處理機制706將接著進行步驟840。
於步驟840中,上述的圖形處理機制706將決定於下一影格中用以與影原比較之上述大型影原臨界值。於一實作方式中,上述大型影原臨界值是取決於上述區域儲存區708的容量與目前影格中影原的面積大小。先前已述,當處理目前影格中的每個影原時,每個影原皆會被編派至上述複數個籃框之一。據此,當目前影原的所有影原皆被處理後,上述的所有影原亦以面積大小被分類完畢。於一實作方式中,上述的圖形處理機制706將為下一影格決定一特定尺寸作為上述大型影原臨界值,使得大於此一特定尺寸的已分類影原數目最接近但不超過上述區域儲存區708的容量。例如,若上述區域儲存區708的容量是為128筆紀錄,則上述的圖形處理機制706將擇定一特定尺寸,於此目前影格中,其尺寸大於此一特定尺寸的影原數目最接近但不超過128。據上述的方式替下一影格擇定此臨界值的步驟是奠基於下一影格是與上述的目前影格相似的假設,而就絕大部分的情況而言,上述的假設是可成立的。
於決定下一影格的大型影原臨界值後,上述的圖形處理機制706將清除所有籃框以便供下一影格的分類步驟使用。接著,此流程將回到步驟808以處理下一影格,此流程(步驟808至步驟840)將持續重複以處理每一個影格。
如圖8所示,上述的Z處理是被示於單一個步驟828當中。圖9與圖10將更近一步詳細說明此步驟828。於一實作方式中,Z處理是包含兩階段(phase)(1)獲得並且處理Z值相關資訊;以及(2)更新Z值相關資訊。第一階段是示於圖9中,且第二階段示於圖10中。
當進行Z處理時,一特定影格,一目前影原與一影磚已被擇定。據此,如圖9所示,首先進行步驟904,上述的圖形處理機制706存取圖7所示的壓縮碼緩衝區段710以獲得一上述被擇定影磚的相關碼。如前所述,上述相關碼是為四種形態之一,依據碼的形態不同,上述的圖形處理機制706的處理亦有所不同。
更精確地說,進行步驟908,上述的圖形處理機制706判斷所讀取的碼是否為第一形態碼(亦即為0 0 0 0 0 0 0 0),若結果為真,則上述被擇定影磚是處於初始狀態。據此,上述的圖形處理機制706即不須至相關的Z緩衝區段202獲得相關的Z值相關資訊;接著進行步驟912,上述的圖形處理機制706隻須將一初始Z值設定到上述被擇定影磚的每個像素即可。據此,上述的圖形處理機制706不須產生任何Z緩衝區流量即可推導出上述被擇定影磚內所有像素的Z值。
若步驟908的結果為非,則接著進行步驟916,上述的圖形處理機制706判斷所讀取的碼是否為第四形態碼(亦即1 xxxxxxx),若結果為真,則上述被擇定影磚是被一大型影原所包含。據此,上述的圖形處理機制706即不須至相關的Z緩衝區段202獲得相關的Z質相關資訊;接著進行步驟920,上述的圖形處理機制706是自上述區域儲存區708中的一紀錄720取得一組壓縮資訊,其中,此紀錄720的位置是存在於上述第四形態碼之後七個比特。於一實作方式中,儲存於此紀錄720的壓縮資訊是為包含上述被擇定影磚的大型影原的全域差分向量。利用第四方程與上述的全域差分向量,上述的圖形處理機制706不須產生任何Z緩衝區流量即可推導出上述被擇定影磚內所有像素的Z值,如步驟924。
若步驟916的結果為非,則接著進行步驟928,上述的圖形處理機制706判斷所讀取的碼是否為第三形態碼(亦即1 1 1 1 1 1 11),若結果為真,則上述被擇定影磚的Z值相關資訊是以非壓縮的形態儲存於上述Z緩衝區段202之中。據此,進行步驟932,上述的圖形處理機制706從相關的Z緩衝區段202中讀取被擇定影磚的實際Z值相關資訊。
若步驟928的結果為非,則接著進行步驟936,上述的圖形處理機制706判斷所讀取的碼是否為第二形態碼(亦即0 xxxxxxx),若結果為真,則上述被擇定影磚的Z值相關資訊是以壓縮的形態儲存於上述Z緩衝區段202之中,同時,上述的圖形處理機制706亦可從此碼之後七個比特得知於上述Z緩衝區段202內有幾組標頭列204。據此,接著進行步驟940,上述的圖形處理機制706從相關的Z緩衝區段202中讀取被擇定影磚壓縮形態的Z值相關資訊。接著進行步驟944,利用已獲得的Z值相關資訊,上述的圖形處理機制706推導之上述被擇定影磚的Z值。於一實作方式中,就推導Z值的過程中,上述的圖形處理機制706可能需要處理一Z遮罩(如圖5所示)以得知哪些像素未被任何影原所包含。就此類像素而言,須設定一初始Z值。除此之外,就推導Z值的過程中,上述的圖形處理機制706亦可能需要處理一個或一個以上的影原遮罩以決定哪些像素被何影原所包含。若有多個影原遮罩,則所有上述的影原遮罩將可能需要組成一個多比特的整體影原遮罩,據此,則可建立像素對影原的對應關係,上述的圖形處理機制706將可利用第四方程與上述影原的差分向量推導出任一像素的Z值。
依據上述具有不同形態的碼,以執行上述步驟之一,上述的圖形處理機制706是可推導出上述被擇定影磚的目前Z值。接著可進行步驟948,上述的圖形處理機制706是進行一Z測試程序(Z testingprocedure),此Z測試程序是比較一個或一個以上的目前Z值與上述目前影原的Z值,以決定何者須被更新。一種實作上述Z測試程序的方式亦須推導計算目前影原的差分向量。若上述被擇定影磚的任何像素的Z值須被更新,則上述的圖形處理機制706是接著進行圖10所示的更新程序。
於此更新程序中,首先進行步驟1004,上述的圖形處理機制706將決定此目前影原是否為一大型影原,而上述結果已經於圖8所示的步驟816得出,故直接沿用上述結果。若此結果為真,則接著進行步驟1008,上述的圖形處理機制706判斷此目前影原是否包含整個被擇定的影磚,亦即判斷被擇定影磚的每個像素的Z值是否皆由此目前影原所決定。
若上述的結果為真,接著進行步驟1012,上述的圖形處理機制706判斷此目前影原的壓縮資訊是否已經儲存於上述區域儲存區708內。於一實作方式中,上述目前影原的壓縮資訊是包含此目前影原的全域差分向量。因此目前影原是為一大型影原,故此目前影原是可能完全包含複數個影磚,據此,此目前影原的全域差分向量可能已於處理其他影磚時先儲存於上述區域儲存區708內。若此目前影原的全域差分向量已先儲存於上述區域儲存區708內,則不須再度儲存此項資訊,據此,上述的圖形處理機制706是接著進行步驟1024。
若上述區域儲存區708內並無此目前影原的全域差分向量,則接著進行步驟1016,上述的圖形處理機制706判斷上述區域儲存區708內是否還有任何一筆空的紀錄720。若上述結果為真,則接著進行步驟1020,上述的圖形處理機制706將此目前影原的全域差分向量儲存於一筆空白紀錄720中。接著,進行步驟1024,上述的圖形處理機制706將相對應於此目前影磚的壓縮碼緩衝區段710的碼更新為一第四形態碼,以指出此目前影磚是為一大型影原所完全包含。再者,此碼之後七比特將指出上述此目前影原的全域差分向量是儲存於哪個壓縮碼緩衝區段710。此目前影磚的Z值相關資訊是依據上述程序被更新。請注意上述程序並不須存取相對應的Z緩衝區段202,故不產生任何Z緩衝區的流量。
於一實作方式中,若此目前影原並非一大型影原,亦或此目前影原不包括此目前影磚,亦或上述的區域儲存區已無任何空白紀錄,則上述的圖形處理機制706需要將Z值相關資訊儲存於此目前影磚所相對應的Z緩衝區段202內。接著,進行步驟1028,上述的圖形處理機制706判斷上述的Z值相關資訊是否以非壓縮的形態儲存,而此判斷過程是依據圖9所示的步驟928所決定,故可沿用至此。若其結果為真,則接著進行步驟1032,上述的圖形處理機制706是儲存非壓縮形態的Z值相關資訊於此目前影磚所相對應的Z緩衝區段202內,亦即將實際Z值儲存於相對應的Z緩衝區段202。上述目前影磚的Z處理至此結束。
若上述步驟1028中,上述的圖形處理機制706對於上述的Z值相關資訊是以非壓縮的形態儲存的判斷為否,則接著進行步驟1036,上述的圖形處理機制706將更進一步判斷當此目前影原描繪至上述被擇定的影磚後,描繪影原的總數是否超過原先設定的影原上限。先前已述,當有某特定數量以上的影原描繪至同一影磚時,於相對應的Z緩衝區段202儲存實際Z值較採用差分Z壓縮法來得有效率。於步驟1036中,上述的圖形處理機制706會進行上述的影原上限的檢查動作(亦即檢查於上述Z緩衝區段202的差分向量的數量,或是檢查標頭列中的整數n的值)。若影原的數量超過上述的影原上限,則接著進行步驟1040,上述的圖形處理機制706將上述的Z值相關資訊以非壓縮的形態(亦即實際Z值)儲存於上述Z緩衝區段202中。接著,進行步驟1044,上述的圖形處理機制706將相對應的壓縮碼區段710內的碼設定為第三形態碼,用以指明儲存於上述Z緩衝區段202中的Z值相關資訊是以非壓縮的形態儲存於上述Z緩衝區段202中。
若上述步驟1036的檢查動作結果為否,則接著進行步驟1048,上述的圖形處理機制706將壓縮形態的Z值相關資訊儲存於上述被擇定影磚相對應的Z緩衝區段202中。上述步驟可能牽涉到Z遮罩的更新(如圖5所示的範例)以指明上述被擇定影磚中有哪些像素未被任何影原所包含。上述步驟亦可能牽涉到新差分向量(由上述的目前影原推導出的差分向量)的增加,據此可能需要增加一新紀錄與更新標頭列中的整數n的值。除此之外,上述步驟尚可能需要加入與更新一個或一個以上的影原遮罩以指明哪些像素是被哪些影原與相關的差分向量所包含。若加入一新的影原遮罩,上述步驟即可能需要更新一個或一個以上的影原遮罩(如上述的比特包裹的方式)。上述更新壓縮形態的Z值相關資訊的過程更可能需要移除多餘不必要的差分向量。例如,若一影原遮罩或於比特包裹法下的多個影原遮罩指出一差分向量是不包括任何像素,則上述的差分向量須自Z緩衝區段202中刪除。以上所述的各種可能做法是於此步驟中加以實作。
接著進行步驟1052,上述的圖形處理機制706更新上述目前影磚所對應的壓縮碼緩衝區段710。若上述壓縮碼緩衝區段710中的碼是非第二形態碼,則上述步驟需將此碼更新為第二形態碼,並且上述步驟須更新此碼之後七比特以便指明須自上述Z緩衝區段202讀取多少筆紀錄。於上述碼被更新完畢後,關於上述目前影磚的Z處理是完全結束。
根據以上述的方式,Z處理是為一非常節省Z緩衝區流量的過程,所有可能產生Z緩衝區流量的處皆已避免(例如處理大型影原以及位於初始狀態的影磚)。甚至於當存取Z緩衝區時,流量皆是因Z值相關資訊為壓縮形態(當壓縮形態為最經濟時)的緣故而減至最少。透過上述方式以最小化Z緩衝區流量,系統的整體性能表現會顯著提升。
顯然地,依照上面實施例中的描述,本發明可能有許多的修正與差異。因此需要在其附加的權利要求項的範圍內加以理解,除了上述詳細的描述外,本發明還可以廣泛地在其他的實施例中施行。上述僅為本發明的較佳實施例而已,並非用以限定本發明的申請專利範圍;凡其它未脫離本發明所揭示的精神下所完成的等效改變或修飾,均應包含在本發明的申請專利範圍內。
權利要求
1.一減少Z緩衝區流量的方法,其特徵在於,該減少Z緩衝區流量的方法包含接收一目前影原的資訊;將該目前影原描繪至一影磚,且該影磚具有一相對應於該影磚的緩衝區段以儲存該影磚的資訊;判斷該影磚是否被一大型影原所完全包含;以及當該判斷結果是為該影磚被一大型影原所完全包含時,自一區域儲存區而非自該相對應的緩衝區段獲得該影磚的資訊,由此以減少Z緩衝區流量。
2.如權利要求1所述的減少Z緩衝區流量的方法,其特徵在於,其中上述的判斷動作還包含處理一相對應於該影磚的碼以判斷該影磚是否被一大型影原所完全包含。
3.如權利要求1所述的減少Z緩衝區流量的方法,其特徵在於,其中上述的自該區域儲存區所獲得的該影磚的資訊包含一壓縮形態的資訊。
4.如權利要求3所述的減少Z緩衝區流量的方法,其特徵在於,其中上述的影磚包含一個或一個以上的像素,且該壓縮形態的資訊是可用於推導該影磚中至少一個像素的Z值。
5.如權利要求3所述的減少Z緩衝區流量的方法,其特徵在於,其中上述的壓縮形態的資訊是包含根據差分Z壓縮法所推導而得的Z值相關資訊。
6.如權利要求1所述的減少Z緩衝區流量的方法,其特徵在於,該減少Z緩衝區流量的方法還包含判斷該影磚是否處於初始狀態;以及當判斷結果是為該影磚處於初始狀態時,存取該相對應的緩衝區段。
7.如權利要求6所述的減少Z緩衝區流量的方法,其特徵在於,其中上述的關於該影磚是否處於初始狀態的判斷動作還包含處理一相對應於該影磚的碼以判定該碼是否指出該影磚是處於初始狀態。
8.如權利要求6所述的減少Z緩衝區流量的方法,其特徵在於,其中上述的影磚包含一個或一個以上像素,且該減少Z緩衝區流量的方法還包含當該關於該影磚是否處於初始狀態的判斷結果是為真時,設定一初始Z值至該影磚的一個或一個以上的像素。
9.如權利要求1所述的減少Z緩衝區流量的方法,其特徵在於,該減少Z緩衝區流量的方法還包含當該判斷結果是為該影磚是未被一大型影原所完全包含時,自該相對應的緩衝區段獲得該影磚的資訊。
10.如權利要求1所述的減少Z緩衝區流量的方法,其特徵在於,該減少Z緩衝區流量的方法還包含判斷該目前影原是否為一大型影原;判斷該目前影原是否完全包含該影磚;以及當該判斷結果是為該目前影原確是為一大型影原且該目前影原完全包含該影磚時,將一該影磚的更新資訊儲存於該區域儲存區而非該相對應的緩衝區段中。
11.如權利要求10所述的減少Z緩衝區流量的方法,其特徵在於,該減少Z緩衝區流量的方法還包含更新一相對應於該影磚的碼以指明該影磚被一大型影原完全包含。
12.如權利要求10所述的減少Z緩衝區流量的方法,其特徵在於,該減少Z緩衝區流量的方法還包含當該判斷結果是為該目前影原是非一大型影原,或該目前影原未完全包含該影磚,或該目前影原既是非一大型影原且亦未完全包含該影磚時,則將該影磚的更新資訊儲存於該相對應的緩衝區段中。
13.如權利要求10所述的減少Z緩衝區流量的方法,其特徵在於,其中上述的目前影原是屬於一目前影格,且該減少Z緩衝區流量的方法還包含根據該目前影格內的影原的尺寸決定用以界定一後續影格中的大型影原的一臨界值。
14.一減少Z緩衝區流量的圖形處理機制,其特徵在於,該減少Z緩衝區流量的圖形處理機制包含一用以接收一目前影原的資訊的機制;一用以將該目前影原描繪至一影磚的機制,該影磚具有一相對應於該影磚的緩衝區段以儲存該影磚的資訊;一用以判斷該影磚是否被一大型影原所完全包含的機制;以及一機制以當該判斷結果是為該影磚被一大型影原所完全包含時,自一區域儲存區而非該相對應的緩衝區段獲得該影磚的資訊,藉此以減少Z緩衝區流量。
15.如權利要求14所述的減少Z緩衝區流量的圖形處理機制,其特徵在於,其中上述的用以判斷該影磚是否被一大型影原所完全包含的機制還包含一機制以處理一相對應於該影磚的碼並據以判斷該影磚是否被一個大型影原所完全包含。
16.如權利要求14所述的減少Z緩衝區流量的圖形處理機制,其特徵在於,其中上述的自該區域儲存區所獲得的該影磚的資訊包含一壓縮形態的資訊。
17.如權利要求14所述的減少Z緩衝區流量的圖形處理機制,其特徵在於,該減少Z緩衝區流量的圖形處理機制還包含一判斷該影磚是否處於初始狀態的機制;以及一機制以當該判斷結果是為該影磚確是處於初始狀態時存取該相對應的緩衝區段。
18.如權利要求14所述的減少Z緩衝區流量的圖形處理機制,其特徵在於,該減少Z緩衝區流量的圖形處理機制還包含一機制以當該判斷結果是為於該影磚是未被一大型影原所完全包含時,自該相對應的緩衝區段獲得該影磚的資訊。
19.如權利要求14所述的減少Z緩衝區流量的圖形處理機制,其特徵在於,該減少Z緩衝區流量的圖形處理機制還包含一判斷該目前影原是否為一大型影原的機制;一判斷該目前影原是否完全包含該影磚的機制;以及一機制以當該判斷結果是為該目前影原確是為一大型影原且該目前影原完全包含該影磚時,將一該影磚的更新資訊儲存於該區域儲存區而非該相對應的緩衝區段中。
全文摘要
本發明由於圖形處理中使用一壓縮機制以減少Z緩衝區內儲存的資訊量,並據此減少Z緩衝區流量。上述的壓縮機制可為一差分Z壓縮機制,其是於Z緩衝區內儲存差分向量而非實際的Z值,其中上述的差分向量可於稍後推導得知Z值。以差分向量取代實際Z值後,本發明所提供的壓縮機制是可大幅減少需要儲存於Z緩衝區的資訊量,據此,當需要自Z緩衝區讀取或寫入的資訊量減少後,則Z緩衝區的流量亦隨的減少。若欲更進一步減少Z緩衝區流量,則可將某些差分向量儲存於圖形處理機制的區域儲存區,而非Z緩衝區。將部分差分向量儲存於區域儲存區是可避免自Z緩衝區讀取或寫入差分向量,據此可更進一步減少Z緩衝區流量。
文檔編號G06T15/00GK1560797SQ20041005770
公開日2005年1月5日 申請日期2004年8月11日 優先權日2003年8月25日
發明者廖群峰, 洪洲 申請人:威盛電子股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀