【10bit折騰播放】MPC-HC播放+LAV解碼+FFDShow後處理+madVR渲染+ReClock影音同步+SVP即時插幀60FPS~設定簡圖

TAS

"人"生淫家...
已加入
3/16/09
訊息
4,078
互動分數
32
點數
48
最新更新內容請見【部落格】


暨上一次【折騰播放】第1彈 PotPlayer + LAV Filters + madVR + ReClock + SVP 設定簡圖 (高畫質+影音同步+即時插幀)


這次第2彈再分享一下MPC-HC上的每秒60張畫面流暢輸出的高品質高畫質播放設定圖


MPC-HC雖然功能較簡單,但各種意義上來說,對於喜歡各方嘗試到處外部調用搭配的人來說,MPC-HC的相容性和穩定性還是相對高於PotPlayer



以下為各元件下載/更新網頁:

Media Player Classic - Home Cinema

LAV Filters - DirectShow Media Splitter and Decoders

FFDShow

madVR - high quality video renderer (GPU assisted) 高品質視頻渲染器

ReClock 影音同步

SVP (SmoothVideo Project) 最強免費即時插幀軟體

AviSynth

備用:

DirectVobSub (VSFilter)




P.S. 安裝請都選裝32bit(x86)版
P.S. 使用SVP即時插幀使影像輸出每秒張數與螢幕同步需要中高階硬體效能,如果純軟解(CPU)無法負荷,可開啟硬解利用GPU協同運算降低CPU負擔。




首先到MPC-HC設定裡面,將內建解碼項目勾消掉
LbxVa.png




然後將內建音訊切換器也勾消掉 (改用FFDShow的音訊切換器較佳)
bMhcE.png




再來設定調用外部解碼
之前有安裝完必要元件後,應該都會出現在可新增的項目裡
請依照下圖順序加入,並全部設定為"偏好(優先)"
kbFfY.png




然後連點 LAV Video Decoder 進入設定畫面
Nvidia顯示卡用戶如有需用硬體解碼,請啟用藍框部分設定
下方的軟體去交錯功能這裡就不考慮使用了,因為效果沒硬體去交錯好,去交錯工作直接交給顯示卡就可以了
nHoNZ.png




再來連點 ffdshow raw video filter 進入設定畫面
將"去斷層"啟用
WROZY.png




有需要用 HDMI 次世代音效輸出的人請連點 Lav Audio Decoder 項目進入設定畫面
依你使用的音效格式勾選藍框裡面的項目
vMNh0.png




再來連點 ffdshow Audio Decoder 進入設定畫面
將"無壓縮"改為"所有支援的格式" (這樣才能讓FFDShow吃LAV解碼完的內容)
ofkes.png




啟用 FFDShow 的音訊切換器
W8LXx.png




此圖為範例,這部分請依你的音效設備支援能力做設定
dY5d9.png




此圖為範例,這部分請依你的音效設備支援能力做設定
so2BK.png




紅框部分請依你的音效設備支援能力做設定
有需要用 HDMI 次世代音效輸出的人,依你使用的音效格式勾選藍框裡面的項目
tN03s.png




LGON5.png




Yz4al.png




接著設定 madVR
請隨便播放一個影片後
於桌面右下角系統匣圖示點選右建進入 madVR 設定畫面
JGQFu.png




LB7QH.png




請依照你的顯示器類型選擇
7RjRC.png




eHsJt.png




請勾消全螢幕獨佔模式 (如播放遇到問題再使用獨佔模式)
7EHUg.png




ReClock安裝完後會在桌面出現設定捷徑,請點選開啟
oNQC6.png




字幕部分設定 (如遇到高級動畫特效字幕顯示有問題,再安裝新版 DirectVobSub 來做外部調用並關閉內部字幕顯示即可)
EVoTr.png




檔案關聯
請依你想用 MPC-HC 播放的檔案類型來勾選,或者直接選關聯所有視訊類型
We9hW.png




這邊以 AMD 顯卡用戶為例
請稍微調高"邊緣增強(銳化)"
d3Zsq.png




