CAPITOLO 1
scegliere (sono possibili tre livelli per ciascun tipo di frame). Ciascun livello di
attività viene generato attraverso l’uso di un processo auto-regressivo di ordine 1
(AR1). Il modello viene convalidato da una serie di simulazioni effettuate con
Matlab che confermano la validità della soluzione proposta per il modellamento
del contenuto video estratto dalla traccia di un film preso come campione;
• Dal punto di vista del canale, si è scelto il modello proposto in [9], in cui è stata
studiata la trasmissione video nel contesto di reti mobili di terza generazione
UMTS ed è stato proposto un modello per simulare la variazione della banda
disponibile a livello di pacchetto IP basato sulle catene di Markov a tempo
discreto; abbiamo implementato quindi questo modello di canale in Matlab;
• Infine, abbiamo studiato l’effetto congiunto del nostro modello di sorgente sul
canale, evidenziando come la variazione di banda disponibile abbia un impatto
notevole circa la trasmissione del segnale video nel canale radio mobile ed
influenzi in maniera sostanziale la scelta della tipologia di codifica video.
1.3 Organizzazione della tesi
La restante parte di questo lavoro è organizzata come segue. Il Capitolo 2 presenta
il background del nostro lavoro. Innanzitutto vengono presentati i concetti generali dello
streaming video su reti IP. In seguito presentiamo i fondamenti della codifica video e
passiamo in rassegna i principali codificatori video che si sono susseguiti nel corso degli
anni. Il Capitolo 3 presenta in dettaglio il codificatore H.264, quello cioè su cui si
basano le tracce video utilizzate per “addestrare” il modello gerarchico utilizzato;
vengono esposte le migliorie introdotte rispetto agli standard precedenti che hanno
permesso di dimezzare il bit-rate in uscita, a parità di qualità video oggettiva, e le
principali caratteristiche che ne rendono lo strumento adatto per l’applicazione in ambiti
wireless: la separazione tra gli strati VCL (Video Coding Layer) e NAL (Network
Abstraction Layer). Il Capitolo 4 descrive il modello di canale utilizzato, fornisce una
descrizione dell’architettura UMTS, con particolare riferimento alla novità introdotta
dalla Release 5 costituita dalla modalità trasmissiva HSDPA, e a tutte le relative
caratteristiche. Vengono quindi presentate le modalità per la determinazione della
10
CAPITOLO 1
matrice di Markov rappresentante la variazione della banda del canale e vengono
presentati i risultati relativi ai valori specifici che la banda assume nel corso del tempo.
Il Capitolo 5 espone la teoria che sta alla base del modello proposto e presenta le
simulazioni che attestano la validità del modello, che viene testato su tracce video reali
codificate tramite lo standard H.264. In ultimo si tracciano le conclusioni e eventuali
sviluppi del modello proposto e testato.
11
CAPITOLO 2
2 - Background
2.1 Streaming video su IP
2.1.1 Generalità
Lo streaming video consiste nella consegna simultanea e riproduzione del video su
reti a pacchetto. L’idea che sta dietro allo streaming è, in modo approssimativo, quella
di scindere la sorgente in più parti, trasmettere queste ultime in sequenza e permettere
al ricevitore di decodificare e riprodurre il video mentre riceve le varie parti, senza
dover aspettare che l’intero file sia trasferito.
Un sistema di streaming video fondamentale è composto dalla sorgente video, un
server, la rete di trasporto ed uno o più ricevitori video (o riproduttori). Come sarà
descritto nel paragrafo 2.2, il video deve essere codificato (compresso) per poter essere
trasmesso nelle reti a pacchetto. La sorgente video può essere o precedentemente
codificata o codificata in real-time. Nell’ultimo caso, anche il codificatore è parte del
sistema di streaming.
Le reti IP, specialmente Internet, offrono un servizio best effort senza garanzie sulla
banda, sul ritardo, sul jitter o sulle perdite. In tale contesto, lo streaming video si trova
di fronte diversi ostacoli per realizzare gli obiettivi prefissati. Nei prossimi paragrafi
cercheremo di capire quali fattori influenzano lo streaming video su Internet, quali sono
i possibili problemi che si incontrano e quali le possibili soluzioni.
2.1.2 La banda
In Internet la banda non solo è limitata, ma anche imprevedibile e dinamica. Questo
può influenzare in maniera notevole lo streaming: se la sogente trasmette ad un rate
maggiore della banda di rete disponibile, ci saranno ritardi ed eventualmente perdite.
Pertanto il client avrà problemi nella decodifica e nella riproduzione del flusso video, e
12
CAPITOLO 2
la qualità visiva risulterà degradata. Se la trasmissione è troppo lenta, la qualità ricevuta
sarà inferiore a quella ottimale. Affrontando questo aspetto, l’obiettivo ideale di un
sistema di streaming è quello di stimare accuratamente la banda disponibile ed adattare
ad essa il rate di trasmissione. Questo adattamento è conosciuto come rate control.
2.1.2.1Controllo del rate nei collegamenti end-to-end
I meccanismi di controllo del rate possono essere applicati nel collegamento end-to-
end o nella rete. Nel collegamento end-to-end, il controllo del rate può risiedere in
diverse entità. Presentiamo di seguito una lista con le strategie più importanti per il
controllo del rate nella modalità end-to-end.
• Protocollo di trasporto. Il controllo del rate dello streaming potrebbe basarsi
esclusivamente sul controllo fornito da un protocollo di trasporto come TCP. Il
protocollo TCP, tipicamente usato per applicazioni dati come il trasferimento di
file e il web browsing, non è adatto al trasporto di sequenze video. TCP è un
protocollo affidabile orientato alla connessione che utilizza le ritrasmissioni e la
riduzione del rate per far fronte alla perdita di segmenti di dati. Le ritrasmissioni
a questo livello possono avere un enorme impatto negativo sulle applicazioni
real-time poiché possono introdurre eccessivo ritardo e jitter.
• Modifica del bit rate video. Attraverso questa strategia, il rate del video viene in
qualche modo ridotto per renderlo simile all’attuale rate della rete. Le tecniche
sono diverse a seconda che il video sia codificato in real-time (live streaming)
oppure sia stato precedentemente codificato e preso da un dispositivo di
memorizzazione. Per il live streaming, il rate dei dati può essere adattato
dinamicamente dal codificatore sulla base delle informazioni di feedback
trasmesse dal dispositivo ricevente a livello di applicazione. Per quanto riguarda
il materiale precedentemente codificato, esistono diverse tecniche per realizzare
la riduzione del rate. Quella più semplice è il transcoding, che consiste nel
decodificare e ricodificare ad un più basso bit-rate la sorgente video. I più gravi
13
CAPITOLO 2
inconvenienti della transcodifica sono la degradazione della qualità e la
complessità computazionale. Il file switching consiste nel creare diverse versioni
dello stesso video pre-codificate a rate diversi per adattarsi ai più comuni rate
riscontrati. Nello static file switching, l’utente deve trovare un particolare rate
dall’inizio della sessione. Un sistema di dynamic file switching commuta tra vari
file anche se la sessione è attiva.
• Codifica stratificata. Questo metodo è basato sull’uso di codificatori video
stratificati o scalabili. Un codificatore stratificato genera, in corrispondenza di
un singolo ingresso, un’uscita stratificata composta da uno strato base e da uno o
più strati di miglioramento. Lo strato base contiene uno stream video con la
minima qualità richiesta è il più basso bit-rate. Ogni strato successivo aggiunge
sia la qualità che il bit-rate. La codifica stratificata viene utilizzata soprattutto
nelle architetture multicast (uno a molti). In questo ambito, un particolare cliente
fa richiesta solo degli strati che può effettivamente ricevere: più grande è la
banda, maggiori saranno il numero degli strati richiesti e la qualità.
2.1.2.2Controllo del rate nella rete
Un diverso approccio rispetto al controllo del rate nei nodi terminali è rappresentato
dall’aggiunta delle specifiche di Quality of Service alla rete. L’IETF ha sviluppato due
modelli e i loro relativi protocolli al fine di fornire le reti IP di qualche genere di QOS:
IntServ. Il primo modello è chiamato Integrated Service (IntServ) ed è stato progettato
per fornire alle reti IP un QoS end-to-end con rigide garanzie sulla banda, sul ritardo e
sul jitter. Il modello IntServ è basato sull’esplicita allocazione di risorse di rete in favore
di micro-flussi per mezzo del Resource Reservation Protocol (RSVP). IntServ ha attinto
da alcune delle caratteristiche di QoS progettate originariamente per l’architettura ATM.
Il modello IntServ viene generalmente considerato troppo complesso, non scalabile e
costoso per l’implementazione in reti grandi, multi-dominio ed eterogenee.
14
CAPITOLO 2
DiffServ. A causa della complessità di IntServ, è stato sviluppato un altro modello sotto
il nome di Servizi Differenziati (DiffServ). Il suo obiettivo è di fornire aggregati di
traffico con trattamento differenziato in base al valore di un campo nell’intestazione IP.
Il campo è chiamato DSCP (DiffServ Code Point) e il suo valore indica che il pacchetto
appartiene ad una determinata classe, I pacchetti sono classificati (cioè contrassegnati
con un valore nel campo DSCP) agli estremi della rete. A quel punto i router
dell’infrastruttura di rete applicano semplicemente un instradamento differenziato ai
pacchetti contrassegnati: DiffServ è meno complicato soprattutto per tre motivi.
Innanzitutto è destinato a grandi volumi di traffico aggregato piuttosto che a micro-
flussi; in secondo luogo, tutti i pacchetti sono assegnati ad un piccolo numero di classi
(pertanto sono necessari pochi valori di DSCP e quindi le operazioni di instradamento
sono semplificate); infine, è progettata per far fronte a vincoli non stringenti e
probabilistici.
2.1.3 Il jitter
Per jitter s’intende la variazione dell’intervallo di tempo tra gli arrivi dei pacchetti.
Il jitter è provocato per lo più da ritardi di code variabili e da ritrasmissioni che
avvengono a livello di collegamento. Nello streaming, il ricevitore deve decodificare e
riprodurre i pacchetti video mentre essi arrivano. Un riproduttore deve decodificare
correttamente e mandare in esecuzione i pacchetti ricevuti, in quanto ciascun pacchetto
può arrivare o in anticipo o in ritardo rispetto all’istante nominale di ricezione. L’effetto
qualitativo di tutto questo è rappresentato dal movimento a scatti dell’immagine.
La tecnica fondamentale usata per combattere questo fenomeno è rappresentata dal
buffering. I pacchetti hanno una linea non superabile di interarrivo (deadline): se essi
non giungono prima di questa deadline, essi diventano inutili. L’operazione di buffering
estende la deadline dei pacchetti e quindi riduce il jitter, permettendo la riproduzione
del video ad un rate costante. Il buffering influisce anche su altri aspetti. Nel recupero
degli errori, il buffering permette al player di rivelare i pacchetti mancanti prima che si
abbia bisogno di essi e di richiederne quindi la ritrasmissione. Un client può eliminare
alcuni errori se essi non sono concentrati. Grazie al buffering, i pacchetti possono essere
15
CAPITOLO 2
mandati fuori ordine e riordinati nel buffer, al fine di isolare le perdite e sfruttare le
tecniche di occultamento dell’errore (concealment).
Tutti i benefici del buffering hanno luogo a spese di una maggiore latenza end-to-
end. Più è grande il buffer, più lunga è la latenza totale del sistema di streaming. La
dimensione del buffer è quindi critica, e bisogna ricercare dei compromessi tra i suoi
benefici e la latenza addizionale che esso introduce. Poiché le condizioni della rete sono
dinamiche, la gestione del buffer di playout è un importante argomento di discussione e
un argomento di ricerca ancora attuale.
2.1.4 Le perdite
Come verrà osservato nella sezione 2.2, i codificatori video comprimono i segnali
eliminando le ridondanze spaziali e temporali. Tutto questo fa si che lo stream trasporti
una minore quantità di dati, ma lo rende anche più sensibile alle perdite, dal momento
che alcune delle sue parti vengono usate come riferimento. La perdita di un frame di
riferimento comporta la propagazione degli errori ai frame seguenti e la degradazione
della qualità video. Nell’ambito dello streaming video nelle reti IP, le perdite di
informazioni video possono avvenire per i seguenti motivi: (1) scarto dovuto alla
congestione dei router; (2) eccessivo ritardo (il pacchetto supera la sua deadline); e (3)
pacchetti danneggiati sui canali di comunicazione (ad esempio nelle reti wireless).
Esistono quattro grandi tecniche per gestire le perdite nello streaming e saranno
descritte nei paragrafi seguenti.
2.1.4.1La ritrasmissione
Questo meccanismo si basa sulla ritrasmissione dei pacchetti persi a livello di
applicazione; richiede una connessione di controllo tra trasmittente e destinatario. Il
destinatario rivela i pacchetti mancanti nel buffer e spedisce una richiesta di
ritrasmissione al mittente. La ritrasmissione è efficiente in banda, dal momento che
vengono rispediti soltanto i pacchetti persi, tuttavia il collegamento di feedback non
sempre è realizzabile. Una possibile variante è la ritrasmissione con vincoli sul ritardo,
16
CAPITOLO 2
in cui il ricevente richiede la ritrasmissione soltanto se essa può arrivare in tempo, in
base a calcoli sulla stima del ritardo.
2.1.4.2Forward Error Correction (FEC)
Il principio su cui si basa il FEC è di aggiungere informazione ridondante al
messaggio originale, in modo tale che esso possa essere decodificato anche se dovessero
verificarsi degli errori. Un esempio di FEC è la codifica di canale, nella quale,
riferendoci ad esempio al caso di codifica a blocchi, a partire da k bit o simboli in
ingresso, un codificatore genera in uscita n bit o simboli (con n>k), introducendo quindi
una ridondanza di n-k bit o simboli; in questo modo, è possibile sfruttare la ridondanza
introdotta al fine di rivelare e, ove possibile, correggere eventuali errori . D’altro canto,
la ridondanza introdotta aumenta la banda richiesta di un fattore n/k. In effetti, la tecnica
FEC fornisce un certo numero di vantaggi ma anche degli svantaggi. Al contrario della
ritrasmissione, il FEC non richiede un canale di feedback e può fornire basso ritardo
dato che non dipende dal tempo di round-trip delle ritrasmissioni. Tra gli svantaggi del
FEC c’è il fatto che l’overhead del FEC è presente anche quando non ci sono perdite, e
che può essere introdotto tempo di latenza legato alla ricostruzione dei pacchetti persi.
Gli approcci basati sul FEC sono progettati principalmente per fare fronte ad un
ammontare predeterminato di perdite e sono molto efficaci se sono adattate in modo
opportuno al canale. Se le perdite sono minori di una certa soglia, allora i dati trasmessi
possono essere perfettamente estratti dai dati corrotti. Tuttavia, se le perdite sono più
grandi della soglia, solo una parte dei dati verrà recuperata e, a seconda del tipo del FEC
usato, i dati potrebbero essere completamente persi. Sfortunatamente le caratteristiche
di perdite per le reti a pacchetto spesso sono non note a priori e tempo varianti.
2.1.4.3Codifica error resilient
L’obiettivo dell’error resilience è di rendere il video codificato più robusto alle
perdite. Le tecniche di error resilience vengono implementate nel codificatore e, in
17
CAPITOLO 2
generale, sono progettate per combattere specifici errori. In accordo a [1], in una tipica
architettura video ci sono due problemi fondamentali generati dagli errori:
(1) perdita della sincronizzazione di bit; e
(2) propagazione dell’errore
Per ognuno di questi problemi sono state sviluppate opportune tecniche. Per quanto
riguarda la perdita di sincronizzazione, si possono menzionare i resync markers, i codici
reversibili a lunghezza variabile (RVCL), il partizionamento dei dati e il framing a
livello di applicazione. Per quel che concerne la propagazione dell’errore, vengono
usate diverse forme di codifica periodica del tipo intra (cioè indipendente dai frame
precedenti). Una dettagliata spiegazione di queste tecniche può essere trovata anche in
[1].
2.1.4.4Error Concealment
L’obiettivo fondamentale dell’error concealment è quello di stimare l’informazione
persa o i pixel mancanti al fine di nascondere gli errori che sono sopraggiunti. Esso si
basa sul fatto che il video manifesta una quantità significativa di correlazione sia nella
dimensione spaziale che in quella temporale. Questa correlazione viene in parte usata
per ottenere compressione video, mentre la parte di essa che rimane inutilizzata, può
essere sfruttata per stimare l’informazione persa. L’approccio è quindi quello di
sfruttare la correlazione realizzando una qualche forma di interpolazione spaziale e/o
temporale per stimare l’informazione persa a partire dai dati ricevuti correttamente. La
caratteristica peculiare dell’error concealment è che viene realizzata al decodificatore;
pertanto, esso risulta al di fuori degli scopi degli standard della video compressione.
2.2 La codifica video di base
Il video, per poter essere trasmesso su reti a pacchetto, deve essere compresso. Per
esempio, un segnale video composto da 25 frame al secondo, con risoluzione pari a
704x576 pixel per ogni frame, e con segnale codificato con 24 bit per ogni pixel, per
18
CAPITOLO 2
poter essere trasmesso avrebbe bisogno di una banda pari a circa 243.30 Mb/s: un valore
incompatibile anche per un collegamento di accesso ad Internet ADSL.
Al fine di gestire la trasmissione e la memorizzazione del segnale video digitale,
sono state sviluppate diverse tecniche di compressione video; queste tecniche sono
comunemente denominate video codec. Il termine codec deriva dal processo di
COdifica (o compressione) e di DECodifica (decompressione) del segnale video per la
memorizzazione e/o la trasmissione. Una definizione può essere trovata in [2]:
“Un CODEC video codifica un’immagine sorgente o una sequenza video in una forma
compressa e la decodifica per produrre una copia o un’approssimazione della sequenza
video. Se la sequenza video decodificata è identica all’originale, allora il processo di
codifica è detto senza perdite, se la sequenza decodificata differisce dall’originale, il
processo è con perdite”.
L’obiettivo dei codec è di massimizzare l’efficienza di compressione e la qualità
dell’immagine e di minimizzare la complessità computazionale. La compressione è
ottenuta rimuovendo l’informazione ridondante dal segnale originale. Nel video ci sono
due tipi di ridondanza:
Ridondanza dell’immagine. I pixel non sono completamente indipendenti, ma
altamente correlati con i loro vicini, sia nello stesso frame (ridondanza spaziale) che tra
frame successivi (ridondanza temporale). I pixel, fino a un certo limite, possono essere
predetti dai loro vicini.
Ridondanza psico-visiva. Riguarda il sistema visivo umano. Così come l’orecchio ha
una risposta in frequenza limitata, così anche il binomio occhi-cervello ha una
risoluzione limitata. Possiamo dire che l’occhio è più sensibile alle aree piatte (bassa
frequenza) che a quelle più complesse (alta frequenza). Temporalmente parlando, c’è
anche un limite all’abilità dell’occhio-cervello di seguire immagini in movimento
veloce. Infine, ci sono delle limitazioni sul numero di colori diversi che gli esseri umani
sono in grado di distinguere [3].
19