web-dev-qa-db-ja.com

VLC Media Player +ハードウェアアクセラレーション

VLCがハードウェアアクセラレーションを使用しているかどうかはどうすればわかりますか?少し高いように見えるh264ビデオを再生すると、通常、CPU使用率が約20%になります。

これが私の仕様です:

Windows 7 ATI HD4670 Phenom II x2 550

4
Tomasi

オーバーレイはハードウェアデコードと同じではありません。

ここには2つの部分があります。

  • ビデオデコード
  • ビデオレンダリング

ビデオデコードは、ビデオコーデックを使用したH.264のようなエンコードされたビットストリームの実際のデコードです。これは、エンコードされたコンテンツを、ビデオを構成する実際の画像フレームに変換するプロセスです。

これは、ソフトウェア(CPU)で実行することも、GPUでハードウェアアクセラレーションを実行することもできます(CPUのような汎用計算ではなく、そのような計算用に最適化された専用ハードウェアとレジスタを使用します)。 DXVAは、ビデオカードメーカーがアプリケーションで使用できるビデオドライバーで公開するDirect-Xインターフェイスです。 VLC 2.0以降はDXVAデコードをサポートしています

ビデオレンダリングがオーバーレイの出番です。これは実際のデコードプロセスとは異なることに注意してください。これは、実際に画面に額縁を表示する部分です。単純に聞こえるかもしれませんが、想像以上に多くのことがあります。通常、Windowsは、画面に配置する必要のある他のコンテンツを認識しているため、画面へのコンテンツの配置を処理します(どのウィンドウが他のどのウィンドウとオーバーラップするか。どのウィンドウのどの部分を描画し、何を非表示にするかを決定する必要があります。 )「オーバーレイ」設定は、ビデオプレーヤーに画像フレームをビデオカードのメモリに直接ダンプするように指示します。

少し高いように見えるh264ビデオを再生すると、通常、CPU使用率が約20%になります

CPU使用率だけではわかりません。ハードウェアがサポートできるハードウェアアクセラレーションにはさまざまなレベルがあります(MoComp、IDCT、VLDなど)。したがって、それは単なる「はい/いいえ」の答えではありません。 CPU使用率は、使用可能なアクセラレーションの量とコンテンツの詳細によって異なります。

プレーヤーがデコードアクセラレーションのみを使用している場合でも、CPUはサイズ変更、スケーリングなどの作業を行います(480pビデオがあり、1080p画面でフルスクリーンにする場合は、ビデオをスケールアップして画面全体に表示する必要があります-この処理は、特に指定がない限り、CPUで行われます)

したがって、あなたの質問に対する最終的な答えは、VLCでは、ハードウェアアクセラレーションの保証はありません。 CPU使用率を監視するだけでは、答えは得られません。

3
Bala Sivakumar

1.0.5で設定を確認したところ、簡単な設定で「高速ビデオ出力(オーバーレイ)」のオプションがあります。これがチェックされていることを確認してください。

「すべて」の設定には、「オーバーレイはビデオカードのハードウェアアクセラレーション機能(ビデオを直接レンダリングする機能)です。VLCはデフォルトでそれを使用しようとします」というツールチップを持つ「オーバーレイビデオ出力」オプションがあります。それもチェックされていることを確認してください。

したがって、VLCはハードウェアアクセラレーションを使用する必要があるようです。オフにしていないことを確認してください。ビデオカードでこれを処理できるはずです。

1
ChrisF

VLCはHAを使用できません。 1.1.0でのみ利用可能になります。それまでは1.1.0プレリリースを使用でき、動作します。

0
Apache