提供用于在3D計算機圖形系統(tǒng)中壓縮頂點參數(shù)數(shù)據(jù)的方法和設(shè)備,其中頂點參數(shù)數(shù)據(jù)是與用于渲染圖形的多個頂點相關(guān)的數(shù)據(jù)塊。與每個頂點相關(guān)的數(shù)據(jù)包括與至少一個參數(shù)相關(guān)的多字節(jié)數(shù)據(jù)。所述參數(shù)包括X、Y和Z坐標(biāo)及用于紋理和著色的其他坐標(biāo)。多字節(jié)數(shù)據(jù)被劃分成單字節(jié)且具有與每個頂點相關(guān)的相應(yīng)字節(jié)位置的字節(jié)被組合在一起以形成多個字節(jié)塊。在一種實施方式中,至少一個字節(jié)塊通過以下步驟被壓縮:將字節(jié)塊中的至少一個字節(jié)存儲為字節(jié)原點并將該字節(jié)塊中剩余字節(jié)中的每個剩余字節(jié)存儲為與其中一個字節(jié)原點的差值。在第二實施方式中,至少一個字節(jié)塊通過以下步驟被壓縮:識別字節(jié)塊中的唯一字節(jié),在字節(jié)增量表中將唯一字節(jié)中的至少一個存儲為原始字節(jié)原點,在字節(jié)增量表中將剩余的唯一字節(jié)存儲為與先前字節(jié)或字節(jié)原點的差值,以及通過參考字節(jié)增量表形成編碼字節(jié)塊中的字節(jié)的字節(jié)索引。還提供用于解壓縮如此壓縮的頂點參數(shù)數(shù)據(jù)的解壓縮設(shè)備。這些能夠隨機訪問壓縮數(shù)據(jù)而不必讀取數(shù)據(jù)流。
【技術(shù)實現(xiàn)步驟摘要】
【國外來華專利技術(shù)】
本專利技術(shù)涉及用于基于圖塊(tile based)的3維計算機圖形系統(tǒng)中參數(shù)數(shù)據(jù)的無損壓縮的方法和裝置。
技術(shù)介紹
隨著技術(shù)的快速發(fā)展,3維計算機生成的圖像的復(fù)雜性也以相同速度增加。人們可以使用頂點和三角網(wǎng)格很容易地為非常復(fù)雜的3D對象(像人類運動)建立計算機模型。然后這種3D模型可以被發(fā)送至3D計算機圖形系統(tǒng),在該系統(tǒng)中,動感的3D圖像可以被生成在計算機屏幕上。計算機生成的3D動感圖像被廣泛地用在3D計算機游戲、導(dǎo)航工具和計算機輔助工程設(shè)計工具中。3D計算機圖形系統(tǒng)必須處理對更復(fù)雜的圖形和更快的顯示速度的不斷需求。隨著顯示模型中細(xì)節(jié)的增加,越來越多的圖形基元(primitive)和頂點被使用。另外,由于紋理和著色(shading)技術(shù)已經(jīng)逐步發(fā)展,尤其隨著可編程著色器(shader)語言的使用,越來越多的信息被關(guān)聯(lián)于頂點數(shù)據(jù)(頂點參數(shù)數(shù)據(jù))。在一些情況中,頂點參數(shù)數(shù)據(jù)大小可以是每個頂點大約100個32位字,并且在圖像的渲染中可能存在百萬個頂點。因此,在3D渲染中頂點參數(shù)數(shù)據(jù)的存儲空間可以很容易地達(dá)到數(shù)百MB。由于3D計算機圖形系統(tǒng)需要處理大量的頂點參數(shù)數(shù)據(jù),該系統(tǒng)的性能經(jīng)常受到頂點參數(shù)數(shù)據(jù)存儲寬帶的限制。對于基于圖塊的3D計算機圖形系統(tǒng)而言尤其如此,其中被寫入內(nèi)部存儲器中的頂點參數(shù)數(shù)據(jù)可以針對不同的圖塊(tile)而被多次讀取,在該不同的圖塊中來自基元的頂點需要執(zhí)行渲染。對于3D計算機圖形系統(tǒng)來說,通過壓縮3D渲染中使用的頂點參數(shù)數(shù)據(jù)來減小頂點參數(shù)數(shù)據(jù)帶寬將是非常有益的。正如本領(lǐng)域技術(shù)人員所知曉的,基于圖塊的3D計算機圖形系統(tǒng)將渲染表面劃分成多個nXm的像素圖塊。如三角形、直線或點的基元僅僅針對與該基元重疊的圖塊而被處理。圖1中示出在基于圖塊的3D計算機圖形系統(tǒng)中用于平鋪(tiling)的主要步驟。在3D渲染中,包含某些共享頂點的基元和在相似位置中的基元可以及時地連續(xù)到達(dá)。為了使對于頂點參數(shù)數(shù)據(jù)的存儲器訪問更有效,基于圖塊的3D計算機圖形系統(tǒng)可以在基元的周圍定義圖塊的邊界框,并根據(jù)邊界框中的圖塊及其包含的基元來限制引入的基元的數(shù)量。這允許來自與這些圖塊重疊的基元的頂點參數(shù)數(shù)據(jù)被一起組合到基元塊中。基元通過索引至這些基元塊中的索引來構(gòu)建。為了控制頂點參數(shù)數(shù)據(jù)的緩沖區(qū)大小,這里通常存在著頂點的最大數(shù)量和包含在基元塊中的基元的最大數(shù)量的限制,例如32個頂點和64個基元。圖2中示出了來自基元塊的數(shù)據(jù)結(jié)構(gòu)。存在著用于基元塊中頂點參數(shù)數(shù)據(jù)的定義(如頂點的數(shù)量和基元的數(shù)量)的位于開始位置處的基元塊報頭字,如圖2中的20所示。在基元塊報頭字之后是來自基元塊中的許多個頂點的頂點參數(shù)數(shù)據(jù),如圖2中的21所示。在該方案中,在3D渲染期間,來自基元塊的一些基元可以被一些圖塊引用,而其他基元可以在其他圖塊中被引用。對基元塊中頂點參數(shù)數(shù)據(jù)的訪問要求對來自數(shù)據(jù)流的基元塊進(jìn)行隨機訪問。而且,基元塊中的頂點參數(shù)數(shù)據(jù)可能被需要用于不同圖塊中的渲染,所以頂點參數(shù)數(shù)據(jù)被一次寫入但可以被多次讀取。對3D頂點參數(shù)數(shù)據(jù)壓縮算法的常規(guī)要求是快速、無損壓縮、以及壓縮和解壓縮算法本身所使用的最小存儲器空間。這是因為要求快速和高質(zhì)量3D計算機圖形系統(tǒng)被實施在集成電路中的小硅面積中。對于基于圖塊的3D計算機圖形系統(tǒng),頂點參數(shù)數(shù)據(jù)壓縮算法的附加要求是具備來自被壓縮數(shù)據(jù)流的隨機數(shù)據(jù)訪問以及解壓縮中快速且簡單的算法的能力。一些常規(guī)無損壓縮算法(如霍夫曼編碼/解碼)需要常規(guī)大小的數(shù)據(jù)緩沖區(qū)以執(zhí)行壓縮。這對于具有有限硅面積的3D計算機圖形系統(tǒng)來說是不合適的。運行長度編碼不需要用于壓縮的額外數(shù)據(jù)緩沖區(qū),但是像其他熵編碼算法,數(shù)據(jù)壓縮在連續(xù)訪問的數(shù)據(jù)流(如視頻顯示中的彩色數(shù)據(jù)流)上被執(zhí)行。如果在基于圖塊的3D計算機圖形系統(tǒng)中被使用,用于基元塊的整個頂點參數(shù)數(shù)據(jù)流必須在任何頂點數(shù)據(jù)可以被訪問之前被解壓縮。這對于基于圖塊的渲染而言是極其低效的,尤其是如果基元塊包含覆蓋許多圖塊的巨大三角形,在這種情況下整個頂點參數(shù)數(shù)據(jù)流被解壓縮許多次,即使來自基元塊的僅一些頂點被使用。通常,頂點參數(shù)數(shù)據(jù)值在3D計算機圖形系統(tǒng)中被存儲為32位浮點值。針對浮點頂點數(shù)據(jù)值使用定點表示可以很好地壓縮基元塊中的頂點數(shù)據(jù)。在定點格式中,浮點值可以由整數(shù)和固定數(shù)量的小數(shù)位一起表示。該方法將引起精確度降低,但是可以在來自頂點的X和Y坐標(biāo)數(shù)據(jù)上很好地工作。因為計算機圖形屏幕上的顯示分辨率被固定為像素單元的一部分,因此來自屏幕上所渲染的基元的X和Y坐標(biāo)被從原始浮點值轉(zhuǎn)換成具有有限分辨率的屏幕值。對于其他頂點參數(shù)數(shù)據(jù)(像用于深度的Z、RHW和紋理坐標(biāo)設(shè)置),數(shù)據(jù)的高精確度必須通過3D顯示管來維持。已渲染圖像中的偽像(artifact)可能由這些頂點參數(shù)數(shù)據(jù)中的表示的被降低精確度而引起。一些頂點數(shù)據(jù)壓縮算法根據(jù)頂點的幾何位置來壓縮頂點參數(shù)數(shù)據(jù)值。例如,頂點被選為三角網(wǎng)格中的原點,頂點參數(shù)數(shù)據(jù)與來自原點頂點的參數(shù)數(shù)據(jù)之間的差值(增量值)被存儲,而不是存儲全部頂點參數(shù)數(shù)據(jù)值。增量值可以由整數(shù)或具有減小的范圍以壓縮數(shù)據(jù)流的定點值表示。此種算法適用于來自三角網(wǎng)格的頂點,其中頂點之間的頂點參數(shù)數(shù)據(jù)值在有限的范圍內(nèi)。壓縮比率與表示增量值所需的位的數(shù)量有關(guān)。如長三角形帶的常用三角網(wǎng)格可以包含具有以下特征的頂點:對于該種頂點,在基元塊中頂點數(shù)據(jù)值的范圍是巨大的。在這種情況中,由于需要許多位來存儲增量值而使得壓縮將是不可能的。為了在基于圖塊的3D計算機圖形系統(tǒng)中降低頂點參數(shù)數(shù)據(jù)存儲帶寬,來自輸入流的所有基元被預(yù)處理以移除屏幕外的、背面的、被修剪的或太小而不能顯示的任何基元。在預(yù)處理之后,剩余基元被合并至具有固定數(shù)量的頂點的基元塊中并被寫入內(nèi)部參數(shù)存儲器中以用于3D處理。因此,基元塊中的頂點并不保證屬于單個三角網(wǎng)格,基元塊中頂點參數(shù)數(shù)據(jù)值的范圍可能太大而不能利用來自頂點原點的增量值進(jìn)行壓縮。
技術(shù)實現(xiàn)思路
本專利技術(shù)的優(yōu)選實施方式包括可以被用于3D計算機圖形頂點參數(shù)數(shù)據(jù)壓縮的無損壓縮方法和系統(tǒng)。其允許圖形頂點參數(shù)數(shù)據(jù)被存儲至較小的存儲器空間中并因此降低圖形設(shè)備的存儲器需求。本專利技術(shù)能夠采用簡單、快速并需要非常有限的存儲緩沖區(qū)的算法。這些算法還使得壓縮后具有固定大小的頂點參數(shù)數(shù)據(jù),從而允許隨機訪問基元塊數(shù)據(jù)流中已壓縮的頂點數(shù)據(jù),這對于基于圖塊的3D計算機圖形系統(tǒng)是特別有益的。在第一方面中,本專利技術(shù)提供一種在3D計算機圖形系統(tǒng)中壓縮頂點參數(shù)數(shù)據(jù)的方法,其中頂點參數(shù)數(shù)據(jù)包括與多個頂點相關(guān)的數(shù)據(jù)塊,該與每個頂點相關(guān)的數(shù)據(jù)包括與至少一個參數(shù)有關(guān)的多字節(jié)數(shù)據(jù),該方法包括以下步驟:將多字節(jié)數(shù)據(jù)劃分成單字節(jié);將來自與每個頂點有關(guān)的數(shù)據(jù)的相應(yīng)字節(jié)組合在一起以形成多個字節(jié)塊;以及使用壓縮方法壓縮字節(jié)塊。這里使用的術(shù)語“相應(yīng)字節(jié)”指的是多字節(jié)數(shù)據(jù)中的字節(jié)位置。因此,用于描述每個頂點的特定參數(shù)的數(shù)據(jù)值的最高有效字節(jié)(MSB)被組合在一起以形成MSB的字節(jié)塊。類似地,用于那個參數(shù)的每個數(shù)據(jù)值的最低有效字節(jié)(LSB)被組合在一起以形成另一個字節(jié)塊。專利技術(shù)人發(fā)現(xiàn)在圖形頂點參數(shù)數(shù)據(jù)中,與完整的多字節(jié)值之間的相關(guān)性相比,多字節(jié)值的相應(yīng)單個字節(jié)之間通常存在更大的相關(guān)性,且因此存在更大的壓縮余地。不同字節(jié)塊可以根據(jù)他們的內(nèi)容使用不同壓縮算法而被壓縮。例如,字節(jié)塊中所有字節(jié)本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點】
【技術(shù)特征摘要】
【國外來華專利技術(shù)】2010.09.10 GB 1015149.61.一種在3D計算機圖形系統(tǒng)中壓縮頂點參數(shù)數(shù)據(jù)的方法,其中所述頂點參數(shù)數(shù)據(jù)包括與多個頂點相關(guān)的數(shù)據(jù)塊,與每個頂點相關(guān)的所述數(shù)據(jù)包括與至少一個參數(shù)相關(guān)的多字節(jié)數(shù)據(jù),所述方法包括以下步驟: 將所述多字節(jié)數(shù)據(jù)劃分成單字節(jié); 將具有來自與所述多個頂點相關(guān)的所述數(shù)據(jù)的相應(yīng)字節(jié)位置的字節(jié)組合在一起以形成多個字節(jié)塊;以及 使用第一壓縮算法壓縮所述字節(jié)塊中的至少一個字節(jié)塊,所述壓縮算法包括將字節(jié)塊中的至少一個字節(jié)存儲為字節(jié)原點以及將所述字節(jié)塊中的剩余字節(jié)中的每個剩余字節(jié)存儲為與所述原點中的一個原點的差值。2.根據(jù)權(quán)利要求1所述的方法,其中所述壓縮的步驟包括使用所述第一壓縮算法壓縮第一字節(jié)塊及使用第二壓縮算法壓縮第二字節(jié)塊。3.根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的方法,其中用于頂點的每個參數(shù)的所述頂點參數(shù)數(shù)據(jù)包括符號位,并且所述方法還包括以下步驟:在所述劃分的步驟之前將所述符號位移動至最低有效字節(jié)。4.根據(jù)權(quán)利要求1所述的方法,其中所述字節(jié)塊中具有最小值的字節(jié)被選擇作為字節(jié)原點。5.根據(jù)上述權(quán)利要求中任一項權(quán)利要求所述的方法,其中所述壓縮的步驟包括:將字節(jié)塊中的多個字節(jié)存儲為單獨的字節(jié)原點,并將所述字節(jié)塊中剩余字節(jié)中的每個剩余字節(jié)存儲為與其中一個所述字節(jié)原點的 差值。6.根據(jù)權(quán)利要求5所述的方法,其中所述壓縮的步驟包括:將字節(jié)塊中最小數(shù)量的字節(jié)存儲為字節(jié)原點,該字節(jié)原點使得所有的差值都小于預(yù)定值。7.根據(jù)上述權(quán)利要求中的任一項權(quán)利要求所述的方法,其中所述壓縮的步驟還包括: a)將來自字節(jié)塊的第一字節(jié)和第二字節(jié)存儲為用于定義字節(jié)范圍的最大字節(jié)值和最小字節(jié)值; b)核查隨后字節(jié)的值,并且如果所述隨后字節(jié)的值不在所述字節(jié)范圍內(nèi),則使用所述隨后字節(jié)的值替代所述最大字節(jié)值或所述最小字節(jié)值以形成更新的最大字節(jié)值和最小字節(jié)值以及更新的字節(jié)范圍; c)針對所述字節(jié)塊中的每個隨后字節(jié)重復(fù)步驟b)直至定義所述字節(jié)范圍所需的位數(shù)超出預(yù)定位數(shù),然后 d)將所述字節(jié)范圍拆分成兩個字節(jié)范圍,所述兩個范圍中的每一個范圍能夠使用所述預(yù)定位數(shù)或小于所述預(yù)定位數(shù)的位數(shù)進(jìn)行定義; e)核查每個隨后字節(jié)的值,并且如果隨后字節(jié)的值在所有所述字節(jié)范圍外,則用該隨后字節(jié)的值替代所述范圍中的一個范圍的所述最大字節(jié)值或最小字節(jié)值以形成更新的最大字節(jié)值和最小字節(jié)值及更新的字節(jié)范圍; f)針對所述字節(jié)塊中的每個隨后字節(jié)重復(fù)步驟e)直至定義字節(jié)范圍所需的位數(shù)超出預(yù)定位數(shù),并且然后重復(fù)步驟e)直至所述字節(jié)塊中的所有字節(jié)都在字節(jié)范圍內(nèi); 其中字節(jié)塊中字節(jié)范圍的數(shù)量與所述壓縮的步驟中使用的字節(jié)原點的數(shù)量一致。8.根據(jù)權(quán)利要求7所述的方法,所述方法還包括以下步驟:在步驟f)后,合并兩個字節(jié)范圍以形成合并的字節(jié)范圍。9.根據(jù)上述權(quán)利要求中任一項權(quán)利要求所述的方法,所述3D計算機圖形系統(tǒng)是基于圖塊的3D計算機圖形系統(tǒng)。10.根據(jù)上述權(quán)利要求中的任一項權(quán)利要求所述的方法,所述方法還包括以下步驟:在所述壓縮的步驟之后合并所述字節(jié)塊以形成壓縮的數(shù)據(jù)塊。11.一種用于在3D計算機圖形系統(tǒng)中壓縮頂點參數(shù)數(shù)據(jù)的設(shè)備,其中所述頂點參數(shù)數(shù)據(jù)包括與多個頂點相關(guān)的數(shù)據(jù)塊,與每個頂點相關(guān)的所述數(shù)據(jù)包括與至少一個參數(shù)相關(guān)的多字節(jié)數(shù)據(jù),所述設(shè)備包括: 劃分裝置,被配置成將所述多字節(jié)數(shù)據(jù)劃分成單字節(jié)并將具有來自與所述多個頂點相關(guān)的所述數(shù)據(jù)的相應(yīng)字節(jié)位置的字節(jié)組合到一起,以形成多個字節(jié)塊;以及 壓縮裝置,被配置成使用壓縮算法壓縮所述字節(jié) 塊中的至少一個字節(jié)塊,所述壓縮算法包括將字節(jié)塊中的至少一個字節(jié)存儲為字節(jié)原點...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:X·楊,
申請(專利權(quán))人:想象技術(shù)有限公司,
類型:
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。