Title: Compress
1- Compressão de áudio
- Márcio Dahia e Geber Ramalho
2(No Transcript)
3O que é compressão de dados?
- Processo de codificação de mensagens a fim de
reduzir o espaço necessário para representá-las
(armazená-las, transmití-las) - 2 tipos de compressão
- Sem perdas
- Não há eliminação de informação na mensagem.
- Compressão implica codificação eficiente
- Com perdas
- Informações redundantes, pouco importantes ou
irrelevantes sob algum critério são descartadas - Não dispensa a codificação eficiente
- Grau de compressão x Distorção na mensagem
4Por que uma codificação para áudio?
- Porque custa caro armazenar e enviar
- 44.1 x 16 x 2 1.4Mbps códigos de erro
cabeçalhos etc.
5Por que faz sentido uma codificação específica
pra áudio?
- Teoria da Informação Quanto maior o conhecimento
sobre a mensagem, emissor e/ou receptor, melhor a
compressão - Mp3 usa a modelagem psicoacústica para remover
informações da irrelevantes - Conhecimento sobre o receptor e a mensagem
- FLAC usa a correlação entre os canais (E/D) e o
comportamento do sinal para aumentar a compressão - Conhecimento sobre o emissor e a mensagem
6Exemplo
- Taxa de Compressão(TC) 1- (tamanho
comprimido/tamanho original )
7Codificação de áudio Histórico
- 1988 Criação Motion Pictures Expert Group
(MPEG) - Padronização da codificação para transmissão e
gravação de filmes - Imagem, seqüência de imagens (vídeo) e áudio
- Surgimento de novos conceitos e vocabulário
- Frame, Codec, Bitrate
- Padronização do processo de decodificação
- Apenas sugestão de compressão
8Codificação de áudio Histórico
- 1992 MPEG-1.
- O padrão de codificação de áudio consistia em 3
modos de operação de acordo com o taxa de
compressão (complexidade do processo de
codificação)? - As principais idéias foram sugeridas pela
Fraunhofer Institut für Integrierte Schaltungen
(IS 11172-3 e IS 13818-3).
9Codificação de áudio Histórico
- 1994 Surge Xiph.org padrões aberto para
transmissão e armazenamento de áudio e vídeo. - 1996 Surge o ID3 Padrão de fato para de
metadados no mp3 - 1997 MPEG-2
- Advanced Audio Coding (AAC)? Estado da arte em
compressão de áudio (melhorado em Mpeg-4)? - 2003 Surge FLAC
10Conceitos importantes
- Codec (COderDECoder)?
- Frames
- Estrutura de dados correspondente à unidade
mínima de tempo em arquivos de áudio - Mp3 gt 1152 amostras PCM
- Bitrate (taxa de bits) Número de bits p/
codificar um frame - Medida em kbps
- CBR (constant bitrate) - A mesma quantidade de
bits para representar qualquer frame (WAV)? - ABR (average bitrate) - Frames menos complexos
deixam bits para os próximos (MP3)? - VBR (variable bitrate) - O número de bits para
cada frame deve garantir a qualidade definida no
início da codificação (MP3, AAC, VORBIS)?
11Dados
- Frequências de amostragem previstas
- 32, 44.1 and 48 kHz
- Bitrates previstos
- 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192,
224, 256 and 320 kbit/s
12Compressão com perdas
13Processo de Compressão MP3
- Entrada no formato PCM
- Processa 1152 amostras por vez por canal
- Frames são codificados independentemente
14Modelo Perceptivo
- Objetivo
- Analisar o que pode ser considerado redundante ou
irrelevante - Critérios
- Limiar de audibilidade
- Mascaramento de sons
- Simultâneo
- Temporal
- Boa parte dos critérios são avaliados no domínio
da freqüência - Transformada de Fourier
15Limiar de audibilidade
- Um codificador perceptual compara o sinal de
entrada com o limiar de audição e descarta os
sinais que estão abaixo ou acima
16Mascaramento
- Quando dois sons ocorrem, o mais intenso pode
ocultar o menos intenso - Se estão próximos no espectro
- Baixas freqüências mascaram as altas mais
facilmente
17Mascaramento
- E se Se estão próximos no tempo (quase
simultâneos) - O mascaramento antes é menor do que o depois
18Mascaramento Temporal e Espectral
19Processo de Compressão MP3
20Análise de banco de filtros
- Objetivo
- transformar o sinal para o domínio da freqüência
para evidenciar as redundâncias - Composto por 2 fases
- Filtragem em sub-bandas
- Transformada Discreta Modificada do Cosseno
(MDCT)?
21Filtragem de sub-banda
- Supostamente baseado no conceito de banda-critica
- regiões da membrana basilar que estabelecem
limites na percepção de freqüências - Porém
- 32 subbandas de mesma largura
- Sem justificativa psicoacústica
- 36 amostras em cada sub-banda
22Filtragem de sub-banda
23Transforma Discreta Modificada do Cosseno
- As 36 amostras de cada banda são transformadas do
domínio do tempo para o domínio da freqüência? - Esta transformada, agrupa nos primeiros elementos
muita informação e depois vão ficando com valores
pequenos... - Segundo o bitrate escolhido a codificação, as
informações vão sendo descartadas pela ordem de
relevância
24Processo de Compressão MP3
25Quantização e Codificação
- Quantização
- As informações irrelevantes (detectadas na fase
de modelagem perceptual) são efetivamente
retiradas - O número de bits para cada banda é determinado
- Codificação (joint stereo)
- Dissociação inter-canais (caso estéreo)?
- Os Canais E e D são transformados em média
(ED)/2 e lado (E-D)/2?, no domínio da frequência - Média lado E
- Média lado D
- Codificação de Huffmann
26Codificação de Huffman
- Mensagem
- aaaaaabbbcdee
- 104 bits (ASCII)?
- Mensagem comprimida
- 00000010101011101111110110
- 26 bits. TC 75
27Codificação de Huffman
- É preciso conhecer a tabela (codebook) para
decodificar - Os decocers MP3 já tem um codebook prédefinido
28Processo de Compressão MP3
29Encoding
- http//upload.wikimedia.org/wikipedia/commons/0/01
/Mp3filestructure.svg - http//www.mp3-tech.org/programmer/frame_header.ht
ml
30Metadados ID3
- Padrão não prevê metadados
- Solução Usar 128 bytes antes do primeiro frame
(v1.0)?
31AAC (Advanced Audio Coding)
- Evolução do mp3
- Fim da retro-compatibilidade com Layer I e II
- Codificação para até 48 canais
- De 576 para 1024 amostras por canal por frame
- De 36 para 48 sub-bandas
- Padrão para iPhone, iPod, iPad, Nintendo DSi,
iTunes, DivX Plus Web Player and PlayStation 3 - Uso de codebooks
- Tem um dicionário mais amplo, sequencias muito
mais longas de eventos que podem uma subbanda,
várias, etc. - Dissociação inter-frames
- Predição
- Surgimento dos modos
32AAC curiosidade
- Diversos modos com complexidade variável
- MPEG-2 AAC LC / Low Complexity
- MPEG-2 AAC Main
- MPEG-2 AAC SSR / Scalable Sampling Rate
- MPEG-4 AAC LC / Low Complexity
- MPEG-4 AAC Main
- MPEG-4 AAC SSR / Scalable Sampling Rate
- MPEG-4 AAC LTP / Long Term Prediction
- MPEG-4 AAC HE / High Efficiency
- MPEG-4 AAC LD / Low Delay
33Compressão sem perdas
34Compressão sem perdas
- Os compressores sem perdas, em geral possuem os
seguintes passos - Exemplo FLAC
35Blocking
- Separação do conteúdo em partes contíguas
- Tamanho pode variar de 16 a 64k amostras
- valor fixo dependente da frequencia de amostragem
e número de canais - Blocos possuem Sub-bloco
- Informações sobre um canal específico
- Blocos são codificados em Frames
- Cabeçalho
- taxa de amostragem, resolução, CRC do frame etc.
- Os frames são independente entre si.
- Sub-frame contém o dado codificado e um header
que indica a predição usada na compressão
36Dissociação inter-canais
- Remoção redundância de informação causada pela
correlação entre os canais - Executa transformações e usa a melhor delas.
- Canais codificados independentemente
- Média-Lado (mid-side) Os Canais são
transformados em média (média dos 2 canais) e
lado (canal esquerdo menos direito)? - Esquerda-Lado/Direita-Lado Codifica um canal
(esquerda ou direita) e a diferença entre este e
o canal não codificado. Geralmente, os melhores
resultados
37Predição
- Função matemática para tentar descrever o sinal
- 4 funções existentes
- Zero prediz sempre zero. Resíduo Entrada
- Constante Usado quando todas as amostras de uma
canal possuem o mesmo valor, e.g., valor médio. - Preditor Linear Fixo função linear com
coeficientes fixos que prediz no máximo 4
amostras subseqüentes - Predição FIR Linear filtro de até 32 estágios.
- Acha a solução para o sistema de 32 equações 32
variáveis - Algoritmo O(n2)?
38Codificação Residual
- Codificação da diferença (resíduo) entre o que
foi predito e a entrada - Utiliza o código Rice para codificar os resíduos
de predição (passo anterior)? - Dados um número N (de k bits) a ser codificado e
um número M (potencia de 2, numero mágico) que
divide N, a codificação Rice (R) é representada
por - A parte inteira é o número de uns e zero é
separado e o resto é binário - ltUnário(N div M)gtltBinário(N mod M)gt
- Ex. N23 (10111) , m16 ? R 10111
39Codificação Residual
- Por que Rice?
- É ótimo para distribuições geométricas
- Huffman também é ótimo nessa distribuição, mas
difícil de decodificar (encontrar onde começa e
termina cada código)? - Para escolher M, FLAC utiliza 2 métodos
- Método 1 Baseando-se na variância do sinal
residual. O bloco inteiro é codificado com esse
M. - Método 2 Um bloco é dividido em várias partes de
tamanhos distintos. M é escolhido baseado na
média do resíduo daquela parte específica
40fim