進(jìn)行數(shù)據(jù)編碼和解碼的方法和設(shè)備的制作方法
【專利摘要】進(jìn)行數(shù)據(jù)編碼和解碼的方法和設(shè)備。在對用于圖形處理系統(tǒng)的紋理數(shù)據(jù)元素集合30進(jìn)行編碼時,利用顏色空間中的分割紋理數(shù)據(jù)元素的一個或更多個無限平面41估計顏色空間中的所關(guān)注的紋理數(shù)據(jù)元素集合的數(shù)據(jù)值呈現(xiàn)最大方差的方向。對于各個這樣的平面,將平面各側(cè)的紋理數(shù)據(jù)元素值相加以得到相應(yīng)的和點48、49,確定這兩個和點之間的向量50。然后,使用所確定的向量50中的一個在數(shù)據(jù)空間中的方向來推導(dǎo)將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用的端點顏色值。
【專利說明】進(jìn)行數(shù)據(jù)編碼和解碼的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及進(jìn)行數(shù)據(jù)編碼和解碼的方法和設(shè)備,具體地講,涉及在對用于計算機圖形系統(tǒng)的紋理數(shù)據(jù)進(jìn)行壓縮和解壓縮時使用的方法和設(shè)備。
【背景技術(shù)】
[0002]在計算機圖形系統(tǒng)中常見的是通過將所謂的紋理或紋理數(shù)據(jù)應(yīng)用于待繪制的表面來產(chǎn)生顏色以對要顯示的圖像中的位置進(jìn)行采樣。例如,對象的表面細(xì)節(jié)可這樣產(chǎn)生:將預(yù)定義的“紋理”應(yīng)用于表示對象的圖元(graphics primitive)集合(例如,多邊形),以賦予對象的渲染圖像以“紋理”外觀。通常,通過將紋理元素或“紋元”(各自表示給定紋理數(shù)據(jù)(例如,顏色、亮度和/或光照/陰影等值))的陣列存儲在給定位置,然后將紋元映射到要顯示的圖像的對應(yīng)元素上(例如(且通常為)采樣位置集合),來應(yīng)用這些紋理。所存儲的紋理元素(數(shù)據(jù))的陣列通常稱為“紋理映射”。
[0003]這些布置方式可提供相對高的圖像質(zhì)量,但也具有許多缺點。具體地講,存儲紋理數(shù)據(jù)并在使用中訪問這些紋理數(shù)據(jù)會給圖形處理裝置帶來(例如)高的存儲和處理要求(或者相反,在這些要求沒有滿足的情況下導(dǎo)致性能的降低)。這對于執(zhí)行圖形處理的低功率、移動和手持式裝置而言尤其明顯,因為這些裝置在其(例如)存儲、帶寬和功率資源以及能力方面存在固有局限。
[0004]因此,已知的是,嘗試以“壓縮”方式對這種紋理數(shù)據(jù)進(jìn)行編碼,以嘗試減小(例如)在使用紋理時可能強加于圖形處理裝置的存儲和帶寬負(fù)擔(dān)。
[0005]對于紋理壓縮技術(shù)而言常見的是使用基于塊的編碼,即,將待編碼的紋理元素的總陣列(紋理映射)分割成較小的紋元塊(例如,4X4紋元塊)的陣列,然后分別對各個這種塊進(jìn)行編碼(壓縮)和解碼的布置方式。這可以(例如)有助于使解碼處理更高效,因為例如,解碼器可能僅需要對一個或幾個編碼的塊進(jìn)行解碼以確定感興趣的紋元的值,而非對整個編碼的紋理進(jìn)行解碼。
[0006]基于塊的紋理壓縮技術(shù)通常確定將用于給定紋元塊的顏色(或其它數(shù)據(jù))的縮減集或調(diào)色板,然后針對塊中的各個紋理元素(紋元)將索引存儲在所述顏色集或調(diào)色板中,以指示將用于所關(guān)注的紋理元素(紋元)的顏色。這具有如下優(yōu)點:針對各個紋元僅需存儲索引值,而非整個(例如)顏色值。
[0007]—種已知的基于塊的紋理壓縮技術(shù)是所謂的塊截斷編碼(BTC)。在該技術(shù)中,總紋理陣列(紋理映射)被再分割成(例如)4 X 4紋元的較小塊,針對各個這種塊確定一定數(shù)量(通常為兩個)的基色或原色值,并且將塊中的各個紋元設(shè)定為所述基色值之一。這節(jié)省了必須存儲和訪問的數(shù)據(jù),但代價是圖像質(zhì)量下降。
[0008]美國專利N0.5047853描述了一種改進(jìn)的塊截斷編碼技術(shù)。在該技術(shù)中,針對各個紋元塊同樣存儲兩種基色,但還從這兩種基色(如,通這些顏色的線性混合)推導(dǎo)將用于該塊的兩種附加顏色。這樣,提供四種顏色作為紋元塊的“調(diào)色板”,但針對塊僅需存儲兩種顏色值。然后,利用兩個索引比特來對塊中的各個紋元編碼,以指示四種塊“顏色”中的哪一種應(yīng)該用于該紋元。這種系統(tǒng)所提供的圖像質(zhì)量優(yōu)于基本塊截斷編碼,但每一塊需要更多數(shù)據(jù)。
[0009]還有其它基于塊的紋理壓縮方案,例如S3TC、BC6和BC7,其類似地將紋理分割成塊,然后針對各個塊定義兩種“端點(endpoint)”基色,通過這兩種端點顏色之間的插值來形成附加顏色,然后使用用于各個紋元的索引來從所得的顏色集為紋元選擇顏色。
[0010]例如,在S3TC紋理壓縮格式中,紋理被表示為4X4紋元塊。對于各個塊,確定兩種端點顏色,通過這兩個端點之間的插值來形成兩種附加顏色。這樣針對塊得到四種顏色的調(diào)色板,這四種顏色在顏色空間中全部落在直線上。然后針對各個紋元使用紋元索引,以將紋元映射到這四種顏色中的一種。各個編碼的塊存儲該塊的兩種端點顏色以及該塊的4X4紋元索引的網(wǎng)格。
[0011]這些類型的紋理壓縮處理中的最復(fù)雜的步驟通常是選擇將使用的兩種端點顏色。這通常通過確定可投影紋元值的顏色空間中的線來進(jìn)行。該線通常通過針對所關(guān)注的紋元塊計算平均顏色和方向向量來推導(dǎo)。然后,確定投影了塊中的紋元的顏色空間中的線是穿過該平均顏色點并具有所確定的方向向量的方向的線。
[0012]在這些布置方式中,將使用的最佳方向向量是沿著顏色空間中紋元的值呈現(xiàn)最大方差的方向(即,紋元值在顏色空間中的主方向)的向量,因此傳統(tǒng)上利用離散卡亨南-洛維(Karhunen-Loewe )變換(KLT)(也稱為主分量分析)來計算。
[0013]因此,計算要在對紋元塊進(jìn)行編碼時使用的兩種端點顏色的標(biāo)準(zhǔn)方法(給定未壓縮的紋理作為輸入,其中每一紋元(例如)用(R,G,B)顏色元組來表示)如下:
[0014]1.計算待編碼的紋元塊上的平均顏色C
[0015]2.針對各個紋元,用紋元的顏色值減去平均顏色C:r =T-C
[0016]3.從步驟2的減法所得的紋元值,計算協(xié)方差矩陣M
[0017]4.計算M的特征值和特征向量,然后保留表示最大能量的特征向量V。這可通過計算與最大特征值對應(yīng)的特征向量,或者利用“冪迭代”方法尋找主特征向量來進(jìn)行。
[0018]5.定義顏色空間中穿過平均顏色值C并具有所確定的特征向量V的方向的參數(shù)線,L=C+t*V
[0019]6.將所有紋元投影到該線上(即,針對各個紋元,確定該線上最靠近該紋元的點)。這基本上等同于針對線L上最靠近紋元的點尋找參數(shù)值t:給定減法所得的紋元T’ =T-C,參數(shù)可被計算為t=dot(V,T')/dot (V, V),其中dot O表示通常的向量點積。
[0020]7.尋找投影了紋元的線上的最高點和最低點(值)。這基本上等同于尋找得自紋元的最低(t_low)和最高(t_high)參數(shù)值。
[0021]8.然后將端點顏色定義為投影了紋元的線上的最高和最低點(值)。這基本上等同于定義:El=C+t_low*V 和 E2=C+t_high*V
[0022]在計算出這兩個端點值之后,通過從這些端點顏色的插值計算將用于編碼的塊的(例如)兩個其它的顏色值(如,分別為1/3E1+2/3E2和2/3E1+1/3E2)。然后,向各個紋元分配與塊的(例如)四個顏色當(dāng)中的顏色值最接近的那一個對應(yīng)的索引(對于快速編碼,這可通過僅對上述步驟6中所計算出的參數(shù)值“ t ”重新縮放和量化來進(jìn)行)。
[0023]在該處理中,步驟1-4構(gòu)成卡亨南-洛維變換,剩余步驟利用KLT結(jié)果來執(zhí)行實際紋理壓縮。[0024]利用卡亨南-洛維變換(具體地講,上述步驟3和4)來確定將使用的向量方向,同時為待編碼的紋元塊提供對期望的主方向的精確估計在計算上花費高,并且易于數(shù)值不穩(wěn)定且需要處理特殊情況。
[0025]例如,當(dāng)計算特征值時,必須求解3次多項式。這樣做在分析上需要多次花費高的超越運算(立方根、正弦、余弦、反正切),并且這樣做在數(shù)值上需要相對復(fù)雜的方法(如,詹金斯-特勞布(Jenkins-Traub))以確保在合理的時間內(nèi)收斂。
[0026]使用冪迭代方法來尋找主特征向量較簡單。然而,這仍然需要挑選隨機向量,然后反復(fù)地將其乘以協(xié)方差矩陣,直到所得向量最終收斂于主特征向量為止。還需要注意確保這樣的重復(fù)不會導(dǎo)致上溢或下溢。
[0027]還需要特別注意處理類似均勻顏色塊(其導(dǎo)致全零協(xié)方差矩陣;這種矩陣沒有特征向量)以及存在兩個優(yōu)勢相等的方向的塊(2重特征值)的情況。
[0028]這均表明,盡管推導(dǎo)在對紋元塊編碼時將使用的端點顏色,尤其是確定這樣做時將使用的顏色空間中的線的方向的現(xiàn)有技術(shù)可精確地識別將用于此的好的方向(即,紋元值在顏色空間中的主方向(主軸)),那些現(xiàn)有技術(shù)在計算上花費高并且慢。
【發(fā)明內(nèi)容】
[0029]因此, 申請人:認(rèn)為仍有余地改進(jìn)尤其是當(dāng)確定(例如)要在對用于圖形處理系統(tǒng)的紋理數(shù)據(jù)進(jìn)行編碼時使用的端點顏色時,估計待編碼的紋元值集合(如,塊)的主方向(即,紋元值被認(rèn)為呈現(xiàn)最大方差的方向)的技術(shù)。
[0030]根據(jù)本發(fā)明的第一方面,提供了一種針對將用于圖形處理系統(tǒng)的待編碼的紋理數(shù)據(jù)元素集合,確定所述紋理數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的方法,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合,該方法包括以下步驟:
[0031]針對所述數(shù)據(jù)空間中將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中從所述數(shù)據(jù)空間中基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到所述數(shù)據(jù)空間中基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量方向;以及
[0032]利用針對所述數(shù)據(jù)空間中將所述紋理數(shù)據(jù)元素集合分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合。
[0033]根據(jù)本發(fā)明的第二方面,提供了一種針對將用于圖形處理系統(tǒng)的待編碼的紋理數(shù)據(jù)元素集合,確定所述紋理數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的設(shè)備,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合,該設(shè)備包括:
[0034]處理電路,其被配置為:
[0035]針對所述數(shù)據(jù)空間中將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中從所述數(shù)據(jù)空間中基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到所述數(shù)據(jù)空間中基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量方向;以及
[0036]利用針對所述數(shù)據(jù)空間中將所述紋理數(shù)據(jù)元素集合分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合。
[0037]本發(fā)明涉及一種確定待編碼的紋理數(shù)據(jù)元素集合在數(shù)據(jù)空間(如,顏色空間)中的方向的技術(shù)和系統(tǒng),所述方向?qū)⒃诖_定基礎(chǔ)(例如,端點)值時使用,所述基礎(chǔ)值將在對紋理數(shù)據(jù)元素進(jìn)行編碼時使用。然而,為此并非使用(例如)基于特征向量的方法,本發(fā)明實際上通過在其數(shù)據(jù)空間中利用平面將紋理數(shù)據(jù)元素的值分割成兩組,然后將使用的方向確定為從數(shù)據(jù)空間中基于值落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到數(shù)據(jù)空間中基于值落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的方向,來確定使用的方向。
[0038]如下面將進(jìn)一步討論的, 申請人:發(fā)現(xiàn)這種布置方式可得到待編碼的紋理數(shù)據(jù)元素集合在數(shù)據(jù)空間中的主方向(即,數(shù)據(jù)空間中紋理數(shù)據(jù)元素的值呈現(xiàn)最大方差的方向)的足夠精確和可靠的估計,其將適用于紋理壓縮方案。另外,這無需使用現(xiàn)有技術(shù)中所用的基于特征向量的方法。本發(fā)明無需使用諸如乘法、除法、求根的復(fù)雜計算技術(shù),也不允許特殊情況處理,因此可比標(biāo)準(zhǔn)的基于特征向量的方法更快地估計待編碼的紋理數(shù)據(jù)元素值集合在其數(shù)據(jù)空間中的主方向。因此,與傳統(tǒng)基于KLT的方法不同,其還適用于直接硬件實現(xiàn),并且由于本發(fā)明的相對低的計算負(fù)荷,其還適用于例如“超快”軟件編碼器。
[0039]因此,本發(fā)明提供了一種確定待編碼的紋理數(shù)據(jù)元素值集合在數(shù)據(jù)空間中的主方向的方法和系統(tǒng),其比KLT方法簡單許多,因此,與KLT方法不同,其適合于“超快”紋理壓縮和硬件紋理壓縮,但其仍可保持紋理壓縮質(zhì)量。
[0040]本發(fā)明可用于需要數(shù)據(jù)(例如,顏色)空間中的紋元值的I維分區(qū)的任何紋理壓縮方案,例如用于S3TC、BTC家族、ASTC等的壓縮器。其尤其適用于基于塊的編碼方案,即,待編碼的紋理為了編碼目的而分割成較小的紋元塊(陣列)。
[0041]估計了主方向的紋理數(shù)據(jù)元素集合可包括待編碼的紋理的任何合適的紋理數(shù)據(jù)元素集合。在尤其優(yōu)選的實施方式中,其包括待編碼的紋理為了編碼目的(如,在基于塊的編碼方案中)而分割成的單個紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)元素集合。在這種情況下,紋理數(shù)據(jù)元素集合可包括該塊的所有紋理數(shù)據(jù)元素(在一個優(yōu)選實施方式中就是如此)。另選地,紋理數(shù)據(jù)元素集合可包括紋理為了編碼目的而分割成的給定紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)元素的子集。在(例如)待編碼的紋理數(shù)據(jù)元素塊為了編碼目的而分割為多個紋理數(shù)據(jù)元素子集的情況下這可能是適當(dāng)?shù)?。在這后一種情況下,優(yōu)選地,針對塊的紋理數(shù)據(jù)元素總集為了編碼目的而分割成的各個子集(分區(qū))分別以本發(fā)明的方式確定將使用的(主)方向。
[0042]因此,在一個優(yōu)選實施方式中,編碼的紋理數(shù)據(jù)元素集合包括紋理為了編碼目的而分割成的紋理數(shù)據(jù)元素塊的所有紋理數(shù)據(jù)元素。在另一優(yōu)選實施方式中,紋理數(shù)據(jù)元素集合包括紋理為了編碼目的而分割成的紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)元素的子集。
[0043]如本領(lǐng)域已知的,確定方向時所考慮的紋理數(shù)據(jù)元素集合(如,塊)的數(shù)據(jù)空間將是與紋理數(shù)據(jù)元素所表示的數(shù)據(jù)值對應(yīng)的數(shù)據(jù)空間。因此,在紋理數(shù)據(jù)元素表示顏色值(如,RGB或RGBA值)的情況下,數(shù)據(jù)空間將是(紋理數(shù)據(jù)元素的)顏色空間。在一個優(yōu)選實施方式中,數(shù)據(jù)空間是顏色空間。然而,如下面將進(jìn)一步討論的,紋理數(shù)據(jù)元素?zé)o需必須表示顏色值,因此在其它實施方式中數(shù)據(jù)空間不是顏色空間,而是一些其它數(shù)據(jù)空間。
[0044]在數(shù)據(jù)空間中用于將紋理數(shù)據(jù)元素分割成兩組的平面可根據(jù)需要來選擇。各個平面優(yōu)選為穿過數(shù)據(jù)空間并將其分割成兩部分的(優(yōu)選無限的)平面。所述平面可基于紋理數(shù)據(jù)元素集合中的已知和/或預(yù)期的值(例如,紋理數(shù)據(jù)元素集合的平均值)來選擇,在優(yōu)選實施方式中,所述平面就是這樣選擇的。
[0045]在尤其優(yōu)選的實施方式中,所述平面是預(yù)定義的(即,預(yù)定的),即,所述處理使用至少一個(使用一個或更多個)預(yù)定平面來分割數(shù)據(jù)空間中的紋理數(shù)據(jù)元素,并在數(shù)據(jù)空間中關(guān)于至少一個預(yù)定平面確定方向(針對一個或更多個預(yù)定平面確定方向)。
[0046]所述平面的形式將取決于數(shù)據(jù)空間(B卩,紋理數(shù)據(jù)元素的值)的維數(shù)。對于二維紋元值(數(shù)據(jù)空間),所述平面將是數(shù)據(jù)空間中的線,對于三維紋元值(數(shù)據(jù)空間),例如RGB值,所述平面將是數(shù)據(jù)空間中的二維表面,對于四維紋元值(數(shù)據(jù)空間),例如RGBA值,所述平面將是數(shù)據(jù)空間中的三維形狀,以此類推。
[0047]無論紋理數(shù)據(jù)元素的值(因此,數(shù)據(jù)空間)所具有的維數(shù)如何均可使用本發(fā)明,但最適合于相對低維的數(shù)據(jù)空間(數(shù)據(jù)值),例如(優(yōu)選地)2至4維的數(shù)據(jù)空間(數(shù)據(jù)值)。
[0048]如上所述,針對所考慮的相應(yīng)平面確定的數(shù)據(jù)空間中的方向是從數(shù)據(jù)空間中基于落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到數(shù)據(jù)空間中基于落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的方向。如下面將進(jìn)一步討論的, 申請人:已認(rèn)識到,這可用于得到待編碼的紋理數(shù)據(jù)元素值集合在數(shù)據(jù)空間中的主方向的合理且足夠精確的估計。
[0049]為此可根據(jù)需要通過(例如,且優(yōu)選地)將紋理數(shù)據(jù)元素的值與由所述平面限定的值(落在所述平面中的值)進(jìn)行比較,以確定在數(shù)據(jù)空間中紋理數(shù)據(jù)元素落在該平面的哪一偵牝來確定值落在數(shù)據(jù)空間中的所述平面各側(cè)的紋理數(shù)據(jù)元素。
[0050]用于確定所述方向的數(shù)據(jù)空間中的兩點可基于所關(guān)注的平面一側(cè)的紋理數(shù)據(jù)元素值中的一些(但非所有)。在優(yōu)選實施方式中,其基于所關(guān)注的平面一側(cè)的所有紋理數(shù)據(jù)元素值。
[0051]用于確定所述方向的數(shù)據(jù)空間中的兩點可以按照任何合適和期望的方式基于所關(guān)注的平面一側(cè)的紋理數(shù)據(jù)元素值。然而,在尤其優(yōu)選的實施方式中,它們是表示或?qū)?yīng)于落在所關(guān)注的平面一側(cè)的紋理數(shù)據(jù)元素的平均值的點。
[0052]因此,在優(yōu)選實施方式中,針對所考慮的相應(yīng)平面確定的數(shù)據(jù)空間中的方向是從落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的平均值在數(shù)據(jù)空間中的點到落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的平均值在數(shù)據(jù)空間中的點的方向。如下面將進(jìn)一步討論的, 申請人:已認(rèn)識到,這可得到待編碼的紋理數(shù)據(jù)元素值集合在數(shù)據(jù)空間中的主方向的足夠精確的估計。
[0053]因此,在優(yōu)選實施方式中,本發(fā)明包括下面的步驟,或者處理電路被配置為:針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定數(shù)據(jù)空間中從待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的平均值在數(shù)據(jù)空間中的點到待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的平均值在數(shù)據(jù)空間中的點的向量方向。
[0054]在這些布置方式中用于確定方向的數(shù)據(jù)空間中的兩個平均值點可根據(jù)需要(基于所關(guān)注的平面的各側(cè)的紋理數(shù)據(jù)元素值)確定。例如,可確定并使用紋理數(shù)據(jù)元素組的實際真正的平均值點,或者可根據(jù)需要使用真正平均值點的近似值,例如,所關(guān)注的平面一側(cè)的紋理數(shù)據(jù)元素組的最小和最大紋理數(shù)據(jù)元素值之間的中間點,或者基于所關(guān)注的平面一側(cè)的紋理數(shù)據(jù)元素值中的一些(但非所有)的平均值。使用實際平均值點將得到主方向的更好的估計。
[0055]因此,在尤其優(yōu)選的實施方式中,確定了實際平均值點(而非平均值點的近似值)之間的方向。因此,在尤其優(yōu)選的實施方式中,本發(fā)明包括下面的步驟,或者處理電路被配置為:針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定數(shù)據(jù)空間中從待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的平均值在數(shù)據(jù)空間中的點到待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的平均值在數(shù)據(jù)空間中的點的向量方向。
[0056]在這種情況下,數(shù)據(jù)空間中的平均值點可根據(jù)需要確定。例如(如,當(dāng)使用穿過數(shù)據(jù)空間的任意平面時),平面各側(cè)的數(shù)據(jù)元素的平均值可以按照正常方式通過求紋理數(shù)據(jù)元素的值之和并除以所關(guān)注的紋理數(shù)據(jù)元素數(shù)量來確定。
[0057]另選地,可確定平面的相應(yīng)側(cè)的所有值之和以得到總和值,然后,用平面一側(cè)的總和值減去分割平面上的點的值(例如,在分割平面穿過平均值的情況下,紋理數(shù)據(jù)元素集合的平均值)乘以所關(guān)注的平面一側(cè)的數(shù)據(jù)元素數(shù)量,以得到平面一側(cè)的平均值點,其將用于確定所關(guān)注的平面的所述方向。(因此,如果在所考慮的平面一側(cè)對η個紋理數(shù)據(jù)元素值求和,則應(yīng)該用η個紋理數(shù)據(jù)元素值之和減去分割平面中的值的η倍,以得到將用于所關(guān)注的平面一側(cè)的數(shù)據(jù)空間中的平均值點以用于方向確定處理。)
[0058]在需要(例如)平面給定側(cè)的紋理數(shù)據(jù)元素的值之和的情況下,可根據(jù)需要通過(例如,且優(yōu)選地)將相應(yīng)紋理數(shù)據(jù)元素值簡單地加在一起來確定該和。
[0059] 申請人:已認(rèn)識到,如果紋理數(shù)據(jù)元素的值以及分割它們的平面在數(shù)據(jù)空間中偏移,使得分割平面穿過(偏移時)數(shù)據(jù)空間中的原點,則平面一側(cè)的所有偏移紋理數(shù)據(jù)元素值之和在數(shù)據(jù)空間中的點與平面另一側(cè)的所有偏移紋理數(shù)據(jù)元素值之和在數(shù)據(jù)空間中的點之間的方向?qū)?yīng)于所關(guān)注的紋理數(shù)據(jù)元素集合在平面各側(cè)的平均值點之間的方向。(由于所有的數(shù)據(jù)值利用相同的值偏移,所以兩個偏移值和點之間的方向?qū)⑴c平面各側(cè)的平均數(shù)據(jù)值位置之間的方向相同。)
[0060]那么這意味著可通過首先使紋理數(shù)據(jù)元素的值偏移,使得穿過數(shù)據(jù)空間中的原點的平面將紋理數(shù)據(jù)元素分割成兩組,然后對平面的各相應(yīng)側(cè)的偏移數(shù)據(jù)值求和以得到數(shù)據(jù)空間中的平面各側(cè)的將用于確定方向的點,來確定平面各側(cè)的平均數(shù)據(jù)值位置之間的方向。
[0061]那么這可使得能夠僅通過將偏移數(shù)據(jù)值加在一起來確定數(shù)據(jù)空間中的方向,由此無需(潛在地)例如花費高的除法。
[0062](確實,在這種情況下確定的偏移和點之間的方向向量的大小可能不與考慮“未偏移”紋理數(shù)據(jù)元素值的情況下的大小相同。然而,這沒有關(guān)系,因為感興趣的是向量的方向,所確定的向量的大小不影響方向確定。)
[0063]在這些布置方式中,紋理數(shù)據(jù)元素值優(yōu)選地基于所關(guān)注的紋理數(shù)據(jù)元素集合的平均值偏移,因為這意味著穿過原點的平面將有效地穿過紋理數(shù)據(jù)元素集合的平均值。
[0064]因此,在尤其優(yōu)選的實施方式中,首先確定所考慮的紋理數(shù)據(jù)元素集合的平均紋理數(shù)據(jù)元素值(如,平均顏色值),然后,(例如,且優(yōu)選地,通過用紋理數(shù)據(jù)元素的實際值減去該平均值)使各個紋理數(shù)據(jù)元素的值按照該平均值偏移。
[0065]然后,優(yōu)選地利用偏移紋理數(shù)據(jù)元素值,而非原始(實際)紋理數(shù)據(jù)元素值,來確定紋理數(shù)據(jù)元素值和以及在數(shù)據(jù)空間中的方向。更優(yōu)選地,這通過針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合的偏移值分割成兩組的各個平面,確定數(shù)據(jù)空間中待編碼的紋理數(shù)據(jù)元素集合中的偏移值落在數(shù)據(jù)空間中的所述平面一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在數(shù)據(jù)空間中的點與待編碼的紋理數(shù)據(jù)元素集合中的偏移值落在數(shù)據(jù)空間中的所述平面另一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在數(shù)據(jù)空間中的點之間的向量的方向,來實現(xiàn)。
[0066]優(yōu)選地,確定數(shù)據(jù)空間中的平面各側(cè)的所有紋理數(shù)據(jù)元素的偏移值之和在數(shù)據(jù)空間中的點,因為這將得到主方向的更好的估計。然而,如果需要,也可對平面給定側(cè)的并非所有(即,一些但非所有)值求和。
[0067]如下面將進(jìn)一步討論的,這有利于方向確定處理的許多優(yōu)化。
[0068]在這些布置方式中,用于待編碼的紋理數(shù)據(jù)元素集合的平均值可同樣是(在優(yōu)選實施方式中是)紋理數(shù)據(jù)元素的實際真正的平均值,或者如果需要,其可以是真正平均值的近似值,例如最小和最大紋理數(shù)據(jù)元素值之間的中間值。(用于確定實際平均值的任何除法可能相對花費低,尤其是如果除以2的冪,然后使用該值來使數(shù)據(jù)值偏移,僅需要一次除法,而非多次除法。)
[0069]可根據(jù)需要確定數(shù)據(jù)空間中的點(如,平均數(shù)據(jù)值點)之間的方向(向量)。例如,可用數(shù)據(jù)空間中的多個點之一的向量值減去另一點的向量值。
[0070]在使用平均值使數(shù)據(jù)值偏移的情況下,可優(yōu)化方向確定處理。具體地講,如果紋理數(shù)據(jù)元素值基于其平均值偏移,則兩個偏移值和(平面的每一側(cè)一個和)之差將等于穿過數(shù)據(jù)空間中的原點的平面的情況下的和值之一的兩倍。那么這意味著,至少在穿過數(shù)據(jù)空間中的原點的平面的情況下,可僅從平面一側(cè)的所有紋理數(shù)據(jù)元素的偏移值之和確定所述方向(而無需將該和加倍(盡管如果需要可以這樣做))。
[0071]在這種情況下,使用的方向可被確定為(優(yōu)選被確定為)紋理數(shù)據(jù)元素值的數(shù)據(jù)空間(如,顏色空間)中的原點與(偏移)值落在數(shù)據(jù)空間中的所述平面一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在數(shù)據(jù)空間中的點之間的方向。優(yōu)選地,使用(偏移)值落在數(shù)據(jù)空間中的所述平面一側(cè)的所有紋理數(shù)據(jù)元素的偏移值之和在數(shù)據(jù)空間中的點。由于考慮原點,所以可僅將數(shù)據(jù)空間中的有關(guān)方向確定為落在所考慮的平面一側(cè)的紋理數(shù)據(jù)元素值的(向量)和。
[0072]因此,在尤其優(yōu)選的實施方式中,本發(fā)明的方法和設(shè)備包括下面的步驟,或者處理電路被配置為:首先確定待編碼的紋理數(shù)據(jù)元素集合的平均數(shù)據(jù)值,然后按照該平均值使各個紋理數(shù)據(jù)元素的值偏移,然后通過針對數(shù)據(jù)空間中將偏移紋理數(shù)據(jù)元素分割成兩組的至少一個平面,確定在數(shù)據(jù)空間中數(shù)據(jù)空間中的原點與待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在所述數(shù)據(jù)空間中的點之間的向量的方向,來確定使用的方向。
[0073]類似地,根據(jù)本發(fā)明的另一方面,提供了一種針對將用于圖形處理系統(tǒng)的待編碼的紋理數(shù)據(jù)元素集合,確定所述紋理數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的方法,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合,該方法包括以下步驟:
[0074]確定待編碼的紋理數(shù)據(jù)元素集合的平均數(shù)據(jù)值,然后按照該平均值使各個紋理數(shù)據(jù)元素的值偏移;
[0075]針對數(shù)據(jù)空間中將待編碼的所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的至少一個平面,確定在數(shù)據(jù)空間中數(shù)據(jù)空間中的原點與待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在所述數(shù)據(jù)空間中的點之間的向量的方向;以及
[0076]利用針對將紋理數(shù)據(jù)元素集合的偏移值分割成兩組的所述至少一個平面中的至少一個在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,確定數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素
隹A
口 O
[0077]根據(jù)本發(fā)明的另一方面,提供了一種針對將用于圖形處理系統(tǒng)的待編碼的紋理數(shù)據(jù)元素集合,確定所述紋理數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的設(shè)備,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合,所述設(shè)備包括:
[0078]處理電路,其被配置為:
[0079]確定待編碼的紋理數(shù)據(jù)元素集合的平均數(shù)據(jù)值,然后按照該平均值使各個紋理數(shù)據(jù)元素的值偏移;
[0080]針對數(shù)據(jù)空間中將待編碼的所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的至少一個平面,確定在數(shù)據(jù)空間中數(shù)據(jù)空間中的原點與待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在所述數(shù)據(jù)空間中的點之間的向量的方向;以及
[0081]利用針對將紋理數(shù)據(jù)元素集合的偏移值分割成兩組的所述至少一個平面中的至少一個在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,確定數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素
口 O
[0082]本領(lǐng)域技術(shù)人員將理解,適當(dāng)?shù)兀景l(fā)明的這些方面和實施方式可包括(優(yōu)選地,包括)本文描述的本發(fā)明的優(yōu)選和可選的特征中的任何一個或更多個或者所有。
[0083]在這些布置方式中,根據(jù)需要,方向向量可被確定為從原點到和點,或從和點到原點。同樣,根據(jù)需要,和點可以是所有正紋元值(相對于所述平面)的和點,或者所有負(fù)紋元值的和點。在優(yōu)選實施方式中,使用正值的和點。如上所述,由于考慮原點,可僅將方向計算為所有正(或所有負(fù))紋元值(相對于所述平面)的向量和。
[0084]從以上內(nèi)容將理解,因此,本發(fā)明可(優(yōu)選地就是)主要僅利用紋理數(shù)據(jù)元素數(shù)據(jù)值的比較和加法來實現(xiàn)。那么這意味著與已知基于KLT的方法不同,本發(fā)明適合于直接硬件實現(xiàn),并且適用于例如“超快”軟件編碼器。
[0085]針對確定了方向的平面優(yōu)選全部穿過所考慮的紋理數(shù)據(jù)元素集合的平均位置(值)(該平均值可為真正的平均值,或者真正平均值的近似值,如上所述)。這有助于簡化方向?qū)ふ姨幚怼?br>
[0086]因此,如果紋理數(shù)據(jù)元素的實際(B卩,未偏移)數(shù)據(jù)值將用于方向?qū)ふ姨幚恚瑒t針對確定了方向的平面或各個平面優(yōu)選穿過在數(shù)據(jù)空間中確定的紋理數(shù)據(jù)元素集合的平均值(該平均值可為真正的平均值,或者真正平均值的近似值,如上所述)。
[0087]對應(yīng)地,如果已基于所考慮的集合的紋理數(shù)據(jù)元素的平均值偏移的紋理數(shù)據(jù)元素的數(shù)據(jù)值將用于方向?qū)ふ姨幚?,則針對確定了方向的平面或各個平面優(yōu)選穿過數(shù)據(jù)空間的原點(因為在這種情況下,原點將對應(yīng)于原始紋理數(shù)據(jù)元素值的考慮偏移的平均)。
[0088]盡管也可對待編碼的給定紋理數(shù)據(jù)元素集合僅針對一個平面確定將使用的方向(如下面將進(jìn)一步討論的,在一個優(yōu)選實施方式中,就是如此), 申請人:已認(rèn)識到,如果以本發(fā)明的方式針對數(shù)據(jù)空間中分割紋理數(shù)據(jù)元素的多個不同的平面確定數(shù)據(jù)空間中的方向,則將趨于確定待編碼的給定紋理數(shù)據(jù)元素集合的主方向的更好的估計。
[0089]因此,在尤其優(yōu)選的實施方式中,本發(fā)明的方法包括下面的步驟,并且本發(fā)明的設(shè)備包括處理電路,該處理電路被配置為:
[0090]針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合分割成兩組的多個不同的平面中的每一個,確定數(shù)據(jù)空間中從數(shù)據(jù)空間中基于待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到數(shù)據(jù)空間中基于待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向;以及
[0091]利用針對將紋理數(shù)據(jù)元素集合分割成兩組的所述多個不同的平面中的至少一個在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,確定數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素集合。
[0092]如果考慮多個不同的平面,則使用的多個平面優(yōu)選地在紋理數(shù)據(jù)元素的數(shù)據(jù)(如,顏色)空間中不相關(guān),最優(yōu)選地彼此正交(或者至少與所考慮的一個或更多個其它平面正交)。優(yōu)選地,考慮多個相互正交的平面的集合。利用不相關(guān)且正交的平面增加了基于所述平面確定的方向之一將是所考慮的紋理數(shù)據(jù)元素值集合的主方向的好的估計的可能。
[0093]如果確定關(guān)于多個不同平面的方向,則優(yōu)選針對至少與數(shù)據(jù)空間的維數(shù)一樣多的平面(在優(yōu)選實施方式中,針對與數(shù)據(jù)空間中的維數(shù)一樣多的平面,即,對于N維數(shù)據(jù)空間(數(shù)據(jù)值),針對N個平面)來進(jìn)行。這有助于進(jìn)一步確保測試的至少一個平面將得到作為數(shù)據(jù)空間中的紋理數(shù)據(jù)元素值的主方向的好的估計的方向。
[0094]在這種情況下,各個平面優(yōu)選與其它平面正交。最優(yōu)選地,各個平面垂直于數(shù)據(jù)空間的多個軸之一(垂直于數(shù)據(jù)空間的各個不同的軸)(即,對于N維數(shù)據(jù)空間,所述處理優(yōu)選地使用N軸對齊的平面)。
[0095]因此,在三維數(shù)據(jù)空間(如,RGB顏色空間)的情況下,優(yōu)選考慮三個正交平面,最優(yōu)選地,考慮垂直于X軸(R軸)的平面、垂直于I軸(G軸)的平面以及垂直于z軸(B軸)的平面中的每一個)。
[0096]如果在數(shù)據(jù)空間中執(zhí)行方向確定之前數(shù)據(jù)值按照它們的平均值偏移,則優(yōu)選考慮由x=0 (R=O)限定的平面、由y=0 (G=O)限定的平面以及由z=0 (B=O)限定的平面中的每一個。在這種情況下,方向向量計算將對于由紅色=0限定的平面,等同于具有正紅色分量的所有紋元的偏移值的(向量)和(即,在按照所關(guān)注的紋元集合的平均值偏移之后值具有正紅色分量的所有紋元的偏移值的(向量)和),對于由綠色=0限定的平面,等同于具有正綠色分量的所有紋元的偏移值的(向量)和,對于由藍(lán)色=0限定的平面,等同于具有正藍(lán)色分量的所有紋元的偏移值的(向量)和(或者對應(yīng)地,對于各個平面,分別等同于具有負(fù)紅色、綠色或藍(lán)色分量的所有紋元的偏移值的(向量)和)。
[0097]對于第四維,例如RGBA顏色空間,相應(yīng)地,也應(yīng)該優(yōu)選使用垂直于第四軸(如,α軸)的第四平面(例如,由α=0限定的平面)。在這種情況下,由α=0限定的平面的第四估計向量將是具有正α分量的所有紋元的偏移值的(向量)和(或者對應(yīng)地,具有負(fù)α分量的所有紋元的偏移值的(向量)和)。
[0098]如果考慮多個不同的平面,則針對各個平面確定數(shù)據(jù)空間中的方向。然后,應(yīng)該使用所確定的方向來確定將在確定所考慮的紋理數(shù)據(jù)元素集合的基礎(chǔ)數(shù)據(jù)值時使用的數(shù)據(jù)空間中的方向。
[0099]在一個優(yōu)選實施方式中,這通過如下步驟來實現(xiàn):對所考慮的一些或所有(優(yōu)選為所有)平面的方向向量求和,從而得到所關(guān)注的平面集合的“總”方向向量,然后其將被用作將在確定所考慮的紋理數(shù)據(jù)元素集合的基礎(chǔ)數(shù)據(jù)值時使用的數(shù)據(jù)空間中的方向。
[0100]在另一尤其優(yōu)選的實施方式中,選擇所確定的多個方向之一作為將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用的方向,即,選擇所確定的多個方向之一作為將使用的方向。
[0101]因此,在優(yōu)選實施方式中,如果考慮多個不同的平面,則選擇針對多個平面之一確定的方向作為將在確定所考慮的紋理數(shù)據(jù)元素集合的基礎(chǔ)數(shù)據(jù)值時使用的數(shù)據(jù)空間中的方向。
[0102]因此,在尤其優(yōu)選的實施方式中,本發(fā)明包括下面的步驟,或者處理電路被配置為:使用和/或選擇針對數(shù)據(jù)空間中將紋理數(shù)據(jù)元素分割成兩組的所述至少一個平面之一在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的方向,作為數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素集合。
[0103]類似地,在尤其優(yōu)選的實施方式中,本發(fā)明的方法包括下面的步驟,并且本發(fā)明的設(shè)備包括處理電路,該處理電路被配置為:
[0104]針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合分割成兩組的多個不同的平面中的每一個,確定數(shù)據(jù)空間中從數(shù)據(jù)空間中基于待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到數(shù)據(jù)空間中基于待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向;以及
[0105]選擇針對將紋理數(shù)據(jù)元素集合分割成兩組的所述多個不同的平面中的一個在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的方向,作為數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素集合。
[0106]如果所考慮的多個平面之一的方向?qū)⒈贿x擇作為將使用的方向,則可根據(jù)需要選擇將使用的方向。在尤其優(yōu)選的實施方式中,數(shù)據(jù)空間中具有較長(優(yōu)選地,具有最長)向量的方向(即,兩個平均數(shù)據(jù)值點之間的距離,或者(偏移)數(shù)據(jù)值和點與原點之間的距離(如果數(shù)據(jù)值基于平均值而偏移的話)較大的方向(優(yōu)選地,兩個平均數(shù)據(jù)值點之間的距離,或者(偏移)數(shù)據(jù)值和點與原點之間的距離(如果數(shù)據(jù)值基于平均值而偏移的話)最大的方向))被選擇作為將在確定紋理數(shù)據(jù)元素集合的基礎(chǔ)數(shù)據(jù)值時使用的方向。 申請人:已認(rèn)識到,所確定的方向向量越長,其落在數(shù)據(jù)空間中的紋理數(shù)據(jù)元素值的主方向上的可能性越高,因此選擇較長或最長的方向向量作為將使用的方向應(yīng)該得到比選擇較短方向向量更好的主方向的估計。
[0107]因此,在優(yōu)選實施方式中本發(fā)明包括以下步驟:基于方向向量的長度選擇將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向(向量),所述基礎(chǔ)數(shù)據(jù)值將在對所關(guān)注的紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用(并且對應(yīng)地,基于方向向量的長度,確定是否將針對已用于分割紋理數(shù)據(jù)元素值的平面確定的方向向量用作將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向(向量),所述基礎(chǔ)數(shù)據(jù)值將在對所關(guān)注的紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用)。
[0108]類似地,本發(fā)明優(yōu)選包括以下步驟:以上述方式針對數(shù)據(jù)空間中將紋理數(shù)據(jù)元素值分割成兩組的多個平面中的一個或更多個(在優(yōu)選實施方式中,針對每一個)確定向量方向,然后基于方向向量的長度選擇那些向量之一(的方向)作為將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所關(guān)注的紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用。優(yōu)選地,選擇方向向量中足夠長的一個(優(yōu)選地,最長的一個)。
[0109]在這些布置方式中,可針對各個平面確定方向向量,然后例如通過比較各個向量的長度(在一個優(yōu)選實施方式中,就是如此)來識別并使用所確定的所有方向向量中的最長向量。
[0110]另選地,例如,可設(shè)定優(yōu)選預(yù)定的閾值向量長度,如果發(fā)現(xiàn)向量超過該長度,則使用該向量,盡管仍將確定和/或測試其它向量。在這種情況下,依次確定和/或測試各個平面的方向向量,將各個向量與閾值長度進(jìn)行比較,如果該向量超過閾值長度,則使用該向量,而不再針對任何其它平面確定和/或測試向量(如果沒有發(fā)現(xiàn)向量超過閾值長度,則優(yōu)選地使用最長向量)。
[0111]在這種迭代處理中,優(yōu)選地,按照最可能確定主方向的平面首先測試的順序來測試平面(如,基于典型紋理(如游戲內(nèi)容)的統(tǒng)計分析)。
[0112]可根據(jù)需要確定各個方向向量的長度。例如,可使用通常的利用點積的歐幾里得方法。另選地,如果需要,可使用各個向量的曼哈頓長度,以避免不得不執(zhí)行乘法。
[0113]盡管如上所述,使用多個平面可得到所關(guān)注的紋理數(shù)據(jù)元素集合在數(shù)據(jù)空間中的主方向的更精確的估計(因此,出于該原因而為優(yōu)選的), 申請人:已發(fā)現(xiàn),僅使用單個平面可能就足夠了,尤其是在特定情況下(如,對于特定紋理內(nèi)容形式)。僅考慮單個平面將降低方向估計的可能質(zhì)量,但將更快地執(zhí)行方向估計,因此可能適合于(例如)需要增加的速度并且可接受任何質(zhì)量損失的“超快”編碼實現(xiàn)。因此,在另一優(yōu)選實施方式中,僅針對數(shù)據(jù)空間中的單個平面確定方向,然后將在對紋理數(shù)據(jù)元素進(jìn)行編碼時使用該方向。
[0114]因此,在優(yōu)選實施方式中,本發(fā)明的方法包括下面的步驟,并且本發(fā)明的設(shè)備包括處理電路,該處理電路被配置為:
[0115]針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合分割成兩組的一個且僅一個平面,確定數(shù)據(jù)空間中從數(shù)據(jù)空間中基于待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到數(shù)據(jù)空間中基于待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向;以及
[0116]利用針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合的值分割成兩組的所述平面在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,作為數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素集合。
[0117]如果僅考慮數(shù)據(jù)空間中的單個平面,則優(yōu)選地,選擇將使用的平面以避免通常情況最佳方向(即,給定的典型和/或已知紋理內(nèi)容的可能的主方向)落在數(shù)據(jù)空間中將用于分割紋理數(shù)據(jù)元素值的平面中。可通過(例如)預(yù)先測試典型紋理內(nèi)容(如,游戲紋理)來確定這些通常情況最佳方向(以因此避免)。
[0118]例如, 申請人:已確定,對于RGB顏色內(nèi)容,尤其是當(dāng)數(shù)據(jù)值接近灰色時,紋理數(shù)據(jù)元素集合的主方向通常非常接近于(1,1,I)。因此,僅使用單個平面時RGB內(nèi)容將使用的優(yōu)選平面是由R+G+B=0限定的平面。在這種情況下,如果紋理數(shù)據(jù)元素值按照它們的平均值偏移,則將通過R+G+B和為正的集合中的各個紋理數(shù)據(jù)元素的R+G+B和之和(或者通過R+G+B和為負(fù)的集合中的各個紋理數(shù)據(jù)元素的R+G+B和之和)來給出和點(用于確定與RGB顏色空間中的原點之間的方向向量)。
[0119]一旦待編碼的紋理數(shù)據(jù)元素集合在數(shù)據(jù)空間中的方向已確定,則該方向可用于(優(yōu)選用于)產(chǎn)生將在對所關(guān)注的紋理數(shù)據(jù)元素集合(如,塊)進(jìn)行編碼時使用的基礎(chǔ)數(shù)據(jù)值(如,顏色)。
[0120]本發(fā)明因此還擴展至(優(yōu)選包括):使用所確定和/或選擇的紋理數(shù)據(jù)元素集合在數(shù)據(jù)空間中的方向來推導(dǎo)將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用的基礎(chǔ)數(shù)據(jù)值。
[0121]例如取決于并根據(jù)所使用的編碼方案,基礎(chǔ)數(shù)據(jù)值可包括任何合適的數(shù)據(jù)值。在優(yōu)選實施方式中,推導(dǎo)多個基礎(chǔ)數(shù)據(jù)值,(如,顏色值)的集合。
[0122]在尤其優(yōu)選的實施方式中,確定待編碼的紋理數(shù)據(jù)元素集合的包括一對數(shù)據(jù)值的基礎(chǔ)數(shù)據(jù)值集合。最優(yōu)選地,針對所關(guān)注的紋理數(shù)據(jù)元素集合確定一對端點數(shù)據(jù)值(例如,一對端點顏色值),優(yōu)選地從所述一對端點數(shù)據(jù)值(最優(yōu)選地,通過確定端點值的加權(quán)和)來插值該集合的紋理數(shù)據(jù)元素的數(shù)據(jù)(如,顏色)值。如果需要,基礎(chǔ)數(shù)據(jù)值對可相反包括(例如)基礎(chǔ)值和差值,然后所述值可組合以得到紋理數(shù)據(jù)元素的值。
[0123]可利用所確定的數(shù)據(jù)空間中的方向以任何期望且合適的方式確定基礎(chǔ)數(shù)據(jù)值,例如,取決于且根據(jù)所使用的紋理壓縮方案。
[0124]在尤其優(yōu)選的實施方式中,利用待編碼的紋理數(shù)據(jù)元素集合的平均值(其根據(jù)需要可以是紋理數(shù)據(jù)元素集合的值的真正的平均值,或者是該平均值的近似值)以及所確定的(選擇的)向量方向來確定將用于紋理數(shù)據(jù)元素集合的基礎(chǔ)數(shù)據(jù)值。
[0125]優(yōu)選使用這些值推導(dǎo)數(shù)據(jù)空間中可投影紋理數(shù)據(jù)元素值的線。優(yōu)選地,利用待編碼的紋理數(shù)據(jù)元素集合的平均值以及所確定的(選擇的)向量方向來限定數(shù)據(jù)空間中的參數(shù)線。
[0126]L=C+t*V
[0127]其中:
[0128]L是數(shù)據(jù)空間中的參數(shù)線;
[0129]C是紋理數(shù)據(jù)元素集合的平均值;并且
[0130]V是所確定的向量方向。[0131]然后,優(yōu)選使用如此推導(dǎo)的線來確定將使用的基礎(chǔ)數(shù)據(jù)值。優(yōu)選地,落在該線上的值被用作或用于推導(dǎo)將使用的基礎(chǔ)數(shù)據(jù)值。
[0132]在一個優(yōu)選實施方式中,數(shù)據(jù)空間中將投影紋理數(shù)據(jù)元素集合的紋理數(shù)據(jù)元素(在將紋理數(shù)據(jù)元素的值投影到該線上時)的確定的線上的最低和最高值點被用作或用于推導(dǎo)將使用的基礎(chǔ)數(shù)據(jù)值(端點值)。例如,最高和最低值可直接用作端點值(例如),或者可調(diào)節(jié)那些值以得到將使用的端點值,以(例如)用端點處的準(zhǔn)確度換取編碼的數(shù)據(jù)值范圍的中間處的更大的精度。
[0133]如果需要,另外或者作為替代,還可使用從數(shù)據(jù)空間中的線確定的值(如,最高和最低值)作為(例如)更復(fù)雜的基礎(chǔ)數(shù)據(jù)值確定處理的起始值(作為其輸入)。
[0134]如果在“偏移”數(shù)據(jù)值空間中推導(dǎo)所述線,則在確定將使用的實際基礎(chǔ)(如,端點)數(shù)據(jù)值時,應(yīng)該將平均數(shù)據(jù)值與從數(shù)據(jù)空間中推導(dǎo)出的線確定的數(shù)據(jù)值相加。
[0135]在優(yōu)選實施方式中,首先將集合中的所有紋理數(shù)據(jù)元素投影到數(shù)據(jù)空間中的推導(dǎo)出的線上。這優(yōu)選通過針對數(shù)據(jù)空間中的線L上最接近所關(guān)注的紋理數(shù)據(jù)元素的值的點求參數(shù)值t來完成。如果紋理數(shù)據(jù)值已利用編碼的紋理數(shù)據(jù)元素集合的平均值偏移,則參數(shù)值t可以是(并且優(yōu)選被計算為)t=dot(V,T')/dot (V, V)(其中dot O表示通常的向量點積,T’是偏移紋理數(shù)據(jù)元素值,V是所確定的向量方向)。
[0136]一旦這完成,優(yōu)選確定針對紋理數(shù)據(jù)元素集合求出的最低和最高參數(shù)值t_low和t_high (即,投影了紋理數(shù)據(jù)元素集合的紋理數(shù)據(jù)元素的數(shù)據(jù)空間中的確定的線上的最低和最高值點的參數(shù)值)。然后,優(yōu)選使用這些最低和最高參數(shù)值來定義將用于所關(guān)注的紋理數(shù)據(jù)元素集合的相應(yīng)的基礎(chǔ)(端點)數(shù)據(jù)值,優(yōu)選如下:
[0137]端點顏色l=C+t_low*V
[0138]端點顏色2=C+t_high*V
[0139]其中C是紋理數(shù)據(jù)元素集合的平均值,V是所確定的向量方向,t_low是得自紋理數(shù)據(jù)元素的最低參數(shù)值,t_high是得自紋理數(shù)據(jù)元素的最高參數(shù)值。
[0140]一旦利用數(shù)據(jù)空間中的確定的方向確定了相應(yīng)的基礎(chǔ)(如,端點)數(shù)據(jù)值,則那些數(shù)據(jù)值可用于(優(yōu)選用于)對所關(guān)注的紋理數(shù)據(jù)元素集合進(jìn)行編碼。
[0141]因此,盡管上面具體參照推導(dǎo)將在對紋理數(shù)據(jù)塊進(jìn)行編碼時使用的基礎(chǔ)數(shù)據(jù)值(如,端點顏色)的處理描述了本發(fā)明,本發(fā)明還擴展至(優(yōu)選包括):利用所確定的基礎(chǔ)數(shù)據(jù)值將紋理數(shù)據(jù)元素集合編碼為表示紋理數(shù)據(jù)元素的紋理數(shù)據(jù)塊。
[0142]因此,在尤其優(yōu)選的實施方式中,本發(fā)明還包括下面的步驟,或者處理電路被配置為:利用所確定的基礎(chǔ)數(shù)據(jù)值將紋理數(shù)據(jù)元素集合編碼為表示紋理數(shù)據(jù)元素的紋理數(shù)據(jù)塊。
[0143]類似地,本發(fā)明還擴展至(優(yōu)選包括):利用所確定的基礎(chǔ)數(shù)據(jù)值產(chǎn)生表示紋理數(shù)據(jù)元素塊(其包括所關(guān)注的紋理數(shù)據(jù)元素集合)的編碼的紋理數(shù)據(jù)塊。
[0144]編碼方式將取決于所使用的總紋理編碼方案。
[0145]在一個優(yōu)選實施方式中,首先使用所確定的基礎(chǔ)數(shù)據(jù)值來通過所確定的基礎(chǔ)(如,端點)值的插值確定將用于紋理數(shù)據(jù)元素集合的另外的(優(yōu)選兩個另外的)數(shù)據(jù)值。優(yōu)選地,然后向集合中的各個紋理數(shù)據(jù)元素分配索引值,所述索引值將紋理數(shù)據(jù)元素映射至紋理數(shù)據(jù)元素集合的如此確定的顏色中的一個(即,最接近的一個)(即,端點顏色和插值的顏色中的最接近的一個)。例如,在使用的編碼方案為S3TC、BC6或BC7的情況下將這樣做。在優(yōu)選實施方式中,通過在將紋理數(shù)據(jù)元素投影到數(shù)據(jù)空間中的確定的線上時重新縮放并量化針對紋理數(shù)據(jù)元素推導(dǎo)出的參數(shù)值“t”來完成紋理數(shù)據(jù)元素值到顏色的映射。
[0146]在另一優(yōu)選實施方式中,向各個紋理數(shù)據(jù)元素分配索引值,所述索引值將用作(或者可用于推導(dǎo))權(quán)重以用于使用針對紋理數(shù)據(jù)元素集合確定的基礎(chǔ)數(shù)據(jù)值(如,端點顏色)對紋理數(shù)據(jù)元素的數(shù)據(jù)值插值。例如,在使用的編碼方案為ASTC的情況下將這樣做。
[0147]如果所關(guān)注的紋理數(shù)據(jù)元素集合對應(yīng)于待編碼的紋理數(shù)據(jù)元素塊的所有紋理數(shù)據(jù)元素,則一旦確定紋理數(shù)據(jù)元素集合的基礎(chǔ)數(shù)據(jù)值,可對紋理數(shù)據(jù)元素塊編碼以產(chǎn)生表示紋理數(shù)據(jù)元素集合的編碼的紋理數(shù)據(jù)塊。
[0148]另一方面,如果所關(guān)注的紋理數(shù)據(jù)元素集合僅對應(yīng)于待編碼的紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)元素的子集或分區(qū),則優(yōu)選針對紋理數(shù)據(jù)元素塊所分割成的各個相應(yīng)的子集(分區(qū))重復(fù)(主)方向和基礎(chǔ)數(shù)據(jù)值確定處理,以針對紋理數(shù)據(jù)元素塊所分割成的各個子集(分區(qū))得到單獨的基礎(chǔ)數(shù)據(jù)值集合。這樣做的優(yōu)點在于,塊內(nèi)的不同分區(qū)可實際上使用不同的編碼方案(在一個優(yōu)選實施方式中,就是如此)。
[0149]如果給定紋理數(shù)據(jù)塊中的待編碼的紋理數(shù)據(jù)元素塊被分割成多個紋理數(shù)據(jù)元素“子集”或“分區(qū)”,優(yōu)選使用2、3或4個分區(qū)。
[0150]一旦確定了待編碼的紋理數(shù)據(jù)元素塊所需的所有的(主)方向和基礎(chǔ)數(shù)據(jù)(如,端點)值,則優(yōu)選產(chǎn)生表示所關(guān)注的紋理數(shù)據(jù)元素塊的編碼的紋理數(shù)據(jù)塊。
[0151]所述編碼處理可使用任何合適和需要的編碼方案。其優(yōu)選使用(優(yōu)選已知的)基于塊的編碼方案,例如S3TC、BC6、BC7或ASTC。(本發(fā)明的優(yōu)點在于其可與現(xiàn)有傳統(tǒng)的基于塊的編碼方案一起使用)。
[0152]因此,本發(fā)明的方法和設(shè)備優(yōu)選還包括下面的步驟,或者處理電路被配置為:優(yōu)選使用基于塊的編碼方案對待編碼的紋理所分割成的紋理數(shù)據(jù)元素塊進(jìn)行編碼,以得到表示紋理數(shù)據(jù)元素塊的編碼的紋理數(shù)據(jù)塊。
[0153]各個編碼的紋理數(shù)據(jù)塊應(yīng)該包括解碼器所需(和/或期望)的所有信息,以使得解碼器能夠?qū)幋a的紋理數(shù)據(jù)塊進(jìn)行解碼,以(至少近似地)再現(xiàn)塊所表示的紋理數(shù)據(jù)元素的原始陣列。為此編碼的紋理數(shù)據(jù)塊中應(yīng)該包括的數(shù)據(jù)將取決于所關(guān)注的紋理數(shù)據(jù)編碼(壓縮)方案的確切性質(zhì)。此數(shù)據(jù)可以按照任何合適和期望的方式(即,實踐中,以解碼器可識別并正確解釋的方式)布置在編碼的紋理數(shù)據(jù)塊中。
[0154]通常,優(yōu)選的是(在一個優(yōu)選實施方式中就是如此)編碼的紋理數(shù)據(jù)塊至少包括指示(或使得能夠推導(dǎo))編碼的紋理數(shù)據(jù)塊的基礎(chǔ)數(shù)據(jù)(如,顏色)值(例如,顏色端點值)的數(shù)據(jù)、以及使得解碼器能夠從塊的基礎(chǔ)數(shù)據(jù)值(如,端點顏色)確定給定紋理數(shù)據(jù)元素的值(至少其近似值)的信息。
[0155]在一個優(yōu)選實施方式中,各個編碼的紋理數(shù)據(jù)塊包括(除了別的以外)指示(或者指示如何產(chǎn)生)將用于產(chǎn)生塊所表示的紋理數(shù)據(jù)元素集合的數(shù)據(jù)值的基礎(chǔ)數(shù)據(jù)值(如,顏色端點值)集合的數(shù)據(jù)、以及指示如何使用基礎(chǔ)數(shù)據(jù)值(如,顏色端點值)集合來產(chǎn)生將使用基礎(chǔ)數(shù)據(jù)值集合的紋理數(shù)據(jù)元素集合的紋理數(shù)據(jù)元素的數(shù)據(jù)值的數(shù)據(jù)。
[0156]在尤其優(yōu)選的實施方式中,編碼的紋理數(shù)據(jù)塊包括指示如何利用編碼在塊中的整數(shù)值集合產(chǎn)生塊的基礎(chǔ)數(shù)據(jù)值集合的數(shù)據(jù)。在這種情況下,可執(zhí)行使用所述整數(shù)值來產(chǎn)生基礎(chǔ)數(shù)據(jù)值,和/或可從所述整數(shù)值推導(dǎo)將使用的一些或所有基礎(chǔ)數(shù)據(jù)值。
[0157]在尤其優(yōu)選的實施方式中,指示如何產(chǎn)生將使用的基礎(chǔ)數(shù)據(jù)值集合的數(shù)據(jù)指示將使用多個選擇的(優(yōu)選預(yù)定的)基礎(chǔ)數(shù)據(jù)值集合產(chǎn)生技術(shù)或方法中的哪一個。
[0158]如果使用分割,在一個實施方式中,紋理數(shù)據(jù)塊的各個紋理數(shù)據(jù)元素分區(qū)共享相同的基礎(chǔ)值(如,顏色端點值)、和/或指示如何產(chǎn)生基礎(chǔ)數(shù)據(jù)值集合的數(shù)據(jù)集合,所述基礎(chǔ)數(shù)據(jù)值集合將用于產(chǎn)生塊的數(shù)據(jù)值。
[0159]在使用分割的另一實施方式中,紋理數(shù)據(jù)塊的各個紋理數(shù)據(jù)元素分區(qū)具有其自己的基礎(chǔ)值(如,顏色端點值)、和/或指示如何產(chǎn)生基礎(chǔ)數(shù)據(jù)值集合的數(shù)據(jù)集合,所述基礎(chǔ)數(shù)據(jù)值集合將用于產(chǎn)生分區(qū)所對應(yīng)的特定紋理數(shù)據(jù)元素子集(即,分區(qū)所對應(yīng)的子集)的數(shù)據(jù)值。如上所述,這樣做的優(yōu)點在于塊內(nèi)的不同分區(qū)實際上可使用不同的編碼方案(在一個優(yōu)選實施方式中,就是如此)。
[0160]如果編碼的紋理數(shù)據(jù)塊可包括(或者包括)多個分區(qū),則編碼的紋理數(shù)據(jù)塊優(yōu)選還包括指示該塊所使用的分割圖案的信息。此信息可采取任何合適和期望的形式,例如向解碼器指示使用了存儲的預(yù)定義的分割圖案中的哪一個的索引。
[0161]在一個優(yōu)選實施方式中,利用分割圖案生成函數(shù)產(chǎn)生分割圖案,那么編碼的紋理數(shù)據(jù)塊優(yōu)選地包括將由解碼器使用以配置分割圖案生成函數(shù)的信息,以使得解碼器能夠產(chǎn)生所使用的特定分割圖案。此信息優(yōu)選包括分割圖案生成函數(shù)索引或種子以及分區(qū)數(shù)量,其在編碼階段用作分割圖案生成函數(shù)的輸入以用于產(chǎn)生將使用的分割圖案。(然后,解碼器優(yōu)選使用此信息以及待解碼(即,待確認(rèn)其值)的紋理數(shù)據(jù)元素的位置,作為分割圖案生成函數(shù)的輸入,以確定所關(guān)注的紋理數(shù)據(jù)元素屬于編碼的紋理數(shù)據(jù)塊的哪一分區(qū)。一旦這完成,則解碼器可(例如,且優(yōu)選地)確定將用于紋理數(shù)據(jù)元素被確定所屬于的分區(qū)的基礎(chǔ)數(shù)據(jù)值(如,端點顏色),然后使用那些數(shù)據(jù)值來確定將用于紋理數(shù)據(jù)元素本身的數(shù)據(jù)值(如,顏色值)。)
[0162]如上所述,編碼的紋理數(shù)據(jù)塊優(yōu)選包括指示如何使用塊的相應(yīng)的基礎(chǔ)數(shù)據(jù)值(如,端點顏色)集合或產(chǎn)生的基礎(chǔ)數(shù)據(jù)值集合來產(chǎn)生塊的紋理數(shù)據(jù)元素的數(shù)據(jù)值的數(shù)據(jù)。
[0163]編碼的紋理數(shù)據(jù)塊中所包括的指示如何使用基礎(chǔ)數(shù)據(jù)值(如,顏色端點值)集合來產(chǎn)生塊的各個紋理數(shù)據(jù)元素的數(shù)據(jù)值的數(shù)據(jù)可以是這樣的任何合適的數(shù)據(jù)。在優(yōu)選實施方式中,其包括索引數(shù)據(jù),其將索引賦予所關(guān)注的一些或所有紋理數(shù)據(jù)元素,并可用于從基礎(chǔ)數(shù)據(jù)值推導(dǎo)紋理數(shù)據(jù)元素的數(shù)據(jù)值。
[0164]在一個優(yōu)選實施方式中,所述索引將用于將所關(guān)注的紋理數(shù)據(jù)元素映射到塊的顏色集合中的數(shù)據(jù)值(如,顏色)(例如,就像S3TC紋理編碼方案中一樣)。
[0165]在另一優(yōu)選實施方式中,所述索引將用于從基礎(chǔ)(如,端點)數(shù)據(jù)值對給定紋理數(shù)據(jù)元素的數(shù)據(jù)值進(jìn)行插值。優(yōu)選地,各個索引將用作(或用于推導(dǎo))權(quán)重以計算基礎(chǔ)數(shù)據(jù)值(如,端點值)的加權(quán)和(然后,該加權(quán)和被用作索引所涉及的紋理數(shù)據(jù)元素的數(shù)據(jù)值)。
[0166]因此,例如,如果產(chǎn)生兩個端點數(shù)據(jù)值,則優(yōu)選使用這兩個端點數(shù)據(jù)值將用于的給定紋理數(shù)據(jù)元素的索引來從這兩個端點值推導(dǎo)紋理數(shù)據(jù)元素的數(shù)據(jù)值(優(yōu)選通過基于索引值在兩個端點數(shù)據(jù)值之間插值)。
[0167]編碼的紋理數(shù)據(jù)塊優(yōu)選包括(和/或使得能夠推導(dǎo))編碼的紋理數(shù)據(jù)塊所表示的各個單獨的紋理數(shù)據(jù)元素的索引。在一些優(yōu)選的布置方式中,這通過在編碼的紋理數(shù)據(jù)塊中為編碼的紋理數(shù)據(jù)塊所表示的每一紋理數(shù)據(jù)元素(明確地)提供索引值來完成。在其它優(yōu)選布置方式中,編碼的紋理數(shù)據(jù)塊僅編碼(明確包括)有限數(shù)量的索引值,在使用時(在解碼時)從這些索引值推導(dǎo)將用于編碼的塊所表示的紋理數(shù)據(jù)元素的索引(優(yōu)選通過從所提供的索引值適當(dāng)插值)。
[0168]在優(yōu)選實施方式中,可使用不同的“索引”編碼方式,各個編碼的紋理數(shù)據(jù)塊包括指示塊所使用的編碼方式的信息(優(yōu)選通過在編碼的紋理數(shù)據(jù)塊中包括指示塊將使用(所使用)的預(yù)定“索引模式”的信息)。優(yōu)選地,存在可使用的多個預(yù)定義的索引模式。
[0169]編碼的紋理數(shù)據(jù)塊中將包括的信息可按照任何期望的順序和布置方式包括在編碼的紋理數(shù)據(jù)塊中。在優(yōu)選實施方式中,各個編碼的紋理數(shù)據(jù)塊使用特定(優(yōu)選常用的)格式和組織方式。
[0170]本發(fā)明可用于對任何合適形式的紋理數(shù)據(jù)進(jìn)行編碼。如上所述,這種數(shù)據(jù)在其初始、原始或未編碼的形式下通常以紋理元素或紋元陣列的形式排列,因此在尤其優(yōu)選的實施方式中,本發(fā)明用于對紋理數(shù)據(jù)元素(紋元)陣列進(jìn)行編碼。如本領(lǐng)域已知的,這些陣列通常為2維的,但也可使用本發(fā)明來對3維陣列編碼(實際上,本發(fā)明的一個優(yōu)點在于其可用于以高效的方式對3維紋理編碼)。
[0171]待編碼的紋理和紋理數(shù)據(jù)元素可表示任何合適的紋理數(shù)據(jù)。在一個優(yōu)選實施方式中,所述紋理是(例如,且優(yōu)選地)在渲染圖像和/或幀以便于顯示時將用于圖形處理的紋理,例如,如本領(lǐng)域已知的,將應(yīng)用于待渲染圖元的圖像、顏色(包括灰度)、亮度、凹凸映射、陰影映射(光照映射)等。
[0172]然而,(例如)如果期望使用圖形紋理(以及圖形紋理處理)來表示和處理其它形式的數(shù)據(jù),則本發(fā)明還可用于處理和編碼(解碼)將用于處理(表示)其它形式的數(shù)據(jù)的紋理。如本領(lǐng)域已知的,除了“傳統(tǒng)”圖形目的之外,紋理還可用于(用于)圖形處理以表示和處理許多不同類型的數(shù)據(jù),例如,3D霧、流場等。本發(fā)明可同樣適用于(擴展至)圖形處理系統(tǒng)中的這些紋理類型和用途。因此,如果需要,本發(fā)明的紋理可表示在圖形處理系統(tǒng)中將被處理為紋理的其它形式的數(shù)據(jù)。
[0173]在尤其優(yōu)選的實施方式中,紋理數(shù)據(jù)元素各自表示紋理元素的顏色值,但這不是必要的。優(yōu)選地,紋理數(shù)據(jù)元素表示:每紋元具有1、2、3或4個分量(分別為亮度、亮度α、RGB和RGB α )的低動態(tài)范圍(LDR)紋理數(shù)據(jù)或者每紋元具有1、3或4個分量的高動態(tài)范圍(HDR)紋理數(shù)據(jù)。
[0174]本領(lǐng)域技術(shù)人員將理解,與紋理元素一致的實際數(shù)據(jù)值(均在其初始未編碼的原始形式及其編碼的形式下(或者至少在編碼的數(shù)據(jù)已解碼以再現(xiàn)原始數(shù)據(jù)表示時))將取決于紋理元素旨在定義或表示的“紋理”的形式。
[0175]因此,例如,如果紋理元素定義將使用的顏色,則處于其初始未編碼形式的紋理數(shù)據(jù)元素可各自包括顏色值集合(紅色、綠色、藍(lán)色(RGB)、顏色和透明度值集合(紅色、綠色、藍(lán)色、a (RGBA))或者亮度和色度值的集合,并且編碼的數(shù)據(jù)在被解碼(再現(xiàn))時將產(chǎn)生對應(yīng)的顏色值集合。
[0176]在陰影(光照)映射的情況下,例如,紋理數(shù)據(jù)元素將各自包括或表示指示(例如)紋理元素處于光照中還是陰影中以及該紋理元素的光照或陰影的量(和/或顏色)的數(shù)據(jù)值集合。類似地,對于法向映射(凹凸映射),各個紋理元素的數(shù)據(jù)將是指示該紋理元素處光的反射方向的值集合。
[0177]紋理數(shù)據(jù)元素還可(例如)包括z值(深度值)、模板值、亮度值(亮度紋理)、亮度α紋理和/或光澤度映射(即,紋理元素位置處表面是否有光澤)等。
[0178]在適當(dāng)?shù)那闆r下,各個紋理數(shù)據(jù)塊可僅用剩余數(shù)據(jù)值對產(chǎn)生再現(xiàn)原始數(shù)據(jù)所需的一些(但非所有)數(shù)據(jù)值所需的數(shù)據(jù)編碼,所述剩余數(shù)據(jù)值將作為數(shù)據(jù)再現(xiàn)處理的一部分推導(dǎo)(如,從其推導(dǎo))。因此,在一個優(yōu)選實施方式中,編碼的紋理數(shù)據(jù)塊用代表其它部分的原始數(shù)據(jù)的數(shù)據(jù)對代表一些原始紋理數(shù)據(jù)的數(shù)據(jù)進(jìn)行編碼,所述其它部分的原始數(shù)據(jù)將在解碼處理期間從編碼的數(shù)據(jù)推導(dǎo)出。
[0179]例如,在法向映射中,編碼的紋理數(shù)據(jù)可(例如)僅用第三分量(dz)對兩個法向分量(如,dx和dy)編碼,所述第三分量將在對數(shù)據(jù)解碼時從這兩個值推導(dǎo)(因為已知的是分量的平方和必須為I (因為其定義長度I的法向向量):l=dx2+dy2+dz2)。
[0180]這里應(yīng)該注意的是,如本領(lǐng)域技術(shù)人員將理解的,本文中提及“顏色”或“亮度”等相應(yīng)地是指使得所關(guān)注的顏色或亮度等能夠被再現(xiàn)于(例如)顯示器上的數(shù)據(jù)值集合。這些數(shù)據(jù)值可包括任何合適的顏色或亮度等數(shù)據(jù)集合,例如如上所述的RGBA值集合。同樣,提及產(chǎn)生編碼的紋理數(shù)據(jù)塊的數(shù)據(jù)值集合以及各個紋理元素的數(shù)據(jù)值適當(dāng)?shù)睾w了各自包括值的組合(例如顏色值集合(RGB或RGBA))的數(shù)據(jù)值。
[0181]從上述內(nèi)容將理解,本發(fā)明尤其適合于基于塊的編碼方式,其中各個編碼的紋理數(shù)據(jù)塊編碼(表示)所關(guān)注的紋理映射的較小部分(塊)(使得多個這樣的單獨的紋理數(shù)據(jù)元素塊將被編碼,以對待編碼的整個紋理(紋理數(shù)據(jù)元素陣列)(如紋理映射)編碼。因此,在尤其優(yōu)選的實施方式中,本發(fā)明還包括:首先將待編碼的紋理(如,紋理映射)再分割為多個紋理數(shù)據(jù)元素塊,然后根據(jù)本發(fā)明確定各個紋理數(shù)據(jù)元素塊的主方向并將各個紋理數(shù)據(jù)元素塊編碼為紋理數(shù)據(jù)塊。
[0182]優(yōu)選的是將編碼的紋理分割成相等尺寸的塊,S卩,使得各個編碼的紋理數(shù)據(jù)塊表示相同數(shù)量的紋理數(shù)據(jù)元素。這可(例如)簡化尋找給定紋理數(shù)據(jù)元素位于哪一編碼塊的任務(wù)。在優(yōu)選實施方式中,各個編碼的紋理數(shù)據(jù)塊對4X4、5X5、6X6、8X8、10X10、12X12、3X3X3、4X4X4、5X5X5或6X6X6紋元陣列(或其等同物)編碼。(本發(fā)明可支持許多不同的塊尺寸。)
[0183]還優(yōu)選的是各個編碼的紋理數(shù)據(jù)塊具有相同的大小,S卩,對于所關(guān)注的紋理使用固定速率編碼方案。如本領(lǐng)域已知的,這有利于編碼和解碼處理。
[0184]可根據(jù)需要選擇將紋理實際再分割為較小的塊以及編碼為編碼紋理數(shù)據(jù)塊的順序。在優(yōu)選實施方式中,按照光柵順序?qū)K編碼,盡管當(dāng)然,其它布置方式也是可能的,例如使用莫頓(Morton)順序。
[0185]將待編碼的各個紋理數(shù)據(jù)元素塊編碼為編碼數(shù)據(jù)塊的編碼處理可以按照任何合適的方式在待編碼的初始(原始)紋理數(shù)據(jù)上進(jìn)行或利用待編碼的初始(原始)紋理數(shù)據(jù)來進(jìn)行。例如,如已知的現(xiàn)有技術(shù)處理中一樣,待編碼的紋理數(shù)據(jù)元素塊可(優(yōu)選就是)首先利用可用的(即,編碼的紋理數(shù)據(jù)塊實際上可表示的)各種不同的編碼可能中的一些或全部來編碼。這將得到可能的編碼塊的集合,然后可將該集合與原始數(shù)據(jù)進(jìn)行比較,以確定(例如)塊的哪一編碼版本與原始數(shù)據(jù)比較時誤差(再現(xiàn)時)最小(然后,可選擇該編碼方式作為將在編碼時用于該原始紋理數(shù)據(jù)塊(紋元陣列)的編碼方式)。[0186]然后,這將針對原始數(shù)據(jù)(如,紋理映射)所分割成的各個不同的紋理數(shù)據(jù)元素塊重復(fù),以生成表示(且對應(yīng)于)原始數(shù)據(jù)集合(如,紋理映射)的編碼紋理數(shù)據(jù)塊流或集合。然后,可將此編碼紋理數(shù)據(jù)塊集合存儲(例如)在諸如DVD的便攜式存儲裝置上,以便于未來使用,例如,當(dāng)期望將該紋理應(yīng)用于待渲染的圖像時。優(yōu)選地,紋理被編碼為Mip映射集合,各個Mip映射利用本發(fā)明來產(chǎn)生。
[0187]原始數(shù)據(jù)(如,紋理映射)為了編碼目的而分割成的各個紋理數(shù)據(jù)元素塊優(yōu)選具有相同的尺寸。優(yōu)選將使用的塊尺寸提供給解碼器。塊尺寸優(yōu)選不被包括在編碼的紋理數(shù)據(jù)塊本身中,而是優(yōu)選單獨地提供給解碼器。例如,塊尺寸可由提供給解碼器的另一參數(shù)來隱含地指示(例如且優(yōu)選地,圖像類型),或者被包括在(指示在)與編碼紋理數(shù)據(jù)塊集合相關(guān)(附著)的(全局)數(shù)據(jù)頭中。
[0188](本領(lǐng)域技術(shù)人員將理解,反轉(zhuǎn)的解碼處理,S卩,使用編碼紋理數(shù)據(jù)塊來生成一個或更多個紋理數(shù)據(jù)元素或者紋理數(shù)據(jù)元素陣列以便于使用,將基本上是編碼處理的逆處理,因此包括(例如)確定表示所關(guān)注的紋理數(shù)據(jù)元素的編碼紋理數(shù)據(jù)塊,從識別出的編碼紋理數(shù)據(jù)塊確定將用于紋理數(shù)據(jù)元素的基礎(chǔ)數(shù)據(jù)值(如,端點顏色)集合,然后相應(yīng)地產(chǎn)生紋理數(shù)據(jù)元素的數(shù)據(jù)值(如,顏色)。)
[0189]盡管上面具體參照了用于圖形處理系統(tǒng)的紋理數(shù)據(jù)的編碼描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解,其同樣適用于其它形式的數(shù)據(jù)的編碼,尤其適用于(相似的)數(shù)據(jù)元素(如,值遵循共同或相似的格式和/或?qū)⑹?或可用于)相似或相同的目的或者表示相似的信息的數(shù)據(jù)元素)陣列或塊形式的(或能夠以該形式表達(dá)的)數(shù)據(jù)。通常,只要期望估計給定點集合在(例如)低維空間(2至4維)中的主方向(即,點呈現(xiàn)最大方差的方向)就可使用本發(fā)明(如,用于對任何低維數(shù)據(jù)集合進(jìn)行分割)。
[0190]例如,這樣的“非圖形”數(shù)據(jù)可包括用于醫(yī)療試驗、生物分類性狀測量等的多元統(tǒng)計數(shù)據(jù)集合、用于模擬的向量場、表示流體的流動方向或沖擊的彈回方向等的數(shù)據(jù)(例如,該數(shù)據(jù)將類似于上面聯(lián)系圖形數(shù)據(jù)所討論的法向映射(凹凸映射))、熱圖或聲音數(shù)據(jù)等。
[0191]在這些布置方式中,可以按照類似于本文所述的紋理數(shù)據(jù)的方式對數(shù)據(jù)編碼(解碼)。
[0192]因此,根據(jù)本發(fā)明的一個方面,提供了一種針對待編碼的數(shù)據(jù)元素集合,確定所述數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的方法,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述數(shù)據(jù)元素集合進(jìn)行編碼時用于所述數(shù)據(jù)元素集合,該方法包括以下步驟:
[0193]針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定數(shù)據(jù)空間中從數(shù)據(jù)空間中基于待編碼的數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的數(shù)據(jù)元素的值的點到數(shù)據(jù)空間中基于待編碼的數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面另一側(cè)的數(shù)據(jù)元素的值的點的向量的方向;以及
[0194]利用針對數(shù)據(jù)空間中將紋理數(shù)據(jù)元素集合分割成兩組的所述至少一個平面中的至少一個在數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,來確定數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述數(shù)據(jù)元素集合進(jìn)行編碼時用于所述數(shù)據(jù)元素
隹A
口 O
[0195]根據(jù)本發(fā)明的另一方面,提供了一種針對待編碼的數(shù)據(jù)元素集合,確定所述數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的設(shè)備,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述數(shù)據(jù)元素集合進(jìn)行編碼時用于所述數(shù)據(jù)元素集合,該設(shè)備包括:
[0196]處理電路,其被配置為:
[0197]針對數(shù)據(jù)空間中將待編碼的紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定數(shù)據(jù)空間中從數(shù)據(jù)空間中基于待編碼的數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的數(shù)據(jù)元素的值的點到數(shù)據(jù)空間中基于待編碼的數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面另一側(cè)的數(shù)據(jù)元素的值的點的向量的方向;以及
[0198]利用針對數(shù)據(jù)空間中將紋理數(shù)據(jù)元素集合分割成兩組的所述至少一個平面中的至少一個在數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,來確定數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對數(shù)據(jù)元素集合進(jìn)行編碼時用于數(shù)據(jù)元素集合。
[0199]根據(jù)本發(fā)明的另一方面,提供了一種針對待編碼的數(shù)據(jù)元素集合,確定所述數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的方法,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述數(shù)據(jù)元素集合進(jìn)行編碼時用于所述數(shù)據(jù)元素集合,該方法包括以下步驟:
[0200]確定待編碼的數(shù)據(jù)元素集合的平均數(shù)據(jù)值,然后按照該平均值使各個數(shù)據(jù)元素的值偏移;
[0201]針對數(shù)據(jù)空間中將待編碼的所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的至少一個平面,確定在數(shù)據(jù)空間中數(shù)據(jù)空間中的原點與待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在數(shù)據(jù)空間中的點之間的向量的方向;以及
[0202]利用針對將紋理數(shù)據(jù)元素集合的偏移值分割成兩組的所述至少一個平面中的至少一個在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,來確定數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素集合。
[0203]根據(jù)本發(fā)明的另一方面,提供了一種針對待編碼的數(shù)據(jù)元素集合,確定所述數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的設(shè)備,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述數(shù)據(jù)元素集合進(jìn)行編碼時用于所述數(shù)據(jù)元素集合,該設(shè)備包括:
[0204]處理電路,其被配置為:
[0205]確定待編碼的數(shù)據(jù)元素集合的平均數(shù)據(jù)值,然后按照該平均值使各個數(shù)據(jù)元素的值偏移;
[0206]針對數(shù)據(jù)空間中將待編碼的所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的至少一個平面,確定在數(shù)據(jù)空間中數(shù)據(jù)空間中的原點與待編碼的紋理數(shù)據(jù)元素集合中的值落在數(shù)據(jù)空間中的所述平面一側(cè)的一個或更多個(優(yōu)選為多個,并且優(yōu)選為所有)紋理數(shù)據(jù)元素的偏移值之和在數(shù)據(jù)空間中的點之間的向量的方向;以及
[0207]利用針對將紋理數(shù)據(jù)元素集合的偏移值分割成兩組的所述至少一個平面中的至少一個在紋理數(shù)據(jù)元素的數(shù)據(jù)空間中確定的所述方向,來確定數(shù)據(jù)空間中將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于紋理數(shù)據(jù)元素集合。
[0208]本領(lǐng)域技術(shù)人員將理解,適當(dāng)?shù)?,本發(fā)明的這些方面可包括(優(yōu)選包括)本文所述的發(fā)明的優(yōu)選和可選特征中的任一個或更多個或全部。
[0209]本發(fā)明的方法和設(shè)備可以按照任何適當(dāng)?shù)姆绞?如,以硬件或軟件)實現(xiàn)在(包括在)任何適當(dāng)?shù)难b置或部件中。在優(yōu)選實施方式中,它們可實現(xiàn)在處理器中,因此,本發(fā)明還擴展至被配置為使用本發(fā)明的方法或包括本發(fā)明的設(shè)備的處理器。在優(yōu)選實施方式中,本發(fā)明的方法和設(shè)備實現(xiàn)在硬件中,優(yōu)選實現(xiàn)在單個半導(dǎo)體平臺上。
[0210]本發(fā)明可實現(xiàn)于任何合適的系統(tǒng)中,例如適當(dāng)配置的基于微處理器的系統(tǒng)。在優(yōu)選實施方式中,本發(fā)明實現(xiàn)于基于計算機和/或微處理器的系統(tǒng)中。
[0211]例如,本發(fā)明可實現(xiàn)于圖形處理器或圖形處理裝置上,因此擴展至包括本文所述的發(fā)明的任一個或更多個方面的設(shè)備或根據(jù)這種方法來操作的圖形處理器和圖形處理平臺。在執(zhí)行上述特定功能所需的任何硬件的前提下,這種圖形處理器可另外包括圖形處理器所包括的一般功能單元中的任一個或更多個或全部。
[0212]本發(fā)明的各種功能可以按照任何期望和合適的方式實現(xiàn)。例如,本發(fā)明的功能可根據(jù)需要以硬件或軟件來實現(xiàn)。因此,例如,本發(fā)明的各種功能元件和“裝置”可包括能夠操作以執(zhí)行各種功能等的合適的處理器、控制器、功能單元、電路、處理邏輯、微處理器等,例如適當(dāng)專用的硬件元件或處理電路和/或可被編程以按照期望的方式操作的可編程硬件元件或處理電路。
[0213]在一個優(yōu)選實施方式中,本發(fā)明的設(shè)備包括被配置為以所述方式操作的專用(非可編程)處理電路。在另一優(yōu)選實施方式中,其包括被編程為以所述方式操作的可編程處理電路。
[0214]這里還應(yīng)該注意的是,本領(lǐng)域技術(shù)人員將理解,本發(fā)明的各種功能等可被復(fù)制和/或在給定處理器上并行執(zhí)行。
[0215]本領(lǐng)域技術(shù)人員還將理解,適當(dāng)?shù)?,描述的本發(fā)明的所有方面和實施方式可包括本文所述的優(yōu)選和可選特征中的任一個或更多個或全部。
[0216]根據(jù)本發(fā)明的方法可至少部分地利用軟件(如,計算機程序)來實現(xiàn)。因此,可以看出從未來方面考慮,本發(fā)明提供在安裝在數(shù)據(jù)處理裝置上時具體適于執(zhí)行本文所述的方法的計算機軟件、包括在程序元件在數(shù)據(jù)處理裝置上運行時執(zhí)行本文所述的方法的計算機軟件代碼部分的計算機程序元件、以及包括適于在程序在數(shù)據(jù)處理系統(tǒng)上運行時執(zhí)行本文所述的方法的所有步驟的代碼裝置的計算機程序。數(shù)據(jù)處理系統(tǒng)可以是微處理器、可編程FPGA (現(xiàn)場可編程門陣列)等。
[0217]本發(fā)明還擴展至包括這樣的軟件的計算機軟件載體,其在用于操作圖形處理器、渲染器或包括數(shù)據(jù)處理裝置的其它系統(tǒng)時,與所述數(shù)據(jù)處理裝置結(jié)合使所述處理器、渲染器或系統(tǒng)執(zhí)行本發(fā)明的方法的步驟。這種計算機軟件載體可以是物理存儲介質(zhì),例如ROM芯片、CD ROM或盤等,或者可以是信號,例如電線上的電信號、光學(xué)信號或衛(wèi)星的無線電信
V寸ο
[0218]還將理解,并非本發(fā)明的方法的所有步驟均需要通過計算機軟件來執(zhí)行,因此從更廣泛的方面講,本發(fā)明提供計算機軟件,這種軟件安裝在計算機軟件載體上以用于執(zhí)行本文所闡述的方法的至少一個步驟。
[0219]本發(fā)明因此可適當(dāng)?shù)貙嵤橛糜谟嬎銠C系統(tǒng)的計算機程序產(chǎn)品。這種實現(xiàn)方式可包括一系列計算機可讀指令,所述計算機可讀指令固定于諸如計算機可讀介質(zhì)(例如,磁盤、⑶ROM、ROM或硬盤)的有形的永久介質(zhì)上,或者可通過有形介質(zhì)(包括但不限于光學(xué)或模擬通信線路)或無形地利用無線技術(shù)(包括但不限于微波、紅外或其它傳輸技術(shù))經(jīng)由調(diào)制解調(diào)器或其它接口裝置傳輸至計算機系統(tǒng)。這一系列計算機可讀指令實施本文先前所述的所有或部分功能。
[0220]本領(lǐng)域技術(shù)人員將理解,這些計算機可讀指令可以用許多計算機架構(gòu)或操作系統(tǒng)所使用的許多編程語言來編寫。另外,這些指令可利用任何存儲器技術(shù)(目前或未來的)來存儲,包括但不限于半導(dǎo)體、磁或光學(xué),或者利用任何通信技術(shù)(目前或未來的)來傳輸,包括但不限于光學(xué)、紅外或微波??梢韵氲剑@種計算機程序產(chǎn)品可作為可移除介質(zhì)隨所附的印刷或電子文檔一起分發(fā)(例如,緊縮套裝軟件),用計算機系統(tǒng)預(yù)先加載到(例如)系統(tǒng)ROM或固定盤上,或經(jīng)由網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)或萬維網(wǎng))從服務(wù)器或電子公告牌分發(fā)。
【專利附圖】
【附圖說明】
[0221]現(xiàn)在將僅作為示例參照附圖描述本發(fā)明的許多優(yōu)選實施方式,附圖中:
[0222]圖1示意性地示出作為多個編碼的數(shù)據(jù)塊的圖像數(shù)據(jù)陣列的編碼;
[0223]圖2示意性地示出在描述的本發(fā)明的優(yōu)選實施方式中的分割數(shù)據(jù)塊的編碼;
[0224]圖3至圖11示出描述的本發(fā)明的優(yōu)選實施方式的編碼塊布局;
[0225]圖12示意性地示出可使用按照描述的本發(fā)明的優(yōu)選實施方式的方式編碼的紋理數(shù)據(jù)的圖形處理系統(tǒng);
[0226]圖13至圖18示出描述的本發(fā)明的優(yōu)選實施方式的主方向估計處理。
[0227]附圖中,類似的特征使用類似的標(biāo)號(只要適當(dāng))。
【具體實施方式】
[0228]現(xiàn)在將參照用于顏色映射(B卩,顏色數(shù)據(jù))形式的圖形處理的紋理數(shù)據(jù)的編碼描述本發(fā)明的優(yōu)選實施方式。然而,如上所述,本領(lǐng)域技術(shù)人員將理解,本發(fā)明可普遍適用于數(shù)據(jù)編碼,因此不應(yīng)被認(rèn)為限于這里所給出的紋理顏色數(shù)據(jù)編碼的示例。
[0229]圖1示出此實施方式的基本編碼處理。如圖1所示,原始圖像或紋理數(shù)據(jù)元素(紋元)陣列I (紋理“映射”)被再分割成多個4X4紋理元素塊2。(也可使用其它塊尺寸,如下面將進(jìn)一步討論的。)
[0230]在本實施方式中,如圖1所示,原始圖像(紋理映射)1被分割成相等尺寸的塊。這簡化了尋找給定紋理數(shù)據(jù)元素所在的塊的任務(wù),并提供恒定的數(shù)據(jù)率。
[0231]在此實施方式中,原始紋理映射數(shù)據(jù)陣列(圖像)中的各個紋理元素(紋元)表示相應(yīng)紋理元素的位置處將使用的顏色,因此其分配有包括顏色值集合(如,紅色、綠色、藍(lán)色(RGB),以及可選地,α (透明度)值)的數(shù)據(jù)值。換言之,在此實施方式中,將要編碼、產(chǎn)生等的數(shù)據(jù)值各自對應(yīng)于并表示顏色(顏色值集合)。因此,為了方便,下面的描述將主要引用“顏色”,但是應(yīng)該理解,這樣的引用指示包括表示所關(guān)注的顏色的顏色值集合的數(shù)據(jù)值。
[0232]在本實施方式中,并非將顏色數(shù)據(jù)陣列I以完整的原始形式存儲,而是將各個4X4紋理元素塊2編碼為紋理數(shù)據(jù)塊5,紋理數(shù)據(jù)塊5與原始未編碼形式的紋理數(shù)據(jù)相比尺寸減小。這實際上對原始紋理數(shù)據(jù)進(jìn)行了壓縮,從而使其存儲和處理更容易且更高效。在本實施方式中,各個編碼的紋理數(shù)據(jù)塊5使用128比特。(其它布置方式當(dāng)然也是可能的。)
[0233]如下面將進(jìn)一步討論的,各個編碼的尺寸減小的紋理數(shù)據(jù)塊5包含足夠且適當(dāng)?shù)臄?shù)據(jù)以使得能夠再現(xiàn)對應(yīng)于或表示所關(guān)注的4X4紋理元素塊的原始未編碼的數(shù)據(jù)的數(shù)據(jù)。
[0234]對于原始圖像(紋理映射)1的各個塊2,產(chǎn)生對應(yīng)的編碼的紋理數(shù)據(jù)塊5。在本實施方式中按照光柵順序?qū)?gòu)成紋理映射的各個紋理數(shù)據(jù)塊進(jìn)行編碼。當(dāng)然,其它布置方式也是可能的,例如使用莫頓順序。
[0235]因此,在本實施方式中,各個編碼的紋理數(shù)據(jù)文件包括對紋理數(shù)據(jù)元素陣列(圖像數(shù)據(jù))編碼的各個紋理數(shù)據(jù)塊的序列。
[0236]文件中的紋理數(shù)據(jù)塊的數(shù)量將取決于被編碼的紋理映射(紋理數(shù)據(jù)陣列)的大小以及(例如)數(shù)據(jù)是否以Mip映射形式存儲。如果使用Mip映射,則如果利用“η”個紋理數(shù)據(jù)塊對第一層次的紋理映射分辨率進(jìn)行編碼,則將有“η/4”個紋理數(shù)據(jù)塊用于下面的Mip映射層次,“η/16”個塊用于下一 Mip映射層次,“η/64”用于下一 Mip映射層次,“η/256”用于再下一 Mip映射層次,等等(但各個層次不小于一個塊),直到達(dá)到尺寸為1X1的Mip映射層次為止。
[0237](在本實施方式中,編碼的紋理數(shù)據(jù)可以是Mip映射(B卩,存儲有原始紋理數(shù)據(jù)陣列的多個版本以便于使用,各個版本具有不同的細(xì)節(jié)層次(分辨率))的形式并優(yōu)選以該形式存儲。Mip映射優(yōu)選逐個地存儲在存儲器中,如本領(lǐng)域所知的,各個Mip映射層次是原始陣列(圖像)的按比例縮小(按照因子2)的表示(圖像)。Mip映射按照分辨率的降序存儲,即,ηΧη、...、16Χ16、8Χ8、4Χ4、2Χ2、1Χ1。較小的Mip映射(〈8X8)各自分別存儲在單獨的編碼數(shù)據(jù)塊中。)
[0238]如下面將進(jìn)一步討論的,本實施方式支持將待編碼的給定紋元塊中的紋理數(shù)據(jù)元素(紋元)分割成塊內(nèi)的不同的子集或分區(qū)的布置方式。這示出于圖2中,圖2示出4X4紋元塊2,該紋元塊2已分割成三個分區(qū)10、11和12。因此,圖2中標(biāo)記有“a”的紋元屬于第一分區(qū)10,標(biāo)記有“b”的紋元屬于第二分區(qū)11,標(biāo)記有“c”的紋元屬于第三分區(qū)12。然后,以壓縮形式將該塊編碼為編碼的紋理數(shù)據(jù)塊13,但如將在下面更詳細(xì)說明的,該紋理數(shù)據(jù)塊具有與原始4X4紋元塊的分割有關(guān)的附加信息。
[0239]從上述內(nèi)容將理解,在本實施方式中待編碼的各個紋元塊或者紋元塊內(nèi)的各個分區(qū)將對應(yīng)于紋元的集合,各個紋元具有相應(yīng)的顏色值。如下面將進(jìn)一步討論的,本發(fā)明的紋元塊編碼處理進(jìn)行操作(除了別的以外)以確定一對端點顏色,所述端點顏色將用于對紋元塊(或紋元塊內(nèi)的分區(qū))所表示的紋元集合進(jìn)行編碼(以及解碼)。因此,本實施方式的編碼處理中的重要操作是確定將在對所關(guān)注的紋元集合進(jìn)行編碼(和解碼)時使用的一對端點顏色。
[0240]本實施方式的紋理編碼方案在確定將用于對紋理數(shù)據(jù)集合編碼(和解碼)的一對端點顏色時使用待編碼的紋理數(shù)據(jù)元素集合在顏色空間中的選定方向。
[0241]本質(zhì)上,本實施方式進(jìn)行操作以估計顏色空間中所關(guān)注的紋理數(shù)據(jù)元素集合的數(shù)據(jù)值呈現(xiàn)最大方差的方向(即,進(jìn)行操作以估計紋理數(shù)據(jù)元素的值在顏色空間中的主方向)。然后,使用所估計的主方向來推導(dǎo)將用于對所關(guān)注的紋理數(shù)據(jù)元素集合進(jìn)行編碼的端點顏色值。
[0242]這示出于圖13和圖14中。圖13示意性地示出在二維顏色空間中的二十個紋理數(shù)據(jù)元素的集合30的值。圖14示出圖13的紋理數(shù)據(jù)值的集合30以及在顏色空間中通過那些顏色值示例性估計的主方向(最佳擬合)向量V31。本實施方式使用特定處理來針對顏色空間中的給定紋理數(shù)據(jù)元素值的集合估計主方向向量V。
[0243]圖15至圖18示意性地示出在本發(fā)明的優(yōu)選實施方式中(并根據(jù)本發(fā)明)估計待編碼的紋理數(shù)據(jù)元素集合在顏色空間中的主方向的方法(因此,在本發(fā)明的優(yōu)選實施方式中(并根據(jù)本發(fā)明)確定將用于待編碼的紋理數(shù)據(jù)元素集合的顏色空間中的方向的方法)。
[0244]圖15至圖17示出本實施方式的主方向估計處理,圖18是示出在本實施方式中如何執(zhí)行該處理的流程圖。
[0245]圖13至圖17為了清晰起見示出二維顏色空間(如,RG),但是如本領(lǐng)域所知的,顏色空間通常將是3維或4維(RGB或RGBA)。無論所考慮的顏色空間的維數(shù)如何,均可使用本實施方式的技術(shù)。
[0246]這里還應(yīng)該注意的是,如圖13至圖17所示,在顏色空間中對紋元值進(jìn)行評估。因為在顏色空間中進(jìn)行評估,所以待編碼的紋元集合中的紋元的“空間”位置不影響主方向估計處理。
[0247]本實施方式的主方向估計處理的輸入是期望在顏色空間中估計主方向的紋理數(shù)據(jù)元素(紋元)集合。因此對于RGB紋理,處理的輸入將是各自用(R,G,B)顏色元組表示的紋元的集合。將相應(yīng)地輸入其它形式的紋理數(shù)據(jù)。
[0248]如上所述,輸入的紋理數(shù)據(jù)元素集合可包括(例如)待編碼的紋元塊(如,4X4紋元塊)的所有紋理數(shù)據(jù)元素。另選地,如果針對待編碼的給定紋元塊所分割成的各個不同的分區(qū)需要單獨的一對端點顏色,則輸入至主方向?qū)ふ姨幚淼募y理數(shù)據(jù)元素集合應(yīng)該是所關(guān)注的分區(qū)的紋理數(shù)據(jù)元素的集合,而非該塊的所有紋理數(shù)據(jù)元素的集合。
[0249]本實施方式的估計主方向的處理的第一步驟是針對所考慮的紋理數(shù)據(jù)元素集合確定平均顏色值C。這可以是真正的平均值,或者該平均值的近似值。
[0250]然后,對于該集合中的各個紋理數(shù)據(jù)元素,用紋元的顏色值T減去平均顏色C,以得到紋元的偏移顏色值T’,T’ =T-C。
[0251]圖15針對圖13和圖14中所示的紋理數(shù)據(jù)元素的集合30示意性地示出這一處理,其示出在將各個紋元值按照紋元集合的平均值偏移之后,將圖13和圖14所示的紋理數(shù)據(jù)元素值的集合重新映射到軸X’、Y’上。因此,圖15中的原點對應(yīng)于紋元集合的平均紋元值C0
[0252]然后,在顏色空間中使用一個或更多個無限平面將紋理數(shù)據(jù)元素分割成兩組(SP,將顏色空間分割成兩部分),并且針對各個這樣的平面,(按照下述方式)確定方向向量V’,所述方向向量V’將是所關(guān)注的紋理數(shù)據(jù)元素值集合的主方向的估計。
[0253]在本實施方式中,使用穿過偏移顏色空間X’、Y’的原點的軸對齊無限平面(即,垂直于顏色空間的一個軸的無限平面)來將偏移顏色空間分割成兩部分。(各個這樣的平面可由其法向向量唯一地定義。)考慮與紋理數(shù)據(jù)元素的顏色空間中的維數(shù)一樣多的平面。
[0254]因此,對于圖15所示的二維顏色空間,定義并考慮穿過偏移顏色空間的原點的兩個不同的軸對齊無限平面。
[0255] 申請人:已認(rèn)識到,如果通過分割數(shù)據(jù)空間的給定平面生成的方向估計V’限定了幾乎垂直于該平面的方向,則該平面所估計的方向V’將是所關(guān)注的紋理數(shù)據(jù)元素值集合的真正主方向的非常好的估計。另一方面,如果估計的方向V’限定了非常接近平行于該平面的方向,則其可能是所關(guān)注的紋理數(shù)據(jù)元素值集合的真正主方向的任意差的估計。[0256]因此,使用N維的至少N個平面以及不相關(guān)(例如,軸對齊)的平面,有助于確保至少一個“好”的方向估計(因為如果使用N-1或更少的平面,則顏色空間中將存在同時與每一平面平行的至少一個軸;該軸將導(dǎo)致差的估計)。
[0257]因此,例如對于3D空間,優(yōu)選測試全部彼此垂直的三個平面(例如,三個軸對齊平面),因為這將確保對于這三個平面中的至少一個,真正主方向與平面之間的角度將超過54度。
[0258]這示出于圖16和圖17中。圖16示出通過垂直于X軸并與Y軸對齊的平面40(即,平面X’ =0)分割的偏移顏色空間(因此,偏移紋元值),圖17示出通過垂直于Y軸并與X軸對齊的平面41 (即,平面Y’ =0)分割的偏移顏色空間。
[0259]如果需要,也可使用將顏色空間中的紋元值分割成兩組的其它平面布置方式。 [0260]對于各個這樣的平面,將平面一側(cè)的所有紋理數(shù)據(jù)元素值相加(得到和VI),同樣將平面另一側(cè)的所有紋理數(shù)據(jù)元素值相加(得到和V2)。然后,確定在顏色空間中的這兩個和點之間的向量V’:V’=V1-V2 0^V2-V1)。這針對所考慮的分割顏色空間的各個平面得到候選方向向量V’。
[0261]這示出于圖16和圖17中。
[0262]圖16示出對于與Y軸對齊的平面40,所得的正和點45和負(fù)和點46 (盡管和值被除以10以使其擬合到相同的軸上)以及所得的方向向量47。
[0263]圖17示出對于與X軸對齊的平面41,所得的正和點48和負(fù)和點49 (盡管和值同樣被除以10以使其擬合到相同的軸上)以及所得的方向向量50。
[0264]盡管如圖16和圖17所示,方向向量V’47、50被確定為顏色空間中的正和點與負(fù)和點之間的方向,但是因為紋理數(shù)據(jù)元素值已基于其平均值偏移,所以正和值的大小必須等于負(fù)和值的大小(即,和Vl+V2=0)。因此,給定平面的向量方向V’(B卩,差V1-V2)將等于正(或負(fù))(向量)和值的兩倍(即,2*V1或2*V2)。這意味著可將所關(guān)注的平面的方向向量V’確定為從原點到正和值的點(或者從原點到負(fù)和值的點)(或者反之亦然)。因此,本實施方式僅計算正(或負(fù))(向量)和值以推導(dǎo)所考慮的各個平面的方向向量V’。
[0265]可從圖16和圖17看出,這一處理將針對所考慮的二維顏色空間得到兩個可能的候選方向向量。然后,將這些候選方向向量中的一個選為所考慮的紋理數(shù)據(jù)元素集合在顏色空間中的估計的主方向。
[0266]在本實施方式中,基于所確定的候選方向向量的相應(yīng)的長度來選擇哪一候選方向向量將用作所考慮的紋理數(shù)據(jù)元素集合在顏色空間中的估計的主方向。 申請人:已認(rèn)識到,基于正與負(fù)和位置(或者等同地,正和或負(fù)和位置與原點)的最長方向向量將是所考慮的紋理數(shù)據(jù)元素值集合的主方向的最精確的估計。這可從圖16和圖17看出,其中可以看出,圖17中使用與X軸對齊的平面確定的更長的方向向量50更接近地匹配圖14中所示的所考慮的紋理數(shù)據(jù)元素值集合的主方向向量V的“理想”估計31。
[0267](總體上, 申請人:已認(rèn)識到,對于生成真正主方向的差估計的平面,應(yīng)該在相同方向上起促進(jìn)作用的紋元值相反將彼此抵消(這可從圖16和圖17看出)。因此,如果利用分割顏色空間的多個不同的平面計算出多個估計,則作為主方向的差估計的方向向量將表現(xiàn)為比主方向的好估計的和向量短的和向量。)
[0268]例如,可根據(jù)需要利用點積以通常的歐幾里得方法,或者通過計算各個向量的曼哈頓長度,來確定所確定的估計向量中的最長的一個(以避免乘法)。[0269]因此,本實施方式的方法通過以下處理估計紋理數(shù)據(jù)元素值集合的主方向:對于N維空間,挑選N個軸對齊的平面,各個平面垂直于空間的一個軸,對于各個平面P1、P2、P3..,計算估計的方向向量VI’、V2’、V3’。然后,取估計的方向向量中的最長的一個作為用于表示所關(guān)注的紋理數(shù)據(jù)元素集合在顏色空間中的主方向的方向。
[0270]因此,例如,對于3維RGB (紅色-綠色-藍(lán)色)顏色空間,將執(zhí)行下面的計算:
[0271]-對于由紅色=0限定的平面Pl;推導(dǎo)方向估計VI’是具有正紅色分量的所有偏移紋元值T’之和。
[0272]-對于由綠色=0限定的平面P2;推導(dǎo)方向估計V2’是具有正綠色分量的所有偏移紋元值T’之和。
[0273]-對于由藍(lán)色=0限定的平面P3;推導(dǎo)方向估計V3’是具有正藍(lán)色分量的所有偏移紋元值T’之和。
[0274]對于所有這三個方向估計,為了計算所述估計所需的僅有計算是比較和相加。
[0275]對于4維空間(如使用RGBA顏色而非RGB顏色時所遇到的;例如,這發(fā)生于BC7和ASTC紋理壓縮格式),則應(yīng)該如下推導(dǎo)第四估計向量V4’:
[0276]-對于由α=0限定的平面Ρ4 ;推導(dǎo)方向估計V4’是具有正α分量的所有偏移紋元值Τ’之和。
[0277]然后,應(yīng)該將估計的向量中(B卩,VI’、V2’或V3’中,或者VI’、V2’、V3’或V4’中)最長的一個選擇作為用于表示所關(guān)注的紋理數(shù)據(jù)元素集合的主方向的方向向量。
[0278]圖18是示出本實施方式的主方向估計處理的流程圖。這一處理的輸入是期望確定主方向的估計的紋理數(shù)據(jù)元素集合。如上所述,這一紋理數(shù)據(jù)元素集合可包括待編碼的紋理數(shù)據(jù)元素塊的所有紋理數(shù)據(jù)元素,或者待編碼的紋理數(shù)據(jù)元素塊的分區(qū)或子集的紋理數(shù)據(jù)元素。
[0279]如圖18所示,該處理以這一步驟開始:計算待估計主方向的紋元集合中的紋元的所有紋元顏色Ti的平均顏色C (步驟60)。
[0280]下一步驟是用所有紋元顏色Ti減去平均顏色值C,以生成各個紋元的偏移紋元值T' i (步驟 61)。
[0281]然后,針對紋理數(shù)據(jù)元素集合,通過將平面索引j和找到的最佳主方向估計V’(步驟62)以及紋元索引i和當(dāng)前方向估計V (步驟63)設(shè)定為O來開始方向?qū)ふ姨幚怼?br>
[0282]然后,存在針對所考慮的將顏色空間中的紋元分割成兩組(將紋元的顏色空間分割成兩部分)的第一平面計算(向量)和值的循環(huán)。因此,在步驟64,估算所考慮的紋元相對于所考慮的平面Pj的位置T’ i;并且如果紋元的偏移值T’,為正(即,其在平面Pj的正側(cè))(步驟65),則將紋元的偏移值T’ i與當(dāng)前方向估計V相加(步驟66)。如果在步驟65,發(fā)現(xiàn)紋元T’,在平面Pj的負(fù)側(cè),則跳過加法步驟66。
[0283]然后,在步驟67使紋元索引遞增,以移到所考慮的集合中的下一紋元。如果還未到達(dá)最后的紋元(步驟68),則處理循環(huán)回到位置估算步驟64,并對集合中的下一紋元執(zhí)行相同的處理,以此類推,直到到達(dá)所考慮的紋元集合中的最后的紋元為止(步驟68)。
[0284]一旦已考慮集合中的最后的紋元,計算當(dāng)前所考慮的平面的所確定的估計向量V的長度以及現(xiàn)有最佳方向向量估計V’的長度(步驟69 )并進(jìn)行比較(步驟70 )。
[0285]如果當(dāng)前主方向估計向量V的長度比先前最長的方向向量估計V’的長度長,則將當(dāng)前主方向估計向量V設(shè)定為目前為止找到的最佳主方向向量V’(步驟71)。如果并非如此,則將先前最長的主方向向量估計V’保留為最佳主方向估計V’。
[0286]然后,處理進(jìn)行至待考慮的下一平面并針對該平面重復(fù)(步驟72和73),以此類推,直到已考慮最后的平面為止,此時將找到的最長主方向向量估計V’選為將用于所考慮的紋理數(shù)據(jù)元素集合的主方向的估計(步驟74)。
[0287]一旦將用于紋理數(shù)據(jù)元素集合的主方向(B卩,將在確定待編碼的紋理數(shù)據(jù)元素集合的端點顏色時使用的顏色空間中的方向)的估計已確定,則利用所確定的方向來確定將用于所關(guān)注的紋理數(shù)據(jù)元素集合的端點顏色值。這在本實施方式中通過使用所關(guān)注的紋理數(shù)據(jù)元素集合的平均顏色C以及所確定(選擇)的估計主方向向量V’以形成將投影所述集合的紋理數(shù)據(jù)元素的顏色空間中的線來進(jìn)行,如下:
[0288]1.定義顏色空間中的參數(shù)線,L=C+t*V’
[0289]2.將所有紋理數(shù)據(jù)元素投影到該線上;這基本上等同于針對線L上最靠近紋元的點尋找參數(shù)值t ;給定偏移紋元值T’ =T-C,參數(shù)t可被計算為t=dot (V’,T’) /dot (V’,V’),其中dotO表示通常的向量點積。
[0290]然后,使用通過將紋理數(shù)據(jù)元素的值投影到所確定的顏色空間中的線上而獲得的最低和最高參數(shù)值t_low和t_high來推導(dǎo)將用于所關(guān)注的紋理數(shù)據(jù)元素集合的兩個端點顏色El、E2,如下:
[0291]El =C+t_low*V
[0292]E2=C+t_high*V。
[0293]當(dāng)然,如果需要,可使用利用所估計的主方向確定將用于紋理數(shù)據(jù)元素集合的端點顏色(或其它基礎(chǔ)數(shù)據(jù)值)的其它布置方式。
[0294]這些主方向和端點值估計和確定處理可根據(jù)需要(例如)利用適當(dāng)配置的專用硬件元件(處理電路),或者通過對可編程通用處理器(處理電路)編程使其按照所描述的方式操作,來實現(xiàn)。
[0295]本領(lǐng)域技術(shù)人員將理解,除了確定將使用哪些端點顏色之外,紋理數(shù)據(jù)元素的集合和塊將需要以合適的方式編碼,以使得解碼器能夠?qū)幋a的紋元塊進(jìn)行解碼,以再現(xiàn)(至少近似于)原始紋元值。
[0296]因此,現(xiàn)在將描述本實施方式中所使用的對紋理數(shù)據(jù)元素(紋元)塊進(jìn)行編碼(和解碼)的格式。
[0297]概述
[0298]本實施方式使用紋理壓縮格式,該格式被設(shè)計為提供適用于各種各樣不同類型的內(nèi)容以及各種各樣的質(zhì)量/比特率權(quán)衡的有損紋理壓縮。該格式具有以下主要特征:
[0299].128比特的塊大小
[0300].編碼的塊自包含(任何給定紋元完全由單個塊的內(nèi)容來限定)
[0301].設(shè)計為用于以下類型的紋理數(shù)據(jù)的壓縮:
[0302]-每紋元具有1、2、3或4個分量(分別為亮度、亮度-a、RGB和RGB-α)的LDR (低動態(tài)范圍)紋理數(shù)據(jù)
[0303]-每紋元具有1、3或4個分量的HDR(高動態(tài)范圍)紋理數(shù)據(jù)
[0304].索引比特與顏色端點比特之間細(xì)粒級每塊可調(diào)節(jié)的比特分配。[0305].2D 和 3D 變型。
[0306].各個塊表示紋元的矩形或立方形覆蓋面積(footprint)。覆蓋面積尺寸確定此紋理格式的比特率,并且對于紋理整體而言是全局的。
[0307]2D變型所支持的覆蓋面積尺寸為:
[0308]-4X4 (8bpp)
[0309]-5X4 (6.40bpp)
[0310]-5X5 (5.12bpp)
[0311]-6X5 (4.27bpp)
[0312]-6X6 (3.56bpp)
[0313]-8X5 (3.20bpp)
[0314]-8X6 (2.67bpp)
[0315]-10 X 5 (2.56bpp)
[0316]-10X6 (2.13bpp)
[0317]-8X8 (2bpp)
[0318]-10X8 (1.60bpp)
[0319]-10X10 (1.28bpp)
[0320]-12X10 (1.07bpp)
[0321]-12X12 (0.88bpp)
[0322]3D變型所支持的覆蓋面積尺寸為:
[0323]-3X3X3 (4.74bpp)
[0324]-4X3X3 (3.56bpp)
[0325]-4X4X3 (2.67bpp)
[0326]-4X4X4 (2bpp)
[0327]-5X4X4 (1.60bpp)
[0328]-5X5X4 (1.28bpp)
[0329]-5X5X5 (1.02bpp)
[0330]-6X5X5 (0.85bpp)
[0331]-6X6X5 (0.71bpp)
[0332]-6X6X6 (0.59bpp)
[0333]所支持的紋理數(shù)據(jù)的類型(分量計數(shù),LDR對HDR)不取決于覆蓋面積尺寸;所有類型在所有尺寸下均可用。
[0334].利用分割圖案生成函數(shù)的塊分割;各個分區(qū)具有單獨的一對端點顏色。該格式使得單個塊內(nèi)的不同分區(qū)能夠具有不同的端點類型。該格式支持每塊I至4個分區(qū)。
[0335].索引抽取:該格式使得能夠僅針對一些紋元指定索引,而剩余紋元使用填充程序;這在較低比特率下尤其有用。
[0336].空范圍(Void Extent):該格式提供編碼以指示紋理內(nèi)的大的空區(qū)域。
[0337].能夠針對不同的Mip映射層次使用不同的數(shù)據(jù)率。
[0338]塊的布局
[0339]如果塊禁用分割,則編碼的塊具有下面的格式:
【權(quán)利要求】
1.一種針對將用于圖形處理系統(tǒng)的待編碼的紋理數(shù)據(jù)元素集合,確定所述紋理數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的方法,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合,該方法包括以下步驟: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的從所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向;以及 利用針對所述數(shù)據(jù)空間中的將所述紋理數(shù)據(jù)元素集合分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合。
2.根據(jù)權(quán)利要求1所述的方法,其中,被編碼的所述紋理數(shù)據(jù)元素集合包括紋理為了編碼目的而被分割成的紋理數(shù)據(jù)元素塊的所有紋理數(shù)據(jù)元素,或者紋理為了編碼目的而被分割成的紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)元素的子集。
3.根據(jù)權(quán)利要求1或2所述的方法,其中,針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的從所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向的步驟包括以下步驟: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的從`待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的平均值在所述數(shù)據(jù)空間中的點到待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的平均值在所述數(shù)據(jù)空間中的點的向量的方向。
4.根據(jù)權(quán)利要求1、2或3所述的方法,該方法還包括以下步驟:首先確定所考慮的紋理數(shù)據(jù)元素集合的平均紋理數(shù)據(jù)元素值,然后按照所確定的平均值使各個紋理數(shù)據(jù)元素的值偏移。
5.根據(jù)權(quán)利要求4所述的方法,其中,以下步驟: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的從所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向;以及 利用針對所述數(shù)據(jù)空間中的將所述紋理數(shù)據(jù)元素集合分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合, 包括以下步驟: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的所述數(shù)據(jù)空間中的原點與待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的偏移值之和在所述數(shù)據(jù)空間中的點之間的向量的方向;以及 利用針對將所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合。
6.根據(jù)前述權(quán)利要求中的任一項所述的方法,其中,確定了所述數(shù)據(jù)空間中的所述向量的方向的、所述數(shù)據(jù)空間中的分割所述紋理數(shù)據(jù)元素的各個平面垂直于所述數(shù)據(jù)空間的多個軸中的一個。
7.根據(jù)前述權(quán)利要求中的任一項所述的方法,該方法還包括以下步驟: 基于所述數(shù)據(jù)空間中的所述向量的長度,確定是否將針對已用于分割所述紋理數(shù)據(jù)元素值的平面確定的方向用作將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用。
8.根據(jù)前述權(quán)利要求中的任一項所述的方法,該方法包括以下步驟:針對所述數(shù)據(jù)空間中的分割所述紋理數(shù)據(jù)元素的多個不同的平面中的每一個確定所述數(shù)據(jù)空間中的向量的方向。
9.根據(jù)權(quán)利要求8所述的方法`,該方法還包括以下步驟:基于用于確定所述數(shù)據(jù)空間中的所述方向的所述向量在所述數(shù)據(jù)空間中的長度,選擇針對所述數(shù)據(jù)空間中的將所述紋理數(shù)據(jù)元素分割成兩組的所述多個不同的平面中的一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,作為所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合。
10.一種對用于圖形處理系統(tǒng)的紋理映射進(jìn)行編碼的方法,該方法包括以下步驟: 將待編碼的紋理映射分割成多個紋理數(shù)據(jù)元素塊;以及 針對各個紋理數(shù)據(jù)元素塊: 利用前述權(quán)利要求中的任一項所述的方法確定所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的至少一個方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素塊進(jìn)行編碼時使用; 利用針對所述紋理數(shù)據(jù)元素塊確定的所述數(shù)據(jù)空間中的所述至少一個方向來推導(dǎo)將在對所述紋理數(shù)據(jù)元素塊進(jìn)行編碼時使用的至少一個基礎(chǔ)數(shù)據(jù)值;以及 利用推導(dǎo)出的所述至少一個基礎(chǔ)數(shù)據(jù)值將所述紋理數(shù)據(jù)元素塊編碼為表示所述紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)塊。
11.根據(jù)權(quán)利要求10所述的方法,其中,利用針對所述紋理數(shù)據(jù)元素塊確定的所述數(shù)據(jù)空間中的所述至少一個方向來推導(dǎo)將在對所述紋理數(shù)據(jù)元素塊進(jìn)行編碼時使用的至少一個基礎(chǔ)數(shù)據(jù)值的步驟包括以下步驟: 利用針對所述紋理數(shù)據(jù)元素塊確定的所述數(shù)據(jù)空間中的所述至少一個方向來推導(dǎo)將在對所述紋理數(shù)據(jù)元素塊進(jìn)行編碼時使用的一對端點數(shù)據(jù)值。
12.一種用于針對將用于圖形處理系統(tǒng)的待編碼的紋理數(shù)據(jù)元素集合,確定所述紋理數(shù)據(jù)元素在數(shù)據(jù)空間中的方向的設(shè)備,所述方向?qū)⒃诖_定基礎(chǔ)數(shù)據(jù)值時使用,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合,該設(shè)備包括: 處理電路,其被配置為: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的從所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向;以及 利用針對所述數(shù)據(jù)空間中的將所述紋理數(shù)據(jù)元素集合分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合。
13.根據(jù)權(quán)利要求12所述的設(shè)備,其中,被編碼的所述紋理數(shù)據(jù)元素集合包括紋理為了編碼目的而被分割成的紋理數(shù)據(jù)元素塊的所有紋理數(shù)據(jù)元素,或者紋理為了編碼目的而被分割成的紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)元素的子集。
14.根據(jù)權(quán)利要求12或13所述的設(shè)備,其中,所述處理電路被配置為: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的從待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的平均值在所述數(shù)據(jù)空間中的點到待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的平均值在所述數(shù)據(jù)空間中的點的向量的方向。
15.根據(jù)權(quán)利要求12、1`3或14所述的設(shè)備,其中,所述處理電路還被配置為:首先確定所考慮的紋理數(shù)據(jù)元素集合的平均紋理數(shù)據(jù)元素值,然后按照所確定的平均值使各個紋理數(shù)據(jù)元素的值偏移。
16.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述處理電路被配置為: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的所述數(shù)據(jù)空間中的原點與待編碼的所述紋理數(shù)據(jù)元素集合中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的偏移值之和在所述數(shù)據(jù)空間中的點之間的向量的方向;以及 利用針對將所述紋理數(shù)據(jù)元素集合的偏移值分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集合。
17.根據(jù)權(quán)利要求12至16中的任一項所述的設(shè)備,其中,確定了所述數(shù)據(jù)空間中的所述向量的方向的、所述數(shù)據(jù)空間中的分割所述紋理數(shù)據(jù)元素的各個平面垂直于所述數(shù)據(jù)空間的多個軸中的一個。
18.根據(jù)權(quán)利要求12至17中的任一項所述的設(shè)備,其中,所述處理電路被配置為:基于所述數(shù)據(jù)空間中的所述向量的長度,確定是否將針對已用于分割所述紋理數(shù)據(jù)元素值的平面確定的方向用作將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時使用。
19.根據(jù)權(quán)利要求12至18中的任一項所述的設(shè)備,其中,所述處理電路被配置為:針對所述數(shù)據(jù)空間中的分割所述紋理數(shù)據(jù)元素的多個不同的平面中的每一個確定所述數(shù)據(jù)空間中的向量的方向。
20.根據(jù)權(quán)利要求19所述的設(shè)備,其中,所述處理電路被配置為:基于用于確定所述數(shù)據(jù)空間中的所述方向的所述向量在所述數(shù)據(jù)空間中的長度,選擇針對所述數(shù)據(jù)空間中的將所述紋理數(shù)據(jù)元素分割成兩組的所述多個不同的平面中的一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,作為所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素集合進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素集口 ο
21.一種用于對用于圖形處理系統(tǒng)的紋理映射進(jìn)行編碼的設(shè)備,該設(shè)備包括: 處理電路,其被配置為: 將待編碼的紋理映射分割成多個紋理數(shù)據(jù)元素塊; 并且被配置為,針對各個紋理數(shù)據(jù)元素塊: 針對所述數(shù)據(jù)空間中的將待編碼的所述紋理數(shù)據(jù)元素塊分割成兩組的至少一個平面,確定所述數(shù)據(jù)空間中的從所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素塊中的值落在所述數(shù)據(jù)空間中的所述平面一側(cè)的紋理數(shù)據(jù)元素的值的點到所述數(shù)據(jù)空間中的基于待編碼的所述紋理數(shù)據(jù)元素塊中的值落在所述數(shù)據(jù)空間中的所述平面另一側(cè)的紋理數(shù)據(jù)元素的值的點的向量的方向; 利用針對所述數(shù)據(jù)空間中的將所`述紋理數(shù)據(jù)元素塊分割成兩組的所述至少一個平面中的至少一個、所述紋理數(shù)據(jù)元素的在所述數(shù)據(jù)空間中確定的所述方向,來確定所述數(shù)據(jù)空間中的將在確定基礎(chǔ)數(shù)據(jù)值時使用的方向,所述基礎(chǔ)數(shù)據(jù)值將在對所述紋理數(shù)據(jù)元素塊進(jìn)行編碼時用于所述紋理數(shù)據(jù)元素塊; 利用針對所述紋理數(shù)據(jù)元素塊確定的所述數(shù)據(jù)空間中的所述至少一個方向來推導(dǎo)將在對所述紋理數(shù)據(jù)元素塊進(jìn)行編碼時使用的至少一個基礎(chǔ)數(shù)據(jù)值;以及 利用推導(dǎo)出的所述至少一個基礎(chǔ)數(shù)據(jù)值將所述紋理數(shù)據(jù)元素塊編碼為表示所述紋理數(shù)據(jù)元素塊的紋理數(shù)據(jù)塊。
22.根據(jù)權(quán)利要求21所述的設(shè)備,其中,所述處理電路被配置為:利用針對所述紋理數(shù)據(jù)元素塊確定的所述數(shù)據(jù)空間中的所述至少一個方向來推導(dǎo)將在對所述紋理數(shù)據(jù)元素塊進(jìn)行編碼時使用的一對端點數(shù)據(jù)值。
23.根據(jù)權(quán)利要求21或22所述的設(shè)備,該設(shè)備還包括權(quán)利要求13至20中的任一項所述的特征。
24.一種包括計算機軟件代碼的計算機程序,當(dāng)所述程序在數(shù)據(jù)處理裝置中運行時,所述計算機軟件代碼用于執(zhí)行權(quán)利要求1至11中的任一項所述的方法。
【文檔編號】H04N19/186GK103533364SQ201310279623
【公開日】2014年1月22日 申請日期:2013年7月4日 優(yōu)先權(quán)日:2012年7月4日
【發(fā)明者】J·尼斯塔德 申請人:Arm有限公司