Codificação de áudio MP3 - Engenharia Eletrica

Propaganda
Universidade Federal do Paraná
Centro Politécnico
Curso de Engenharia Elétrica
COMPRESSÃO DE ÁUDIO – MP3
MARINA HELENA KRISAM RODRIGUES MATIELLI
Trabalho como parte de critérios
da disciplina de “Processamento
Digital de Sinais I”
Professor: Marcelo Rosa
UFPR
24/06/2007
Índice
1. Introdução...............................................................................................................pg.03
2. MP3 (MPEG-1 Audio Layer 3)..............................................................................pg.03
2.1. Características da Audição Humana................................................................pg.03
3. Codificadores por Forma de Onda e Perceptuais...................................................pg.05
3.1 Codificadores por Forma de Onda....................................................................pg.05
3.2 Codificadores Perceptuais................................................................................pg.05
4. Codificação de Áudio MP3....................................................................................pg.05
4.1 Banco de filtros................................................................................................pg. 06
4.2 DCT e MDCT ..................................................................................................pg.06
4.3 Modelo Psico-Acústico.....................................................................................pg.07
4.4 Quantificação e codificação..............................................................................pg.08
4.5 Formatação do "Stream" de Bits.......................................................................pg.09
4.6 Codificação Huffman.......................................................................................pg.09
5. Decodificação.........................................................................................................pg.10
6. Conclusão...............................................................................................................pg.11
7. Referências Bibliográficas......................................................................................pg.12
2
1. Introdução
Esse trabalho visa mostrar algumas características da compressão de áudio
principalmente da que conhecemos como mp3.
O ouvido humano tem a capacidade de ouvir freqüências de 20 a 20 kHz, freqüências
acima ou abaixo dessa faixa, ou até perto de 20 ou de 20 kHz não são detectadas pelo
ouvido humano. A principal técnica de compressão do mp3 visa suprimir essas partes
que o ouvido humano não consegue detectar. Isso pode reduzir em até 10 vezes o
tamanho de um arquivo.
O maior interesse hoje, é de salvar o áudio de forma digital, pois esse apresenta muitas
vantagens em relação ao formato analógico, tais como melhor qualidade de áudio,
facilidade de processamento e menor consumo de largura de banda.
Áudio codificado a uma freqüência de amostragem de 44.1 kHz, 16 bits por amostra,
estéreo (qualidade de CD) usa 44100x16x2 = 1.411.200 bits por segundo. Isto significa
que para transmitir tal arquivo por uma rede, é necessária uma largura de banda de 1,41
Mbits/s. Uma música de três minutos (180 segundos) de áudio nestas condições usa
180x44100x16x2 = 254.016.000 bits, ou mais de 30 MB de armazenamento no
computador. Estes dois exemplos dão uma idéia da importância da compressão de som.
2. MP3 (MPEG-1 Audio Layer 3)
A sigla MP3 é uma abreviação de MPEG Audio Layer-3. O "layer" poderia ser
definido como o nível da evolução do esquema de codificação de áudio (codec): quanto
maior, mais recente, e conseqüente redução da dimensão dos arquivos de som,
mantendo ou melhorando a qualidade de áudio. Assim sendo, MP3 é a mesma coisa que
MPEG-3, o MP3 faz parte do padrão MPEG.
O MP3 é um tipo de compressão de áudio com perda de dados, porém, essa perda é
praticamente imperceptível ao ouvido humano, pois utiliza-se dos conhecimentos das
imperfeições ou limitações da audição humana para eliminar informações do arquivo
sem afetar o que ouvimos. Assim, o MP3 consegue níveis de compressão de até 12
vezes.
2.1. Características da Audição Humana
O MP3 se baseia nas características da audição humana para comprimir arquivos. A
utilização dessas características se baseia em 3 princípios básicos:
- Faixa de freqüência audível dos seres humanos;
- Limiar de audição na faixa de freqüência audível;
- Mascaramento em freqüência e mascaramento temporal.
- Faixa de Freqüência Audível dos Seres Humanos: O ouvido humano só pode
detectar sons em uma faixa de freqüência que varia de 20 Hz a 20 kHz, como citado
anteriormente, porém essa faixa pode variar de indivíduo a indivíduo e também com a
idade, pois com o envelhecimento perde-se a capacidade de ouvir freqüências mais
3
altas. Assim, o MP3 utiliza-se desta limitação para comprimir áudio, pois não há
porque armazenar sons que não estejam dentro desta faixa que o ouvido humano é capaz
de detectar, pois se forem reproduzidos, não serão detectados por um ser humano.
Esta limitação permite ao MP3 alcançar altas taxas de compressão. De acordo com o
Teorema de Nyquist, para garantir a reprodução de um sinal, a freqüência de
amostragem tem de ser pelo menos duas vezes sua freqüência máxima. Neste caso, a
freqüência máxima é a freqüência máxima de capacidade de detecção do ouvido
humano, 20 kHz, e a freqüência de amostragem, segundo Nyquist, será 40 kHz. Na
prática, utiliza-se uma freqüência de amostragem de 44100 kHz, pois levam-se em
consideração 10% de tolerância e busca-se um valor produto dos quatro primeiros
números primos. (Obs. (2x3x5x7)^2 = 44100).
Assim, esta taxa de amostragem funciona como um filtro passa-baixas, removendo
todas as componentes de freqüência fora da faixa de interesse, neste caso, acima de 20
kHz.
- Limiar de Audição na Faixa de Freqüência Audível: O ouvido humano só pode
detectar sons dentro da faixa de freqüência de 20 Hz a 20 kHz, mas apesar disso, a
sensibilidade para sons dentro desta faixa não é uniforme, ou seja, a percepção da
intensidade do som varia com a freqüência em que o som se encontra. Esta
característica do ouvido humano é o Limiar de Audição, que é uma curva de percepção
da audição humana dentro da faixa de freqüências audíveis.
Assim, para comprimir áudio, o MP3 descarta amostras que se encontram abaixo deste
limiar.
- Mascaramento em Freqüência e Mascaramento Temporal: O mascaramento
auditivo é definido como a "audibilidade diminuída de um som devido à presença de
outro", ou seja, o ouvido humano só tem capacidade de detectar um som se houver dois
simultâneos.
O mascaramento em freqüência, também chamado mascaramento simultâneo, é
explicado melhor com um exemplo. Se tiver um som forte com uma freqüência de 1000
Hz, e também um som na freqüência de 1100 Hz que está a 18 dB por baixo do anterior,
o som de 1100 Hz não pode ser ouvido porque está sendo mascarado pelo som mais
forte de 1000 Hz. Isto ocorre porque o som de 1000 Hz é mais forte e está perto em
freqüência. Quanto mais perto em freqüência estão, mais fortes são os sons que podem
ser mascarados pelo som mais forte.
O mascaramento temporal ocorre antes e depois de um som forte. Se um som é
mascarado depois de um som mais forte é chamado pós-mascaramento, e se é
mascarado antes em tempo é chamado pré-mascaramento. O pré-mascaramento existe
só por um curto momento (20 ms). O pós-mascaramento tem efeito até por 200 ms.
4
3. Codificadores por Forma de Onda e Perceptuais
3.1 Codificadores por Forma de Onda
Este tipo de codificador tenta reconstruir o sinal tão exatamente quanto seja possível
depois de codificar e decodificar.
3.2 Codificadores Perceptuais
Este tipo de codificador é o mais utilizado pelo modelo MPEG, pois ao contrário dos
codificadores por forma de onda, não tentam manter o sinal exatamente como era antes
da codificação e decodificação, simplesmente tentam assegurar que o som seja
percebido pelo ouvido humano como o som original que foi comprimido. Para isso,
utiliza-se das características da audição humana já citadas anteriormente, eliminando
parte do sinal que o ouvido humano não pode perceber.
Os codificadores perceptuais transformam o som do domínio do tempo para o domínio
da freqüência, separam as diferentes freqüências em sub-bandas, e, depois, eliminam
informações não necessárias com base nas características da audição humana. A
característica mais explorada é o efeito de mascaramento.
4. Codificação de Áudio MP3
A codificação de MP3 é um processo que transforma áudio PCM em áudio com
qualidade razoável e tamanho significamente reduzido. A entrada de áudio é
transformada frame por frame de componentes no domínio do tempo para componentes
no domínio da freqüência pela Transformada Rápida de Fourier (FFT) e depois passada
no sistema de Mascaramento de Freqüências, esse processo é o processo do Modelo
Psico-Acústico, que determina o limiar de mascaramento de cada sub-banda.
Ao mesmo tempo o áudio é enviado ao bloco de transformação híbrido, que possui um
Banco de Filtros, que separa o sinal em 32 sub-bandas, e então passa o sinal pelo
sistema de MDCT (Transformada Discreta Cosseno Modificada) para compensar a
baixa precisão do banco de filtros e comprimir o sinal em uma faixa de poucas
freqüências.
A saída do sistema de transformação hibrida é enviada ao sistema de codificação da
seqüência de bits, que quantifica os valores espectrais e conta o número de bits do
código de Huffman necessário para codificar os valores. A codificação de Huffman é
escolhida como a ferramenta codificadora sem perdas. No caso do ruído de
quantificação exceder o limiar de mascaramento, o MP3 amplifica o fator de escala da
energia da sub-banda espectral.
No sistema de controle de distorção, há o ajuste da sub-banda espectral para regular a
qualidade e então, a informação é unida com o áudio comprimido para resultar em
arquivo MP3 válido.
A quantificação está exemplificada na figura a seguir.
5
Figura 1: Visão Geral da Codificação do MP3.
4.1 Banco de Filtros
Um banco de filtros é um arranjo de filtros passa-banda que separa o sinal de entrada de
áudio em 32 sub-bandas. É desejável projetar o banco de filtros de uma forma que as 32
sub-bandas possam ser recombinadas para recuperar o sinal original.
Estas sub-bandas estão igualmente separadas em freqüência, e não representam
exatamente as bandas críticas do ouvido.
O banco de filtros utiliza a propriedade da seletividade de freqüência limitada do ouvido
humano, que varia em precisão de menos de 100 Hz para as freqüências audíveis mais
baixas, até mais de 4 k Hz para as mais altas, assim, o espectro audível pode ser
particionado em bandas críticas que representam a seletividade do ouvido humano.
Ele serve para isolar diferentes componentes de freqüência de um sinal, podendo então
codificar freqüências mais importantes com uma resolução ótima e as menos
importantes com uma resolução mais baixa. As pequenas diferenças nessas freqüências
são significativas e então deve ser usado um esquema de codificação que preserve estas
diferenças, porém, as freqüências menos importantes não precisam ser exatas, e pode
então, ser utilizado um esquema de codificação mais rude.
O processo layer III utiliza na saída do banco de filtros a Transformada Discreta
Cosseno Modificada (MDCT) para compensar a baixa precisão do banco de filtros.
4.2 DCT e MDCT
A DCT é freqüentemente usada em processamento de sinal e imagem, especialmente
pela compressão de dados com perdas, pois tem uma forte propriedade de “energia de
compactação”: a maior parte da informação do sinal tende a ficar concentrada em
algumas poucas componentes de baixa freqüência da DCT.
Por isso, a DCT é usada em compressão de imagem JPEG, MJPEG, MPEG, e
compressão de vídeo DV. A MDCT é usada em AAC, Vorbis e compressão de áudio
MP3.
6
A figura a seguir, mostra uma imagem comprimida com DCT e com DFT. Para ambas
as transformadas, há a magnitude do espectro à esquerda e o histograma à direita. A
DCT concentra a maior parte do sinal nas baixas freqüências.
Figura 2: DCT comparada à DFT.
4.3 Modelo Psico-Acústico
Este modelo é usado para determinar a qualidade de uma implementação dada do
codificador. Ele realiza duas funções: decide que tipo de bloco usar e calcula a taxa
sinal-a-máscara, que é o valor do sinal na banda dividido pelo limiar de mascaramento.
Ele primeiro converte o áudio do domínio do tempo para o domínio da freqüência,
usando a FFT para obter uma boa resolução de freqüência para o cálculo correto dos
limiares de mascaramento. A saída da FFT é usada primeiramente para analisar que tipo
de sinal está sendo processado.
Um sinal estacionário faz com que o modelo escolha um bloco longo e um sinal mais
transitório resulta em um bloco curto. O tipo de bloco é usado depois na parte da MDCT
do algoritmo.
A saída do modelo então, consiste dos valores para os limiares de mascaramento ou
ruído permitido para cada sub-banda, que são aproximadamente equivalentes às bandas
críticas da audição humana. Existe ruído de quantificação num sinal digital devido à
existência de um número limitado de valores discretos para representar o sinal original.
7
Se o ruído de quantificação pode ser mantido abaixo do limiar de mascaramento para
cada sub-banda, então o resultado da compressão não deveria ser distinguido do sinal
original.
4.4 Quantificação e Codificação
A quantificação é feita por um quantificador de lei de potência, que automaticamente
codifica os valores maiores com menos exatidão. Os valores que foram quantificados
são codificados por codificação Huffman, que adapta a codificação às diferentes
estatísticas locais dos sinais musicais.
No processo de obtenção do MP3, deve-se determinar um valor de ganho global (que
determina o tamanho do passo da quantificação) e os fatores de escala (que determinam
fatores da forma do ruído para cada sub-banda), que devem ser aplicados antes da
quantificação real.
O processo de achar o ganho e os fatores de escala de cada banda ótimos para um bloco,
taxa de bits e saída a partir do modelo perceptual é feito pelos dois seguintes laços de
iteração aninhados:
- Laço de iteração interior (laço da taxa de bits):
No laço de iteração interior, se o número de bits resultante da codificação exceder o
número de bits disponível para codificar um bloco de dados, ajusta-se o valor de ganho
global para resultar em um passo de quantificação maior, que leva a valores
quantificados menores. Repete-se esta operação até que se consiga uma demanda de bits
para a codificação Huffman suficientemente pequena.
- Laço de iteração exterior (laço de controle de ruído):
Este laço é executado para que o ruído fique abaixo do limiar de mascaramento para
cada banda crítica. Para isso, são aplicados fatores de escala a cada sub-banda,
começando com o valor de fator de escala igual a 1. Se o ruído de quantificação for
maior que o ruído permitido para cada sub-banda, ajusta-se o fator de escala desta subbanda para reduzir este ruído.
Para se conseguir um ruído menor de quantificação, é necessário um maior número de
passos de quantificação e consequentemente, uma taxa de bits mais alta. Então, o laço
de iteração interior deve ser repetido toda vez que forem usados novos fatores de escala.
O laço interior sempre converge (no caso extremo, fazendo o passo de quantificação o
suficientemente grande para zerar todos os valores espectrais).
O laço exterior pára quando alguma das seguintes condições se cumpre:
1. Nenhuma das bandas tem demasiado ruído (o laço converge).
2. A próxima iteração amplificaria uma das bandas mais do o que é permitido.
3. Todas as bandas dos fatores de escala terem sido amplificadas pelo menos uma
vez.
8
4.5 Formatação do "Stream" de Bits
O último passo no processo de codificação é produzir um "stream" de bits de acordo
com o padrão MPEG.
O formatador de bits armazena o áudio codificado e alguns dados adicionais em quadros
(frames), onde cada quadro contém informação de 1152 amostras de áudio por canal.
Um quadro consiste de um cabeçalho e dados de áudio junto com teste de erros e dados
subordinados opcionais. O cabeçalho descreve entre outras coisas, qual camada (layer),
taxa de bits e freqüência de amostragem estão sendo usadas pelo áudio codificado.
4.6 Codificação Huffman
A codificação Huffman se baseia no comprimento e na freqüência de ocorrência dos
caracteres do áudio a ser codificado. Os dados codificados por Huffman e a sua
informação colateral são colocados na parte de dados de áudio, e a informação colateral
especifica que tipo de bloco, tabelas de Huffman e fatores de ganho das sub-bandas
usar.
O esquema de Huffman utiliza uma tabela de freqüência de ocorrências para cada
símbolo (ou caractere) na entrada. Esta tabela pode ser derivada da própria entrada ou
de dados que são representativos da entrada.
Para poder atribuir aos caracteres mais freqüentes os códigos binários de menor
comprimento, constrói-se uma árvore binária baseada nas probabilidades de ocorrência
de cada símbolo.
Nesta árvore, as folhas representam os símbolos presentes nos dados, associados com
suas respectivas probabilidades de ocorrência; os nós intermediários representam os
símbolos presentes em suas subárvores e a raiz representa a freqüência de todos os
símbolos no conjunto de dados.
O processo de codificação se inicia unindo dois símbolos de menor freqüência que
estejam unidos em um nó ao qual é atribuída a soma de suas freqüências. Forma-se
então um novo nó, que é tratado como se fosse um dos símbolos do alfabeto e
comparado com os demais de acordo com sua freqüência. Esse processo é repetido até
que todos os símbolos estejam unidos sob um único nó.
As arestas da árvore são associadas a um dos dígitos binários (0 ou 1), O código
correspondente a cada símbolo é então determinado percorrendo-se a árvore e anotandose os dígitos das arestas percorridas desde a raiz até a folha que corresponde ao símbolo
desejado.
O algoritmo para construção desta árvore é o seguinte:
9
enquanto tamanho(alfabeto) > 1:
S0 := retira_menor_probabilidade(alfabeto)
S1 := retira_menor_probabilidade(alfabeto)
X := novo_nó
X.filho0 := S0
X.filho1 := S1
X.probabilidade := S0.probabilidade + S1.probabilidade
insere(alfabeto, X)
fim enquanto
X = retira_menor_símbolo(alfabeto) # nesse ponto só existe um símbolo.
para cada folha em folhas(X):
código[folha] := percorre_da_raiz_até_a_folha(folha)
fim para
Figura 3: Algoritmo para construção da árvore de Huffman.
Um exemplo de árvore binária de Huffman é mostrado na figura a seguir:
Figura 4: Árvore de Huffman
5. Decodificação
O processo de decodificação de um arquivo MP3 consiste em três fases: decodificação
de seqüência de bits, desquantificação e mapeamento freqüência – tempo.
A fase de decodificação de seqüência de bits sincroniza a seqüência de bits codificada e
outras informações de cada frame, dando como resultado os códigos de bits de
Huffman, as informações de decodificação de Huffman e as informações de fator de
escala para a próxima fase.
No processo de desquantificação, os coeficientes de freqüência gerados pelo bloco de
MDCT na codificação são reconstruídos, e então os cálculos de desquantificação são
baseados na saída de decodificação de Huffman e na informação do fator de escala.
10
As informações são utilizadas na última fase, que realiza uma série de operações de
MDCT inversa e uma análise do filtro de sub-banda no codificador. Reduzindo os
blocos de aliasing, o sistema põe mais componentes nos coeficientes desquantificados,
assim, pode-se obter uma reprodução mais correta da análise do filtro de sub-banda.
Aplica-se a inversão de freqüência para compensar a redução do número de amostras
usado na análise do filtro de sub-banda. Depois, um filtro de sub-banda sintetizado é
aplicado aos sinais para resultar na saída de áudio PCM.
A figura a seguir mostra estes processos.
Figura 5: Processo de Decodificação.
6. Conclusão
Utilizando essas técnicas de compressão, o MP3 consegue níveis de compressão que
ascendem até 90% do sinal digital. Para atingir estes níveis de compressão o MP3
aproveita, além das técnicas habituais de compressão, o conhecimento das imperfeições
ou limitações na audição, para eliminar aquilo que não é relevante ao ouvido humano.
Então, o MP3 pode ser considerado como um bom padrão de compressão de áudio com
perdas, pois para a maioria dos seres humanos as perdas são imperceptíveis e utilizandose das limitações do ouvido humano, consegue eliminar uma grande parte do sinal,
fazendo com que ele fique com um tamanho muito reduzido em relação a outros
padrões de compressão de áudio. Só as pessoas com ouvido absoluto vêem a diferença.
Ou seja, para a maioria das pessoas é uma compressão satisfatória.
11
7. Referências Bibliográficas
 http://en.wikipedia.org/wiki/Discrete_cosine_transform#Informal_overview
 http://www.img.lx.it.pt/~fp/cav/ano2006_2007/MEEC/Trab_15/CAV_MP3/pages/que
stoestecnicas.html
 http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform
 http://en.wikipedia.org/wiki/Huffman_coding
 http://en.wikipedia.org/wiki/Psychoacoustic
 http://www.img.lx.it.pt/~fp/cav/ano2006_2007/MEEC/Trab_1/Paper_MP3.pdf
12
Download