• Nenhum resultado encontrado

Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo

N/A
N/A
Protected

Academic year: 2021

Share "Processamento de áudio em tempo real em dispositivos computacionais de alta disponibilidade e baixo custo"

Copied!
64
0
0

Texto

(1)

Processamento de ´

audio em tempo real em

dispositivos computacionais de alta

disponibilidade e baixo custo

Andr´e J. Bianchi

(2)

Introdu¸c˜ao

Metodologia

Arduino

GPU

(3)
(4)

Contexto e motiva¸c˜

ao

Pesquisa em computa¸c˜ao musical:

I Recupera¸c˜ao de informa¸c˜oes.

I Composi¸c˜ao / improvisa¸c˜ao / acompanhamento.

I S´ıntese sonora.

I Auraliza¸c˜ao / espacializa¸c˜ao.

I Processamento de ´audio.

Contexto tecnol´ogico:

I Lei de Moore.

I Obsolescˆencia programada.

I Propaganda / Fetichiza¸c˜ao / consumismo.

(5)

Processamento de ´

audio digital

DSP

ADC x (n) y (n ) DAC y (t )

x (t )

(6)

Ciclo de processamento

I Entrada:

I Convers˜ao Anal´ogico-Digital.

I Frequˆencia de amostragem e amplitude de espectro. I Quantiza¸c˜ao e profundidade de bits.

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

I Processamento.

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

I Processamento em blocos, sobreposi¸c˜ao. I Representa¸c˜oes: tempo e frequˆencia.

I Sa´ıda.

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

I Taxa de gera¸c˜ao de amostras e profundidade de bits. I Convers˜ao Digital-Anal´ogico.

(7)

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

(8)

Proposta de pesquisa

Perguntas sobre processamento em tempo real:

I Quais modelos computacionais e dispositivos podem ser

utilizadas? Quais as restri¸c˜oes e possibilidades que cada um

possui?

I Como medir o desempenho de uma modelo ou dispositivo

para o processamento de ´audio em tempo real?

Proposta:

I Escolher dispositivos 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

(9)

Objetivo da pesquisa

Desenvolvimento de uma metodologia . . . . . . para an´alise de desempenho. . . . . . do processamento de ´audio . . . . . . em tempo real. . .

. . . em dispositivos computacionais. . . . . . de baixo custo. . .

(10)

Objetivo da pesquisa

Desenvolvimento de uma metodologia . . . . . . para an´alise de desempenho. . . . . . do processamento de ´audio . . . . . . em tempo real. . .

. . . em dispositivos computacionais. . . . . . de baixo custo. . .

(11)
(12)

Metodologia geral

Formata¸c˜ao do problema:

I Identifica¸c˜ao de modelos computacionais de interesse.

I Escolha de dispositivos.

I Escolha de algoritmos de processamento em tempo real.

I Estabelecimento de m´etricas e m´etodos para avalia¸c˜ao de

desempenho. Experimenta¸c˜ao:

I Desenvolvimento de testes.

I Implementa¸c˜ao.

I Execu¸c˜ao dos testes e obten¸c˜ao dos resultados.

(13)

Identifica¸c˜

ao de modelos computacionais de interesse

Crit´erios de interesse geral:

I Baixo custo.

I Alta disponibilidade.

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.

(14)

Modelos computacionais escolhidos

Microcontroladores:

I Baixo custo.

I Baixo consumo de energia.

Processadores paralelos:

I Alta capacidade computacional.

I Possibilidade de explora¸c˜ao do paralelismo.

Dispositivos m´oveis:

I Ubiquidade.

(15)

Dispositivos escolhidos

I Microcontrolador: Arduino com ATmega328P.

I Processador paralelo: placas GPU.

(16)

Algoritmos de processamento em tempo real

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

I FFT.

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

(17)

Transformada Discreta de Fourier (DFT)

Seja x ∈ CN um vetor (x0, x1, . . . , xN−1). A Transformada Discreta

de Fourier de x ´e o vetor X ∈ CN com componentes

Xk = N−1 X m=0 xme−2πikm/N, para 0 ≤ k ≤ N − 1. Propriedades: I Linearidade. I Invers´ıvel (IDFT).

(18)

Transformada R´

apida de Fourier (FFT)

I A implementa¸c˜ao ingˆenua da DFT ´e O(N log(N)).

I E poss´ıvel explorar a estrutura da DFT para acelerar a´

(19)

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πi N kOk se k < N 2 Ek−N 2 + e −2πi N (k− N 2)O k−N 2 se k ≥ N 2

