Partilhar via


Usando a decimação para otimizar o desempenho de mistura

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Importante

A otimização descrita nesta seção é altamente dependente do hardware subjacente. A menos que você possa garantir que tipo de hardware gráfico será usado com o aplicativo, isso pode degradar seriamente a aparência da imagem de vídeo.

 

HDTV requer muito poder de processamento, que em sistemas mais recentes é fornecido principalmente pela placa gráfica. Mas mesmo que a placa gráfica e o decodificador possam suportar resoluções de 1920x1080, o usuário nem sempre pode ter seu monitor configurado para essa resolução. Nesse caso, o chip gráfico é necessário para criar uma imagem de 1920 x 1080 e, em seguida, reduzir a resolução antes de enviá-la para o buffer de quadros.

Como isso é um desperdício de poder de processamento, o VMR fornece uma maneira de dizimar (reduzir) a imagem no momento em que ela está sendo renderizada na superfície do DirectDraw. Isso elimina a cópia de memória extra necessária se a imagem tiver que ser redimensionada depois de ter sido renderizada.

VMR-7: Para habilitar a dizimação, chame IVMRMixerControl::SetMixingPrefs com o sinalizador MixerPref_DecimateOutput.

VMR-9: Para habilitar a dizimação, chame IVMRMixerControl9::SetMixingPrefs com o indicador MixerPref9_DecimateOutput.

O método SetMixingPrefs deve ser chamado antes que o VMR seja conectado. Os sinalizadores de preferência de mistura não podem ser alterados quando o gráfico estiver em execução.

Usando o modo de mistura VMR