MPEG-1 Layer 3, mais frequentemente conhecido como MP3 é, sem qualquer tipo de dúvida, o formato que domina a transmissão de áudio em formato digital. Assim, é importante analisar detalhadamente as suas características e funcionamento, como forma de tentar descobrir o que o destaca entre todas as outras técnicas de codificação lossy (e losseless !) existentes.

Standart pouco restritivo 

Parece um contra-senso, mas uma das mais importantes propriedades dos standards MPEG (incluindo, obviamente o MP3) prende-se no principio de minimização dos elementos normativos. Assim, e no caso específico da codificação áudio, apenas a representação dos dados e a sua descodificação estão normalizadas. Mesmo a descodificação apenas está especificada em termos das fórmulas necessárias para o algoritmo, enquanto que a codificação é deixada completamente ao critério de quem implementa o standard, existindo apenas alguns exemplos, que podem ou não ser seguidos.



Desta característica resulta que, ainda que seja preciso um investimento elevado para concretizar encoders e decoders MPEG com qualidade elevada, esta se torna possível num número virtualmente ilimitado de sistemas.

Descrição do Algoritmo de Codificação 

A codificação MP3 baseia-se na análise de um sinal de áudio digital, descomposição deste em padrões matemáticos e comparação destes com os modelos psico acústicos presentes no codificador. Resultante desta comparação são descartados os dados que não estão presentes no modelo, ou seja que, segundo o modelo utilizado, não são relevantes para a experiência acústica subjectiva. O grau de “tolerância”, numa análise simplista, a partir do qual se mantêm ou descartam os dados é baseado no Bit-rate (número bits que devem ser guardados por cada segundo da musica) definido por quem está a fazer o encoding. Segue-se, a esta compressão psico acústica, a codificação Huffman, algo semelhante ao processo de codificação de ficheiros .zip, que será descrita em mais pormenor mais adiante.

Deste processo resulta um ficheiro MP3 composto por uma sequência de frames, sendo cada um destes precedido por um header com informação sobre os dados que se lhe vão seguir. No início do ficheiro MP3 existe também uma secção de dados designados por ID3, que contém informação sobre a musica, como o artista, álbum e ano de gravação da faixa. [1].

De seguida serão descritos, de uma forma mais aprofundada, os componentes da codificação MP3 presentes no diagrama de blocos da Fig. 3.

Primeira Fase da Compressão Como já foi explicado anteriormente nesta primeira fase recorre-se a estudos psico acústicos, como forma de comprimir o sinal de áudio recebido. Para tal recorre-se a um Banco de Filtros (FilterBanck) híbrido, composto por um banco de filtros polifásico seguido de uma MDCT (Transformada Discreta de Coseno Modificada), e a um modelo psico acústico que, recorrendo ao seu próprio Banco de Filtros, ou combinando-se com os do Banco de Filtros principal. Estes produzem como output um masking threshold ou quantidade de ruído permitida para cada coder partition, que correspondem as bandas de frequência críticas para o ouvido humano. Se o ruído for mantido abaixo deste limite então o resultado obtido deve ser indistinguível do sinal original. [3]

Segunda Fase da Compressão Nesta fase recorre-se, normalmente, a um sistema de dois ciclos de iteração aninhados, efectuando-se a quantificação (processo através do qual é possível aproximar um leque variado de valores através de um número reduzido de símbolos discretos ou valores inteiros) e posterior codificação de Huffman. A codificação de Huffman, por sua vez, recorre às probabilidades de ocorrência de símbolos num conjunto de dados para determinar códigos de tamanho variável para cada símbolo. Assim, e uma vez que é necessário manter o ruído provocado pelo processo de quantificação abaixo dos limites definidos na primeira fase de compressão esta segunda fase é composta por dois ciclos. No primeiro (denominado Inner Iteration loop ou Rate Loop) recorre-se à codificação de Huffman para reduzir o tamanho dos valores quantificados, repetindo-se o ciclo caso o numero de bits obtido exceda o espaço disponível para o bloco de dados. No segundo ciclo (denominado Outer Iteration Loop ou Noise Control Loop) é ajustado o valor de cada banda até que o sinal obtido respeite o masking threshold.

Características Técnicas

De forma a possibilitar a sua aplicação a uma série de aplicações diferentes, a codificação áudio MPEG inclui uma série de opções, a saber:

Modo de Operação Para além de ser possível codificar em mono e stereo, a codificação MP3 permite a utilização de uma técnica chamada joint stereo [2], que consiste, resumidamente, numa codificação mais eficiente dos canais esquerdo e direito de forma a permitir bit-rates mais reduzidas. Convém notar que existem duas técnicas distintas de joint stereo: M/S Stereo Coding [2], que se baseia na transmissão de um canal middle (M) e de um canal side (S), diferenciados através de operações matriciais, sendo esta técnica losseless, e Intensity Stereo Coding[2], que se baseia na combinação dos sinais esquerdo e direito, sendo uma técnica lossy, dirigida à transmissão em bit-rates reduzidos e com o objectivo principal de evitar artefactos resultantes da codificação.

Frequência de Amostragem Mais uma vez a codificação MP3 disponibiliza várias opções, de forma ao resultado se adaptar ao pretendido. A frequência mais usada é a 44,1 kHz, uma vez que é também a utilizada nos CDs Audio, fonte de grande parte dos ficheiros MP3. Estão também disponíveis na norma MPEG-1 as frequências 32kHz e 48kHz, sendo que mais tarde foram disponibilizadas as frequências 16kHz, 22,05kHz, 24kHz, pela norma MPEG-2, e 8kHz, 11,05kHz e 12kHz, pela expansão Fraunhofer à norma MPEG-1/2 Layer-3. [4]

Bit-Rate Relativamente a este aspecto o áudio MP3 oferece, para além de uma série de opções, que variam entre 32kbits/s e 320kb/s, a possibilidade de codificar o áudio não só numa bit-rate constante (CBR, constant bit rate), como também numa bit-rate variável conforme a complexidade do segmento de tempo a codificar (VBR, variable bit rate), sendo que esta última apresenta uma qualidade constante, embora esta seja dependente do algoritmo utilizado para a codificação dos frames. Existe ainda uma terceira opção (ABR, average bit rate), que passa por definir uma bit-rate média, com a vantagem de apresentar mais qualidade que a codificação CBR e ter um tamanho mais previsível que os ficheiros resultantes da codificação através de VBR.