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

Software
この記事は約5分で読めます。
この記事は最終更新日より 1 年以上経過しています。
画像やリンクが無効になっている可能性もあるのでご了承下さい。

問題解決 (2019/06/03 追記)

 BlueskyFRC 2.15.0 のリリースによって本記事で書いた「10bit ソース再生時に輝度/コントラスト」がおかしくなる問題が解決されたので早急にアップデートした方が良いかも知れない。

Bluesky Frame Rate Converter Version 2.15.0|Blueskyの開発日記
|Bluesky Frame Rate Converter Version 2.15.0|Blueskyの開発日記

 2.15.0 に更新後、LAV Filters にて DXVA Native なデコード処理にして Output Formats 以下 10bit 部分をすべて ON にしても 10bit ソースを正常な色合いで再生出来ることを確認できた。

 ずっと Radeon Software 側のバグかと思っていた……
 しかし、これを機に madVR に触れる事になったから結果オーライなのかなと。

はじめに

 予てより 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 so...

 Splitter や Decoder には LAV Filters を使用

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

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

サイト移転のお知らせ

再生環境設定

 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 ほど増えてるような感じになってしまった。

著者プロフィール
ぶっち

本格的に PC へ触れ始めてたのは 1990 年位から。
興味は PC 全般。OS は Windows と Linux などを嗜む。
プログラマやネットワークエンジニアを経てフリーに活動している 2 児の父な 40 代半ばのおじさんです。

ぶっちをフォローする
ぶっちろぐ

コメント

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.