头像
noob光环
帖子: 8
注册时间: 2012-02-09 11:35

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

小弟最近发现了个MPC-BE(不是HC的beMOD),似乎是be MOD从HC中独立出去了,不过现在我除了在窗口布局和一些功能设置上与HC相比有些改进之外,不知在解码能力上有啥改进,各位大大有啥意见么?
http://sourceforge.net/projects/mpcbe/
头像
noob光环
帖子: 8
注册时间: 2012-02-09 11:35

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

汗,我32位vista表示用起来压力不大,而且似乎要比HC快上那么一点点(相同设置下)但是因为是dev所以不敢太折腾(貌似dev版就是用来折腾的吧啊喂!)
头像
komaka
帖子: 5
注册时间: 2012-01-27 13:33

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

LZ我又来了 {:cat_13} win7 64位也是下载x86版吗?看到vempx的帖子说无论什么版本最好还是x86版?
头像
komaka
帖子: 5
注册时间: 2012-01-27 13:33

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

那要用madVR和Reclock只能x86了?win7 64用x86没问题吧? {:cat_13}
头像
06_taro
核心会员
核心会员
帖子: 998
注册时间: 2010-09-22 18:32
来自: United Kingdom
联系: 网站

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

madVR只有x86的,這個沒辦法,x64下能接近madVR效果的dshow renderer只有HaaliVR,問題是HaaliVR不能使用D3D FSE模式,因此無法防止tearing之類的問題,如果你一般看純film型的片子,有個可以支持24x刷新率的顯示器(譬如72/120Hz)的話倒是問題不大,把刷新率調整到最接近的整數,MPC的fullscreen設置頁面設置好合適的輸出,然後音頻部分根據情況上Time Stretch就行了,否則還不如直接EVR的D3D FSE。話說EVR也真糾結,支持向顯示器直接輸出10bit的RGB,卻不支持10bit色彩空間的輸入,何等詭異的東西…如果不糾結於dshow的話,mplayer系列裡可以用opengl渲染器,配合解碼設置得當的話效果其實很好…

Reclock的功能其實大部分人不一定需要。如果只是為了Kernel Streaming的話,x86的ASIO/MPC audio renderer都可以做到(如果是用ASIO4ALL的話這個ASIO的本質還是KS,如果聲卡有其他原生ASIO驅動的話則不一定,這種情況下很有可能原生的ASIO比KS的WASAPI效果要好,至少延遲應該更低),x64下直接用MPC audio renderer就行,設置裡可以開wasapi保持KS輸出。注意MPC renderer的wasapi或者ASIO Renderer都不像Reclock一樣有內部resampler/depth converter,如果用這兩個的話,上級filter(譬如ffdshow)的輸出規格一定要符合聲卡的要求。

實際上Reclock內部其他功能像audio的resampler或者depth converter在ffdshow裡都有,質量都不比reclock差,同時ffdshow也可以自定義profile以只在需要時處理,不需要時不處理。譬如只針對ch>2的開啟mixer,只針對超過48kHz的開啟resampler,16bit保持16bit輸出而>=24bit保持24bit輸出,在ffdshow的profile/preset settings頁面裡設置“Preset autoload conditions”就行了(reclock裡也可以設置成16bit時保持16bit輸出,LZ的設置保持的是固定24bit輸出,並沒勾選16bit輸入時保持16bit輸出,不知道是為什麼,對Reclock內部的處理來說16bit輸入用24bit輸出只增加帶寬需求而不會提高質量的,畢竟Reclock本身並不是聲卡或者DAC;另外輸出24bit不一定得是pad成32bit的格式,要看聲卡具體的規格,很多聲卡是可以直接接收非pad的24bit的)。

Reclock真正無可替代的強大之處其實在於將/1.001的視頻或者PAL視頻的幀率調整到最鄰整數以適應屏幕刷新率,同時配合視頻的調整來改變音頻速度以保持同步。或者有些非常奇怪的幀率也許不一定是最鄰整數,通常默認設置下也會自動選取最佳輸出幀率。用Reclock渲染音頻的時候打開視頻文件開始幾秒內會自動偵測視頻的幀率,然後會切換到最合適的輸出幀率以符合刷新率。如果你不需要這個功能的話,這個切換過程只會讓你覺得困擾,還不如直接用ASIO/MPC Audio renderer。而如果是使用到Reclock的這個功能的話(即播放時Reclock頁面的media adaption裡speed不是original speed的話),要注意這裡LZ的設置又有一個需要調整的地方,就是雖然勾選了“Time Stretching”,但是後面的“when slowing down”與“when speeding up”卻都沒勾選,所以在任何情況下time stretching都不會使用,這是不合理的。音頻速度是隨著視頻調整幀率而在Reclock內部修改的,譬如把24./1.001的幀率調整成24./1.的並輸出,則音頻本身也經過了1.001x的速度修正。速度修正如果不time stretch的話,音高是有變化的,加速播放的話音高會增高,減速播放的話音高會降低,這個過程是pitch scaling。也許對此不敏感的人不容易注意到1.001x速度變化帶來的音高變化,如果音感好的話還是有可能聽出來的,如果是PAL做speed down的話0.96x的pitch scaling更是非常明顯。所以按理說對正常播放而言,這兩個都應該勾選,只有在特殊情況才應該關閉,譬如24p的東西直接調整到60p播放,那樣由於不是正常播放情況一般不做time stretch,反倒是做了的話有可能因為速度變化太大而音高無法保持數據導致大量損失,反正不是正常使用,我自己也只有在QC字幕時有時候會用這種三倍速法,相信一般沒人會這樣看片吧。當然我不知道LZ是不是在音頻的解碼器與Reclock間插入了其他單獨的time strech的濾鏡,譬如Cyberlink的timestretch filter,如果是的話,對一般常見的直接修正1.001x的視頻就沒問題了,那個單獨的timestretch filter裡設定好固定的1.001x就行了,否則反而會因為使用了Reclock導致音高錯誤。

