次の方法で共有


D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC構造体 (d3d12video.h)

ビデオ エンコーダーの画像コントロールについて説明します。

構文

typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC {
  UINT                                           IntraRefreshFrameIndex;
  D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS      Flags;
  D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData;
  D3D12_VIDEO_ENCODE_REFERENCE_FRAMES            ReferenceFrames;
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC;

メンバー

IntraRefreshFrameIndex

D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH フラグを指定して IntraRefreshFramesDuration フレームの更新ウェーブを要求する場合、この値は、現在の画像の更新ウェーブ内のフレームのインデックスを示します。 値の範囲は、ドライバーへの更新セッションの状態を示すために、ホストによって 0 から IntraRefreshFramesDuration の間で設定されます。

Flags

図コントロール記述子フラグを指定する D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS 列挙からの値のビットごとの OR の組み合わせ。

PictureControlCodecData

コーデック固有の画像制御データを含む D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA 構造体。 選択したレート制御モードに応じて、QP 値は異なる方法で解釈されます。

ReferenceFrames

過去のエンコード操作の出力から再構築された画像を含む D3D12_VIDEO_ENCODE_REFERENCE_FRAMES 構造体。

注釈

次の解説では、フレーム管理に関するガイダンスを提供します。

ホストは、必要に応じて POC による B フレームの並べ替えを実行した後、コーデック GOP 構造体で構成されたピクチャの種類の定期的なシーケンスに基づいてエンコード順序で EncodeFrame を呼び出します。 異なるコーデックでは、この構造のインデックスを作成し、状態メタデータを保持する独自の方法が使用されます。 このような詳細を含む EncodeFrame 操作でも渡されるコーデック画像パラメーターを参照してください。

D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYSは、D3D12_VIDEO_ENCODE_REFERENCE_FRAMES構造体の ppTexture2Ds フィールドと pSubresources フィールドのテクスチャ配列の要件を指定します。

特定のフレームに対するエンコード操作の出力は、次のフレームでの将来の使用の参照として使用されるとマークされている場合にも、再構築された画像を返す必要があります。クライアントは、将来の EncodeFrame コマンドで再構築された画像を渡します。

テンポラル レイヤーをコーディングする場合、図はそれ自体よりも低い TemporalLayerIndex 上の図を参照としてのみ使用できます。 テンポラルレイヤーのインデックスは、ピクチャコントロール構造と参照ピクチャ記述子で指定されます。

参照図の数に関する HW の制限は、L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) と L1 (MaxL1References) に存在する要素の最大数で表されます ForB) は、D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATAで提供される pReferenceFramesReconPictureDescriptors の値にマップされる (L0 共用体 L1) 内の一意のインデックスの最大数を MaxDPBCapacity で一覧表示および制限します。

pReferenceFramesReconPictureDescriptors で渡される DPB エントリの数に制限はありませんが、その配列のエントリの数が L0 および L1 リストによって参照されます。 これにより、ユーザーはコーデックの標準の制限で定義されている制限内で pReferenceFramesReconPictureDescriptors 内の DPB の状態を追跡し、 EncodeFrame を呼び出すときにハードウェアの制限によって制限されたサブセットのみを使用できます。 たとえば、HEVC エンコードの場合、呼び出し元は pReferenceFramesReconPictureDescriptors でエンコードされた最新の 15 個の画像を追跡できますが、L0 リストと L1 リストに一意のインデックスの数を制限することで、ハードウェアの制限に該当する画像のサブセットのみを使用できます。

IDR フレームの要求は、フレーム参照と DPB バッファーの間のバリアとして機能し、その状態はホストによって適宜フラッシュされる必要がある場合があることに注意してください。

要件

要件
サポートされている最小のクライアント Windows ビルド 22000
サポートされている最小のサーバー Windows ビルド 22000
Header d3d12video.h