有網友問到 VD 裡面的 2:1 reduction resize 的品質如何,我做了一點實驗
==
學術界在測試 filtering 效果時最常用的是 "circular zone plate" 這個圖形,
這個圖形是由好多個圓圈所組成,畫面最中間的水平和垂直空間頻率是 0,
越往外圍,水平和垂直空間頻率越高。
水平方向遠離中心,離中心越遠水平空間頻率越高;垂直方向遠離中心,
離中心越遠垂直空間頻率越高;四個角落是垂直和水平的空間頻率最大的地方。
空間頻率越高的意思,可以想像為畫面上有一黑一白,黑白相間的線條,
黑白條紋越密集,也就是灰階值由黑變白,再由白變黑的變化頻率越快,
我們說這樣這張圖形的空間頻率很高。
根據取樣定理,我們知道取樣頻率必須是原始訊號頻率的兩倍,我們才能正確地記錄原始訊號。
原本寬度 640 pixels 的圖形(取樣點是 640 個點),其所能記錄的黑白相間的變化次數是 320 次
(一黑一白,佔掉兩個 pixel,我們所能見到的黑色線條是 320 條,白色線條是 320 條)。
當這個寬度 640 pixels 的圖形 resize 為一半 320 pixels 時,只能表現出 160 條黑白相間的條紋
,無法表現出原本圖形所記錄的 320 條黑白相間這麼高的頻率,也就是這麼密集的線條。
根據取樣定理,我們必須把超過所能記錄的範圍的頻率濾掉,否則轉換後這些高頻的訊號會被當成
低頻的訊號,我們會得到錯誤的結果。
以聲音訊號來舉例,44.1KHz 轉為 22KHz,必須把原本訊號中 11KHz 以上到 22KHz 的頻率濾掉,
否則轉換後原本該是高頻的訊號,卻會變成低頻的訊號,變成低頻的聲音出現,你想這樣還能聽嗎 :P
為什麼降低取樣頻率之後,超出所能記錄範圍的高頻會被當成低頻訊號?請看下面這張圖
藍色的線是原本記錄的高頻訊號,線條成階梯狀,每一階都是一個取樣點,
圖形中的 sine 波形有 11 個週期(重複 11 次)。
降低取樣頻率之後,新的取樣點是紅色的點,取樣的點數變少。
我們注意到新的紅色取樣點連成一條線,得到的新訊號變成是一個低頻的 sine 波形(僅一個週期),
而不是原本的高頻訊號。這個低頻訊號在原本的訊號中是不存在的,是錯誤的訊號。
這種現象我們稱為 aliasing。
所以我們在轉換之前,必須先把這種會引起 aliasing,超過轉換後所能記錄的頻率範圍的高頻訊號
濾掉,以免發生 aliasing,得到錯誤的結果。
那麼在影像訊號的處理上,也是一樣,我們必須先把 resize 後不能正確記錄的高頻訊號濾掉,
不然一樣會得到錯誤的畫面,例如畫面上會出現鋸齒,波紋(moire)等等瑕疵。
這個事先濾掉高頻的 filter,叫做 pre-filter。
不同 filter 的設計,濾除的效果不同,也有不同的副作用,我們以前曾經提過,lanczos3 resize
是一個擁有最佳 filter 效果的 resize 法。
下面我們用 circular zone plate 這個圖形來測試 2:1 reduction 和 2:1 reduction (high quality)
的頻率濾除特性。circular zone plate 的圖形中央空間頻率是 0,越往外圍空間頻率越高,
良好的 filter 應該要盡力保持中央部分的圖形的線條清晰,而外圍的圖形則應該全部濾除,
外圍若有留下來的線條則是 aliasing 的訊號。
原始 640x640 的 circular zone plate 圖形
http://home.pchome.com.tw/health/lnklllyz/CZP.gif
2:1 reduction resize 為 320x320

2:1 reduction (high quality)

對照的 lanczos3 resize(VD 內建)超完美
circular zone plate 除了拿來測 filter,也可以用來測 gamma
http://www.worldserver.com/turk/com...hics/gamma.html