YUV混合モード
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
このトピックは、Windows XP Service Pack 2 以降に適用されます。
Windows XP Service Pack 2 以降、VMR は YUV 混合モードと呼ばれる混合モードをサポートしています。 このモードは、高度なテレビや DVD アプリケーションに最も役立ちます。 これは、統合メモリ アーキテクチャ設計を使用するロー エンド グラフィックス ハードウェアでのパフォーマンス向上のために、VMR ミキサーのパワーの一部を交換します。 YUV 混合モードは、VMR-7 と VMR-9 の両方でサポートされています。
長所
YUV 混合モードには、VMR でサポートされている元の RGB 混合モードよりもレンダリング パフォーマンスに関連するいくつかの利点があります。
- VMR が YUV 混合モードの場合、すべてのインターレース解除操作とビデオ ストリーム合成操作が YUV カラー 空間で実行されます。 YUV サーフェスは通常、同等の RGB サーフェスよりも 50% から 60% 少ないメモリ帯域幅を必要とします。
- インターレース解除とストリームコンポジションは、グラフィックス ドライバーの 1 回の呼び出しによって実行されます。 ドライバーは、グラフィックス ハードウェアのマルチテクスチャ機能を使用できるため、メモリ帯域幅が節約されます。
どのビデオ アプリケーションでも YUV 混合モードを使用できますが、主に次の 2 種類のビデオ再生アプリケーションを対象としています。
- クローズド キャプションまたはテレテキストを表示するテレビ アプリケーション。
- DVD アプリケーションでは、DVD サブ画像データまたはクローズド キャプションが表示されます。
制限事項
VMR が YUV 混合モードになると、いくつかの制限が適用されます。
- ストリーム 0 (入力ピン 0 に接続されているストリーム) は、プログレッシブまたはインターレースできます。他のすべてのストリームはプログレッシブである必要があります。
- GUID_NULL (織りモード) はストリーム 0 では使用できません。
- DeinterlacePref_Weaveフォールバック モードとして使用することはできません。これにより、インターレース解除デバイスが作成されるのを防ぐことができます。 YUV 混合モードでは、受信ビデオがインターレースされていない場合でも、デインターレース デバイスが必要です。
- 各 VMR 入力ストリームに関連付けられている平面アルファ値を変更することはできません。
- ユーザーは、接続されているビデオ ストリームの Z オーダーを変更できません。 既定の Z オーダーはピンの順序から取得されます。
- カラー キー設定はサポートされていません。
- 入力ピン 0 は、ビデオ ストリームを受信する必要があります。
- 他の入力ピンは、DVD サブ画像、クローズド キャプション、テレテキストなどのビデオ サブストリーム データのみを受信できます。
- その他の入力ピンでは、AYUV、AI44、IA44 などのピクセル単位のアルファ YUV 形式のみを受け付けることができます。
- どの VMR の入力ピンも RGB 形式を受け入れできません。
- アプリケーションが提供するビットマップ イメージを、ディスプレイに表示する前にビデオと組み合わせることができなくなりました。
- VMR のミキサーの "出力四角形" 関数を使用して、個々のサブストリームを水平方向または垂直方向に反転することはできません。 "標準" ストリームの再配置とサイズ変更がサポートされています。
- 混合背景色 ( IVMRMixerControl::SetBackgroundClr で指定) は、RGB 混合モードの場合と同様に、RGB 色空間でも指定されます。
Configuration
アプリケーションでは、YUV 混合モードを利用するように VMR を明示的に構成する必要があります。元の RGB 混合モードは既定の混合モードのままです。 VMR-7 で YUV 混合モードを有効にするには、MixerPref_RenderTargetYUV フラグを指定して IVMRMixerControl::SetMixingPrefs を呼び出します。 この呼び出しは、VMR の入力ピンのいずれかが接続される前に行う必要があります。 VMR-9 で YUV 混合モードを有効にするには、MixerPref9_RenderTargetYUV フラグを指定して IVMRMixerControl9::SetMixingPrefs を呼び出します。
VMR-7 が新しい YUV 混合モードをサポートしているかどうかを判断する唯一の方法は、VMR をそのモードに設定することです。 呼び出しが成功した場合でも、必要に応じて VMR を RGB 混合モードに戻すことができます。 YUV 混合モードに設定すると、すべての入力ピンが切断された後にのみ、VMR を RGB 混合モードに戻すことができます。
YUV 混合モードでは、 SetMixingPrefs メソッドで次のフラグを適用することで、グラフィックス処理装置 (GPU) の負荷を軽減できます。
フラグ | 説明 |
---|---|
VMR-7: MixerPref_DynamicSwitchToBOBVMR-9: MixerPref9_DynamicSwitchToBOB |
bob deinterlacing に切り替えます。 |
VMR-7: MixerPref_DynamicDecimateBy2VMR-9: MixerPref_DynamicDecimateBy2 |
画像を水平方向と垂直方向に 2 倍に減らします。 |
フィルター グラフの実行中に、これらのフラグを追加または削除できます。変更は、VMR ミキサーが次のビデオ フレームを作成するときに適用されます。 フラグは相互に排他的ではありません。 これらの設定により画像の品質が低下するため、通常は、ビデオの品質があまり重要でない場合 (たとえば、ユーザー インターフェイスのごく一部でビデオが再生されている場合) にのみ適用します。
関連トピック