A Norma
Para que um formato de codificação seja implementado, é conveniente normaliza-lo. Ou seja, para evitar que cada fabricante faça uma norma diferente, é necessário impor regras para que a norma suporte um vasto número de aplicações e garanta uma interoperabilidade entre os vários dispositivos que a implementam. Seria muito difícil que determinada norma tivesse sucesso, se existissem vários grupos de utilizadores, cada um deles com uma forma diferente de utiliza-la. Assim, para definir uma norma, é necessário especificar o problema que se pretende que ela resolva, para de seguida analisar propostas tecnológicas de empresas para a solução do problema, escolhendo-se depois a melhor hipótese e implementando-a com a colaboração das várias empresas intervenientes.
Então como é a norma MPEG-1 Audio Layer 3 (MP3)?
Antes de mais, é necessário realçar que os
codificadores de MP3 não são normativos. Isto é, cada fabricante tem
a liberdade de decidir como utiliza as “ferramentas” disponíveis na
norma. No entanto o bistream
(aquilo que sai do codificador), é normativo, ou seja, tem uma
sintaxe fixa, para que todos os descodificadores MP3 o consigam
utilizar. Isto permite que a norma não fique estagnada no tempo,
pois pode ser sempre melhorado o codificador, conseguindo sempre
melhores resultados, sem nunca ser necessário modificar os
descodificadores.
A norma MPEG-1 Audio Layer 3 utiliza as
seguintes “ferramentas”:
· Codificação blocos de 1152 amostras áudio (2 grupos de 576 amostras cada)
· Estrutura híbrida de codificação tempo/frequência - Banco de filtros (sub-bandas) seguido de codificação de transformada (Modified DCT)
· Comutação dinâmica de janela - Para aumentar a resolução na frequência, as 32 sub-bandas são subdivididas através da aplicação a cada uma delas de uma transformada com 6 ou 18 coeficientes o que dá um número máximo de componentes de frequência de 32×18 = 576 (ou 192). A janela mais pequena permite controlar a resolução no tempo e logo diminuir o efeito de pré-ecos
· Sobreposição das janelas - A MDCT é aplicada com 50% de sobreposição para diminuir o efeito de bloco o que significa que a MDCT é aplicada a conjuntos de 12 ou 36 amostras das sub-bandas
· Quantificação não-uniforme dos coeficientes MDCT (tipo exponencial) introduzindo maior erro nos coeficientes de maior amplitude (onde há menor sensibilidade ao erro); um mecanismo com 2 ciclos aninhados é tipicamente usado para a quantificação e codificação MP3
· Codificação entrópica (Huffman) dos coeficientes MDCT quantificados e dos scale factors
·
Modelo Psicoacústico 2 sugerido na
norma (mais complexo do que o modelo 1).
De seguida será explicada a função de cada cabeçalho, bem como as opções que lhe estão associadas.
· Sync (11 bits) – Este campo permite ao descodificador, sincronizar-se com a primeira ocorrência válida de uma trama. É especialmente útil para saltar de um ponto da faixa de música para outro
· Id (2 bits) – Especifica se a trama foi codificada em MPEG-1 ou MPEG-2.
· Layer (2 bits) – Especifica se a trama é Audio Layer 1, 2, 3 ou não definida.
· Protection (1) – Se este bit for 1, é inserido um checksum de 16-bit antes do início dos dados de áudio
·
Bit
Rate (4) – Define
bit-rate da trama (de 32
a 320 kbit/s)
·
Sampling
rate
frequency (2) – Define a
frequência de amostragem utilizada (32, 44.1 ou 48 kHz)
·
Padding
bit (1) – Existe para
garantir que cada trama satisfaz as exigências de
bitrate com precisão. Por
exemplo, para um dado
bitstream
podem existir tramas com 417 bytes e outras com 418 bytes, nesse
caso as tramas de 417 bytes vão ter o bit de padding a (1) para
compensar a discrepância
· Private bit (1) – Pode ser usado por aplicações específicas para activar eventos
· Channel mode (2) – Especifica o modo de codificação de áudio:
§
Mono
§
Dual Stereo –
Canais codificados independentemente, por exemplo, 2 línguas
§
Stereo –
Codificação independente mas partilha de campos comuns na trama
codificada
§
Joint Stereo – A
dependência entre canais é explorada através da técnica
intensity stereo; acima
de 2 kHz, envia-se o sinal L+R e factores de escala para os 2 canais
(L e R) uma vez que a estas frequências já pode haver perda de
sensação Stereo
§ Mono/Stereo (MS) – Os 2 canais são codificados como L+R (middle) e (side) L-R o que permite controlar melhor a localização espacial do ruído de quantização
· Mode extension (2) – Usado apenas com Joint Stereo para informar o codificador se houve combinação de frequências nos canais
· Copyright (1) – Informa se existe Copyright.
· Original (1) – Informa se se trata de uma cópia ou não
·
Emphasis (2) – Raramente
utilizado, serve para informar se se respeitou a
Emphasis na gravação
original
Como já foi dito, embora haja liberdade para implementar as “ferramentas” disponíveis de diferentes formas, as tramas do bitstream têm de ter exactamente a sintaxe descrita anteriormente, caso contrário os descodificadores de MP3 não conseguirão “compreender” os bits que recebem.