Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato &...

25
Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo

Transcript of Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato &...

Page 1: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 1

Mp3 Player

Trabalho Final da Cadeira de Sistemas Embarcados

Alex Panato & Rodrigo Cardozo

Page 2: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 2

Finalidade do MP3 Player

Transforma um arquivo de som em formato MP3 para o formato PCM.

PCM é o sistema usado para reprodução do som. O formato MP3 compacta os dados, garantindo uma redução na

memória necessária para armazenamento dos arquivos. Produzir, no processo, as menores perdas possíveis. Baseado no modelo psicoacústico humano para produzir uma

compressão de dados com mínimas perdas.

Page 3: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 3

Formato PCM

Amostra valores do sinal sonoros e os quantiza estes valores com um número fixo de bits por cada amostra.

Necessidade de freqüência de amostragem duas vezes superior à de transmissão do sinal.

Formato dos dados:0010 0000 1100 0011 1010 Uma gravação de 16 bits,

com taxa de amostragem de 48 kHz em stereo consome 192kbytes por segundo de som.

Page 4: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 4

Formato PCM

Problemas com PCM: Muitos dados são necessários para codificar um

arquivo. Ex: Uma gravação de 16 bits, com taxa de

amostragem de 48 kHz em stereo consome 192kbytes por segundo de som.

Uma codificação MP3 pode transformá-lo em até 4kbytes por segundo.

Page 5: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 5

O que é?

O MP3 é o layer três na codificação de som do padrão MPEG, que prevê codificação para vídeo.

Este trabalho trata do padrão MPEG1, mas já existem outros.

Em vídeo, estes novos padrões são usados. Em som, a maioria trabalha com MPEG1.

Page 6: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 6

Características Principais

Layer: MPEG1 layer 3 Taxa de Transferência: 32, 40, 48, 56, 64, 80, 96, 112, 128,

160, 192, 224, 256 e 320 kbps. Taxa de Amostragem: 32, 48 e 44.1 kHz. Modos: Stereo, Joint Stereo, Dual Channel, Single Channel.

Page 7: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 7

Formato do MP3

Duração do frame: Varia com a freqüência de amostragem usada. Para 44.1Khz é de ~26ms.

Taxa de Transferência: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 e 320 kbps.

Taxa de Amostragem: 32, 48 e 44.1 kHz. Modos: Stereo, Joint Stereo, Dual Channel, Single Channel. Frame:

Page 8: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 8

Formato do MP3

Partes da codificação MP3:

Sincronização, Decodificação e Huffman.Dequantização.Transformada Inversa e Filtros.

Page 9: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 9

Formato do MP3

Decodificação do Frame Frame composto por: Header Side Information Main Data

Sincronização feita com trilho de 12 1s.

Side Information contém informações para decodificação.

Page 10: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 10

Decodificação do Frame

Um método para cada campo do frame Header: informações gerais fixas Side: informações para decodificação Main Data: Scale factors e dados codificados Huffman

Page 11: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 11

Decodificação do Frame

Um método para sincronismo

Leitura de dados em 1 byte Mascaramento e

concatenação de variáveis Armazenamento em

variáveis públicas Necessário o cálculo de

variáveis auxiliaresFormato do Header

Page 12: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 12

Huffman

Tabela para busca de valores Altos valores de energia contidos nas baixas freq Baixos valores de energia contidos nas altas freq Isso permite compactação dos dados

Page 13: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 13

Le_byte

Sync

Demux_topHeader

Codificação do bloco

Side_mono

Side_stereo

Main_data

Calc

Huffman

Page 14: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 14

Dequantizador

Restabelecer os valores originais de atribuição energética de cada faixa de freqüências.

Equações:

w])sfb][windos[gr][ch][(scalefac_ultipleierscalefac_m2

]b][windowngr][ch][sf)subblock[8210in[gr][ch](global_ga.2524/3)i

abs(S)i

sign(isi

xr

])[]][[]][][[_(_2

)210]][[_(25.23/4)()(sfbpretabchgrpreflagsfbchgrlscalefacrmultipleiescalefac

chgrgainglobal

iSabsiissignixr

(global_gain 210 8 subblock)-12 ( _ _ )2 i 2

12 log xr 12 log abs(is ))+3i i

(sign(is ) ) ( scalefac multiplier scalefac s

2 212 log ( ( ) ) 16 log ( ( )) 3 _ 210) 12 _ ( _ )i i isign is xr abs is global gain scalefac mul scalefac l preflag pretab

Page 15: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 15

Filtros (Codificação)

Page 16: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 16

Filtros (Decodificação)

Page 17: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 17

Filtro Alias Reconstruction

Remove efeito do overllaping das 32 bandas;

8 alias butterflies feitas antes da IMDCT;

Coeficientes csi e cai tabulados na ISO 11172-3;

Page 18: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 18

IMDCT (window)

a) Normal window (block_type=0)b) Start window (block_type=1)c) Short window (block_type=2)d) Stop window (block_type=3)

Page 19: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 19

IMDCT

Transforma as 18 linhas de freqüência de cada subbanda em 36 sinais;

No caso de janela curta, é feito o overadd de três janelas subseqüentes, gerando os 36 sinais.

Page 20: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 20

IMDCT (overlap add)

Cada 18 amostras finais de cada subbanda é somada com as 18 amostras iniciais da próxima subbanda;

Obtem-se 32 novas subbandas de 18 amostras no tempo.

Page 21: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 21

Filtro polifásico

Para cada amostra no tempo de cada uma das 32 subbandas é gerado 32 amostras de aúdio consecutivas;

Page 22: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 22

Filtro Polifásico

Page 23: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 23

Codificação dos filtros

Filtro_control

Filtro AliasIMDCT

IMDCT_win

IMDCT_cos

Filtro Polifásico

Page 24: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 24

Blocos do Decodificador MP3

Dequantizador

Sincronizador/Decodificador

FiltrosPCM

8 bits

Dados Desquantizados

8 bits

Dados Quantizados

chamada de variáveis

MP3

8 bits

chamada de variáveis

Variáveis de Sistema

Controle de Chamadas Externo

Page 25: Sistemas Embarcados 1 Mp3 Player Trabalho Final da Cadeira de Sistemas Embarcados Alex Panato & Rodrigo Cardozo.

Sistemas Embarcados 25

Trabalhos Futuros

Tomada de dados do Main_data; Huffman Table; Instrumentação do código; Geração de um código portável para o FemtoJava; Comparação de desempenho NOC x BUS.