H.264 ビデオ デコーダー
Media Foundation H.264 ビデオ デコーダーは、レベル 5.1 までのベースライン、メイン、および高プロファイルのデコードをサポートする Media Foundation Transform です。
H.264 ビデオ デコーダーは、次のインターフェイスを公開します。
- ICodecAPI (Windows 8 でサポート)
- IMFGetService
- IMFQualityAdvise
- IMFQualityAdvise2
- IMFRateControl
- IMFRateSupport
- IMFRealTimeClient
- IMFTransform
デコーダーのインスタンスを作成するには、次のいずれかの操作を行います。
- MFTEnum または MFTEnumEx 関数を呼び出します。
- CoCreateInstance を呼び出します。 デコーダーの CLSID は 、wmcodecdsp.h で宣言CLSID_CMSH264DecoderMFT。
入力の種類
入力の種類には、少なくとも次の 2 つの属性が含まれている必要があります。
属性 | 説明 |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 またはMFVideoFormat_H264_ES |
入力の種類にこれら 2 つの属性のみが含まれている場合、デコーダーはプレースホルダーとして機能する既定の出力の種類を提供します。 デコーダーは、出力フレームを生成するのに十分な入力サンプルを受信すると、IMFTransform::P rocessOutput からMF_E_TRANSFORM_STREAM_CHANGEを返すことによって、形式の変更を通知します。 形式の変更の処理の詳細については、 ProcessOutput のドキュメントを参照してください。
初期形式の変更を回避するには、次のような情報を入力の種類にできるだけ多く指定します。
属性 | 説明 |
---|---|
MF_MT_FRAME_RATE | フレーム レート。 |
MF_MT_FRAME_SIZE | フレームの寸法。 |
MF_MT_INTERLACE_MODE | インターレース モード。
メモ: H.264 ビデオでは、インターレース構造が動的に変更される可能性があるため、この属性の推奨値は MFVideoInterlace_MixedInterlaceOrProgressive。 ビデオの基本ストリームの情報をインターレースすると、メディアの種類よりも優先されます。 詳細については、「 ビデオインターレース」を参照してください。 |
MF_MT_PIXEL_ASPECT_RATIO | ピクセルの縦横比。 |
入力の種類は、出力の種類の前に設定する必要があります。 入力の種類が設定されるまで、エンコーダーの IMFTransform::SetOutputType メソッドは MF_E_TRANSFORM_TYPE_NOT_SETを返します。
出力の種類
デコーダーでは、次の出力サブタイプがサポートされています。
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
これらのサブタイプの詳細については、「 ビデオ サブタイプ GUID」を参照してください。
属性の変換
H.264 デコーダーは 、IMFTransform::GetAttributes メソッドを実装します 。 アプリケーションでは、このメソッドを使用して、次の属性を取得または設定できます。
属性 | 説明 |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | ハードウェア アクセラレーションを有効または無効にします。 |
CODECAPI_AVDecVideoThumbnailGenerationMode | サムネイル生成モードを有効または無効にします。 |
MF_SA_D3D_AWARE | デコーダーが DirectX ビデオ アクセラレーション (DXVA) をサポートしていることを示します。 読み取り専用として扱います。 |
Windows 8 では、H.264 デコーダーは次の属性もサポートしています。
属性 | 説明 |
---|---|
CODECAPI_AVLowLatencyMode | 待機時間の短いデコード モードを有効または無効にします。 |
CODECAPI_AVDecNumWorkerThreads | デコーダーによって使用されるワーカー スレッドの数を設定します。 |
CODECAPI_AVDecVideoMaxCodedWidth | デコーダーが入力の種類として受け入れる画像の最大幅を設定します。 |
CODECAPI_AVDecVideoMaxCodedHeight | デコーダーが入力の種類として受け入れる画像の最大高さを設定します。 |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | 出力サンプルの最大数を指定します。 |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | デコーダーが IYUV/I420 出力の種類 (コード変換に適した) を他の形式より前に公開するかどうかを指定します。 |
Windows 8 では、H.264 デコーダーは ICodecAPI インターフェイスをサポートしています。 このインターフェイスは、次のコーデック プロパティを設定するための alternativate API を提供します。
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
書式制約
デコーダーでは、次の形式がサポートされています。
設定 | フォーマット |
---|---|
プロファイル/レベル | 基準プロファイル、メイン プロファイル、および高プロファイル (レベル 5.1 まで)。 (詳細については、ITU-T H.264 仕様を参照してください)。 |
彩度の形式 | 4:2:0 彩度またはモノクロ |
最小解像度 | 48 × 48 ピクセル |
最大解像度 | 4096 × 2304 ピクセル DXVA アクセラレーションの最大解像度は 1920 × 1088 ピクセルです。より高い解像度では、DXVA でデコードが行われ、基になるハードウェアでサポートされている場合は、デコードがソフトウェアで行われます。 メモ: Windows 7 では、サポートされている最大解像度は、ソフトウェアと DXVA デコードの両方で 1920 × 1088 ピクセルです。 |
Dxva | デコーダーは DXVA バージョン 2 をサポートしていますが、DXVA バージョン 1 はサポートしていません。 DXVA デコードは、メイン互換のベースライン、メイン、および高プロファイルのビットストリームでのみサポートされます。 (メイン互換のベースライン ビットストリームは 、profile_idc=66 および constrained_set1_flag=1 として定義されます。 |
入力データは、ISO/IEC 14496-10 の付属文書 B に準拠している必要があります。 データには開始コードを含める必要があります。 デコーダーは、バイト ストリームで有効なシーケンス パラメーター セット (SPS) とピクチャ パラメーター セット (PPS) が見つかるまでバイトをスキップします。
デコーダーは、フィルム グレイン テクノロジをサポートしていません。
注意
以前のバージョンのドキュメントでは、デコーダーが Windows Server 2008 R2 でサポートされていることが誤って記載されています。
Windows Vista のプラットフォーム更新プログラムの補足がインストールされている場合、H.264 ビデオ デコーダーは Windows Vista で使用できますが、Windows Vista では ソース リーダーを使用してのみアクセスできます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
サポートなし |
[DLL] |
|
関連項目