MPC-BE + BlueskyFRC で 10bit ソースを本来の輝度/コントラストで再生させる

この記事は約4分で読めます。
スポンサーリンク

はじめに

 予てより MPC-BE + BlueskyFRC という再生環境で BlueskyFRC を経由して AMD Fluid Motion (以後 AFM) によるフレーム補完を行った動画視聴では 10bit ソースに於いて HDR 処理されたような輝度とコントラストの狂いがあった。
 それにより明るいところが白飛びしたり暗い所は潰れたりと、折角自分好みの画質にエンコードした物が台無しになっていた。

 各所を調べる限りグラフィックドライバ側のバグという事で我慢し、過去に 10bit エンコードした動画を視聴する時だけ輝度を調整したり、以後は 8bit エンコードに質を落とすような妥協をして過ごしていた。

 それがなんとか 10bit のまま再生するというわけには行かなかったが、本来の輝度/コントラストで再生出来るようになったので備忘録として記事にする。

再生環境

 動画プレイヤーとして MPC-BE を使用

MPC-BE
Download MPC-BE for free. Media Player Classic - BE. Media Player Classic - BE is a free and open source audio and video player for Windows. Media Player Classi...

 Splitter や Decoder には LAV Filters を使用

Nevcairiel/LAVFilters
LAV Filters - Open-Source DirectShow Media Splitter and Decoders - Nevcairiel/LAVFilters

 AFM を使用する為に使うフィルターとして BlueskyFRC を使用。

Bluesky Frame Rate Converter
GPUを利用したフレームレート変換用のDirectShowフィルタで、AMD Radeon GPUで利用可能なAMD Fluid Motion Videoに対応しています。

再生環境設定

 MPC-BE を起動したら O を押すか画面表示領域を右クリックしたコンテキストメニューよりオプション を開く。
 内部フィルターから次のスクリーンショットの通り内部ビデオデコーダを無効化する。これにより外部デコーダが優先されるようになる。

 外部フィルターを開き、フィルターの追加 から LAV Splitter、Video/Audio Decoder、Bluesky Frame Rate Converter の 4 つを追加する。
 それから LAV Video Decoder の項目をダブルクリックして設定を開く
 Output Formats 以下 10bit16bit のチェック項目を全て外す。P010 だけ外せば問題は無いが念のため。
 最後に Hardware Decoder to use の所を None にしてハードウェアデコーダーを使わずソフトウェアデコードを用いるようにする。

動作確認

 Bluesky Frame Rate Converter 同梱のユーティリティである BlueskyFRCUtil.exe を実行すれば 状態 のタブにて動作内容が確認出来る。

 これにより LAV Video Decoder が使用され、DXVA Decode が使われておらず 24p ソースがフレーム補完されていると分かる。
 実際に動画を再生してみると当初の問題だった輝度とコントラストの狂いが解消されて本来の画質となってくれた。


 ただ、Video Decoder で 8bit 出力に固定したし BlueskyFRC 自体も内部では 8bit に落として処理しているので AFM でぬるぬるしたいのなら 10bit エンコードするメリットは皆無かなと。

 今回はあくまで過去に 10bit エンコードした大量の動画ファイルを AFM 有効環境であっても我慢せず視聴出来るようにとの一時的な対策でしかない。

おわりに

 今までなら Radeon Settings を開いてビデオのタブからカスタム輝度を -20 にしていちいち調整しながら 10bit ソースを再生していたけど、今回の対策をもって細かい調整無しにそのまま動画再生出来るようになった。
 願わくばドライバ側で 10bit ソースが入力された場合でも AFM が正しく動くようにしてくれれば良いなと思うばかり。昔はこんなんじゃ無かったので。

その後 (2019/04/24)

 10bit ソースを Video Decoder で 8bit に落とし、BlueskyFRC を経由してそのまま 8bit でレンダラに入力されて映像として表示される。
 それなら最終段階となるレンダラでよろしくやって上げれば「画質面はカバー出来るだろう」と言うことで madVR を使うようにしてみた。

 madVR にはバンディングを低減出来る機能があるので、上記スクリーンショットの様に設定してみたところなかなかの効果があった。

バンディング低減 – OFF

バンディング低減 – ON

 これならバンディング低減フィルターを通した 10bit ソースが 8bit に落ちてバンディングが発生してしまってもレンダラがよろしく処理してくれるので、劣化してしまった分を十分補うことが出来た。
 ただ madVR は少し負荷があるので動画再生時の消費電力が EVR と比べて 20W ほど増えてるような感じになってしまった。

スポンサーリンク

コメント

タイトルとURLをコピーしました