Compartilhar via


estrutura D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0 (d3d12umddi.h)

A estrutura D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_DESC_0082_0 contém os parâmetros de nível de imagem para a entrada de uma operação de codificação.

Sintaxe

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;

Membros

IntraRefreshFrameIndex

Ao solicitar uma onda intra-atualização para quadros IntraRefreshFramesDuration especificando o sinalizador D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_0080_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 como entre [0-IntraRefreshFramesDuration) para indicar o status da sessão de intra-atualização para o driver.

Flags

Um valor D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS_0080 que indica os sinalizadores do descritor de controle de imagem para a operação atual de codificação de quadro.

PictureControlCodecData

Uma estrutura D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0 que contém dados específicos do codec de controle de imagem. Dependendo do modo de controle de taxa selecionado, os valores do parâmetro de quantização (QP) são interpretados de forma diferente.

ReferenceFrames

Uma estrutura D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080 que contém as imagens reconstruídas das saídas de operações de codificação anteriores.

Comentários

Confira Codificação de vídeo D3D12 para obter informações gerais.

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 (grupo de imagens) codec depois de fazer a reordenação de quadro B por POC, se necessário.

Codecs diferentes podem usar 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.

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAG_0082_0_RECONSTRUCTED_FRAMES_REQUIRE_CONTIGUOUS_TEXTURE_ARRAYS especifica o requisito de matrizes de textura para os campos hDrvTexture2Ds e pSubresources da estrutura D3D12DDI_VIDEO_ENCODE_REFERENCE_FRAMES_0080 .

A saída da operação de codificação para um determinado quadro também deverá retornar a imagem reconstruída se ela estiver marcada para ser usada como referência nos próximos quadros. O cliente passa as imagens reconstruídas em comandos EncodeFrame futuros.

Se codificar camadas temporais, uma imagem só poderá ser usada como uma imagem de referência em camadas TemporalLayerIndex que são menores que seu próprio número de camada. 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 hardware para o número de imagens de referência são expressas em termos do número máximo de elementos presentes nas listas L0 (MaxL0ReferencesForP/MaxL0ReferencesForB) e L1 (MaxL1ReferencesForB), e limitando por MaxDPBCapacity o número máximo de índices exclusivos em (L0 union L1) que mapeiam para o valor de pReferenceFramesReconPictureDescriptors fornecidos no D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_0082_0.

Não há nenhuma limitação para o número de entradas de DPB (buffer de imagem decodificado) 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 atualização instantânea do decodificador (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 11 (WDDM 3.0)
Cabeçalho d3d12umddi.h

Confira também

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