• Nenhum resultado encontrado

Estudos de caso sobre processamento de ´audio em tempo real em plataformas computacionais de alta disponibilidade e baixo custo

N/A
N/A
Protected

Academic year: 2022

Share "Estudos de caso sobre processamento de ´audio em tempo real em plataformas computacionais de alta disponibilidade e baixo custo"

Copied!
51
0
0

Texto

(1)

Estudos de caso sobre processamento de ´ audio em tempo real em plataformas

computacionais de alta disponibilidade e baixo custo

Andr´e J. Bianchi

08/05/2013

(2)

Processamento de ´audio em tempo real Algoritmos

Arduino GPU Android

(3)

Processamento de ´audio em tempo real

(4)

Exemplo de processamento digital de ´ audio

FUNDAMENTALS OF DIGITAL SIGNAL PROCESSING 21

DAFX

ADC DAC

x(n) y(n) y(t)

x(t) fs = 1__

T fs = 1__

T

0.5

0 500

−0.05 0 0.05

x(t)

t in μs → −0.050 10 20 0

0.05

n → x(n)

0 10 20

−0.05 0 0.05

n → y(n)

0 500

−0.05 0 0.05

t in μs → y(t) T

Figure 1.11 Sampling and quantizing by ADC, digital audio effects and reconstruction by DAC.

fS=1/T (sampling rate). The sampling frequency reflects the number of samples per second in Hertz (Hz). According to the sampling theorem, it has to be chosen as twice the highest frequency fmax(signal bandwidth) contained in the analog signal, namelyfS>2·fmax. If we are forced to use a fixed sampling frequencyfS, we have to make sure that our input signal to be sampled has a bandwidth according tofmax=fS/2. If not, we have to reject higher frequencies by filtering with a lowpass filter which only passes all frequencies up tofmax. The digital signal is then passed to a DAFX box (digital system), which in this example performs a simple multiplication of each sample by 0.5 to deliver the output signaly(n)=0.5·x(n). This signaly(n)is then forwarded to a digital-to-analog converter DAC, which reconstructs the analog signaly(t ). The output signal y(t )has half the amplitude of the input signalx(t ).

Figure 1.12 shows some digital signals to demonstrate different graphical representations (see M-file 1.1). The upper part shows 8000 samples, the middle part the first 1000 samples and the lower part shows the first 100 samples out of a digital audio signal. Only if the number of samples inside a figure is sufficiently low, will the line with dot graphical representation be used for a digital signal.

M-file 1.1(figure1_03.m)

% Author: U. Z¨olzer

[x,FS,NBITS]=wavread(’ton2.wav’);

figure(1) subplot(3,1,1);

plot(0:7999,x(1:8000));ylabel(’x(n)’);

subplot(3,1,2);

plot(0:999,x(1:1000));ylabel(’x(n)’);

subplot(3,1,3);

stem(0:99,x(1:100),’.’);ylabel(’x(n)’);

xlabel(’n \rightarrow’);

(5)

Ciclo de processamento

I Entrada:

I (Convers˜ao Anal´ogico-Digital).

I Frequˆencia de amostragem e amplitude de espectro.

I Quantiza¸ao e profundidade de bits.

I Sinal digital: x:N→ {0,1}b1.

I Processamento.

I Manipula¸ao do sinal: an´alise, s´ıntese, recupera¸ao de informa¸ao, efeitos.

I Processamento em blocos, sobreposi¸ao.

I Representa¸oes: tempo e frequˆencia.

I Sa´ıda.

I Sinal digital: y:N→ {0,1}b2.

I Taxa de gera¸c˜ao de amostras e profundidade de bits.

I (Convers˜ao Digital-Anal´ogico).

(6)

Processamento em tempo real

Processamento em blocos:

I Per´ıodo do bloco: N amostras.

I Frequˆencia de amostragem: R Hz.

I Atraso m´ınimo: NR s.

I Fator de sobreposi¸c˜ao: M.

I Cada ciclo avan¸ca MN amostras ou MRN s.

Restri¸c˜oes de tempo real:

I O ciclo tem que ser executado periodicamente.

I O per´ıodo do ciclo tem que ser menor que tempo de computa¸c˜ao tem que ser menor que o per´ıodo do ciclo de processamento.

(7)

Contexto da pesquisa

