структура 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

При запросе волны внутриобновления для кадров IntraRefreshFramesDuration путем указания флага D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_0080_REQUEST_INTRA_REFRESH это значение указывает индекс кадра в волне внутриобновления для текущего рисунка. Диапазон значений устанавливается узлом в диапазоне от [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 .

Следующие замечания содержат рекомендации по управлению кадрами.

Узел вызывает EncodeFrame в порядке кодирования на основе периодической последовательности типа рисунка, настроенной в структуре группы кодеков изображений (GOP), после переупорядочения B-кадра с помощью POC, если это необходимо.

Различные кодеки могут использовать собственные способы индексирования этой структуры и сохранения метаданных состояния. Обратитесь к параметрам изображения кодека, которые также передаются в операции EncodeFrame , которые содержат такие сведения.

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAG_0082_0_RECONSTRUCTED_FRAMES_REQUIRE_CONTIGUOUS_TEXTURE_ARRAYS указывает требование к массивам текстур для полей hDrvTexture2Ds и pSubresourcesструктуры D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080 .

Выходные данные операции кодирования для заданного кадра должны также возвращать восстановленный рисунок, если он помечен для использования в качестве ссылки в следующих кадрах. Клиент передает восстановленные изображения в будущих командах EncodeFrame .

При кодировании темпоральных слоев рисунок можно использовать только в качестве эталонного рисунка на слоях TemporalLayerIndex , которые меньше, чем его собственный номер слоя. Индексы темпорального слоя указываются в структуре элемента управления изображением и в дескрипторах эталонных рисунков.

Аппаратные ограничения для количества эталонных изображений выражаются в терминах максимального количества элементов, присутствующих в списках L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) и L1 (MaxL1ReferencesForB), и ограничение maxDPBCapacity максимального числа уникальных индексов в (L0 union L1), которые сопоставляются со значением pReferenceFramesReconPictureDescriptors , предоставленным в D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0.

Количество записей декодированного буфера изображений (DPB), передаваемых в pReferenceFramesReconPictureDescriptors, не ограничено, а на количество записей в этом массиве, на которые ссылаются списки L0 и L1. Это позволяет пользователю отслеживать состояние DPB в pReferenceFramesReconPictureDescriptors в рамках ограничений, определенных стандартными ограничениями кодека, и использовать только подмножество, ограниченное аппаратными ограничениями при вызове EncodeFrame. Например, для кодирования HEVC вызывающий объект может отслеживать последние 15 закодированных изображений в pReferenceFramesReconPictureDescriptors , но использовать только подмножество рисунков, которые подпадают под аппаратные ограничения, назначая ограниченное количество уникальных индексов в списках 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