Windows上での動画再生における非同期問題の解決策

2010年04月26日 22:10

PCはハイスペック化を続け、AVとの親和性は飛躍的に高くなった。Blu-rayと同等の解像度の動画をいとも簡単に再生できるようになり、メディアプレイヤーとしてPCを使用している人も少なくないだろう。
しかし、皆さんはPCで動画を見る際、わずかな違和感を感じたことはないだろうか?
その違和感とは、同期ずれが生み出す動画のカクつきである。

もう少しわかりやすく具体例を出してみよう。
例えば、こちらのURLからユニゾンシフトの18禁ゲーム「ALICEぱれーど」60フレーム版デモムービーをダウンロードし、フルスクリーンで再生してみよう。
コマ落ちがない前提で話を進めるが、動画再生中、数秒おき、もしくは特定の場所でフレームが引っかかったようなカクつきを感じることはなかっただろうか。

この動画は毎秒60フレームで収録されており、あなたが液晶ディスプレイを使っていてリフレッシュレートが60Hzならば、ヌルヌルに再生されるはずである。ところが、実際にはそうならないことが多い。
ここで症状が実感できなくとも、実はより細かく見ていくと、minoriの「eden*」OPムービーや地上波で放送されたアニメTSファイル、そしてそれをエンコードしたファイルでも…この症状はあらゆる動画で発生している。

え?アニメの場合は再生時24fpsをプルダウンするからカクカクで当然だって?いやいや、その辺のことはおおまかではあるが、わかっているつもりだ。この問題はプルダウンとは別にある。なぜなら、PS3でDLNA再生した時は一切症状が発生しないからだ。

原因は、スペックが足りないからではない。何らかの要因によって垂直同期していないからだと考えられる。
管理人はこの問題を「Windows動画再生における非同期問題」と勝手に命名して扱ってきた。

本記事ではこの問題の解決策をご紹介したい。
なおOSはVista以降、使用ソフトはMediaPlayerClassic HomeCinemaを使用していることを前提とする。
この症状には大きく分けて2つの段階が存在する。本記事ではレベル1、レベル2と分けて解説していく。


レベル1:ALICEぱれーど60fpsデモを再生した際、コマ落ちがないにもかかわらず、同期ずれによるカクつきを感じる

これが確認できる場合、あなたの再生環境は相当酷い。60fpsの動画と60Pの画面上で同期ずれが起きているのだから。
これを滑らかに再生するためには、「MPC-HC」最新版と「DirectX End-User Runtime」最新版をインストールすれば良い。どうやら原因はDirectXとレンダラにあるらしく、これを正しくセットすることで飛躍的に同期性が改善される。
レンダラ設定はEVR、EVR(Custom Pres.)、madVRのいずれかにしよう。また、Haaliビデオレンダラは選択しないようにしよう。Haaliではコマ落ちがないにも関わらず、ティアリングや同期ずれが発生しやすくなる。個人的なお勧めはEVR(Custom Pres.)だ。


レベル2:ALICEぱれーど60fpsデモでカクつきを感じない

条件が意味不明だと思う方もいるだろう。
多くの人はレベル1が解決されると満足してしまうと思うが、実はまだ同期ずれが起こっているのである。この症状は主に24fpsの動画を60Pの画面上で再生すると同期ずれが発生する、というものだ。
ただし、いわゆる"一般的な"再生ではもはや判別できないレベルだ。管理人も普通の再生では全く区別がつかない。
同期の有無判別は、モーションフロー(スムーズ)等のフレーム補間機能を有効にして初めて可能になるのである。

モーションフローはソニーの残像低減機能の1つだが、そのうちの設定スムーズはフレーム補間の機能を最大限に生かした個性ある画作りになっている。中間フレームが予測生成されることで、画面のパン等が非常にスムーズにスクロールするのだ。
この時、同期ずれが発生すると中間フレーム生成が失敗し、カクつきが生まれてしまう。この性質によって、フレーム補間が有効な場合、通常再生時に比べ遥かに同期ずれの有無を判別しやすくなっているのである。

症状確認をするうえでは、「ソ・ラ・ノ・オ・ト」や「とある科学の超電磁砲」(1期)のオープニングムービーがわかりやすい。
前者は、常に画面全体がスクロールしながら再生されるムービーのため、同期の有無を判断しやすい。後者はタイトルロゴが出た後、風車を背景に街を下にパンしていくシーンで同期しているかを判別できる。
完全に同期したときの場合、「ソ・ラ・ノ・オ・ト」OPでは一度も途切れることなくヌルヌル再生が行われる。
比較対象のPS3では、1080@60Pでも同期ずれが発生することなくヌルヌルに再生される。