Perguntas sobre processamento em tempo real:

I Quais plataformas podem ser utilizadas? Quais as restri¸c˜oes e possibilidades que cada uma delas possui?

I Como medir o desempenho de uma ferramenta para o processamento de ´audio em tempo real?

Proposta:

I Escolher plataformas de baixo custo e alta disponibilidade.

I Escolher uma s´erie de algoritmos de processamento de ´audio frequentemente utilizados.

I Investigar a implementa¸c˜ao e o desempenho dos algoritmos nas plataformas.

(8)

Escolha das Plataformas de processamento

Crit´erios de interesse para a ´area de computa¸c˜ao musical:

I Sensores.

I Mobilidade.

I Poder de processamento.

I Licen¸cas de uso.

I Express˜ao computacional.

Plataformas escolhidas:

I Arduino (microcontrolador).

I GPU (processamento paralelo).

I Android (sistemas m´oveis).

(9)

Algoritmos

(10)

Algoritmos representativos

Alguns algoritmos frequentemente utilizados em rotinas de manipula¸c˜ao de ´audio:

I Convolu¸c˜ao no dom´ınio do tempo.

I S´ıntese aditiva.

I FFT.

(11)

Convolu¸c˜ ao no dom´ınio no tempo (filtros FIR)

y[n] = 0

para k=0 at´e N, fa¸ca:

y[n] += b[k] * x[n-k]

(12)

S´ıntese aditiva

y[n] = 0

para k=1 at´e K, fa¸ca:

y[n] = r(k,n) * sin(f(k,n))

(13)

Transformada R´ apida de Fourier (FFT)

(14)

A FFT ´ e O (N log(N ))

Transformada Discreta de Fourier:

X(k) =

N−1

X

n=0

x(n)e−2πiN nk

=

N 2−1

X

m=0

x(2m)e−2πiN (2m)k

| {z }

Ek

+e−2πiN k

N 2−1

X

m=0

x(2m+ 1)e−2πiN (2m)k

| {z }

Ok

.

Transformada R´apida de Fourier:

X(k) =

