[教學] SmoothVideo Project與相關avisynth語法
SmoothVideo Project (SVP)
========================
-----
前言
-----
SVP可讓你在觀看電腦上所有影片時擁有動態補償(如同你在許多高階電視
所看到的).透過在原始的影格之間插入中間影格以提升影格速率,使畫面
流暢清晰.這項技術已經廣為熟知("TrimensionDNM", "Motion Plus",
"Motionflow" 等...),現在PC使用者可以免費的使用這項技術,只需透過
簡單的GUI介面點幾下滑鼠.
自SVP 3.0版起,SVP具備了GPU加速演算,現在只要你使用近代的顯示卡配備,
就有機會觀賞實時演算至60hz的1080p影片.
SVP並不是一個播放器,但它可讓大部分的播放器擁有動態補償的功能.
-------------------
誰可能需要這項功能?
-------------------
http://www.svp-team.com/wiki/Frame_interpolation_overview
如果你看得出上述網址網頁中三張動畫的差異,你可能需要試一下SVP.
-------------------
為什麼需要這項功能?
-------------------
因為人眼視覺殘留的因素,當畫面由A瞬間切換成B時,大腦所接收的視覺將殘留
少部分的A影像.對影片中移動的物體,我們可發現當影格速率越低時,眼球追蹤
該物體的視覺模糊越嚴重,反之,只要提高影格速率,模糊的程度就會降低,動態
上的解析度也較能保持.
目前大部分LCD螢幕採用的是Hold-type顯像法,當LCD接收到60hz的影像訊號,
每一張畫面將完整呈現1/60秒後再轉換到下一張.而CRT的pulse-type顯像則是
每一張畫面只呈現一個短暫的時間(遠低於1/60秒),各影格之間存在黑畫面.
示意圖:
LCD hold-type rendering
frame (1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3...61 61 61 61 61 61)
sec 0 1/60 2/60 60/60
CRT pulse-type rendering
frame (1 X X X X X 2 X X X X X 3 X X X X X...61 X X X X X )
sec 0 1/60 2/60 60/60
由上圖可知,CRT在顯像時,畫面消隱時間可降低視覺殘留程度,
因此追蹤畫面移動中的物體時,60hz CRT的動態清晰度將遠大於60hz LCD.
(可試著將LCD螢幕中的視窗隨意移動,並試著追蹤移動中視窗上的文字,
即可感受到動態模糊.這在CRT中並不明顯,即使是晃動視窗文字也不會
大幅模糊,戲院所使用的膠捲放映也是屬於pulse-type顯像,因此對於
動態上的呈現要比hold-type更具有速度感.)
即使將LCD的反映速率降至0.001ms仍會有明顯的動態模糊,會造成
動態模糊的原因主要有兩個
LCD液晶反映速率 (Response time) + Hold-type顯像的存留時間 (Hold time)
同時考慮這兩者所得出的為MPRT(Motion Picture Response Time)
(動態上的頓感(judder)也會造成動態模糊,人眼傾向追蹤線性速率
移動的物體,當畫面忽快忽慢時(也包括hold-type的"瞬間移動"),
人眼將不易追蹤而造成動態模糊.可能會造成影片播放不規則頓感的原因
包括硬體設備上的滿載和軟體上的因素,以及最常見的螢幕更新率與
影格速率的不一致,前兩者如果操作正確的話不會發生,第三個須由
Reclock或類似方案解決,詳細可參考本版 #1CtNwF4f )
大部分的TFT LCD螢幕皆可達到16ms以下的G2G response time,
因此主要造成LCD動態模糊的是hold-type顯像.
而對於LCD hold-type顯示在動態上的不足,主要有以下三種方式補償.
(1) 背光掃描技術
主要是讓背光分組進行顯像,每一個瞬間只有一個水平線畫面亮起,由上至下
循環掃描,有的則是使用循環關閉一組背光以使畫面亮度不至於掉太多.
缺點: 亮度降低,閃爍感.
(2) 插黑幀技術
在每張畫面之間進行插黑畫面的動作,與背光掃描技術原理相同.
缺點:亮度降低,閃爍感.
(3) 動態插補技術
透過在畫面之間,實時演算出中間幀,使每一張畫面存留的時間縮短,降低
視覺模糊的程度.
缺點:原始畫面破壞(Artifacts),不自然感,肥皂劇感覺(Soap Opera Effect).
註:Soap opera effect-
大部分廉價肥皂劇(電視劇)是以60i攝影的,當24p的電影透過動態插補
至48p或60p時,會有類似肥皂劇的感覺,因此動態插補又被稱為肥皂劇效果.
-------
SVP下載
-------
當前最新版本為 3.0.4 (09/15/2011)
SVP 3.0.4 Lite (2MB)
http://www.svp-team.com/files/SVP_3.0.4_Lite.exe
適用於已經自行安裝了播放器和ffdshow,avisynth等配件
或已經安裝了過去版本的SVP的使用者
SVP 3.0.4 Full (27MB)
http://www.svp-team.com/files/SVP_3.0.4.exe
適用於尚未安裝任何播放器與ffdshow,avisynth等配件的使用者
SVP至少需要 ffdshow, AviSynth 才能運作,
其中AviSynth必須為支援多核心運算的版本.
有缺漏的配件可至SVP官網補齊
http://www.svp-team.com/wiki/Download
--------
快速上路
--------
1.強烈建議在安裝SVP前移除所有解碼包(如K-Lite等).
2.執行SVP安裝檔,整個過程不需更改任何設定,照著指示點選下一步即可.
3.安裝完成後,在開始功能表中開啟"SVP Manager".
SVP的圖示應該會出現在右下角的常駐列.
4.開啟MPC-HC (或其他可調用ffdshow filter的播放器),
確認MPC-HC調用ffdshow video decoder或ffdshow raw video filter播放後,
開啟想觀看的影片,SVP的圖示將會轉為綠色,並且在影片中提示
"SVP: Smooth playback...".
5.Enjoy!
--------
效果調整
--------
SVP非常的吃CPU,雖然我們已內建了可用於大部分硬體的設定檔,
你或許會想自行調整效果使其更適合您的電腦.
要調整效果,在SVP圖示上點右鍵,[Algorithms profiles settings]下
有三個設定檔,將會依照影片播放的解析度自動套用,點擊設定檔以進入
設定方塊. (可調設定的數目由SVP選單 [Interface]下的三個選項
Simple, Advanced, Expert調整)
影片播放時,在SVP圖示上點兩下可開啟當前影片所使用的設定檔.
------------
個人設定分享
------------
Smoothness improvement: Advanced
SVP-shader: 23. Complex
Framerate change: Double the frame rate(2x)
Interpolated frames size: Full size
Search radius: 1 pixel
Search type: Uneven Multi Hexagon
Motion estimation accuracy: To pixel
Recalculation of vectors: Do not recalculate
Blocks size: 32x32 pixels
Blocks overlapping: No overlap
Contour artifacts suppression: Normal
Bad areas artifacts suppression: Normal
Bad areas artifacts mask: Normal
Processing of scene change: Frame repeating
Reduce resolution: Do not reduce
Frame blending to screen refresh
-rate: 不勾選
這設定值產生的artifacts比較少,但是相對的判斷動態移動的標準就比較嚴格,
如果場景移動幅度非常大或者影格之間差距較大幀數較低(如動畫等),
則不會對其做插補.
個人在使用上搭配了Reclock,可以達到完全去除judder的效果,並且將螢幕更新率
設定為影片速率的整數倍,例如24p影片設定為48hz,30p設定為60hz.
如果有更好的設定值歡迎版友分享上來XD
-------------------
使用DXVA配合SVP播放
-------------------
使用條件:
1.需使用PotPlayer
2.作業系統必須是Windows Vista/7
3.並非所有顯示卡皆支援
說明:
1.安裝PotPlayer.
2.開啟PotPlayer,右鍵/選項,左側[濾鏡]/[視頻解碼],點一下"內置解碼器/DXVA
設置".
3.在右側硬件加速(DXVA)設置,使用條件選為"總是使用",下方
VC1,H264,AVC1及MPEG4選為VLD,最後將"在 Vista/Win7 中開啟DXVA無渲染模式"
打勾後按確定. (如果無此選項請更新您的PotPlayer)
4.左側[濾鏡]/[濾鏡優先權],點一下"添加系統解碼器",
找到"ffdshow raw video filter"將其加入後,將其優先順序選為"強制使用",
並對ffdshow raw video filter點兩下,在設定方塊左側[Codecs]點一下,
確認Raw video選為all supported後,按確定再確定即可.
5.開啟SVP Manager後,使用PotPlayer播放想觀賞的影片 then Enjoy!
註: nVidia顯卡使用者可使用LAV CUVID Decoder進行顯卡加速解碼.
一些"無用"的有趣avisynth語法
============================
使用方法:
1.讓播放器調用ffdshow video decoder或ffdshow raw video filter播放.
2.開啟ffdshow設定方塊,將左側AviSynth設定選項打勾.
3.點選AviSynth設定,右側將Add ffdshow video source取消勾選,
Input colorspaces的四個方塊打勾,Buffer back/ahead不勾選
3:2 Pulldown選為Ignore pulldown.
4.將語法貼在下方空白處,按確定後即可.
--------------------------------------
讓LCD或非交錯式顯示設備輸出交錯式畫面
--------------------------------------
語法:
ffdshow_source()
AssumeTFF
ConvertToYUY2(interlaced=true)
Original=SeparateFields
EvenFields=SelectEven(Original)
EvenFields=AssumeFrameBased(EvenFields)
OddFields=SelectOdd(Original)
OddFields=AssumeFrameBased(OddFields)
BlackFields=Blankclip(EvenFields,color=$000000)
Even=Interleave(EvenFields,BlackFields)
Even=AssumeFieldBased(Even)
Even=AssumeTFF(Even)
Evenprog=Weave(Even)
Odd=Interleave(OddFields,BlackFields)
Odd=AssumeFieldBased(Odd)
Odd=AssumeBFF(Odd)
OddProg=Weave(Odd)
Interleave(EvenProg,OddProg)
說明:
這個語法可以將30p或24p的畫面輸出成60i或48i,
對於60i的畫面則是直接原始輸出60i的交錯畫面.
使用上需要注意ffdshow設定方塊左側RGB conversion,
必須將Method下面的Interlace or Progressive設定在Force Progressive,
這樣當avisynth處理完交錯畫面要從YUY2轉回YV12時才不會發生誤判.
另外如果影片來源的垂直解析度與顯示設備的當前垂直解析度不同的話,
可利用ffdshow的Resize功能,或者直接在avisynth語法中使用LanczosResize()
將影片解析度調整至與螢幕解析度一致,以取得最佳觀賞效果.
視覺效果:
仔細靠近螢幕,你會發現螢幕稍有閃爍的感覺,且亮度暗了一些.
如CRT pulse type顯像般的感覺,然而因為LCD的液晶反映速率仍遠遠不及
CRT,LCD的更新頻率為60hz(Hold-type),實際上每條水平像素顯示的頻率在30hz,
所以閃爍的感覺或許會比CRT嚴重.
Source:
http://tinyurl.com/3t9y8j8
---------------------------------------------
讓Hold-type的LCD模擬pulse-type的CRT輸出(插黑)
---------------------------------------------
※注意 : 長時間使用此語法觀看影片可能造成眼睛不適!
語法:
在120hz/60hz/48hz的螢幕上觀看60fps/30fps/24fps影片使用1/2的hold time
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black)
在72hz的螢幕上觀看24fps影片使用1/3的hold time
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Black)
在96hz的螢幕上觀看24fps影片使用1/2的hold time
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Original,Black)
在120hz的螢幕上觀看24fps及30fps影片使用2/5及1/2的hold time
#24fps
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Black,Original,Black)
#30fps
Original = ffdshow_source()
Black=Original.Blankclip()
Interleave(Original,Black,Original,Black)
此語法會帶來強烈的閃爍感,請降低顯示器的亮度或戴上護目鏡或墨鏡
說明:
這個語法在影格之間進行插黑,除了120hz的插黑閃爍感較不嚴重(120hz語法
插黑頻率為60hz,其餘皆為48hz,30hz與24hz),其餘因插黑頻率偏低,閃爍感比較重.
因為影格的hold time進行了縮減,所以動態模糊的情形可以改善許多.
視覺效果:
非常閃,並且亮度降低許多,但眼球追蹤畫面移動中的物體會發現動態模糊的
情形改善許多,並且有類似戲院膠捲放映般的動態感.
使用軟體進行插黑,因為硬體信號輸入頻率的關係,插黑頻率無法太高,
如果能將插黑頻率提高,閃爍的感覺將可以改善.
Source:
http://forum.doom9.org/showthread.php?t=144276
近期會更新前一篇Reclock的教學文(有些內容是過時的)
主要新增madVR與Reclock的搭配使用方案
→
08/16 17:49, , 1F
08/16 17:49, 1F
→
08/16 17:50, , 2F
08/16 17:50, 2F
→
08/16 17:52, , 3F
08/16 17:52, 3F
→
08/16 18:00, , 4F
08/16 18:00, 4F
→
08/16 18:41, , 5F
08/16 18:41, 5F
→
08/16 18:41, , 6F
08/16 18:41, 6F
→
08/16 18:41, , 7F
08/16 18:41, 7F
→
08/16 18:53, , 8F
08/16 18:53, 8F
→
08/16 18:54, , 9F
08/16 18:54, 9F
→
08/16 18:55, , 10F
08/16 18:55, 10F
→
08/16 18:55, , 11F
08/16 18:55, 11F
→
08/16 18:56, , 12F
08/16 18:56, 12F
→
08/16 18:57, , 13F
08/16 18:57, 13F
→
08/16 18:58, , 14F
08/16 18:58, 14F
→
08/16 19:01, , 15F
08/16 19:01, 15F
→
08/16 19:18, , 16F
08/16 19:18, 16F
→
08/16 20:16, , 17F
08/16 20:16, 17F
→
08/16 20:20, , 18F
08/16 20:20, 18F
→
08/16 20:20, , 19F
08/16 20:20, 19F
→
08/16 20:24, , 20F
08/16 20:24, 20F
→
08/16 20:39, , 21F
08/16 20:39, 21F
→
08/16 20:43, , 22F
08/16 20:43, 22F
→
08/16 20:45, , 23F
08/16 20:45, 23F
→
08/16 20:49, , 24F
08/16 20:49, 24F
→
08/16 20:51, , 25F
08/16 20:51, 25F
→
08/16 20:56, , 26F
08/16 20:56, 26F
→
08/16 20:57, , 27F
08/16 20:57, 27F
→
08/16 20:58, , 28F
08/16 20:58, 28F
→
08/16 21:16, , 29F
08/16 21:16, 29F
→
08/16 21:16, , 30F
08/16 21:16, 30F
→
08/16 21:24, , 31F
08/16 21:24, 31F
→
08/16 21:25, , 32F
08/16 21:25, 32F
→
08/16 21:46, , 33F
08/16 21:46, 33F
→
08/16 21:49, , 34F
08/16 21:49, 34F
※ 編輯: web2312 來自: 114.44.141.176 (08/17 11:22)
推
08/19 20:16, , 35F
08/19 20:16, 35F
→
08/20 20:13, , 36F
08/20 20:13, 36F
※ 編輯: web2312 來自: 114.32.133.33 (10/08 22:41)
推
11/26 15:37, , 37F
11/26 15:37, 37F
AVEncode 近期熱門文章
PTT數位生活區 即時熱門文章