- Visão geral da arquitetura de áudio
- Áudio e o hardware do XBOX One
- Formatos de compactação
- Áudio e o modelo de aplicativo do XBOX One
- Bibliotecas de áudio do XBOX One
- Resumo: comece hoje mesmo
Visão geral da arquitetura de áudio
Além da capacidade geral da CPU, que pode ser usada para decodificação, síntese, renderização e outras tarefas, o XBOX One fornece vários componentes de hardware (conforme mostrado na figura 1) dedicados ao processamento de áudio e que podem endereçar todo o espaço de memória unificada. Figura 1. Uma ilustração dos componentes de áudio acelerados por hardware
- O Scalable Hardware Audio Processing Engine (SHAPE) compõe a maior parte da funcionalidade de áudio no XBOX One, embora os outros processadores também contribuam com recursos significativos.
- O Audio Control Processor (ACP) fornece gerenciamento de estado e agendamento.
- O Audio Scalar Processor (ASP) oferece suporte a operações escalares de ponto flutuante e vetoriais de inteiros.
- O Audio Vector Processor (AVP) oferece suporte a operações vetoriais de ponto flutuante e foi projetado principalmente para o Multichannel Echo Cancellation (MEC).
SHAPE
O SHAPE é o hardware principal dedicado ao processamento de áudio. O SHAPE executa muitas das operações básicas normalmente necessárias por voz. Usando o SHAPE, você pode reduzir o impacto na CPU, mesmo com alta polifonia e roteamentos de sinal complexos, e ainda contar com a flexibilidade da troca de dados entre o SHAPE e a CPU caso um título opte por processar um sinal digital de forma personalizada ou realizar análise ou síntese por software. O SHAPE opera em blocos de 128 amostras, com cada amostra oferecendo suporte a resolução de inteiro de 24 bits ou ponto flutuante de 32 bits, quando usado pela CPU. A 48 KHz, isso representa um quadro de áudio de 2,67 ms, o que fornece uma resolução de tempo maior e uma latência menor do que as possíveis com o bloco de 256 amostras do XBOX 360. O SHAPE oferece os seis blocos de função fixa a seguir, voltados para tarefas de áudio comuns.- Decodificador XMA O XMA fornece decodificações simultâneas de 512 vozes no formato XMA. É um codec perceptivo que foi desenvolvido para o XBOX 360 e oferece qualidade e compactação ajustáveis pelo usuário, normalmente entre 6:1 e 14:1.
- SRC O bloco dedicado, polifásico e de alta qualidade Sample Rate Convertor (SRC) permite a reamostragem de frequência de alto desempenho e alta qualidade de 512 canais mono de dados de áudio. O SRC pode ser usado para conversão de formato, efeito Doppler ou variação de tom.
- Buffers de mixagem Os buffers de mixagem são os acumuladores dedicados para 128 canais de mixagem no local. Eles não precisam acessar a memória e têm um total de 8192 canais disponíveis virtualmente. Os buffers de mixagem também fornecem medição aproximada e detecção de clipping para fins de depuração e monitoramento.
-
FLTVOL
O módulo FLTVOL fornece dimensionamento de volume e uma implementação de um filtro de variáveis de estado para 2560 vozes ou mixagens. Ele é análogo ao filtro por voz do
XAudio2exposto por software que está disponível no Windows e no XBOX 360. O filtro pode fornecer filtragem passa-baixa, passa-alta, passa-banda e rejeita-banda (notch). O filtro expõe os parâmetros Q e frequência de corte/central. Mais comumente, ele é usado para modelagem de distância e oclusão. - EQ/CMP O módulo EQ/CMP fornece até 512 canais de equalização de três bandas e compactação de faixa dinâmica. O EQ consiste em três filtros biquad em cascata serial. O compressor tem uma resposta hard-knee e oferece suporte às funcionalidades de sidechain e expansor.
- DMA O SHAPE tem hardware dedicado de Direct Memory Access (DMA) para transferir dados de áudio de e para o espaço de memória unificada. O DMA possibilita cenários como a transferência sem um conversor de taxa de amostragem, a transferência de canais de mixagem final e o processamento baseado em CPU no meio de um grafo de áudio baseado no SHAPE.
ACP
O ACP fornece gerenciamento de estado e agendamento de todos os outros componentes de hardware de áudio na north bridge. Não é necessário envolver a CPU no processamento intraquadro nem na sincronização ou latência que ela poderia introduzir.ASP
O ASP oferece suporte a operações escalares de ponto flutuante e vetoriais de inteiros. O hardware fornece codecs de chat de voz: os que gerenciam a comunicação sem fio entre um headset de chat de voz e o console e os que são usados para compactar e descompactar dados de voz do codec SILK para comunicação de voz em rede.AVP
O AVP oferece suporte a operações vetoriais de ponto flutuante e foi projetado principalmente para o MEC e outras reduções de ruído para a entrada de áudio do Kinect da próxima geração. O AVP oferece suporte ao reconhecimento de fala e ao uso de chat/entrada de áudio arbitrária. O MEC e outros processos de redução de ruído fornecem um fluxo mais inteligível dos dados de áudio falados pelo usuário, mesmo a partir de um microfone posicionado mais perto dos alto-falantes de saída do que do usuário.Áudio e o hardware do XBOX One
O pipeline de saída de áudio no XBOX One elimina o conversor digital-analógico (DAC) encontrado nos consoles da geração anterior. Todo o áudio é emitido estritamente no domínio digital por meio de HDMI 1.4a ou como saída óptica S/PDIF. O HDMI 1.4a permite que o Pulse Code Modulation (PCM) linear de alta fidelidade e 7.1 canais seja transmitido a partir do console. Por padrão, os títulos usam uma taxa de amostragem de saída de 48 KHz e uma profundidade de bits de 24 bits. O XBOX One também oferece suporte a até quatro saídas simultâneas para headsets estéreo. Cada saída pode representar mixagens multicanal exclusivas que são submetidas a downmix conforme exigido pelo formato de saída, como um headset ou a saída S/PDIF. O XBOX One aceita entrada de áudio de várias fontes, como a matriz de microfones do Kinect, headsets de chat de voz e recursos baseados em nuvem. Além disso, o áudio pode ser gerado algoritmicamente por meio de computação baseada em CPU e manipulado em tempo real em uma CPU, por meio dos componentes de hardware do SHAPE ou por meio de ambos os métodos.Formatos de compactação
O XBOX One oferece suporte à descompactação por hardware para XMA2, que proporciona reduções significativas de armazenamento, largura de banda e memória em relação ao PCM não compactado. OXAudio2 também oferece suporte à decodificação por software para xWMA e Adaptive Differential Pulse Code Modulation (ADPCM). Embora a computação para o formato ADPCM tenha baixa sobrecarga, por ser um codec não perceptivo, o ADPCM pode apresentar artefatos perceptíveis em taxas de amostragem mais baixas.
Tanto o xWMA quanto o XMA2 têm origem nos codecs desenvolvidos para o Windows Media Audio (WMA) e ambos foram desenvolvidos especificamente para jogos do XBOX. O subconjunto dos codecs e parâmetros disponíveis usados pelo XMA2 é menor do que o subconjunto usado pelo xWMA. Embora o xWMA e o XMA2 tenham sido desenvolvidos para o XBOX, eles não são intercambiáveis: os cabeçalhos de cada formato de arquivo são diferentes, e os formatos são incompatíveis com as versões do Windows para PC. Os codecs usados para XMA2 e xWMA também são ligeiramente diferentes, portanto, cada um terá seus próprios artefatos do sistema de compactação usado.
MP3, OGG e outros formatos de áudio para ativos de jogos podem ser fornecidos por meio de codecs de software do título ou de middleware executados em uma CPU.
Áudio e o modelo de aplicativo do XBOX One
Enquanto está em primeiro plano, um aplicativo tem acesso total ao hardware do SHAPE. No entanto, quando é enviado para segundo plano (fixado, picture-in-picture ou algum outro cenário), o aplicativo abre mão do controle do hardware. Por padrão, seu hardware é suspenso e é retomado quando o título volta ao primeiro plano. Isso também vale para Exclusive Resource Apps (ERAs), em que o grafo de software é suspenso. Um título tem a opção de desmontar seu grafo de áudio e reconstruí-lo ao retomar. Alguns títulos, principalmente Shared Resource Apps (SRAs) que reproduzem música em segundo plano, como rádio por streaming, podem optar por manter alguns aspectos do áudio em reprodução mesmo enquanto estão pausados. Para esses cenários, os títulos devem avaliar cuidadosamente se devem tentar uma transição contínua da renderização por hardware para a renderização por software ou sempre reproduzir o áudio destinado à reprodução em segundo plano por meio de um pipeline somente de software. Isso tem implicações para os formatos de compactação e os custos de CPU. Ativos compactados em XMA, por exemplo, exigem o uso do hardware do SHAPE e, portanto, não poderão ser decodificados por um aplicativo em segundo plano. Para um título que opta por alocar recursos de CPU, o mecanismo de áudioXAudio2 fornece caminhos de software para muitas funções. Quando possível, essas funções imitam os recursos de hardware, mas alguns processamentos com uso intensivo de computação não estão disponíveis ou são implementados de forma diferente no software. Títulos que fazem a transição do processamento por hardware para o processamento por software com base no estado de um aplicativo podem considerar essas diferenças ao planejar seus pipelines de áudio, conforme mostrado na tabela a seguir.
| Recurso| Capacidade de hardware do XBOX One | Capacidade de software do XBOX One | Equivalente? |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Conversão de taxa de amostragem| SRC, polifásico| Interpolação linear do XAudio2| Não |
| EQ paramétrico| EQ/CMP, EQ de três bandas| EQ simples de uma banda ou processamento de sinal digital (DSP) personalizado| Não |
| Compressor/limitador| EQ/CMP, recursos de hard-knee, sidechain e expansor| DSP personalizado| Não |
| Filtragem| FLTVOL, filtro de variáveis de estado| Filtro de variáveis de estado do XAudio2, LPF de polo único ou DSP personalizado| Sim |
| Mixagem| Buffers de mixagem; inclui detecção de clipping e medição| Mixagem por software; DSP personalizado para detecção de clipping e medição| Sim, para mixagem |
Bibliotecas de áudio do XBOX One
O XBOX One oferece suporte a duas APIs de renderização de áudio para uso típico em jogos, além de uma variante da API do Media Foundation do Windows 8 para reprodução de músicas do usuário.-
O
XAudio2é uma biblioteca de áudio voltada para jogos que já está disponível no XBOX 360 e no Windows: do Windows XP ao Windows 8. Recomendamos oXAudio2para o desenvolvimento da maioria dos títulos. - A Windows Audio Session API (WASAPI) pode ser usada para qualquer pipeline personalizado implementado exclusivamente em software. A WASAPI fornece apenas a funcionalidade de ponto de extremidade de áudio. O cliente deve implementar a descompactação, a conversão de taxa de amostragem, a mixagem e o processamento de sinal digital, bem como as interações com os componentes de hardware de áudio no XBOX One. Mais comumente, a WASAPI é usada por soluções de middleware de áudio.
A Microsoft Cross-Platform Audio Creation Tool (XACT) e o
DirectSound não são compatíveis com o ambiente do XBOX One. Os títulos que usavam essas tecnologias anteriormente devem considerar as soluções identificadas neste tópico ou usar opções aprovadas de middleware de áudio do XBOX One.Resumo: comece hoje mesmo
Os criadores e implementadores de conteúdo de títulos que estão começando a desenvolver para o XBOX One podem considerar o seguinte ao iniciar o planejamento.- Planeje para áudio 7.1. Isso abrange o panning e o posicionamento de conteúdo pré-renderizado e em tempo real. Considere como seu título usará cada canal de áudio.
- Explore e entenda as opções de compactação de áudio. Entenda as diferenças acústicas e de tamanho das compactações XMA, xWMA e ADPCM. Para entender as metas de orçamento esperadas no XBOX One, avalie as configurações de qualidade e taxa de bits do seu conteúdo.
- Considere os padrões de uso do DSP acelerado por hardware, principalmente se o seu título pretende implementar a simulação de oclusão ou obstrução.
