|
|||||||||||
|
Flexibilidade De maneira a poder ser usado com diferentes fins o MPEG definiu o MP3 com vários modos de operação. O MP3 pode assim funcionar para sinais estéreo e mono. Uma técnica de codificação chamada Joint Stereo pode ser usada para, com eficiência, codificar de forma combinada os canais esquerdo e direito na saída de um sinal de áudio. A codificação Joint Stereo aproveita o facto de a informação contida nos dois canais ser similar para eliminar irrelevância e redundância de forma a baixar o número total de bits necessários para codificar o sinal. Por outro lado, com a codificação Intensity Stereo atinge-se débitos binários mais baixos à custa do perigo de alterar a espacialidade do som (noção da localização das fontes sonoras) visto que esta se adquire pela diferença entre o que se ouve em cada ouvido. Há cinco modos de operação:
Também o débito binário de compressão não é fixo, sendo deixado ao critério do implementador do codificador, consoante queira o ficheiro com melhor ou pior qualidade, com a condição de que a alteração de débito binário de trama em trama de áudio é suportada pelo descodificador.
Na seguinte figura vê-se a arquitectura típica de um codificador áudio MP3, que vamos passar a descrever.
No codificador MP3 o sinal áudio é dividido em 32 sub-bandas de frequência através do banco de filtros. Para cada sub-banda é aplicada a MDCT onde são calculados 6 ou 18 coeficientes de frequência (coeficientes espectrais segundo o livro)DCT. Para cada sub-banda é ainda calculado o limiar de mascaramento utilizando o modelo psicoacústico. Utilizando o limiar de mascaramento, são calculados o passo de quantização e o factor de escala, com estes valores são quantizados os coeficientes da DCT. Banco de filtros O banco de filtros no MP3 pertence à classe de banco de filtros híbridos: é constituído por um banco de filtros multifásicos seguido de um bloco de transformada MDCT (Modified Discrete Cosine Transform), fazendo uma divisão espectral do sinal em 32 bandas de igual largura. A MDCT é a transformada bastante utilizada em codificação com perdas, devido à concentração dos coeficientes mais significativos da transformada no início do vector de dados. Esta vai ser aplicada a blocos do sinal separados, nos quais é dividido depois de passar pelo banco de filtros. O principal melhoramento da MDCT face à DCT é considerar não apenas o bloco actual a transformar, mas também metade do bloco anterior e metade do bloco seguinte. Desta forma o efeito de bloco sonoro é reduzido, tornando as transições mais suaves e perceptivamente inaudíveis. Modelo Perceptivo A saída do modelo perceptivo consiste em valores para o limite de mascaramento ou ruído admitido para cada partição do codificador. No MP3 estas partições são equivalentes à banda crítica do ouvido humano. Se o ruído de quantização conseguir ser mantido abaixo do limite de mascaramento para cada partição então o sinal após a compressão deverá ser indistinguível do original. Quantização e codificação A quantização é feita por um quantizador de potência. Desta maneira os valores mais elevados são codificados automaticamente. Os valores quantizados são codificados usando um código de Huffman. Para adaptar o processo de codificação a diferentes sinais musicais, a tabela óptima é escolhida de entre várias. Este código trabalha, em geral, em binário, contudo, nos casos em que os números a serem codificados são muito pequenos trabalha em quaternário. Como a codificação é um método de comprimento de código variável e tem de ser feita modulação de ruído para manter o ruído de quantização abaixo do limiar de mascaramento, são introduzidos um ganho global e um factor de escala antes da quantização. Para se encontrar um ganho óptimo e factores de escala para um dado bloco, o bit-rate e a saída do modelo perceptivo são normalmente dados por duas malhas de iteração pelo método analysis-by-synthesis:
Para que estas duas malhas não entrem num ciclo infinito, os parâmetros do modelo perceptivo são ajustados para cada bit-rate.
O codificador AAC apareceu na norma MPEG-2, com o objectivo de melhorar o já existente MP3 da norma MPEG-1, tendo o primeiro surgido em 1997, e posteriores melhoramentos em 2003 e 2004, dando origem ao HE-AAC v1 e HE-AAC v2 (High-Efficiency AAC). Devido ao grande sucesso da arquitectura base do MP3, esta tornou-se praticamente incontornável no que toca a codificação áudio eficiente, fazendo com que o AAC também a utilize. Assim, as principais alterações que esta sofreu foram o acrescento de algumas ferramentas, e o melhoramento de outras, com o objectivo de garantir maior eficiência e melhor qualidade do sinal à saída.
Como é possível observar no diagrama de blocos, o sinal no domínio do tempo entra no banco de filtros, após um pré-processamento com controlo de ganho (divide o sinal em quatro bandas de frequências). No banco de filtros é feita a divisão espectral do sinal, sendo-lhe aplicada a MDCT. A partir desta fase começa o processamento espectral do sinal, onde é feita a compressão com controlo de qualidade e de eficiência. Numa fase final é feita quantização e codificação do sinal comprimido. Em diversas partes deste processo, que se denota semelhante ao do MP3, foram inseridos melhoramentos, tanto a nível de qualidade do sinal de saída como a nível de eficiência. Estes melhoramentos vão ser tratados em seguida, aprofundando um pouco cada bloco e a sua influência na codificação do sinal.
Melhoramentos de eficiência As principais alterações de ferramentas que aumentaram a capacidade de compressão do AAC prendem-se com: · Banco de filtros mais selectivo – fazendo uma divisão espectral do sinal em 1024 bandas (contra as 32 do MP3) consegue-se codificar de forma mais eficiente cada uma das frequências, com base na sensibilidade que o ouvido humano tem a cada uma; · Bloco de predição – procura a redundância no tempo do sinal, diminuindo bastante o número de bits gastos para sinais repetitivos ou semelhantes (grande redundância). · Bloco de Joint Stereo melhorado (M/S e Intensity) – explora a redundância entre os diversos canais, permitindo reduzir o débito binário mais frequentemente comparado com um codificador MP3. · Bloco de Quantização – utilização de um código de Huffman melhorado (codificação entrópica), que permite uma codificação mais flexível e eficiente. Todas estas ferramentas, como observado no diagrama de blocos, levam em conta o modelo perceptual do ouvido humano.
Melhoramentos de qualidade sonora Foram também introduzidas alterações com o intuito de aumentar a qualidade sonora do sinal de saída. Estas são relativas aos seguintes blocos na Figura 5: · Banco de filtros mais selectivo – esta maior capacidade de analisar bandas de frequências e a melhor adaptação do sinal de saída à sensibilidade humana a cada uma delas consegue aumentar significativamente a qualidade do áudio de saída, principalmente com débitos binários mais baixos; · Temporal Noise Shaping – bloco desenvolvido para o AAC, que aumenta o SNR aparente, tendo como efeito um aumento de qualidade. Isto é feito através da alteração da forma espectral do erro introduzido pela quantização e pelo efeito de dithering (introdução de ruído intencional para tornar aleatório o erro de quantização). Com estas alterações é possível obter a qualidades perceptivas semelhantes às do MP3 com um débito binário inferior. Também a eficiência foi, como referido anteriormente, melhorada face ao MP3.
HE-AAC Apesar deste aumento de eficiência e qualidade relativamente ao codificador áudio mais utilizado (MP3), a débitos baixos, a complexidade aumenta bastante. Para resolver esta questão foi desenvolvido o HE-AAC. Mantendo a base do AAC e do MP3, o principal objectivo era inserir dois blocos de aumento de eficiência: · Replicação de banda espectral (SBR); · Estéreo paramétrico (PS).
Replicação de banda espectral (SBR) O primeiro objectivo a ser alcançado foi a criação do bloco SBR, que deu origem ao HE-AAC v1. Este bloco explora a redundância na frequência, aproveitando a pouca sensibilidade humana às altas frequências para as codificar sobrepondo harmónicas de baixas frequências com harmónicas de médias frequências. Em profundidade temos duas ferramentas essenciais para este bloco: · Reconstituição de alta frequência (High Efficiency Reconstruction) – onde é feita uma estimativa inicial grosseira, através da cópia das harmónicas de baixa frequência e deslocação das mesmas para a alta. É ainda feito um ajuste fino com adição de ruído, achatamento da estrutura espectral e adição de sinusóides; · Ajuste de forma (Envelope Adjustment) – onde é moldado o sinal produzido pelo bloco anterior, com o objectivo de o tornar o mais próximo do real possível, respondendo a um trade-off de qualidade contra eficiência.
Parametric Stereo (PS) Depois da primeira versão do HE-AAC foi criada uma segunda, onde foi introduzido o bloco de estéreo paramétrico. Este explora de uma forma melhorada a redundância entre os canais estéreo. A forma de funcionamento é baseada na do MP3 e do primeiro AAC, sendo enviado um sinal sonoro mono e um conjunto de bits para o descodificar em estéreo. Esta descodificação é, contudo, bastante limitada, sendo apenas possível alterar a intensidade do sinal para cada canal. O melhoramento introduzido foi acrescentar uma ferramenta que permite não só reproduzir diferenças de intensidade/nível, como diferenças de fase e de decorrelação. Isto, para além de explorar de forma mais eficiente a redundância entre os dois canais, introduz um aumento de qualidade significativo no sinal estéreo.
O aumento de complexidade associado à introdução destes blocos é, no entanto, compensado pela redução da frequência de amostragem necessária e pela codificação estéreo de apenas um canal. Isto traduz-se apenas num aumento (relativamente ao AAC inicial) por um factor de 1.5 e 2, para o HE-AAC v1 e HE-AAC v2 respectivamente.
|
||||||||||