TW201423665A - 模板資料壓縮系統以及運用此系統的方法與圖形處理單元 - Google Patents
模板資料壓縮系統以及運用此系統的方法與圖形處理單元 Download PDFInfo
- Publication number
- TW201423665A TW201423665A TW102125074A TW102125074A TW201423665A TW 201423665 A TW201423665 A TW 201423665A TW 102125074 A TW102125074 A TW 102125074A TW 102125074 A TW102125074 A TW 102125074A TW 201423665 A TW201423665 A TW 201423665A
- Authority
- TW
- Taiwan
- Prior art keywords
- template
- group
- value
- frame buffer
- code frame
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本發明提供壓縮模板資料管理者(attendant)以顯像影像之系統及方法。在一具體實施例中,該方法包括:(1)選擇一關於特定群組的模板基值;(2)選擇該特定群組中每個樣本的單一位元差量值;及(3)儲存該模板基值和該等差量值在碼框緩衝器中。
Description
本申請案一般關於圖形處理,尤其關於模板資料壓縮。
在像素的螢幕上顯像電腦產生的影像需要數個步驟。現有技術中,首先將影像分解成許多基元物件(primitive objects),最常見係三角形。隨後將每個三角形轉換為螢幕對齊(screen-alighed)的座標系統。其後,在掃描場化(rasterization)程序中將每個三角形分成片段(fragments)。每個片段皆對應於該三角形所涵蓋的每個螢幕像素。
每個片段具有與其相關聯的許多資料項,包括一或多個色彩、深度和模板值。該等色彩值係用於建立該等片段的色彩。該等深度值係用於判定在螢幕(z緩衝(z-buffering))上將可見哪些片段。該等模板值係用於判定將顯像(render)哪些片段。(由於z緩衝與模板密切相關,故通常將深度和模板值儲存於相同緩衝器中。)若判定該片段可適當地顯像及可見,則將該等片段色彩、深度和模板值寫入顯示記憶體。
一般場景(scene)係由許多三角形組成。由於每個三角形
涵蓋一些像素,故寫入該顯示記憶體片段的數目可能會很龐大。舉例來說,場景可由1,000,000個三角形組成,其中每個三角形可涵蓋50個像素。若該場景1秒被顯像60次,則每秒必須產生、處理及發送3,000,000,000個片段至碼框緩衝器(frame buffer)。
若每個此片段攜帶大約10個位元組的資料,則每秒必須處理
及儲存3百億個位元組(30Gbytes)的資料。再者,許多應用程式使以算術模式混合新近顯像的片段與碼框緩衝器的內容,加倍必須來回傳送至該碼框緩衝器的資料。
若執行防止折疊(anti-aliasing),則會加重前述問題。在最
普遍的防止折疊演算法(採樣(supersampling)和多重採樣(multisampling))中,多個片段是經過計算及儲存於每個螢幕像素的碼框緩衝器中,以縮小該經顯像的影像中的採樣誤差(參見美國專利編號No.6,072,500)。使用這些技術的防止折疊因此增加與每個像素樣本數目成比例之圖形系統的片段處理階段施加的負荷。
處理大量片段會因各種因素而有困難度。讀及寫像素資料的
碼框緩衝器存取需要大量的碼框緩衝器頻寬。因此,在許多系統中,可使用的碼框緩衝器頻寬限制片段處理速率。同樣地,在圖形系統的內部階段之間傳送該等片段在片段處理階段要求高內部頻寬,其亦傾向限制片段處理速率。同樣地,當其行經圖形系統時處理該等片段占用大量的處理能力,例如對於模板、z緩衝或alpha混合。可使用的處理能力亦可能限制片段處理速率。
一個態樣提供一種模板壓縮方法。在一具體實施例中,該方法包括:(1)選擇特定群組的一模板基值;(2)選擇該特定群組中的每個樣本的單一位元差量值(single-bit delta value);及(3)將該模板基值和該等差量值儲存於碼框緩衝器中。
另一態樣提供一種資料壓縮系統。在一具體實施例中,該系統包括:(1)一掃描場解析器(rasterizer),其配置成選擇特定群組的8位元基值,且進一步選擇該特定群組中的樣本的單一位元差量值;及(2)一碼框緩衝器,其配置成儲存該基值和該等差量值,其中涉及該特定群組的運算可在無需其間的解壓縮便可對該基值和該等差量值之至少一者進行。
又另一態樣提供一種圖形處理單元(GPU,graphics processing unit)。在一具體實施例中,該GPU包括:(1)一幾何處理單元(geometry stage),其配置成將基元(primitives)轉換為螢幕對齊的座標系統;(2)一掃描場解析器,其耦接於該幾何處理單元並配置成計算每個該等基元所涵蓋的每個像素的片段,將該等像素分成群組,選擇特定群組的模板基值,並選擇該特定群組中的每個樣本的單一位元差量值;及(3)一碼框緩衝器,該碼框緩衝器耦接該掃描場解析器並配置成若該特定群組係可壓縮則儲存該特定群組的該模板基值和該等差量值,且進一步配置成若該特定群組係不可壓縮則儲存該特定群組的未經壓縮的模板資料,而不是該基線模板值和該等差量值。
101‧‧‧主機處理器
102‧‧‧接線;互連線
103‧‧‧圖形子系統;圖形系統
104‧‧‧顯示裝置;顯示器
201‧‧‧幾何處理單元
202‧‧‧掃描場解析器
203‧‧‧著色器
204‧‧‧樣本擴充階段;採樣擴充階段
205‧‧‧掃描場處理器
206‧‧‧碼框緩衝器
207‧‧‧視頻刷新單元
301a、301b‧‧‧樣本遮罩
302a、302b‧‧‧像素
304‧‧‧基元
306‧‧‧多重採樣
308‧‧‧兩樣本多重採樣
310‧‧‧四樣本多重採樣
402‧‧‧碼框緩衝器
404‧‧‧標籤記憶體
406‧‧‧群組;色彩物件
408‧‧‧標籤位元;壓縮格式物件
510、520、530、540、550、560、570‧‧‧步驟
600‧‧‧2x4群組;群組
601、602、603、604、605、606、607、608‧‧‧樣本
610、710、810‧‧‧第一三角形
620、720、820‧‧‧第二三角形
630‧‧‧第三三角形
640‧‧‧第四三角形
現將參考下面連同附圖的說明,其中:圖1為圖形電腦之一具體實施例的區塊圖;圖2為圖1的圖形子系統之一具體實施例的區塊圖;圖3顯示兩樣本多重採樣和四樣本多重採樣之可能樣本圖案;圖4例示圖2的碼框緩衝器的內容和相關的標籤記憶體;圖5為模板資料壓縮方法之一具體實施例的流程圖;圖6為涉及三角形扇形模板資料壓縮之第一範例的圖示;圖7為涉及簡單三角形重疊的模板資料壓縮之第二範例的圖示;圖8為涉及複合三角形重疊的模板資料壓縮之第三範例的圖示。
如上述,處理大量片段會因各種因素而有困難度,因此存在有對於當片段行經圖形系統時壓縮片段及以壓縮格式儲存該等經壓縮片段的圖形處理技術之需要。
現有技術中的模板演算法使用某類型的「計數(counting)」,例如OpenGL圖形系統中的包覆增量(wrapping increment)(incr_wrap)或包覆減量(wrapping decrement)(decr_wrap)運算,將螢幕劃分為兩個區域。舉例來說,模板陰影體(volumes)藉由計數透過三角形從光源擠壓的平截頭體(frustums)的正面和背面將螢幕劃分為「亮(lit)」和「暗
(shadowed)」區域。模板隨後涵蓋路徑顯像藉由計算基本上藉由計數正面和背面三角形的捲繞(winding)數目將螢幕劃分為「路徑內部(inside the path)」和「路徑外部(outside the path)」區域。剪影(Silhouette)演算法可抖動(jitter)一特定的剪影幾何形狀,及計數該經抖動的幾何形狀的邊緣碰觸每個像素多少次,其中剪影邊緣具有的值域介於0<s(x,y)<N範圍。
這些模板演算法具有的共同之處在於幾何形狀本身可為複
合(complex)(且或許包含「薄片(slivery)」三角形,其在螢幕空間中具有一非常小銳角的三角形),然而整體場景具有需要壓縮的高度相干模板值。
某些設計目標是係關連於系統和方法的特定具體實施例。首
先,系統和方法之的特定具體實施例應能夠顧及大部分(如果不能全部)薄片三角形。其次,系統和方法之特定具體實施例應能運用於面積/功率有效率的硬體實作。第三,無需額外功能單元便能以增加的速率執行模板運算或測試。因此,於文中所引用系統和方法之各種具體實施例可藉由採用全樣本(full sample)解析度顧及大部分薄片三角形,由於其無需例如解壓縮和重新壓縮的額外功能單元,即將普遍模板運算調適為簡單位元操控,故適合面積/功率有效率(area/power efficient)的硬體實作。在各種所例示並說明的具體實施例中,於文中所引用的模板資料壓縮系統和方法具有4:1頻寬壓縮、8:1模板運算加速、和4:1或8:1模板測試加速。系統和方法之具體實施例進一步施行於許多普遍的模板演算法(例如模板陰影體顯像(SSV、Stencil Shadow Volumes)、Nvidia路徑顯像(NVpr)和延遲顯像)。
以下將詳細說明的具體實施例將八個8位元模板值的「群組
(group)」壓縮為一個8位元基值和八個1位元無符號差量值(視為遮罩(mask)),產生4:1壓縮比。在z緩衝電路使用32個位元組(B)「子封包(subpacket)」粒度(granularity)與二階快取記憶體和碼框緩衝器形成界面的範例GPU架構中,這兩8位元群組中的16個可在每個子封包中通信,表示每個子封包有128個模板樣本。在各種具體實施例中,不論GPU正運算的全場景防止折疊(full scene anti-aliasing,FSAA)模式,群組的大小可維持在八個8位元模板值。
於文中應可理解,資料壓縮和方法不僅可採用涉及不是模板
資料的整數(integer)資料,而且當涉及非模板整數資料執行的運算有特別效益,使得無需解壓縮和重新壓縮(例如incr_wrap和decr_wrap運算)。因此,資料壓縮和方法之某些具體實施可針對除了非模板資料之外的資料進行壓縮。
在例示及說明模板資料壓縮系統和方法之各種具體實施例以前,將例示及說明於其中可運算系統和方法之代表性環境。圖1顯示根據一具體實施例之一圖形電腦的方塊圖。如圖所示,主機處理器101儲存及執行應用程式。此應用程式透過一接線102發送圖形命令給圖形子系統103。互連線102可為與其他I/O(input/output,輸入/輸出)裝置共享的通用匯流排(例如PCI(Peripheral Component Interconnect,周邊組件互連)匯流排)或為專用圖形匯流排(例如AGP(Accelerated Graphics Port,加速圖形埠)匯流排)之任一者。當然,可使用任何類型的互連線102。在使用上,圖形子系統103可接收圖形命令並作為回應不是更新其內部狀態就是將主機處理器101所描述的基元顯像於顯示裝置104。
圖2例示顯示圖1的圖形子系統103的內部結構的更詳細的圖
示。如圖所示,提供將基元轉換為螢幕對齊的座標系統的幾何處理單元201。幾何處理單元201亦可移除落於顯像面積外部的基元部分(裁剪(clipping))。幾何處理單元201可執行諸如照明的其他計算以判定描述基元的每個頂點的色彩。
該等經轉換的頂點形成掃描場解析器202的輸入。掃描場解
析器202計算該等基元之每一者所涵蓋的每個像素的片段。隨同該片段一起儲存的涵蓋遮罩指示該片段涵蓋哪些像素部分。
亦包括例如藉由將紋理圖(texture maps)或著色器(shader)
程式施行於該片段計算最後片段的著色器203。樣本擴充階段204隨後產生每個片段的多個樣本。
圖3例示多重採樣的效果。該樣本擴充階段接收包含掃描場
解析器202所計算的樣本遮罩(301a和301b)的片段。該等樣本遮罩內的涵蓋位元指示基元304涵蓋像素(302a和302b)內的哪些樣本。採樣擴充階段204產生樣本遮罩中的每個所涵蓋樣本的新樣本片段。多重採樣306的程序調整片段深度值以近似像素中的每個樣本位置的實際深度值。片段內的全部樣本皆攜帶相同色彩。圖3顯示兩個樣本多重採樣308和四個樣本多重採樣310可能的樣本圖案。當然,可選擇其他樣本圖案,以及每像素具有不同樣本數目的圖案。
在多重採樣之後,將該等個別樣本發送至掃描場處理器
205,宛如其為有規律的片段。該掃描場處理器205在該等片段上執行各種運算,包括z模板測試和色彩或alpha混合。此可能需求掃描場處理器205讀
取碼框緩衝器206以取回目標Z或目標色彩。為此,將最後像素色彩和Z寫回碼框緩衝器206。
當場景中的全部基元皆已以此方式顯像時,視頻刷新單元
207掃描碼框緩衝器206的內容並發送至顯示器104。在經多重採樣的色彩緩衝器的情況下,向下濾波(downfiltered)(高解析度)多重採樣影像至顯示解析度。可以在掃描和顯示的程序期間完成向下濾波。或者,在顯示之前能以分開的運算完成向下濾波。
在一具體實施例中,除了碼框緩衝器206之外,圖形系統103
的全部前述組件皆位於單一半導體平台上。當然,亦可依使用者所需分開或以半導體平台的各種組合設置各種模組。如於文中所使用,「單一半導體平台(single semiconductor platform)」可指稱單獨的個體半導體型積體電路或晶片。應注意,術語「單一半導體平台(single semiconductor platform)」亦可視為具有經增加的連接度的多晶片模組,其模擬晶載運算並透過使用慣用的中央處理單元(central processing unit,CPU)和匯流排實施進行實質改良。
通常,碼框緩衝器206具有動態隨機存取記憶體(dynamic random access memory,DRAM)的形式。將此DRAM構成儲存位元的矩陣。讀或寫存取相同列的位元可比讀或寫存取不同列的位元更有效率。在一較佳具體實施例中,碼框緩衝器206內資料的構成使得4×4樣本「集(sets)」可儲存在相同DRAM排和列中的鄰接位址。
在本說明書描述內容的上下文中,此樣本集可包括一直線(rectilinear)的樣本集、一慣用的「磚(tile)」或任何其他想要的樣本分組。
作為選項,複數個該等樣本集可形成單一碼框,使得當一影像逐片組裝時,可傳送樣本集。
片段的處理的構成使得一特定群組中的樣本片段一起收集
及處理,以更充分利用以較快時間存取群組中的像素。雖然為了達成此而可採用各種技術,但可在2000年6月13日由馬瓦霍夫斯基等人之美國專利編號No.6,075,544中找到一種適合的技術。
在本說明書描述中,可假設群組為2×4樣本鄰域
(neighborhoods),亦即以八個像素(當正採用防止折疊時的八個樣本)的群組處理樣本片段。然而,應注意,較大與較小的群組大小是可能的,且在特定情況可能較佳。
舉例來說,樣本集的大小取決於碼框緩衝器的交易
(transaction)大小。碼框緩衝器的此交易大小可為碼框緩衝器能以有效率方式讀及寫的資料大小。
圖4例示碼框緩衝器402的內容和一相關的標籤記憶體404。
對於儲存於碼框緩衝器402中的每個群組406而言,一標籤位元408配置於該標籤記憶體中。此標籤記憶體可以或不可常駐於有關圖形子系統103的晶片上。標籤記憶體中的每個位元儲存相關碼框緩衝器群組的壓縮狀態(包括模板資料壓縮狀態)。此允許碼框緩衝器用戶端(例如掃描場處理器205或視頻刷新單元207)適當解譯碼框緩衝器206的內容。進一步顯示係某些群組需要充分經配置的記憶體空間,而某些群組則需要部分經配置的記憶體空間,如以上所述。
應注意,不是每個群組皆係可壓縮。在某些應用程式中,大
部分或全部群組將可壓縮。在其他應用程式中,可能沒有可壓縮者。由於無法保證多少個群組將壓縮,故碼框緩衝器402空間的配置要考慮到全部不可壓縮群組的最壞可能情況。
因此,提供一資料結構,該資料結構包括具色彩資訊的色彩
物件(亦即406)、及有關該等色彩物件的壓縮格式物件(亦即408)。該等壓縮格式物件因此能夠識別在色彩物件上所實現的壓縮類型(無、類型1、等其他)。在使用上,壓縮格式物件能夠用於解壓縮色彩物件。
壓縮格式物件408因此作為識別碼,用於指示樣本是否經壓
縮,且若如此,同時關於什麼類型的壓縮。此亦可使用格式碼達成。作為選項,該識別碼和/或格式碼可儲存於壓縮樣本中。
藉由使標籤位元與記憶體位址空間的選定部分產生關聯
性,而不是與一用戶端(例如掃描場處理器)所存取的特定緩衝器產生關聯性,任何用戶端皆可存取經壓縮或可壓縮的資料,使得這些用戶端不需要知道儲存於記憶體中的資料經壓縮。若要更多有關如何透通從其他用戶端存取的詳細資訊,請參見美國專利申請編號No.09/687,036。
前面已說明系統和方法可運算的代表性環境,現將例示及說
明模板資料壓縮方法的各種具體實施例。因此,圖5為模板資料壓縮方法之一具體實施例的流程圖。該方法是從步驟510開始,一群組將被定義為特定數目的像素。在步驟520,選擇一用於該特定群組的模板基值。在步驟530,選擇該特定群組中每個像素的單一位元差量值。在一具體實施例中,群組大小為八個樣本且模板基值為8位元值。八個差量值對應於群組中的八個樣本,產生總共16位元以表示該群組。從下面顯而易見,該等八個差量值當
作至少某些模板運算的「遮罩(mask)」使用。在步驟540,將模板基值和差量值儲存於碼框緩衝器中。在另一具體實施例中,由於群組中像素間的劇烈模板值變化,則儲存群組的未經壓縮的模板資料,而不是不可壓縮群組的模板基值和差量值。
若碼框緩衝器中已儲存該群組的模板基線和差量值或(選擇
性地)未經壓縮的模板資料之任一者,在步驟550中,在一有關碼框緩衝器的標籤記憶體中可設置或清除一對應標籤。在步驟560,使用碼框緩衝器執行涉及群組一或多個模板運算或測試。若碼框緩衝器包含群組的未經壓縮的模板資料,則對未經壓縮的模板資料直接執行運算或測試。另一方面,若碼框緩衝器包含群組的(經壓縮)模板基值和差量值,則無需解壓縮可對模板基值和差量值直接執行該等運算或測試。在一具體實施例中,該等一或多個模板運算涉及更新群組的經壓縮模板資料。於文中所述的該等方法壓縮模板資料使得可以對經壓縮的模板基值和差量值直接更新,而不需要在更新之前,解壓縮模板資料;及在更新之後,重新壓縮模板資料。該方法是在結束步驟570之後終止。
模板資料壓縮系統的各種具體實施例採用例如有關圖1至圖
4所述類型的硬體實現上述方法的各種具體實施例。然而,熟習此項切合技術者應應了解,硬體或微碼、韌體或軟體程式的任何組合可實現於文中所述方法,不致悖離本發明之廣泛範疇。若以微碼、韌體或軟體程式具體實施,則此程式的軟體指令可表示演算法,且能以機器可執行的形式在非暫時性數位資料儲存媒體上進行編碼,例如磁性或光學磁碟、隨機存取記憶體(random-access memory,RAM)、磁性硬碟、快閃記憶體和/或唯讀記憶
體(read-only memory,ROM),以使各種類型的數位資料處理器或電腦能夠執行一或多個該等上述方法的該等之一、多個或全部步驟,例如圖5的方法之該等一個或多個步驟,或於文中所述的功能。
以下表1-3提出虛擬碼(Pseudocode),例如,包覆增量(incr_wrap)、包覆減量(decr_wrap)、以及可對於經壓縮的模板基值和差量值直接(亦即無需先前解壓縮)執行的置換(Replace)演算法。在每種情況下,單一位元差量值皆允許增量、減量和置換運算,其為能以如同對於群組內的8位元差量值或「遮罩(mask)」的按位元運算之直接方式實施的普遍模板運算。然而,熟習此項切合技術者應了解,本發明不限於表1-3的該等範例。尤其是,某些具體實施例顧及寫遮罩(writemask)以及於文中所採用的倒轉(INVERT)和零(ZERO)運算的特定其他值。
表1-3的該等範例演算法假設唯一的其他模板運算係KEEP、wmask=0xFF,且在特定實作中能以8x速率運行。
以下表4提出範例模板測試演算法的虛擬碼。在一具體實施例中,模板測試演算法能夠於每八個樣本群組施行兩測試,故因此能以4x速率運行,且當samplegroupmask=0時,進一步可為快速路徑(fast-path)。
解壓縮和壓縮亦相當簡單,如在表5和表6中的虛擬碼所示。如上述,慣用的模板壓縮技術涉及壓縮的調色板方案(palette schemes),解壓縮和重新壓縮需要在任何模板測試或運算之前和之後執行。使用調色板(palette)方案的重新壓縮在計算上成本較高,且在最壞情況下很難做到,因為可能需求來自碼框緩衝器的其他未經壓縮的資料。相對而言,由於本發明實施例中該等壓縮/解壓縮技術利用差量值為單一位元,故使其變得有效率。比較是較簡單,在壓縮中可以避開大部分加法器,且在解壓縮中可以完全避開加法器。
已說明模板資料壓縮系統和方法的各種具體實施例,現將提
出其應用程式的三個範例。第一範例(圖6)涉及三角形扇形;第二範例(圖7)涉及簡單三角形重疊;及第三範例(圖8)涉及複合三角形重疊。圖6至圖8全部涉及八個樣本的2x4群組600。
圖6為涉及三角形扇形的模板資料壓縮之第一範例的圖示。
由於扇形與樣本群組相交,故每個三角形皆涵蓋某些像素,但值仍然符合模板基值/差量值編碼範圍內。根據表2,一旦充分涵蓋群組,則增量模板基值,且差量值重新設置為零。
在初始階段,模板基值重新設置為0,且差量值重新設置為
00000000b。第一三角形610涵蓋群組600中的樣本601、602、605、606,如如所示。11001100b的結果「輸入涵蓋遮罩(input coverage mask)」在incr_wrap運算中是套用在00000000b的差量值,以產生11001100b的差量值。模板基值維持為0。第二三角形620涵蓋群組600中的樣本603、607。00100010b的
結果輸入涵蓋遮罩在incr_wrap運算中是套用在11001100b的差量值,以產生11101110b的差量值。模板基值維持為0。第三三角形630涵蓋群組600中的樣本604、608。00010001b的結果輸入涵蓋遮罩在incr_wrap運算中是套用在11101110b的差量值,以產生11111111b的差量值,指示群組600為充分涵蓋。
因此,差量值重新設置為00000000b,且模板基值增量為1。一為背面對三角形之第四三角形640僅涵蓋樣本604。00010000b的結果輸入涵蓋遮罩在decr_wrap運算中是套用在00000000b的差量值,以產生11101111b的差量值。同樣地,模板基值減量變成0。
圖7為涉及簡單三角形重疊的模板資料壓縮之第二範例的圖
示。在初始階段,模板基值重新設置為0,且差量值重新設置為00000000b,如同上面的第一範例。第一三角形710涵蓋樣本601、602、605、606。
11001100b的結果輸入涵蓋遮罩在incr_wrap運算中是套用在00000000b的差量值,以產生11001100b的差量值。模板基值維持為0。第二三角形720涵蓋樣本602、603、604、606、607、608。結果01110111b的輸入涵蓋遮罩在incr_wrap運算中是套用在11001100b的差量值,以產生11111111b的差量值,指示群組600充分涵蓋。模板基值增量變成1。然而,當其正產生重疊時在輸入涵蓋遮罩與差量值之間的相較,產生01000100b的差量值。
圖8為涉及複合三角形重疊的模板資料壓縮之第三範例的圖
示。在初始階段,基線模板值重新設置為0,且差量值重新設置為00000000b,如同上面的第一和第二範例。第一三角形810涵蓋樣本601、602、605、606。11001100b的結果輸入涵蓋遮罩是在incr_wrap運算中套用在00000000b的差量值,以產生11001100b的差量值。模板基值維持為0。第
二三角形820涵蓋樣本602、603、604、606、607。樣本608維持未遮蔽。01110110b的結果的輸入涵蓋遮罩在incr_wrap運算中是套用在11001100b的差量值。不幸地,群組內的差量值超過可以單一位元表示的範圍。此超過的模板值變化需要解壓縮群組用於執行進一步的模板運算,及未來壓縮取消群組的資格。
熟習與此申請案相關的此項技術者顯然應明白,可對所描述具體實施例的其他及進一步附加、刪除、代換與修改。
Claims (10)
- 一種資料壓縮系統,包括:一掃描場解析器(rasterizer),其配置成選擇一特定群組的一8位元基值,且進一步選擇在該特定群組中樣本的單一位元差量值(single-bit delta values);及一碼框緩衝器(frame buffer),其配置成儲存該基值和該差量值,其中涉及該特定群組的運算無需其間的解壓縮便可於該基值和該等差量值之至少一者執行。
- 如申請專利範圍第1項之系統,其中該特定群組的大小為八個樣本。
- 如申請專利範圍第1項之系統,其中該碼框緩衝器更配置成當該特定群組為不可壓縮時,儲存該特定群組的未經壓縮的模板資料在該碼框緩衝器中,而不是該模板基值和該等差量值。
- 如申請專利範圍第1項之系統,其中該掃描場解析器更配置成在有關該碼框緩衝器的一標籤記憶體中設置一對應標籤。
- 如申請專利範圍第1項之系統,其中該掃描場解析器更配置成利用該碼框緩衝器,對該模板基值和該差量值直接執行有關該特定群組的至少一個模板運算。
- 如申請專利範圍第5項之系統,其中該至少一模板運算係選自下列群組,包括:一包覆增量(wrapping increment)運算,一包覆減量(wrapping decrement)運算;及一更換(replace)運算。
- 如申請專利範圍第1項之系統,其中該差量值功能作為一用於位元運算的遮罩(mask)。
- 一種圖形處理單元(graphics processing unit),包括:一幾何處理單元(geometry stage),其配置成將基元(primitives)轉換為一螢幕對齊的座標系統;一掃描場解析器,該掃描場解析器耦接該幾何處理單元,且配置成計算由該等基元之每一者所涵蓋的每個像素的一片段(fragment),將該像素分成群組,選擇一特定群組的模板基值,以及選擇在該特定群組中的每個樣本之單一位元差量值;及一碼框緩衝器,該碼框緩衝器耦接該掃描場解析器,並配置成若該特定群組為可壓縮,則儲存該特定群組的該模板基值和該差量值,且進一步配置成若該特定群組為不可壓縮,儲存該特定群組的未經壓縮的模板資料,而不是該模板基值和該差量值。
- 如申請專利範圍第8項之圖形處理單元,其中該特定群組之一大小為 八個樣本且該基線模板值為一8位元值。
- 如申請專利範圍第8項之圖形處理單元,其中該掃描場解析器進一步配置成在有關該碼框緩衝器之一標籤記憶體中設置一對應標籤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/547,362 US9437025B2 (en) | 2012-07-12 | 2012-07-12 | Stencil data compression system and method and graphics processing unit incorporating the same |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201423665A true TW201423665A (zh) | 2014-06-16 |
Family
ID=49781598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102125074A TW201423665A (zh) | 2012-07-12 | 2013-07-12 | 模板資料壓縮系統以及運用此系統的方法與圖形處理單元 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9437025B2 (zh) |
CN (1) | CN103546159A (zh) |
DE (1) | DE102013011608A1 (zh) |
TW (1) | TW201423665A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9582847B2 (en) * | 2013-04-22 | 2017-02-28 | Intel Corporation | Color buffer compression |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4737921A (en) | 1985-06-03 | 1988-04-12 | Dynamic Digital Displays, Inc. | Three dimensional medical image display system |
US5684939A (en) | 1993-07-09 | 1997-11-04 | Silicon Graphics, Inc. | Antialiased imaging with improved pixel supersampling |
US6016150A (en) | 1995-08-04 | 2000-01-18 | Microsoft Corporation | Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers |
US6075544A (en) | 1998-04-06 | 2000-06-13 | Nvidia | Method and apparatus for accelerating rendering by coalescing data accesses |
US6961057B1 (en) | 2000-10-12 | 2005-11-01 | Nvidia Corporation | Method and apparatus for managing and accessing depth data in a computer graphics system |
US6825847B1 (en) * | 2001-11-30 | 2004-11-30 | Nvidia Corporation | System and method for real-time compression of pixel colors |
US6774895B1 (en) * | 2002-02-01 | 2004-08-10 | Nvidia Corporation | System and method for depth clamping in a hardware graphics pipeline |
US6876362B1 (en) | 2002-07-10 | 2005-04-05 | Nvidia Corporation | Omnidirectional shadow texture mapping |
US7248261B1 (en) * | 2003-12-15 | 2007-07-24 | Nvidia Corporation | Method and apparatus to accelerate rendering of shadow effects for computer-generated images |
US7030878B2 (en) * | 2004-03-19 | 2006-04-18 | Via Technologies, Inc. | Method and apparatus for generating a shadow effect using shadow volumes |
US8711155B2 (en) * | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US7277098B2 (en) | 2004-08-23 | 2007-10-02 | Via Technologies, Inc. | Apparatus and method of an improved stencil shadow volume operation |
US7659893B1 (en) | 2006-10-02 | 2010-02-09 | Nvidia Corporation | Method and apparatus to ensure consistency of depth values computed in different sections of a graphics processor |
WO2008073798A2 (en) | 2006-12-08 | 2008-06-19 | Mental Images Gmbh | Computer graphics shadow volumes using hierarchical occlusion culling |
US8184117B2 (en) * | 2007-05-01 | 2012-05-22 | Advanced Micro Devices, Inc. | Stencil operations |
US8605086B2 (en) * | 2008-07-03 | 2013-12-10 | Nvidia Corporation | Hybrid multisample/supersample antialiasing |
GB0819570D0 (en) * | 2008-10-24 | 2008-12-03 | Advanced Risc Mach Ltd | Methods of and apparatus for processing computer graphics |
-
2012
- 2012-07-12 US US13/547,362 patent/US9437025B2/en active Active
-
2013
- 2013-07-12 TW TW102125074A patent/TW201423665A/zh unknown
- 2013-07-12 DE DE102013011608.2A patent/DE102013011608A1/de active Pending
- 2013-07-12 CN CN201310294091.XA patent/CN103546159A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102013011608A1 (de) | 2014-01-16 |
US20140015843A1 (en) | 2014-01-16 |
US9437025B2 (en) | 2016-09-06 |
CN103546159A (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8605086B2 (en) | Hybrid multisample/supersample antialiasing | |
US8704830B2 (en) | System and method for path rendering with multiple stencil samples per color sample | |
JP4987988B2 (ja) | 画像の圧縮及び/又は復元 | |
US8605087B2 (en) | Hybrid multisample/supersample antialiasing | |
US10878527B2 (en) | Variable resolution graphics processing | |
US7015914B1 (en) | Multiple data buffers for processing graphics data | |
US8547382B2 (en) | Video graphics system and method of pixel data compression | |
US7932914B1 (en) | Storing high dynamic range data in a low dynamic range format | |
US7804499B1 (en) | Variable performance rasterization with constant effort | |
BR112019012641B1 (pt) | Método e dispositivo para renderização foveation, e memória legível por computador | |
KR101009557B1 (ko) | 하이브리드 멀티샘플/수퍼샘플 안티에일리어싱 | |
US9396515B2 (en) | Rendering using multiple render target sample masks | |
US11521342B2 (en) | Residency map descriptors | |
US11532115B2 (en) | Data structures, methods and tiling engines for storing tiling information in a graphics processing system | |
KR20180023856A (ko) | 그래픽 처리 시스템 및 그래픽 프로세서 | |
KR100546383B1 (ko) | 눈에 보이지 않는 프래그먼트를 처리하기 위한 3차원그래픽스 렌더링 엔진 및 그 방법 | |
US10269168B2 (en) | Graphics processing systems | |
TW201423665A (zh) | 模板資料壓縮系統以及運用此系統的方法與圖形處理單元 | |
US12026798B2 (en) | Variable resolution graphics processing |