有效插值的制作方法
【專利說明】有效插值
【背景技術(shù)】
[0001 ] 存在在其中對(duì)數(shù)據(jù)點(diǎn)的陣列執(zhí)行插值從而確定在陣列內(nèi)的采樣位置處的內(nèi)插值 可以是有用的許多情形。一般地,數(shù)據(jù)點(diǎn)的陣列可以是η維陣列,其中η多1。例如,在圖 形處理系統(tǒng)中,紋素(texel)的二維(2D)陣列能夠被存儲(chǔ)以描述紋理,并且當(dāng)要將紋理應(yīng) 用在圖像的像素位置處時(shí),像素位置可能不能精確地對(duì)應(yīng)于紋理中的紋素的位置,所以期 望得到在像素位置處(即,在采樣位置處)的紋理的內(nèi)插值。作為另一示例,像素的2D陣 列可以表示圖像,并且如果要縮放圖像,則新的像素位置可能不能精確地對(duì)應(yīng)于圖像中的 原始像素的位置,所以期望得到在新的像素位置處(即,在采樣位置處)的內(nèi)插值。
[0002] 圖1示出了數(shù)據(jù)點(diǎn)102的2D陣列100的部分的示例。圖1示出了陣列100的數(shù) 據(jù)點(diǎn)102的4X4集合,并且作為示例,兩個(gè)參數(shù)(U和V)描述能夠?qū)ζ鋱?zhí)行插值的區(qū)域104 內(nèi)的采樣位置106。
[0003] 能夠以許多不同的方式來執(zhí)行插值。分段線性插值是易于實(shí)施的1D插值方法的 示例。線性插值的示例在圖2a中被示出,在圖2a中,能夠確定在兩個(gè)數(shù)據(jù)點(diǎn)A與B之間的 采樣位置處的內(nèi)插值。在數(shù)據(jù)點(diǎn)A與B之間的直線202示出在數(shù)據(jù)點(diǎn)A與B之間的采樣位 置處的內(nèi)插值。采樣位置由參數(shù)u給出,其中0 <u< 1,使得在采樣位置處的內(nèi)插值1。由 加權(quán)求和:IU= (ln)A+uB給出。
[0004] 雙線性插值是將線性插值的概念擴(kuò)展到二維中的2D插值方法的示例。雙線性插 值的示例在圖2b中被示出,在圖2b中,能夠確定在四個(gè)周圍數(shù)據(jù)點(diǎn)SOldOUCMjP2044 的方塊內(nèi)的采樣位置208處的內(nèi)插值。采樣位置208由兩個(gè)參數(shù)(U和V)給出。當(dāng)面臨多 維插值時(shí),一個(gè)方法是減少問題的維數(shù),例如通過對(duì)每行執(zhí)行分離的1D插值,并且然后在 那些結(jié)果上執(zhí)行1D插值。例如,能夠使用參數(shù)U來在數(shù)據(jù)點(diǎn)2〇1與204 2之間執(zhí)行線性插 值,以確定中間內(nèi)插值2(^。類似地,能夠使用參數(shù)U來在數(shù)據(jù)點(diǎn)2043與204 4之間執(zhí)行線 性插值,以確定中間內(nèi)插值2062。然后,能夠使用參數(shù)V來在中間內(nèi)插值2061與206 2之間 執(zhí)行線性插值,以確定在由(U,V)給出的采樣位置處的內(nèi)插值208。能夠以與以上參考圖 2a描述的線性插值相同的方式來執(zhí)行在該雙線性插值方法中描述的三線性插值。減少多 維濾波問題的維數(shù)的示例被描述在Mitchell和Netravali的1988年在SIGGRAPH中的論 文"ReconstructionFiltersinComputerGraphics" 中,該論文解釋了圖像重建發(fā)生在 二維中并且涉及利用濾波器k(x,y)對(duì)樣本的2D晶格的卷積??紤]了可分離的濾波器,其 中利用點(diǎn)積k(x)k(y)對(duì)樣本進(jìn)行卷積。Mitchell和Netravali的論文描述了可分離的濾 波器比不可分離的濾波器更為計(jì)算有效,這是因?yàn)槟軌蛟诖怪鄙虾退缴戏蛛x的通道中執(zhí) 行濾波操作。
[0005] 雙線性插值能夠以簡(jiǎn)單的方式(例如使用一些乘法和加法(MAD)邏輯)被實(shí)施在 硬件中。另外,雙線性插值是不消耗大量功率的快速過程。因此,雙線性插值通常可以是在 具有特別有限的處理功率的計(jì)算機(jī)系統(tǒng)(例如諸如智能電話、平板計(jì)算機(jī)和膝上型計(jì)算機(jī) 的移動(dòng)設(shè)備)中實(shí)施的插值的合適選擇。
[0006] 然而,線性插值和雙線性插值可能不提供平滑的內(nèi)插值。特別地,雖然線性和雙 線性插值方法將提供連續(xù)的內(nèi)插值,但是內(nèi)插值的一階導(dǎo)數(shù)(和高階導(dǎo)數(shù))通常在數(shù)據(jù)點(diǎn) 邊界上不連續(xù)。高階多項(xiàng)式插值,例如基于二次、三次、四次等的多項(xiàng)式插值和它們的多維 變型方法提供比對(duì)應(yīng)的線性和雙線性插值方法更平滑的內(nèi)插值。特別感興趣的是三次插 值,因?yàn)檫@是能夠?qū)刂泣c(diǎn)進(jìn)行插值(即穿過控制點(diǎn))并且其中內(nèi)插值的一階導(dǎo)數(shù)能夠在 數(shù)據(jù)點(diǎn)邊界上連續(xù)的最簡(jiǎn)單的多項(xiàng)式。三次插值方法(包括諸如雙三次插值方法的多維 三次插值方法)將內(nèi)插值與內(nèi)插值在數(shù)據(jù)點(diǎn)邊界上的一階導(dǎo)數(shù)進(jìn)行匹配。然而,三次插值 方法比線性插值方法(包括諸如雙線性插值方法的對(duì)應(yīng)的多維線性插值方法)實(shí)施更為 復(fù)雜。這樣的一些原因是與線性插值相比,三次插值在陣列的每維中使用兩倍多的數(shù)據(jù)點(diǎn) (并且因此雙三次要求比雙線性插值4倍之多的數(shù)據(jù)點(diǎn)),并且三次插值包括針對(duì)陣列內(nèi)的 采樣位置計(jì)算三次多項(xiàng)式。因此,作為示例,可以在計(jì)算速度不是問題時(shí),選擇雙三次插值 而非雙線性插值。本領(lǐng)域技術(shù)人員將意識(shí)到,存在許多類型的基于控制點(diǎn)的三次曲線,包括 Bezier、Hermite和B樣條,并且盡管每個(gè)能夠通過取得控制/采樣點(diǎn)的線性組合被彼此映 射(例如,參見Foley、vanDam等人的"ComputerGraphicsPrinciplesandPractice", 第二版,第510至511頁)并且在廣義上是等價(jià)的,但是特別感興趣的一個(gè)是Catmull-Rom 樣條。該樣條具有這樣的有用的性質(zhì),如果采樣位置精確地位于數(shù)據(jù)點(diǎn)上(例如,如果U= 0或U= 1),則內(nèi)插值等于數(shù)據(jù)點(diǎn)的值。另外,如下面所描述的,當(dāng)鄰近曲線共享三個(gè)樣本 點(diǎn)時(shí),則曲線也是C1連續(xù)的,S卩,曲線的一階導(dǎo)數(shù)是連續(xù)的。
[0007] 1D三次插值的示例在圖3a中被示出,在圖3a中,四個(gè)數(shù)據(jù)點(diǎn)(A到D)被用于確 定在兩個(gè)中心數(shù)據(jù)點(diǎn)B與C之間的采樣位置處的內(nèi)插值(Iu)。線302示出內(nèi)插值,并且能 夠看到線302穿過數(shù)據(jù)點(diǎn)B&C并且線302的梯度(即線302的一階導(dǎo)數(shù))在曲線邊界處與 鄰近分段線段302&和302m連續(xù)。由針對(duì)區(qū)域的參數(shù)u給出了采樣位置,其中0 <u< 1。 如上面所描述的,能夠根據(jù)將參數(shù)u和四個(gè)數(shù)據(jù)點(diǎn)(A到D)作為輸入的三次多項(xiàng)式找到內(nèi) 插值Iu。
[0008] 雙三次插值是將三次插值的概念擴(kuò)展到二維中的2D插值方法的示例。雙三次插 值的示例在圖3b中被示出,在圖3b中,能夠使用數(shù)據(jù)點(diǎn)301$」304 44的值來確定在數(shù)據(jù)點(diǎn) 30422、30423、304 32和304 33的2x2方塊內(nèi)的采樣位置308處的內(nèi)插值。由兩個(gè)參數(shù)(U和V) 給出采樣位置308。在該示例中,使用參數(shù)U來針對(duì)四行數(shù)據(jù)點(diǎn)中的每行(例如,針對(duì)行X 的數(shù)據(jù)點(diǎn)304xjlj304x4)單獨(dú)地執(zhí)行三次插值,以確定各自的中間內(nèi)插值306x。通過這種方 式,已經(jīng)減少了插值計(jì)算的維數(shù)。然后,能夠使用參數(shù)V來在四個(gè)中間內(nèi)插值306glj306 4 上執(zhí)行三次插值,以確定在由(U,V)給出的采樣位置處的內(nèi)插值308。能夠以與以上參考 圖3a描述的三次插值相同的方式來執(zhí)行在該雙三次插值方法中描述的五個(gè)三次插值中的 每個(gè)三次插值。
【發(fā)明內(nèi)容】
[0009] 提供本
【發(fā)明內(nèi)容】
來以簡(jiǎn)化的形式介紹下面將在【具體實(shí)施方式】中進(jìn)一步描述的概 念的選擇。本
【發(fā)明內(nèi)容】
不旨在標(biāo)識(shí)要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于 限制要求保護(hù)的主題的范圍。
[0010] 提供了一種確定在數(shù)據(jù)點(diǎn)的陣列內(nèi)的采樣位置處的內(nèi)插值的方法,其中,在所述 陣列內(nèi)的預(yù)定插值位置集合中的每個(gè)預(yù)定插值位置處,預(yù)定權(quán)重的集合表示能夠被應(yīng)用到 所述數(shù)據(jù)點(diǎn)中的多個(gè)的非線性插值,所述方法包括:針對(duì)圍繞所述采樣位置的多個(gè)所述預(yù) 定插值位置中,使用對(duì)應(yīng)的預(yù)定權(quán)重集合和所述數(shù)據(jù)點(diǎn)中的所述多個(gè)數(shù)據(jù)點(diǎn)來確定多個(gè)周 圍內(nèi)插值,所述多個(gè)周圍內(nèi)插值表示執(zhí)行在周圍預(yù)定插值位置處的所述非線性插值的結(jié) 果;以及對(duì)于所述多個(gè)周圍內(nèi)插值執(zhí)行線性插值以確定在所述采樣位置處的內(nèi)插值。例如, 所述非線性插值可以是三次插值,例如Catmull-Rom樣條。
[0011] 所述陣列可以是η維陣列,并且所述周圍預(yù)定插值位置是所述預(yù)定插值位置中最 接近所述采樣位置的2"個(gè)預(yù)定插值位置。作為示例,η= 2并且所述線性插值是雙線性 插值。在該實(shí)例中,所述多個(gè)數(shù)據(jù)點(diǎn)包括4x4數(shù)據(jù)點(diǎn)集合,并且所述采樣位置由兩個(gè)參數(shù) 描述,并且所述使用對(duì)應(yīng)的預(yù)定權(quán)重集合和所述多個(gè)數(shù)據(jù)點(diǎn)來確定所述多個(gè)周圍內(nèi)插值包 括:針對(duì)第一維(例如,行或列)中的所述4x4數(shù)據(jù)點(diǎn)集合的線中的每條條,確定由所述兩 個(gè)參數(shù)中的第一個(gè)參數(shù)指示的在所述第一維中的所述采樣位置的第一分量的任何一側(cè)的 第一中間內(nèi)插值和第二中間內(nèi)插值;使用來自所述第一維中的四條線的所述第一中間內(nèi)插 值來確定由所述兩個(gè)參數(shù)中的第二個(gè)參數(shù)指示的在第二維中的所述采樣位置的第二分量 的任何一側(cè)的第一周圍內(nèi)插值和第二周圍內(nèi)插值;以及使用來自所述第一維中的四條線的 所述第二中間內(nèi)插值來確定由所述兩個(gè)參數(shù)中的第二個(gè)參數(shù)指示的在第二維中的所述采 樣位置的所述第二分量的任何一側(cè)的第三周圍內(nèi)插值和第四周圍內(nèi)插值。例如,(i)所述 第一維中的線是所述4x4數(shù)據(jù)點(diǎn)集合的行,并且所述第二維中的線是所述4x4數(shù)據(jù)點(diǎn)集合 的列;或者(ii)所述第一維中的線是所述4x4數(shù)據(jù)點(diǎn)集合的列并且所述第二維中的線是所 述4x4數(shù)據(jù)點(diǎn)集合的行。
[0012] 提供了一種被配置為確定在數(shù)據(jù)點(diǎn)陣列內(nèi)的采樣位置處的內(nèi)插值的插值邏輯,其 中在所述陣列內(nèi)的預(yù)定插值位置集合中的每個(gè)預(yù)定插值位置處,預(yù)定權(quán)重集合表示能夠被 應(yīng)用到所述數(shù)據(jù)點(diǎn)中的多個(gè)數(shù)據(jù)點(diǎn)的非線性插值,所述插值邏輯包括:非線性插值單元,其 被配置為針對(duì)圍繞所述采樣位置的所述預(yù)定插值位置中的多個(gè)預(yù)定插值位置,使用對(duì)應(yīng)的 預(yù)定權(quán)重集合和所述數(shù)據(jù)點(diǎn)中的所述多個(gè)數(shù)據(jù)點(diǎn)來確定表示在周圍預(yù)定插值位置處執(zhí)行 所述非線性插值的結(jié)果的多個(gè)周圍內(nèi)插值;以及線性插值單元,其被配置為對(duì)于所述多個(gè) 周圍內(nèi)插值執(zhí)行線性插值以確定在所述采樣位置處的內(nèi)插值。
[0013] 可以提供一種計(jì)算機(jī)可讀代碼,當(dāng)所述代碼運(yùn)行在計(jì)算機(jī)上時(shí),所述計(jì)算機(jī)可讀 代碼被適配為執(zhí)行所述方法中的任何一個(gè)的步驟。另外,可以提供一種用于生成根據(jù)本文 中描述的示例中的任何一個(gè)示例的插值邏輯的計(jì)算機(jī)可讀代碼。所述計(jì)算機(jī)可讀代碼可以 被編碼在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上。
[0014] 如對(duì)于本領(lǐng)域技術(shù)人員將顯而易見的是,以上特征可以在適當(dāng)?shù)那闆r下被組合, 并且可以與本文所描述的示例的方面中的任何一個(gè)方面進(jìn)行組合。
【附圖說明】
[0015] 現(xiàn)在將參考附圖詳細(xì)描述示例,其中在附圖中:
[0016] 圖1示出陣列的4x4數(shù)據(jù)點(diǎn)集合和陣列內(nèi)的采樣位置;
[0017] 圖2a表示線性插值的示例;
[0018] 圖2b表示雙線性插值的示例;
[00