應該.... 全部說完了吧?....
對了,還有那個 AU_WAVELET3DNR2() 沒有講。
假設你已經知道要如何在 Avisynth 之中調用 AviUtl 的 filter。
上面的 Wavelet3DNR2 就是一個 AviUtl 的濾雜訊 filter,我們可以在 Avisynth 裡面直接使用它,就像它是一個 Avisynth 的 filter 一樣。
這個 filter 有一個大問題,它會對 Chroma(色度)做補間,會造成垂直方向出現一條一條的細線和色塊的現象,但是因為這個 filter 去雜訊很強,又能夠在去雜訊的同時保留許多細節,所以很多人用,但是用這個 filter 的附作用實在慘不忍睹,我每次看了都搖頭
用 Sister Princess RePure -ARIA- 中的一個畫面做示範
原本的畫面
開啟 Wavelet3DNR2 之後的畫面
開啟 4:1:1->4:2:2 補間的畫面
應該非常明顯
如果你是用 Avisynth 的話,就可以做到 AviUtl 做不到的事情

什麼事呢?那就是讓 Wavelet3DNR2 只對 Luma 亮度做處理,Chroma 色度交給其他 filter 做處理。
轉貼
==
但是 Wavelet3DNR2 降噪的功能很強,不用好可惜,我想可以用下面的方法解決,就是只用 Wavelet 處理 Luma 的部分,Chroma 不要處理,或者交給其他 filter 處理。
wavelet=source.Greyscale() # <- 把 source 用 Greyscale() 處理,只留下 Y-channel
wavelet=wavelet.ConvertYUY2ToAviUtlYC()
wavelet=wavelet.AU_WAVELET3DNR2
(2,0,10,10,0,0,0,0,0,0,5,0,0,0,0,10,false,false,true,false,false,
false,false,false,false,false,false,false,false,false,false,false)
wavelet=wavelet.ConvertAviUtlYCToYUY2()
source=MergeLuma(source, wavelet, 1.0) # <- 將 Wavelet3DNR2 處理之後的 Y-channel 覆蓋回原本 source 的 Y-channel,保留原本 source 的 Chroma 不變
這樣就可以避免 Wavelet3DNR2 造成的色彩瑕疵。
由於人眼對 Luma 亮度的噪訊比較敏感,所以保留 Chroma 不處理通常也可以接受,或者用其他 filter 對 Chroma 做處理,最後用 MergeChroma 合併回 source。
source=MergeLuma(source, wavelet, 1.0)
source=MergeChroma(source, other_filter, 1.0)
或者,用另一個方法,把 UV copy 到 Y-channel,然後用 Wavelet3DNR2 對 Y-channel 做處理,處理完畢以後,再把 UV copy 回 U, V-channel。
u_chroma=UToY(source) # <- 把 U copy 到 Y-channel
u_chroma=u_chroma.ConvertYUY2ToAviUtlYC()
u_chroma=u_chroma.AU_WAVELET3DNR2
(2,0,10,10,0,0,0,0,0,0,5,0,0,0,0,10,false,false,true,false,false,
false,false,false,false,false,false,false,false,false,false,false)
u_chroma=u_chroma.ConvertAviUtlYCToYUY2()
v_chroma=VToY(source) # <- 把 V copy 到 Y-channel
v_chroma=v_chroma.ConvertYUY2ToAviUtlYC()
v_chroma=v_chroma.AU_WAVELET3DNR2
(2,0,10,10,0,0,0,0,0,0,5,0,0,0,0,10,false,false,true,false,false,
false,false,false,false,false,false,false,false,false,false,false)
v_chroma=v_chroma.ConvertAviUtlYCToYUY2()
filtered=YtoUV(u_chroma, v_chroma) # <- 把 U, V 從 Y-channel copy 回 U, V 各自的 channel
source=MergeLuma(filtered, source, 1.0) # <- 將原本的 Y 和 filter 之後的 UV 合併
結合以上的方法,就可以用 Wavelet3DNR2 對 Y, U ,V 三個 channel 分開做處理,不過這個方法很慢,非常慢,不建議使用 ^^;
==
Avisynth 還可以做什麼神奇的事情呢?大家可以動動腦
最後,上面提到的 YATTA! 是一個輔助工具,它可以讓你很方便的做 Decomb 的 override 設定,要強制哪個 frame 的 matching 方式,要強制哪個 frame 去不去交錯,要強制 Decimate 刪除的時候刪除哪一張 frame,要 copy 哪一張 frame,要對哪一個範圍 apply 哪一個 filter,要做變動播放速率 VFR(24/30fps 混合) 的檔案,前面不是都要手動寫一大串 script 嗎?
用 YATTA!,完全圖形化介面,所有的工作用鍵盤和滑鼠操作,就像在 TMPGEnc 的 IVTC 視窗中操作一樣,不用手動寫 script,YATTA! 自然會把你做的設定生成 script 檔!!
想想看那四百行的 script。
YATTA! 終於成功了,終於出現這種軟體了... 淚 :P
http://yatta.mellbin.org/yatta_manual/yatta.htm
不過,我從來一次也沒有用過這個軟體,因為我這裡不曉得為什麼不能執行,YATTA! 不起來。
沒關係,懶人有懶人的方法,YATTA! 推薦給大家試試看
