專利名稱:紋理壓縮技術(shù)的制作方法
技術(shù)領(lǐng)域:
紋理壓縮由此變成一般圖形硬件特別是3D圖形硬件的被 廣泛接收的特征。的確,紋理壓縮的形式可追溯至最早的圖形硬件。 紋理壓縮的目的是降低圖形系統(tǒng)的存儲(chǔ)和帶寬成本,同時(shí)盡可能地保 持原始紋理的質(zhì)量。然而,達(dá)到這個(gè)目的已經(jīng)被證明是復(fù)雜的,已經(jīng) 產(chǎn)生了幾種不同方案,下面簡要描述其中的一些。FXT 1是與DXTC竟?fàn)幍膲嚎s方案。其一般用一些可以在 任意給定圖像內(nèi)混合的附加塊類型來擴(kuò)展DXTC,也可以為帶a的紋 理提供每象素4位的壓縮模式。相對(duì)DXTC的圖像質(zhì)量增益從來不確 定,所以FAT 1得到有限的工業(yè)支持。PVR-TC是近來發(fā)展的壓縮方案,該方案將圖像縮小為其 原始尺寸的分?jǐn)?shù),然后再將其放大回去以獲得原始圖像的良好的第一 近似。這樣,通過存儲(chǔ)縮小比例的版本然后再添加一些調(diào)制以建立原 始數(shù)據(jù)的相當(dāng)準(zhǔn)確的重構(gòu)來實(shí)現(xiàn)紋理壓縮。這種紋理壓縮方案對(duì)于一 些類型的數(shù)據(jù)(尤其是平滑漸變)效果好,并且適度地縮至低比特率。 然而,PVR-TC具有使圖像有些模糊并且失去高頻細(xì)節(jié)的傾向。有時(shí), PVR-TC壓縮似乎也《I入其它偽像,例如高頻調(diào)制噪聲和邊緣振蕩效 應(yīng)(ringing)。當(dāng)前的紋理壓縮技術(shù)和它們的局限性的回顧表明需要改
進(jìn)這些技術(shù)。理想的解決方案應(yīng)當(dāng)允許各種類型的數(shù)據(jù)的壓縮并且具 有充分利用可用的存儲(chǔ)器和帶寬的靈活性。另外,傳統(tǒng)的紋理壓縮方
案把特定類型的紋理內(nèi)容(如JPEG用于拍攝圖像)作為目標(biāo)并且在 該集合中表現(xiàn)良好,但是一旦用于指定集合外的圖像類型就表現(xiàn)較 差。由此,另一個(gè)挑戰(zhàn)是擴(kuò)大紋理壓縮的范圍以充分覆蓋更廣泛的圖 像類型。
圖7示出32分區(qū)的示例性集合,每個(gè)分區(qū)具有2個(gè)不相
交子集;圖8示出12分區(qū)的示例性集合,每個(gè)分區(qū)具有3個(gè)不相 交子集。
0020現(xiàn)在將參考附圖描述本發(fā)明。在附圖中,同樣的附圖標(biāo)記 指示同樣的或功能相似的元件。另外,附圖標(biāo)記最左邊的數(shù)字代表首 次出現(xiàn)該附圖標(biāo)記的附圖。
具體實(shí)施方式
序言紋理是一維、二維或多維數(shù)據(jù)陣列。紋理有時(shí)用于增強(qiáng)或 改變圖形中表面的外觀。"紋理象素(texel)"是紋理基本單位,就像"象 素,,是照片基本單位一樣。術(shù)語"象素,,和"紋理象素"在本文中可以同 義地使用,并且僅指離散的數(shù)據(jù)單元——如在幀緩沖器、紋理緩沖器 和其它類型的存儲(chǔ)器或陣列中(JC, >0位置上的數(shù)據(jù)。本文描述的壓 縮和解壓縮方法可以用于壓縮多種類型的紋理信息,包括圖像數(shù)據(jù)、 照片數(shù)據(jù)、透明度(a)信息、光滑度或粗糙度數(shù)據(jù)或其它類似結(jié)構(gòu) 的數(shù)據(jù)。因此,術(shù)語"紋理,,在本文中泛指使用描述的方法被壓縮或解 壓縮的數(shù)據(jù)。紋理映射是將紋理應(yīng)用到表示要顯示的表面的片段、象素 或圖元(primitive)中的處理。紋理映射經(jīng)常用于4吏畫面更真實(shí)。例 如,可以將建筑正面的照片應(yīng)用到表示墻的多邊形。在紋理映射期間, 壓縮的紋理基本單位如紋理象素塊被從紋理存儲(chǔ)器中獲得,并表示在要顯示的表面上對(duì)應(yīng)的片段或象素的顏色或其它表面特征。隨著計(jì)算機(jī)圖形中越來越期望高水平的圖像質(zhì)量,上述的 DXTC和其它有損紋理壓縮方法的局限變得越來越明顯。假定可用的 存儲(chǔ)器和帶寬的量是持續(xù)增加的,本發(fā)明允許在較低的壓縮率下實(shí)現(xiàn) 更高的圖像質(zhì)量,及在同樣的壓縮率下實(shí)現(xiàn)比現(xiàn)有方法更高質(zhì)量的壓 縮。當(dāng)每象素位數(shù)更高時(shí),存在一個(gè)挑戰(zhàn)是試圖達(dá)到與具有較高壓縮 率的方案相同的每位質(zhì)量。為了應(yīng)對(duì)這個(gè)挑戰(zhàn),本發(fā)明進(jìn)一步完善基 于塊的圖像壓縮技術(shù)例如DXTC,以靈活的方法對(duì)紋理塊進(jìn)行預(yù)壓縮 分區(qū)。預(yù)壓縮分區(qū)通過靈活地選擇適合被壓縮的紋理塊的特征的分區(qū)來改進(jìn)圖像質(zhì)量,而不是采用在其它方法中建議的一個(gè)尺寸適用全部 的方案。
示例環(huán)境計(jì)算機(jī)110可以是便攜計(jì)算機(jī)、膝上計(jì)算機(jī)、桌上計(jì)算機(jī)、 服務(wù)器、大型機(jī)、手提設(shè)備(如移動(dòng)電話、相機(jī)、便攜媒體播放器)、 數(shù)字電視等。主存儲(chǔ)器130可以是隨機(jī)訪問存儲(chǔ)器(RAM)或一些其 它存儲(chǔ)設(shè)備。對(duì)于靜態(tài)數(shù)據(jù),主存儲(chǔ)器也可以包含只讀存儲(chǔ)器 (ROM)。主存儲(chǔ)器130可以用于在CPU 120執(zhí)行指令期間存儲(chǔ)信 息,例如處理器指令、臨時(shí)變量或緩存信息。圖形存儲(chǔ)器150也可以 由RAM、 ROM或其它存儲(chǔ)裝置構(gòu)成,并且主要用于存儲(chǔ)諸如畫面信 息和紋理數(shù)據(jù)的圖形信息。還示出外部存儲(chǔ)器或外部存儲(chǔ)裝置135, 例如可以用于存儲(chǔ)紋理數(shù)據(jù)的硬盤或其它存儲(chǔ)裝置。應(yīng)當(dāng)注意,紋理 可以用未壓縮的格式或壓縮的格式存儲(chǔ)。預(yù)壓縮的數(shù)據(jù)將通過CPU 而不被 修改。圖2進(jìn)一步示出紋理數(shù)據(jù)通過示例性的圖形系統(tǒng)可以采用 的路徑。未壓縮的紋理源210(如紋理數(shù)據(jù)庫或庫)被耦合到CPU 120。 紋理壓縮引擎220在CPU 120內(nèi)。紋理壓縮引擎220主要負(fù)責(zé)使用硬 件、軟件或兩者的組合來實(shí)施本發(fā)明的紋理壓縮方法。類似地,圖7示出32個(gè)分區(qū),每個(gè)分區(qū)具有兩個(gè)不相交 子集。示例性的分區(qū)702在圖7中被示出。其中,4x4象素塊702被 細(xì)分為2個(gè)不相交子集,第一子集包含標(biāo)記為O的象素,第二子集包 含標(biāo)記為1的象素。圖8示出16個(gè)分區(qū)構(gòu)成的集合,每個(gè)分區(qū)被細(xì) 分為3個(gè)不相交子集。示例性的分區(qū)802在圖8中被示出。其中,4x4 象素塊802被細(xì)分為3個(gè)不相交子集,第一子集包含標(biāo)記為O的象素, 第二子集包含標(biāo)記為l的象素,第三子集包含標(biāo)記為2的象素。在壓縮象素的子集之后,壓縮的紋理塊可以被評(píng)估以進(jìn)一 步細(xì)化分區(qū)選擇。在圖3B-3C中示出兩個(gè)這樣的評(píng)估實(shí)施例。評(píng)估典 型地要求(i)對(duì)壓縮的紋理塊進(jìn)行解壓縮以獲得原始象素塊的近似以 及(ii)比較原始象素塊和原始象素塊的所述近似以獲得質(zhì)量參數(shù)。 這些步驟被反映在圓3B的步驟330和332以及圖3C的步驟340和 342中。
0043從用于量化解壓縮的紋理塊與原始象素塊相比時(shí)的某一 方面的預(yù)定義函數(shù)中導(dǎo)出質(zhì)量參數(shù)。例如,預(yù)定義函數(shù)可以評(píng)估原始 象素塊中的象素顏色與原始象素塊的近似中的象素顏色相比的結(jié)果,以獲得總誤差近似。誤差近似可以是均方根(RMS)誤差,由例如各 個(gè)象素顏色誤差相對(duì)于塊中所有象素的貢獻(xiàn)的平方和構(gòu)成。替代地, 可以取決于用戶需要采用其它函數(shù)。例如,該函數(shù)可以評(píng)估亮度或透 明度或用戶認(rèn)為重要的任何其它紋理參數(shù)。如下面詳細(xì)描述的,質(zhì)量 參數(shù)被用于衡量在選擇的分區(qū)下進(jìn)行的壓縮相對(duì)于其它分區(qū)或相對(duì) 于預(yù)選的質(zhì)量參數(shù)閾值的相對(duì)成功。
0044在圖3B的實(shí)施例中,在步驟334中判斷在確認(rèn)的分區(qū)下 的質(zhì)量參數(shù)是否達(dá)到預(yù)選閾值。如果達(dá)到,則按照步驟336,確認(rèn)的 分區(qū)變成當(dāng)前象素塊的最終分區(qū)。如果質(zhì)量參數(shù)沒有達(dá)到預(yù)選的閾 值,則根據(jù)步驟335,確定是否還有沒有獲得質(zhì)量參數(shù)的分區(qū)。如果 仍有這樣的未測試分區(qū),則該方法返回到步驟315。在這個(gè)實(shí)施例中, 用戶可以基于各種參數(shù)選擇紋理塊壓縮的最低質(zhì)量標(biāo)準(zhǔn)。在這個(gè)實(shí)施 例中,質(zhì)量參數(shù)值也被跟蹤,如果沒有達(dá)到閾值質(zhì)量值,則產(chǎn)生最佳 質(zhì)量值的分區(qū)被選擇,如步驟337所示。接著,在步驟338中,原始象素塊被根據(jù)最終分區(qū)細(xì)分成 一個(gè)或多個(gè)最終子集。最終細(xì)分產(chǎn)生的子集接著被獨(dú)立地壓縮以形成 壓縮的紋理塊,如步驟339所示。在替代實(shí)施例中,如圖3C所示,從預(yù)定義的分區(qū)集合來 確認(rèn)分區(qū)。接著,對(duì)于分區(qū)集合中的每個(gè)分區(qū)獲得質(zhì)量參數(shù)。按照圖 3C的步驟344,如果對(duì)于預(yù)定義分區(qū)集合的每個(gè)分區(qū)還沒有獲得質(zhì)量 參數(shù),則該方法返回到步驟315,在步驟315中選擇另一個(gè)分區(qū)。在 這個(gè)實(shí)施例中,系統(tǒng)接著選擇產(chǎn)生最佳質(zhì)量參數(shù)的分區(qū),如步驟346 所示。接著,在步驟348中,根據(jù)最終分區(qū)將原始象素塊細(xì)分為一個(gè) 或多個(gè)最終子集。最終細(xì)分產(chǎn)生的子集接著被獨(dú)立地壓縮,以形成壓 縮的紋理塊,如步驟349所示。
適當(dāng)?shù)姆謪^(qū)。上述實(shí)施例可以根據(jù)程序設(shè)計(jì)者的具體需要來修改,取
決于具體實(shí)施想要哪種數(shù)據(jù)壓縮。 解壓縮原理0048對(duì)根據(jù)本方法壓縮的紋理塊進(jìn)4于解壓縮本質(zhì)上涉及逆向 作業(yè)。圖5是描述這樣的解壓縮方案的流程圖。按照步驟505,接收 代表原始紋理塊的壓縮紋理塊。下面描述的是上述壓縮方法的幾個(gè)示例性實(shí)施例。它們包 括用于實(shí)現(xiàn)上述壓縮原理的示例性數(shù)據(jù)結(jié)構(gòu)和偽碼。本發(fā)明不局限于 這些實(shí)施例,而僅由所附權(quán)利要求的范圍限制。本領(lǐng)域的技術(shù)人員可 以預(yù)見和實(shí)現(xiàn)對(duì)這些實(shí)施例的改變,只要它們處在本發(fā)明的精神和范 圍內(nèi)。具有4個(gè)子集的分區(qū)數(shù)據(jù)結(jié)構(gòu)structunsigned int unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int unsigned int} fourPartitionModeiblockType : 2jco〗our6:15, colourl:15, coour2:15, colour3:15; co!our4:15, coIour5:15, colour6:15, colour7:15( partitionBits : 6;t00:2, t0l:2, t02:2, t03:2, t04:2, t05:2, t06:2, t07:2; t08:2, t09:2, t0a:2, t0b:2, t0c:2, t0d:2, t0e:2, t0f:2; tl0:2, tll:2, tl2:2, tl3:2, tl4:2, tl5:2, tl6:2, tl7:2; tl8:2, tl9:2, tla:2' Ub:2, tlc:2, tld:2, tle:2, Uf:2; t20:2,121:2, t22:2, t23:2, t24:2, t25:2, t26:2, t27:2; t28:2, t29:2, t2a:2, t2b:2, t2c:2' t2d:2, t2e:2, t2f:2; t30:2, t31:2, t32:2, t33:2, t34:2, t35:2, t36:2, t37:2; t38:2, t39:2, t3a:2, t3b:2, t3c:2, t3d:2, t3e:2, t3f:2;
實(shí)際上,為了簡化解壓縮和使其更便宜,第一實(shí)施例僅使 用由64個(gè)顯式預(yù)定義的分區(qū)組成的一個(gè)基礎(chǔ)集合,其對(duì)于5個(gè)子集 的情形而定義,如圖6A-D所示。接著,例如可以通過合并該表內(nèi)的 區(qū)域,即對(duì)分區(qū)內(nèi)的子集執(zhí)行合并來創(chuàng)建具有較少子集的分區(qū)表。例 如,可以通過合并子集4 + 3獲得4個(gè)子集,而通過合并子集4 + 3和 0 + l可以獲得3個(gè)子集。其它組合當(dāng)然也可以。通過從上述表中獲得 所有模式的分區(qū),可以降低硬件中對(duì)表的存儲(chǔ)要求。
例如,在具有2個(gè)子集的分區(qū)中,以14位(RGB 5.5.4 ) 精度存儲(chǔ)4種顏色。每個(gè)紋理象素或象素指數(shù)是3位,所以漸變坡具 有8個(gè)位置。該漸變坡推導(dǎo)如下unsigned BYTE c[8][4]; if(colouiO > colour 1)c[O] - colourOi cf7J =coIourl) 〃Set alpha to 1,0 c則0j-0xff; c[7]
- 0xff; for(i=0;i<4;i++)c[l][i] - ("c, + l*c[7][i] + 3) 〃; c2]fi] - (5*c
[i] + 2寧c[7兀i] + 3) / 7; c[3][i] = (4,c
[i] + 3*c[7][i] + 3) / 7; c[4][i] - (3*c
[i] + "c[7][i] + 3) 〃; c[5][i] = (2*c
[i] + 5*c[7][i] + 3) 〃; c[6〗[i] = (1 *c〖0][i] + 6*c[7][i] + 3) 〃;elsec[O] = colourOj ci7i = cok>url; 〃 Set alpha to 1.0 c[O][O] - 0xff; c[7]
+ l爭c[7肌+ 2) / 6; c卿]=(4攀c
+ 2*c[7][i] + 2) / 6; c[3〗[i〗=(3*c
+ 3*c[7][i] + 2) / 6; c[4〗[i] = (2*c
[i] + 4*c[7][i] + 2) / 6; c[5〗[i] ='(1 *c
+ 5*c[7][i] + 2) / 6;〃 Colour 6 is tc^ated as transparent c[6] = transparent c[6]
= 0;'
在具有3個(gè)子集的分區(qū)中,替代地,可以20位(RGB 7.7.6 ) 精度存儲(chǔ)6種色彩。每個(gè)紋理象素指數(shù)是2位,所以漸變坡具有4個(gè) 位置。該漸變坡推導(dǎo)如下unsigned BYTE c[4][4]; if(colourO > oolourl)c[O] = colow0; ci4] = colourl; 〃 Set alpha to 1.0 c[O][O] Oxff; ct^
Oxff; for(i=0;i<4;i"H")cl][i] = (2*c,] + l豐c[4][i] + 1) / 3', c[2][i] = ("c
= colourO; cf4] - colourl; 〃 Set alpha to 1.0 c[O][O] - Oxff; c[4]
- Oxff; for(i=0;i<4;i++)c[1][i]。<c,] + c[4][i]+l)/2;〃 Colour 3 is treated as transparent c[3] = transparent; c[3]
第二實(shí)施例意在作為DXT5的直接替換。它的數(shù)據(jù)結(jié)構(gòu)類 似于上述的第一實(shí)施例和DXT1。它使用與第一實(shí)施例相同的顏色編 碼,但是每個(gè)8x8顏色塊附有下列格式的8x8a塊。structunsigned in.t .alphaO:8;Vmsigncd int alphal: 8;unsigned'int alpha2:8;unsigned int alpha3:8;unsigned ittt .alpha4:8;unsigned int alpha5:8;.unsigned int alpha6:8;unsigned int alpha7:8;unsigned int t00:3, tOI :3, t02:3, t03:3, t04:3, t05:3, t06:3, t07:3; 咖igned int t08:3, t的:3, t0a:3, t0b:3, t0c:3, t0d:3, t0e:3, tOf:3; unsigned int U0:3, tll:3, tl2:3, tl3:3, tl4:3, tl5:3, tl6:3, U7:3; unsigned int tl8:3, tl9:3, ta:3, tlb:3, t〗c:3, tld:3, tle:3, tlf:3; unsigned int t20:3, t21:3, t22:3, t23:3, t24:3, t25:3, t26:3, t27:3; unsigned int t28:3, t29:3, t2a:3, t2b:3' t2c:3, t2d:3, t2e:3, t2f:3; unsigned int 130:3, t31:3, t32:3, t33:3, t34:3, t35:3, t36:3, t37:3; unsigned int t38:3, t39:3, t3a:3, t3b:3, t3c:3, t3d:3, t3e:3, t3f:3; } APC2一ALPHA一BU)CK;
對(duì)于兩子集分區(qū),數(shù)據(jù)結(jié)構(gòu)包含4個(gè)端點(diǎn),以19位(RGB 6.7.6)精度來指定。指數(shù)尺寸是3位,存在32個(gè)可能的分區(qū),以類 似于下述方式選擇partition = (block->colour0 > block->colourl) 0xl :0; partition j= (Wock->colour2 > block->colour3) 0x2 : 0; partition j= (block->partitiohB"0) 0x4: 0; partition j= fblock->partitioBBiui 0x8 : 0; partition j= (block一artitionBit25 0x10 : 0;[0084對(duì)于3子集分區(qū),數(shù)據(jù)結(jié)構(gòu)包含6個(gè)端點(diǎn),以13位(RGB 4.5.4)精度來指定。指數(shù)尺寸是3位。存在16個(gè)可能的塊分區(qū),以 類似于下述方式選擇partition - (block->partitionBit) Qxl : 0; partition ^block-X;olour0 > block->co!our.l) .0x2 : 0; partition |- (blocfc >colour2 > blodc二:^c( lour3) 0x4: 0; partition K ^Wock->co〖o(jì)ur4 > block々colour5) 0x8 : 0;[0085第六實(shí)施例的一個(gè)實(shí)施已經(jīng)被測試并顯示給出對(duì)于最多3 個(gè)信道(RGB)的紋理可以被認(rèn)為"感覺無損"的質(zhì)量水平。換句話說, 如果壓縮的和未壓縮的表示被并排比較,即便被放大和近距離注視, 觀察者也很難確定哪個(gè)是哪個(gè)。細(xì)節(jié)和顏色保存得非常好,并且引人 注意的偽像非常少。壓縮質(zhì)量在真實(shí)圖像和人造圖像兩方面都很高, 在比較第六實(shí)施例和DXT1時(shí),3信道紋理上的RMS誤差典型地,皮 降低至少50%,更普遍地降低70%或更多。在標(biāo)準(zhǔn)圖即表面標(biāo)準(zhǔn)圖} OPC8一BLOCK;壓縮也可能以這種格式實(shí)現(xiàn)時(shí),質(zhì)量不如其它替代方案(3DC/BC5) 高。結(jié)論[0086盡管上面已經(jīng)描述了本發(fā)明的多個(gè)實(shí)施例,但應(yīng)該理解, 這些實(shí)施例只是為了舉例而并沒有限制的含義。應(yīng)當(dāng)注意,可以用紋 理壓縮領(lǐng)域之外的數(shù)據(jù)壓縮方法來實(shí)現(xiàn)上述眾多特征。對(duì)本領(lǐng)域技術(shù) 人員來說在形式和細(xì)節(jié)上可以做出眾多改變是清楚的,只要它們處在 本發(fā)明的精神和范圍內(nèi)。因此,本發(fā)明的范圍不局限于任何上述示例 性實(shí)施例,而應(yīng)當(dāng)根據(jù)所附權(quán)利要求或其等同物來定義。
權(quán)利要求
1. 一種紋理壓縮方法,包括(a)將具有多個(gè)象素的原始紋理分割成原始象素塊;對(duì)于每個(gè)原始象素塊(b)從預(yù)先定義的分區(qū)集合中確認(rèn)一個(gè)分區(qū),所述分區(qū)具有一個(gè)或多個(gè)不相交的象素子集,這些象素子集合并在一起就是原始象素塊;(c)根據(jù)確認(rèn)的分區(qū)將所述原始象素塊細(xì)分成一個(gè)或多個(gè)子集;以及(d)獨(dú)立地壓縮每個(gè)子集以形成壓縮的紋理塊。
2. 根據(jù)權(quán)利要求l的方法,還包括 對(duì)于每個(gè)原始象素塊,對(duì)于該原始象素塊評(píng)估 一 函數(shù); 基于被評(píng)估的函數(shù)來確認(rèn)分區(qū);以及 重復(fù)步驟(c)和(d)。
3. 根據(jù)權(quán)利要求l的方法,還包括(e) 對(duì)所述壓縮的紋理塊進(jìn)行解壓縮以獲得原始象素塊的近似;(f) 比較原始象素塊與所述原始象素塊的近似,以獲得所確認(rèn) 的分區(qū)的質(zhì)量參數(shù);(g) 如果所確認(rèn)的分區(qū)的質(zhì)量參數(shù)滿足預(yù)選闊值,則選擇所確 認(rèn)的分區(qū)作為象素塊的最終分區(qū),否則,對(duì)于還沒有獲得質(zhì)量參數(shù)的 分區(qū),重復(fù)步驟(b)到(g),其中,如果不存在還沒有獲得質(zhì)量參 數(shù)的分區(qū),則前進(jìn)到步驟(h);(h) 根據(jù)所述最終分區(qū)將原始象素塊細(xì)分成一個(gè)或多個(gè)最終子 集,其中如果沒有任何分區(qū)具有滿足預(yù)選閾值的質(zhì)量參數(shù),則選擇產(chǎn) 生最接近預(yù)選閾值的質(zhì)量參數(shù)的分區(qū)作為最終分區(qū);以及(i) 獨(dú)立地壓縮每個(gè)最終子集以形成壓縮的紋理塊。
4. 根據(jù)權(quán)利要求l的方法,還包括(e) 對(duì)所述壓縮的紋理塊進(jìn)行解壓縮以獲得原始象素塊的近似;(f) 比較原始象素塊與所述原始象素塊的近似,以獲得所確認(rèn) 的分區(qū)的質(zhì)量參數(shù);(g) 對(duì)于預(yù)定義的分區(qū)集合中的每個(gè)分區(qū),重復(fù)步驟(b )到(f ), 以獲得每個(gè)分區(qū)的質(zhì)量參數(shù);(h) 選擇產(chǎn)生最優(yōu)質(zhì)量參數(shù)的分區(qū)作為原始象素塊的最終分區(qū);(i) 根據(jù)所述最終分區(qū)將原始象素塊細(xì)分成一個(gè)或多個(gè)最終子 集;以及(j)獨(dú)立地壓縮每個(gè)最終子集以形成壓縮的紋理塊。
5. 根據(jù)權(quán)利要求l的方法,其中,步驟(b)還包括從預(yù)定義的 分區(qū)集合中確認(rèn)分區(qū),其中所述子集具有不同數(shù)量的象素。
6. 根據(jù)權(quán)利要求l的方法,其中,所述預(yù)定義的分區(qū)集合包括 顯式定義的分區(qū)基礎(chǔ)集合以及從該基礎(chǔ)集合導(dǎo)出的分區(qū)的附加集合。
7. 根據(jù)權(quán)利要求6的方法,其中,通過執(zhí)行一些子集的合并, 從該基礎(chǔ)集合的一個(gè)分區(qū)獲得每個(gè)導(dǎo)出的分區(qū)。
8. 根據(jù)權(quán)利要求l的方法,其中,步驟(d)還包括使用有損壓 縮方法來壓縮每個(gè)子集中的象素。
9. 根據(jù)權(quán)利要求l的方法,其中,步驟(d)包括使用兩個(gè)顯式 端點(diǎn)參數(shù)和在顏色空間中定義一個(gè)漸變坡的多個(gè)中間點(diǎn)來壓縮每個(gè) 子集。
10. 根據(jù)權(quán)利要求l的方法,其中,步驟(d)包括使用堆垛化 技術(shù)來壓縮每個(gè)子集。
11. 根據(jù)權(quán)利要求3的方法,其中,所述質(zhì)量參數(shù)基于塊的均方 根誤差。
12. 根據(jù)權(quán)利要求4的方法,其中,所述質(zhì)量參數(shù)基于塊的均方 根誤差。
13. 根據(jù)權(quán)利要求3的方法,其中,所述質(zhì)量參數(shù)基于塊的色度 誤差參數(shù)。
14. 根據(jù)權(quán)利要求4的方法,其中,所述質(zhì)量參數(shù)基于塊的色度誤差參數(shù)。
15. 根據(jù)權(quán)利要求3的方法,其中,所述質(zhì)量參數(shù)基于塊的亮度參數(shù)。
16. 根據(jù)權(quán)利要求4的方法,其中,所述質(zhì)量參數(shù)基于塊的亮度參數(shù)。
17. 根據(jù)權(quán)利要求1的方法,還包括將紋理分割成8x8象素的規(guī)則塊。
18. 根據(jù)權(quán)利要求1的方法,還包括將紋理分割為4x4象素的規(guī)則塊。
19. 一種紋理解壓縮方法,包括 接收壓縮的紋理塊;從預(yù)定義的分區(qū)集合中確定用于該壓縮的紋理塊的分區(qū),該分區(qū) 定義所述壓縮的紋理塊要被分拆成的一個(gè)或多個(gè)不相交子集; 基于確定的分區(qū)將每個(gè)子集的數(shù)據(jù)分拆;以及 獨(dú)立地解壓縮每個(gè)子集以形成原始紋理塊的近似。
20. 根據(jù)權(quán)利要求19的方法,其中,所述預(yù)定義的分區(qū)集合包 括顯式定義的分區(qū)基礎(chǔ)集合以及從該基礎(chǔ)集合導(dǎo)出的分區(qū)的附加集 合。
21. 根據(jù)權(quán)利要求20的方法,其中,通過執(zhí)行一些子集的合并, 從該基礎(chǔ)集合的一個(gè)分區(qū)獲得每個(gè)導(dǎo)出的分區(qū)。
22. —種用于紋理解壓縮的計(jì)算機(jī)處理系統(tǒng),包括 接收壓縮的紋理塊的裝置,所述壓縮的紋理塊包含代表原始紋理塊的數(shù)據(jù);確定用于該壓縮的紋理塊的分區(qū)的裝置,所述分區(qū)定義該壓縮的 紋理塊要被分拆成的一個(gè)或多個(gè)不相交子集;基于確定的分區(qū)將每個(gè)子集的數(shù)據(jù)分拆的裝置;以及 獨(dú)立地解壓縮每個(gè)子集以形成原始紋理塊的近似的裝置。
全文摘要
描述了一種紋理壓縮方法。該方法包括將具有多個(gè)象素的原始紋理分割成原始象素塊。接著,對(duì)于每個(gè)原始象素塊,確認(rèn)一個(gè)分區(qū),該分區(qū)具有一個(gè)或多個(gè)不相交的象素子集,這些子集合并在一起就是原始象素塊。根據(jù)確認(rèn)的分區(qū),原始象素塊被進(jìn)一步細(xì)分成一個(gè)或多個(gè)子集。最后,每個(gè)子集被獨(dú)立地壓縮以形成壓縮的紋理塊。
文檔編號(hào)H04N7/26GK101536526SQ200780030887
公開日2009年9月16日 申請日期2007年8月29日 優(yōu)先權(quán)日2006年8月31日
發(fā)明者A·S·C·波米阿諾斯基, K·尤查 申請人:Ati科技公司