(20)

Convolu¸c˜

ao circular

Sejam x, y ∈ CN. A convolu¸c˜ao circular de x e y ´e o vetor w ∈ CN

com componentes wr = N−1 X n=0 xky(r −k mod N),

para 0 ≤ r ≤ N − 1. A convolu¸c˜ao circular ´e denotada por

w = x ∗ y.

Teorema da convolu¸c˜ao: Se X, Y e W s˜ao as DFTs de x, y e w,

ent˜ao

(21)

Convolu¸c˜

ao no dom´ınio do tempo

y[n] = 0

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

(22)

S´ıntese aditiva

y (n) = K X k=1 rk(n) sin  2πfkn R  , n ≥ 0.

(23)

S´ıntese aditiva: implementa¸c˜

ao com consulta a tabela

Para frequˆencias fixas:

y (n) = K X

k=1

rk(n)s[fknS /R].

Para frequˆencias que variam com o tempo:

y (n) = K X k=1 rk(n)q(s, Ik(n)), onde: I Ik(n) ´e o ´ındice de consulta.

I q ´e uma fun¸c˜ao de consulta que incrementa Ik(n) de acordo

(24)

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

(25)
(26)
(27)

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).

(28)

Idiossincrasias do Arduino

I Entrada/sa´ıda de dados depende de ADC e DCA.

I Limita¸c˜ao de mem´oria.

(29)

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˜ao micros(): 4˜µs.

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

(30)

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.

(31)

Sa´ıda de ´

audio: Pulse Width Modulation (PWM)

0 1

0 1

(32)

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

(33)

Sa´ıda de ´

audio

PWM no ATmega328P:

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

I Pr´e-escalonador.

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

I Interrup¸c˜ao por overflow.

Parˆametros escolhidos:

I Fast PWM.

I Contador de 8 bits.

I Pr´e-escalonador igual a 1.

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

Algumas conclus˜

oes. . .

. . . sobre processamento de ´audio em tempo real em Arduino:

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.

(39)
(40)
(41)
(42)

Idiossincrasias da GPU

I Paralelismo.

(43)

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).

(44)

Placas utilizadas para testes

GF100GL GTX275 GTX400

CUDA cores 256 240 448

Mem´oria RAM (MB) 2000 896 1280

(45)

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

(46)

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

(47)

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 Stage Synthesis 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 sinal x (n). I Espectro variante no tempo: X (n, k).

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

(48)

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

(49)

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

(50)

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¸c˜ao linear ou c´ubica).

I Consulta a tabela em mem´oria de textura. I Fun¸c˜ao seno da API.

(51)
(52)
(53)

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.

(54)

Idiossincrasias do sistema Android

I Java (JNI incluso).

I API de alto n´ıvel para:

I acesso ao hardware de ´audio.

I agendamento de fun¸c˜oes de manipula¸c˜ao.

(55)

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 M´etodo: scheduleAtFixedRate. I Agendamento. I Sa´ıda de ´audio: I Classe: AudioTrack. I 8 e 16 bits.

(56)

Aplicativo 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

(57)

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 x10i xoom

(58)

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 x10i xoom

(59)

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 x10i xoom

(60)

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

(61)

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

(62)

Conclus˜

oes gerais

I Pode-se usar a metodologia apresentada para avalia¸c˜ao de

qualquer dispositivo computacional.

I N˜ao acreditem em preconcep¸c˜oes sobre os modelos

(63)

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/

(64)

Cr´

edito aos autores das imagens

I Convolu¸c˜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

Referências

Documentos relacionados

Recomendam a medição dos níveis de TSH mensalmente até às 16-20 semanas e pelo menos 1 vez entre as 26-32 semanas tanto nas mulheres com HSC na gestação que

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

regional, sob uma perspectiva crítica; O terceiro, avaliar o que muda na relação do Brasil com a América Latina, quando o PT chega ao poder, e quais são as ideias do partido sobre

Novamente, a decisão de retificação de gênero baseou-se na identidade e nome sociais do indivíduo, e não em sua vontade intrínseca e genuína de identidade de gênero.

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,

A escolha do Google Home como objeto para esta análise em detrimento de outros speakers existentes no mercado, de diversas marcas ou da própria Google, ocorreu em função

Estes são os preceitos de vida eterna que estão contidos na Lei/Torá e nas palavras que YHWH nos deu através dos Seus profetas, as mesmas palavras que Yeshua disse que