PV4 + WMEを使用した実況環境でのCPU負荷軽減

以前にも書いたとおり、実況用の映像をPV4を使って取り込み始めてから、CPU負荷が増大しまくって視聴する際にフレームレートが20fps前後にまで落ち込み、いわゆる「紙芝居」と呼ばれる状態になってしまっている。(以前は、30fpsで安定していた)

PV4を装着しているPC(実況に使用しているPC)を、もっとパワフルなものに変更すればいいのかもしれないが、そうは言ってもAthlon 64x2 4200+を使っている現状からすると、劇的な変化の見られるPCにアップグレードするにはかなりの予算が必要な気がする。

で、現実的な方法としてソフトウェアの設定を変更して重そうな処理を回避し、なんとか負荷を軽減する方向で考えることにした。おおよそ以下のような方法を試してみた。

PV4のデジタル音声取り込みが激重なので、PV4のアプリで「設定」→「モニタ時に音声を出力」をオフにして、PV4の光デジタル入力から音声を取り込まないようにする。(これをオフにすることが、音声取り込みをしないことになるのかは実は不明)音声についてはアンプからPCのラインインへ入力する。(もっとも、ゲーム機→アンプの音声接続をアナログにしなければならないので、デジタルサラウンドの恩恵はスポイルされるが)
SCFHを使用してWMEに入力する映像の解像度を調整しているが、これを解像度固定にして、SCFHが拡大縮小処理をしないようにする。SCFHの使用自体やめて、ゲーム機毎にWMEのプロファイルを作るという方法が一番軽そうだが、実況中にゲーム機の変更などで解像度が変わる場合(PS2SIRENPSP新耳袋みたいにw)もあるので当面はSCFHは使用を継続する。
・WMEの入力解像度と出力解像度は同じにする。
・WMEの「ツール」→「オプション」→「パフォーマンス」でブロードキャスト時を「高性能」にする。(WME全体のパフォーマンスを軽くする)
・WMEの「プロパティ」→「圧縮」→「編集」→「全般」で、エンコーダを「WindowsMediaVideo9」から「WindowsMediaVideo V7」に変更。(動きの激しい場面では多少映像が荒れるが、実況ではそれほど問題がない)
・WMEの「プロパティ」→「圧縮」→「編集」→「(ビットレート数)」で、「ビデオの滑らかさ」を「0」にする。

上記の設定変更をしつつ、視聴の際に見苦しくないようにビットレートは500kbpsを維持した。その上でなんとか30fpsの配信が実現できたのは見事。PV4のアプリが重いのはどうしようも無いのだが、設定のポイントは「デジタル音声取り込み」と「拡大縮小処理」をやめることだった感じ。ちなみにWiiで配信実験をしてみた。解像度は640x360の16:9画面なので、さらに高解像度のPS3Xbox360ではもう少しシェイプアップ(?)する必要があるかもしれない。

なお、PV4アプリの量子化テーブル設定ファイル「QuantizerMatrix.txt」についても、オール65535設定にして品質を落としてみたが、プレビュー中に効果があるのかは不明。