estrutura D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC (d3d12video.h)
Representa parâmetros para a entrada da operação de codificação de vídeo em um nível de sequência.
Sintaxe
typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC {
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags;
D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig;
D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode;
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData;
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;
} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC;
Membros
Flags
Uma combinação OR bit a bit de valores da enumeração D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS especificando os sinalizadores do descritor de controle de sequência para a operação atual.
IntraRefreshConfig
Uma estrutura D3D12_VIDEO_ENCODER_INTRA_REFRESH especificando os parâmetros para o modo de intra-atualização que deve ser usado ao disparar sessões intra-atualização.
O uso de quadros de referência bidirecional (Quadros B) é mutuamente exclusivo com a intra-atualização. Os chamadores devem verificar se a estrutura GOP não contém quadros B se os modos de intra-atualização estiverem ativos. Ao consultar D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT com um modo de intra-atualização diferente de D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE, o conjunto de D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE especificado não deve conter quadros B ou a consulta não retornará suporte.
O uso da intra-atualização infinita é possível solicitando periodicamente uma nova onda de intra-atualização após a conclusão de cada uma delas.
Ao iniciar uma intra-atualização de N quadros de duração, os hosts definem o sinalizador de controle de imagem correspondente para iniciar a intra-atualização e controla o índice de quadros entre [0.N) também na estrutura de controle de imagem para sugerir ao driver sobre o progresso sobre a sessão de atualização intra.
Comportamento esperado ao solicitar explicitamente uma onda de atualização intra com n quadros de duração:
Se a solicitação de intra-atualização ocorrer no início de um GOP, a intra refresh ocorrerá para N quadros e, em seguida, um novo GOP será iniciado com um quadro I.
Se a solicitação de intra-atualização ocorrer no meio de um GOP, o grupo de imagens será encerrado até que o último comando EncodeFrame seja enviado e reiniciado após a sessão de intra-atualização com um novo GOP começando com um quadro I. Por exemplo, quando o GOP é IPPPP... IPPPP..., se o início da intra-atualização for solicitado no envio parcial "IPP" do GOP, os dois últimos quadros P desse GOP serão ignorados, a sessão intra-atualização será emitida para os N próximos quadros e, em seguida, um novo quadro-chave que reinicia a estrutura GOP é esperado.
Para a intra-atualização baseada em linha, a estrutura GOP configurada terá que ser reconfigurada para o IPPP infinito... P... GOP (GOPLength = 0u e PPicturePeriod = 1u) durante a sessão intra refresh. Em seguida, ele pode ser reconfigurado novamente após a conclusão da onda do IR.
Para a intra-atualização baseada em linha, o modo de particionamento de sub-região configurado será reconfigurado para corresponder ao particionamento de N fatias uniformes por quadro durante uma duração dos comandos N EncodeFrame . Isso é particularmente importante para quando o particionamento de sub-região é definido como um modo incompatível com os requisitos de IR, por exemplo, quando a linha de unidades intra codificadas em uma fatia interromperá a limitação definida como bytes por fatia. A expectativa para a atualização intra baseada em linha é que o quadro resultante contenha N fatias, todas as fatias P, exceto a fatia de linha intra refresh atual, que deve ser uma fatia I.
RateControl
Uma estrutura D3D12_VIDEO_ENCODER_RATE_CONTROL especificando a configuração de controle de taxa.
Verifique o suporte para reconfiguração dinâmica de controle de taxa no D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE. Se a reconfiguração dinâmica do controle de taxa for permitida, modificando RateControl, o algoritmo de controle de taxa será reiniciado com a nova configuração a partir da execução do EncodeFrame associado. Caso contrário, isso deve ser definido no início da sessão de codificação e não alterado depois.
PictureTargetResolution
Uma estrutura D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC que descreve a resolução a ser usada ao codificar esse quadro.
Verifique o suporte para reconfiguração dinâmica de resolução no D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE. Se nenhum suporte for dado para isso, PictureTargetResolution indicará a resolução de destino da sessão de codificação completa e não deverá ser alterada durante a sessão de codificação. Caso contrário, isso indica a resolução usada para o comando EncodeFrame associado.
O destino deve ser definido com base na lista de resoluções especificadas ao criar o heap de codificador associado para essa operação.
Para alguns codecs, uma alteração na resolução no meio da sessão de codificação pode exigir que um GOP seja redefinido com uma solicitação de quadro de IDR/Chave de força potencial e também pode exigir a redefinição dos algoritmos de gerenciamento de buffer/quadro do DPB.
SelectedLayoutMode
Um valor da enumeração D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE especificando qual modo de layout está sendo usado e, portanto, quais membros do sindicato usar em pFrameSubregionsLayoutData.
Verifique o suporte para reconfiguração dinâmica de sub-região em [D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE]((ne-d3d12video-d3d12_video_encoder_support_flags.md). Se nenhum suporte for dado para isso, isso indicará o modo de sub-região de destino da sessão de codificação completa e não deverá ser alterado durante a sessão de codificação. Caso contrário, isso indica o modo de particionamento de sub-região usado para o comando EncodeFrame associado.
FrameSubregionsLayoutData
Uma estrutura D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA especificando dados opcionais específicos do codec de layout de sub-regiões de imagem. Se o valor SelectedLayoutMode especificado indicar que, de modo que não haja sub-regiões, nulo será esperado.
CodecGopSequence
Uma estrutura D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE especificando o GOP atual usado na sequência de vídeo, em ordem de exibição. As chamadas para EncodeFrame devem seguir este GOP, mas em ordem de codificação após a reordenação de Quadros B.
Verifique o suporte para reconfiguração dinâmica do GOP no D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE. Se nenhum suporte for fornecido para isso, CodecGopSequence indicará o padrão GOP de destino (em ordem de exibição) da sessão de codificação completa e não deverá ser alterado durante a sessão de codificação. Caso contrário, isso indica o novo modo de sub-região GOP usado a partir do comando EncodeFrame associado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Build 22000 |
Servidor mínimo com suporte | Windows Build 22000 |
Cabeçalho | d3d12video.h |