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 |