D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION 構造体 (d3d12video.h)

メモリ操作としての参照図の変更について、操作識別子と、操作に必要な関連パラメーターのタプルとして説明します。

構文

typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION {
  UCHAR memory_management_control_operation;
  UINT  difference_of_pic_nums_minus1;
  UINT  long_term_pic_num;
  UINT  long_term_frame_idx;
  UINT  max_long_term_frame_idx_plus1;
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION;

メンバー

memory_management_control_operation

参照図のマーキング状態に影響を与えるために適用するコントロール操作。

difference_of_pic_nums_minus1

3 または 1 に等しい memory_management_control_operation を使用して、短期の参照図に長期的なフレーム インデックスを割り当てるか、短期参照図を "参照用に使用されていません" としてマークします。

long_term_pic_num

memory_management_control_operation 2 と一緒に使用して、長期的な参照図を "参照用に使用されていません" としてマークします。

long_term_frame_idx

画像に長期的なフレーム インデックスを割り当てるには、memory_management_control_operation 3 または 6 に等しいと共に使用されます。

max_long_term_frame_idx_plus1

値から 1 を引いた値は、(max_long_term_frame_idx_plus1の別の値を受け取るまで) 長期的な参照画像に対して許可される長期的なフレーム インデックスの最大値を指定します。

解説

詳細については、H264 仕様を参照してください。詳細については、セクション 8.2.5.4「アダプティブ メモリ制御デコードされた参照画像マーキング プロセス」を参照してください。

変数 MaxLongTermFrameIdx は次のように派生します。

– max_long_term_frame_idx_plus1が 0 の場合、MaxLongTermFrameIdx は "長期フレーム インデックスなし" に設定されます。 – それ以外の場合 (max_long_term_frame_idx_plus1 が 0 より大きい場合) 、MaxLongTermFrameIdx は max_long_term_frame_idx_plus1 - 1 に設定されます。

現在のフレームを短期的な参照としてマークする操作は、対応する PictureOrderCountNumber および FrameDecodingOrderNumber 値が関連付けられたピクチャ コントロール構造体に示されている、D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS構造体に存在するフラグによって与えられます。

変数 max_num_ref_frames は、この API で報告される最大 DPB 容量によって示されます。

IDR フレームを長期参照としてマークする場合、提案される明示的なメカニズムは、まず、IDR フレームに対して EncodeFrame を呼び出すときに D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTUREを設定し、後でメモリ管理操作 '3' を使用して短期参照画像を "長期参照に使用" としてマークし、長期フレーム インデックスをに割り当てることによって、短期参照としてマークすることです。それ。

または、IDR フレームをエンコードし 、adaptive_ref_pic_marking_mode_flag = 1 を設定する場合、ドライバーはクライアントが H264 スライス ヘッダー long_term_reference_flag を設定しようとしていると想定し、 EncodeFrame 呼び出しの出力ビットストリームで設定します。

要件

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