結論から言うと、同じ状況をPC上で実現するためには残念ながら方法は1つで、リフレッシュレートを動画のフレームレートに合わせるしかない。
PC上で60hz出力の場合、24fpsの動画再生で同期ずれはどうやっても避けられないようだ。したがって、24fpsの動画なら出力を24hz(24P)に設定して再生するという半ば反則な手段を取ることにより、完全に同期させることが可能になる。
また、当然だがこの解決策を実行する上で、ディスプレイが24P入力に対応している必要がある。(大方レベル2に踏み込む人は液晶TVに接続していると思うので大丈夫だと信じている)

その設定を手軽に行うために、プレーヤーのリフレッシュレート自動変更設定を利用しよう。
MPCHCのオプション > Fullscreenタブより"フルスクリーンモニタモード - 自動変更"にチェックを入れる。
コンテンツ周波数欄より"23.50 - 24.00Hz" の設定を "(ディスプレイの解像度) 32bpp 24Hz"に変更する。
また、For Vista and abobe onlyの欄より 23.976Hz(24P) の設定を
"(ディスプレイの解像度) 32bpp 23.976Hz"に変更する。

これで24fpsの動画を再生すると画面の垂直周波数が自動で24Hzに切り替わり、同期ずれが極めて少ない状態で再生が可能になる。

え?fps混合ソースはどうするかって?
もうどうしようもありません。60Pだとどう足掻いても同期しないので、PS3で再生してください。
もし完全に同期させることが出来る人がいるのなら誰か、方法を教えてください。(Reclockフィルタも駄目でした。)

ちなみに、一部動画で24fpsなのに24Hz再生されないことがある。その際は"フィルタ > レンダラ"のPin Infoを見てほしい。認識が25.00fpsになっていないだろうか。
おそらく原因はHaali Media Splliter。スプリッタが悪さをしている。MPCの内部フィルタを使用してみよう。


以上で、PC上でも実用に耐えうる動画再生環境が出来上がったと思う。
なお、予想がついた人もいるかもしれないが、管理人がここまで動画の同期にこだわってたのは、完璧なモーションフロー動作をPC上の動画再生で実現させたかったからだ。
とはいいつつも、混在ソースの再生には実質対応できないなど論外な問題が存在するため、現状はPS3を用いて動画再生するのがベストだと管理人は考えている。



コメント

  1. おにぎり | URL | -

    Re: Windows上での動画再生における非同期問題の解決策

    ずっと悩んでいたので、凄くためになる記事でした。
    レンダラをEVR(Custom Pres.)にしようと思うのですが
    補間方法
    D3Dスクリーン
    alternative vsync
    reinitialize when display
    evrバッファ

    それぞれの設定のお勧めがあったら
    教えて頂けると助かります。

  2. Prima | URL | 3/2tU3w2

    Re: Windows上での動画再生における非同期問題の解決策

    お役に立てたようでなによりです。

    補完方法はBicubicで、数値はお好みでいじってください。シャープさが変わります。私はA=-0.60です。
    それより下の設定はなんらかの形で再生に問題が出ている時に使用するものです。環境によって異なってくると思うので、私の設定に固有せず、色々いじってみると良いと思います。
    D3Dフルスクリーン、alternative vsyncはティアリングを防ぐための設定です。私は前者チェックせず、後者はチェックを入れています。
    reinitialize when display は主にマルチディスプレイの設定ですね。ディスプレイの設定を変更したときに再書き換えするかどうか…というものですが、私はチェックしていません。
    バッファはデフォルトのまま5です。これもドロップフレームが出たりしない限り、いじる必要がないと思います。
    もし画質にこだわりがおありでしたら、基本的に設定を1つ1ついじって試してみて、効果が判別できるか試していくのが良いと思います。(時間はかかりますが…)
    以上です。今後ともよしなに。

  3. おにぎり | URL | OARS9n6I

    Re: Windows上での動画再生における非同期問題の解決策

    詳しく教えて頂き本当にありがとうございました。
    お教えの通り、色々弄ってみてかなり満足の行く動画再生環境になりました!

    私もプリマさんには全然及びませんが
    エロゲやアニメ再生の環境追求が大好きですので、
    今後ともブログを楽しみに読ませて頂きます。

コメントの投稿

(コメント編集・削除に必要)
(管理者にだけ表示を許可する)

トラックバック

この記事のトラックバックURL
http://lumilia.blog73.fc2.com/tb.php/448-27c9404f
この記事へのトラックバック


最近の記事