Поделиться через


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

При запросе волны внутриобновления для кадров IntraRefreshFramesDuration путем указания флага D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH это значение указывает для текущего рисунка индекс кадра в волне внутриобновления. Диапазон значений задается узлом в диапазоне от 0 до IntraRefreshFramesDuration , чтобы указать драйверу состояние сеанса внутриобновления.

Flags

Побитовое или сочетание значений из перечисления D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS , указывающее флаги дескриптора элемента управления рисунком.

PictureControlCodecData

Структура D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA , содержащая данные элемента управления изображением, относящиеся к кодеку. В зависимости от выбранного режима управления скоростью значения QP интерпретируются по-разному.

ReferenceFrames

Структура D3D12_VIDEO_ENCODE_REFERENCE_FRAMES , содержащая восстановленные изображения из предыдущих выходных данных операций кодирования.

Комментарии

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

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

D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS указывает требование к массивам текстур для полей ppTexture2Ds и pSubresourcesструктуры D3D12_VIDEO_ENCODE_REFERENCE_FRAMES .

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

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

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

Количество записей DPB, передаваемых в pReferenceFramesReconPictureDescriptors, не ограничено, а количество записей в этом массиве, на которые ссылаются списки L0 и L1. Это позволяет пользователю отслеживать состояние DPB в pReferenceFramesReconPictureDescriptors в рамках ограничений, определенных стандартными ограничениями кодека, и использовать только подмножество, ограниченное аппаратными ограничениями при вызове EncodeFrame. Например, для кодирования HEVC вызывающий объект может отслеживать последние 15 закодированных изображений в pReferenceFramesReconPictureDescriptors , но использовать только подмножество рисунков, которые подпадают под аппаратные ограничения, назначая ограниченное количество уникальных индексов в списках L0 и L1.

Обратите внимание, что запрос кадра IDR будет выступать в качестве барьера между ссылками на кадры и буфером DPB, и его состояние может потребоваться соответствующим образом очистить на узле.

Требования

Требование Значение
Минимальная версия клиента Сборка Windows 22000
Минимальная версия сервера Сборка Windows 22000
Верхняя часть d3d12video.h