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