ATTENZIONE! Viste le ultime scelte commerciali di Digiland sto
spostando il sito su altervista.
Quindi questo sito non verrà più aggiornato.
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:
- Il primo prototipo realizzato utilizzava una semplice
trasmissione unicast.
- Il secondo prototipo invece utilizza la tecnica di trasmissione
multicast (uno a molti). L'host che trasmette
suddivide il flusso codificato su più gruppi multicast, i vari host
che ricevono decidono quindi quali gruppi sottoscrivere ed in questo
modo in pratica decidono per conto proprio come posizionarsi nei
confronti del trade-off qualità/tasso. In questo modo si raggiunge un
risultato interessante, ciascun host può ricevere il flusso che
meglio si adatta alle sue carratteristiche.
Attualmente al progetto stanno lavorando altri due tesisti (Luca
Prezioso e Peppe Lipardi) che in parallelo stanno portando avanti lo
sviluppo del codec e della parte di rete. In particolare io sto
seguendo 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.
Novità dell'ultim'ora, ho aggiunto anche il sonoro. Quindi ora è
possibile anche ascoltare l'audio proveniente dal server.
Inoltre ora 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.
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.
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.
Questa è invece la finestra di riproduzione.
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).
L'interfaccia grafica del server. Come si vede permette di scegliere la
device video da utilizzare e il tipo di acquisizione.
La tesi on-line
La tesi in formato PDF [pdf - 1Mb]