ビデオ プロセッサ MFT は、色空間変換、トーン マッピング、ビデオサイズ変更、インターレース解除、フレーム レート変換、回転、トリミング、空間左右ビューアンパック、ミラーリング、レンダラー効果処理、および球マッピングを実行する Microsoft Media Foundation 変換 (MFT) です。
CLSID
CLSID_VideoProcessorMFT
インターフェイス
- IMFRealTimeClientExの
- IMFTransformをする
- IMFVideoProcessorControlの
- IMFVideoProcessorControl2の
- IMFVideoProcessorControl3
- IMFVideoRendererEffectControl
入力形式
次の形式は、IMFTransform::SetInputType を使用して設定されたメディアの種類のMF_MT_SUBTYPE値でサポートされている値です。
- MFVideoFormat_ABGR32
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_I422
- MFVideoFormat_I444
- 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_P010
- MFVideoFormat_P016
- MFVideoFormat_A16B16G16R16F
- MFVideoFormat_A2R10G10B10
- MFVideoFormat_Y210
- MFVideoFormat_Y410
- MFVideoFormat_Y416
- MFVideoFormat_L8
- MFVideoFormat_L16
- MFVideoFormat_D16
出力形式
次の形式は、IMFTransform::SetOutputType を使用して設定されたメディアの種類のMF_MT_SUBTYPE値でサポートされている値です。
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_I422
- MFVideoFormat_I444
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_UYVY
- MFVideoFormat_Y216
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
- MFVideoFormat_P010
- MFVideoFormat_P016
- MFVideoFormat_A16B16G16R16F
- MFVideoFormat_A2R10G10B10
- MFVideoFormat_Y210
- MFVideoFormat_Y410
- MFVideoFormat_Y416
入力形式と出力形式のすべての組み合わせがサポートされているわけではありません。 変換がサポートされているかどうかをテストするには、入力の種類を設定し、 IMFTransform::GetOutputAvailableType を呼び出します。
これらの形式の詳細については、「 ビデオ サブタイプ GUID」を参照してください。
色空間変換
次の属性を入力または出力の種類に設定して、コンテンツの色空間を変更できます。
- MF_MT_VIDEO_PRIMARIES
- MF_MT_TRANSFER_FUNCTION
- MF_MT_YUV_MATRIX
- MF_MT_VIDEO_CHROMA_SITING
- MF_MT_VIDEO_NOMINAL_RANGE
- MF_MT_MAX_MASTERING_LUMINANCE
- MF_MT_MAX_LUMINANCE_LEVEL
- MF_MT_CUSTOM_VIDEO_PRIMARIES
- MF_MT_PALETTE
イメージ変換
次の属性を入力または出力の種類に設定して、ビデオで空間変換を実行できます。
- MF_MT_PIXEL_ASPECT_RATIO
- MF_MT_VIDEO_ROTATION
- MF_MT_PAN_SCAN_APERTURE
- MF_MT_GEOMETRIC_APERTURE
- MF_MT_MINIMUM_DISPLAY_APERTURE
- MF_MT_VIDEO_3D
- MF_MT_VIDEO_3D_FORMAT
フレームレート変換
ビデオでテンポラル変換を実行するために、入力または出力の種類に次の属性を設定できます。
- MF_MT_INTERLACE_MODE
- MF_MT_FRAME_RATE
MF_XVP_DISABLE_FRCが TRUE に設定されている場合、フレーム レート変換は無効になりますが、インターレース解除は引き続き実行されることに注意してください。
属性の変換
IMFTransform::GetAttributes を使用して、変換で次の属性を設定できます。
- MF_XVP_DISABLE_FRC
- MF_XVP_CALLER_ALLOCATES_OUTPUT
- MF_LOW_LATENCY
- MF_XVP_SAMPLE_LOCK_TIMEOUT
- MF_ENABLE_3DVIDEO_OUTPUT
- MF_VIDEO_PROCESSOR_ALGORITHM
注釈
ビデオ プロセッサのインスタンスは、次のいずれかの方法で作成できます。
- MFTEnumEx を呼び出すこと。 ビデオ プロセッサは、 MFT_CATEGORY_VIDEO_PROCESSOR カテゴリに登録されます。
- COM 関数 CoCreateInstance を呼び出して CLSID CLSID_VideoProcessorMFT渡します。
次の解説は、 ビデオ プロセッサ MFT でのソース四角形と変換先の四角形の操作に関連します。 ソースとターゲットの四角形は 、IMFVideoProcessorControl::SetDestinationRectangle と SetSourceRectangle で設定され、 場合によっては IMFMediaEngineEx::UpdateVideoStream で設定されます。
- ソースの四角形は、ビデオ プロセッサに入力されたフレームの色形式の要件に合わせて配置および丸める必要があります。 これは重要です。420 や 422 などの形式には、作成およびアクセスできるディメンションとオフセットに関する要件があるためです。 たとえば、入力形式が 420 の場合、ソースの四角形 {1、0、319、240} (左、上、右、下) は {2、0、320、240} に丸められます。
- コピー先とソースの両方の四角形は、それぞれのフレーム (ソース フレームに対するソース四角形)、コピー先の四角形の内側に収まるように常にクランプされます。 つまり、負の値は意味がありません。常に 0 に固定されます。
- ソースの四角形は、コピー先フレームの座標系内にあり、変換先の四角形を引きます。 つまり、回転などの変換は、ソースの四角形で "元に戻す" ことになります。 そのため、ビデオが回転したか、3D アンパックされたかを知る必要はありません。 たとえば、ビデオ タグの上に四角形を描画し、相対座標 (ビデオ タグに対する相対座標) を取得し、それらを正規化して (範囲 0 から 1)、ソースの四角形として渡すことができます。ビデオが回転している場合でも、期待どおりに動作します。
ビデオ プロセッサは、Microsoft Direct3D 11 または Direct3D 12 を使用した GPU アクセラレータによるビデオ処理をサポートします。 詳細については、「MF_SA_D3D11_AWAREと MF_SA_D3D12_AWARE 」を参照 してください。
ビデオ プロセッサは、 MediaPlayer および IMFMediaEngine コンポーネントによって公開される SVR を使用する場合に、ビデオ レンダリングのフロントエンド コンバーターとして使用されます。 これらのコンポーネントのいずれかで使用されるデコーダー、プラグイン、またはソース
レンダラーの効果
ビデオ プロセッサ MFT は、レンダラー効果のホスト コンポーネントです。 レンダラー効果を使用すると、アプリケーションは通常のビデオ変換およびレンダリング プロセスにプラグインできます。 一般的なアプリケーションでは、ビデオ プラグイン ( IMFMediaEngineEx::InsertVideoEffect を参照) で十分です。 ただし、一部のシナリオでは、ビデオがレンダリングされる正確な条件に関する詳細情報が必要です。 次のような状況では、レンダラーの効果を検討してください。
- プラグインは、ビデオがレンダリングされる解像度を知っている必要があります (スーパー解像度のような特別なスケーリング操作を実行する場合など)。
- プラグインは、ビデオがレンダリングされているディスプレイのプロパティを認識する必要があります (正確なトーン マッピングを実行する場合など)。
- プラグインは、提示されたビデオの最終的な出力形式を正確に知っている必要があります
レンダラー効果を読み込む には、ビデオ プロセッサ MFT の入力の種類にMF_MT_VIDEO_RENDERER_EXTENSION_PROFILE属性を構成します。
立体ビデオ
ビデオ プロセッサは、3D ビデオ フレームでのビューアンパック操作をサポートします。
入力フレームに同じフレームにパックされた 2 つのビューが含まれている場合、ビデオ プロセッサはビューを個別のバッファーに分割したり、ベース ビューを抽出して 2 番目のビューを破棄したりできます。 ビューのアンパックを有効にするには、 MF_ENABLE_3DVIDEO_OUTPUT 属性を MF3DVideoOutputType_Stereo または MF3DVideoOutputType_BaseView に設定します。
要求事項
| 要件 | 価値 |
|---|---|
| ヘッダ |
|
こちらも参照ください