Ínicio

Contexto histórico

Codificação audio

Objectivos

Conceitos

Mascaramento

Arquitectura

Aspectos técnicos

MP3 vs AAC

Conclusão

 

 

 
   

Codificação Áudio

 

  Objectivos da codificação

A codificação, ou compressão, de áudio tem como objectivo reduzir o número de bits necessário para representar uma determinada sequência de áudio. Tal terá como consequência a diminuição da largura de banda de transmissão necessária para um fluxo digital áudio. Além disto, a redução do tamanho do ficheiro tem como principal consequência o aumento de capacidade virtual de armazenamento. Para realizar a compressão são utilizados algoritmos de complexidade variável, que produzem também resultados diferentes. Ao decidir a complexidade aceitável para determinado algoritmo deve-se ter presente a noção de que baixa complexidade permite a existência de codificadores por software e que os descodificadores de hardware tenham baixo consumo energético. Contudo as principais metas da codificação áudio prendem-se com o seguinte: 

·  Eficiência – redução máxima do tamanho do ficheiro codificado;

·  Qualidade – perdas perceptivas o mais reduzidas possíveis, sendo a codificação áudio, idealmente, imperceptível ao ouvido humano.

 

  Conceitos básicos

·  Redundância do sinal: partes do sinal que se repetem não necessitam de ser codificadas mais do que uma vez, bastando indicar a repetição;

·  Irrelevância: baseado num modelo psico-acústico do ouvido humano é possível inserir ruído (erro de quantização) sem que este seja perceptível;

·  Redundância estatística: utilização de codificação entrópica no fluxo de bits à saída do quantizador (quanto maior a probabilidade do símbolo, menor o número de bits utilizado para o codificar).

·  Codificação Lossless: codificação onde é explorada apenas a redundância do sinal, resultando na igualdade matemática entre o sinal descodificado e o sinal de entrada (pré codificação).

·  Codificação Lossy: codificação na qual é explorada a irrelevância e a redundância estatística e/ou temporal, por se “inserir mais erro” de codificação nas zonas do sinal onde o ouvido humano não distingue tão bem os pormenores porque é menos sensível (e.g. altas frequências).

·  Mascaramento Auditivo: fenómeno que acontece quando a percepção de um som é afectada pela presença de outros sons.

Porque o mascaramento auditivo é um fenómeno de grande importância vai ser explicado um pouco mais em profundidade de seguida.

 

Mascaramento Auditivo

Este fenómeno acontece quando a percepção de um som é afectada pela presença de outros sons, mascarando o primeiro.

Esta insensibilidade do ouvido humano pode ser utilizada para codificar com menor precisão, ou mesmo ignorar, as componentes sonoras inaudíveis pelo utilizador comum.

Existem dois tipos de mascaramento auditivo: na frequência e no tempo. O mascaramento em frequência ocorre quando um som se torna inaudível pela presença de outro com frequência semelhante e intensidade superior. Assim, tendo em conta a sensibilidade humana para cada gama de frequências, pode ser calculado um limiar de audição, na presença de outro som de maior intensidade, e ignorar os sons que estão abaixo desse limiar. Na figura a seguir podemos ver o Threshold in quiet alterado pela frequência mascarante.

A este fenómeno pode ser ainda acrescentado o mascaramento temporal, que estende este efeito no tempo, fazendo com que o som mascarante afecte a percepção de outros sons 5ms antes de acontecer e 20ms depois.

O mascaramento auditivo é, assim, de extrema importância, pois utilizando um modelo do sistema auditivo humano (no qual o limiar da audição e as suas variações de acordo com o mascaramento estejam bem modeladas) é possível remover completamente as frequências inaudíveis, e introduzir ruído (maior passo de quantização) nas frequências que não são perceptivamente tão relevantes.

Na figura seguinte vê-se a diferença entre o nível do ruído de quantização e o nível a partir do qual a distorção se torna audível para uma certa banda crítica (bandas de frequências para a quais as características do ouvido humano são semelhantes). A esta relação chama-se Noise-to-Mask Ratio (NMR).

 

 

  Arquitectura de um Codificador Perceptivo

Tendo em conta a dualidade eficiência/qualidade mencionada anteriormente foi generalizado no seguinte diagrama de blocos o processo de codificação de um sinal áudio de entrada produzindo um fluxo de bits à saída: 

Deste diagrama destaca-se a parte de codificação (topo da imagem), em que temos à entrada um sinal áudio chamado puro. De seguida é processado nos seguintes blocos.

·  Banco de filtros: separa o sinal de entrada em gamas de frequências sub-amostradas.

·  Modelo perceptivo e Quantização: cada uma das gamas de frequência é quantizada, sob a influência de um modelo perceptivo do ouvido humano (também chamado modelo psico-acustico).

·  Codificação do fluxo de bits: Um formatador de bits é utilizado para juntar os bits numa sequência. Geralmente esta sequência consiste nos coeficientes espectrais codificados e quantificados e alguma informação adicional, como por exemplo a localização dos bits.

 O processo de quantização é a discretização em degraus do sinal contínuo, como ilustrado na figura abaixo. Uma quantização mais grosseira implica a presença de menos degraus e, por conseguinte, menos bits necessários à codificação (mais erro implica maior compressão).

Quantização uniforme (cinzento) e quantização não uniforme (branco)

Do lado do descodificador temos um processo inverso ao da codificação. Após a recepção do fluxo de bits gerado na compressão, é descodificado e feita a sua quantificação inversa (transformação de conjuntos de símbolos em bits). Por fim são juntas as componentes frequenciais pelas quais o sinal vinha dividido. É de salientar que o processo de descodificação tem uma complexidade muito inferior ao de codificação.

 

 

Problemas na codificação áudio

 

Ao longo do processo de codificação existem diversos problemas inerentes a este processo, com os quais um codificador tem que ser capaz de lidar. Estes são:

  • Perda de largura de banda - quando a bit-rate ou o espaço dado ao codificador não é suficiente para codificar a parte do sinal pretendida. Isto provoca uma distorção no sinal, sendo geralmente prejudicadas as altas frequências (devido à sensibilidade humana ser inferior nestas);
  • Pré-ecos – causados pela codificação ser feita em bloco e quando há um aumento rápido e significativo de energia que espalha erro de quantização pelo bloco todo. A melhor forma de evitar isto é utilizando uma bit-rate variável na análise do sinal;
  • Roughness/Double Speak – efeito observado quando há uma distorção temporal na codificação, que leva a um efeito de duas vozes sobrepostas.