15
1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla .... Daniel Feber

1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

Embed Size (px)

Citation preview

Page 1: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

1

MP3

Paulo Centoducatte

Guido Araújo

Rodolfo Azevedo

Rafael Espíndula

Valdiney Pimenta

Blablabla ....

Daniel Feber

Page 2: 1 M P 3 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

Page 3: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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

Page 4: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

4

Decodificador MP3

Page 5: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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

Page 6: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

6

Decodificador MP3

• Reordering– MDCT altera a ordem

• Stereo Decoding– single channel– dual channel– Middle/Side (MS) stereo– Intensity stereo

• Alias Reduction– filtro butterfly

Page 7: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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

Page 8: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

8

Decodificador MP3 - Status

Page 9: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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

Page 10: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

10

Verificação do MP3

Page 11: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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

Page 12: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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)

Page 13: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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)

Page 14: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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

Page 15: 1 M P 3 Paulo Centoducatte Guido Araújo Rodolfo Azevedo Rafael Espíndula Valdiney Pimenta Blablabla.... Daniel Feber

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