ビデオ プロセッサ MFT

ビデオ プロセッサ MFT は、色空間変換、ビデオのサイズ変更、インターレース解除、フレーム レート変換、回転、トリミング、空間左右ビューのアンパック、ミラーリングを実行する Microsoft メディア ファンデーション変換 (MFT) です。

CLSID

CLSID_VideoProcessorMFT

インターフェイス

入力形式

  • MFVideoFormat_ARGB32
  • MFVideoFormat_AYUV
  • MFVideoFormat_I420
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV11
  • MFVideoFormat_NV12
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB565
  • MFVideoFormat_RGB8
  • MFVideoFormat_UYVY
  • MFVideoFormat_v410
  • MFVideoFormat_Y216
  • MFVideoFormat_Y41P
  • MFVideoFormat_Y41T
  • MFVideoFormat_Y42T
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12
  • MFVideoFormat_YVYU

出力形式

  • MFVideoFormat_ARGB32
  • MFVideoFormat_AYUV
  • MFVideoFormat_I420
  • MFVideoFormat_IYUV
  • MFVideoFormat_NV12
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB565
  • MFVideoFormat_UYVY
  • MFVideoFormat_Y216
  • MFVideoFormat_YUY2
  • MFVideoFormat_YV12

入力形式と出力形式のすべての組み合わせがサポートされているわけではありません。 変換がサポートされているかどうかをテストするには、入力の種類を設定してから、IMFTransform::GetOutputAvailableType を呼び出します。

これらの形式の詳細については、「ビデオ サブタイプの GUID」を参照してください。

解説

ビデオ プロセッサのインスタンスは、次のいずれかの方法で作成できます。

  • MFTEnumEx を呼び出す。 ビデオ プロセッサは、MFT_CATEGORY_VIDEO_PROCESSOR カテゴリに登録されます。
  • COM 関数 CoCreateInstance を呼び出して CLSID CLSID_VideoProcessorMFT を渡す。

次の説明は、ビデオ プロセッサ MFT でのソースの四角形と変換先の四角形の操作に関するものです。 ソースと変換先の四角形は、IMFVideoProcessorControl::SetDestinationRectangle and SetSourceRectangle を使用して設定され、場合によっては IMFMediaEngineEx::UpdateVideoStream を使用して設定されます。

  • ソースの四角形は、ビデオ プロセッサに入力されたフレームの色形式の要件に合わせて配置および丸める必要があります。 420 や 422 などの形式には、作成およびアクセスできるディメンションとオフセットに関する要件があるため、これは重要です。 たとえば、入力形式が 420 の場合、ソースの四角形 {1, 0, 319, 240} (左、上、右、下) は {2, 0, 320, 240} に丸められます。
  • 変換先とソースの四角形はどちらも、それぞれのフレーム内に (ソースの四角形はソース フレームに、変換先の四角形は変換先フレームに) 収まるように常にクランプされます。 これは、負の値は意味がなく、常に 0 にクランプされることを意味します。
  • ソースの四角形は、変換先フレームの座標系内にあり、変換先の四角形を差し引いたものになります。 これは、回転などの変換がソースの四角形で "元に戻される" ことを意味します。 そのため、ビデオが回転されたか、3D アンパックされたかを知る必要はありません。 たとえば、ビデオ タグの上に四角形を描画し、(ビデオ タグを基準とした) 相対座標を取得し、それらを正規化 (範囲 0 から 1) して、ソースの四角形として渡すと、ビデオが回転している場合でも、それらは期待どおりの動作をします。

ビデオ プロセッサは、Microsoft Direct3D 11 を使用した GPU アクセラレータによるビデオ処理をサポートしています。 詳細については、MF_SA_D3D11_AWARE を参照してください。

立体ビデオ

ビデオ プロセッサでは、3D ビデオ フレームでのビューのアンパック操作がサポートされてます。

入力フレームに同じフレームにパックされた 2 つのビューが含まれている場合、ビデオ プロセッサはビューを個別のバッファーに分割するか、ベース ビューを抽出して 2 番目のビューを破棄することができます。 ビューのアンパックを有効にするには、MF_ENABLE_3DVIDEO_OUTPUT 属性を MF3DVideoOutputType_Stereo または MF3DVideoOutputType_BaseView に設定します。

要件

要件 Value
ヘッダー
Camerauicontrol.h

関連項目

デジタル信号プロセッサ