次の方法で共有


D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC構造体 (d3d12video.h)

シーケンス レベルでのビデオ エンコード操作の入力のパラメーターを表します。

構文

typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC {
  D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS                 Flags;
  D3D12_VIDEO_ENCODER_INTRA_REFRESH                          IntraRefreshConfig;
  D3D12_VIDEO_ENCODER_RATE_CONTROL                           RateControl;
  D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC                PictureTargetResolution;
  D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE            SelectedLayoutMode;
  D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData;
  D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE                 CodecGopSequence;
} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC;

メンバー

Flags

現在の操作のシーケンス制御記述子フラグを指定する D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS 列挙からの値のビットごとの OR の組み合わせ。

IntraRefreshConfig

更新内セッションをトリガーするときに使用する必要がある更新モード内のパラメーターを指定する D3D12_VIDEO_ENCODER_INTRA_REFRESH 構造体。

双方向参照フレーム (B フレーム) の使用は、更新内では相互に排他的です。 インリフレッシュ モードがアクティブな場合、呼び出し元は GOP 構造体に B フレームが含まれていないことを確認する必要があります。 D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE以外の更新モードでD3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORTに対してクエリを実行する場合、指定したD3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE セットに B フレームを含めてはなりません。または、クエリはサポートを返しません。

無限の更新の使用は、各更新が完了した後に定期的に新しい更新ウェーブを要求することで可能です。

N フレームの期間のインリフレッシュを開始すると、ホストは対応するピクチャ コントロール フラグを設定して更新内を開始し、ピクチャ コントロール構造内の [0..N) 間のフレーム インデックスも制御して、イントラ更新セッションに関する進行状況についてドライバーにヒントを提供します。

期間 N フレームでイントラム リフレッシュ ウェーブを明示的に要求する場合の予期される動作:

  • GOP の開始時に in-refresh の要求が行われると、N フレームのイントラム リフレッシュ ocurrs が開始され、I フレームで新しい GOP が開始されます。

  • GOP の途中で更新内の要求が行われた場合、画像のグループは、I フレームで始まる新しい GOP を使用した更新セッションの後に送信され、再起動された最後の EncodeFrame コマンドまで終了します。 たとえば、GOP が IPPPP の場合などです。IPPPP..., in-refresh start is requested at the "IPP" partial submission of the GOP, the last two P frames of the GOP will be ignored, the intra-refresh session will be issued for the N next frames and then a new key-frame that restarts the GOP structure is expected.

  • 行ベースの更新では、構成された GOP 構造体を Infinite IPPP... に再構成する必要があります。P。。。GOP (GOPLength = 0u および PPicturePeriod = 1u) は、内部更新セッションの期間中です。 その後、IR波が終了した後に再び再構成することができます。

  • 行ベースの intra-refresh の場合、構成されたサブリージョンパーティション分割モードは、N EncodeFrame コマンドの期間中、フレームごとの N つの均一スライスパーティション分割に対応するように再構成されます。 これは、サブリージョンのパーティション分割が IR 要件と互換性のないモードに設定されている場合 (たとえば、スライス内のコード内ユニットの行がスライスあたりのバイト数に設定された制限を中断する場合など) に特に重要です。 行ベースの intra refresh の期待は、結果のフレームに N 個のスライス (現在の行内更新スライスを除くすべての P スライス) が含まれていることです。これは I スライスである必要があります。

RateControl

レート制御構成を指定する D3D12_VIDEO_ENCODER_RATE_CONTROL 構造体。

D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLEでのレート制御の動的再構成のサポートを確認します。 レート制御の動的再構成が許可されている場合、 RateControl を変更することで、レート制御アルゴリズムは、関連付けられた EncodeFrame の実行から開始される新しい構成で再起動されます。 それ以外の場合は、エンコード セッションの開始時に設定し、後で変更しないでください。

PictureTargetResolution

このフレームをエンコードするときに使用する解像度を記述する D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC 構造体。

D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLEでの解決動的再構成のサポートを確認します。 これに対してサポートが与えられない場合、 PictureTargetResolution は完全なエンコード セッションのターゲット解像度を示し、エンコード セッション中に変更することはできません。 それ以外の場合は、関連付けられた EncodeFrame コマンドに使用される解像度を示します。

ターゲットは、この操作に関連付けられているエンコーダー ヒープを作成するときに指定された解像度の一覧に基づいて設定する必要があります。

一部のコーデックでは、エンコード セッションの途中で解決を変更するには、潜在的な強制 IDR/キー フレーム要求で GOP をリセットする必要があり、DPB バッファー/フレーム管理アルゴリズムのリセットが必要になる場合もあります。

SelectedLayoutMode

使用するレイアウト モードと、pFrameSubregionsLayoutData で使用する共用体メンバーを指定する、D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE列挙体の値。

[D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE]((ne-d3d12video-d3d12_video_encoder_support_flags.md) でサブリージョンの動的再構成のサポートを確認します。 これに対してサポートが与えられない場合、これは完全エンコード セッションのターゲット サブリージョン モードを示し、エンコード セッション中に変更することはできません。 それ以外の場合は、関連付けられた EncodeFrame コマンドに使用されるサブリージョンパーティション分割モードを示します。

FrameSubregionsLayoutData

画像サブリージョン レイアウトのオプションのコーデック固有のデータを指定する D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA 構造体。 指定した SelectedLayoutMode 値がサブ領域がないことを示す場合は、null が必要です。

CodecGopSequence

ビデオ シーケンスで使用されている現在の GOP を表示順に指定するD3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE構造体。 EncodeFrame の呼び出しは、この GOP に従う必要がありますが、B フレームの並べ替え後にエンコード順序で行う必要があります。

D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLEでの GOP 動的再構成のサポートを確認します。 これに対してサポートが与えられない場合、 CodecGopSequence は完全なエンコード セッションのターゲット GOP パターン (表示順) を示し、エンコード セッション中に変更することはできません。 それ以外の場合は、関連付けられた EncodeFrame コマンドから開始して使用される新しい GOP サブリージョン モードを示します。

要件

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