需要補充說明的是,上面關於Reclock的time stretch其實是理論上的。PAL的speed down下很明顯自然沒有問題,開關timestretch的設定是有效的,不管是聽感還是播放時Reclock的界面上pitch/stretch的狀態都能明顯看出;而關於NTSC的1.001x的問題,說實話Reclock內部的timestrech是否開啟我聽不出區別,並且如果用Reclock內部timestretch的話在播放時它的界面上看到做1.001修正始終是pitch x 1.0而stretch是不開的,我個人非常懷疑Reclock在1.001x這種非常低的pitch scaling上也許就算勾選並開啟,實際上也不會做time stretching,如果是這樣的話應該是種錯誤的做法;因此這種1.001x的情況,如果要用Reclock的話,我自己是用Cyberlink的timestretch filter來修正的,而這樣修正時大部分情況下我是能聽出Cyberlink的1.001x音高區別的,也就是說開啟兩次time stretch,而Reclock那邊認為是無效的。至於這種開啟兩次是否正確的我不敢說,因為比較方法是看開啟兩次stretch的結果,與只依靠Reclock一次stretch的結果,這能聽出區別的二者到底哪個更接近與original speed下關閉Cyberlink的stretch時的結果,這個過程需要從wasapi的輸出結果進行重新採集才能AB盲測(不走wasapi走dsound的話也可以,不過dsound本身經過了speed up/down、系統src這兩次處理,不確定因素更多),太麻煩了沒去搞過,不盲測的話只知道有區別,但是要說哪個接近original時不排除心理因素的干擾。至少Reclock的stretch x 1.001聽不出區別而Cyberlink的stretch x 1.001能聽出,以及Reclock開stretch時在這種1.001x情況下的界面顯示結果,都讓我覺得Reclock裡的1.001x修正是無效的。不管怎樣,在PAL speed down的情況下Reclock的time stretch是肯定需要開著的。

必須注意到的是對於播放速度的調整過程,雖然視頻部分的畫質並沒有損失,只是幀序列渲染的速度有微調(僅限於這一階段,在之後視頻渲染過程vsync時還是有fps->刷新率的調整),音頻上不管是time stretching還是pitch scaling都是一個有損失的過程。這個損失帶來的好處僅僅是將視頻渲染速度調整到屏幕刷新率的一個約數上,以保證實際播放時可以直接倍化到刷新率,從而減輕視頻渲染時vsync過程的一些問題(譬如tearing等)。如果你的屏幕是60Hz的,視頻是24./1.001fps的,將它調整到24fps並不一定會在60Hz的屏幕上有期待的提升(雖然還是有一些的);而30./1.001fps調整到30fps則vsync過程應該有較為明顯的優化。所以Reclock具體能不能給你自己當前使用的播放環境帶來足夠的提升,這個提升值不值得以音頻部分的損失為代價,這個都需要自己衡量的。在有些情況下,自己用FFDShow raw video filter開啟avisynth,然後把視頻用InterFrame插幀到60fps而音頻保持不變,或者直接上SVP,這種在vsync之前的視頻有損處理而音頻無損處理(實際上這種渲染前的插幀處理,到了視頻渲染階段時,除了FSE模式以外的屏幕內部補償也有同樣的問題,只是程度與效果不同,前處理和後處理不一定哪個更好)的過程可能會更符合某些人的需求。不存在完全通用的方案,需要的應該按自己具體環境與要求配置。
つまんねー事聞くなよ!

I, personally, for me, believe (obviously sometimes) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one. (source)

Follow me: @06_taro

304——
为纪念伟大的宇宙史上最强压制304先生,联合国教科文组织决定,将每年的第304天,即平年的10月31日或者闰年的10月30日,定为世界304日。
头像
mawen1250
核心会员
核心会员
帖子: 670
注册时间: 2011-07-24 20:33

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

多谢taro大指点,码字幸苦了。
其实Reclock我也没做过多少研究,基本也只关心WASAPI的部分。只是现在我笔记本也不知道是过热还是什么原因,系统频率经常改变(madVR的信息里显示的刷新率、Clock各种奇怪),然后Reclock就RP了,声音要么出现速度改变要么会卡顿。所以我现在是用ASIO Renderer的。
SABER
帖子: 3
注册时间: 2012-06-27 21:01

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

謝謝樓主 學習了,
头像
redrum
帖子: 5
注册时间: 2012-07-01 22:43

Re: 10bit视频编码——特性及全面播放方法介绍(2012.1.18更新)

唔 新版mpc的BE Mod在哪邊有載?
順一提 提到的許多插件的載點folder404~ http://xhmikosr.1f0.de/index.php?folder= 的那些~
test用途的115禁止分享影音文件~

--
其實根本的問題咱沒搞清楚 就是具體比如av splitter和av source的分工是? 具體是差異在哪些地方呢 ←所以我其實解碼具體流程沒有搞清見諒
上次由 redrum 在 2012-07-02 16:25,总共编辑 1 次。
「愛是恒久忍耐,又有恩慈。愛是不嫉妒,愛是不自誇,不張狂,不作害羞的事,不求自己的益處,不輕易發怒,不計算人的惡,不喜歡不義,只喜歡真理;凡事包容,凡事相信,凡事盼望,凡事忍耐。愛是永不止息。」

回到 “解码 播放 字幕 / Decoder playback and subtitles”