dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Processamento de ´
audio digital em tempo
real em dispositivos n˜
ao convencionais.
Estudos de caso: Arduino, GPU e Android.
Andr´
e Jucovsky Bianchi
Departamento de Ciˆ
encia da Computa¸
c˜
ao
Instituto de Matem´
atica e Estat´ıstica
Universidade de S˜
ao Paulo
21 de agosto de 2011
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Objetivo
Este trabalho tem como objetivo:
I
Explorar
limites
e
possibilidades
de processamento de
´
audio em tempo real utilizando dispositivos
acess´ıveis
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Processamento de ´
audio digital em tempo real
Evolu¸
c˜
ao do hardware
Caracter´ısticas da evolu¸
c˜
ao dos circuitos para DSP:
I
Influenciada pelos algoritmos desenvolvidos.
I
M´
ultiplas unidades de execu¸c˜
ao.
I
Eficiˆ
encia no acesso `
a mem´
oria.
I
Fidelidade num´
erica.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Processamento de ´
audio digital em tempo real
Exemplos de software
Exemplos de trabalhos art´ısticos:
I
Cypher (1992).
I
Voyager (1992).
Ferramentas publicadas sob licen¸cas livres:
I
CSound (1985, LGPL).
I
Pure Data
(1996, BSD).
I
SuperCollider (1996, GPL).
Outras ferramentas:
I
MAX/MSP (1985, 699 USD).
I
Reaktor (1996, 399 USD).
I
Usine (120 EUR).
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Processamento de ´
audio digital em tempo real
Pure Data (Pd)
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Processamento de ´
audio digital em tempo real
Pure Data (Pd)
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Processamento de ´
audio digital em tempo real
Pure Data (Pd)
Caracteristicas do Pd:
I
Interface com in´
umeros dispositivos.
I
Extens´ıvel em C.
I
Licen¸ca livre.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Plataformas escolhidas para estudo de caso
Crit´
erios utilizados para a escolha das plataformas:
I
Dispositivos cujo foco principal n˜
ao ´
e DSP.
I
Baixo custo (de produ¸c˜
ao ou de compra).
I
Facilidade de obten¸
c˜
ao.
I
Licen¸cas de uso.
I
Versatilidade e complementaridade.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Plataformas escolhidas para estudo de caso
Escolhemos trˆ
es classes de dispositivos:
I
Microcontroladores:
Arduino
.
I
Processadores paralelos:
GPU
.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Plataformas escolhidas para estudo de caso
Veremos nesta apresenta¸
c˜
ao:
I
Caracter´ısticas gerais de cada plataforma.
I
Como utiliz´
a-las para processamento de ´
audio em
tempo real.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Figura:
Um Arduino.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Caracter´ısticas
I
Estrutura minimal para interface com um
microcontrolador
.
I
Baixo custo:
20-50 USD
se for comprado.
I
Licenciamento livre:
I
Projetos de hardware:
Creative Commons Attribution
Share-Alike 2.5
.
I
Software:
GPL
(IDE) e
LGPL
(bibliotecas C/C++).
I
Documenta¸
c˜
ao:
Creative Commons Attribution
Share-Alike 3.0
.
I
Comunidade
grande e ativa.
I
Interface
com outros dispositivos.
I
Mobilidade
.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Hist´
orico
Hist´
orico do projeto Arduino:
I
2001 - Processing (MIT Media Lab):
linguagem de
programa¸c˜
ao (e IDE)
voltada para a utiliza¸
c˜
ao nas
artes
eletrˆ
onicas
e no
ensino de computa¸
c˜
ao
.
I
2003 - Wiring (Interaction Design Institute Ivrea):
Processing +
projetos de hardware
.
I
2005 - Arduino: fork do projeto Wiring,
mais simples
e
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Figura:
Painel de LEDs: persistˆ
encia de imagem, um cachorro e
um romance.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Outros exemplos de uso da plataforma
http://www.arduino.cc/playground/Projects/ArduinoUsers
I
Instrumentos musicais (convencionais ou n˜
ao).
I
Controladores de dispositivos.
I
Jogos.
I
Clones de produtos comerciais.
I
Robˆ
os (terrestres, voadores, cibern´
eticos).
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
ADC e DAC nativos no microcontrolador
Amostragem
de um sinal de entrada utilizando ADC do
microcontrolador:
I
At´
e 10 bits de resolu¸
c˜
ao.
I
100 µs para obten¸
c˜
ao de uma amostra.
I
10.000 Hz de taxa de amostragem.
Gera¸
c˜
ao
de sinais de ´
audio:
I
PWM com resolu¸
c˜
ao de 8 bits.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Outras possibilidades de ADC e DAC
Outras possibilidades de captura e gera¸
c˜
ao de sinais:
I
Escudos
espec´ıficos para entrada e sa´ıda de ´
audio.
I
Interface
com outros dispositivos.
I
Placa de som
baseada em Arduino: drivers ALSA e
escudo para entrada e sa´ıda de ´
audio.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Propostas de estudo
Processamentos leves:
I
Filtros b´
asicos de realce de graves e agudos.
I
Equaliza¸c˜
ao utilizando polos e zeros como descritores de
regi˜
oes de ressonˆ
ancia e antiressonˆ
ancia em filtros IIR
de ordem baixa.
I
Efeitos simples (overdrive, phaser, wah-wah).
I
C´
alculo em blocos.
I
Detec¸
c˜
ao de descritores de baixo n´ıvel, como frequˆ
encia
fundamental, energia RMS, centr´
oide espectral, MFCC,
etc.
I
Detec¸
c˜
ao de descritores psicoac´
usticos como brilho,
harmonicidade, ruidosidade, etc.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Arduino
Estudos em andamento
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
GPU e sistemas gr´
aficos tradicionais
Uma
cena virtual
´
e composta de:
I
Geometria.
I
Orienta¸c˜
ao.
I
Propriedades da superf´ıcie dos objetos.
I
Caracter´ısticas das fontes de luz.
Uma
vis˜
ao
de uma cena virtual ´
e descrita pela localiza¸
c˜
ao de
uma cˆ
amera virtual.
Um
sistema gr´
afico
gera imagens que representam vis˜
oes de
uma cena virtual.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
Pipeline gr´
afica
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
Motiva¸
c˜
ao: sistemas gr´
aficos tradicionais
Caracter´ısticas dos sistemas gr´
aficos:
I
Alto
requerimento computacional
.
I
Alto grau de
paralelismo
.
I
Alta
taxa
de fluxo de dados.
Quest˜
oes cr´ıticas em sistemas gr´
aficos:
I
Computa¸c˜
ao versus
comunica¸c˜
ao
.
I
Computa¸
c˜
ao versus
controle
.
I
Paralelismo
de dados e de tarefas.
I
Balan¸
co entre
fun¸
c˜
oes fixas
e
unidades program´
aveis
.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
Compara¸
c˜
ao entre CPU e GPU
Figura:
A GPU devota mais transistores para processamento do
que para controle de fluxo e endere¸
camento.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
Pipeline gr´
afica
Processamento de v´
ertices
Gera¸c˜
ao de fragmentos
Processamento de fragmentos
Composi¸
c˜
ao da imagem
V´ertices, arestas e outros parˆametros
Primitivas gr´aficas vis´ıveis
Fragmentos
P´ıxeis
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
Processamento de prop´
osito geral utilizando o modelo de fluxo de dados
Processamento program´
avel
Processamento program´
avel
Processamento program´
avel
Processamento program´
avel
Especifica¸c˜ao do dom´ınio do problema
Tipos arbitr´arios
Tipos arbitr´arios
Tipos arbitr´arios
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
T´
ecnicas de programa¸c˜
ao para GPU (1/3)
GPU para
gr´
aficos
Gera¸c˜
ao de imagens:
I
Entrada: v´
ertices, arestas e texturas.
I
Processamento: fun¸c˜
oes fixas e program´
aveis para
processamento de v´
ertices, primitivas e fragmentos.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
T´
ecnicas de programa¸c˜
ao para GPU (2/3)
GPU para
programa¸
c˜
ao de prop´
osito geral
Programa¸c˜
ao de prop´
osito geral (modelo antigo):
I
Entrada: v´
ertices, arestas e texturas
que representam
tipos de dados em um dom´ınio de computa¸c˜
ao de
interesse
.
I
Processamento: fun¸c˜
oes fixas e program´
aveis para
processamento de v´
ertices, primitivas e fragmentos.
I
Sa´ıda:
´
areas de mem´
oria com os resultados das
opera¸
c˜
oes
.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
T´
ecnicas de programa¸c˜
ao para GPU (3/3)
GPU para
programa¸
c˜
ao de prop´
osito geral
Programa¸c˜
ao de prop´
osito geral (modelo recente):
I
Entrada: especifica¸c˜
ao da computa¸c˜
ao atrav´
es de
modelo de
fluxo de dados
.
I
Processamento: aplica¸c˜
ao das fun¸c˜
oes nos fluxo de
dados de entrada realizando paralelismo de tarefas e de
dados.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPGPU
Problemas adaptados para solu¸
c˜
ao com GPU
Exemplos de dom´ınios mapeados para GPU:
I
Processamento de sinais.
I
Simula¸c˜
oes biol´
ogicas.
I
Simula¸c˜
oes f´ısicas.
I
M´
etodos de ´
algebra linear.
I
M´
etodos de equa¸
c˜
oes diferenciais.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Processamento de sinais usando GPU.
Trabalhos relacionados:
I
FFT paralela
.
I
DCT paralela.
I
DWT paralela.
I
Audio 3D.
´
I
GPGPU e arcabou¸
cos para processamento de fluxos de
dados.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Programa¸c˜
ao de prop´
osito geral usando GPU
Exemplo: Transformada de Fourier
X
j
=
N−1
X
k=0
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
Propostas de estudo
Processamentos computacionalmente pesados:
I
Morphing em tempo real.
I
Phase Vocoder com an´
alise e ress´ıntese em tempo real.
I
Auraliza¸
c˜
ao utilizando respostas impulsivas medidas ou
simula¸
c˜
ao atrav´
es de modelos geom´
etricos.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
GPU: Graphics Processing Unit
Estudos em andamento
Pesquisa em andamento:
PdCUDA
.
I
Interface de Pd com CUDA.
I
Avalia¸
c˜
ao de performance.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
Sistema operacional
Android
:
I
Sistema desenvolvido desde 2003 e comprado em 2005
pelo
Google Inc
.
I
Kernel do
Linux
.
I
Drivers
para muitos dispositivos.
I
Aplicativos e API em
Java
(m´
aquina virtual pr´
opria).
I
Conectividade
: 3G, GSM, WiFi, etc.
I
Sensores
: 3G, GSM, WiFi, cˆ
amera, GPS, b´
ussola,
acelerˆ
ometro, etc.
I
Licen¸
cas:
I
Apache Software License 2.0
(maior parte do projeto).
I
Kernel e patches:
GPL 2.0
.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
Organiza¸
c˜
ao em camadas
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
Programa¸
c˜
ao no Android
Aspectos b´
asicos da programa¸
c˜
ao para Android:
I
Arquivo de manifesto com
declara¸
c˜
ao dos recursos
utilizados e disponibilizados.
I
Componentes:
I
atividade.
I
servi¸
co.
I
receptor de mensagens.
I
provedor de conte´
udo.
I
Acesso via
mensagens de inten¸
c˜
ao
e
resolvedor de
conte´
udos
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
Restri¸
c˜
oes quanto ao uso do sistema
Caracter´ıstica do sistema relevantes para nosso estudo:
I
O modelo de programa¸c˜
ao de aplicativos ´
e
relativamente engessado.
I
Flexibiliza¸c˜
ao:
I
Obten¸
c˜
ao de controle sobre o sistema e o aparelho.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
Conclus˜
oes
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
Trabalhos relacionados: libpd
A biblioteca libpd empacota as fun¸
c˜
oes do Pd e:
I
separa as fun¸
c˜
oes de DSP da interface gr´
afica e de
drivers;
I
transforma o Pd em uma biblioteca de s´ıntese e
processamento de ´
audio; e
I
permite a comunica¸
c˜
ao com c´
odigo em outros
ambientes.
J´
a existem vers˜
oes para Android e iOS:
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
Trabalhos relacionados
Outras iniciativas de processamento de ´
audio em tempo real
no Android:
I
Processamento e transmiss˜
ao de v´ıdeo.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Android
Propostas de estudo
Processamentos de dificuldade m´
edia:
I
Efeitos
diversos (pitch shifting, flanger, companders,
vibrato, chorus).
I
Reverbera¸
c˜
ao
e
espacializa¸c˜
ao
.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Tarefas
Algumas tarefas em andamento:
I
Intera¸c˜
ao com as plataformas.
I
Filtros e c´
alculo em blocos no Arduino.
I
PdCUDA (benchmarking).
Pr´
oximas tarefas:
I
Defini¸c˜
ao dos algoritmos e escopo espec´ıfico do estudo.
I
Implementa¸
c˜
oes diversas.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Cronograma
08/11 09/11 10/11 11/11 12/11 01/12 02/12 Testes preliminaresEscolha dos algoritmos Implementa¸c˜oes Testes finais e resultados Reda¸c˜ao de artigos Reda¸c˜ao do texto final
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Estrutura da apresenta¸c˜
ao
Introdu¸
c˜
ao
Hardware e Software para DSP
Plataformas para estudo de caso
Arduino
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
GPU
Apresenta¸c˜
ao
Uso em DSP, propostas e estudos
Android
Apresenta¸
c˜
ao
Uso em DSP, propostas e estudos
Pr´
oximos passos e conclus˜
oes
Tarefas e cronograma
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes
Resumo
I
E poss´ıvel utilizar
´
hardware acess´ıvel
para
processamento de ´
audio digital em tempo real
.
dispositivos n˜ao convencionais Andr´e Jucovsky Bianchi Introdu¸c˜ao Hardware e Software para DSP Plataformas para estudo de caso Arduino Apresenta¸c˜ao Uso em DSP, propostas e estudos GPU Apresenta¸c˜ao Uso em DSP, propostas e estudos Android Apresenta¸c˜ao Uso em DSP, propostas e estudos Pr´oximos passos e conclus˜oes Tarefas e cronograma Conclus˜oes