Nem01::Tesi

Introduzione

Ho impiegato quasi 8 mesi per completare il mio lavoro, ed in questo periodo ho proficuamente utilizzato molto materiale scaricato liberamente dalla rete. Poter leggere un'altra tesi nella quale si affrontano argomenti similari a quelli trattati nel proprio lavoro da un grosso aiuto.

Ho quindi deciso di fare la mia parte, e di rendere disponibile quello che ho creato in questi mesi.

Voglio sottolineare che per la stesura della tesi ho usato il sistema di impaginazione denominato "LaTeX", a dispetto della sua fama, è molto comodo da usare e produce dei risultati eccezionali nemmeno lontanamente paragonabili a quello che si ottiene con Word (senza contare i mal di testa che quest'ultimo procura). Un documento scritto con LaTeX può essere trasformato in moltissimi formati, tra cui PostScript, Pdf (senza dover acquistare costosi programmi), solo testo, html ...

Quindi grazie all'utility latex2html ho convertito l'intera tesi in formato html e lo resa disponibile in questa pagina, il risultato mi sembra buono, ma se non vi va di leggerla on-line potete sempre scaricare la versione PDF.

Potete trovare i link ad entrambe le versioni a fondo pagina.

Per la tesi ho svolto un lavoro prevalentemente di sviluppo. Da una precedente tesi ereditavo un codec (codificatore e decodificatore video) molto interessante, le sue caratteristiche principali sono la bassa complessità computazione (tale da rendere possibile sia la codifica che la decodifica in tempo reale) e la possibilità di fornire un flusso codificato dal quale si possono estrarre più sottoflussi a qualità [ma anche a bit-rate] ridotto.

Partendo da questo io ho implementato tutta la parte relativa allo strato di comunicazione su rete.
Quindi mi sono studiato il protocollo RTP (Real Time Protocol) ed ho messo su tutto il sistema per la spedizione delle frame codificate per la loro ricezione e per il rendering a video del contenuto decodificato.

Questo è stato molto interessante perchè in qualche modo bisognava tenere conto della scalabilità del flusso codificato, e quindi era necessario armonizzare questa caratteristica con il sistema di trasmissione.

Tutto questo ha portato a due soluzioni:

Ulteriori Sviluppi

Dopo la mia laurea (e quella del mio collega Marco Cagnazzo, che si occupava dell'algoritmo di codifica) il progetto è stato sviluppato da due nuovi tesisti (Luca Prezioso e Peppe Lipardi) che in parallelo hanno portato avanti lo sviluppo del codec e della parte di rete. In particolare io ho seguito il lavoro di Luca Prezioso (visto che ha ripreso laddove io ho interroto).

Sono stati fatti importanti passi avanti come ad esempio l'introduzione di un ulteriore livello di scalabilità temporale (circa 3 frame/sec) e cosa molto importante è stato realizzato il modulo per l'acquisizione da hardware video.

Io stesso ho dato qualche piccolo contributo,ad esempio ho aggiunto anche il sonoro. Quindi ora è possibile anche ascoltare l'audio proveniente dal server.

Anche il server è stato dotato di una interfaccia grafica. Al momento ancora minimale, contiene solo le informazioni relative all'acquisizione video, quindi permette di scegliere il dispositivo dal quale acquisire e il formato di acquisizione. In futuro verrà data la possibilità di agire sui parametri della codifica audio.

Inoltre è stato messo in piedi un meccanismo di gestione automatica dei gruppi, ora il client ha la possibilità di agire dinamicamente sul flusso di dati ricevuto, decidendo ad esempio di ricevere meno pacchetti perchè non riesce ad elaborarli in tempo reale o perchè la rete ne perde troppi e quindi si cerca così di contrastare la congestione.

Immagini

Interfaccia1
L'applicazione in attesa
Così si presenta la finestra principale del client, non appena viene lanciato. E' possibile vedere i combo-box che permettono di scegliere la qualità della sequenza.
Interfaccia2
Elaborazione in corso
In quest'altra immagine si vede la finestra principale del client durante la riproduzione. Si può notare un grafico che riporta l'andamento (aggiornato in tempo reale) dell'occupazione di banda istantanea.
Interfaccia3
La riproduzione
Questa è invece la finestra di riproduzione.
video-large
Ingrandisci
Questa immagine si riferisce alle ultime versioni del programma. Mostra un pò tutto, dalla interfaccia nuova per il client, alla finestra che riproduce una sequenza acquisita finalmente dalla webcam (quelli immortalati siamo io e Luca).
Server
Ingrandisci
L'interfaccia grafica del server. Come si vede permette di scegliere la device video da utilizzare e il tipo di acquisizione.

Scarica la Tesi

html link La tesi on-line
pdf file La tesi in formato PDF [pdf - 1Mb]