網誌文章分布

網誌文章分布
入門教程系列:2017年三月,主要是提些播放軟體的安裝。
基本教程系列:2017年四月,會提到一些播放流程丶驅動程式丶播放器設定。
進階教程系列:2017年五月,大多談些濾鏡的事項。
SmoothVideo Project 系列:2017年六月,部分關於SVP的文章
測試筆記:2017年七月~,就是一些相關測試的筆記,錯誤可能較多。
SmoothVideo Project(SVP)日系手繪動漫(Anime)適用參數:永久置頂

2017年5月14日 星期日

進階教程系列(一) - 解碼濾鏡 LAV Filters(2017-05-07更新)

LAV Filters 是目前最常被使用的解碼濾鏡之一,支援各類影片解碼,亦具備優秀的硬解能力。
其中64bit版本的性能又比32bit好上許多,可以參考入門教程系列(四) - 後記雜談這篇

相關連結
Doom9討論區:https://forum.doom9.org/showthread.php?t=156191
發行版載點:https://github.com/Nevcairiel/LAVFilters/releases
Nightly測試版載點:https://files.1f0.de/lavf/nightly/
LAV Filters mod(06_taro):http://tmod.nmm-hd.org/LAVFilters/

如果有硬解需求,建議採用LAVFilters-0.69.0-71之後的版本,此版本添加HEVC 10bit 59.94fps 硬解能力
目前最新D3D11硬解功能已於 0.71 正式發行版實裝了。