然後因為 madVR 0.78版以後已內建 DXVA2 Deinterlacing 去交錯功能的關係,請將"動態範圍"設定為"有限(16-235)"
ycbKC.png

原因詳見作者說明
(1)Deinterlacing需要DXVA2的存在,XP使用者需要安裝.NET 3.0(或更新版)去獲得DXVA2

(2)使用DXVA2 deinterlacing意味著會開啟潛在的所有令人討厭的GPU運算法
像是noise reduction與edge enhancement將會帶到madVR
所以,確認將你的GPU driver's control panel所有的這些功能關閉.當然,madVR只有在需要去交錯時才會使用DXVA2
所以對於progressive的材料(或當你使用外部去交錯)那將與舊版的madVR無任何差別.

(3)此時此刻madVR跟VMR與EVR幾乎能做相同的事.不理想的情況例如:
MPEG2旗標是可信的,所以影片去交錯可能不完全正確,特別是MPEG2的DVD與電視訊號.我將會在未來的版本做改善.

(4)關於你所指定的那種色彩空間,madVR跟其他渲染器來比算是很少挑剔的.
madVR會非常樂意的去交錯在所有8bit YCbCr的格式上.甚至4:2:2與4:4:4,madVR在DXVA2 deinterlacing時將會轉換到4:2:0

(5)ATI顯卡使用者請設定"Advanced Color -> Dynamic Range" and set it to "Limited (16 - 235)"
這能確定在DXVA2 deinterlacing時Blacker than black(0-15)與Whiter than white(236-255)不會被切斷.

(6)為了縮減壓縮檔的大小,我已移除madVR壓縮檔裏的Intel software decoder DLL
總而言之,因大多數人可能都使用libav decoders
如果你想使用Intel decoders,可以在此下載分離出來的DLL檔.

(7)這是第一個實驗性的版本,bugs在所難免.



接著到控制台>音訊裝置
確認你的音訊輸出
yF7Ca.jpg




並使用獨佔模式
IZp0B.jpg




最後最折騰的部分...SVP (SmoothVideo Project)



安裝設定部分一樣引用eLove的教學,不過因為版本已有更新,所以這邊內容我有稍作修改

前言部分可先跳過
請先下載這段影片(InterFrame)並播放2~3次後再比較原始影片(Original)

是否明顯感覺InterFrame影片在畫面平移時很平滑、順暢 ?
這段平滑影片是由InterFrame軟體轉檔來的並非以即時的方式呈現
如果要針對不同影片做即時插幀,那麼就需要 SVP 的幫助
把影片幀率 23.976fps 提昇為 60fps (與螢幕同步),再搭配 ReClock 使影音同步



欲順暢播放1080p(高碼率)並即時插幀且是AMD(ATI)顯卡,請以此為基準:
i7-920@4.0GHz
Uncore@3.6GHz
AMD HD6970/2GB@880/1375, Catalyst 11.8 preview以後

NVIDIA 顯卡 ...
抱歉,手邊能跑的N卡全被a走 ;em42;

SVP 顯卡支援表:http://www.svp-team.com/wiki/GPU_Compatibility
AMD HD69xx,SVP官方建議驅動11.7(含)之後的版本,並再另外安裝 OpenCL 驅動
NVIDIA 已在驅動安裝包內建,不必另外下載安裝

SVP 3.0.5 Full 下載



以下分別介紹:
一、SVP 安裝
二、PotPlayer 設定 (這部分跳過)
三、SVP 設定
______________



一、SVP 安裝
(1) 語言請選擇 English
i87604_SVP01.png


(2) 依據 CPU 等級選擇 SVP 內定的設定參數
(3) SVP介面,建議選擇 Expert 模式
(4) 其餘選項可不用勾選
i87605_SVP05.png


(5) 圖中應該還有一個 ReClock 安裝選項,不過由於是安裝後再重新抓圖,所以沒有顯示...
建議勾選 AviSynth 2.5.8 MT、Visual C++ Redistributable 2008
FFDShow 和 AviSynth 如果已安裝較新版本,可不用安裝
ReClock 非必備,依個人喜好決定,相關設定請爬本篇前文 :PPP:
i87606_SVP07.png




