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 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