四、 實作與結果
4.2 以 GPU 實作傅立葉立體資料描繪法
4.2.2 濾波器的實作
我們主要以三線性濾波器和三次曲線濾波器為實作對象,而 Viola [26]及 Lichtenbelt [22]也提出對這兩種濾波器的實作方法。其中我們對三次曲線濾波器稍 做修改,以合併三線性濾波器的方式來實作,以下為這兩種濾波器的實作過程:
1. 三線性濾波器
我們根據第二章所介紹三線性濾波器的原理以 Pixel shader 來實作,其程 式的流程會是這樣:
(1) 取得經過內插後的 3 維貼圖座標,此內插的動作是由 GPU 負責。
(2) 由於貼圖座標的每個值都是介於 0 與 1 之間,將它們乘上立體資料的實
際大小後,取 ceil 及 floor 的整數值就會是八個取樣點的座標,小數部 份的值就會是內插的比例。舉例來說明,現有一 3 維貼圖座標為[u, v, w]
=[0.123, 0.713, 0.254],立體資料的實際大小為 x × y × z = 256 × 256 × 256,則[u×x, v×y, w×z] = [ 31.488, 182.528, 65.024],其 ceil 值會是[32, 183, 66],floor 值會是[31, 182, 65],因為所需要的八個取樣點是一個立方 體,而這八個貼圖座標的最大值就會
Pre-processing(sec.) 0.704 7.656 111.266 Frame rate(FPS) 32.25 21.73 12.82
平台 B 資料大小
實驗項目 643 1283 2563
Pre-processing(sec.) 0.25 2.578 35.688 Frame rate(FPS) 66.67 62.5 21.27
表 4.2 使用三線性濾波器
其結果的影像如圖 4.4 所示,左邊為 643,右邊為 2563,下方為各別的頻譜取 樣結果:
圖 4.4 使用三線性濾波器
從結果得知,雖然仍有重疊影像的情形,但比完全不使用濾波器時減少 許多,影像的辦識度亦提高了許多。可是會有中間部分的強度較為明亮,而 越往外面越衰減的現象,這在 2.3.5 節有提到過,必須在原始的立體資料進行 補償的動作,我們以 sinc2(x)來做為補償函數,結果如圖 4.5 所示,請與圖 4.4 的右邊為 2563來做比較:
圖 4.5 三線性濾波器時域空間衰減補償
2. 三次曲線濾波器
為了能在 GPU 運作,且能取得較為正確的取樣值,我們對三次曲線濾波 器稍微做了修改。首先,我們將整個濾波動作分為三大部份,也就是分為 x, y, z 軸三部份,這是因為三次曲線濾波器總共需取樣 43=64 個取樣點,以我們的 實驗平台是無法讓 GPU 一次進行那麼多的 fetch texture 動作,所以我們必須 要分擔讀取 Video RAM 的動作。如此一來每次進行曲線內插只需 fetch texture 四次。因此我們必須要寫出 21 個不同的 Pixel shader 來進行曲線內插的動作,
其中進行 x 軸需執行 16 次,y 軸 4 次,z 軸 1 次。
但是每次曲線內插需要四個取樣點,我們若以偏移貼圖座標來直接取得 的話,效果並不是很好,因為仍然會有再取樣的問題。所以針對這四個取樣 點,我們改以三線性內插來取得。如圖 4.6 所示,黑色點為由 GPU 提供的貼 圖座標位置,紅色點為對 x 軸各左右偏移一個及兩個單位的貼圖座標位置,
然後我們以三線性內插來取得每個紅色點的內插值,之後再以 Catmull-Rom 曲線內插方式取得藍色點的值。
圖 4.6 三次曲線內插 其數據如表 4.3 所示:
平台 A 資料大小
實驗項目 643 1283 2563
Pre-processing(sec.) 0.828 7.485 100 Frame rate(FPS) 2.67 2.132 1.27
平台 B 資料大小
實驗項目 643 1283 2563
Pre-processing(sec.) 0.25 3.641 37.984 Frame rate(FPS) 2.78 2.66 2.54
表 4.3 使用三次曲線濾波器
其結果的影像如圖 4.7 所示,左邊為 643,右邊為 2563,下方為各別的頻譜取 樣結果:
圖 4.7 使用三次曲線濾波器
從結果得知,重疊影像幾乎完全消除了,但是外圍衰減的現象卻非常嚴重,
因此必須在原始的立體資料進行補償的動作,結果如圖 4.8 所示:
圖 4.8 三次曲線濾波器時域空間衰減補償
3. 三線性濾波器與時域空間延伸
由上述的實驗結果來分析,三次曲線濾波器的效果最好,但是所需的時 間成本也是最大的。以我們的實驗平台來運作,實在無法有即時顯像的效果。
在 2.3.1 節我們有提到在時域空間延伸的作法可以增加取樣頻率的能力,雖然 會造成記憶體空間上的負擔,但我們發現若配合三線性濾波器會有更好的效 果,其數據如表 4.4 所示:
平台 A 資料大小
實驗項目 643 1283
Pre-processing(sec.) 7.594 101 Frame rate(FPS) 31.25 12.82
平台 B 資料大小
實驗項目 643 1283
Pre-processing(sec.) 3.708 35.031 Frame rate(FPS) 66.67 31.25
表 4.4 三線性濾波器與時域空間延伸
其結果的影像如圖 4.9 所示,左邊為 643,右邊為 1283,下方為各別的頻 譜取樣結果:
圖 4.9 三線性濾波器與時域空間延伸