三、SVP 設定
(1) 執行 SVP,如圖所示
i87620_SVPSetting01.png


(2) 勾選 GPU-acceleration (OpenCL)
i87619_SVPSetting02.png


(3) Demonstration mode 分屏演示有無 SVP 差異
i87633_SVPDemonstration.jpg


(4) 分別針對不同影片解析度、幀率設定參數
i87618_SVPSetting04.png


如果硬體配置與我差不多的,可以嘗試如圖設定
i87617_SVPSetting05.png

(5) 由於插幀是即時運算,難免會出現瑕疵
以下二個參數可以抑制瑕疵(即人物、物體邊緣會有肥皂泡或破碎的情形)
Contour artifacts suppression: High
Bad areas artifacts suppression: High
不過這樣的設定,在插幀合成上看起來會不太自然

一般改成 "雙Normal" 或是 "Nothing+Normal or Normal+Nothing"
此選項不同影片場景有不同效果,畫面合成要自然的話
選項可在 Nothing <---> Above Normal 之間實際播放後再決定

以下四個參數可配合 "雙Normal" 或是 "Nothing+Normal or Normal+Nothing" 再做優化
Search radius
Motion estimation accuracy
Blocks size
Blocks overlapping


這邊提供一個播放動畫的設定範例
GdxNT.png


紅框部分可依播放內容不同自行調整
如果播放中遇到強制關閉情況,請降低藍框部分數值設定


實際播放截圖
(1) 一開始播放影片會停頓一下是正常現象,這段時間是在處理影片該如何做插幀初始設定
影片解析度、碼率越高,插幀初始設定時間越久,CPU效能越高者此段時間越短

(2) 確認 SVP 為運作中
i87624_SVPPlayback01.png


(3) 開啟效能監控視窗
插幀效能指標 --> SVP-index 必須維持 1x
曲線波動過大,畫面會停頓等待運算
i87623_SVPSetting03.png

i87629_SVPindex.png


(4) 開啟 OpenCL
i87622_SVPPlayback02OpenCL.jpg


(5) 關閉 OpenCL,CPU 使用率較高,GPU 使用率稍微下降,記憶體使用量較少
i87621_SVPPlayback02NonOpenCL.jpg

其實「播放器、渲染器、分離器、解碼器」是可以隨意搭配的
只是 ffdshow raw video filter 一定必須設定為強制優先載入
SVP 必須透過 ffdshow raw video filter 對影像做後製處理(即插幀)
i87870_SVPffdshow.raw.video.filter.png




不同影片其實有一些小差異,設定並沒有辦法完全通用
強制關閉是因為調太高耗用太多記憶體,目前SVP沒有x64版本
再說即使支援了,其它相關的播放器、渲染器、分離器、解碼器也要能配合 ...



如果 Motion estimation accuracy 能跑 To quarter-pixel 應該會再好一些
開madVR+OpenCL,限制是720p以下,1080p任意碼率皆狂當:PPP:
開EVR-CP+DXVA+OpenCL,1080p只能到 To half-pixel

播放器記憶體使用超量死掉前的警告訊息 ... ;ng;
i87881_SVPMgr.jpg


另外建議針對經常播放影片的解析度、幀率設定好對應的profile,效果會比較好
i87868_SVPProfileSetting01.png


如果下載的片源(解析度、幀率、壓制)都相近
只要先開啟 SVP 播放影片,再取得 AVS-script 手動填入 ffdshow raw video filter
這樣就不會在一開始播放停頓了,而 SVP 也可以關閉不需背景執行

不過這方法不適用於「動畫的變動幀率」,要能支援 VFR,只能啟用 SVP 在背景偵測


(1) 播放後取得 AVS-script
i87654_AVSscript01.png


(2) 複製 AVS-script
i87653_AVSscript02.png


(3) 貼至 ffdshow raw video filter 的 AviSynth 並勾選啟用
i87652_AVSscript03.png


