|
O Diagrama de blocos de
um codificador MPEG-1 Layer-3 (MP3) pode ser observado na figura seguinte.
Diagrama de blocos de um codificador MPEG-1 Layer-3
Seguidamente é descrito
o algoritmo do codificador de Layer-3 ao
longo dos blocos básicos. Este algoritmo só é possível devido á existência de
um Filterbank, um modelo perceptual e a
quantificação e codificação.
O Filterbank usado no MPEG-1 Layer-3 pertence á classe dos Filterbanks Híbridos, ou seja, é
constituído por 2 partes. A primeira é um polyphase
Filterbank (tal como usado no Layer-1 e Layer-2), e a segunda parte é uma DCT modificada (MDCT - Modified Discrete Cosine Transform).
O Polyphase Filterbank
é
o principal componente comum a todas as camadas de compressão de áudio
MPEG-1.Tem como principal objectivo dividir o sinal de áudio em 32 sub-bandas de
frequência iguais, utilizando um conjunto de filtros passa-banda cobrindo toda
a faixa de frequência de áudio.

Polypahse FilterBank
A cada uma destas
sub-bandas é aplicada a MDCT.
Visando reduzir o efeito de bloco, a MDCT é aplicada a cada sub-banda com
sobreposição de 50% no que diz respeito a sub-bandas adjacentes. Pode-se
também utilizar comutação dinâmica de janela para diminuir o pré-eco (tipo de
efeito indesejável que a MDCT introduz).

Esquema representativo da MDCT
A Quantificação e codificação de
Huffman visa
encontrar o ganho óptimo, os factores de escala para um dado bloco, o ritmo
binário e saída do modelo perceptivo é feito através de 2 ciclos encadeados. Um
deles consiste num ciclo interno de iteração, ou ciclo de ritmo, no qual, se o
número de bits que resulta da codificação exceder o número de bits disponível
pode-se corrigir isso ajustando o ganho global, aumentando deste modo o passo
de quantificação, para se obterem menores valores resultantes da quantificação.
Esta operação é repetida para vários valores do passo até ao número de bits
exigido na codificação de Huffman ser suficientemente pequeno. O segundo ciclo
consiste num ciclo externo da iteração, ou ciclo de controlo de ruído, o qual
pretende disfarçar o ruído de quantificação com o limiar de mascaramento (masking threshold). Para
isto, são aplicados factores de escala a cada banda, começando por omissão com
um factor de valor 1. Em seguida, se o ruído exceder o limiar de mascaramneto,
ajusta-se o factor de escala de modo a reduzir o ruído. Este processo de
redução de ruído requer um maior número de passos de quantificação, o que
conduz a um maior ritmo binário. Por esse facto o ciclo de ritmo está encadeado
no ciclo de controlo de ruído. Este ciclo externo é executado até que o ruído
actual esteja abaixo do limiar de mascaramento para todas as bandas.
Cabeçalho MP3
O padrão MPEG-1/2
define um formato obrigatório, que é contido em cada trama (em cada
24 ms com uma frequência de amostragem de 48 kHz). A figura seguinte
demonstra a estrutura do cabeçalho de um ficheiro MP3.
Figura 5 -
Estrutura de um cabeçalho MP3
Observando a imagem constata-se a presença dos seguintes campos:
- Sync Word:
Como a palavra de sincronização pode aparecer dentro dos dados dos
áudio, é necessário uma rotina de sincronização para verificar a
ocorrência de mais do que uma palavra deste tipo;
- Bit-Rate:
O ritmo binário é dado sempre para o fluxo de som e não por canal. No
caso da Layer-3, é possível alterar o ritmo no momento, indicando assim
uma codificação com ritmo variável (VBR);
- Sampling
frequency: Este campo permite alterar o descodificador (hardware
ou software), para as diferentes frequências de amostragem;
- Layer:
Define qual foi o Layer usado no codificador e se é do tipo MPEG-1 ou
MPEG-2 LSF;
- Coding mode: Indica
qual o modo de codificação (mono, dual mono, stereo ou joint-stereo);
- Copy protection: Encontram-se
presentes neste campo 2 bits para SCMS (Serial Copy Management Scheme),
mas como
é fácil a alteração dos mesmos através de software, o grau de
importância desta
protecção é muito baixo.
Devido à repetição dos
cabeçalhos ao longo do ficheiro MP3, é
possível iniciar a descodificação do mesmo em qualquer momento.
|