Partilhar via


Efeitos APO processados por hardware

No Windows 10, versão 1511 e posterior, o descarregamento de objetos de processamento de áudio (APOs) é suportado. Além de possíveis melhorias de desempenho, há economias de energia possíveis significativas disponíveis ao usar APOs descarregados de hardware.

Dois tipos de APOs podem ser carregados durante a reprodução com transferência para hardware.

  1. Efeitos de fluxo de descarga (OSFX)
  2. Efeitos do modo de descarga (OMFX)

Visão Geral dos Efeitos APO Transferidos para Hardware

Processamento de áudio descarregado de hardware e APOs descarregados de hardware

No Windows 8, o mecanismo de áudio foi redesenhado para funcionar com fluxos de áudio que foram descarregados para um dispositivo de hardware separado, mas conectado ao sistema de áudio principal do computador. Isso é conhecido como descarregamento de hardware. Para obter mais informações, consulte Hardware-Offloaded processamento de áudio.

O recurso de descarregamento de hardware é direcionado principalmente para cenários de baixo consumo de energia com tamanhos de buffer maiores. Por exemplo, durante a reprodução de Low Power Audio (LPA) nos sistemas compatíveis, o tamanho ou a periodicidade do buffer de áudio podem ser definidos como 1 segundo para que a CPU não acorde com frequência para processar buffers pequenos (por exemplo, a cada 10 milissegundos).

A implementação de APOs baseados em hardware e o processamento de áudio baseado em hardware permitem maximizar a eficiência energética.

O diagrama a seguir mostra a arquitetura de objetos de processamento de áudio. O lado direito do diagrama mostra um aplicativo comunicando-se diretamente com os efeitos OSFX e OMFX executados no hardware.

Diagrama mostrando a arquitetura do driver de áudio, onde o aplicativo se comunica com efeitos OSFX e OMFX processados por hardware, drivers e hardware de áudio.

Implementação de efeitos APO com descarga para o hardware

Um APO descarregado de hardware deve seguir os mesmos requisitos básicos e princípios de design descritos em Arquitetura de objeto de processamento de áudio e Implementação de objetos de processamento de áudio.

Diretrizes de implementação do formato de áudio suportado

Para APOs com descarregamento de hardware, deve-se dar alguma consideração adicional aos formatos de áudio suportados.

Cada APO implementa o método IAudioProcessingObject::IsInputFormatSupported que é usado durante a construção de gráficos de áudio para determinar o formato de áudio de saída e se alguma conversão de formato é necessária.

HRESULT IsInputFormatSupported(
  [in, optional]  IAudioMediaType *pOppositeFormat,
  [in, optional]  IAudioMediaType *pRequestedInputFormat,
  [out, optional] IAudioMediaType **ppSupportedInputFormat
);

O endpoint de descarregamento de renderização pode suportar uma variedade de formatos, incluindo o formato padrão suportado pela renderização de pinos do sistema/anfitrião. Um APO de descarregamento deve suportar todos esses formatos para que os fluxos de renderização (com os formatos suportados) não precisem passar por nenhuma conversão de formato adicional.

Um SFX de offload pode implementar conversões de formato e aceitar uma gama mais ampla de formatos. Por exemplo, se o SFX Offload fornecer virtualizações de fone de ouvido (ou seja, converter áudio de 5.1 canais em estéreo), ele deverá retornar S_OK para o par de entrada/saída apropriado nesse método.

Um SFX de offload deve rever os formatos suportados pelo pino de offload e apoiar/expandir as suas capacidades de forma integrada.

O Offload MFX não pode alterar o formato do fluxo de entrada, mas ainda precisa suportar a variedade de formatos oferecidos pelo ponto de extremidade de descarregamento e eliminar qualquer conversão de formato desnecessária.

Durante a renderização no pino de descarga, apenas um fluxo está ativo nesse pino e, portanto, não há mistura de fluxos. Assim, o processamento do áudio em nível de fluxo e nível de modo não é necessário. Assim, os efeitos sonoros podem não precisar ser ativados tanto como efeitos de transmissão quanto como efeitos de modo. Os endpoints offloaded suportarão mais fluxos e, dependendo da arquitetura de processamento de um sistema, o processamento de offload pode precisar ser incluído no SFX/MFX.

Entradas de arquivo INF

Implemente as seguintes entradas do ficheiro INF para definir os efeitos que serão carregados durante a reprodução em offload. A chave de propriedade do arquivo INF instrui o construtor de pontos finais de áudio a definir os CLSIDs para APOs descarregados no repositório de propriedades de efeitos. Essas informações são usadas para construir o gráfico de áudio que será usado para informar aos aplicativos de nível superior quais efeitos estão em vigor.

Chave do imóvel Identificador Globalmente Único (GUID)
PKEY_FX_Offload_StreamEffectClsid {D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},11
PKEY_FX_Offload_ModeEffectClsid {D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},12
PKEY_SFX_Offload_ModosDeProcessamento_Suporte_Para_Transmissão {D3993A3F-99C2-4402-B5EC-A92A0367664B},11
PKEY_MFX_Offload_ProcessingModes_Supported_For_Streaming {D3993A3F-99C2-4402-B5EC-A92A0367664B},12

Implementando objetos de processamento de áudio
Objetos de processamento de áudio do Windows