次の方法で共有


VMR と以前の DirectShow レンダラ

古いフィルタでは、ハードウェア構成に応じてグラフで異なるレンダラが必要になる。

非ビデオ ポート シナリオで 1 つのビデオ ストリームをレンダリングするには、ビデオ レンダラ フィルタが使われていた。これは、現在では 5 年以上前のグラフィック ハードウェア技術と古い DirectDraw のバージョンに基づいている。レンダリングに GDI を使うシナリオもある。GDI の使用は、5 年前には制限が多かったビデオ リソースの保持や、マルチモニタ サポートに関連する DirectDraw の制限を克服するために行われた。VMR-7 および VMR-9 ではレンダリングに GDI を使わない。VMR-7 は完全に DirectDraw 7 に基づいており、VMR-9 は Direct3D 9 に基づいている。

1 つのビデオ ポートまたは複数のビデオ入力ストリームに関係するシナリオでは、VMR の登場前にはオーバーレイ ミキサ フィルタがレンダリングに使われた。このフィルタはグラフィック カードのハードウェア オーバーレイのみを使うため、通常、ほとんどのカードで提供される 1 つのオーバーレイ サーフェイスに制限されている。オーバーレイ ミキサは転送先カラー キーイングを実行するが、アルファ ブレンディングはできない。ウィンドウ マネージャは備えていないため、ウィンドウ管理には 2 番目のフィルタであるビデオ レンダラを使う必要がある。VMR は真のアルファ ブレンディングができ、ハードウェア オーバーレイに加え、ソフトウェアで複数のオーバーレイを作成できる。

アプリケーションがビデオにクローズド キャプションまたは他の VBI データをオーバーレイするビデオ ポート シナリオでは、VBI テキスト用の追加ビデオ メモリを割り当てるため、VBI サーフェイス アロケータ フィルタを追加する必要があった。ISV にとって、VMR-7 では割り当てとレンダリングの機能を組み合わせ、すべてのシナリオで使われる単一のフィルタになっているので、アプリケーション開発が簡単になっている。VMR の場合、VBI サーフェイス アロケータは必要ない。Windows* *XP では、このフィルタは新しいビデオ ポート マネージャ フィルタに置き換わる。ビデオ ポート マネージャはオーバーレイ ミキサが以前行ったビデオ ポートのすべてのタスクを実行する。

 :  VMR-9 はビデオ ポートをサポートしない。

以前のレンダラより VMR の方が堅牢である。その理由の 1 つは、VMR は DirectDraw 7 (または VMR-9 を使う場合は Direct3D 9) のインターフェイスしか使わないが、古いレンダラでは DirectDraw の新旧バージョンのインターフェイスを混合して使う点にある。また、VMR で使われている新しいイメージ プレゼンテーション機構は現在および未来の世代のアダプタ向けに設計されており、Direct3D、増加した VRAM とビデオ メモリの帯域幅、およびハードウェア アクセラレーション機能をサポートしている。VMR では、フロントエンド処理に重点が置かれ、ビデオ ポートとオーバーレイへの依存が減っている。しかし、こうしたすべての新しい機能にもかかわらず、VMR は既存のアプリケーションと最大限互換性を保つように設計されている。

また、VMR は拡張性も高い。アプリケーションは、カスタム ビデオ エフェクトを実行したり、割り当てとレンダリング処理を制御したりする独自のサブコンポーネントを提供できる。