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 |