專利名稱:基于各向異性的紋理過濾方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理領(lǐng)域,特別涉及一種基于各向異性的紋理過濾方法和裝置。
技術(shù)背景
為了加速紋理映射,減少映射過程的計算消耗,常采用預(yù)過濾紋理過程,使得每個 像素只需要提取很少的預(yù)過濾的采樣點計算,從而提高了計算效果。
現(xiàn)有技術(shù)中一般可以采用二重積分定義預(yù)過濾,即g(x,y) = / / f(x,y) -h(x-u, y-v) (!!! dv,其中,f為輸入圖像(即紋理圖像),g為輸出圖像,h為過濾器內(nèi)核。在該 三線性插值算法選用的過濾器是正方形的,其是一種正方形過濾技術(shù)?,F(xiàn)有的一種典型的 正方形過濾技術(shù)為MIP-MAP (多紋理映射)預(yù)過濾。MIP-MAP預(yù)過濾的主要思想是將紋理圖 像表達為不同的分辨率的紋理數(shù)組。例如,給定一個分辨率為512X512的紋理圖像,可將 紋理空間按紋理像素劃分為512X512個小正方形,取每個正方形的紋理平均值作為第一 級標(biāo)準(zhǔn)采樣,稱為0層;然后把紋理空間劃分為256 X 256個小正方形,取每個正方形的紋理 平均值作為第二級標(biāo)準(zhǔn)采樣(即第一級4個相鄰像素顏色值的平均),過濾形成只有一半分 辨率的新圖像,稱為1層。在新圖像的基礎(chǔ)上繼續(xù)這種處理過程,直至圖像分辨率為1X1, 這樣就形成了金字塔的紋理存儲結(jié)構(gòu)。在三線性插值算法中,屏幕空間的一個像素被看成 以一個單位像素為邊長的正方形,將屏幕空間的像素投影到紋理空間,用一個正方形去逼 近它的投影形狀,并計算出正方形的邊長,根據(jù)計算的此邊長決定在金字塔的哪一 L層進 行取樣。然后,在L和L+1層上分別取四個取樣進行雙線性插值,得到兩個層上的顏色值, 再在這兩個顏色值上做線性插值,得到最后的像素顏色值。由上述描述可知,該技術(shù)做了三 次線性插值,因此被稱為三線性插值或三線性過濾。并且,選用的過濾器是正方形的,是一 種正方形過濾技術(shù)。
三線性過濾是建立在各向同性的正方形過濾器基礎(chǔ)上的,然而,像素的映射是具 有各向異性的,使用各向同性的三線性過濾方法會使得圖像變得模糊。
因此,為了克服各向同性過濾的缺點,現(xiàn)有技術(shù)中還提出了基于各向異性的過濾 方法。
現(xiàn)有的基于各向異性的過濾方法有inline (fast ellipse line,快速橢圓直線) 算法。inline算法的思想是將屏幕空間的像素看成是一個以這個像素為中心,以一個單位 像素為半徑的圓,投影到紋理空間即為一個橢圓,計算出橢圓的短軸半徑和長軸半徑,用短 軸半徑?jīng)Q定在哪一層取樣,用短軸半徑和長軸半徑?jīng)Q定沿著橢圓長軸的取樣數(shù)。
雖然,inline算法沿著橢圓長軸使用多個各向同性的三線性過濾來逼近橢圓的 值,降低了硬件實現(xiàn)的代價,但是,因為inline算法使用了多個各向異性的三線性過濾,這 樣雖然在L層足夠采樣但在L+1層上為過采樣,造成圖像出現(xiàn)一定的模糊。因此,需要一種 方法解決上述問題。發(fā)明內(nèi)容
本發(fā)明的目的旨在至少解決上述技術(shù)缺陷之一,特別是解決各向異性Wi^line 算法在L+1層過采樣造成圖像模糊的問題。
為了達到上述目的,本發(fā)明提出一種基于各向異性的紋理過濾方法,包括以下步 驟對紋理圖像進行多紋理映射MIP-MAP預(yù)過濾,將所述紋理圖像表達為具有不同分辨率 的紋理數(shù)組以作為紋理查找表;將屏幕空間中的像素投影到紋理空間,在所述紋理空間中 所述像素為橢圓;計算所述橢圓的短軸半徑、長軸半徑、長軸半徑與u軸的夾角;根據(jù)所述 橢圓的短軸半徑確定在所述紋理查找表中的取樣層L ;根據(jù)所述橢圓的短軸半徑、長軸半 徑及長軸半徑與u軸的夾角確定在所述取樣層L的取樣數(shù)及沿著橢圓長軸取樣點的位置, 并在所述取樣層L進行取樣,得其顏色值;根據(jù)取樣層L+1的取樣數(shù)沿著橢圓長軸在取樣層 L+1取樣,得其顏色值;將所述取樣層L和取樣層L+1中得到的顏色值做線性插值,得到最 終的顏色值。
本發(fā)明另一方面還提出一種基于各向異性的紋理過濾裝置,包括預(yù)過濾模塊、投 影模塊和計算模塊。其中,所述預(yù)過濾模塊用于對紋理圖像進行MIP-MAP預(yù)過濾,將所述紋 理圖像表達為具有不同分辨率的紋理數(shù)組以作為紋理查找表;所述投影模塊,用于將屏幕 空間中的像素投影到紋理空間,在所述紋理空間中所述像素為橢圓;所述計算模塊,用于計 算所述橢圓的短軸半徑、長軸半徑、長軸半徑與u軸的夾角,并根據(jù)所述橢圓的短軸半徑確 定在所述紋理查找表中的取樣層L,以及根據(jù)所述橢圓的短軸半徑、長軸半徑及長軸半徑與 u軸的夾角決定確定在所述取樣層L的取樣數(shù)及沿著橢圓長軸取樣點的位置,并在所述取 樣層L進行取樣,得取樣層L的顏色值,再根據(jù)取樣層L+1的取樣數(shù)沿著橢圓長軸在取樣層 L+1取樣,得取樣層L+1的顏色值,并將所述取樣層L和取樣層L+1中得到的顏色值做線性 插值,得到最終的顏色值。
本發(fā)明通過在L+1層采用L層取樣數(shù)的1/4為取樣數(shù),避免了過采樣,使得當(dāng)紋理 視角離觀察點很遠的時候仍然保持清晰。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實踐了解到。
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變 得明顯和容易理解,其中
圖1為本發(fā)明實施例的基于各向異性的紋理過濾方法的流程圖2為本發(fā)明實施例的圖像金字塔的示意圖3為本發(fā)明實施例的圖像金字塔的存儲方式示意圖4為本發(fā)明實施例的像素投影的示意圖5為本發(fā)明實施例的屏幕空間像素(X,y)投影到紋理空間得橢圓的示意圖6為本發(fā)明實施例的紋理空間中的橢圓短軸半徑和長軸半徑小于一個像素的 情況示意圖7為本發(fā)明實施例的L層取樣數(shù)為偶數(shù)時的取樣示意圖8為本發(fā)明實施例的L層取樣數(shù)為奇數(shù)時的取樣示意圖9為本發(fā)明實施例的在L層和L+1層取樣的示意圖10為本發(fā)明實施例的基于各向異性的紋理過濾裝置的結(jié)構(gòu)圖11-1為三線性過濾方法的像素投影示意圖11-2為三線性過濾方法的取樣示意圖11-3為本發(fā)明實施例的紋理樣圖11-4為三線性過濾方法的投影結(jié)果示意圖11-5為對應(yīng)于圖11-4中的黑色邊框部分放大3倍后的結(jié)果示意圖12-1為inline算法的取樣示意圖12-2為inline算法的投影結(jié)果示意圖12-3為對應(yīng)于圖12-2中的黑色邊框部分放大3倍后的結(jié)果示意圖13-1為本發(fā)明實施例的過濾方法的投影結(jié)果示意圖13-2為對應(yīng)于圖13-1中的黑色邊框部分放大3倍后的結(jié)果示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終 相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附 圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
如圖1所示,為本發(fā)明實施例的基于各向異性的紋理過濾方法的流程圖,包括以 下步驟
步驟S101,對紋理圖像進行多紋理映射MIP-MAP預(yù)過濾,將紋理圖像表達為具有 多個不同分辨率的紋理數(shù)組作為紋理查找表,形成一個分辨率逐級遞減的圖像金字塔。
在本發(fā)明的實施例中,每一級圖像分辨率均取為高一級圖像分辨率的一半。下面 以分辨率為256X256的原始紋理圖像為例進行說明。首先,將紋理空間按照紋理像素劃 分為256X256個小正方形,取每個正方形的紋理平均值作為第一級標(biāo)準(zhǔn)采樣數(shù)據(jù),稱為0 層。然后,繼續(xù)取第二層的分辨率為第一層的一半,即將紋理空間劃分為個小正 方形,取每個正方形的紋理平均值作為第一級標(biāo)準(zhǔn)采樣數(shù)據(jù),稱為1層。以此類推,直至圖 像分辨率為1X1,這樣就形成了如圖2所示的分辨率逐級遞減的圖像金字塔。
紋理圖像經(jīng)過MIP-MAP預(yù)過濾后,圖像的集合將存儲在MIP-MAP表中。如圖3所示 為本發(fā)明實施例的圖像金字塔的存儲方式,包括紅(R)、綠(G)、藍(B)三個分量的MIP-MAP 表存儲在512X512的內(nèi)存塊中??梢?,一個紋理圖像的MIP-MAP表需要的內(nèi)存大小為紋理 圖像所占內(nèi)存的4/3倍。
應(yīng)理解,上述實施例僅是示意性的實施例,并不限制本發(fā)明的范圍。
步驟S102,將屏幕空間像素投影到紋理空間。
如圖4所示,為本發(fā)明實施例的像素投影的示意圖。在圖中,屏幕空間的像素被看 成以這個像素為圓心,以一個單位像素為半徑的圓,這樣,相鄰像素的區(qū)域相互交替。將屏 幕空間的像素投影到紋理空間后,被看成一個橢圓,且紋理空間的橢圓相互交替。這樣做的 目的在于能夠在紋理空間足夠采樣,抵抗鋸齒的發(fā)生。
步驟S103,計算橢圓的短軸半徑、長軸半徑及長軸半徑與u軸的夾角。
如圖5所示,為本發(fā)明實施例的屏幕空間像素(X,y)投影到紋理空間得橢圓的示意圖。在紋理空間中,向量H =
權(quán)利要求
1.一種基于各向異性的紋理過濾算法,其特征在于,包括以下步驟對紋理圖像進行多紋理映射MIP-MAP預(yù)過濾,將所述紋理圖像表達為具有不同分辨率 的紋理數(shù)組以作為紋理查找表;將屏幕空間中的像素看成以一個單位像素為半徑的圓,將所述像素投影到紋理空間, 在所述紋理空間中投影的形狀為橢圓;計算所述橢圓的短軸半徑、長軸半徑、長軸半徑與u軸的夾角; 根據(jù)所述橢圓的短軸半徑確定在所述紋理查找表中的取樣層L ; 根據(jù)所述橢圓的短軸半徑、長軸半徑及長軸半徑與u軸的夾角確定在所述取樣層L的 取樣數(shù)及沿著橢圓長軸取樣點的位置,并在所述取樣層L進行取樣,得其顏色值; 根據(jù)取樣層L+1的取樣數(shù)沿著橢圓長軸在取樣層L+1取樣,得其顏色值; 將所述取樣層L和取樣層L+1中得到的顏色值做線性插值,得到最終的顏色值。
2.如權(quán)利要求1所述的基于各向異性的紋理過濾方法,其特征在于,所述根據(jù)所述橢 圓的短軸半徑確定在所述紋理查找表中的取樣層L,包括如果level = Iog2 (minorRadius)為整數(shù),則在level層取樣,其中minorRadius為短 軸半徑;如果level = Iog2 (minorRadius)為浮點數(shù),則分別在[/eve/」層和「/eve/]取樣,其中 minorRadius為短軸半徑,L」為向下取整操作,「]為向上取整操作。
3.如權(quán)利要求1所述的基于各向異性的紋理過濾方法,其特征在于,所述根據(jù)所述橢 圓的短軸半徑、長軸半徑及長軸半徑與u軸的夾角確定在所述取樣層L的取樣數(shù)包括所述取樣層 L 的取樣數(shù)為 Number = 2* (majorRadius/minorRadius) _1,如果 Number 為 浮點數(shù),則向上取整,其中majorRadius為長軸半徑,minorRadius為短軸半徑。
4.如權(quán)利要求1所述的基于各向異性的紋理過濾方法,其特征在于,所述根據(jù)所述橢 圓的短軸半徑、長軸半徑及長軸半徑與u軸的夾角確定所述取樣點的位置包括所述取樣層L的取樣點坐標(biāo)為(u,v) = (ufflid, Vfflid)+η/2*(Δu, Δν),其中,(umid, Vfflid)為所述橢圓圓心的坐標(biāo),(Au,Δ ν)為相鄰兩個取樣點的坐標(biāo)軸投影距離,
5.如權(quán)利要求4所述的基于各向異性的紋理過濾方法,其特征在于,所述Au= cos (theta) ^lineLength/ (Number-I), Δ ν = sin (theta) ^lineLength/ (Number_l),其中, IineLength = 2*(majorRadius-minorRadius),為取樣直線的長度,即第一個取樣點到最 后一個取樣點的距離,theta為長軸半徑與u軸的夾角。
6.如權(quán)利要求1所述的基于各向異性的紋理過濾方法,其特征在于,其中,所述取樣層 L+1的取樣數(shù)為所述取樣層L取樣數(shù)的1/4,即M/m&r’=「iVWw&r/4"l ,其中Number'為取樣 層L+1的取樣數(shù),Number為取樣層L的取樣數(shù),「1為向上取整操作。
7.如權(quán)利要求1所述的基于各向異性的紋理過濾方法,其特征在于,所述最終的顏色 值為Color = CL*(l-f)+CLl*f,其中,CL為在所述取樣層L得到的顏色值,CLl為在所述取樣層L+1得到的顏色值
8.一種基于各向異性的紋理過濾裝置,其特征在于,包括預(yù)過濾模塊、投影模塊和計算 模塊,所述預(yù)過濾模塊,用于對紋理圖像進行MIP-MAP預(yù)過濾,將所述紋理圖像表達為具有 不同分辨率的紋理數(shù)組以作為紋理查找表;所述投影模塊,用于將屏幕空間中的像素看成以一個單位像素為半徑的圓,將所述像 素投影到紋理空間,在所述紋理空間中投影的形狀為橢圓;所述計算模塊,用于計算所述橢圓的短軸半徑、長軸半徑、長軸半徑與u軸的夾角,并 根據(jù)所述橢圓的短軸半徑確定在所述紋理查找表中的取樣層L,以及根據(jù)所述橢圓的短軸 半徑、長軸半徑及長軸半徑與u軸的夾角決定確定在所述取樣層L的取樣數(shù)及沿著橢圓長 軸取樣點的位置,并在所述取樣層L進行取樣,得取樣層L的顏色值,再根據(jù)取樣層L+1的 取樣數(shù)沿著橢圓長軸在取樣層L+1取樣,得取樣層L+1的顏色值,并將所述取樣層L和取樣 層L+1中得到的顏色值做線性插值,得到最終的顏色值。
9.如權(quán)利要求8所述的基于各向異性的紋理過濾裝置,其特征在于,所述計算模塊根 據(jù)以下公式確定在所述紋理查找表中的取樣層L 如果level = Iog2 (minorRadius)為整數(shù),則在level層取樣,其中minorRadius為短 軸半徑;如果level = Iog2(minorRadius)為浮點數(shù),則分別在L/eve/」層和「/eve/"]取樣,其中 minorRadius為短軸半徑,L」為向下取整操作,「]為向上取整操作。
10.如權(quán)利要求8所述的基于各向異性的紋理過濾裝置,其特征在于,所述計算模塊根 據(jù)以下公式確定在所述取樣層L的取樣數(shù)所述取樣層 L 的取樣數(shù)為 Number = 2* (majorRadius/minorRadius)-1,如果 Number 為 浮點數(shù),則向上取整,其中majorRadius為長軸半徑,minorRadius為短軸半徑。
11.如權(quán)利要求8所述的基于各向異性的紋理過濾裝置,其特征在于,所述計算模塊根 據(jù)以下公式確定所述取樣點的位置所述取樣層L的取樣點坐標(biāo)為(u,v) = (ufflid, Vfflid)+η/2*(Δu, Δν),其中,(umid, Vfflid)為所述橢圓圓心的坐標(biāo),(Au,Δ ν)為相鄰兩個取樣點的坐標(biāo)軸投影距離,「±1,±3,.… Number 為偶數(shù)一Λ丄。^u認(rèn)么極,majorfeidius為長軸半徑,minorfeidius為短軸半徑。LO, ±2,±4,..... Number為奇
12.如權(quán)利要求11所述的基于各向異性的紋理過濾裝置,其特征在于,所述Au= cos (theta) ^lineLength/ (Number-I), Δ ν = sin (theta) ^lineLength/ (Number_l),其中, IineLength = 2*(majorRadius-minorRadius),為取樣直線長度,即第一個取樣點到最后 一個取樣點的距離,theta為長軸半徑與u軸的夾角。
13.如權(quán)利要求8所述的基于各向異性的紋理過濾裝置,其特征在于,其中,所述取樣 層L+1的取樣數(shù)為所述取樣層L取樣數(shù)的1/4,即7Vwm&r’=「M#^er/4、其中Number'為 取樣層L+1的取樣數(shù),Number為取樣層L的取樣數(shù),「1為向上取整操作。
14.如權(quán)利要求8所述的基于各向異性的紋理過濾裝置,其特征在于,所述計算模塊根 據(jù)以下公式計算最終的顏色值最終的顏色值Color = CL*(l-f)+CLl*f,其中,CL為在所述取樣層L得到的顏色值,CLl為在所述取樣層L+1得到的顏色值,
全文摘要
本發(fā)明提出一種基于各向異性的紋理過濾方法,包括對紋理圖像進行MIP-MAP預(yù)過濾;將屏幕空間中的像素看成以一個單位像素為半徑的圓,將所述像素投影到紋理空間,用橢圓進行逼近;計算所述橢圓的短軸半徑、長軸半徑、長軸半徑與u軸的夾角;根據(jù)計算的短軸半徑確定在所述紋理查找表中的取樣層L;根據(jù)短軸半徑、長軸半徑及長軸半徑與u軸的夾角確定在所述取樣層L的取樣數(shù)及沿著橢圓長軸取樣點的位置,并在所述取樣層L進行取樣;根據(jù)取樣層L+1的取樣數(shù)沿著橢圓長軸在取樣層L+1取樣;將所述取樣層L和取樣層L+1中得到的顏色值做線性插值,得到最終的顏色值。本發(fā)明通過在L+1層采用L層取樣數(shù)的1/4為取樣數(shù),避免了過采樣,使得當(dāng)紋理視角離觀察點很遠的時候仍然保持清晰。
文檔編號G06T15/04GK102034262SQ20091017812
公開日2011年4月27日 申請日期2009年9月27日 優(yōu)先權(quán)日2009年9月27日
發(fā)明者李康 申請人:比亞迪股份有限公司