D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0 结构 (d3d12umddi.h)

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0 结构包含编码操作输入的图片级参数。

语法

typedef struct D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0 {
  UINT                                                     IntraRefreshFrameIndex;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS_0080        Flags;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0 PictureControlCodecData;
  D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080              ReferenceFrames;
} D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0;

成员

IntraRefreshFrameIndex

通过指定D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_0080_REQUEST_INTRA_REFRESH标志请求 IntraRefreshFramesDuration 帧的 刷新 内波时,此值指示刷新内波中帧的索引(对于当前图片)。 值范围由主机设置为介于 [0-IntraRefreshFramesDuration) 之间,以向驱动程序提示刷新会话的状态。

Flags

一个 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS_0080 值,该值指示当前编码帧操作的图片控件描述符标志。

PictureControlCodecData

包含特定于图片控制编解码器数据的 D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0 结构。 根据所选 速率控制模式,量化参数 (QP) 值的解释不同。

ReferenceFrames

包含过去编码操作输出中重建的图片 的D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080 结构。

注解

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

以下说明为帧管理提供了指导。

如果需要,主机在 POC 执行 B 帧重新排序后,根据在 GOP) 结构的编解码器组中配置的 (图片类型定期序列,按编码顺序调用 EncodeFrame

不同的编解码器可以使用自己的方法来索引此结构并保留其状态元数据。 请参阅在包含此类详细信息的 EncodeFrame 操作中也传递的编解码器图片参数。

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAG_0082_0_RECONSTRUCTED_FRAMES_REQUIRE_CONTIGUOUS_TEXTURE_ARRAYS指定D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080结构的 hDrvTexture2D 和pSubresources 字段的纹理数组的要求。

如果给定帧的编码操作输出标记为在下一帧中用作引用,则还必须返回重建后的图片。 客户端在将来的 EncodeFrame 命令中传递重建的图片。

如果对时态层进行编码,则图片只能用作低于其自身层号 的 TemporalLayerIndex 层上的参考图片。 时态层索引在图片控件结构和引用图片描述符中指定。

参考图片数量的硬件限制以 L0 (MaxL0ReferencesForP MaxL0ReferencesForB) 和 L1 (MaxL1ReferencesForB) 列表中的最大元素数表示。 和 由 MaxDPBCapacity 限制映射到中提供的 pReferenceFramesReconPictureDescriptors 值的 (L0 union L1) 的最大唯一索引数/D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0

pReferenceFramesReconPictureDescriptors 中传递的已解码图片缓冲区 (DPB) 条目的数量没有限制,而是在该数组上由 L0 和 L1 列表引用的条目数上。 这允许用户在编解码器标准限制定义的限制内跟踪 pReferenceFramesReconPictureDescriptors 中的 DPB 的状态,并在调用 EncodeFrame 时仅使用受硬件限制限制的子集。 例如,对于 HEVC 编码,调用方可以跟踪 pReferenceFramesReconPictureDescriptors 中最新的 15 张编码图片,但仅使用属于硬件限制的图片的子集,方法是在 L0 和 L1 列表中分配有限数量的唯一索引。

请注意,对即时解码器刷新 (IDR) 帧的请求将充当帧引用与 DPB 缓冲区之间的屏障,主机可能需要相应地刷新其状态。

要求

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

另请参阅

D3D12DDI_VIDEO_ENCODER_ENCODEFRAME_INPUT_STREAM_ARGUMENTS_0082_0

D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0

D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_MODE_0080

D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080

D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0