D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0 结构 (d3d12umddi.h)

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0结构描述用于 H.264 编码的关联 EncodeFrame 命令的图片级控件元素。

语法

typedef struct D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0 {
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS_0080                                           Flags;
  D3D12DDI_VIDEO_ENCODER_FRAME_TYPE_H264_0080                                                                 FrameType;
  UINT                                                                                                        pic_parameter_set_id;
  UINT                                                                                                        idr_pic_id;
  UINT                                                                                                        PictureOrderCountNumber;
  UINT                                                                                                        FrameDecodingOrderNumber;
  UINT                                                                                                        TemporalLayerIndex;
  UINT                                                                                                        List0ReferenceFramesCount;
  UINT                                                                                                        *pList0ReferenceFrames;
  UINT                                                                                                        List1ReferenceFramesCount;
  UINT                                                                                                        *pList1ReferenceFrames;
  UINT                                                                                                        ReferenceFramesReconPictureDescriptorsCount;
  D3D12DDI_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264_0080                                               *pReferenceFramesReconPictureDescriptors;
  UCHAR                                                                                                       adaptive_ref_pic_marking_mode_flag;
  UINT                                                                                                        RefPicMarkingOperationsCommandsCount;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0           *pRefPicMarkingOperationsCommands;
  UINT                                                                                                        List0RefPicModificationsCount;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 *pList0RefPicModifications;
  UINT                                                                                                        List1RefPicModificationsCount;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 *pList1RefPicModifications;
  UINT                                                                                                        QPMapValuesCount;
  INT8                                                                                                        *pRateControlQPMap;
} D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_0082_0;

成员

Flags

一个D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS_0080值,该值指定要编码的此帧的配置标志。 标志可以组合使用。

FrameType

设置图片类型的 D3D12DDI_VIDEO_ENCODER_FRAME_TYPE_H264_0080 值。 在选择值之前,请检查编解码器特定的标志是否支持 该类型。

注意

FrameType 必须与主机设置的 GOP) 结构配置 (图片组保持同步。 GOP 按 显示顺序定义。 图片类型选择必须遵循 GOP,但按编码顺序。

pic_parameter_set_id

在当前帧的切片标头中使用的值,用于引用 PPS) (图片参数集。

idr_pic_id

当帧的类型为 D3D12DDI_VIDEO_ENCODER_FRAME_TYPE_H264_0080_IDR_FRAME时, idr_pic_id 标识要用于帧中所有切片标头的即时解码器刷新 (IDR) 帧。

PictureOrderCountNumber

当前帧显示顺序。

FrameDecodingOrderNumber

由切片标头指示语义的帧 解码 顺序 frame_num 元素,该元素在每个引用图片之后递增。

TemporalLayerIndex

临时层次结构中的图片层编号。 检查 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_0082_0 ,了解最大层数。

List0ReferenceFramesCount

要用于此帧的过去帧引用数。 此值应与 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_0082_0 中公开的内容一致。

pList0ReferenceFrames

指向要用于此帧的过去帧引用帧列表的指针。 此数组中的每个整数值都会索引到 pReferenceFramesReconPictureDescriptors 中,以引用已解码图片缓冲区中保留的图片 (DPB) 。

List1ReferenceFramesCount

要用于此帧的未来帧引用数。 此值应与 D3D12DDI_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_0082_0 中公开的内容一致。

pList1ReferenceFrames

指向要用于此帧的未来帧引用帧列表的指针。 此数组中的每个整数值都会索引到 pReferenceFramesReconPictureDescriptors 中,以引用保存在 DPB 中的图片。

ReferenceFramesReconPictureDescriptorsCount

pReferenceFramesReconPictureDescriptors 中的条目数。

pReferenceFramesReconPictureDescriptors

指向 D3D12DDI_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264_0080 结构的指针,该结构描述 保存在 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0.ReferenceFrames 中的 DPB 缓冲区的当前状态。 L0/L1 列出从过去/未来引用到此描述符数组的索引映射。

反过来,此描述符数组将此帧的参考图片映射到 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0.ReferenceFrames 重建的图片数组中的资源索引。 此外,对于每个参考图片,它指示编码和显示顺序编号,以及它是否是长期引用。

此数组的大小与关联的 EncodeFrame 命令D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0.ReferenceFrames.NumTextures匹配

adaptive_ref_pic_marking_mode_flag

定义框架引用处理的语义模式。 此标志可以是以下值之一。

引用图片标记模式
0 滑动窗口参考图片标记模式:为短期参考图片提供先入先出机制的标记模式。
1 自适应参考图片标记模式:一种引用图片标记模式,提供语法元素,用于将引用图片标记为“供参考使用”并分配长期帧索引。

RefPicMarkingOperationsCommandsCount

与当前帧关联的标记操作的引用图片数。 此成员要求 将adaptive_ref_pic_marking_mode_flag 设置为 1。

pRefPicMarkingOperationsCommands

指向包含 RefPicMarkingOperationsCommandsCount 引用图片标记操作的列表的D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION_0082_0结构的指针。 此成员要求 将adaptive_ref_pic_marking_mode_flag 设置为 1。

在编码会话期间,此列表描述的操作必须相应地反映在 DPB 描述符中。

List0RefPicModificationsCount

L0 列表的列表修改次数。

pList0RefPicModifications

指向包含 L0 列表的 List0RefPicModificationsCount 修改命令的 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 结构的指针。

List1RefPicModificationsCount

L1 列表的列表修改次数。

pList1RefPicModifications

指向包含 L1 列表的 List1RefPicModificationsCount 修改命令的 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION_0082_0 结构的指针。

QPMapValuesCount

pRateControlQPMap 指向的数组中存在的元素数。 此值应与帧中的编码块数匹配,将帧分辨率舍入到最接近的对齐值。

pRateControlQPMap

指向数组的指针,该数组包含量化参数(按行/列扫描顺序) (QP) 映射要用于此帧的每个平方区域的值。 可以使用当前分辨率和 D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2.QPMapRegionPixelsSize 来计算 QP 地图维度,以传达平方区域大小。

注解

如果当前帧标记为引用图片,则输出必须包含重建的图片以及主机的位流,以便将其放置在重建图片引用列表中的将来命令中。 请注意,某些帧类型标记为引用可能存在限制,因此在设置这些值之前,检查功能支持。

有关常规信息,请参阅 D3D12 视频编码

要求

要求
最低受支持的客户端 Windows 11 (WDDM 3.0)
标头 d3d12umddi.h

另请参阅

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0