O algoritmo de compressão MPEG-2 não retrocompatível foi originalmente desenvolvido pelo grupo MPEG e inspirado
sobretudo nos codificadores anteriores a este como o MP3, o ASPEC entre outros e foi finalizado e aprovado como
parte das especificações do PMEG-2 e MPEG-4 em 1997 e 2007 respectivamente.
A sua designação inicial MPEG-2 Àudio NBC acabaria por ser alterada para Advanced Audio Compatible que origina
a sigla AAC como é normalmente conhecido e comercialmente mais apelativa. Este algoritmo de codificação foi
adoptado no âmbito do MPEG-4 como o codificador para áudio natural a partir dos 32 kbit/s e foi projectado
para ser o sucessor do MP3 como codec áudio standard para a difusão digital pela internet e wireless.
O algoritmo AAC tem uma abordagem modular para a codificação, isto é, que este algoritmo está estruturado por
um conjunto de módulos de processamento substancialmente independentes.
Figura 4.1 – Diagrama de blocos do algoritmo AAC
Este codec apresenta 4 perfis padrão:
- Low Complexity (LC)
- Main Profile (Main)
- Scalable Sample Rate (SSR)
- Long Term Prediction (LTP)
O codificador AAC também se trata de um codificador do tipo perceptivo pelo que é possivel identificar na sua estrutura
os blocos comuns a codificadores deste tipo tais como banco de filtros, modelo perceptual, quantificador e codificador entrópico.
Os blocos adicionais existentes no AAC servem em geral para um pré-condicionamento do sinal, reduzindo desta forma a redundância
ou facilitando operações subsequentes. O funcionamento do algoritmo pode ser explicado através de uma viagem pelos diversos blocos
que o constituem.
- AAC Gain Control Tool:
-
Este módulo é constituído por um banco de filtros de 4 bandas uniformes com detetores de ganho e modificadores de ganho que
permitem a decomposição e a normalização do sinal áudio o que leva a uma representação escalável em 4 níveis facilitando em
simultâneo as operações seguintes.
- Temporal Noise Shaping (TNS):
-
Este módulo traduz uma técnica preditiva aplicada no domínio da frequência e permite reduzir o efeito de pré eco. A aplicação
desta técnica preditiva aos coeficientes MDCT de cada transformada possibilita moldar o ruído de quantificação no segmento
temporal de cada transformada de acordo com o perfil temporal do sinal.
- Long Term Prediction (LTP):
-
Trata-se de um modulo que se revela uma ferramenta eficiente na redução de redundância entre sucessivas frames de codificação.
- Intensity/Coupling:
-
A utilização de Intensity Stereo é um modo muito eficiente de codificar informação stereo, ou seja, existe uma codificação de
dois canais combinados e forma a se obter um stream de áudio mono e uma posição stereo. Os coeficientes espectrais são divididos
em blocos contíguos que correspondem cada um a uma posição stereo. O coupling por fim permite o acoplamento entre dados de canais
diferentes.
- Prediction:
-
Este bloco apresenta-se como uma ferramenta de predição(Prediction) e emprega pré-predição adaptativa (back-adaptative prediction)
de segunda ordem (um por cada coeficiente espectral até 16 kHz) de forma a remover redundâncias contidas em blocos longos, uma vez
que tem um melhor desempenho em sinais estacionários e é baseada no algoritmo Least Mean Squares (LMS).
- Perceptual Noise Substitution (PNS):
-
Trata-se de um bloco adicionado no MPEG-4 e tem como objectivo a optimização de eficiência das taxas de transmissão do AAC, quando
estas são baixas. Esta eficiência é conseguida com base na ideia de que todos os ruídos têm igual frequência e por conseguinte,
em vez de se transmitirem todas as componentes espectrais de um sinal ruidoso é apenas indicada que uma dada banda possui ruído e
dar alguma informação adicional sobre a potência total dessa banda.
- Midle/Side Stereo Coding (M/S):
-
Esta ferramenta provém do codificador PXFM e é usada no codificador AAC para codificar no modo soma-diferença, canais dispostos
simetricamente em relação ao canal central. Ao contrário do Intensity Stereo este bloco mantém o áudio inalterado.
- Quantization (Quantização):
-
Neste bloco as regras implementadas são as mesmas do algoritmo MP3 referidas anteriormente.
- Coding (Codificação Entrópica):
-
Neste módulo é feita a codificação de Huffman dos coeficientes espectrais quantificados assim como os factores de escala. É
usada uma tabela de Huffman dedicada a estes factores e um conjunto de tabelas dedicadas aos coeficientes que são distribuídas
através de um algoritmo greedy merge que é substancialmente mais flexível que o usado no MP3.
- Bitstream Formatter:
-
Neste módulo são agregados os coeficientes quantificados e codificados e os parâmetros de controlo num stream de áudio para transmissão.
Este stream é composto por frames de diferentes tamanhos dependendo das variações causadas pela codificação de Huffman.
|