(4) 播放效果與 SVP 在背景執行時一樣,但不會在一開始播放時有停頓一會的現象
i87890_AVSscript04.jpg

SmoothVideo Project的罩門在哪裡呢?

目前看來還是拿Frame Rate為變動不定的片子沒辦法....尤其是rmvb這種的
因為影格速度一直變動,補插影格的輸出量就得一直跟著變動....
然後一直重新偵測重新調整輸出...
結果看rmvb沒開SVP還比較順

還有另一個就是
開SVP的記得片子盡量用字幕為內掛或外掛的,別用內嵌的
字幕也是一個小小罩門...


另外又錄了Sacred Seven的OP
看官自己再比較一下,一樣都60FPS模式錄的


Sacred Seven OP 外掛字幕 無SVP (原始Frame Rate 23.976)


Sacred Seven OP 外掛字幕 開SVP (Frame Rate 補插到60)


然後再看看字幕有出竅效果的
Sacred Seven OP 內嵌字幕 開SVP (Frame Rate 補插到60)


SVP中毒了...;em42;


最後是關於10bit解碼



目前10bit解碼速度:LAV>ffdshow>CoreAVC
詳情見此:http://forum.doom9.org/showthread.php?p=1524462#post1524462



10bit影片要用支援10bit H.264的解碼器
如果用不支援的解碼器,解碼後畫面會出現顏色錯誤、或出現色塊一大堆等問題



目前支援10bit H.264的解碼器有:
最新版的ffdshow video decoder
最新版的LAV Video Decoder
最新版的madVR渲染器的內置解碼器
最新版的mplayer的內置解碼器
最新版的Potplayer的內置解碼器
CoreAVC 3.0.1.0



CoreAVC有一堆bug,解碼效率也相較其他款低,基本上已經被我剔除
目前解10bit效果最好的還是LAV為首選



LAV 支援 8bit/10bit/16bit 的輸出,而 madVR 也支援 10bit 的輸入與渲染,ffdshow svn 4071 版以後也開始支援 10bit 輸出。

MPC-HC播放+LAV Filters解碼+FFDShow Filter後處理+madVR渲染+ReClock影音同步+SVP即時插幀60FPS

10bit播放一條龍完整實現!;0a155537;



如播放 10bit 影片時沒有正確輸出 10bit 格式
請將紅框部分勾消掉即可
nmRCc.png




本播放法如在一開始即出現記憶體使用超量警告為正常現象
...都說是折騰播放了...只要微調到不會掛掉就可以了
i87881_SVPMgr.jpg




這邊再引用
http://hi.baidu.com/mawen1250/blog/item/aa05a21f3a2f3deee1fe0b68.html
的一段說明
現在10bit的壓制逐漸開始流行,由於其可以在保持高畫質的前提下大大提升壓縮效率,所以是急需普及的新技術。
10bit壓制主要是通過提升編碼的精度,從而在有損壓縮時可以採用更高的量化值,同時保持十分好的質量,於是可以在比8bit壓制更低的碼率下還原出更好的畫面。
8bit量化下的Luma和Chroma取值範圍:Y:16-235,Cb/Cr:16-240。10bit量化下的Luma和Chroma取值範圍:Y:64-940,Cb/Cr:64-960。所以10bit在更高的精度冗餘下可以在有損編碼時有更高的效率。
具體對於畫質有利的方面主要在於:
1.防止banding(色彩平滑過渡區域的色帶)產生
2.提升暗場效果
3.更好地容納噪點

而這幾項正好都是現在8bit壓制中很難處理的地方。特別是對於動畫,banding是個及其麻煩的東西。暗場是十分容易碼率分配不足,並且產生畫面劣化的部分。而噪點則是十分消耗碼率。10bit下這些困難的東西都變得容易處理了。



所以只要確保解碼和處理方面都能正確支援10bit即可
輸出方面就不用鑽牛角尖還要去張羅10bit繪圖卡、10bit螢幕了...
 
最後編輯:

MJordan

