AAC |
3. Advanced audio coding (AAC)
O AAC foi criado através da cooperação de várias companhias envolvidas no processamento de áudio (sistemas e equipamentos). Em Abril de 1997, o AAC foi anunciado como norma internacional pelo MPEG (Moving Pictures Experts Group). Foi aceite e declarado como norma pelo MPEG e incluído tanto na norma MPEG-2 (1997) como na MPEG-4 (1999), sendo designados por "MPEG-2 Part 7" e "MPEG-4 Part 3", respectivamente. Fundamentalmente o AAC foi feito para ter melhor desempenho que o já conhecido anterior MP3 que era usado na norma MPEG-1, e também na MPEG-2. Os melhoramentos em relação ao MP3 são: · Tem uma maior gama de frequência de amostragem (desde 8kHz até 96kHz, comparado com MP3 que vai de 16kHz a 48kHz). · Suporta um máximo de 48 canais, que é muito mais que o MP3, que apenas suporta 2 canais na norma MPEG-1 ou 5.1 na MPEG-2. · Comprimento de trama e frequência de bit variáveis. Frequência de bit normalizada e constante, com bits de reserva. · Eficiência superior e filtros mais simples (usa MDCT pura) · Maior eficiência na codificação de sinais estacionários (blocos de 576 passou a 1024 amostras). · Maior eficiência na codificação de sinais transitórios (blocos de 192 passou a 128 amostras). · Usa a função de Kaiser-Bessel para eliminar fuga espectral à custa do alargamento do lóbulo principal. · Melhor desempenho a frequências acima dos 16kHz. · Maior flexibilidade em sinais estéreo conjuntos (separação por cada escala de banda). · Acrescenta módulos para aumentar a eficiência da compressão: TNS, Predição inversa, PNS, etc… Estes módulos podem ser combinados entre si. De uma forma geral, o AAC permite uma maior flexibilidade na criação de codecs (em relação ao MP3). Fundamentalmente, a diferença nota-se mais com níveis de frequência de bit mais baixos (abaixo dos 128kps). Para valores superiores, o MP3, apesar de mais antigo, consegue atingir, ainda assim, resultados ao nível do que se faz com o AAC. 3.1. Funcionamento
O AAC é um algoritmo de codificação de sinais áudio de banda larga que usa, fundamentalmente, duas técnicas que reduzem bastante o número de informação necessária para representar áudio digital de alta qualidade: · Componentes do sinal que são perceptualmente indiscerníveis são eliminados. · Eliminação de redundância no sinal codificado. Além disso, o processamento de sinal usa a transformada discreta do co-seno na versão modificada (MDCT), e acrescenta códigos de correcção de erros. O sinal pode ser armazenado, ou transmitido. Em cada trama é aplicada o algoritmo de Luhn mod N, para evitar que hajam amostras com defeito. A norma MPEG-4 não define um único grupo de esquemas de compressão de áudio, mas sim um conjunto de ferramentas, que permitem realizar uma série de operações, de acordo com as necessidades. Cobre assim uma gama que, vai desde o processamento de fala a um baixo débito binário, até síntese de música. Assim, esta variação pode ir desde 2kbps para voz, até 64kbps, ou mais, por canal para o caso de música. As frequências de amostragem vão de 8kHz até 96kHz, e o número de canais de 1 a 48. Comparativamente ao banco de filtros híbrido usado no MP3, o AAC usa a MDCT juntamente com uma janela de comprimento de 1024. Isto faz com que o AAC seja capaz de codificar sinais áudio com formas mais complexas (ondas quadradas e impulsos complexos), com melhor resultado, comparativamente ao MP3 e MP2. Um codificador AAC pode comutar, dinamicamente, entre um bloco MDCT com comprimento de 1024 pontos, e 8 blocos de 128 pontos. Se, por exemplo, ocorrer uma variação no sinal, 8 pequenas janelas de 128 pontos são escolhidas em função da sua resolução temporal. Por omissão, é usada a janela de 1024 pontos uma vez que a resolução de frequência superior permite a criação de um modelo psicoacústico mais elaborado, o que, consequentemente, resulta numa codificação mais eficiente. 3.2. Codificação modular
O sistema AAC faz uma codificação modular. É criado um perfil combinando com base nas diferentes ferramentas disponíveis, dependendo da complexidade da cadeia de bits a serem codificados, da performance desejada e do nível aceitável à saída. O modelo standard vem com os seguintes perfis: · Low Complexity (LC) - O mais simples, mais usado e suportado. · Main Profile (MAIN) - Igual ao anterior mas com o acrescento da capacidade da predição inversa. · Sample-Rate Scalable (SRS) - também conhecido como Scalable Sample Rate (MPEG-4 AAC-SSR) · Long Term Prediction (LTP) - Acrescentado no standard do MPEG-4. É um melhoramento do MAIN que inclui predição futura com menor complexidade de computação. Dependendo, obviamente, do perfil escolhido para o codificador AAC e para o MP3, uma codificação em AAC, a 96kbit/s, deve dar a mesma, ou mesmo melhor qualidade (perceptível ao ouvinte) que uma codificação de 128kbit/s em MP3. Tal com o MP3 sofreu uma pequena evolução com o uso da técnica SBR (Spectral band replication) que deu origem ao chamado MP3Pro, também o AAC tem um perfil um pouco especial, em que se usa SBR e PS (Parametric stereo) denominado por AACplus, sendo esta a família de codecs mais recente na norma MPEG-4. Fig.9 - Familia de codecs AAC Esta última versão do AAC tem uma performance muito boa, especialmente a ritmos de transmissão baixos, o que a torna especialmente preferida para aplicações como comunicações móveis 3G, assim como transmissões via Internet. 3.3. Atraso curto
Este sistema (MPEG-4 Low Delay Audio Coder, ou, simplesmente, AAC-LD) é uma derivação do AAC usado em MPEG-2. Tem como objectivo usar as vantagens da codificação de áudio, e minimizar os atrasos para se usar em comunicação bidireccional. Vem fazer a ponte entre os sistemas dimensionados para voz, e os sistemas para áudio genérico (que inclui música e, por conseguinte, necessita de mais processamento). O parâmetro mais exigente cifra-se em ter um máximo de atraso de 20ms, mantendo uma boa qualidade, em qualquer tipo de sinal áudio, seja voz ou música. 3.4. Protecção contra erros
Para a corrigir erros, pode simplesmente usar-se um sistema de correcção de erros, e aplicá-lo ao conjunto final de bits produzidos que se querem guardar, ou transmitir. No entanto, como o AAC, no seu conteúdo, é constituído por diferentes partes, e cada uma delas pode ser mais ou menos sensível a erros (e não todas de forma igual), aplicar um sistema a tudo não será o modo mais eficiente. Assim, o conteúdo é dividido em diferentes partes, de acordo com a sensibilidade a erros de cada uma. Podem, então, usar-se sistemas independentes para cada parte do conteúdo, de forma a optimizar a quantidade total de bits usados. Para tornar a codificação mais robusta e imune a erros, usam-se técnicas especiais. No caso do AAC, foram elaborados 3 métodos, e definidos na norma de áudio do MPEG-4, a saber: · Huffman Codeword Reordering (HCR) - Para evitar propagação de erros nos dados de espectro. · Virtual Codebooks (VCB11) - Para detectar erros mais gravosos nos dados de espectro. · Reversible Variable Lenght Code (RVLC) - Para reduzir a propagação de erros nos dados de factor de escala. |
Comunicação Áudio e Vídeo |
Comparativo entre Mp3, aac e ogg vorbis |