estrutura D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC (d3d12video.h)
Descreve um controle de imagem do codificador de vídeo.
Sintaxe
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;
Membros
IntraRefreshFrameIndex
Ao solicitar uma onda intra-atualização para quadros IntraRefreshFramesDuration especificando o sinalizador D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH , esse valor indica, para a imagem atual, o índice do quadro na onda intra-atualização. O intervalo de valores é definido pelo host entre 0 e IntraRefreshFramesDuration para sugerir o status da sessão intra-atualização para o driver.
Flags
Uma combinação OR bit a bit de valores da enumeração D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS especificando os sinalizadores do descritor de controle de imagem.
PictureControlCodecData
Uma estrutura D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA que contém dados de controle de imagem específicos do codec. Dependendo do modo de controle de taxa selecionado, os valores de QP são interpretados de forma diferente.
ReferenceFrames
Uma estrutura D3D12_VIDEO_ENCODE_REFERENCE_FRAMES que contém as imagens reconstruídas das saídas de operações de codificação anteriores.
Comentários
Os comentários a seguir fornecem diretrizes para o gerenciamento de quadros.
O host chama EncodeFrame em ordem de codificação com base na sequência periódica do tipo de imagem configurada na estrutura GOP do codec depois de fazer a reordenação de quadro B por POC, se necessário. Codecs diferentes usarão suas próprias maneiras de indexar essa estrutura e manter seus metadados de estado. Consulte os parâmetros de imagem codec também passados na operação EncodeFrame que contêm esses detalhes.
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS especifica o requisito de matrizes de textura para os campos ppTexture2Ds e pSubresources da estrutura D3D12_VIDEO_ENCODE_REFERENCE_FRAMES .
A saída da operação de codificação para um determinado quadro também deve retornar a imagem reconstruída se marcada como usada como referência para uso futuro nos próximos quadros, o cliente passa as imagens reconstruídas em comandos EncodeFrame futuros.
Se codificar camadas temporais, uma imagem só poderá usar como referência imagens em TemporalLayerIndex inferiores às suas próprias. Os índices de camada temporal são especificados na estrutura de controle de imagem e nos descritores de imagem de referência.
As limitações de HW para o número de imagens de referência são expressas em termos do número máximo de elementos presentes em L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) e L1 (MaxL1ReferencesForB) lista e limita pelo MaxDPBCapacity o número máximo de índices exclusivos em (L0 union L1) que são mapeados para o valor de pReferenceFramesReconPictureDescriptors fornecidos em D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA.
Não há nenhuma limitação para o número de entradas DPB sendo passadas em pReferenceFramesReconPictureDescriptors, mas, em vez disso, no número de entradas nessa matriz sendo referências pelas listas L0 e L1. Isso permite que o usuário acompanhe o estado de um DPB em pReferenceFramesReconPictureDescriptors dentro das restrições definidas pelas limitações padrão do codec e use apenas um subconjunto restrito pelas limitações de hardware ao chamar EncodeFrame. Por exemplo, para codificação HEVC, o chamador poderia acompanhar as 15 imagens codificadas mais recentes em pReferenceFramesReconPictureDescriptors , mas usar apenas um subconjunto das imagens que se enquadram nas restrições de hardware, atribuindo um número limitado de índices exclusivos nas listas L0 e L1.
Observe que uma solicitação para um quadro de IDR atuará como uma barreira entre referências de quadro e o buffer DPB e seu estado pode precisar ser liberado adequadamente pelo host.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Build 22000 |
Servidor mínimo com suporte | Windows Build 22000 |
Cabeçalho | d3d12video.h |