(Ek +e−2πiN kOk sek< N2 Ek−N

2 +e−2πiN (k−N2)Ok−N

2 sek≥ N2

(15)

Perguntas sobre os algoritmos

I Quais parˆametros de cada algoritmo influenciam na complexidade?

I Qual ´e o tempo gasto para computar uma certa instˆancia de um algoritmo?

I Qual ´e a maior instˆancia comput´avel em tempo real?

I Quais as possibilidades e restri¸c˜oes de implementa¸c˜ao em cada plataforma?

(16)

Arduino

(17)

Arduino

(18)

O projeto Arduino

Caracter´ısticas principais:

I Estrutura minimal para interface com um microcontrolador.

I Baixo custo: 20-50 USD.

I Baixo consumo de energia.

I Licenciamento livre.

Microcontrolador Atmel AVR ATmega328P:

I CPU: unidade aritm´etica e registradores (16 MHz - 8 bits).

I Mem´orias: Flash (32 KB), SRAM (2 KB) e EEPROM (1 KB).

I Portas digitais de entrada (com ADC) e sa´ıda (com PWM).

(19)

Entrada de ´ audio: per´ıodo de amostragem

pr´e-escalonador Tconv (µs) T˜conv (µs) ˜fconv (≈KHz)

2 1,81 12,61 79,30

4 3,62 16,06 62,26

8 7,25 19,76 50,60

16 14,50 20,52 48,73

32 29,00 34,80 28,73

64 58,00 67,89 14,72

128 116,00 114,85 8,70

I Resolu¸c˜ao da fun¸c˜aomicros(): 4˜µs.

I R = 44.100˜Hz ⇒ 1/R≈22,67 µs.

I R = 31.250˜Hz ⇒ 1/R= 32,00 µs.

(20)

Entrada de ´ audio: ADC

Conversor anal´ogico-digital:

I Resolu¸c˜ao: 8 ou 10 bits.

I Tempo de convers˜ao: 13 a 260µs.

I Convers˜ao manual ou autom´atica.

Parˆametros escolhidos:

I Resolu¸c˜ao de 8 bits.

I Pr´e-escalonador igual a 8 (at´e 50 KHz).

(21)

Sa´ıda de ´ audio: Pulse Width Modulation (PWM)

0 1

0 1

(22)

Frequˆ encias de opera¸c˜ ao de um contador de 8 bits

pr´e-escalonador fincr (KHz) foverflow (Hz)

1 16.000 62.500

8 2.000 7.812

32 500 1.953

64 250 976

128 125 488

256 62,5 244

1024 15,625 61

(23)

Sa´ıda de ´ audio

PWM no ATmega328P:

I Modos de opera¸c˜ao: Faste Phase Correct.

I Pr´e-escalonador.

I 2 contadores de 8 bits e 1 de 16 bits.

I Interrup¸c˜ao poroverflow.

Parˆametros escolhidos:

I Fast PWM.

I Contador de 8 bits.

I Pr´e-escalonador igual a 1.

I Frequˆencia deoverflow: 16˜MHz / 1 / 28 = 62.500˜Hz.

I Taxa de gera¸c˜ao de amostras: 31.250˜Hz.

(24)

Convolu¸c˜ ao no Arduino (usando opera¸c˜ oes sobre bits)

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Synth time (ms)

Order of the filter

Time-domain convolution on Arduino (mult/div)

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Synth time (ms)

Order of the filter

Time-domain convolution on Arduino (variable pad)

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Synth time (ms)

Order of the filter

Time-domain convolution on Arduino (constant pad) block size 32

rt period 32 block size 64 rt period 64 block size 128 rt period 128 block size 256 rt period 256

(25)

S´ıntese aditiva no Arduino: quantidade e tipos de opera¸c˜ ao utilizadas

0 1 2 3 4 5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Synth time (ms)

Number of oscilators

Operations in additive synth (R=31250/N=128)

mult/div

div var pad

rt period

(26)

S´ıntese aditiva no Arduino: uso de la¸cos

0 1 2 3 4 5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Synth time (ms)

Number of oscilators Additive Synthesis on Arduino (loop)

0 1 2 3 4 5

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Synth time (ms)

Number of oscilators Additive Synthesis on Arduino (inline)

block size 32 rt period 32 block size 64 rt period 64 block size 128 rt period 128

(27)

FFT no Arduino (a 1953 Hz)

0 50 100 150 200 250 300

... 64 128 256 512

Analysis time (ms)

Block size

FFT on Arduino (at 1953 Hz)

fft sin()

fft table rt period

(28)

Algumas conclus˜ oes sobre processamento de ´ audio em tempo real em Arduino

Detalhes de implementa¸c˜ao que fazem a diferen¸ca:

I Tipos utilizados (byte, unsigned long, int, float, etc) s˜ao fundamentais.

I Multiplica¸c˜ao/divis˜ao (de inteiros) demoram pelo menos o dobro que opera¸c˜oes sobre inteiros.

I A quantidade de la¸cos e condicionais faz diferen¸ca.

I Consulta a vari´aveis e vetores tamb´em faz diferen¸ca.

(29)

GPU

(30)

GPU: Graphics Processing Unit

(31)

Diferen¸cas gerais em rela¸c˜ ao ` a CPU

(32)

An´ alise de desempenho na GPU

Valores importantes:

I Tempo de transferˆencia de mem´oria (ida e volta).

I Tempo de execu¸c˜ao do programa.

I Tempo total (soma dos tempos acima).

Implementa¸c˜oes paralelas:

I FFT (da API).

I Phase Vocoder (FFT + S´ıntese Aditiva).

(33)

Placas utilizadas para testes

GF100GL GTX275 GTX400

CUDA cores 256 240 448

Mem´oria RAM (MB) 2000 896 1280

Banda de mem´oria (GB/s) 89.6 127.0 133.9

(34)

FFT na GPU

0 0.5 1 1.5 2 2.5 3

... 214 215 216 217

Duration (s)

Block size FFT roundtrip time - GTX275

0 0.5 1 1.5 2 2.5 3

... 214 215 216 217

Duration (s)

Block size FFT roundtrip time - GTX470

0 0.5 1 1.5 2 2.5 3

... 214 215 216 217

Duration (s)

Block size FFT roundtrip time - GF100GL

host to device kernel time device to host roundtrip rt period

(35)

FFT na GPU (zoom)

0 0.1 0.2 0.3 0.4 0.5 0.6

... 214 215 216 217

Duration (s)

Block size FFT roundtrip time - GTX275

0 0.1 0.2 0.3 0.4 0.5 0.6

... 214 215 216 217

Duration (s)

Block size FFT roundtrip time - GTX470

0 0.1 0.2 0.3 0.4 0.5 0.6

... 214 215 216 217

Duration (s)

Block size FFT roundtrip time - GF100GL

host to device kernel time device to host roundtrip rt period

(36)

Mais um algoritmo: Phase Vocoder

220 TIME-FREQUENCY PROCESSING

Transformation

Time Synthesis

n f

n

n

n1n2

Frequency

Analysis

Short-time Spectra

Figure 7.1 Digital audio effects based on analysis, transformation and synthesis (resynthesis).

Magnitude Phase Short-time Fourier transform

FFT

Windowing Time-domain

signal

Analysis StageSynthesis Stage

IFFT

Magnitude and Phase calculation

Overlap-add

Time-domain signal Time-frequency

Processing

Inverse short-time Fourier transform

Figure 7.2 Time-frequency processing based on the phase vocoder: analysis, transformation and synthesis.

1. An´alise:

I Janela deslizante de tamanho finito.

I FFTs consecutivas do sinalx(n).

I Espectro variante no tempo: X(n,k).

2. Transforma¸c˜ao: modifica¸c˜oes em |X(n,k)|e ϕ(X(n,k)).

3. S´ıntese: S´ıntese aditiva.

(37)

S´ıntese aditiva do Phase Vocoder na GPU

5 10 15 20 25 30

... 214 215 216 217

Duration (s)

Block size PV synth kernel time - GTX275

5 10 15 20 25 30

... 214 215 216 217

Duration (s)

Block size PV synth kernel time - GTX470

5 10 15 20 25 30

... 214 215 216 217

Duration (s)

Block size PV synth kernel time - GF100GL

1. cubic interp 2. linear interp 3. truncated 4. builtin sine 5. texture interp no calculation rt period

(38)

S´ıntese aditiva do Phase Vocoder na GPU (zoom)

1 2 3

214 215 216

Duration (s)

Block size PV synth kernel time - GTX275

1 2 3

214 215 216

Duration (s)

Block size PV synth kernel time - GTX470

1 2 3

214 215 216

Duration (s)

Block size PV synth kernel time - GF100GL

1. cubic interp 2. linear interp 3. truncated 4. builtin sine 5. texture interp no calculation rt period

(39)

Algumas conclus˜ oes sobre processamento de ´ audio em tempo real em GPU

I Tempo de transferˆencia de mem´oria ´e compar´avel ao da FFT.

I Diferen¸cas na implementa¸c˜ao fazem diferen¸ca:

I Consulta a tabela (truncada, ou com interpola¸ao linear ou ubica).

I Consulta a tabela em mem´oria de textura.

I Fun¸ao seno da API.

(40)

Android

(41)

Sistema operacional Android

(42)

O projeto Android

I Kernel do Linux.

I Drivers para muitos dispositivos.

I Aplicativos e API em Java (m´aquina virtual pr´opria).

I Conectividade e sensores.

I Licenciamento livre (com exce¸c˜ao de drivers).

(43)

Processamento em tempo real em Android

I Entrada de ´audio:

I Classe: AudioRecord.

I Microfones, ´audio da chamada (garante 1 canal, 16 bits).

I Processamento:

I etodo: scheduleAtFixedRate.

I Agendamento.

I Sa´ıda de ´audio:

I Classe: AudioTrack.

I 8 e 16 bits.

(44)

Aplica¸c˜ ao para Android e testes

Cen´ario dos testes:

I Chamado por email.

I Instru¸c˜oes para execu¸c˜ao do teste.

I Envio dos resultados por email.

I 11 aparelhos testados.

I Menor n´umero de ciclos de teste para blocos grandes.

(45)

Android: Loopback em diferentes aparelhos

0 2 4 6 8 10 12

64 128 256 512

Duration (ms)

Block size

Callback times for loopback on each device (1/2)

0 20 40 60 80 100 120 140 160

1024 2048 4096 8192

Block size

Callback times for loopback on each device (2/2) rt period

a853 v7 a853 v8 gti5500b gti9000 gti9100

gtp1000l mz604 r800i tf101 xoomx10i

(46)

Convolu¸c˜ ao no Android: Filtro IIR em diferentes aparelhos

0 2 4 6 8 10 12

64 128 256 512

Duration (ms)

Block size

Callback times for reverb on each device (1/2)

0 20 40 60 80 100 120 140 160

1024 2048 4096 8192

Block size

Callback times for reverb on each device (2/2) rt period

a853 v7 a853 v8 gti5500b gti9000 gti9100

gtp1000l mz604 r800i tf101 xoomx10i

(47)

Convolu¸c˜ ao no Android: FFT em diferentes aparelhos

0 2 4 6 8 10 12

64 128 256 512

Duration (ms)

Block size

Callback times for FFT on each device (1/2)

0 20 40 60 80 100 120 140 160

1024 2048 4096 8192

Block size

Callback times for FFT on each device (2/2) rt period

a853 v7 a853 v8 gti5500b gti9000 gti9100

gtp1000l mz604 r800i tf101 xoomx10i

(48)

Android: ordem m´ axima de um filtro

0 50 100 150 200 250 300 350 400

64 128 256 512

Maximum # of FIR coefficients

Block size Maximum filter size (1/2)

0 50 100 150 200 250 300 350 400

1024 2048 4096 8192

Block size Maximum filter size (2/2) a853 v7

a853 v8 gti5500b gti9000 gti9100 gtp1000l

mz604 r800i tf101 x10i xoom

(49)

Algumas conclus˜ oes sobre processamento de ´ audio em tempo real em Android

I O modelo de aparelho faz diferen¸ca significativa no desempenho.

I O sistema desenvolvido pode ser usado para avalia¸c˜ao do desempenho (em tempo real ou n˜ao).

(50)

Fim!

Obrigado pela aten¸c˜ao!

I Contato: ajb@ime.usp.br

I Grupo de Computa¸c˜ao Musical do IME/USP:

http://compmus.ime.usp.br/

I Esta apresenta¸c˜ao: http://www.ime.usp.br/~ajb/

(51)

Cr´ edito aos autores das imagens

I Convolu¸ao no dom´ınio do tempo: Blanchardj -

http://en.wikipedia.org/wiki/File:FIR_Filter.svg I S´ıntese aditiva: Chrisjohnson -

http://en.wikipedia.org/wiki/File:Additive_synthesis.svg I FFT: Virens -

http://en.wikipedia.org/wiki/File:DIT-FFT-butterfly.png I Arduino: dom´ınio p´ublico.

I PWM: CyrilB -http://en.wikipedia.org/wiki/File:Pwm.svg I NVIDIA GPU:http://www.nvidia.com/

I Camadas do sistema operacional Android: Smieth -http:

//en.wikipedia.org/wiki/File:Android-System-Architecture.svg I Software de an´alise de desempenho no Android: dom´ınio p´ublico.

Referências

Documentos relacionados

Como foi visto, a primeira etapa do processo decisório de consumo é o reconhecimento da necessidade, com isso, observou-se que, nessa primeira etapa, os consumidores buscam no

Oncag, Tuncer &amp; Tosun (2005) Coca-Cola ® Sprite ® Saliva artificial Compósito não é referido no estudo 3 meses 3 vezes por dia durante 5 minutos Avaliar o efeito de

Os serviços prestados no presente contrato ficam isentos do pagamento da Cota Mínima de Faturamento estabelecida para os mesmos, exceto com relação aos serviços

Durante a pandêmia poderá prorrogar o período estabelecido de 14 dias para fazer os procedimentos de registro de mudança.. As consultas feitas diretamente no guichê do serviço

GUILHERME TORRES AFFONSO LUCAS ALMEIDA GONÇALVES MATEUS PEREIRA DOS SANTOS RICARDO LAURINDO PEREIRA ALEXANDRE DE SOUZA FERREIRA RICARDO SILVA PEREIRA DA CRUZ FELIPE GARCIA DOS

a) protocolo de execução para ambos os sexos: o candidato deverá percorrer, em uma pista de atletismo ou em área demarcada, a distância de 2.400m no menor tempo possível,

Duguet (1991: 88) sugere que talvez possamos, no caso específico de Averty, contrapor a ideia cinematográfica de um hors-champ (fora de campo) pela ideia mais apropriada de

Este dado diz respeito ao número total de contentores do sistema de resíduos urbanos indiferenciados, não sendo considerados os contentores de recolha