高級會員
已加入
3/27/04
訊息
1,201
互動分數
0
點數
36
TAS兄實在是就甘心乀
每個軟體都寫這麼詳細的使用方法
 

ken21

永不上線
已加入
11/18/07
訊息
1,424
互動分數
0
點數
36
目前測試使用ffdshow 4090啟用"高品質的 YV12 到 RGB 轉換"配合SVP播放10bit影片會造成當機
而8bit無此問題
播放有問題的可將此項取消
 

ken21

永不上線
已加入
11/18/07
訊息
1,424
互動分數
0
點數
36
這裡有個小問題
螢幕更新率雖然設定為60
但實際上效能圖表下方顯示59.94
一些檢測工具無法顯示小數點就以整數顯示
59.94的由來可自行爬文搜尋
 

bba1234

榮譽會員
已加入
2/7/10
訊息
1,242
互動分數
0
點數
36
這真是 考驗電腦的硬體了= =
 

TAS

"人"生淫家...
已加入
3/16/09
訊息
4,078
互動分數
32
點數
48
這裡有個小問題
螢幕更新率雖然設定為60
但實際上效能圖表下方顯示59.94
一些檢測工具無法顯示小數點就以整數顯示
59.94的由來可自行爬文搜尋

Ah, More Math! 29.97 and 59.94!

Originally, the field rate of NTSC was 1/60 of a second.
This number was chosen to match AC power-line frequencies of 60Hz in North America (1/50 or 50Hz, in PAL).
Unfortunately, the engineers who designed the specification did so for a black-and-white video signal, and they did not plan ahead for color.
So when color television arrived, they had to make a change in the signal.
For technical reasons, this turned out to be a 0.1 percent slowdown in the frame rate.
This work out to 29.97fps, leading to a field rate of 59.94fps.
(The actual calculation for frames per second is 30x1000/1001, which equals 29.97002997003. For fields, the calculation is 60x1000/1001, which equals 59.940059944006.)


所以最後需要ReClock來搓合:rolleyes:
 

ken21

永不上線
已加入
11/18/07
訊息
1,424
互動分數
0
點數
36
Ah, More Math! 29.97 and 59.94!

Originally, the field rate of NTSC was 1/60 of a second.
This number was chosen to match AC power-line frequencies of 60Hz in North America (1/50 or 50Hz, in PAL).
Unfortunately, the engineers who designed the specification did so for a black-and-white video signal, and they did not plan ahead for color.
So when color television arrived, they had to make a change in the signal.
For technical reasons, this turned out to be a 0.1 percent slowdown in the frame rate.
This work out to 29.97fps, leading to a field rate of 59.94fps.
(The actual calculation for frames per second is 30x1000/1001, which equals 29.97002997003. For fields, the calculation is 60x1000/1001, which equals 59.940059944006.)


所以最後需要ReClock來搓合:rolleyes:
ReClock需要將螢幕更新率調整為接近影片速率的整數倍才有作用
若強制轉換問題會很多
目前也就剩獨佔模式可用
SVP才是流暢播放的解決方案
我這邊是提醒每秒60張畫面輸出並非完全正確
實際播放採用59.94(請看Performance graphs下方)
因為部分軟體只顯示整數所以很多人誤會每秒60張畫面輸出
播放器顯示的並不夠精確
像23.976被顯示成23.98
這邊建議以madVR當顯示基準
下面第一行才是真正的螢幕更新率
i102517_madvr.jpg


另外InterFrame影片也是做成59.94並非60
General
Complete name : X:\Animate\x264\20110618-Sample-InterFrame.mkv
Format : Matroska
Format version : Version 2
File size : 17.8 MiB
Duration : 26s 660ms
Overall bit rate : 5 597 Kbps
Writing application : x264 r1995 c1e60b9
Writing library : Haali Matroska Writer b0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.2
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 26s 660ms
Bit rate : 5 485 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 59.940 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.099
Stream size : 17.4 MiB (98%)
Writing library : x264 core 115 r1995 c1e60b9
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=18.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
Default : Yes
Forced : No
 
▌延伸閱讀