vuoi
o PayPal
tutte le volte che vuoi
Telecomunicazioni: il chip PS1080 e la codifica di sorgente PCM
Informatica: il linguaggio OpenCL basato su C++
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
il futuro è nelle nostre mani...
Introduzione
Il Kinect è un sensore di movimento ideato inizialmente per la console Microsoft Xbox 360 con lo
nasce dall’unione
scopo di aprire il mondo ad una nuova generazione di videogame. Il termine Kinect
di due termini dal significato vario: cinetico (energico, attivo, dinamico) insieme al termine connect,
che significa connettere, e con questi due termini si vuole simboleggiare la connessione che si vuole
sempre più creare tra uomo e macchina.
La caratteristica innovativa di questi sensore è quella di essere in grado di registrare i movimenti del
corpo umano nelle 3 differenti dimensioni spaziali ed elaborarli in tempo reale, quindi a seconda di
come noi ci muoveremo nello spazio il sensore trasformerà i nostri movimenti in dati, per una possibilità
di applicazioni praticamente infinite. Oltre ai movimenti il dispositivo è compreso di un sistema di
riconoscimento vocale studiato ad hoc per facilitare ulteriormente l'interfacciamento dell'utente,
isolando letteralmente voce rispetto ai rumori di fondo in una stanza anche se piena di persone.
2
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
Come Funziona
Kinect è dotato di una telecamera RGB, un doppio sensore di profondità a raggi infrarossi composto da
un proiettore a infrarossi e da una telecamera sensibile alla stessa banda.
Dispone in oltre anche di un array ( connessi tra loro) di microfoni utilizzato dal sistema per la
calibrazione dell'ambiente in cui ci si trova, mediante l'analisi della riflessione del suono sulle pareti e
sulle diverse superfici di una stanza. In tal modo il rumore di fondo e i suoni vengono eliminati ed è
possibile riconoscere correttamente i comandi vocali. La barra del Kinect è motorizzata lungo l'asse
verticale e segue i movimenti degli utenti, orientandosi nella posizione migliore per il riconoscimento dei
movimenti.
Di fatto, la periferica permette all'utente di interagire senza l'uso di alcun controller o comando, ma solo
attraverso i movimenti del corpo, i comandi vocali o attraverso gli oggetti presenti nell'ambiente
Perché Cambierà Il Mondo
Kinect in se rappresenta uno dei più recenti esempi meglio riusciti dell'applicazione incrociata di
sensori, hardware e software con lo scopo di facilitare l'interfacciamento tra utente e macchina. Proprio
in questi ultimi anni il mondo dell'elettronica consumer sta spingendo sempre più nella ricerca della
migliore soluzione che permetta alle macchine di gestite nel modo più veloce, intelligente e efficace
possibile le necessita dell'uomo, e lo si può vedere chiaramente dal grande successo riscontrato dalle
tecnologie touch-screen, le quali hanno influenzato soprattutto la telefonia, ma riscontrano sempre più
successi anche tra monitor per PC e superfici multi-touch. Persino i software stanno cambiando
gradualmente rotta, adattando le proprie interfacce all'utilizzo di tecnologie touch-screen.
Proprio in questo senso Kinect ha trovato terreno fertile
introducendo una nuova strada ancora più flessibile e
promettente, quella dell'air-touch.
Per rendersi meglio conto del successo è bene sapere
che questo dispositivo, entrato nel mercato a partire dal 4
novembre 2010, a solo 27 giorni dal lancio, già
confermava un risultano di 8 milioni di unità vendute in
3
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
tutto il mondo. Ciò oltre che iscrivere il Kinect nel Guinness World Record come il dispositivo di
elettronica consumer che ha venduto meglio nel minor tempo possibile, ha anche fatto notare come
una periferica con tali capacità può suscitare curiosità e interesse nella gente, soprattutto per la sua
possibilità di essere implementabile praticamente per qualunque cosa, mantenendo comunque costi
relativamente ridotti e una facilità di utilizzo senza precedenti.
In seguito verranno approfondite diverse caratteristiche di tale periferica per capire meglio il suo
effettivo funzionamento e le sue principali caratteristiche, basandomi per la maggior parte sulle
conoscenze acquisite durante il corso degli studi.
Un Cervello Che Vede, Sente E...Si Muove
Osservando Kinect nel particolare, esso è fondamentalmente una barra orizzontale di sensori collegati
ad una piccola base con un perno motore, il tutto progettato per essere posizionato longitudinalmente
sotto il display video di un PC o di un Televisore.
Gli occhi di Kinect sono composti da due telecamere (CMOS a colori 32-bit per 30 frame/sec
e CMOS IR a16-bit per 30 frame/sec) e un proiettore IR, ovvero una comune telecamera RGB con una
risoluzione di 640 × 480 pixel (4), un sensore di profondità a tecnologia infrarossi con una matrice di
320 × 240 pixel (3) e un proiettore di infrarossi con la stessa banda del sensore IR stesso (2).
Apparentemente non è facile immaginare come i tre obbiettivi possano lavorare insieme e allo stesso
tempo in maniera diversa, ma in effetti lo scopo del sistema è quello di avere una precisa idea di ciò
che sta accendendo di fronte al dispositivo in
tutte e tre le dimensioni spaziali.
Lo scopo del Kinect è quindi principalmente
quello di emulare nel modo più efficace
possibile la percezione della profondità di un
occhio umano, utilizzando però un metodo
del tutto innovativo e decisamente
interessante.
4
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
La prima telecamera infatti si occupa semplicemente di gestire colori e immagini come fosse una
normale obbiettivo di una fotocamera, quella ad infrarossi invece lavora insieme al proiettore, il quale
ha la sola funzione di proiettare nello spazio un reticolo di punti in banda infrarossa, con i quali in base
alla propria lontananza dall'obbiettivo stesso sembrano rispettivamente più grandi, se il soggetto è
vicino, o più piccoli se invece il soggetto è più lontano.
Questa soluzione apparentemente elementare è per ora tra le più precise e affidabili nel campo della
scansione 3D, in quanto secondo le relazioni tecniche rilasciate direttamente da Microsoft si parla della
reale capacita del sistema di misurare oggetti con un'accuratezza di 1cm alla distanza di 2 metri.
Kinect in fine dispone di 4 microfoni (1) orientati verso il basso, di cui 3 sul lato destro ed un sul lato
sinistro, con una risoluzione di 16-bit per 16 kHz.
Il loro scopo è molto preciso: rilevare ed isolare in una stanza anche piena di persone e con eventuali
disturbi sonori, i comandi vocali di un unico utente. Il sistema audio lavora quindi in modo molto
complesso e per la prima volta in assoluto tramite una tecnica di incrociamento simultaneo
2 3
1 4 5
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
con la telecamera a infrarossi, permettendo cosi alla periferica di eliminare totalmente i problemi di eco
e di sovrapposizione di suoni in un ambiente chiuso tramite una sofisticata tecnica di "beam forming" in
cui l'area di campionamento del suono viene ristretta al solo spazio dove è presente l'utente.
La forma allungata della periferica in oltre non è casuale come potrebbe sembrare, ma dipende invece
dalla forzosa necessità avuta dal gruppo di sviluppo audio della periferica di ottenere una precisa
angolatura incrociata dei microfoni ( tre da una parte e uno dall'altra), senza aver trovato tuttavia
precise spiegazioni neppure sui dati di sviluppo della periferica, su come effettivamente ciò possa
influire in modo particolare sulla ricezione del suono.
Tuttavia non è un caso il fatto che il gruppo di sviluppo Microsoft Game Studio sembra stesse
lavorando da quasi 16 anni allo sviluppo e al perfezionamento di questo complesso sistema
audio,lasciando in effetti credere che effettivamente dietro al prodotto finito, di studi e perfezionamenti
ce ne siano stati non pochi. 6
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
Kinect, la tecnologia messa a nudo
Il sensore Kinect deve la sua tecnologia hardware principalmente ad un gruppo di sviluppo israeliano
specializzato in sensori 3D chiamato PrimeSense, il quale si è fatto fin da subito notare per il suo
prodotto 3DV System , in quanto in confronto alle altre periferiche di riconoscimento dei movimenti era
l'unica a poter percepire persino la profondità.
Perciò grazie ad un contratto di circa 35 milioni di dollari la Microsoft si è aggiudicata ogni diritto sul
prodotto garantendo comunque i fondi necessari al completamento della periferica, il cui nome pensato
all'inizio per il suo lancio era Project Natal, in seguito rinominato Kinect per motivi di mercato.
7
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
Prime Sense PS1080-A2, una mente programmata
Il sensore 3D in questione sviluppato da PrimeSense e integrato nel Kinect, ha il compito di gestire
qualunque tipo di informazione provenga dai sensori per
commutarla prima ed inviarla poi alla macchina o viceversa.
Il PrimeSensor è costruito principalmente attorno ad un chip
(SoC) PS1080, detto a "commutazione parallela", con il
compito di processare gli algoritmi inviati dai diversi sensori, il
cui calcolo e l'elaborazione dei dati è basata su una recente
tecnologia di invio e ricezione di informazioni all'interno di un sistema hardware tramite impulsi laser.
Per "commutazione parallela" si intende il fatto che fisicamente i dati vengono processati
contemporaneamente in quanto vengono separati e inviati a 2 o più unita centrali di calcolo (Come la
CPU Multi-Core di un Computer o quella Triple-Core della console Microsoft), velocizzando cosi
estremamente i tempi di lettura ed invio dei dati dei vari sensori, in questo caso immagini con
coordinate di profondità, colori e audio, direttamente all'Host. Il sistema comunica tramite una porta
USB 2.0, utilizzata per l'invio e la ricezione di tutti i dati tra Kinect e Host.
Il PS1080 è studiato tuttavia per elaborare direttamente tutti gli algoritmi ricevuti direttamente dai
sensori tramite codifiche di tipo PCM, cosi da mantenere una qualità di codifica ottimale delle sorgenti
sia video che audio.
Questo tipo di codifica di segnale è specifica per la digitalizzazione di file audio e video mediante
diverse fasi: la sorgente inizialmente, indipendentemente da audio o video, subisce un
campionamento dell'ascissa del segnale a intervalli regolari, questa operazione viene chiamata
campionamento di un segnale, in quanto in questa fase la sorgente viene letteralmente tagliata in
piccole unita di valori, i quali verranno poi letti, per poter essere quantizzati in ordinata ed infine
digitalizzati (in genere codificati in forma binaria).
La quantizzazione è una fase importante nella codifica di un codice, in quanto coincide con la scelta
dell'importanza in termini di numeri di Bit da assegnare ad ogni singola unità di segnale. Nella PCM
comunque in genere la dimensione degli intervalli di decisione in cui si suddivide l'insieme dei possibili
8
Tesi di esame di Edoardo Luca Roccaforte 5° ALE
valori è sempre la medesima, ovvero ovunque cada (all'interno della dinamica) il valore quantizzato,
l'accuratezza dell'operazione sarà sempre la stessa.
L'ultima fase, quella della digitalizzazione, consiste invece nella trasformazione vera e propria delle
varie unità di cui era precedentemente composta la sorgente in un numero di Bit, cioè un insieme
preciso di cifre binarie, le quali possono assumere per ognuna soltanto due valori: "0" oppure "1".
La PCM è ampiamente utilizzata nei sistemi di telefonia o anche solo come metodo per facilitare le
trasmissioni digitali in forma seriale, in quanto permette a diversi campioni provenienti da diverse fonti
di essere inviati simultaneamente in un unica stringa di codice.
I vantaggi che favoriscono l’impiego della tecnica PCM in questo caso sono:
L’elevata insensibilità della trasmissione alle interferenze e al rumore;
La possibilità di elaborare i segnali trasmessi in forma digitale;
La facilità con cui i segnali possono essere riformati o rigenerati lungo il canale di trasmissione;
La possibilità di utilizzare un unico canale trasmissivo per trasferire campioni di segnali diversi.