次の方法で共有


D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095構造体 (d3d12umddi.h)

それぞれの構造体に対して D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAGS 値が報告された場合、ドライバーは、ドライバーによって行われた変更 (コピー API クライアント入力) の有無に関係なく、EncodeFrame実行後に値を書き込む必要があります。 それ以外の場合、ドライバーは、EncodeFrame を呼び出すときに、関連付けられている API クライアント入力値をコピーする必要があります。

構文

typedef struct D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 {
  UINT64                                                          CompoundPredictionType;
  D3D12DDI_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG_0095        LoopFilter;
  D3D12DDI_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG_0095  LoopFilterDelta;
  D3D12DDI_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG_0095       Quantization;
  D3D12DDI_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG_0095 QuantizationDelta;
  D3D12DDI_VIDEO_ENCODER_AV1_CDEF_CONFIG_0095                     CDEF;
  D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG_0095             SegmentationConfig;
  UINT64                                                          PrimaryRefFrame;
  UINT64                                                          ReferenceIndices[7];
} D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095;

メンバーズ

CompoundPredictionType

関連付けられているフラグが D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_COMPOUND_PREDICTION_MODE

LoopFilter

関連付けられているフラグが D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_LOOP_FILTER

LoopFilterDelta

関連付けられているフラグが D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_LOOP_FILTER_DELTA

Quantization

関連付けられているフラグが D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_QUANTIZATION

QuantizationDelta

関連付けられているフラグが D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_QUANTIZATION_DELTA

CDEF

関連付けられているフラグが D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_CDEF_DATA

SegmentationConfig

このメンバーは、選択したセグメント化モードに応じて異なるモードで動作します。

  • 現在のフレーム D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_0095_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO オンの場合、ドライバーは次のようになります。
    • SegmentationConfig を計算して書き込みます。これは、フレーム ヘッダーで segmentation_params() 構文をコーディングするために API クライアントによって使用されます。
    • read_segment_id() マップ情報を計算し、圧縮されたビットストリームに直接書き込みます。
  • 現在のフレーム D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM オンの場合、ドライバーは次のようになります。
    • ここでは、API クライアントのエンコード フレーム パラメーターで API クライアントによって送信される SegmentationConfig をコピーして、フレーム ヘッダーに segmentation_params() 構文をコーディングします。
    • API クライアントによって送信された read_segment_id() マップを、圧縮されたビットストリーム内のエンコード フレーム パラメーターに直接コピーします。
  • それ以外の場合 (両方のセグメント化モードがオフです):
    • ドライバーは、すべてのゼロを書き込む必要があります。
    • API クライアントは、それに応じてフレーム ヘッダーの segmentation_params() セクションに segmentation_enabled = 0 を書き込みます。

PrimaryRefFrame

関連付けられているフラグが D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAG_PRIMARY_REF_FRAME。 フラグが設定されている場合、ドライバーは、セグメント ID マップ、CDF などの継承元のプライマリ参照フレームの選択を制御します。

D3D12DDI_VIDEO_ENCODER_AV1_FEATURE_0095_FLAG_AUTO_SEGMENTATIONと共に使用すると、ドライバーは必要に応じて PRIMARY_REF_NONE 以外の値を強制的に使用できます。これにより、ドライバーは av1 構文 (segmentation_update_map、segmentation_temporal_update、segmentation_params() のsegmentation_update_dataを完全に制御できます。

ReferenceIndices[7]

フラグが報告されると、ドライバーは、ユーザー入力 D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA_0095に基づいて、ReferenceIndices 配列の並べ替え/再マップ (ただし、参照の数は変更されません) 可能性があります。ReferenceIndices. それ以外の場合、ドライバーは、D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA_0095.ReferenceIndicesからこのパラメーター as-is の各配列エントリをコピーする必要があります。

API クライアントは、この出力パラメーターから AV1 構文ref_frame_idx画像ヘッダーを書き込みます。

備考

詳細については、D3D12 AV1 ビデオ エンコード を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 11 バージョン 24H2 (WDDM 3.2)
ヘッダー d3d12umddi.h

関連項目

D3D12DDI_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT_0095

D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAGS