Carved Marker

Antialiasing 的理論 [Part 4]

前面提到,不論是取樣時,或是在重建訊號時,都需要一個 low pass filter。在 3D 繪圖的時候,一般是利用超取樣(supersampling),也就是在同一個 pixel 中,取多個取樣點,再以一個數位的 low pass filter(box filter 或是 Gaussian filter)處理後,得到每個 pixel 的「經過 low pass filter 的取樣結果」。當然,超取樣的取樣點數目會影響 low pass filter 的效果。這是因為數位 low pass filter 長得並不可愛。例如,下圖是一個兩個取樣點的 box filter 的長像:

2 samples digital box filter Frequency response
2 samples digital box filterFrequency response

可以看出來,兩個 samples 的數位 box filter 根本無法有效消除高頻成份。要注意的是,因為影像是一個二維的空間,所以如果每軸需要兩個 samples,則共需要四個 samples。目前大部份 3D 顯示晶片所支援的 4X OGSS FSAA 就是這樣。

如果採用 Gaussian filter 則會稍微好一些。下面是一個經過調整的數位 Gaussian filter:

3 samples digital Gaussian filter Frequency response
3 samples digital Gaussian filterFrequency response

它的表現比兩個 samples 的 box filter 要好一些,但並不明顯。因為它實際的取樣數並沒有增加(三個取樣點中,有兩個是和鄰近的 pixel 重覆的)。所以,它基本上還是兩倍的超取樣,只是 post filter 不同。它比 box filter 可以消除更多的高頻成份,但是也同時犧牲了一些低頻。所以,它的結果看起來會比較模糊,但是高頻失真的情形會比較少。

如果增加取樣點的數目,則這兩種 low pass filter 的表現都會變好。以下是在每個 pixel 使用四個取樣點的情形:

4 samples digital box filter Frequency response
4 samples digital box filterFrequency response
5 samples digital Gaussian filter Frequency response
5 samples digital Gaussian filterFrequency response

在這裡的 Gaussian filter 雖然使用五個取樣點,但是每個 pixel 範圍內還是只有四個取樣點,所以在超取樣上面和 box filter 是相同的。從這兩種 filter 的 frequency response 可以看出,Gaussian filter 的表現還是比 box filter 要好一些,而且它不像 box filter 會產生討厭的負值。然而,每邊四個取樣點,對目前的 3D 顯示晶片來說,工作量還是太大了。

最後我們要稍微討論一下訊號重建的問題。前面說過,在重建訊號時,只要先對數位訊號使用 low pass filter,就可以得到原始的訊號(當然,是指經過 low pass filter 的原始訊號)。然而,重建訊號的工作通常是由顯示單元(也就是螢幕)在進行的,所以,一般應用程式對它是沒什麼控制的。

一般的顯示晶片在輸出訊號時,會先經過一個 sample-and-hold 的過程,簡單的說,就是使用一個 box filter。Sample-and-hold 會產生具有大量鋸齒狀的結果(參考下圖)。不過,為了讓顯示卡可以符合 FCC 規範,通常在顯示卡上會有一個 low pass 電路。這個電路理論上會把顯示晶片上 RAMDAC 所能處理的最高頻率以上的高頻成份去除。不過,一般來說都不會這麼理想就是了。

Box filter reconstruction

這個經過 low pass 的訊號,在送到螢幕顯示時,如果是傳統 CRT 螢幕的話,它會把訊號直接放大,送到電子槍後,在螢光幕上產生光點。但是,因為螢光劑的塗布、和電子槍光點的大小等問題,實際上 CRT 上的光點,並不會剛好只是個小點,而會是一個和周圍的光點有些重疊的圓形。而且,這個圓形的亮度反應,大致上和 Gaussian filter 形狀類似。所以,基本上,數位訊號在重建時,並不是理想的重建,而比較接近以 Gaussian filter 做為 low pass filter 的重建。不過,一般來說,它的效果也算是夠好了。

如果使用的是 LCD 或是 plasma display 等顯示幕的話,情形就會更糟。因為 LCD 和 plasma display 的 pixel 都是一個一個分開的,不像 CRT 是連續塗布的螢光劑,配上一個 mask。所以,它在顯示時,整個 pixel 內的顏色都是一樣的,而且 pixel 通常是方形。因此,它幾乎等於是用一個理想的 box filter 當作 low pass filter 的重建。這會產生和上面的圖形完全相同的結果。所以,LCD 或是 plasma display 在配合 FSAA 時,效果會比 CRT 螢幕要差一些。

[Part 1] [Page 2] [Page 3] [Page 4]

1/8/2002, Ping-Che Chen


Sorry, Traditional Chinese only. This page is encoded in UTF-8.

Copyright© 2000, 2001, 2002 Ping-Che Chen