由於LAV內建的抖動(Dither) 精度比許多撥放器內建的渲染器還來的好,
若無使用madVR渲染,會建議採用LAV內的抖動處理,並避免撥放器影響,
尤其是PotPlayer,其內建影像處理濾鏡是破壞畫質的元兇之一,建議關閉。
(關閉方法請參考:基本教程系列(五) - 播放軟體 PotPlayer 篇


由06_taro所修改的LAV Filters版本具有以下特色,
其修改版添加了硬解的輪詢機制,
可以先嘗試A硬解法,若失敗則換B方法硬解...
最後還是不行才使用軟解,
及修改了輸出的色彩空間優先度,
另外,在使用swscale處(轉換格式),
將算法由原版LAV的雙線性內插法(bilinear)改爲雙立方內插法(bicubic)。
對8bit 4:2:0的源輸出優先級
原版是:NV12>YV12>YUY2>UYUY>RGB32>RGB24
本版是:NV12>YV12>RGB32>RGB24>YV16>YUY2
對9~10bit 4:2:0的源輸出優先級
原版是:P010>NV12>YV12>YUY2>UYVY>RGB32>RGB24
本版是:P010>RGB32>RGB24>NV12>YV12>YV16>YUY2
對11~16bit 4:2:0的源輸出優先級
原版是:P016>P010>NV12>YV12>YUY2>UYVY>RGB32>RGB24
本版是:P016>P010>RGB32>RGB24>NV12>YV12>YV16>YUY2
*目前06_taro版的LAV Filters似乎更新停止了,還停留上一個大版本,建議使用官方版本。


安裝步驟


勾選所需濾鏡,如果使用播放器為64位元,則選擇 x64 項目,
若使用32位元播放軟體,則勾選 x86 項目,
不知道播放軟體是幾位元的則保持預設(勾選 x64 及 x86 全部項目)



此頁面中,
第一項為詢問是否在開始功能表內建立捷徑,
第二項則是是否重置設定,
如果第一次安裝,或想重新設定,建議勾選第二項。



這頁面為詢問要使用LAV分離器分離哪些檔案類型。
(僅有分離部分,不含視訊及音訊解碼部分)



這邊就是將前述所選設定列出,
若沒問題,就開始安裝囉。



看到此頁面後,就代表安裝完畢囉。
將三項Configuration(設置)項目皆勾選
接下來將分別針對細項調整。



首先來看分離器(Splitter)的部分,
上方的Audio(音頻)及Subtitles(字幕),可以設定優先的軌道,可以依自行需求設定,
(不過這部分我比習慣使用MPC-BE內的切換)

在Subtitle Selection Mode內以下幾種選項可選:
1. No Subtitles:不載入任何字幕
2. Only Forced Subtitles:只選擇有強制軌(forced track)的字幕
3. Default:選擇有強制軌(forced track)或預設軌(default track)的字幕
4. Advanced:選擇在Subtitles的欄位中填入選擇邏輯

在Demuxer Settings(分路器設定)內,
Prefer Audio Stream with the Highest Quality (偏好最高音質音軌)
此項可以視情況勾選,
勾選後LAV會傾向選擇最高音質的音軌,
但少數影片最高音質的音軌不一定是對的/最好的。

左下角的Enble System Tray Icon勾選後,
在啟用LAV分離器時,會在右下角工作列的通知區域內顯示圖示。(依需求選擇是否勾選)



接下來看音訊解碼器(Audio Decoder)的部分,

右方的Output Formats(輸出格式)中,
可以自由選擇輸出格式,不過這邊建議預設即可。

左下角的Enble System Tray Icon勾選後,
在啟用LAV音訊解碼器時,會在右下角工作列的通知區域內顯示圖示。(依需求選擇勾選)



切換到音訊解碼器(Audio Decoder)的Mixing(混音)標籤頁,

Enable Mixing(開啟混音)勾選後,
便可以將 多聲道音軌 混和成 較少聲道數 輸出,
輸出聲道可以在Output Speaker Configuration(輸出揚聲器設置)中設置,
依照聲道數設定。
Mono:單聲道
Stereo:立體聲/雙聲道
4.0:4.0聲道
5.1:5.1聲道
6.1:6.1聲道
7.1:7.1聲道
再下方的Center Mix Level(中央聲道混音補償)丶Surround Mix Level(環繞聲道混音補償),
則依照ITU(國際電信聯盟)所發表的BS.775建議書
5.1聲道 向下混音至 立體聲/雙聲道 推薦設定
將中央聲道及環繞聲道降3dB後混音至左右聲道,
降 3dB 約為 電壓增益 0.71,
故將Center Mix Level丶Surround Mix Level設成 0.71,

而LEF Mix Level(重低音聲道混音補償),
BS.775建議書中則是建議棄用LEF聲道,
而且部分雙聲道系統中並不能良好的表現極低頻,會產生失真,
因此LAV預設值為關閉LFE混音(0.00),

LFE聲道通常表現於炸彈爆炸丶火山爆發等低頻音效,使其具有更加震撼的效果,
如果揚聲器低頻響應表現良好,
可以將LFE聲道增加4dB後混音至左右聲道,
因為LFE聲道在播放中需要增益10dB,
而混音至雙聲道則需要降6dB(電壓增益 0.5),
+10dB - 6dB = +4dB
增益 4dB 約為 電壓增益 1.58,
故LEF Mix Level設定成 1.58。
如果揚聲器不能良好表現極低頻,LFE還是設 0.00 較妥當
若還是想要將LFE聲道混音 或 嫌混音後低頻太多,
可以將LEF Mix Level設定成 介於 0.00 ~ 1.58 之間。

右方Setting(設定)選項中,
Clipping Protection(音量保護),
可以使揚聲器在大動態音頻輸出時,降低破音機率。
(如果對於揚聲器有信心,不建議勾選 此項,因為有動態壓縮的疑慮)



最後來到視訊解碼器(Video Decoder)的部分,



左上角Settings(設定)選項中,
Threads for Multi-Threading(設定多執行續的執行數),
基本上設定成Auto(自動)即可。

下面一點的,
Setting for Interlaced Video Streams(設定隔行掃描影片),
Field Order(場序規則),
在處理格行掃描影片時需要先進行去交錯,
而反交錯時分成 奇數場 優先或是 偶數場 優先,
可依需求設定,或是設定成Auto讓LAV自動判斷。

Deinterlacing Mode(去交錯模式),有幾種選項,
Auto:自動。
Agressive:當影片中發現有格行掃描的畫面時,則全部進行去交錯處理。
Force:強制進行去交錯處理。
Disabled:關閉去交錯處理。

右上角的Hardware Acceleration(硬體加速/硬解),
由於圖片中採用的是06_taro Mod版LAV,所以有硬解輪詢機制,
先嘗試1st,如果失敗,則換嘗試2nd,
還是失敗則換成3rd,再失敗則換成4th,
若全部都失敗,就採用軟解處理。

下方的Hardware Device to use(使用硬體裝置),
簡單來說就是選擇要用何者來進行硬體解碼,
有以下幾種選項,
NVIDIA CUVID:Nvidia專用硬體解碼介面,可以開啟硬體去交錯處理。
Intel QuickSync:Intel內顯專用硬體解碼介面,CPU使用率比其餘硬解模式稍高5~10%左右,可以開啟硬體去交錯處理。
DXVA2 (copy-back):為微軟開發的硬體加速介面,ANI顯示卡均可使用,會將解碼完成的資訊回傳給記憶體,由於多個回傳動作,故效能會比native略差,不過優勢為可以在解碼器與渲染器中間添加濾鏡。
DXVA2 (native):為微軟開發的硬體加速介面,ANI顯示卡均可使用,會將解碼完成的資訊將不會傳給記憶體,直接渲染,故效能比copy-back佳,缺點為限制較多。
D3D11:此為LAV添加的最新的硬體解碼方式,解碼出來的品質與軟體解完全相同(與D3D9 DXVA不同),並且也支援AMD 10bit HEVC 解碼,可能需要Windows 8.1或Windows 10。
*D3D11硬解功能在 0.71 正式發行版中才開始正式實裝。

如果要開硬解,
目前會建議建議使用D3D11模式,
若作業系統較為老舊則選擇 DXVA2 (copy-back) 較佳,(Windows 7丶XP等...)
若有去交錯需求再選擇 NVIDIA CUVID 或 Intel QuickSync

另外一提,
LAV濾鏡的作者 nevcairiel 有提過,混和解碼最好盡可能地避開(像是Kepler系列顯卡的HEVC解碼),在顯卡在高負載時將常會出現問題(像是使用較高設定的madVR)[來源]

查詢維基百科[來源]
使用HEVC混和解碼的Nvidia顯卡有GeForce 600/700系列及GeForce GTX 970, GTX 980,
HEVC純硬體解碼則要GTX960丶GTX950之後的顯卡才支援。(AMD顯卡在這部分沒看到相關資訊)

而GTX960與HD630相比硬解能力,
在DXVA2 (copy-back)模式下,解碼x265 10bit影片,兩者性能差異不大,
在DXVA2 (copy-back)模式下,解碼x264 8bit影片,HD630效能是GTX960的 155%
因此,硬解與顯示卡效能並非正相關,內部解碼電路才是重點。

但HD630在沒有輸出螢幕時,解碼性能會降到原先的65%,
變成與GTX960使用DXVA2 (copy-back)幾乎一樣,
可能要透過Intel® Extreme Tuning Utility等軟體來鎖定電壓,算是個BUG,使用假負載也許也能改善
(題外話,這在之前使用HD530開BFRC就發現的BUG...)

右下方的Hardware/GPU Deinterlacing (CUVID/QS only),
即為硬體去交錯處理設定,限定在NVIDIA CUVID或Intel QuickSync硬解模式下啟用。

Software Deinterlacing(軟體去交錯)
若要啟用軟體去交錯,可以選擇YADIF,
此處的去交錯與madVR內的去交錯,則一使用即可。

左下角的Output Formats(輸出格式),
可以設定不同色深下的影片輸出那些格式,
在本篇開頭處有提到,
由於LAV內建的抖動(Dither) 精度比許多撥放器內建的渲染器還來的好,
因此,
如果沒有要使用madVR渲染器及後處理濾鏡(post-processing filters),
建議讓LAV的高精度抖動輸出RGB模式(如下圖)
後處理濾鏡包含但不限於SVP丶BlueskyFRC丶dmitriRender丶ffdshow raw video filter


如果使用PotPlayer,LAV設定RGB輸出時,
其內建影像處理濾鏡一定要關閉,這會嚴重破壞畫質,
即便有使用madVR或後處理濾鏡,也建議關閉內建影像處理濾鏡。
(關閉方法請參考:基本教程系列(五) - 播放軟體 PotPlayer 篇


左下角的Enble System Tray Icon勾選後,
在啟用LAV視訊解碼器時,會在右下角工作列的通知區域內顯示圖示。(依需求選擇勾選)


當使用LAV Video Decoder解碼時,
Active Decoder:顯示當前解碼方式
Active Hardware Acceleration:顯示當前解碼硬體裝置

下圖顯示為
採用NVIDIA CUVID硬體解碼方式,
解碼裝置為GeForce GTX 960



LAV包含了以下幾種濾鏡
1. LAV Splitter Source(來源濾鏡及分離器)
2. LAV Splitter(分離器)
3. LAV Video Decoder(視訊解碼器)
4. LAV Audio Decoder(音訊解碼器)

*LAV Splitter Source及LAV Splitter擇一使用即可。


如果要採用LAV Splitter / Splitter Source來取代內建分離器丶來源濾鏡,
記得先關閉內部篩選器。



最後,
在撥放影片時,
按下滑鼠右鍵,選擇篩選器,
便可以得知是否有成功啟用濾鏡。



接下來將會在 進階教程系列中 稍微帶過幾種常用外掛濾鏡及一些電腦設定。

敬請期待~


我們下回見 :

更新內容
2017-10-09 硬解部分添加D3D11方式及修改少許內文。
2017-10-12 硬解部分添加部分說明。
2018-05-07 更新Lav改版訊息。

20 則留言:

  1. 如果使用PotPlayer,LAV設定RGB輸出時,
    其內建影像處理濾鏡一定要關閉,這會嚴重破壞畫質,
    即便有使用madVR或後處理濾鏡,也建議關閉內建影像處理濾鏡。

    你好,請問mpc-be下是要關那些選項呢?

    回覆刪除
    回覆
    1. 應該是指內部篩選器那張圖囉?

      刪除
    2. 使用PotPlayer需要特別關閉內置影像處濾鏡,因為這會造成畫質下降,
      尤其是LAV輸出RGB給PotPlayer時,特別嚴重。(MPC系列的撥放器就沒這問題)

      如果沒有特別需要使用LAV Splitter Source的話,
      是不用特意變更內部篩選器的設定,若有特別需求則是依照該圖關閉內置來源濾鏡。

      此外,
      如果在外部篩選器那頁設定偏好LAV Splitter / Splitter Source,
      "通常"就能強制使用LAV Splitter / Splitter Source了。
      (不過不是每個濾鏡都能這樣強制設定,而且可能版本也會有差,所以這篇才會寫先關閉內置濾鏡)

      刪除
  2. 之前我在其他地方看到的科普有讲LAV 硬解 DXVA2 (native)只能输出YUV 8bit,所以硬解HEVC 10bit应该选择copy-back输出YUV 10bit,现在是不是还是这样呢?D3D11呢?

    回覆刪除
    回覆
    1. 請問是哪裡的文章呢?想參考一下。 我這裡測試DXVA2 native是可以輸出10Bit的(P010)。
      https://i.imgur.com/L5BuZKF.png

      DXVA2 native比較不被推薦的原因是據說輸出的Chroma有些瑕疵,所以建議使用Copy-Back模式,省得麻煩。
      D3D11目前我還沒有看到有什麼BUG回報。

      如果有使用madVR,而且使用負荷較大的高級演算法,不太建議使用顯卡硬解,
      當顯卡負荷大時(不一定是90%+才算是負荷大),使用硬解會有一些問題存在。

      刪除
    2. 很久以前看到的,可能有误吧,我自己测试下确实是可以输出P010的,关于D3D11,我查了一下,加上自己测试,我是这样理解的,勾选auto,Lav会默认选择copy-back模式,但是如果开启了madvr,Lav认为显卡负载较大会选择native模式,如果不选择auto指定显卡,Lav会一直保持copy-back。然后我看了一下madvr,支持D3D11
      DXVA native,image quality is now always identical to software decoding (unlike D3D9 DXVA),看起来效果应该还是很好,和软解差不多了,但是相比copy-back可能兼容还是一般,显卡硬解码之后视频在显存里面直接输出给madvr,无法进行滤镜之类的后处理?所以我现在这样设定,一般观看D3D11 DXVA copy-back+madvr,4K+60fps D3D11 native +madvr,这样感觉应该比较合适?自己测试4k帧率还得比较稳定,显卡负载也不会太大

      刪除
    3. 以前EVR是不能輸入10Bit的,也許是這因素才有了native不支援輸出10Bit的說法吧。

      4K 60fps + madVR 的話,
      我自己之前的試驗結果,雖然顯卡負載沒滿,渲染時間也正常,但有時候就會不定時突然掉個幾幀,
      所以這類影片我不會建議開硬解,除非處理器效能不足,需要硬解才能撥放,
      不過以上只是我的測試結論,其他環境下可能會有不同結果,需要您測試一下。

      影片原生60fps或使用BlueskyFRC丶SVP這類軟體升頻的結果可能也會不同。

      刪除
  3. 請問我使用Potplayer1.7.8557(64bit)+LAV Filters(64bit),作業系統WIN10,I7-4790K+GTX970
    照以上設定後播放影片FPS還是只有20幾偵
    要播放60FPS是需要影片有支援,還是用軟體設定就可以了??
    我用MPC-HC設定後也是一樣,影片偵數沒有變高,請問是那邊出問題了嗎??
    好想看看60FPS的影片長什麼樣

    回覆刪除
    回覆
    1. 這篇只有提到解碼而已,補幀需要使用SVP丶BlueskyFRC(俗稱FM)丶DR這類軟體來達成,
      可以參考這幾篇,有幾個比較影片供參考
      https://blackmickeysvp.blogspot.tw/2017/05/smoothvideo-project-svp.html
      https://blackmickeysvp.blogspot.tw/2017/06/smoothvideo-project.html
      https://blackmickeysvp.blogspot.tw/2017/05/bluesky-frame-rate-converter.html

      DR的預設效果也不錯,不過我沒在使用,可以自行Google查詢其他dmitriRender的教學。 :D

      刪除
  4. 哈囉大大,現在設定硬解d3d11那個選項,mpcbe,potplayer若是點時間軸都會死雞...

    回覆刪除
    回覆
    1. 我這裡並沒發生這問題喔。
      試著更新MPC-BE丶PotPlayer丶LAV Video filter試試,
      昨天LAV有釋出0.73版本
      https://github.com/Nevcairiel/LAVFilters/releases

      刪除
    2. 感謝你 剛試似乎又沒問題 有6種可能 就不慢慢說明了 感謝你

      刪除
    3. 不會,先前忘了提,
      LAV設定D3D11解碼在部分老舊機器上的確會出問題,
      手邊有台GT120M的十歲筆電因為設定太順手,誤設定成D3D11解碼,
      理論上在這情況下,即便設定錯誤應該也不會使用D3D11解碼,
      不過LAV最後還是調用D3D11解碼,導致無法正常撥放。 :(
      (換成軟解就正常了)

      刪除
  5. 了解~感謝回復
    不過我設備應該還算滿新的,為madvr準備了8代i7,1080ti..想想到現在還沒買4k螢幕....用720P~1080P效能目前過剩中
    這就讓我好其不知道這55K的藍光播放器,和55K的電腦播放器,何種畫質好~

    回覆刪除
    回覆
    1. 從花園抓的C.C動漫...D3D11 AUTO 確定會死雞~~

      刪除
    2. 沒事了 看來是有時候mpcbe關閉不完全 造成有上個mpc淺藏在工作管理員底下

      刪除
    3. TVRip圖快而已,要畫質還是要BDMV/BDRip會好些,不過日本動畫的品質嘛...我就不提了www

      刪除
  6. http://tieba.baidu.com/p/5889687525
    好像有人真有這問題~~

    回覆刪除
    回覆
    1. 我在doom9中的LAV Filter討論串中看到有類似的狀況(6聲道影片凍結問題)在#23104,
      昨天釋出的Nightly Builds版本似乎已解決此問題。

      請至 https://files.1f0.de/lavf/nightly/ 下載最新Nightly Builds版本測試,謝謝。

      刪除

熱門文章