D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC 结构 (d3d12video.h)
描述视频编码器图片控件。
语法
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC {
UINT IntraRefreshFrameIndex;
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags;
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData;
D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames;
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC;
成员
IntraRefreshFrameIndex
通过指定D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH标志请求 IntraRefreshFramesDuration 帧的 刷新 内波时,此值指示刷新内波中帧的索引(对于当前图片)。 值范围由主机在 0 和 IntraRefreshFramesDuration 之间设置,以提示驱动程序刷新会话的状态。
Flags
指定图片控件描述符标志 的 D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS 枚举中的值的按位 OR 组合。
PictureControlCodecData
包含特定于编解码器的图片控件数据的 D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA 结构。 根据所选速率控制模式,QP 值的解释方式不同。
ReferenceFrames
包含过去编码操作输出中重建的图片的 D3D12_VIDEO_ENCODE_REFERENCE_FRAMES 结构。
注解
以下说明为帧管理提供了指导。
如果需要,主机在 POC 执行 B 帧重新排序后,根据编解码器 GOP 结构中配置的图片类型周期序列,按编码顺序调用 EncodeFrame 。 不同的编解码器将使用自己的方法来为此结构编制索引并保留其状态元数据。 请参阅在包含此类详细信息的 EncodeFrame 操作中也传递的编解码器图片参数。
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS指定D3D12_VIDEO_ENCODE_REFERENCE_FRAMES结构的 ppTexture2Ds 和 pSubresources 字段的纹理数组的要求。
给定帧的编码操作输出还必须返回重建的图片(如果标记为用作下一帧将来使用的参考),客户端在将来 的 EncodeFrame 命令中传递重建的图片。
如果对时态层进行编码,则图片只能将其用作较低 TemporalLayerIndex 上的引用图片。 时态层索引在图片控件结构和引用图片描述符中指定。
参考图片数量的 HW 限制以 L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) 和 L1 (MaxL1References 中的最大元素数表示。ForB) MaxDPBCapacity 列出并限制映射到 D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA 中提供的 pReferenceFramesReconPictureDescriptors 值的 (L0 联合 L1) 中的最大唯一索引数。
在 pReferenceFramesReconPictureDescriptors 中传递的 DPB 条目数没有限制,而是在 L0 和 L1 列表引用的数组上的条目数上。 这允许用户在编解码器标准限制定义的限制内跟踪 pReferenceFramesReconPictureDescriptors 中的 DPB 的状态,并在调用 EncodeFrame 时仅使用受硬件限制限制的子集。 例如,对于 HEVC 编码,调用方可以跟踪 pReferenceFramesReconPictureDescriptors 中最新的 15 张编码图片,但仅使用属于硬件限制的图片的子集,方法是在 L0 和 L1 列表中分配有限数量的唯一索引。
请注意,对IDR 帧的请求将充当帧引用与 DPB 缓冲区之间的屏障,主机可能需要相应地刷新其状态。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 内部版本 22000 |
最低受支持的服务器 | Windows 内部版本 22000 |
标头 | d3d12video.h |