1
MP3
Paulo Centoducatte
Guido Araújo
Rodolfo Azevedo
Rafael Espíndula
Valdiney Pimenta
Blablabla ....
Daniel Feber
2
Decodificador MP3 - Visão Geral
• MP3 - padrão MPEG-1 layer III– Layer III
• melhor qualidade para um mesmo bitrate• maior complexidade
• Compressão MP3– modelo acústico que remove informações
irrelevantes– sinal comprimido usando-se o método de
Huffman
3
• Frame– contém informação capaz de gerar 1152
samples
• Header: palavra de sincronização, no layer, bitrate, freqüência de amostragem, stereo, copyright
• CRC: opcional (comparado com o CRC do frame)• Side Information: tabela de huffman, valores de escala, ...• Main Data: scalefactors e código de huffman (tam. variável)• Ancillary Data: informações do usuário (não são
processados pelo decodificador)
Formato do bitstream
Header
(32 bits)
CRC
(16 bits)
Side Information
(136 bits, um canal ou 256 bits, dois canais)
Main Data Ancillary Data
4
Decodificador MP3
5
Decodificador MP3
• Frame Synchronization– 12 bits uns consecutivos - marca inicio de
um frame
• Decodificador de Huffman– 32 tabelas predefinidas – campo Side Information: qual tabela deve
ser usada
• Descaling – símbolos (huffman decodificado)– scalefactors
Freqüências originais
6
Decodificador MP3
• Reordering– MDCT altera a ordem
• Stereo Decoding– single channel– dual channel– Middle/Side (MS) stereo– Intensity stereo
• Alias Reduction– filtro butterfly
7
Decodificador MP3
• Inverse modified DCT (IMDCT)– 36 valores de saída a partir de 18 de
entrada– saída no domínio do tempo
• Frequency Inversion– subsamples ímpares em todas as sub-
bandas ímpares são negadas
• Synthesis polyphase filter bank– 32 samples PCM– MDCT e Window
8
Decodificador MP3 - Status
9
Verificação do MP3
• Verificação “funcional”– Arquivos MP3 reais
• comparação usando o método RMS (Root Means Square) conforme indicado na Padronização ISO
Modelo de ReferênciaModificado (C + SystemC)
Modelo de ReferênciaOriginal (C)
Aprovadoou Erro
10
Verificação do MP3
11
Verificação do MP3
• Verificação voltada para detalhes da descrição do hardware– um módulo aprovado na verificação
funcional e reprovado nesta verificação• problemas com o sinal de Reset
– uso de estímulos randômicos
12
Erros e “Diferenças” Encontrados
• DCT (100%)– diferença
• overflow
• Window (100%)– Erro
• Não decodificava arquivos monofônicos• Reset após o primeiro fluxo de dados não reiniciava
uma das memórias
• IMDCT (100%)– Diferença
• para alguns estímulos randômicos (aparentemente não ocorrem em arquivos mp3 reais)
13
Erros e “Diferenças” Encontrados
• ImdctWindow (80% concluído)– ainda não foram detectados nem erros e
nem diferenças
• CRC (100%)– sem erros ou diferenças detectados
• Huffman (80%)– Erro
• sinal start (síncrono) não inicializava corretamente o módulo (não estava na lista de sensibilidade)
14
Outras Informações
• Rafael (FAPESP)– CRC, IMDCT, ImdctWindow, DCT e Window
• 4193 linhas de código• +/- 20 horas/semana• +/- 1 ano • 1000 horas
• Daniel (BrazilIP)– Huffman_1
91 linhas de código (tabelas +/- 90981 bits)
– Huffman_2 238 linhas de código (tabelas +/- 1054 bits)
• +/- 3 meses; +/- 20 horas semana; 340 horas
15
Outras Informações
• Valdiney (FAPESP)– Verificação de todos os módulos
• 4000 linhas de código• +/- 20 horas/semana• 6 meses• +/- 520 horas