[教學] SmoothVideo Project與相關avisynth語法

看板AVEncode (影音編碼技術)作者時間13年前 (2011/08/16 04:04), 編輯推噓2(2035)
留言37則, 6人參與, 最新討論串1/1
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
效果不錯 但還是有些artifacts...
08/16 17:49, 1F

08/16 17:50, , 2F
解析度低的影片或是動畫類更明顯 而且可惜不能在DXVA下使用
08/16 17:50, 2F

08/16 17:52, , 3F
我試的結果畫面很暗 而且有橫紋
08/16 17:52, 3F

08/16 18:00, , 4F
不過Arcsoft的double frame rate還算正常
08/16 18:00, 4F

08/16 18:41, , 5F
待會我PO個個人設定檔,拿來看動畫幾乎沒有artifacts XD
08/16 18:41, 5F

08/16 18:41, , 6F
DXVA下是可以使用的,依據官網的說法,要配合potplayer
08/16 18:41, 6F

08/16 18:41, , 7F
晚上再更新上去...
08/16 18:41, 7F

08/16 18:53, , 8F
有橫紋是正常的,間隔螢幕30cm以上觀看比較好 XDD
08/16 18:53, 8F

08/16 18:54, , 9F
就像我們在看CRT一樣XDD
08/16 18:54, 9F

08/16 18:55, , 10F
potplayer下還是需要AviSynth嗎?
08/16 18:55, 10F

08/16 18:56, , 12F
需要potplayer配合ffdshow (avisynth)
08/16 18:56, 12F

08/16 18:57, , 13F
我前幾天測試過,似乎是我的顯卡比較舊的關係,畫面會卡
08/16 18:57, 13F

08/16 18:58, , 14F
如果再加上madVR CPU大概會吃得很嚇人www
08/16 18:58, 14F

08/16 19:01, , 15F
madVR我是沒有用啦,因為效果一眼看不出來XD
08/16 19:01, 15F

08/16 19:18, , 16F
madVR對CPU影響不大啦
08/16 19:18, 16F

08/16 20:16, , 17F
剛試用一下SVP 效果還不錯耶 可是偶爾有線條模糊 或字體抖動
08/16 20:16, 17F

08/16 20:20, , 18F
可以先自己玩一下設定,再調之前先拍張照,免得玩壞了
08/16 20:20, 18F

08/16 20:20, , 19F
調不回去ww
08/16 20:20, 19F

08/16 20:24, , 20F
阿... 我應該是調壞了XDDDD
08/16 20:24, 20F

08/16 20:39, , 21F
不過有restore setting還ok
08/16 20:39, 21F

08/16 20:43, , 22F
調一調我覺得CPU在喘了...XDDD
08/16 20:43, 22F

08/16 20:45, , 23F
之前在新i5系列跑過SVP,就算開1080p+SVP CPU也不過20% XD
08/16 20:45, 23F

08/16 20:49, , 24F
PS:預設值啦, 如果要調的話,把i7操爆的設定都有XDD
08/16 20:49, 24F

08/16 20:51, , 25F
對耶,有restore setting...之前還拍了一堆照= =
08/16 20:51, 25F

08/16 20:56, , 26F
SVP-Shader沒有調滿 畫面裡的靜態文字就會隨背景運動而抖動
08/16 20:56, 26F

08/16 20:57, , 27F
不過一調滿cpu負載就變很高 另外我播電視錄的烏龍派出所
08/16 20:57, 27F

08/16 20:58, , 28F
開啟enable deinterlace的話 畫面裡線條就會有馬賽克的跡象
08/16 20:58, 28F

08/16 21:16, , 29F
對於interlaced的片源,motion判斷可能會比較差,所以會有
08/16 21:16, 29F

08/16 21:16, , 30F
較多的artifacts,試試看progressive的片源吧
08/16 21:16, 30F

08/16 21:24, , 31F
可惜不能啟用OpenCL 倍頻感覺不太出來+小不習慣 似乎會有些
08/16 21:24, 31F

08/16 21:25, , 32F
差異 為了愛地球 我放棄SVP了XD
08/16 21:25, 32F

08/16 21:46, , 33F
搞了半天 1080i解交錯還是有問題 不過進步很多了...
08/16 21:46, 33F

08/16 21:49, , 34F
因為SVP主要不是拿來作解交錯用的@@
08/16 21:49, 34F
※ 編輯: web2312 來自: 114.44.141.176 (08/17 11:22)

08/19 20:16, , 35F
竟然沒人推 頭推 XD
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
web大您真是我的苦海明燈啊!!~
11/26 15:37, 37F
文章代碼(AID): #1EINlBZH (AVEncode)
文章代碼(AID): #1EINlBZH (AVEncode)