Share via


D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0 結構 (d3d12umddi.h)

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0結構將參考圖片中的變更描述為作業標識碼的元組和作業所需的相關聯參數的記憶體作業。

語法

typedef struct D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0 {
  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;
} D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0;

成員

memory_management_control_operation

要套用的控件作業會影響參考圖片標記狀態。 遵循有效的作業值。

描述
0 結束memory_management_control_operation語法元素迴圈。
1 將短期參考圖片標示為「未使用以供參考」。
2 將長期參考圖片標示為「未使用以供參考」。
3 將短期參考圖片標示為「用於長期參考」,並將長期框架索引指派給它。
4 指定長期框架索引上限,並將具有長期框架索引的所有長期參照圖片標示為「未使用供參考」。
5 將所有參考圖片標示為「未使用供參考」,並將 MaxLongTermFrameIdx 變數設定為「沒有長期框架索引」。
6 將目前圖片標示為「用於長期參考」,並將長期框架索引指派給它。

difference_of_pic_nums_minus1

此成員搭配 memory_management_control_operation 等於 3 或 1,將長期框架索引指派給短期參考圖片,或將短期參考圖片標示為「未使用供參考」。 當譯碼程式處理相關聯的 memory_management_control_operation 時,衍生自 difference_of_pic_nums_minus1 的結果圖片編號應該是指派給其中一個標示為「用於參考」的參考圖片,且先前未指派給長期框架索引。

long_term_pic_num

此成員與 memory_management_control_operation 等於 2 使用,將長期參考圖片標示為「未使用供參考」。 當譯碼程式處理相關聯的 memory_management_control_operation 時, long_term_pic_num 應等於指派給目前標示為「用於長期參考」之其中一個參考圖片的長期圖片編號。

long_term_frame_idx

此成員會與等於 3 或 6 的memory_management_control_operation 搭配使用,將長期框架索引指派給圖片。 當譯碼程式處理相關聯的 memory_management_control_operation 時, long_term_frame_idx 的值應介於 0 到 MaxLongTermFrameIdx 的範圍內,包含。

max_long_term_frame_idx_plus1

值減 1 指定長期參考圖片允許的長期圖文框索引最大值 (,直到收到另一個 值max_long_term_frame_idx_plus1) 為止。 max_long_term_frame_idx_plus1的值應介於 0 到max_num_ref_frames的範圍內,包含。

備註

MaxLongTermFrameIdx 變數衍生如下:

  • 如果 max_long_term_frame_idx_plus1 等於 0,MaxLongTermFrameIdx 會設定為 「沒有長期框架索引」。
  • 如果 max_long_term_frame_idx_plus1 大於 0,MaxLongTermFrameIdx 會設定為 等於 max_long_term_frame_idx_plus1 - 1。

將目前框架標示為短期參考的作業是由 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS_0080結構中的 旗標所指定,其對應的 PictureOrderCountNumberFrameDecodingOrderNumber 值在 相關聯的圖片控件結構中。

變數 max_num_ref_frames 會以所回報的 DPB) 容量 (譯的圖片緩衝區上限來表示。

請注意,若要將即時譯碼器重新整理標示為 () 圖格作為長期參考,建議的明確機制是先將它標示為短期參考,方法是設定D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_0080_USED_AS_REFERENCE_PICTURE在呼叫 IBM 框架的EncodeFrame 時將其升級為長期參考框架,然後使用記憶體管理作業 '3' 將短期參考圖片標示為「用於長期參考」和將長期框架索引指派給它。

或者,如果編碼的是 ADAPTIVE_REF_PIC_MARKING_MODE_FLAG = 1 ,驅動程式會假設客戶端嘗試設定 H264 配量標頭 long_term_reference_flag ,並在 EncodeFrame 呼叫的輸出位數據流中執行此動作。

如需圖片標記程式的詳細資訊,請參閱 H.264 規格,第 8.2.5.4 節「調適性記憶體控件譯碼的參考圖片標記程式」。

如需一般資訊,請參閱 D3D12 視訊編碼

規格需求

需求
最低支援的用戶端 Windows 11 (WDDM 3.0)
標頭 d3d12umddi.h

另請參閱

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0