amr in mp3

Transcript

amr in mp3
Dispense del corso di
Comunicazioni Multimediali II
Stefania Colonnese
Anno Accademico 2008/2009
Indice
1 Introduzione
1.1
2
Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1
Rappresentazione del segnale vocale in forma numerica . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.2
Quantizzatore di Lloyd-Max, codifica PCM e ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
Codifica basata su modelli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1
Regular Pulse Excitation- Long Term Prediction - Linear Prediction Coding . . . . . . . . . . 18
2.3.2
Adaptive Multirate Narrowband Codec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Trasmissione del segnale vocale su canali affetti da errori . . . . . . . . . . . . . . . . . . . . . . . . 21
Codifica del segnale audio
3.1
3.2
Rappresentazione in frequenza del segnale audio e fenomeni di mascheramento . . . . . . . . 24
Lo standard MPEG-1 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1
Layer I e II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.2
Layer III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3
Lo standard MPEG-2 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4
Lo standard MPEG-4 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Codifica di Immagini
33
4.1
Principi di codifica di immagini fisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2
Rappresentazione dell’immagine nel dominio DCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.1
5
24
Principi di codifica del segnale audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.1
4
5
Codifica del segnale vocale
2.4
3
5
Riduzione di ridondanza psicovisuale mediante quantizzazione . . . . . . . . . . . . . . . . . 38
4.3
Lo standard JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4
Lo standard JPEG 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5
Trasmissione di immagini su canali affetti da errori . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
La compensazione di moto
51
5.1
Principi di motocompensazione per la codifica di sequenze video . . . . . . . . . . . . . . . . . . . . 51
5.2
Trasformazioni geometriche per motocompensazione di sequenze video . . . . . . . . . . . . . . . . . 52
5.3
Algoritmi di motocompensazione per la codifica di sequenze video . . . . . . . . . . . . . . . . . . . 55
2
INDICE
6
Servizi di diffusione televisiva: lo standard MPEG-2 e il Digital Video Broadcasting
Lo standard MPEG-2 per servizi multimediali diffusivi . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.2
Lo standard MPEG-2 Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6.4
6.2.1
Il controllo di flusso nella codifica MPEG-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.2.2
Profili e livelli di un decodificatore MPEG-2 video . . . . . . . . . . . . . . . . . . . . . . . 64
Lo standard MPEG-2 system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.3.1
Il Program Stream MPEG-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.3.2
Il Transport Stream MPEG-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.3.3
Il trasferimento di dati nel Transport Stream MPEG-2 . . . . . . . . . . . . . . . . . . . . . . 67
Distribuzione del Transport Stream MPEG-2 mediante piattaforma DVB . . . . . . . . . . . . . . . . 68
6.4.1
I sistemi DVB-S, DVB-C, DVB-T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.4.2
Il sistemi DVB-H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Servizi di videotelefonia e videoconferenza: le Raccomandazioni ITU-T
Principi della codifica video H.263 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.2
Le opzioni avanzate del codec H.263 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
La motocompensazione avanzata in H.263 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.3
La sintassi H.263
7.4
Versioni, profili e livelli del codec H.263 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.5
Raccomandazioni ITU-T per videotelefonia e videoconferenza su rete fissa . . . . . . . . . . . . . . . 83
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.5.1
I formati di multiplazione a pacchetto H.223 e H.225 (RTP) per i flussi di dati multimediali . 85
7.5.2
Il formato RTP per il flusso binario H.263 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Lo standard ISO MPEG-4
92
8.1
Principi dello standard MPEG-4
8.2
La codifica video di oggetti di forma arbitraria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
8.3
8.4
8.5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.2.1
Gli strumenti per la codifica dell’informazione di forma . . . . . . . . . . . . . . . . . . . . . 96
8.2.2
Gli strumenti per la codifica di movimento e tessitura di oggetti di forma arbitraria . . . . . . 97
8.2.3
La sintassi MPEG-4 Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
La codifica video in ambienti di trasporto soggetti ad errore . . . . . . . . . . . . . . . . . . . . . . . 100
8.3.1
Le funzionalità di robustezza all’errore dello standard MPEG-4
. . . . . . . . . . . . . . . . 101
Multiplazione e trasporto di dati MPEG-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8.4.1
Il formato di trasporto MPEG-4: il Delivery Multimedia Integration Framework . . . . . . . . 102
8.4.2
Il formato di memorizzazione MPEG-4: il file MP4 . . . . . . . . . . . . . . . . . . . . . . . 105
La comunicazione video su reti a pacchetto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.5.1
9
76
7.1
7.2.1
8
60
6.1
6.3
7
3
Il formato RTP per il flusso binario MPEG-4 Visual . . . . . . . . . . . . . . . . . . . . . . . 108
La Raccomandazione JVT H.264/AVC
111
9.1
Principi dello standard H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.2
Il Video Coding Layer H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.2.1
La predizione spaziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
9.2.2
Trasformazione e quantizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4
INDICE
9.2.3
La motocompensazione ed il controllo di codifica . . . . . . . . . . . . . . . . . . . . . . . . 115
9.2.4
Algoritmi di codifica entropica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.2.5
Flessibilità di accesso ed efficienza di compressione: i quadri di Switching
. . . . . . . . . 117
9.3
Funzionalitá di robustezza agli errori di H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.4
La sintassi del VCL H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
9.5
Profili e livelli del codificatore H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.6
Il Network Adaptation Layer H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
10 Comunicazioni multimediali su reti radiomobili 2.5 e 3 G
126
10.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
10.2 Il General Packet Radio Service (GPRS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
10.2.1 Qualitá di servizio GPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
10.3 L’Universal Mobile Telecommunication System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
10.3.1 Qualitá di servizio UMTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
10.4 Architettura protocollare della rete d’accesso UTRAN e GERAN . . . . . . . . . . . . . . . . . . . . 130
10.5 Servizi multimediali conversazionali in ambito 3GPP . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
10.5.1 Servizi conversazionali a commutazione di circuito . . . . . . . . . . . . . . . . . . . . . . . 133
10.5.2 Servizi conversazionali a commutazione di pacchetto . . . . . . . . . . . . . . . . . . . . . . 135
10.6 Servizi multimediali di streaming in ambito 3GPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
10.6.1 Architettura protocollare per servizi di streaming a commutazione di pacchetto . . . . . . . . 136
10.6.2 Codec per servizi di streaming a commutazione di pacchetto . . . . . . . . . . . . . . . . . . 136
10.7 Servizi multimediali in ambito 3GPP: la messaggistica multimediale . . . . . . . . . . . . . . . . . . 138
10.8 Il formato file .3gp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
11 Conclusioni
140
11.1 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Capitolo 1
Introduzione
1.1
Introduzione
La maturazione della tecnologia dell’elaborazione del segnale e delle telecomunicazioni consente oggi la trasmissione
e la comunicazione interpersonale di informazioni di differente natura, riconducibile a voce, audio, immagini, video,
dati. Inoltre tali informazioni sono trasmesse nel contesto di servizi differenti fra cui citiamo le comunicazioni
interpersonali, i servizi interattivi, i servizi diffusivi, la messaggistica e la trasmissione dati. Infine, i canali fisici
utilizzati per la trasmissione sono differenti, e coinvolgono canali radio fissi ad elevata capacitá, reti fisse a capacitá
medio bassa, reti fisse a capacitá medio alta e canali radio mobili.
Nel progetto di una comunicazione multimediale é pertanto richiesta l’applicazione, in contesti estremamente
differenziati, di principi generali di rappresentazione efficiente, protezione, e assemblamento dell’informazione. L’obiettivo di questo testo é illustrare tanto alcuni principi generali quanto alcune pecularitá applicative che si riscontrano
nell’ambito delle comunicazioni multimediali, facendo laddove possibile riferimento agli standard internazionali esistenti e in via di definizione. Tali standard costituiscono un’importante premessa per l’interoperabilitá di sistemi reali
ed in definitiva per l’affermazione di servizi basati sulle comunicazioni multimediali.
Con riferimento allo schema a blocchi di un generico sistema di comunicazione, si analizzeranno le principali
metodologie di codifica di sorgente dell’informazione di tipo voce, audio e video esponendo i relativi standard1.1 . Si
discuteranno le modalitá di codifica di canale messe in atto nei differenti contesti applicativi, evidenziando come la
modalitá di protezione dati dipenda sia dal tipo di dati di ingresso sia dalle specifiche del servizio. Si discuteranno
infine i principi e gli standard di multiplazione dati, che rivestono un’importanza fondamentale nella gestione delle
risorse di telecomunicazione, con particolare riferimento all’efficienza e alla qualitá del servizio risultante.
1.1 Gli
enti di standardizzazione che saranno piú frequentemente citati saranno: l’ITU (1865), che é un’agenzia delle Nazioni Unite e vede
una cooperazione di enti governativi ed enti privati, e sará citato con particolare riferimento alla Raccomandazioni della serie H per sistemi di
videotelefonia e videoconferenza; l’organizzazione non governativa degli enti di stantardizzazione nazionale ISO (1946), citata in riferimento ad
importantissimi standard di memorizzazione e diffusione di dati multimediali, quali il JPEG, l’MPEG-2, l’MPEG-4; l’ETSI (1988), organizzazione
non governativa di manufatturiere, operatori, amministrazioni pubbliche, enti di ricerca, citata con riferimento al GSM e alle specifiche tecniche
della televisione digitale, terrestre, satellitare e via cavo e il DVB (1991), consorzio di natura prevalentemente industriale per la definizione di
specifiche di servizi televisivi; il 3GPP (1998), nato da un accordo di collaborazione fra enti di standardizzazione nelle ICT, citato in riferimento
ai servizi multimediali su reti radio mobili 2.5g e 3g.
5
6
CAPITOLO 1. INTRODUZIONE
Figura 1.1: Schema a blocchi di un generico sistema di comunicazione.
Capitolo 2
Codifica del segnale vocale
2.1
Rappresentazione del segnale vocale in forma numerica
Il segnale vocale é il segnale analogico convogliato dalla variazione temporale della pressione acustica generata da un
parlatore. Si assume che le principali caratteristiche del segnale vocale siano note al lettore, cosi’ come le principali
tecniche di codifica. Tuttavia, tali aspetti saranno qui richiamati per completezza.
Il segnale vocale, come altri segnali di interesse nelle comunicazioni, è originariamente definito in un dominio
e codominio continui. Supponendo che il segnale vocale x(t) presenti caratteristiche di limitazione in banda nella
banda [−w, w], esso è perfettamente ricostruibile a partire dalla conoscenza dei suoi campioni estratti a passo di
campionamento 1/2w. La discretizzazione del dominio del segnale pertanto non comporta perdita di informazione.
Ciascun campione xn rappresenta un’istanza di una variabile aleatoria analogica X, e può essere rappresentato
utilizzando un codominio discreto X̃ unicamente a patto di tollerare una perdita di informazione irreversibile sul
segnale originario. In altre parole, una volta rappresentata la variabile aleatoria continua originale in un dominio
quantizzato, essa sarà ricostruibile con una distorsione residua. Per una fissata misura di distorsione d(x, x̃), si
dice Rate-Distortion function R(D) il minimo numero di bit di informazione necessari per rappresentare la variabile
aleatoria X con una distorsione media inferiore o al piú uguale a D, ovvero E {d(x, x̃)} ≤ D. É interessante
osservare che, per funzione di distorsione quadratica d(x, x̃) = (x − x̃)2 , a paritá di varianza σx2 la variabile aleatoria
1
σ2
piú costosa da codificare é la variabile aleatoria Gaussiana, per la quale si ha Rg (D) = log2 ( x ) per D ≤ σx2 e
2
D
Rg (D) = 0 per D ≥ σx2 . Si supponga dunque di tollerare una perdita di informazione dovuta alla quantizzazione
dei valori di ampiezza del segnale da rappresentare. Lo schema completo di campionamento e ricostruzione2.1del
segnale vocale é rappresentato in Fig.2.5.
2.1 Si
osservi che, laddove il teorema del campionamento richiederebbe una ricostruzione mediante un filtro passabasso ideale, uno schema
operativo tipicamente realizza la ricostruzione mediante la cascata di un convertitore digitale analogico a tenuta, approssimante un filtro con
risposta impulsiva rettangolare, seguito da un filtro passabasso con enfasi alle alte frequenze.
7
8
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
Rate Distortion function
Nel contesto della Teoria dell’informazione, la Rate distortion function si definisce come la minima informazione
mutua media fra X e la sua rappresentazione X̃ = Q(X), sotto il vincolo che la distorsione media sia inferiore o
al piú uguale a D, ovvero
def
R(D) =
min
Q, E{d(x,x̃)}≤D
I(X, X̃) = H(X) − H(X|X̃)
dove H(X) ha il significato di entropia nel caso di variabile aleatoria X discreta e di entropia differenziale nel
caso di variabile aleatoria X continua. Per funzione di distorsione quadratica d(x, x̃) = (x − x̃)2 , la rate distortion
function di una variabile aleatoria Gaussiana di varianza σ 2 é data da:
⎧
2
⎪
⎨ 1 log ( σx ) D ≤ σ 2
2
x
D
Rg (D) = 2
⎪
⎩
0 D ≥ σx2
La Rg (D) rappresenta un upper-bound per la R(D) di una v.a. di varianza σ 2 . D’altro canto, é possibile derivare
anche lo Shannon Lower Bound
1
log2 (2πeD)
2
Lo studio puó essere esteso al caso di N v.a. Gaussiane indipendenti di varianza σn2 , n = 0, . . . N − 1. In tal caso,
R(D) ≥ H(X) −
la R(D) congiunta assume la forma:
1
σn2
Rg (θ) =
max 0, log2 ( )
2
θ
n=0,N−1
min σn2 , θ)
Dg (θ) =
n=0,N−1
Analoghe argomentazioni possono essere applicate a processi aleatori Gaussiani. Infatti, per il Teorema di Rappresentazione spettrale, un processo aleatorio stazionario Gaussiano a valor medio nullo e di densitá spettrale di
potenza Px (ejω ) puó essere rappresentato come sovrapposizione di processi Gausssiani indipendenti nelle diverse
bande di frequenza, e si ha
Px (ejω )
1
max 0, log2
dω
2
θ
Dg (θ) = min Px (ejω ), θ dω
Rg (θ) =
2.2
Quantizzatore di Lloyd-Max, codifica PCM e ADPCM
La quantizzazione dei valori di ampiezza del segnale introduce una distorsione media che dipende non solo dal numero
di bit per campione ma anche dalla modalitá di assegnazione del valore di ampiezza ai livelli discreti ammissibili,
ovvero alla scelta degli intervalli di quantizzazione del segnale.
Supponiamo che la distorsione sia misurata da una funzione quadratica, e che ciascun campione sia rappresentato
da b = log2 L bits. Siano qk , k = 0, · · · L − 1 i valori di ampiezza assumibili dalla variabile quantizzata x̃ e θk , k =
0, · · · L gli estremi dei corrispondenti L intervalli di decisione del quantizzatore. Il quantizzatore ottimo secondo il
2.2. QUANTIZZATORE DI LLOYD-MAX, CODIFICA PCM E ADPCM
9
Rate Distortion function: esempio di calcolo
Figura 2.1: Calcolo della rate distortion di 4 variabili Gaussiane indipendenti di assegnata varianza.
Figura 2.2: Schema completo di campionamento e ricostruzione.
criterio dell’errore quadratico medio, cioé quello per cui é minima la distorsione quadratica D = E (x − x̃)2 é
10
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
individuato dalla soluzione congiunta, rispetto alle incognite θk e qk , delle equazioni2.2
⎧
⎨ θk+1 = (qk + qk+1 )/2
⎩
qk = E {x|θk ≤ x ≤ θk+1 }
dove
(2.2.1)
θk+1
E {x|θk ≤ x ≤ θk+1 } =
x · pX (x)dx
θk+1
pX (ξ)dξ
θk
θk
Tale quantizzatore prende il nome di quantizatore di Lloyd-Max.
A titolo di esempio consideriamo il caso che la variabile d’aleatoria di ingresso sia uniforme nell’intervallo
[−A, A] e che sia quantizzata a L = 2b livelli mediante quantizzazione uniforme. In tal caso la distorsione quadratica
misurata é
A2 −2b
(2A/2b )2
=
2
12
3
e diminuisce di 6 dB per ogni bit per campione aggiuntivo2.3 .
D=
Nel caso di codifica del segnale vocale gli standard internazionali di rappresentazione del segnale in termini di
campionamento e quantizzazione adottano metodologie di quantizzazione subottima. In particolare, nella definizione
degli standard sono stati considerati alcuni aspetti operativi. In primo luogo, il segnale può presentare una dinamica
elevata, dell’ordine di 60dB; per riprodurre tanto i livelli piú alti che quelli piú bassi di segnale con un livello
comparabile di rapporto segnale rumore di quantizzazione sarebbe necessario avvicinare i livelli di quantizzazione
dei valori piú bassi distanziandoli per i valori piú elevati. In secondo luogo, la realizzazione di un quantizzatore non
uniforme è più complessa rispetto a quella di un quantizzatore uniforme. Tali aspetti sono tenuti in conto operando
una trasformazione non lineare x̂ = η(x) dei valori x in ingresso ad un quantizzatore uniforme; la trasformazione
espande i valori piú bassi e comprime i valori piú elevati ed é invertita all’uscita del quantizzatore. Un quantizzatore
uniforme, preceduto e seguito da trasformazioni nonlineari prende il nome di compandor (compressor-expander)
2.2 Infatti,
la distorsione puó essere scritta come D =
PL−1 R θk+1
k=0
θk
(x−qk )2 px (x) . Derivando tale espressione rispetto a θk e qk e uguagliando
a zero tali derivate, i.e. ∂D/∂θk = 0, ∂D/∂qk = 0, k = 0, · · · L − 1, si ricavano le espressioni sopra riportate.
2.3 La diminuzione di distorsione di circa 6 dB per bit si osserva anche nella R(D) di una v.a. Gaussiana, in cui D = σ 2 /22R . A titolo
indicativo, la formula “6 dB per bit” puó essere applicata nella grande generalitá dei casi.
2.2. QUANTIZZATORE DI LLOYD-MAX, CODIFICA PCM E ADPCM
11
Figura 2.3: Azione del compandor: quantizzazione uniforme di η(x) e risultante quantizzazione non uniforme di x.
La codifica Pulse Code Modulation del segnale vocale, adottata nella Raccomandazione ITU-T G.711, si basa
sul filtraggio del segnale nella banda [−4KHz, 4KHz], sul suo campionamento alla frequenza di 8KHz, e sulla
quantizzazione a 8 bit di ciascun campione. La quantizzazione é operata a valle della espansione non lineare del
segnale (legge A)
⎧
⎪
⎪
⎨
Ax
0 ≤ x ≤ 1/A
1 + ln A
ηA (x) =
1 + ln Ax
⎪
⎪
⎩
1/A ≤ x ≤ 1
1 + ln A
(2.2.2)
con valore tipico A = 87.6.
Analogamente, lo standard PCM americano2.4 adotta l’espansione non lineare (legge μ)
ημ (x) =
ln(1 + μx)
0≤x≤1
ln(1 + μ)
(2.2.3)
In tal modo, una rappresentazione a livelli uniformi sull’asse ηA(x) (ημ (x)) equivale a una rappresentazione a
livelli non uniformi sull’asse x. Tali rappresentazioni richiedono 64Kb/s e presentano rapporto segnale rumore di
quantizzazione comparabile a quello ottenibile con una quantizzazione uniforme a 13 bit per campione.
2.4 Laddove
necessario, il transcoding fra A-law e μ-law é a carico della rete μ.
12
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
Figura 2.4: Legge A: ηA (x) vs x.
I campioni adiacenti estratti dal segnale vocale a 8KHz presentano un certo livello di correlazione, ovvero una
predicibilitá. Supponendo che al decodificatore siano presenti, all’istante n, un certo numero di campioni quantizzati
x̃n−1 , x̃n−2 , · · ·, é possibile
• effettuare una predizione φ(xn ) del campione attuale xn a partire dai campioni giá noti al decodificatore
x̂n = φ(x̃n−1, x̃n−2 , · · · )
mediante regole note tanto al lato del codificatore che al lato del decodificatore,
• valutare l’errore di predizione residuo en
en = xn − x̂n
• trasmetterne una versione quantizzata ẽn .
• calcolare il campione quantizzato x̃n
x̃n = x̂n + ẽn
Laddove il predittore φ sia in grado di spiegare la correlazione residua fra i campioni, in modo che l’errore di
predizione residuo en presenti una varianza σe2 inferiore alla varianza σx2 dei campioni del segnale di ingresso, esso
può essere rappresentato con un numero inferiore di bit, a paritá di distorsione introdotta sul segnale ricostruito. Tale
codifica, di tipo differenziale, puó essere ulteriormente raffinata rendendo i parametri del filtro e/o del quantizzatore
adattativi alle caratteristiche della sequenza di ingresso.
2.2. QUANTIZZATORE DI LLOYD-MAX, CODIFICA PCM E ADPCM
13
Figura 2.5: Schema di principio del DPCM.
Un caso di rilevante interesse teorico ed applicativo é quello in cui la predizione φ é lineare ed effettuata su un
numero finito di campioni
x̂n = −
P
ai xn−i
i=1
secondo il criterio del minimo errore quadratico medio, ovvero
min
ai ,i=1,···P
E (xn − x̂n )2
Per il principio di ortogonalitá la precedente equazione si traduce nella condizione di ortogonalitá dell’errore allo
spazio delle osservazioni E {(xn − x̂n )xn−i } = 0, i = 1, · · · P , ovvero (vedi Fig. 2.6)
Rx [i] = −
P
ak Rx [i − k], i = 1, · · · P
k=1
def
dove si é posto Rx [i] = E {xn xn−i }. La potenza dell’errore di predizione PE = E {(xn − x̂n )xn } puó essere
espressa come
PE = Rx [0] +
P
ai Rx [−i]
i=1
Pertanto i coefficienti dello stimatore lineare ottimo e la potenza del residuo di predizione possono essere congiunta-
14
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
Figura 2.6: Principio di ortogonalitá.
mente calcolati risolvendo il sistema
⎤⎡ ⎤ ⎡ ⎤
⎡
Rx[−1]
· · · Rx[−P ]
1
PE
Rx[0]
⎥⎢ ⎥ ⎢ ⎥
⎢
⎥
⎢
⎥
⎢
⎢ Rx[1]
Rx[0]
· · · Rx [1 − P ]⎥ ⎢ a1 ⎥ ⎢ 0 ⎥
⎥
⎢
⎥⎢ . ⎥ = ⎢ . ⎥
⎢
..
..
⎥ ⎢ .. ⎥ ⎢ .. ⎥
⎢
.
.
⎦⎣ ⎦ ⎣ ⎦
⎣
0
aP
Rx[0]
Rx[P ] Rx [P − 1] · · ·
(2.2.4)
La soluzione delle equazioni (2.2.4), dette di Yule-Walker, conduce alla determinazione del predittore lineare ottimo
nel senso dell’errore quadratico medio2.5. Osserviamo che la particolare struttura della matrice di autocorrelazione,
che risulta di Toeplitz ed Hermitiana, consente l’adozione di algoritmi veloci per la soluzione del sistema, e rende
tale approccio utilizzabile anche in applicazioni in tempo reale.
Nello schema DPCM, la potenza dell’errore risultante su x̃n eguaglia la potenza dell’errore di quantizzazione
osservato sulla variabile ẽn
2.6
. D’altro canto l’errore di predizione en , pur avendo dinamica nominalmente maggiore
di quella di xn , ha tipicamente potenza minore di quella di xn , e puó essere quantizzato con tecnica PCM utilizzando,
a paritá di distorsione, un minor numero di bit.
Tale approccio é seguito nella codifica Adaptive Differential PCM descritta nella Raccomandazione ITU-T G.726.
In tale Raccomandazione, i coefficienti del predittore sono ricavati in modo adattativo a partire dalla sequenza dei
valori ricostruiti x̃n . Il quantizzatore utilizza una rappresentazione a 4 bit. Inoltre esso presenta livelli di quantizzazione distribuiti in modo non uniforme; gli intervalli di quantizzazione sono variabili in funzione della velocitá
2.5 A
titolo di esempio si osservi che per il predittore ottimo di ordine 1 risulta a1 = −Rx [1]/Rx[0], ovvero x̂n = Rx [1]/Rx[0] ∗ xn .
en − ẽn = xn − x̂n − ẽn = xn − (x̂n + ẽn ) = xn − x̃n
2.6 Infatti,
2.3. CODIFICA BASATA SU MODELLI
15
di variazione del segnale di errore ẽn . Si osservi che le regole per l’adattamento del predittore e del quantizzatore
dipendono da quantitá note al decodificatore e non necessitano della trasmissione di ulteriore informazione. Il bit-rate
risultante per questo tipo di codifica é di 32Kb/s.
Predizione e Stima Ottima
Il problema della predizione lineare si inquadra nel problema piú generale della stima lineare di un segnale yn a
partire da un insieme di osservazioni xn secondo il criterio del minimo errore quadratico medio. In tale scenario, la
stima lineare é realizzata mediante filtraggio ottimo, nel senso che i coefficienti fn del filtro che realizza la stima
sono ricavati in modo che la distanza quadratica media fra la stima ŷn = i fi xn−i disponibile all’uscita del filtro
e il segnale yn che si vuole ricostruire sia minima. Sia S il supporto (finito o infinito numerabile) su cui é diverso
da zero il filtro che realizza la stima. I coefficienti del filtro ottimo sono quelli che minimizzano
def
2
2
2
C = E (yn − ŷn ) = E (yn −
= E yn +
fi xn−i )
fi fk xn−i xn−k − 2
fi yn xn−i
i∈S
i∈S k∈S
i∈S
ovvero quelli che annullano
⎧
⎨
∂C
=0=E 2
⎩
∂fm
fk xn−mxn−k + 2fm xn−m xn−m − 2yn xn−m
k∈S,k=m
⎫
⎬
⎭
In altre parole il filtro ottimo verifica la relazione
fk Rx [m − k] = Ryx[m]
k∈S
Per questa scelta del filtro, l’errore (yn − ŷn ) é ortogonale in senso statistico, ovvero incorrelato, alle osservazioni:
E {(yn − ŷn )xn−m } = E yn xn−m −
fk xn−k xn−m = Ryx[m] −
fk Rx[m − k] = 0
k∈S
k∈S
Ció si puó interpretare geometricamente osservando che la stima lineare (appartenente, cioé, al sottospazio delle
osservazioni) ottima nel senso dell’errore quadratico medio, é quella per cui l’errore é ortogonale al sottospazio
delle osservazioni (Principio di Ortogonalitá).
Tale criterio di stima ottima é di rilevante interesse in diverse applicazioni, quali l’equalizzazione di segnale, il
restauro di immagini sfocate, l’interpolazione o estrapolazione di serie aleatorie. Un caso particolare di stima ottima
lineare é quello in cui lo spazio delle osservazioni é costituito da P campioni di una serie aleatoria xn−1 , · · · , xn−P
ed il segnale che si desidera stimare é il campione attuale della serie, xn . In tal caso, il problema di stima prende il
nome di predizione lineare; infatti, ponendo S = {1, 2 . . . P }, Ryx [m] = Rxx[m] e aggiungendo l’equazione per
il calcolo della potenza dell’errore di predizione, le equazioni normali coincidono con le sopra esposte equazioni di
Yule Walker.
2.3
Codifica basata su modelli
La codifica basata su modelli scaturisce da due ordini di considerazioni.
16
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
In primo luogo il segnale vocale presenta, su intervalli temporali del’ordine di 10, 20, 30 ms, caratteristiche
spettrali quasi stazionarie e prevalente concentrazione dell’energia intorno ad un numero limitato di frequenze. Infatti,
il segnale é formato nelle cavitá risonanti del cavo orale e nasale a partire dal flusso d’aria proveniente dai polmoni
attraverso le corde vocali. Nell’osservazione di una finestra temporale di segnale di circa 20 ms, l’andamento spettrale
osservato presenta un insieme di picchi, modellabili come l’uscita di un filtro, opportunamente eccitato da un segnale
di ingresso. Per questioni di natura computazionale, il filtro é di solito descritto come un filtro a soli poli.
In secondo luogo, l’orecchio umano puó percepire come intellegibile, accettabile o anche soddisfacente una
rappresentazione del segnale vocale che, mimando il modello di formazione del segnale stesso, ne riproduca le
caratteristiche spettrali a breve termine. Pertanto, nella rappresentazione del segnale come uscita di un filtro, il
segnale di ingresso attuale puó essere rappresentato in forma variamente approssimata, dando luogo a diversi livelli di
qualitá. Adottando tali principi per la codifica del segnale, i parametri codificati saranno costituiti dalla descrizione
dei parametri del filtro e della versione approssimata del segnale di ingresso. In linea di principio, l’informazione
piú sensibile é costituita dai parametri che descrivono il filtro, che influiscono maggiormente sulla resa del segnale
ricostruito.
Dati i campioni xn del segnale da codificare, essi sono rappresentati tramite il seguente modello di generazione
xn = −
P
ai xn−i + vn
(2.3.5)
i=1
dove i coefficienti ai sono scelti in modo da riprodurre i picchi spettrali del segnale xn , e si calcolano in funzione
dei valori dell’autocorrelazione della sequenza xn Rx [i] = E {xn xn−i }. Il termine vn rappresenta il segnale di
eccitazione del filtro che genera xn .
Ai fini del calcolo dei coefficienti ai , si ipotizza in primo luogo che il segnale di generazione vn sia costituito da
una serie bianca, ovvero E {vn vn−k } = σv2 δk ; il modello in (2.3.6) prende il nome di modello Autoregressivo, e la
sequenza di campioni xn é detta serie aleatoria autoregressiva (AR)
Serie aleatoria autoregressiva
Si dice serie aleatoria autoregressiva (AR) una serie aleatoria osservata all’uscita di un filtro a soli poli quaando
all’ingresso é applicato un rumore bianco. Una serie aleatoria AR xn é pertanto descritta da una equazione alle
differenze finite
xn = −
P
ai xn−i + vn
(2.3.6)
i=1
con E {vn vn−k } = σv2 δk . La autocorrelazione di una serie AR soddisfa un’equazione analoga a quella di generazione
della serie AR. Lo spettro di densitá di potenza di una serie AR é esprimibile come
Px (ejω ) =
|1 +
P
σv2
k=1
ak ejωk |2
I parametri ak , k = 1, · · · P governano la posizione dei P picchi di Px (ejω ) in [−π, π)]. In definitiva, la serie
aleatoria AR costituisce un modello matematico potente e compatto, governato cioé da un numero di parametri
limitato, ovvero i coefficienti ai , i = 1, · · · P e la varianza σv2 .
Tale modello consente di valutare analiticamente i coefficienti ai , che influenzano direttamente i picchi spettrali
del filtro, in funzione della autocorrelazione della sequenza xn . Una volta ricavati i valori ai , sotto questa ipotesi
2.3. CODIFICA BASATA SU MODELLI
17
semplificativa, la codifica basata su modelli opera una rappresentazione piú appropriata del segnale vn . I diversi
algoritmi di codifica basata su modelli adottano rappresentazioni differenti di tale segnale.
L’equazione di generazione del modello AR consente di esprimere i coefficienti di autocorrelazione della sequenza
xn in funzione dei coefficienti ai , i = 1, · · · P
E {xn xn−k } = −
P
ai E {xn−i xn−k } + E {vn xn−k }
i=1
ovvero
Rx[k] = −
P
ai Rx [k − i] + σv2 δ[k], k ≥ 0
(2.3.7)
i=1
Rx[k] = Rx[−k], k < 0
I parametri del modello, ovvero i coefficienti ai , i = 1, · · · P e la varianza σv2 , possono essere ricavati a partire dai
campioni di autocorrelazione di xn risolvendo il sistema di equazioni di Yule-Walker
⎡
Rx [0]
Rx [−1]
···
Rx [−P ]
⎤⎡
1
⎤
⎡
σv2
⎤
⎢
⎥⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢ Rx [1]
Rx [0]
· · · Rx[1 − P ]⎥
⎢
⎥ ⎢ a1 ⎥ ⎢ 0 ⎥
⎢
⎥⎢ . ⎥ = ⎢ . ⎥
.
.
⎢
⎥ ⎢ .. ⎥ ⎢ .. ⎥
..
..
⎣
⎦⎣ ⎦ ⎣ ⎦
0
aP
Rx [0]
Rx [P ] Rx[P − 1] · · ·
(2.3.8)
In presenza di un numero di misure finito, i parametri del modello sono ottenuti sostituendo ai campioni di
x[k] stimati2.7 a partire da un numero finito di campioni. Come precedentemente
autocorrelazione di xn i campioni R
anticipato, nelle applicazioni di codifica del segnale vocale il segnale di eccitazione vn é caratterizzato in modo
differente nei diversi algoritmi di codifica. Per citare alcuni casi di interesse applicativo, osserviamo che esso puó
essere descritto come
• sequenza aleatoria emessa da una sorgente riducibile a due sottosorgenti, che generano rispettivamente un
rumore Gaussiano bianco (suoni sordi) o una sinusoide la cui frequenza fondamentale é detta di pitch.
• treno di impulsi di posizione e ampiezza variabili
• sequenza estratta da un insieme di possibili sequenze (codebook), eventualmente aggiornato in modo adattativo
in funzione delle caratteristiche del segnale da codificare
Nel presente paragrafo si descriveranno sinteticamente i metodi di codifica basata su modelli adottati nelle reti
radiomobili GSM e UMTS.
2.7 La
stima polarizzata della funzione di autocorelazione conduce ad una matrice di autocorrelazione stimata definita positiva ed assicura la
P
jωk interni al cerchio unitario).
stabilitá della Serie AR (Zeri di 1 + P
k=1 ak e
18
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
Algoritmo di Levinson-Durbin
Un efficiente algoritmo ricorsivo per il calcolo dei coefficienti ap e della varianza σv2 é l’algoritmo di LevinsonDurbin, qui di seguito schematicamente riportato. L’algoritmo si basa sul calcolo dei coefficienti di modelli di
ordine crescente
• Inizializzazione
2
σv0
= R̂x (0)
a11 = −R̂x (1)/R̂x(0)
(2.3.9)
2
2
σv1
= σv0
(1 − a211 )
• Modello di ordine i
aii = −
R̂x(i) +
aik = ai−1
k
k=1,i−1 ai−1 k R̂x (i
2
σvi−1
− aii ai−1
i−k ,
− k)
k = 1, · · · i − 1
(2.3.10)
2
2
σvi
= σvi−1
(1 − a2ii )
dove con R̂x(n) si sono indicati i valori stimati dell’autocorrelazione del segnale a partire dai campioni disponibili.
I coefficienti aii sono anche detti coefficienti di riflessione. Un algoritmo alternativo é rappresentato dall’algoritmo
di Schur, che valuta direttamente i coefficienti di riflessione aii e si presta alla realizzazione in parallelo.
2.3.1
Regular Pulse Excitation- Long Term Prediction - Linear Prediction Coding
La codifica RPE-LTP-LPC é adottata nel GSM e conduce ad un bit-rate di sorgente di 13Kb/s. La codifica é
applicata su trame di 20 ms, corripondenti a 160 campioni estratti a 8KHz. Il filtro LPC é un filtro a soli poli
dell’ottavo ordine, ed é determinato in modo da minimizzare l’energia del segnale di eccitazione mediante l’algoritmo
di calcolo detto di Shur. Il segnale di eccitazione é calcolato mediante filtraggio (Short Term Filtering). Il segnale
cos´ ottenuto presenta una ridondanza dovuta ad una pseudoperiodicitá. Tale ridondanza é rimossa suddividendo la
trama di 160 campioni in quattro blocchi (ciascuno di 40 campioni). Per ogni blocco, si individua una predizione,
identificata in termini di ritardo e fattore di scala, a partire dai blocchi precedenti. Il residuo di predizione é quindi
filtrato passabasso e sottocampionato di un fattore 1/3. Si sceglie una delle tre sequenze sottocampionate; poiché la
fase scelta puó variare da blocco a blocco, essa é trasmessa insieme al valore di picco del residuo. Infine, le ampiezze
degli impulsi residui sono codificate con tecnica ADPCM. L’allocazione dei bit fra le diversi componenti codificate
il filtro LPC sono trasmessi
é sintetizzata in Tabella 2.1. É interessante osservare che i parametriaii che descrivono
1 + aii
def
.
codificando i relativi Log Area Ratio definiti come LARii = log10
1 − aii
2.3.2
Adaptive Multirate Narrowband Codec
Il codec AMR é adottato nel sistema UMTS2.8 e possiede la proprietá di consentire l’adattamento del bit-rate alla
disponibilitá delle risorse di rete con un intervallo temporale di 20 ms. Il bit-rate puó variare da un massimo di
2.8 Al
codec AMR Narrowband si affianca il codec AMR wideband, adottato per servizi di streaming e di messaggistica multimediale, che
estende la banda a 507000Hz, ed opera a 9 differenti bit-rate fra i 6.6 e i 23.85 kbit/s, su campioni estratti a 16 KHz in un intervallo di 20ms.
2.3. CODIFICA BASATA SU MODELLI
19
Informazione
Parametri LPC (8)
36
Ritardo LTP
28
Guadagno LTP
8
Fase di sottocampionamento
8
Ampiezza massima
24
Ampiezze campioni (13)
156
Totale
260
Tabella 2.1: Bit codificati per ogni trama di 20 ms nel GSM RPE-LTP-LPC.
Figura 2.7: Schema del vocoder LPC-LTP-RPE adottato nel GSM.
12.2Kb/s fino ad un minimo di 4.75Kb/s. La codifica si basa su un modello LPC descritto da un filtro a soli poli
di ordine 10. Nella modalitá a 12.2Kb/s il filtro é calcolato su un intervallo di 10 ms
2.9
. I parametri dei filtri sono
codificati quantizzando e trasmettendo delle funzioni ad esse correlate, dette Linear Spectral Pairs, che presentano
caratteristiche piú favorevoli rispeto alla quantizzazione.
2.10
Il segnale di eccitazione del filtro LPC è suddiviso in
Esso si basa sui principi di Linear Prediction Coding, e per motivi di complessitá computazionale codifica separatamente i contenuti al di sotto e
al di sopra di 6400 Hz.
2.9 Ogni 120 ms, sono calcolati due filtri, a partire da due stime della funzione di autocorrelazione ottenute estraendo i campioni mediante due
distinte finestre, relative principalmente al secondo e al quarto sottoblocco dei 160 campioni. I parametri dei due filtri cos´ ottenuti sono utilizzati
per generare, mediante interpolazione temporale, i parametri relativi al primo e al terzo sottoblocco.
2.10 Le Linear Spectral Pairs sono definite come LSP = cos ω , dove ω sono le radici dei polinomi P (z) = A(z) + z−(P +1) A(z−1 ), Q(z) =
i
i
i
P
A(z) − z−(P +1) A(z−1 ), con A(z) = 1 − i=1,P −1 ai z−i .
20
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
quattro blocchi e rappresentato come la somma di due sequenze estratte rispettivamente da un codebook adattativo ed
uno di innovazione. Il codebook adattativo é costituito dai precedenti campioni del segnale di ingresso stesso; nella
ricerca della parola di codice adattativo si utilizzano anche ritardi non interi, corrispondenti a sequenze interpolate, e
si privilegiano le sequenze di campioni piú prossime. Il codebook fisso é costituito da sequenze di impulsi sparsi di
valore ±1, diversamente allocati. I campioni relativi al sottoblocco attuale sono descritti come una somma pesata di
una versione interpolata temporalmente dei campioni al sottoblocco precedente e di un segnale di eccitazione estratto
dal codebook fisso. In dipendenza del rate, cambia la rappresentazione dei pesi utilizzati nella somma, che possono
essere ulteriormente predetti temporalmente e compressi. In decodifica sono inoltre esplicitamente previste alcune
operazioni di post-processing finalizzate a ridurre gli artefatti introdotti dalla codifica.
Il codec AMR presenta ulteriori caratteristiche di flessibilitá, consentendo di codificare trame che non contengano
voce ad un bit-rate inferiore rispetto alle trame che contengono segnale vocale. Questa funzionalitá é realizzata
ricorrendo ad un modulo di rivelazione di attivitá vocale (Voice Activity Detector, VAD) al trasmettitore, che decide
per ogni trama di 20 ms se il segnale é presente o no. Inoltre, vengono stimati, codificati e trasmessi alcuni parametri
(Silence Descriptor, SID) che descrivano le caratteristiche del rumore di fondo. Al decodificatore tali parametri
sono utilizzati per generare un rumore sintetico (confort noise) che dia la percezione di comunicazione attiva. La
flessibilitá del codec puó essere sfruttata al livello radio per ridurre le risorse trasmissive impiegate, riducendo il
consumo di potenza del terminale e di conseguenza aumentando la durata della batteria e diminuendo il livello di
interferenza sugli altri utenti.
Figura 2.8: Schema del vocoder AMR adottato nell’UMTS.
2.4. TRASMISSIONE DEL SEGNALE VOCALE SU CANALI AFFETTI DA ERRORI
2.4
21
Trasmissione del segnale vocale su canali affetti da errori
Nelle precedenti sezioni sono state esaminati i principi di codifica del segnale vocale e i principali standard2.11 ad essi
relativi. Su canali di comunicazione affetti da errori, l’informazione trasmessa deve essere opportunamente protetta.
Da un punto di vista teorico, la codifica di sorgente e di canale ottima potrebbero essere derivate separatamente.
Tuttavia le tecnica di codifica di sorgente e di canale in uso sono ben lungi dal massimo teorico e traggono beneficio
dall’essere progettate congiuntamente.
Per ció che riguarda le codifiche come la PCM e la ADPCM, che mirano a riprodurre la forma d’onda del segnale
nel tempo, l’informazione compressa da trasmettere non é a priori differenziabile in termini di una maggiore o minore
importanza ai fini della qualitá percettiva del segnale ricostruito. Pertanto la codifica di canale é operata in modo
indifferenziato sui dati di sorgente, secondo modalitá che dipendono dal mezzo trasmissivo.
Per ció che riguarda invece la codifica dei dati compressi mediante codifica basata su modelli, i parametri codificati
rivestono importanza differente ai fini della riproduzione del segnale. I parametri piú sensibili sono quelli relativi ai
coefficienti del filtro LPC, che determinano la posizione dei picchi in frequenza del segnale ricostruito.
Il sistema GSM distingue, nell’ambito dei 260 bit relativi ad una trama, fra 182 bit che necessitano di protezione
e 78 bit che non necessitano di protezione. Inoltre, nel sottoinsieme dei bit da proteggere sono individuati i 50
bit piú importanti. Pertanto, a questi ultimi é preliminarmente applicata una codifica a blocco mediante l’aggiunta
di 3 bit di paritá
2.12
. Tutti i bit della prima classe vengono poi codificati mediante un codice convoluzionale di
rapporto di codice Rc = 1/2. Essi vengono poi trasmessi insieme ai bit della seconda classe, per un totale di
(50 + 3 + 132 + 4) × 2 + 78 = 456 bit, corrispondenti ad un bit-rate dopo codifica di canale pari a 456/20ms =
22.8Kb/s. In trasmissione é effettuato un interleaving su 8 Normal Burst GSM, a loro volta inseriti in 8 trame, in
un assegnato time slot; nei primi quattro Time Slot, i dati sono multiplati insieme ai dati della trama precedente;
nei rimanenti quattro Time Slot, i dati sono multiplati insieme ai dati della trama successiva2.13 . Complessivamente,
l’interleaving si estende su un intervallo temporale di 4ms × 8 = 32ms. Osserviamo l’effetto di un errore di
trasmissione. Esso é con elevata probabilitá rivelato se compare fra i bit piú significativi; puó o meno essere rivelato
se compare fra i bit meno significativi. In presenza di errori rivelati sui 50 bit piú importanti, la trama ricevuta
é scartata, e possono essere messe in atto strategie di mascheramento basate su tecniche predittive. In ogni caso,
essendo noto e prefissato il numero di bit della trama vocale, la decodifica puó riprendere dalla trama immediatamente
successiva a quella errata.
Nella trasmissione sul sistema UMTS, si osserva la differenza sostanziale che lo strato di Radio Resource Management puó pienamente fruire della flessibilitá di adattamento del bit-rate trasmissivo della sorgente, grazie alla
possibilitá di allocare codici CDMA di differente Spreading Factor. Per altro, questo consente di sfruttare tecniche
di Voice Activity Detection e di codifica di parametri di Confort Noise in modo piú sistematico ed efficiente di
quanto possibile nel caso GSM. Tutti i bit della trama vocale sono trasmessi utilizzando un codice convoluzionale
con rapporto di codice variabile fra 1/2 e 1/5, come rappresentato in Tab.2.2; un certo numero di bit, variabile in
2.11 I
sistemi GSM e UMTS colloquiano fra di loro e con la rete GSTN mediante opportune operazioni di Transcoding, realizzate rispettivamente
dalla TRAnscoding Unit nella GERAN e dal Media Gateway nella UMTS Core Network. La TRAU supporta la transcodifica fra il Full Rate a
13 Kb/s e Half Rate a 5.6 Kb/s, basato su tecnica CELP, Enhanced Full Rate a 12.2 Kb/s, AMR NB e PCM. Il Media Gateway supporta tutte le
modalitá di transcoding del TRAU piú quelle fra IP, ATM, PCM.
2.12 Ai rimanenti 132 bit della prima classe sono applicati 4 tail bit al fine di chiudere il successivo codificatore convoluzionale su uno stato noto.
2.13 Ciascun Normal Burst convoglia 456/8=57 bit codificati relativi alla trama attuale, che occupano alternativamente i bit pari e i bit dispari dei
Normal Burst appartenenti a TS successivi; i rimanenti 57 bit, costituiti rispettivamente dai bit dispari e dai bit pari, sono occupati dai bit delle
trame temporalmente adiacenti.
22
CAPITOLO 2. CODIFICA DEL SEGNALE VOCALE
Figura 2.9: Normal Burst del GSM.
funzione del bit-rate selezionato, é codificato preliminarmente con dei bit di paritá. I parametri di Confort Noise
sono trasmessi utilizzando un codice convoluzionale di Rc = 1/4. Alternativamente, puó essere utilizzata la modalitá
cosiddetta half rate, in cui i rapporti di codice variano fra 1/2 e 1/3.
Bit Rate
Code Rate
12.2
1/2
10.2
1/3
7.95
1/3
7.4
1/3
6.7
1/4
5.9
1/4
5.15
1/5
4.75
1/5
Tabella 2.2: Esempi di rapporti di codice per codifica di segnale vocale nel sistema UMTS.
Bibliografia
[1] M.G. Di Benedetto, P. Mandarini, “Comunicazioni Elettriche”, Edizioni Ingegneria 2000.
[2] G. Scarano, “Dispense di elaborazione delle immagini”, infocom.uniroma1.it/g̃aetano.
[3] 3GPP Technical Specification TS 06.10, “Full rate speech; Transcoding”, www.3gpp.org.
[4] 3GPP Technical Specification TS 05.03, “Channel coding”, www.3gpp.org.
[5] 3GPP Technical Specification TS 26.090, “Adaptive Multi-Rate speech codec: Transcoding functions”, www.3gpp.org.
[6] 3GPP Technical Specification TS 25.212, “Multiplexing and Channel Coding (FDD)”, www.3gpp.org.
[7] 3GPP Technical Specification TS 25.222, “Multiplexing and Channel Coding (TDD)”, www.3gpp.org.
[8] 3GPP Technical Specification TS 25.944, “ Channel Coding and Multiplexing Examples”, www.3gpp.org.
23
Capitolo 3
Codifica del segnale audio
3.1
Principi di codifica del segnale audio
La compressione del segnale audio é di interesse in numerose applicazioni, quali la memorizzazione, la diffusione, lo
streaming su reti fisse e mobili. La rappresentazione PCM del segnale audio tipicamente adottata nelle applicazioni
di memorizzazione ad alta qualitá (CD audio) prevede il campionamento del segnale stereo a 44.1KHz, quantizzato
a 16 bit per campione, e conduce ad un bit-rate netto 3.1 di 1.4M b/s. A partire dalla fine degli anni ’80 sono state
definite tecniche di codifica in grado di rappresentare il segnale con circa un bit per campione senza degradarne la
qualitá soggettiva. Tali tecniche possono tradursi in algoritmi molto complessi, ma sono riconducibili al principio di
base della riduzione della ridondanza percettiva dal segnale audio.
La rappresentazione delle diverse componenti del segnale puó essere tanto piú parsimoniosa quanto piú esse sono
percettivamente trascurabili. A tal fine, il segnale audio é rappresentato in un dominio in cui le componenti abbiano
diversa importanza percettiva. Poiché la risposta psicoacustica ad uno stimolo presenta una sensibilitá variabile con
la frequenza dello stimolo stesso, il segnale é tipicamente rappresentato come sovrapposizione di componenti allocate
in diverse sottobande di frequenza.
La risposta psicoacustica, oltre che funzione della frequenza dello stimolo, é funzione della presenza concomitante
di piú stimoli. Infatti, la presenza di uno stimolo di significativa potenza causa fenomeni di mascheramento percettivo
di altri stimoli vicini nel tempo e in frequenza.
Richiameremo qui i principi della codifica percettiva, discutendo la rappresentazione in frequenza del segnale
audio e i fenomeni di mascheramento percettivo in frequenza e nel tempo. Nelle sezioni successive descriveremo
le caratteristiche fondamentali dello standard MPEG-1 Layer I e II e Layer III, e dei suoi successori MPEG-2 e
MPEG-4.
3.1.1
Rappresentazione in frequenza del segnale audio e fenomeni di mascheramento
Consideriamo un segnale audio x(t). Lo spettro del segnale, osservato su intervalli sufficientemente brevi da potersi
ritenere stazionario, occupa una banda che puó estendersi fino a piú di 20KHz. Il sistema uditivo umano non ha
3.1 Si
osservi che a valle della codifica di linea necessaria per funzionalitá di sincronizzazione e correzione d’errore, ogni campione a 16 bit é in
definitiva rappresentato da 49 bit, per un bit rate complessivo di 4.32 Mb/s.
24
3.1. PRINCIPI DI CODIFICA DEL SEGNALE AUDIO
25
uguale sensibilitá su tutte le frequenze occupate dal segnale; ad esempio, l’intensitá percepita é maggiore in corrispondenza delle frequenze tipiche della voce umana. Esso puó essere modellato come un banco di filtri passabanda,
parzialmente sovrapposti, di banda passante piú piccola (dell’ordine di 50 − 100Hz) per segnali alle frequenze piú
basse, destinate ad un analisi piú fine, e di banda passante via via crescente (fino a qualche KHz).
In condizioni statiche, per ogni tono sinusoidale ad una frequenza assegnata, é possibile individuare una soglia di
intensitá al di sotto della quale il tono non é percepito (static threshold ). Quando sono presenti piú toni, si verifica
un fenomeno che prende il nome di mascheramento in frequenza. In particolare, la presenza di un tono piú forte
(masker) aumenta la soglia minima di percepibilitá nelle frequenze adiacenti. Pertanto, toni di potenza piú piccola
di frequenza sufficientemente vicina divengono non percepibili (maskee). L’effetto di mascheramento si estende
maggiormente verso le frequenze piú elevate di quella del (masker) e in misura minore verso le frequenze piú basse;
la banda su cui si estende il mascheramento cresce al crescere della frequenza del masker. Inoltre, il rumore ha un
migliore effetto di mascheramento di un tono sinusoidale. Fissato un assegnato spettro a breve termine del segnale,
il fenomeno di mascheramento é tipicamente descritto analiticamente mediante una soglia M variabile in frequenza
che rappresenta la minima potenza percepita. Il rapporto fra la potenza Ps del segnale e la soglia M é anch’esso
funzione della frequenza e prende il nome di Signal to Mask Ratio:
def
SM R =
Ps
M
Supponiamo che sia presente, oltre al segnale, una componente di rumore di potenza Pn , ad esempio dovuta ad errore
di quantizzazione. Fintantoché la potenza di rumore é al di sotto della soglia di udibilitá:
Pn < M
ovvero fintantoché
Ps
Ps
>
= SM R
Pn
M
tale rumore non sará percepito da un ascoltatore. Il SMR rappresenta pertanto il minimo rapporto segnale rumore
SN R =
che deve essere garantito nella rappresentazione codificata della componente di segnale affinché il disturbo non sia
percepibile. Analogamente, si definisce Noise to Mask Ratio il rapporto fra la potenza del rumore e la soglia ad una
assegnata frequenza (NMR), e la condizione di non percepibilitá richiede N M R < 1.
Un altro fenomeno di mascheramento ha luogo nel tempo. L’occorrenza di un suono piú potente puó mascherare
uno piú debole che occorra in un intervallo di tempo successivo di durata variabile fra i 50ms e i 200ms. Il
mascheramento puó avvenire anche quando il suono piú debole precede il masker, ma l’estensione temporale del
fenomeno di mascheramento é di pochi millisecondi.
Consideriamo dunque un segnale audio x(t) rappresentato dalla sequenza dei suoi campioni xn estratti soddisfacendo le condizioni del teorema del campionamento, e rappresentati numericamente mediante un numero di bit per
campione tale da ritenere trascurabile la potenza dell’errore di quantizzazione nel successivo trattamento del segnale.
Il segnale presenta caratteristiche di non stazionarietá. Supponiamo quindi di considerare un frammento del segnale
originario di lunghezza finita xn , n = 0, · · · N − 1. I piú importanti sistemi di codifica del segnale audio si basano
su alcuni principi basilari, qui brevemente riportati.
Rappresentazione del segnale nel dominio della frequenza.
Sub-band coding
26
CAPITOLO 3. CODIFICA DEL SEGNALE AUDIO
Nella codifica a sottobande la rappresentazione é realizzata applicando il segnale all’ingresso di un banco di
filtri passabanda (filtri di analisi), e codificando separatamente le componenti spettrali ottenute. Tali componenti,
opportunamente compresse, sono applicate in fase di decodifica ad un banco di filtri che ricostruiscono il segnale
(filtri di sintesi).
Transform coding
In alternativa, alla rappresentazione a sottobande, il segnale puó essere rappresentato operando sui suoi campioni
una trasformata lineare discreta, i cui coefficienti sono successivamente quantizzati e trasmessi. Eventualmente, la
porzione di segnale da analizzare puó essere rappresentato applicando l’operazione di trasformata a blocchi parzialmente sovrapposti, in modo da ridurre eventuali artefatti ai confini fra blocchi trasformati compressi in modo
indipendente.
Hybrid coding
La rappresentazione a sottobande puó essere integrata con la rappresentazione basata su trasformata. In tale approccio, tipicamente, il segnale é preliminarmente rappresentato in sottobande e successivamente ciascuna sottobanda
é trasformata e compressa. Come vedremo nel seguito, questo tipo di rappresentazione é adottata nello standard
MPEG-1 Layer III, Also Known As (AKA) MP3.
Qualsiasi sia il tipo di rappresentazione adotata, la codifica opera una analisi spettrale a breve termine del segnale
finalizzata ad identificare l’andamento spettrale del SMR. Per un fissato andamento del SMR, é possibile ridurre
l’informazione trasmessa in modo impercepibile se l’errore introdotto presenta una potenza inferiore alla soglia su
tutto la banda del segnale. Pertanto l’analisi consente di individuare, frequenza per frequenza, la massima potenza
per l’errore dovuto alla compressione. Ad esempio, supponendo di rappresentare la componente di frequenza in
questione mediante una codifica PCM, la determinazione della soglia conduce alla determinazione della massima
potenza dell’errore di quantizzazione tollerabile, ed, in definitiva, al numero di bit che devono essere allocati per la
rappresentazione della componente.
Inoltre, la codifica puó trarre vantaggio dall’operare un’adattamento della finestra di analisi temporale per limitare
alcuni fenomeni di distorsione, detti fenomeni di pre-eco, che hanno luogo quando all’interno della finestra temporale
da comprimere é presente un segnale di tipo a gradino, con una netta discontinuitá piano-forte. Infatti in tali casi
l’analisi spettrale della finestra conduce a determinare la soglia di mascheramento tenendo conto della presenza di
tale segnale che funge da masker, e a effettuare la compressione di conseguenza. Tuttavia, data la non stazionarietá
del segnale in questione, il fenomeno di mascheramento percettivo non opera se non pochi millisecondi prima che il
segnale appaia. Quindi, l’errore di quantizzazione non percepibile dopo che é presente il masker, é invece percepibile
prima. Pertanto, nella decodifica del blocco tale errore si manifesta come un artefatto percepibile che precede il
masker, e che prende il nome di pre-eco. La lunghezza delle sezioni di segnale analizzate e codificate deve pertanto
adattarsi, in modo che in presenza di una transizione, la lunghezza della finestra sia piccola. In tal modo il numero di
campioni su cui é presente il preeco sia ridotto; quando tale numero é molto piccolo, il preeco diviene impercepibile
grazie al mascheramento temporale (vedi Fig.3.1).
3.2
Lo standard MPEG-1 Audio
Lo standard MPEG-1, formalizzato in ambito ISO all’inizio degli anni ’90, si é rapidamente diffuso grazie ad alcune
circostanze favorevoli. In primo luogo é uno standard aperto, realizzabile da chiunque a partire dal documento
di definizione dello standard, acquistabile dall’ISO. In secondo luogo esso é largamente documentato grazie alla
3.2. LO STANDARD MPEG-1 AUDIO
27
Figura 3.1: Esempio di generazione di un fenomeno di preeco e del suo superamento mediante adattamento della finestra
temporale per l’analisi in frequenza.
disponibilitá di software pubblico sviluppato durante i lavori di standardizzazione al fine di verificare e esplicitare
le funzionalitá della codifica e decodifica. In terzo luogo, esso prevede uno sbilanciamento della complessitá a
carico del codificatore, mentre il decodificatore é quanto possibile semplificato, cos´ da abilitare la produzione di
riproduttori (player) a basso costo. Infine, la standardizzazione é intervenuta tempestivamente rispetto all’avvento
della digitalizzazione dei contenuti multimediali, anticipando e scoraggiando il proliferare di soluzione proprietarie
di interoperabilitá necessariamente limitata.
Lo standard di codifica audio consta di tre schemi di codifica (Layers) di complessitá ed efficienza di compressione
crescente, che sono qui di seguito sinteticamente descritti. In tutti i casi, i dati codificati sono organizzati in trame
(frame ) decodificabili indipendentemente le une dalle altre, costituite rispettivamente dalla rappresentazione codificata
di 384 campioni per il Layer-I e di 1152 per i Layer-II e III. Osserviamo che tali trame sono di lunghezza in bit
variabile con il bit-rate. Ad esempio, per audio Layer-III MPEG audio campionato a 44.1KHz ogni trama rappresenta
un intervallo di 38.28msec. Per un bit-rate 384 kbits/sec la trama corrisponde a 1.8 KBytes. Il bit-rate dell’audio
codificato con MPEG-1 varia da un minimo di 32 Kb/s per segnale mono ad un massimo che dipende dalla complessitá
della codifica adottata e dalla qualitá desiderata. In Tabella sono riportati i bit-rate medi tipicamente richiesti dai
diversi Layer per la codifica percettivamente trasparente, ovvero caratterizzata da artefatti di compressione non
percepibili, di segnale audio stereo; la qualitá del segnale decodificato é pertanto quella di un CD audio.
3.2.1
Layer I e II
Gli schemi di codifica MPEG-1 Layer I e II operano una codifica a sottobande. Entrambi gli schemi si basano sulla
decomposizione del segnale di ingresso in sequenze di lunghezza assegnata pari a 384 o 3 × 384 = 1152 campioni,
corrispondenti ad intervalli temporali di analisi di durata differente in funzione della frequenza di campionamento
del segnale all’ingresso. Fissiamo l’attenzione sulla modalitá operativa per frequenza di campionamento del segnale
di ingresso a 48KHz, ovvero segnale limitato in banda a 24KHz.
La sequenza oggetto della codifica é applicata all’ingresso di un banco di 32 filtri che effettuano la decomposizione
del segnale in 32 sottobande di larghezza uniforme; la larghezza di ciascuna sottobanda é pari ad 1/32 della banda
28
CAPITOLO 3. CODIFICA DEL SEGNALE AUDIO
iniziale, ovvero 24KHz/32 = 750Hz. L’operazione di filtraggio é realizzata ricorrendo ad una struttura di calcolo
molto efficiente, realizzata da un banco di filtri passabanda, denominati polifase, di lunghezza 512 coefficienti e di
larghezza di banda a 3 dB di 750 Hz; i filtri sono pertanto parzialmente sovrapposti in frequenza. Ciascuna delle 32
sequenze in uscita al banco di filtri polifase é sottocampionata nel tempo di un fattore 32, e pertanto é costituita da
384/32 = 12 campioni nel caso del Layer I o da 3 × 12 campioni nei Layer II e III. I filtri di analisi al codificatore ed
i filtri di sintesi al decodificatore sono progettati in modo tale che, in assenza di compressione, il segnale ricostruito
all’uscita del banco di filtri di sintesi in decodifica sia uguale all’originale.
Per ciascuna sottobanda si valuta il massimo valore assunto all’interno del blocco di 12 campioni; tale valore
rappresenta il fattore di scala relativo al blocco. Nel Layer I é trasmesso il fattore di scala, nel Layer II é trasmessa
la tripletta di fattori di scala relativi a blocchi di 12 campioni adiacenti; in questo secondo caso la codifica sfrutta la
correlazione fra fattori di scala con un risparmio in bit di circa il 50% rispetto al Layer I.
I blocchi di campioni in uscita alle diverse sottobande sono quindi quantizzati, ricorrendo a quantizzatori uniformi.
I livelli di quantizzazione variano a seconda della sottobanda interessata. In tal modo, la fase di quantizzazione sfrutta
il mascheramento percettivo allocando meno bit per la quantizzazione dei campioni relativi alle sottobande in cui la
soglia di mascheramento dinamico é piú elevata. L’allocazione dei bit parte da un numero di bit pari a zero su tutte
le sottobande, e aumenta selettivamente fintantoché il livello della potenza dell’errore di quantizzazione non scende
al di sotto della soglia in ogni sottobanda.
Osserviamo che la soglia di mascheramento dinamico puó essere calcolata mediante un’analisi FFT della sequenza
da comprimere; il calcolo della soglia di mascheramento non é definito dallo standard -che tuttavia contiene due sezioni
informative che identificano due metodi di calcolo- e puó essere realizzato in modo piú o meno sofisticato, tenendo
eventualmente in conto la natura tonale o rumorosa del mascherante. In definitiva, la determinazione della soglia e
l’allocazione ottima dei bit dal punto di vista della qualitá percepita costituisce un elemento critico della codifica e
distingue le diverse soluzioni sviluppate.
3.2.2
Layer III
Il Layer III é uno schema di codifica ibrido, che coniuga cioé la rappresentazione a sottobande con l’utilizzo di
trasformate, a bit-rate costante o variabile, che opera su blocchi di 1152 campioni del segnale di ingresso. Esso
prevede la divisione in sottobande, realizzata mediante lo stesso banco di filtri polifase descritti per il Layer I e
II, e la decimazione delle componnti di segnale cos´ ottenute. Le sequenze relative alle diverse sottobande sono
quindi costituite da 3 × 12 = 36 campioni. Per ciascuna sequenza di 36 campioni, tre differenti fattori di scala sono
individuati e codificati come nel Layer II.
La sequenza in uscita a ciascuna sottobanda é quindi sottoposta ad una rappresentazione del segnale in frequenza
mediante una trasformazione lineare che prende il nome di Modified Discrete Cosine Transform3.2 . Tale trasformazio3.2 Indichiamo
con xn , n = 0, · · · N − 1 una sequenza di lunghezza finita N . La trasformata MDCT di tale sequenza é definita come:
XkM DCT =
N
−1
X
„
xn cos
n=0
2π(n + 1/2 + N/4)(2k + 1)
2N
«
, k = 0, · · · N/2 − 1
Osserviamo che la MDCT associa ad N campioni nel tempo N/2 campioni trasformati. La sua trasformata inversa Inverse MDCT é definita
come
DCT
=
x̂IM
n
2
N
„
N/2−1
X
n=0
xn cos
2π(n + 1/2 + N/4)(2k + 1)
2N
«
n = 0, · · · N − 1
La IMDCT non ricostruisce gli N campioni nel dominio originale, dal momento che non dispone di N coefficienti reali. Tuttavia, applicando
3.3. LO STANDARD MPEG-2 AUDIO
29
ne consente di calcolare, a partire dai 36 campioni del segnale relativo alla singola sottobanda, fino ad un massimo di
18 componenti frequenziali diverse per ciascuna delle 32 sottobande. I coefficienti trasformati sono quindi quantizzati
con allocazione dei bit e dei livelli differenziata non solo fra le diverse sottobande, ma anche, per ciascuna sottobanda,
fra le diverse componenti MDCT3.3 . Ció consente di differenziare la qualitá della codifica all’interno di ciascuna
sottobanda, tenendo conto in modo piú fine dei fenomeni di mascheramento. La quantizzazione é non uniforme, ed é
caratterizzata da livelli piú fitti in corrispondenza dei valori piú piccoli3.4. Quando il segnale presenta caratteristiche
di stazionarietá, la MDCT opera su blocchi di 36 campioni calcolando 18 componenti frequenziali distinte. Quando
il segnale presenta una brusca discontinuitá ,la lunghezza della sequenza su cui opera la MDCT viene ridotta, al fine
di limitare i fenomeni di preeco. In tal caso, la trasformazione opera su blocchi di 12 campioni e consente il calcolo
di 6 componenti frequenziali distinte. Tali componenti sono a loro volta quantizzate in modo differenziato e non
uniforme. I coefficienti MDCT quantizzati sono ulteriormente codificati mediante codice di Huffmann.
Come giá descritto per i Layer I e II, l’allocazione é effettuata sulla base di un’analisi spettrale del segnale
che consenta di calcolare la soglia di mascheramento percettivo. La potenza del rumore di quantizzazione é quindi
mantenuta al di sotto di tale soglia, per cercare di ottimizzare la qualitá finale dell’audio ricostruito.
MPEG-1
Bit-rate
Layer I
384Kb/s
Layer II
192Kb/s
Layer III
128Kb/s
Tabella 3.1: Bit-rate richiesto per la codifica trasparente di segnale audio stereo.
Osserviamo che la codifica MPEG-1 di segnale stereo puó avvalersi di una codifica congiunta dei due canali
audio, che sfrutti la correlazione fra i due segnali e le caratteristiche dell’apparato psicoacustico umano. In particolare,
per segnali a frequenze superiori ai 2-3 KHz, l’apparato psicoacustico é sensibile all’intensitá del segnale e al
bilanciamento di potenza fra i canali destro e sinistro. Pertanto, é possibile approssimare la coppia dei segnali che
costituiscono il segnale stereo codificando un unico segnale di intensitá, generato come somma dei segnali destro e
sinistro, e trasmettendo indipendentemente i fattori di scala relativi ai due canali.
I dati relativi a 384 o 1152 campioni sono organizzati in trame audio di lunghezza variabile, dotate di informazioni
aggiuntive di sincronizzazione, protezione (CRC) e descrizione del contenuto (titolo, autore, copyright, etc.).
3.3
Lo standard MPEG-2 Audio
Lo standard MPEG-2 Audio prevede tanto algoritmi di codifica compatibili con quelli definiti da MPEG-1 (MPEG-2
Forward/Backward Compatible), quanto algoritmi di codifica avanzati (MPEG-2 Advanced Audio Coding). Tali
algoritmi sono analoghi a quelli definiti in MPEG-1, ma con alcuni raffinamenti, principalmente riferibili a:
la MDCT a sequenze sovrapposte del 50 % e calcolando le relative IMDCT, é possibile ricostruire la sequenza xn mediante tecniche di Overlap
and Add.
3.3 I coefficienti MDCT di ciascuna sottobanda sono divisi in gruppi, ciascuno dei quali corrisponde approssimativamente ad una banda critica; ai
diversi gruppi sono quindi applicati passi di quantizzazione differenti, cosi’ da controllare il rapporto segnale rumore in funzione dell’andamento
della masking threshold.
3.4 La quantizzazione non uniforme é realizzata ricorrendo a un compandor (η(x) = x3/4 ).
30
CAPITOLO 3. CODIFICA DEL SEGNALE AUDIO
• aumento della risoluzione in frequenza: MPEG-2 AAC opera una codifica a trasformata MDCT che conduce
ad una risoluzione massima in frequenza di 1024 componenti spettrali, che sono raggruppate tipicamente in 43
bande cui vengono assegnati passi di quantizzazione (scale factors) differenti;
• maggiore flessibilitá di adattamento della finestra temporale alle caratteristiche del segnale, che puó variare da
2048 a 256 campioni, con conseguente riduzione dei fenomeni di preeco;
• introduzione di tecniche predittive nel dominio del tempo e della frequenza; in particolare MPEG-2 AAC
introduce una tecnica di adattativitá temporale della quantizzazione che prende il nome di Temporal Noise
Shaping3.5.
Lo standard MPEG-2 Backward Compatible offre compatibilitá all’indietro, nel senso che consente ad un co-
dificatore MPEG-2 di generare un bit-stream decodificabile da un decodificatore MPEG-1, e lo standard Forward
Compatible offre compatibilitá in avanti, nel senso che consente ad un decodificatore MPEG-2 la decodifica di un
bit-stream MPEG-1.
Un aspetto importante dello standard MPEG-2 Audio é che esso consente una efficiente rappresentazione di audio
di tipo multicanale. Tale audio puó essere codificato per una decodifica simultanea, al fine di generare un contesto
audio multisorgente, o per consentire il trasporto di piú traccie audio alternative, per esempio relative a diverse lingue
di riproduzione. Il contesto multicanale tipico di applicazioni di cinema e HDTV é stato standardizzato in ambito
ITU-R, e e prevede un formato p/q basato su p canali frontali e q canali posteriori. Il formato piú diffuso e’ il
formato 3/2 stereo, con un ulteriore canale opzionale, detto di Low Frequency Enhancement (LFE o subwoofer), che
estende il contenuto di frequenze e innalza il livello dei segnali nella banda dai 15 Hz ai 120 Hz.
Nel caso multicanale i canali non sono codificati indipendentemente, ma in modo combinato, anche al fine di
garantire la compatibilitá all’indietro verso la decodifica MPEG-1 di segnali stereo. Pertanto, in fase di codifica i
canali sono mixati al fine di ottenere i due canali destro e sinistro di un sistema stereo tradizionale (2/0). Questi
ultimi sono codificati in modo da consentire la decodifica da parte di un deocodificatore MPEG-1. I rimanenti
tre canali sono poi codificati in modo tale che un decodificatore MPEG-2 possa ricostruire i 5 canali del sistema
3/2. E’ interessante osservare che quando si opera la compressione su canali miscelati, si sfruttano i fenomeni di
mascheramento presenti in tali canali. Quando poi, a partire da questi, sono ricostruiti i 5 segnali del sistema 3/2, é
possibile che nel segnale ricostruito all’uno o all’altro dei canali tali mascheramenti non siano piú presenti, e quindi
sul segnale decodificato sia presente una sensibile distorsione. Il mixaggio dei canali a monte della codifica deve
tenere conto di tali fenomeni di unmasking.
3.4
Lo standard MPEG-4 Audio
Lo standard MPEG-4 Audio prevede alcuni aspetti innovativi rispetto agli standard di codifica audio precedenti, che
riflettono i principi che hanno ispirato l’attivitá di standardizzazione ISO-MPEG-4. Li richiamiamo qui brevemente.
Integrazione di audio sintetico e naturale
3.5 La
tecnica di Temporal Noise Shaping consente di rappresentare in modo compatto picchi transitori nel dominio del tempo utilizzando forme
di predizione nel dominio della frequenza, in modo duale a ció che avviene nel LPC.
3.4. LO STANDARD MPEG-4 AUDIO
31
Lo standard prevede strumenti di codifica estremamente differenziati, finalizzati a premettere la codifica sia di voce,
sia di audio, sia di suoni sintetici. In altre parole la sintassi consente una estrema di flessibilitá di rappresentazione,
e il decodificatore puó in linea di principio essere costituito anche da un sistema MIDI o da un sistema Text-toSpeech. La sintassi consente di rappresentare suoni e musiche mediante un linguaggio simbolico detto Structured
Audio Orchestra Language, che viene interpretato al decodificatore consentendo la sintesi dei suoni codificati.
Gli strumenti effettivamente usati nella singola istanza di codifica dipendono dal contesto, e possono essere fissati
da appropriate raccomandazioni, ovvero contrattati all’inizio della sessione di comunicazioni, ovvero codificati in un
appropriato formato per applicazioni di memorizzazione.
Supporto di codifica di suoni naturali per bit-rate variabile fra 2 Kb/s e 64 Kb/s
Lo standard consente di selezionare i codificatori di suoni naturali in funzione delle applicazioni, e offre diverse
sintassi di codifica. Puó quindi offrire tanto una sintassi per codifica vocale a basso bit-rate basata su codec CELP
quanto una sintassi per codifica audio compatibile con lo standard MPEG-2 AAC. Come vedremo lo standard MPEG4 AAC che rappresenta il profilo di codifica per l’audio ad alta qualitá é suggerito dal 3GPP per servizi di streaming
nell’UMTS.
Supporto di codifica robusta rispetto agli errori di trasmissione
Per motivi storici, lo standard MPEG-4 audio é stato il primo sviluppato tenendo conto delle possibilitá di diffusione di
audio su canali affetti da errori di trasmissione quali quelli radiomobili. Esso prevede che il bit-stream goda di proprietá
di Resilience, ovvero sia quanto possibile robusto rispetto ad errori sui singoli bit, quando essi siano localizzati. Inoltre
lo standard diverse funzionalitá di protezione mediante codici a correzione o rivelazione d’errore, eventualmente
applicabili in modo mirato a diverse componenti del bit-stream. Rispetto ai casi di protezione dell’informazione
discussi per il segnale vocale, si presenta l’importante differenza che il carico della protezione é affidato alla coppia
codificatore/decodificatore di sorgente.
Bibliografia
[1] P. Noll, “MPEG Digital Audio Coding”, IEEE Signal Processing Magazine, September 1997, pp.59-81.
[2] D. Pan, “A tutorial on MPEG/Audio Compression”, IEEE Transactions on Multimedia, Vol. 12, no. 2, 1995, pp.60-74.
[3] K. Brandenburg, “MP3 and AAC explained”, AES 17-th International Conference on High Quality Audio Coding.
[4] D. Thom, H. Purnhagen, “MPEG Audio FAQ Version 9 MPEG-4”, Documento ISO/IEC JTC1/SC29/WG11 N2431, N2431.doc.
32
Capitolo 4
Codifica di Immagini
4.1
Principi di codifica di immagini fisse
Questo capitolo richiama brevemente alcuni concetti esposti in dettaglio in [1], qui riportati per facilitare l’accesso
al lettore.
Un’immagine digitale é una particolare sequenza bidimensionale x[n1 , n2 ] definita su un supporto finito n1 =
0, · · · N − 1, n2 = 0, · · · N − 1. Poiché un colore puoéssere percettivamente riprodotto miscelando opportunamente
tre sorgenti, é usuale rappresentare un’immagine a colori mediante tre sequenze bidimensionali, che in ogni punto
rappresentano il peso relativo di ciascuna delle tre sorgenti ”primarie“. Una terna di sorgenti di riferimento nelle
applicazioni di elaborazione, codifica e trasmissione delle immagini corrispondenti tipicamente alle componenti rossa
verde e blu é quella definita dal Comitée International de l’Eclairage (CIE) (1920), RCIE = 700 nm, GCIE =
746.1 nm, BCIE = 435.8 nm4.1 . Una terna alternativa, comunemente utilizzata nella rappresentazione di immagini
in forma digitale é costituita dalla luminanza (Y ), rappresentativa del livello di luminositá espresso in scala di grigio,
e da due componenti di crominanza che rappresentative di differenze di colore (CR, CB ), definite come:
def
Y = αR R + αGG + αB B, αR + αG + αB = 1; αG > αR , αG > αB
CB (U ) ∝ B − Y
CR (V ) ∝ R − Y
4.2
Un’immagine rappresentata in forma digitale é definita su un supporto discreto e finito; anche le informazioni
di colore sono rappresentate in forma numerica mediante un numero finito di bit per campione, con un livello di
qualitá visuale dipendente dal numero di bit prescelto. Quando un’immagine é rappresentata nella forma luminanzacrominanze, é possibile sfruttare la circostanza che l’apparato visivo umano é meno sensibile ai dettagli dell’informazione di crominanza rispetto a quanto lo sia ai dettagli dell’informazione di luminanza. Pertanto la frequenza di
campionamento spaziale puó essere diversa per le diverse componenti, ed in particolare ridotta per le componenti di
crominanza.
I principali standard internazionali che definiscono le modalitá di rappresentazione delle immagini sono le Raccomandazioni ITU-R BT 601 (anche nota come CCIR 601) e ITU-R BT 609. Tali raccomandazioni definiscono
utilizzata é anche la definizione di sorgenti (RN , GN , BN ) definita dal National Television Systems Committee (NTSC) (1950).
definizione piú comune (NTSC, ITU-R BT.601, ITU-R BT.709, JFIF, SMPTE) di luminanza pone αR = 0.299, αG = 0.587, αB =
4.1 Molto
4.2 La
0.114.
33
34
CAPITOLO 4. CODIFICA DI IMMAGINI
alcune modalitá di rappresentazione di immagini a colori su un dominio discreto, che tipicamente prevedono un
sottocampionamento per la componenti di crominanza e differiscono per le posizioni relative delle griglie di campionamento delle diverse componenti. Le piú diffuse modalitá di sottocampionamento sono riportate in Tab. 4.1. Nella
rappresentazione luminanza/crominanze, inoltre, é usuale quantizzare con un numero maggiore di bit i campioni di
luminanza (ad es. 8 bit) e con un numero minore i campioni delle crominanze (ad es. 4 bit).
Modalitá di sottocampionamento
Nome
Caratteristiche
4:4:4
Ognuno dei tre canali presenta lo stesso sampling rate, ovvero a 4 campioni
4:2:2
di luminanza corrispondono 4+4=8 campioni di crominanza
I canali di crominanza sono sottocampionati di un fattore 2 nella direzione orizzontale, ovvero a 4 campioni di luminanza corrispondono 2+2=4
4:2:0
campioni di crominanza
I canali di crominanza sono sottocampionati di un fattore 2 sia nella direzione
orizzontale che nella direzione verticale, ovvero a 4 campioni di luminanza
corrispondono 2 campioni di crominanza
Tabella 4.1: Modalitá di sottocampionamento piú diffuse nell’elaborazione di immagini e sequenze video.
4.1. PRINCIPI DI CODIFICA DI IMMAGINI FISSE
35
Trasformata Coseno Discreta (DCT) di sequenze di lunghezza finita
La Trasformata Coseno Discreta di una sequenza xn di lunghezza finita N consiste nella rappresentazione della
(k)
sequenza come sovrapposizione di N sequenze bn di lunghezza finita N, che costituiscono una base ortonormale:
⎧
1
(0)
⎪
⎪
⎨ bn = √N , n = 0, · · · N − 1
⎪
2
k
⎪
(k)
⎩ bn =
cos 2π
(n + 1/2) , n = 0, · · · N − 1; k = 1, · · · N − 1
N
2N
I coefficienti DCT sono calcolati come prodotto scalare della sequenza con i vettori della base, ovvero
N−1
1 xn
X0 = √
N n=0
N−1
2 k
Xk =
xn cos 2π
(n + 1/2) , k = 0, · · · N − 1
N n=0
2N
La trasformata é invertita dalla equazione di sintesi
xn =
1
X0 +
N
N−1
2 k
Xk cos 2π
(n + 1/2) , n = 0, · · · N − 1
N
2N
k=1
Grazie alla ortogonalitá degli elementi della base, la migliore approssimazione (nel senso quadratico medio) di xn
nel sottospazio generato da un sottoinsieme di sequenze della base, si ottiene troncando la sommatoria agli elementi
(k)
di tale sottoinsieme, e conservando i coefficienti Xk relativi a tali elementi. Inoltre, poiché le sequenze {bn } sono
a norma unitaria, la trasformazione conserva l’energia della sequenza nel dominio trasformato.
La DCT coincide con la trasformata di Karhounen Loeve
a
per processi di Markov di ordine 1.
trasformazione KLT di un insieme di sequenze aleatorie x di lunghezza finita N utilizza la base ortonormale di rappresentazione
P
φi , i = 1, · · · N che minimizza l’errore quadratico medio commesso rappresentando in modo approssimato la sequenza x = N
i=0 xi φi con
PM
PN
una sequenza x̂ =
i=0 xi φi +
i=M +1 ci φi , ovvero la sequenza ottenuta conservando un numero fissato M < N di coefficienti e
a La
sosituendo i rimanenti con opportuni valori costanti. Si puó dimostrare che i vettori della base
ortonormale (φi H · φo
h = δij ) e i valori dei
nP
¯
˘
N
2
2
coefficienti ci , i = 1, · · · N che minimizzano l’errore quadratico medio E ||x − x̂||
=E
(x
−
c
)
risolvono l’equazione
i
i
i=M +1
¯
˘
E (x − E {x}) · (x − E {x})H φi = λi φi , ovvero sono gli autovettori della matrice di covarianza delle sequenze in questione, e i valori
costanti sono pari a ci = E {xi } = E {x}H φi , i = 1, · · · N . Per processi di Markov di ordine 1 gli autovettori della matrice di covarianza,
ovvero i vettori della base KLT, concidono con i vettori della base DCT.
A titolo puramente esemplificativo, la figura rappresenta la" trasformata
x = [x1 , x2 ]T di valor
# ottima di una v.a. Gaussiana bidimensionale j
ff
2
1
1
1 T −1
. La ddp risulta px =
medio nullo mx = [0, 0]T e matrice di covarianza Kx =
exp
−
K
x
. Gli
x
x
2π det(Kx )1/2
2
1 2
"
"
√ #
√ #
1/ 2
−1/ 2
autovettori sono b1 =
√
√
, relativo all’autovalore λ1 = 3, e b2 =
, relativo all’autovalore λ2 = 1. Le componenti
1/ 2
1/ 2
˘ ¯
˘ ¯
Xi = xT bi, i = 1, 2 sono incorrelate (E {X1 X2 } = 0) ed hanno rispettivamente varianza E X12 = 3, E X22 = 1.
.
36
CAPITOLO 4. CODIFICA DI IMMAGINI
Figura 4.1: Esempio di trasformata ottima: x = [x1 , x2 ]T v.a. Gaussiana bidimensionale di valor medio nullo e matrice di
covarianza Kx .
4.2
Rappresentazione dell’immagine nel dominio DCT
Il principio fondamentale su cui si basa la codifica di immagini fisse é la rappresentazione dell’immagine o di sue
parti in un dominio trasformato, che goda di alcune caratteristiche fondamentali:
• la trasformazione operi la compattazione dell’energia in pochi coefficienti;
• i coefficienti che rappresentano l’immagine nel dominio trasformato abbiano differente rilevanza soggettiva,
cos´ che su di essi possa essere operata una quantizzazione mirata a ridurre i bit assegnati ai coefficienti meno
significativi;
Poiché pressoché tutti i principali standard di codifica di immagine operano la trasformazione su blocchi quadrati
NxN, assumeremo subito questo come caso di riferimento. Consideriamo il blocco NxN come elemento di uno
spazio vettoriale. La trasformazione del blocco puó essere interpretata come rappresentazione del blocco stesso in
una opportuna base dello spazio vettoriale. Gli elementi della base sono a loro volta particolari blocchi NxN. La base
piú utilizzata é quella relativa alla Trasformata Coseno Discreta (DCT), i cui elementi sono NxN blocchi, ciascuno
di dimensione NxN:
def
(k1 ,k2 )
bDCT
[n1 , n2 ] =
α(k1 )α(k2 ) cos
2πk1 (n1 + 1/2)
2N
cos
2πk2 (n2 + 1/2)
2N
n1 , n2 = 0, · · · N − 1, k1 , k2 = 0, · · · N − 1
,
4.2. RAPPRESENTAZIONE DELL’IMMAGINE NEL DOMINIO DCT
def
con α(0) =
1
N
e α(k) =
2
N
37
per 1 ≤ k ≤ N − 1.
Come si vede il singolo elemento della base DCT é una funzione separabile, costituita dal prodotto di funzioni
sinusoidali, con una periodicitá variabile con l’indice k. I fattori α(k) assicurano l’ortonormalitá della base.
Figura 4.2: Immagini della base DCT.
I coefficienti dello sviluppo del blocco di dimensione NxN x[n1 , n2 ] si determinano calcolando il prodotto scalare
con le relative funzioni della base:
(k ,k )
def
1 2
X DCT [k1 , k2] =< x[n1, n2 ], bDCT
[n1 , n2 ] > =
N−1
N−1
n1 =0 n2 =0
e a partire da essi é possibile sintetizzare il blocco originario
(k ,k )
1 2
x[n1, n2 ]bDCT
[n1 , n2 ]
38
CAPITOLO 4. CODIFICA DI IMMAGINI
x[n1 , n2 ] =
N−1
N−1
(k ,k )
1 2
X (DCT) [k1 , k2]bDCT
[n1 , n2 ]
k1=0 k2 =0
La trasformata DCT offre interessanti proprietá di compattazione dell’energia nelle componenti a bassa frequenza,
ovvero nei coefficienti X DCT [k1, k2 ] di basso indice.
La trasformazione ottima dal punto di vista della capacitá di compattare l’energia di immagini aleatorie é nota
come trasformata di Karhounen Loeve (KLT) e dipende dalle caratteristiche statistiche di autocorrelazione esibite dalle
immagini stesse. Per particolari classi di immagini stocastiche (campi di Markov di ordine 1), la KLT coincide con la
DCT. Poiché una vasta classe di immagini naturali é ben approssimata da tale modello stocastico, si deduce che per tali
immagini la DCT é una buona approssimazione della trasformazione ottima. La compattazione dell’energia operata
dall’applicazione della DCT a blocchi 8x8 di immagini naturali é stata la tecnologia abilitante per la compressione
di imagini fisse ed anche in larga misura per la compressione di sequenze video. Tale approccio é stato affiancato
da approcci differenti solo nei piú recenti standard di codifica (JPEG2000 per immagini fisse e H.264 per sequenze
video).
Dal punto di vista operativo osserviamo che la Trasformata DCT puó essere calcolata mediante strutture computazionali estremamente efficienti. Poiché utilizza funzioni cosinusoidali, cioé a valori reali, le diverse implementazioni
presenteranno differenze numeriche che rendono la trasformazione non perfettamente invertibile se operata con calcolatori con differente precisione e struttura di calcolo. Pertanto, gli standard che utilizzano tale trasformata specificano
i limiti di accuratezza numerica che devono essere rispettati al fine di garantire l’interoperabilitá fra sistemi dotati di
realizzazioni numeriche differenti.
4.2.1
Riduzione di ridondanza psicovisuale mediante quantizzazione
Le immagini naturali hanno un contenuto energetico prevalentemente rappresentato da basse frequenze. Pertanto, non
tutti i coefficienti relativi alle alte frequenze sono diversi da zero. Inoltre, il sistema visivo umano è meno sensibile
alle alte frequenze, che contengono l’informazione relativa ai dettagli fini, alla tessitura, piuttosto che alle basse.
Pertanto, i coefficienti alle alte frequenze possono essere quantizzati con un limitato numero di bit, senza introdurre
una distorsione sensibile dal punto di vista psicovisuale. Al limite, alcuni coefficienti possono essere scartati, senza
che l’errore di ricostruzione sia soggettivamente percepibile.
Al contrario, i coefficienti alle basse frequenze necessitano di una migliore rappresentazione; fra questi, il coefficiente X (DCT) [0, 0], che rappresenta il valore medio della componente nel blocco osservato (coefficiente DC) riveste
la maggiore importanza visuale e necessita della quantizzazione piú fine.
4.3
Lo standard JPEG
La struttura essenziale di un codificatore JPEG è mostrata nella Fig.4.3, che rappresenta la modalitá di codifica di
base, detta modalitá sequenziale, e che consta di tre passi fondamentali, ovvero
• rappresentazione dei dati in un dominio trasformato
• quantizzazione
• codifica entropica
4.3. LO STANDARD JPEG
39
Figura 4.3: Schema del Codificatore JPEG
Ogni componente (luminanza, crominanze) dell’immagine da codificare è suddivisa in blocchetti da 8x8 pixel4.3 .
Ciascuno di questi blocchetti è trasformato mediante DCT, senza perdita di informazione. I 64 coefficienti DCT sono
applicati all’ingresso del quantizzatore. Tipicamente, tra i 64 coefficienti DCT assumono valore significativamente
diverso da zero solo quelli relativi alle frequenze spaziali piú basse.
Figura 4.4: Suddivisione dell’immagine in blocchi 8x8 e relativa DCT
A ciascun coefficiente DCT X (DCT) [k1 , k2 ] é associato uno specifico passo di quantizzazione Q[k1, k2 ], che
rappresenta l’ampiezza dell’intervallo di quantizzazione adottato nella quantizzazione uniforme del coefficiente di
4.3 La
dimensione 8x8 dell’elemento di immagine da trasformare é la stessa per tutte le componenti anche quando le crominanze siano
sottocampionate rispetto all’immagine originale.
40
CAPITOLO 4. CODIFICA DI IMMAGINI
indici [k1 , k2]. Tale passo é inversamente crescente con l’importanza visuale. I livelli di quantizzazione dei coefficienti
corrispondenti alle alte frequenze spaziali sono tipicamente relativamente grandi. Per ogni coefficiente é operata una
quantizzazione uniforme con intervalli di quantizzazione pari Q[k1 , k2 ]: :
(DCT)
[k1 , k2]
X
, k1 , k2 = 0, · · · , 7
X̃ (DCT) [k1 , k2 ] = round
Q[k1, k2 ]
Si osservi che quando un coefficiente DCT assume valori minori del relativo passo di quantizzazione, a valle della
quantizzazione esso é rappresentato da un valore nullo.
Lo standard consente la scelta degli 8x8 valori dei passi di quantizzazione, che sono inseriti nei dati codificati.
A titolo esemplificativo, nello standard sono inseriti i valori riportati in Tabella 4.3; tali valori possono essere scalati
tramite un fattore moltiplicativo scalare, al fine di bilanciare le prestazioni del codificatore in termini di efficienza di
compressione e di qualitá.
Crominanza (CR CB )
Luminanza (Y )
16
11
10
16
24
40
51
61
17
18
24
47
66
99
99
99
12
12
14
19
26
58
60
55
18
21
26
66
99
99
99
99
14
13
16
24
40
57
69
56
24
26
56
99
99
99
99
99
14
17
22
29
51
87
80
62
47
66
99
99
99
99
99
99
18
22
37
56
68
109
103
77
66
99
99
99
99
99
99
99
24
35
55
64
81
104
113
92
99
99
99
99
99
99
99
99
49
64
78
87
103
121
120
101
99
99
99
99
99
99
99
99
72
92
95
98
112
100
103
99
99
99
99
99
99
99
99
99
Tabella 4.2: Tabelle dei passi di quantizzazione Q[k1 , k2 ] suggerite nello standard JPEG.
A valle della quantizzazione, ciascun blocco 8x8 d́ell’immagine originale é rappresentato da un blocchetto DCT
i cui coefficienti sono stati quantizzati in base a criteri di rilevanza psicovisuale. La Trasformata DCT ha operato un
compattamento dell’energia e la quantizzazione adattativa ha rimosso le componenti ad alta frequenza percettivamente
irrilevanti. Pertanto, ciascun blocco presenta una struttura tipica in cui la grande maggioranza dei coefficienti sono
nulli, e i pochi coefficienti non nulli sono concentrati alle basse frequenze. Inoltre, esiste una correlazione residua fra
trasformate di blocchi spazialmente adiacenti. In particolare, i coefficienti X̃ (DCT) [0, 0], valutati su blocchi adiacenti,
sono molto correlati, dal momento che rappresentano il valor medio di luminanza di regioni adiacenti di un immagine
naturale. La struttura dei blocchi DCT e la correlazione fra blocchi adiacenti é sfruttata al fine di compattare
l’informazione trasmessa.
Per ciøche concerne i coefficienti X̃ (DCT) [0, 0] di ciascun blocco 8x8, é codificata e trasmessa la differenza fra
il coefficiente quantizzato DC del blocco corrente e il coefficiente quantizzato del blocco precedente. Tale valore
ha una dinamica nominalmente maggiore, ma tipicamente piú piccola del coefficiente originale, e pertanto richiede
meno bit per essere trasmessa con la stessa distorsione media sul valore ricostruito.
I coefficienti X̃ (DCT) [k1, k2 ], (k1 , k2 ) = (0, 0) (coefficienti AC) sono scanditi in un ordine tale da esplorare prima
le basse frequenze orizzontali e verticali e successivamente le alte frequenze.
Adottando questa scansione, l’informazione si presenta come alternanza di coefficienti diversi da zero e di successione di coefficienti nulli (corse di zeri). I coefficienti tipicamente diversi da zero si addensano all’inizio della
scansione, successivamente i coefficienti non nulli tendono ad essere separati da corse di zeri via via piú lunghe, ed
4.3. LO STANDARD JPEG
41
Figura 4.5: Coefficienti DC ed AC, preparazione alla codifica
alla fine della scansione pressoché tutti i coefficienti risultano nulli. Pertanto, l’informazione puó essere codificata
trasmettendo i valori dei coefficienti nel caso che questi siano diversi da zero, e la lunghezza delle corse nel caso di
coefficienti nulli. In particolare, il blocco é descritto codificando l’ampiezza (AMPLITUDE) di ciascun coefficiente
AC non nullo congiuntamente alla lunghezza della corsa di coefficienti nulli (RUNLENGTH) che lo precedono nella
sequenza. In linea di principio, i coefficienti DCT presentano una dinamica piú elevata rispetto ai coefficienti dell’immagine di partenza4.4 e codificare l’ampiezza di ciascun X̃ (DCT) [k1 , k2] con il massimo numero di bit richiesto dalla
dinamica sarebbe dispendioso. Pertanto, al fine di limitare al minimo il numero di bit utilizzato per rappresentare
ciascun coefficiente il campo AMPLITUDE presenta lunghezza variabile; tale informazione (SIZE) deve essere anch’essa codificata e trasmessa al decodificatore. In definitiva, una corsa di zeri terminata da un coefficiente non nullo
é descritta dai tre parametri (RUNLENGTH, SIZE, AMPLITUDE). Per i motivi sovra esposti, il valore differenziale
del coefficiente DC é descritto dai due parametri (SIZE, AMPLITUDE).
La coppia (RUNLENGTH, SIZE) é rappresentata tramite una parola di codice a lunghezza variabile (Variable
Length Code, VLC). Il codice é costruito mediante codifica di Huffmann, rappresentando cioé con un minor numero
di bit i simboli (RUNLENGTH, SIZE) piú frequenti e con un maggior numero di bit i simboli meno frequenti. Le
tavole della codifica di Huffmann sono codificate e comunicate al decodificatore. L’intero che rappresenta il valore
del campo AMPLITUDE é rappresentato ancora da un codice a lunghezza variabile (Variable Length Integer, VLI).
Il codice VLI non é realizzato mediante codifica di Huffmann, ma assegna parole piú lunghe ai valori di ampiezza
piú elevati, indipendentemente dalla frequenza di occorrenza relativa.
Il decodificatore sulla base delle tavole della codifica di Huffmann opera la decodifica dell’ampiezza dei livelli
quantizzati dei coefficienti DCT. I coefficienti X̃ (DCT) [0, 0] sono ricostruiti a partire dalle differenze. Quindi, sulla
base dei passi Q[k1 , k2 ] nelle matrici di quantizzazione, ciascun livello quantizzato X̃ (DCT) [k1 , k2] é riportato alla
4.4 I
√
√
P −1 PN −1
3
coefficienti DCT sono calcolati come X (DCT) [k1 , k2 ] ∝ (1/ N ) × (1/ N) × N
n1 =0
n2 =0 (· · · ) N × (· · · ). Per N = 8 = 2 ,
se i valori dell’immagine sono rappresentati in virgola fissa a 8 bit/pixel, la rappresentazione di ciascun coefficiente DCT richiede 11 bit. Per
immagini ad alta qualitá a 12 bit/pixel (ad es. immagini mediche, ad elevato contenuto diagnostico), ciascun coefficiente DCT richiede 15 bit.
42
CAPITOLO 4. CODIFICA DI IMMAGINI
dinamica originale X̃ (DCT) [k1 , k2 ] · Q[k1 , k2]. La trasformazione IDCT opera il calcolo della Trasformata Coseno
Discreta Inversa. I blocchi 8x8 ricostruiti sono giustapposti spazialmente generando l’immagine decodificata.
L’algoritmo di codifica sovraesposto, detto JPEG in modalitá sequenziale, prevede delle varianti che sono utili
in tutte le applicazioni in cui si voglia trasferire rapidamente una versione a bassa qualità dell’immagine, e.g. per
renderla subito visibile all’utente, raffinandola poi in passi successivi.
Modalitá Progressiva.
Per ciascun blocco 8x8 non sono trasmessi in un colpo solo tutti i coefficienti quantizzati, e per ciascun coefficiente
tutti i bit, ma l’immagine é trasmessa in modo progressivo. Alla prima iterazione puøessere trasmesso solo un sottoinsieme dei coefficienti AC per ciascun blocco; tale approccio prende il nome di selezione spettrale. In contemporanea
o in alternativa alla selezione spettrale, é possibile trasmettere solo i bit piú significativi di ciascun coefficiente;
tale approccio é detto ad approssimazioni successive. Ricevuta questa descrizione sommaria di tutti i blocchetti, il
decodificatore puó decodificare una versione grossolana dell’immagine codificata, raffinandola successivamente mano
mano che informazioni di maggiore dettaglio sono ricevute. La scelta del numero dei coefficienti DCT e dei bit da
considerare nelle scansioni progressive é lasciato all’implementazione.
Figura 4.6: Selezione spettrale (caso di codifica senza perdite): prima scansione (sinistra), seconda scansione(centro), ultima
scansione (destra).
Figura 4.7: Approssimazioni successive (caso di codifica senza perdite): prima scansione (sinistra), seconda scansione(centro),
ultima scansione (destra).
4.4. LO STANDARD JPEG 2000
43
Modalitá Gerarchica
Nella modalitá gerarchica l’immagine non é trasmessa direttamente alla massima risoluzione; al contrario, sono
codificate e trasmesse versioni dell’immagine caratterizzate da risoluzione ridotta ma via via crescente, fino alla risoluzione desiderata. Tali versioni sono ottenute filtrando passabasso (cioé sfocando) e sottocampionando 4.5 l’immagine
originale.
Quando riceve le versioni meno risolute, il decodificatore le decodifica e le interpola per riportarle alle dimensioni
originali. In tal modo, é subito disponibile al decodificatore una versione sfocata, e compressa, dell’immagine
originale. Via via che le nuove versioni sono rese disponibili al decodificatore, é ricostruita un’immagine piú
risoluta e piú focalizzata, fino all’ultima versione che é alla risoluzione dell’immagine originale. Per ovvie questioni
di efficienza, una volta codificata la prima versione sottocampionata (sfocata) dell’immagine, il codificatore non
codificherá direttamente la versione piú risoluta (focalizzata), ma solamente la differenza residua tra le due. Si noti
che se il residuo finale é codificato senza perdite, anche lo schema complessivo risulta senza perdite.
Figura 4.8: Aumento di risoluzione (caso di codifica senza perdite): risoluzione 1/4 (sinistra), risoluzione 1/2 (centro), risoluzione
1/1 (destra).
Modalità Senza Perdita
Tale modalitá non prevede quantizzazione ma solo opportuna codifica senza perdita dei coefficienti DCT, basata
su una tecnica di codifica predittiva. É utilizzata in particolari applicazioni in cui non é tollerabile alcun tipo di
degradazione dell’immagine (immagini mediche, telesorveglianza).
4.4
Lo standard JPEG 2000
Lo standard JPEG 2000 si basa su
• rappresentazione dell’immagine in un dominio trasformato (dominio wavelet)
• quantizzazione dei coefficienti
• opportuno ordinamento e codifica entropica dei coefficienti stessi ai fini della trasmissione
4.5 Il
filtraggio è necessario per evitare l’introduzione di distorsione da aliasing, visibile come una seghettatura dei bordi, nella successiva
operazione di decimazione.
44
CAPITOLO 4. CODIFICA DI IMMAGINI
Al fine di rendere l’algoritmo adattabile a immagini di dimensione differente, contenendo la complessitá del
calcolo, il JPEG2000 prevede la partizione dell’immagine in rettangoli non sovrapposti (Tiles), codificati indipendentemente e accessibili separatamente a livello di bitstream codificato. Nel caso di immagini multi componente
campionate a risoluzione diversa per ciascuna componente, i tile hanno dimensioni differenti sulle diverse componenti4.6 . Nel seguito, supporremo che l’immagine sia descritta da un solo Tile; in presenza di piú Tiles, quanto descritto
in seguito é ripetuto per ogni Tile.
Rappresentazione dell’immagine nel dominio wavelet
Il dominio trasformato é generato mediante applicazione ricorsiva all’immagine originale I di dimensione NxN, di
quattro filtri. Ciascun filtro realizza un filtraggio in direzione orizzontale (passabasso o passaalto) e un filtraggio in
direzione verticale (passabasso o passaalto). Si generano cos´ quattro versioni dell’immagine, a seconda del filtraggio
applicato. I filtraggi sono seguiti da un sottocampionamento di un fattore due in direzione orizzontale e di un
fattore due in direzione verticale. A valle del filtraggio e del sottocampionamento, sono disponibili quattro versioni
di dimensioni N/2 × N/2 = N 2 /4 dell’immagine applicata all’ingresso del filtro, che differiscono a seconda dei
filtraggi applicati: ILH ,LV , ILH ,HV , IHH ,LV , IHH ,HV . Ciascuna di queste versioni, a causa del sottocampionamento,
1 1
1
ha dimensioni ridotte di un fattore × = rispetto all’immagine d’ingresso. Il numero complessivo di punti é pari
2 2
4
a quello dell’immagine di ingresso. Le componenti in alta frequenza rappresentano dettagli spazialmente meno visibili
di quelli in bassa frequenza. Pertanto questa rappresentazione consente di evidenziare componenti visualmente piú
rilevanti. La domanda che si pone é: l’immagine di partenza puó essere ricostruita a partire dagli NxN coefficienti cos´
ottenuti? In effetti é possibile scegliere i filtri di analisi hLL , hLH , hHL , hHH in modo che l’immagine originaria sia
ricostruita interpolando opportunamente e sovrapponendo i contributi delle diverse sottobande. Lo standard prevede
due possibili implementazioni dei filtri, con diversi coefficienti; in particolare il filtraggio puó essere a coefficienti
interi e frazionari, e pertanto perfettamente reversibile, oppure a coefficienti reali, e pertanto irreversibile a causa di
differenze di implementazione numerica (ovvero reversibile nei limiti dell’approssimazione numerica uilizzata).
Operata questa rappresentazione dell’immagine originale, é possibile applicare nuovamente la procedura di filtraggio e sottocampionamento all’immagine ILH ,LV , che altro non rappresenta se non una versione a minore risoluzione (di un fattore 1/2 × 1/2) dell’immagine originale. Applicando i filtraggi passabasso e passaalto orizzontale
e verticale a ILH ,LV e sottocampionando, essa sará a sua volta ripartita in quattro rappresentazioni di dimensione N/4 × N/4 = N 2 /16. Anche a questo livello della decomposizione, l’immagine ottenuta mediante filtraggio
passabasso alle basse frequenze orizzontali e verticali rappresenta una versione a risoluzione ridotta (di un fattore
1/4 × 1/4) dell’immagine originale. Il filtraggio e il sottocampionamento sono applicati iterativamente all’immagine,
e possono essere interpretati come un’operazione di trasformazione4.7 che conduce ad un dominio in cui i coefficienti
hanno diversa importanza visuale.
Quantizzazione
Dopo la trasformazione, i coefficienti sono quantizzati uniformemente. Lo standard prevede un differente passo di
quantizzazione per ogni sottobanda. La quantizzazione puó essere reversibile, se il passo é scelto pari ad uno. Tuttavia,
pure operando la scelta del passo di quantizzazione pari ad uno, la codifica puó essere con perdita. Infatti mentre
4.6 La
dimensione del Tile sulle diverse componenti é adattata in modo da mantenere la corrispondenza spaziale fra le rappresentazioni in
sottobande delle diverse componenti.
4.7 E’ possibile dimostrare che tale rappresentazione costituisce una Discret Wavelet Transform dell’immagine originale.
4.4. LO STANDARD JPEG 2000
45
Figura 4.9: Filtri passa-basso e passa alto irreversibili (9/7 Daubechies a coefficienti reali) utilizzati per il filtraggio ricorsivo
lungo le righe e colonne dell’immagine originale e delle componenti in banda base.
nel JPEG l’unico elemento di perdita nello schema di codifica é la quantizzazione, nel JPEG 2000 la compressione
con perdita puó avvenire approssimando o scartando completamente alcuni coefficienti nella fase di trasmissione.
Formazione del bitstream
Per ciascuna risoluzione, a valle della quantizzazione, le sottobande sono divise in blocchi (coding block) di
dimensione tipica 64x64 o 32x32.
Per ciascun blocco, i coefficienti sono scanditi per strisce di altezza 4 e rappresentati per piani di bit, partendo
dai bit piú significativi ai meno significativi. Preliminarmente ha luogo la codifica del piano del bit piú significativo;
la codifica prosegue per ciascuno dei piani successivi, articolandosi in tre passi (significance propagation, magnitude
refinement, clean-up).
Per ciascun piano, sono codificati nell’ordine
• i bit dei coefficienti vicini a coefficienti risultati significativi nel piano precedente (fase di significance
propagation )
• i bit dei coefficienti risultati significativi nel piano precedente (fase di magnitude refinement )
• i rimanenti bit (fase di clean-up)
I bit sono codificati ricorrendo a tecniche piuttosto sofisticate di codifica aritmetica basata sul contesto spaziale4.8 e
runlength coding, che prevedono la trasmissione di apposite tavole al decodificatore.
Il particolare ordinamento dei bit codificati e trasmessi rispecchia un ordinamento decrescente di importanza
visuale. Pertanto, la codifica con perdita puó essere realizzata interrompendo la trasmissione ad un dato livello
di risoluzione o in una data sottobanda, scartando i bit successivi. La natura dell’ordinamento garantisce una
quasi-ottimalitá di questa scelta, nel senso che per un’assegnata lunghezza in bit dell’informazione da trasmettere la
distorsione visuale risultante sull’immagine ricostruita é ridotta al minimo.
Caratteristiche innovative del JPEG 2000
4.8 Nella
modalitá detta lazy coding, la codifica aritmetica é disabilitata sui piani di bit meno significativi, al fine di ridurre sia il costo
computazionale che la sensibilitá agli errori.
46
CAPITOLO 4. CODIFICA DI IMMAGINI
• Lo standard JPEG 2000 offre una maggiore efficienza di compressione rispetto al JPEG nel senso che a paritá
di bit/pixel ricostruisce l’immagine con una minore distorsione rispetto all’originale. Oltre a questo aspetto,
presenta alcune pecularitá migliorative che lo rendono preferibile da un punto di vista di sistema, che saranno
qui di seguito accennate.
• Al fine di codificare un’immagine assegnando al bitstream un fissato numero di bit, é sufficiente, dopo aver
fissato il parametro di quantizzazione, procedere nella codifica troncando la trasmissione quando sia stato
raggiunto la dimensione prefissata del bitstream. Nel JPEG, invece, la generazione di un codice di lunghezza
assegnata puó essere ottenuto solo iterativamente, assegnando diversi valori del parametro di quantizzazione e
verificando la lunghezza in bit ottenuta.
• Il codice JPEG 2000, grazie alla particolare struttura a livelli successivi (embedded), gode della proprietá di
scalabilitá. Un codice é scalabile quando consente l’accesso e la decodifica parziale del bitstream a decodificatori di differente complessitá. All’interno del codice JPEG 2000 é immediato separare i dati relativi alle
diverse risoluzioni, e per una fissata risoluzione, a diversi livelli di qualitá di riproduzione. La sintassi del Code
Stream prevede a questo scopo l’unitá sintattica Layer, che rappresenta i dati relativi ad un fissato livello di
risoluzione. All’interno di un Layer, informazioni relative alla stessa zona spaziale sono raggruppate in apposite
unitá sintattiche (Packet). In particolare, un pacchetto contiene i dati codificati relativi a gruppi di blocchi
che occupano posizioni corrispondenti nelle tre sottobande(LH , HV ), (HH , LV ) e (HH , HV ). L’insieme dei
gruppi di blocchi prende il nome di precinto. Le informazioni codificate relative ai blocchi di un precinto
cosituiscono un pacchetto all’interno dei dati codificati.
• Lo standard JPEG 2000 abilita la codifica differenziata di differenti regioni spaziali dell’immagine (Region
Of Interest , ROI). A valle della trasformazione wavelet, tutti i coefficienti pertinenti alla ROI ad una fissata
risoluzione sono moltiplicati per un fattore 2M AX
SHIF T
, dove il parametro M AX SHIF T é scelto in modo
che tutti i coefficienti della ROI siano al disopra dei valori piú grandi dei coefficienti del background; in altre
parole, il background é descritto sui M AX SHIF T piani di bit meno significativi e la ROI sui rimanenti piani.
Quindi i coefficienti wavelet sono codificati insieme al valore di M AX SHIF T . Quando il decodificatore
ricostruisce valori dei coefficienti, attribuisce alla ROI tutti quelli che superano la soglia M AX SHIF T , e
pertanto dopo averli ricostruiti li scala di 2−M AX SHIF T riconducendoli alla dinamica originale. Il vantaggio
di questo meccanismo di separazione dei piani di bit sta nel fatto che il decodificatore non necessita di una
codifica esplicita della locazione spaziale della ROI ai fini di una corretta ricostruzione.
4.5
Trasmissione di immagini su canali affetti da errori
Le tecniche di codifica di immagini fisse utilizzano codici a lunghezza variabile, che sono intrinsecamente sensibili
ad errori di trasmissione. Infatti, non essendo definita a priori la lunghezza della parola, puó accadere che un errore
su un bit trasformi una parola di codice in un’altra parola di codice, di lunghezza differente. Il decodificatore,
pertanto, non solo legge una parola di codice errata, ma riprende la decodifica del bitstream da una posizione
errata. Ció compromette la decodifica dei dati successivi. Inoltre, succede sovente che nel leggere il bitstream a
partire dalla locazione errata, il decodificatore incontri sequenze di bit corrispondenti a parole di codice ammissibili,
e pertanto l’errore di decodifica non sia rivelato immediatamente, ma solo dopo un intervallo di latenza causato
4.5. TRASMISSIONE DI IMMAGINI SU CANALI AFFETTI DA ERRORI
47
dall’errata decodifica di alcune parole consecutive. Questo meccanismo é indicato come perdita di sincronismo fra
il decodificatore e il bitstream. Le tecniche di robustezza agli errori (error resilience) mirano in primo luogo a
limitare al minimo numero di bit l’effetto di perdita del sincronismo con il bitstream. La tecnica piú comunemente
usata consiste nell’inserimento di resynchronization markers (RM), cioé di parole di codice di lunghezza fissata, non
emulabili da combinazioni di altre parole di codice. I RM consentono al decodificatore di identificare all’interno del
bitstream le locazioni corrette di accesso ai dati, e pertanto abilitano il recupero del sincronismo in presenza di errori
di trasmissione. Tanto il JPEG che il JPEG 2000 prevedono la possibilitá di inserire marker di risincronizzazione nei
dati codificati.
Le tecniche di codifica di immagini fisse fanno un uso intensivo di meccanismi di predizione spaziale, sia nella
forma di predizione diretta dei coefficienti, sia nella costruzione di codificatori con memoria, le cui tavole di codice
cioé sono scelte in funzione dei bit giá trasmessi. La presenza di un errore pertanto compromette la decodifica dei
dati dipendenti dal dato danneggiato. Questo meccanismo di predizione é particolarmente rilevante nel JPEG 2000,
che pertanto consente di disabilitare almeno parzialmente la dipendenza dei codici aritmetici utilizzati dal contesto,
migliorando la robustezza del codice a detrimento dell’efficienza di compressione.
Lo standard JPEG 2000 prevede un’estensione del profilo base (baseline) dotato di apposite funzionalitá di error
resilience, detto Wireless JPEG 2000, o JPWL. Il codificatore JPWL arricchisce il codificatore JPEG 2000 di due
tipi di funzionalitá:
• descrizione della sensibilitá agli errori delle diverse porzioni del bitstream
• protezione dagli errori delle diverse porzioni del bitstream mediante tecniche FEC,
Il decodificatore JPWL arricchisce il decodificatore JPEG 2000 di due tipi di funzionalitá:
• correzione degli errori del bitstream
• descrizione degli errori residui nel bitstream stesso
La normativa specifica la sintassi da utilizzare per descrivere gli strumenti, mediante l’introduzione di quattro
nuove unitá sintattiche di lunghezza variabile (Error Protection Capability, che descrive quali strumenti di protezione
sono utilizzati, Error Protection Block, che costituisce il codice di canale effettivamente utilizzato, Error Sensitivity
Descriptor, che descrive la sensibilitá dei dati codificati ad eventuali errori di trasmissione e pertanto consente di
attuare tecniche di protezione differenziata dei dati, Residual Error Descriptor, che descrive gli errori residui dopo
la decodifica di canale). Tali unitá sono pacchetti dati costituiti da un header, da un campo indicante la lunghezza
del pacchetto, da un campo che specifica l’uso del successivo campo dati, ed il campo dati vero e proprio. A titolo
di esempio, osserviamo che l’EPB puó utilizzare qualsiasi codice a correzione di errore che sia stato registrato presso
la JPWL Registration Authority (RA); il pacchetto EPB contiene sia un identificativo univoco del particolare codice
sia i dati ridondanti prodotti dal codice stesso.
La distinzione funzionale dei meccanismi di descrizione delle caratteristiche di sensibilitá agli errori e dei meccanismi di protezione consente, in linea di principio, di implementare tali funzionalitá in sistemi differenti dell’architettura
di rete. Ad esempio, in un sistema di distribuzione di immagini su reti eterogenee la descrizione dei dati potrebbe
essere implementata a bordo del server di distribuzione delle immagini, mentre la funzionalitá di protezione potrebbe
essere realizzata all’interfaccia con la sottorete wireless di interesse, sia mediante introduzione di codici FEC, sia
mediante tecniche di ritrasmissione selettiva dei dati piú importanti.
48
CAPITOLO 4. CODIFICA DI IMMAGINI
Figura 4.10: Schema di principio della codifica JPEG 2000.
4.5. TRASMISSIONE DI IMMAGINI SU CANALI AFFETTI DA ERRORI
Figura 4.11: Esempio di codifica per piani di bit.
49
Bibliografia
[1] G. Scarano, “Dispense di elaborazione delle immagini”, http:
infocom.uniroma1.it/gscarano.
[2] B. G. Haskell, P. G. Howard, Y. A. LeCun, A. Puri, J. Ostermann, M.R. Civanlar, L. R. Rabiner, L. Bottou, and P. Haffner, “Image
and Video Coding-Emerging Standards and Beyond”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp.
814-837, November 1998
[3] A. Skodras, C. Christopoulos, and T. Ebrahimi, “The JPEG 2000 Still Image Compression Standards and Beyond”, IEEE Transactions
on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp. 814-837, November 1998
50
Capitolo 5
La compensazione di moto
5.1
Principi di motocompensazione per la codifica di sequenze video
I quadri che compongono una sequenza video naturale rappresentano la proiezione sul piano dell’immagine di oggetti
reali in moto, immersi in sfondi di varia natura (interni, esterni, fissi o in movimento). Essi presentano una forte
correlazione, nel senso che l’informazione apportata da ciascun quadro é largamente predicibile a partire dal quadro
precedente. In un contesto di codifica di sorgente, é pertanto opportuno rappresentare ciascun quadro in termini di una
versione predetta a partire dal quadro precedente, piú un’immagine residua, che rappresenta l’innovazione apportata
dal quadro attuale. Il codificatore dovrá quindi trasmettere unicamente le informazioni necessarie a costruire la
versione predetta, e l’innovazione stessa.
Nella versione piú semplice e largamente piú adottata il quadro che deve essere codificato é scomposto in blocchi di
8x8 pixel o di 16x16 pixel (macroblocchi). Per ciascun blocco si cerca il blocco piú simile nell’immagine precedente.
Per questioni di complessitá computazionale, la ricerca é limitata in un intorno della posizione corrispondente a quella
occupata nel quadro attuale. Una volta individuato il blocco piú simile, si codifica la posizione di tale macroblocco; le
coordinate sono codificate in modo relativo, ovvero rappresentano lo spostamento rispetto alla posizione attuale. Note
le coordinate relative di ciascun blocco, il decodificatore é in grado di ricostruire una versione predetta del quadro
attuale, mediante la giustapposizione di opportuni tasselli del quadro precedente. Questo meccanismo di predizione
mediante la definizione di una corrispondenza fra informazioni del quadro attuale e informazioni del quadro precedente
prende il nome di motocompensazione. Il codificatore deve quindi codificare unicamente la differenza tra l’immagine
predetta mediante motocompensazione ed il quadro attuale. Questo meccanismo di principio estremamente semplice
ammette numerose varianti, sulla base della forma del blocco considerato, della funzione di misura della somiglianza
fra blocchi, della modalitá di ricerca del blocco piú simile (esaustiva o meno), del numero di quadri, detti di
riferimento, a partire dai quali tentare la predizione del blocco attuale, e cosi’ via. Dal punto di vista concettuale,
tuttavia, la motocompensazione si basa su un’ipotesi implicita, e cioé che l’immagine rappresentata nel quadro attuale
sia costituita da una versione spazialmente trasformata dell’immagine precedente. Questo tipo di corrispondenza puó
essere modellata matematicamente come una trasformazione geometrica del piano dell’immagine.
Il presente capitolo é dedicato alla sintetica descrizione dei principali modelli di trasformazioni geometriche
utilizzate nell’ambito della codifica di immagini. I modelli che qui descriviamo con riferimento all’ambito applicativo
della codifica video sono utilizzati anche in ambiti differenti, quali la calibrazione di immagini nel telerilevamento
51
52
CAPITOLO 5. LA COMPENSAZIONE DI MOTO
e in alcune applicazioni medicali, l’elaborazione degli effetti di morphing nella produzione video, la generazione di
tessiture sintetiche per applicazioni di realtá virtuale.
5.2
Trasformazioni geometriche per motocompensazione di sequenze video
Consideriamo due quadri temporalmente adiacenti estratti da una sequenza video. La trasformazione da un quadro al
successivo é descritta come una trasformazione geometrica del piano dell’immagine. I punti (u, v) del primo quadro
sono mappati in punti (x, y) = (X(u, v), Y (u, v)) del secondo quadro. In altre parole, la luminanza del punto (x, y)
del secondo quadro é la stessa del punto (u, v) del primo quadro:
I (k) (x, y) = I (k−1)(u, v)
La trasformazione geometrica di un quadro nell’altro é descritta dalla coppia di funzioni (x, y) = (X(u, v), Y (u, v)).
Discutiamo qui alcune possibili forme, via via piú sofisticate, di tale trasformazione.
Il modello di moto traslatorio
Un moto traslatorio é definito dalla coppia di funzioni
x = u + Δx
y = v + Δy
(5.2.1)
Questo é il modello sopra citato come il piú diffuso nella motocompensazione per codifica video. La coppia (Δx, Δy)
é detta vettore di moto (motion vector) o di spostamento. Nelle applicazioni, il vettore spostamento puó essere
assegnato ad aree di dimensione variabile, dal 16x16 al 8x8 al 4x4; per applicazioni particolari (visione artificiale,
analisi automatica dell’immagine), é assegnato un vettore di moto ad ogni pixel dell’immagine, e l’insieme dei vettori
di moto relativi ad una coppia di immagini é detta motion vector field.
Osserviamo sin d’ora che, ai fini della ricostruzione del video decodificato, l’informazione rappresentata dai
vettori di moto é critica, perché un errore di trasmissione che alteri i vettori spostamento tipicamente genera artefatti
rilevanti nell’immagine ricostruita.
Modello di moto affine
Una trasformazione affine é definita dalla coppia di funzioni
x = Au + Bv + C
y = Du + Ev + F
Il moto affine ammette come casi particolari il moto traslatorio, la rotazione
x = cosθ u + sinθ v
y = −sinθ u + cosθv
il cambiamento di scala
x = Su u
y = Sv v
(5.2.2)
5.2. TRASFORMAZIONI GEOMETRICHE PER MOTOCOMPENSAZIONE DI SEQUENZE VIDEO
53
l’inclinazione (shear)
x = u + Hu v
x=u
y=v
y = Hv u + v
Il modello di moto affine é largamente generale e flessibile. Osserviamo che la trasformazione affine, essendo
descritta da sei parametri, é completamente individuata quando sia nota la trasformazione di tre punti (non allineati)
del piano.
Una possibile applicazione del modello affine in fase di codifica consiste nel suddividere il quadro da predire
in un reticolato (mesh) a maglia triangolare, e nel modellare l’evoluzione di ciascuno dei triangoli del reticolato
mediante una trasformazione affine. Ai fini della codifica, la trasformazione di ciascun triangolo é identificata dala
trasformazione dei suoi tre vertici (sei coordinate).
Modello di moto prospettico
Una trasformazione prospettica (perspective ) é definita dalla coppia di funzioni
Au + Bv + C
Gu + Hv + 1
Du + Ev + F
y=
Gu + Hv + 1
x=
(5.2.3)
Esso modella la duplice proiezione di un quadrilatero planare del piano dell’immagine (u, v) in un quadrilatero ancora
planare ma in generale inclinato rispetto al piano dell’immagine, e la successiva proiezione prospettica di questo sul
piano (x, y). La trasformazione prospettica é descritta da otto parametri, ed é completamente individuata quando sia
nota la trasformazione di quattro punti del piano.
Una possibile applicazione del modello prospettico in fase di codifica consiste nella suddivisione del quadro da
predire in un reticolato (mesh) a maglia quadrangolare, e nel modellare l’evoluzione di ciascuno dei quadrilateri del
reticolato mediante una trasformazione prospettica. La trasformazione prospettica é descritta da otto parametri, ed é
completamente individuata quando sia nota la trasformazione dei quattro vertici (otto coordinate) del quadrilatero in
questione.
A titolo di completezza, citiamo al termine di questo excursus anche la trasformazione bilineare, definita dalla
coppia di funzioni
x = Au + Bv + Cuv + G
y = Du + Ev + F uv + H
(5.2.4)
Esso modella la duplice proiezione di un quadrilatero planare del piano dell’immagine (u, v) in un quadrilatero non
planare e la successiva proiezione di questo sul piano (x, y). La trasformazione bilineare é applicabile per riprodurre
in piano dati registrati da sensori non coplanari in applicazioni di telerilevamento e biomedicali, nonché a scopi
di texture mapping, ovvero per generare sinteticamente la proiezione sul piano dell’immagine di tessiture disposte
su oggetti virtuali tridimensionali, a partire da tasselli planari delle tessiture stesse. La trasformazione bilineare, al
pari della prospettica, é descritta da otto parametri, ed é individuata dalla trasformazione dei quattro vertici (otto
coordinate) di un quadrilatero.
54
CAPITOLO 5. LA COMPENSAZIONE DI MOTO
Figura 5.1: Esempi di trasformazioni descritte da un modello affine.
5.3. ALGORITMI DI MOTOCOMPENSAZIONE PER LA CODIFICA DI SEQUENZE VIDEO
5.3
55
Algoritmi di motocompensazione per la codifica di sequenze video
Come discusso nei paragrafi precedenti, la motocompensazione si basa sul principio che quadri successivi della
sequenza video siano legati da trasformazioni geometriche. Nelle applicazioni di motocompensazione il quadro
attuale é suddiviso in regioni non sovrapposte5.1 , e per ciascuna regione é individuata l’area di provenienza nel
quadro precedente, come illustrato in Fig. 5.2.
Consideriamo qui il caso di gran lunga piú comune: il modello traslatorio.
Il quadro attuale I (k) [m, n] sia partizionato in blocchi non sovrapposti, tali da ricoprire l’intero quadro. Indichiamo con B il generico blocco del quadro attuale. Per il blocco B, si cerca nel quadro precedente il blocco
piú simile massimizzando un assegnato funzionale di somiglianza, ovvero minimizzando un assegnato funzionale di
distorsione. Adottando il criterio dell’errore quadratico medio, il blocco piú simile é individuato dalla coordinate
relative Δmmin , Δnmin che minimizzano la seguente funzione
DM SE (Δm, Δn) =
2
I (k) [m, n] − I (k−1)[m + Δm, n + Δn]
(m,n)∈B
al variare di (Δm, Δn) in un intervallo preassegnato.
Per questioni computazionali, la distorsione puó essere computata adottando il criterio della somma delle differenze
assolute ( Sum of Absolute Differences, SAD). In tal caso il blocco piú simile é individuato dalla coordinate relative
Δmmin , Δnmin che minimizzano la seguente funzione
DSAD (Δm, Δn) =
I (k) [m, n] − I (k−1) [m + Δm, n + Δn]
(m,n)∈B
per (Δm, Δn) variabili in un intervallo preassegnato.
Un esempio di un’immagine I (k) [m, n] estratta dalla sequenza video Suzie e della sua versione predetta Iˆ(k) [m, n]
mediante motocompensazione traslatoria é riportata in Fig.7.1. La motocompensazione in questo esempio é operata
su blocchi di dimensioni 8x8.
Quando la motocompensazione é operata partizionando l’immagine in una griglia e individuando lo spostamento
ottimo di ciascun vertice della griglia, l’ottimizzazione diviene piú complessa. Infatti, l’ottimizzazione deve essere
operata congiuntamente su tutte le maglie della griglia, applicando la trasformazione ipotizzata a ciascuna maglia
e valutando la potenza dell’errore complessivo. Per ció che concerne la scelta dei vertici della griglia, é frequente
l’adozione di criteri euristici, finalizzati ad individuare tasselli non troppo picoli per controllare il costo di trasmissione
dei vettori spostamento e non troppo grandi in modo da non includere discontinuitá. Una strategia frequentemente
utilizzata consiste nella scelta dei vertici della griglia in corrispondenza di punti significativi5.2 dell’immagine stessa.
5.1 Tipicamente,
nelle applicazioni di morphing e di elaborazione delle immagini la trasformazione é applicata in avanti, scandendo il quadro
precedente per generare i punti corrispondenti del quadro attuale. Le aree del quadro attuale non assegnate nella fase di mappatura sono
successivamente ricostruite con sofisticate tecniche di interpolazione. Nelle applicazioni di codifica,é scandito il quadro attuale al fine di associare
ad ogni punto un punto del quadro precedente. Tale modalitá di applicazione della trasformazione geometrica, detta all’indietro, evita che risultino
non assegnate aree del quadro attuale.
5.2 La scelta di posizionare i vertici della griglia in corrispondenza di punti significativi -vertici, incroci- migliora le prestazioni della stima di
spostamento, che in zone uniformi tende ad essere guidata da rumore di acquisizione o di illuminazione eventualmente presente.
56
CAPITOLO 5. LA COMPENSAZIONE DI MOTO
Sistemi di coordinate omogenee
Nell’ambito della Computer Graphics, é usuale rappresentare un punto dell’immagine, individuato nel piano da
n = 2 coordinate (x, y), mediante un vettore a n + 1 = 3 componenti: (x, y) ⇒ (x, y, 1). L’adozione di
tali coordinate, dette omogenee, consente ad esempio di rappresentare la trasformazione affine definita in (5.2.2)
mediante un operatore matriciale 3 × 3: (x, y, 1) = (u, v, 1) · T
⎛
A D 0
⎜
⎜
T =⎝ B E 0
C
F
1
⎞
⎟
⎟
⎠
Si supponga poi di voler estendere la trasformazione T considerando la forma 3 × 3 piú generale:
⎛
⎞
A D g
⎜
⎟
⎟
T =⎜
⎝ B E h ⎠
C
F
k
Essa consente di associare ad un punto di coordinate (u, v), ovvero di coordinate omogenee (u, v, 1), un nuovo
punto (x, y, w). A partire da tali coordinate, é possibile ottenere ancora un punto di coordinate omogenee dividendo
tutte le componenti per w: (x/w, y/w, 1). Tale operazione ammette un’interpretazione geometrica: il punto (u, v, 1)
puó essere interpretato come un punto dello spazio tri-dimensionale, appartenente al piano a profonditá 1. Il punto
trasformato (x, y, w) rappresenta un punto dello spazio tri-dimensionale, appartenente al piano a profonditá w. La
divisione per w associa a (x, y, w) il punto (x/w, y/w, 1): esso é il punto in cui il piano a profonditá 1 interseca
la retta passante per l’origine degli assi e per (x, y, w); in altri termini, (x/w, y/w, 1) é la proiezione di (x, y, w)
sul piano a profonditá 1.
Con queste posizioni, la trasformazione prospettica (5.2.3) é descritta dalla seguente trasformazione lineare a
⎛
⎞
A D G
⎜
⎟
⎟
T =⎜
⎝ B E H ⎠
C
a Si
F
1
osservi che nella modalitá di rappresentazione che impiega le coordinate omogenee, i punti che differiscono per un fattore di scala comune
alle tre coordinate definiscono una classe di equivalenza, ed identificano lo stesso punto del piano a profonditá 1.
5.3. ALGORITMI DI MOTOCOMPENSAZIONE PER LA CODIFICA DI SEQUENZE VIDEO
Figura 5.2: Uso di modelli del campo di moto a fini di motocompensazione.
Figura 5.3: Esempio di motocompensazione su blocchi 8x8.
57
58
CAPITOLO 5. LA COMPENSAZIONE DI MOTO
Modello e/o Tecnica
Contesto applicativo
traslatorio, macroblocchi 16 × 16
MPEG-2
avanzato, Advanced Prediction su blocchi 8 × 8
H.263
affine, image resizing
H.263++
affine, su griglia triangolare
MPEG-4 (Facial Animation)
perspective, motocompensazione globale
MPEG-4 (Sprite Coding)
traslatorio, su oggetti di forma arbitraria
MPEG-4 (Profilo Core)
traslatorio, su blocchi quadrati e rettangolari dal 4 × 4 al 16 × 16
H.264
Tabella 5.1: Sinossi delle tecniche di motompensazione piú frequentemente utilizzate.
Bibliografia
[1] G. Scarano, “Dispense di elaborazione delle immagini”, infocom.uniroma1.it/gscarano.
[2] B. G. Haskell, P. G. Howard, Y. A. LeCun, A. Puri, J. Ostermann, M.R. Civanlar, L. R. Rabiner, L. Bottou, and P. Haffner, “Image
and Video Coding-Emerging Standards and Beyond”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp.
814-837, November 1998
[3] G. Wolberg, “Image Morphing: A Survey ’, Visual Computer, vol. 14, pp. 360-372, 1998
59
Capitolo 6
Servizi di diffusione televisiva: lo standard
MPEG-2 e il Digital Video Broadcasting
6.1
Lo standard MPEG-2 per servizi multimediali diffusivi
Lo standard MPEG-2, sviluppato dal Moving Pictures Experts Group (MPEG) dell’ISO
6.1
in cui sono rappresentati
vari segmenti di industrie che si occupano del trattamento dell’informazione, definisce la codifica di sorgente audio,
video, e il formato di multiplazione e trasporto per servizi multimediali diffusivi a qualità televisiva o superiore. Lo
standard specifica esclusivamente la sintassi del bitstream e la decodifica, e definisce sottoinsiemi di funzionalitá e
di elementi sintattici (profili) adatti a particolari campi di applicazione.
Lo standard MPEG-2 è uno standard utilizzabile in diverse applicazioni. L’applicazione primaria di MPEG-2 è
la trasmissione a qualità televisiva (Racc. CCIR 601) o superiore di sequenze in formato interallacciato o progressivo
e di diversi aspect ratio,quali 4:3, 16:9, e il formato quadrato. I formati di riferimento per Standard Definition
TeleVision (SDTV) prevedono sequenze video 4:2:0 di dimensione 720x576 pixel @ 25 quadri al secondo (PAL), o
720x480 @ 30 quadri al secondo (NTSC) con un bitrate tra 2 e 10 Mbit/sec. Lo standard risulta efficiente anche
per applicazioni HDTV (sequenze di dimensione 1280x720 o 1920x1080 pixel), con un bitrate compreso tra 2 e 40
Mbit/s.
La parte System dello standard descrive un formato di multiplazione potente e flessibile, che ha influito in modo
determinante sull’affermazione dello standard stesso. In particolare, lo standard consente la multiplazione di più
canali audio (trasmissione multilingue), più canali video (trasmissione multiview), di dati (sottotitoli, file grafici).
6.2
Lo standard MPEG-2 Video
Lo standard MPEG-2 Video, recepito anche nella Raccomandazione ITU-T H.262, utilizza tecniche di compressione
basate sulla riduzione della ridondanza spaziale e temporale della sequenza video. La riduzione della ridondanza
6.1 La
commissione MPEG appartiene al gruppo ISO/IEC JTC1 SC29 WG11, con International Standardization Organization, International
Electrotechnical Committee, Joint Technical Commitee 1, Sub-committee 29, Working Group 11.
60
6.2. LO STANDARD MPEG-2 VIDEO
61
spaziale é realizzata mediante tecniche a trasformate, quella temporale mediante motocompensazione; tale metodologia
prende il nome di codifica ibrida a trasformata.
Lo standard definisce tre tipi di quadri, che differiscono per la metodologia di codifica adottata:
• immagini codificate senza riferimento ad altre immagini (I); forniscono punti di accesso alla sequenza codificata in corrispondenza dei quali può iniziare la decodifica; sono caratterizzate da un modesto rapporto di
compressione;
• immagini codificate mediante motocompensazione da immagini precedenti (P); possono essere utilizzate come
riferimento per altre predizioni;
• immagini codificate mediante motocompensazone bidirezionale (B); offrono il maggior livello di compressione;
non sono utilizzate come riferimento per ulteriori predizioni.
L’organizzazione dei tre tipi di immagine in una sequenza video è molto flessibile. La scelta è lasciata al codificatore
e dipende dai requisiti dell’applicazione.
La codifica opera suddividendo ciascun quadro in quadrati di 16x16 pixel, detti macroblocchi. Tutti i macroblocchi
di un quadro I sono codificati senza predizione (macroblocchi di tipo I). Ciascun macroblocco di un quadro P può
essere predetto rispetto al quadro P o I precedente (macroblocco di tipo P), ovvero codificato senza predizione
(macroblocco di tipo I). Ciascun macroblocco di un quadro B puó essere predetto bidirezionalmente rispetto al
quadro P o I precedente e al quadro P o I successivo (macroblocco di tipo B), ovvero essere predetto rispetto al
quadro P o I precedente (macroblocco di tipo P), ovvero codificato senza predizione (macroblocco di tipo I).
Per macroblocchi I, si codifica il macroblocco mediante applicazione di DCT e quantizzazione ai blocchi 8x8
componenti. Per macroblocchi P, si effettua la motocompensazione del macroblocco 16x16; la differenza fra il
macroblocco attuale e la predizione, detta residuo di motocompensazione, é codificata mediante DCT e quantizzazione
su blocchi 8x8 pixel. Per macroblocchi B, si effettua la motocompensazione del macroblocco 16x16 rispetto al quadro
di riferimento precedente e rispetto al quadro di riferimento successivo; la predizione é operata mediando i due blocchi
16x16 cos´ ottenuti; la differenza fra il macroblocco attuale e la predizione, detta residuo di motocompensazione,
é codificata mediante DCT e quantizzazione su blocchi 8x8 pixel. Il modo di codifica di ciascun macroblocco dei
quadri P e B è scelto in modo da minimizzare il numero di bit richiesti per descriverlo. Poiché i vettori di moto di
macroblocchi adiacenti sono correlati, sono codificati in modo differenziale rispetto al vettore moto del precedente
macroblocco adiacente.
La quantizzazione determina una perdita irreversibile di informazione ed è adattata alle caratteristiche del sistema
visivo umano, mediante la scelta di opportune matrici di quantizzazione. Le matrici di quantizzazione possono variare
da una immagine all’altra e sono trasmesse all’inizio di ciascuna immagine; inoltre la matrice di quantizzazione puó
essere scalata da macroblocco a macroblocco mediante un fattore di scala (quantizer scale), al fine di adattare la
precisione della codifica dell’immagine al suo contenuto. Il quantizer scale, che puó essere maggiore di 1 o minore
di 1, é codificato con un valore a 5 bit su scala lineare e non. I coefficienti AC sono scanditi a zig-zag e codificati
con codifica a corse di zeri e tavole di codice di Huffmann. La scelta delle matrici di quantizzazione é lasciata al
codificatore. Tuttavia, a titolo di riferimento, lo standard suggerisce l’uso delle matrici QINTRA [k1 , k2] ,QINTER [k1 , k2 ]
riportate in Tabs.6.1,6.2. Nel caso di quadri I é codificata la differenza fra coefficienti DC di blocchi adiacenti.
I quadri della sequenza sono raggruppati in Group Of Pictures (GOP), il cui primo quadro é di tipo I. Tale
organizzazione dei dati codificati consente la sincronizzazione del decoder con un ritardo al piú pari alla durata del
62CAPITOLO 6. SERVIZI DI DIFFUSIONE TELEVISIVA: LO STANDARD MPEG-2 E IL DIGITAL VIDEO BROADCASTING
GOP. Inoltre la presenza di quadri I abilita lo scorrimento all’indietro o in avanti di una registrazione e l’indirizzamento
di punti predeterminati in una sequenza. Per applicazioni di distribuzione televisiva i quadri I hanno una frequenza di
1 o 2 quadri I al secondo, con GOP del tipo IPBBPBBPBBP. L’ordinamento dei quadri nel GOP differisce dall’ordine
con cui i relativi dati codificati compaiono nel bitstream, in quanto i quadri di tipo B sono inseriti nel bitstream dopo
i quadri di tipo I o P in riferimento ai quali sono predetti. Dualmente, in fase di decodifica, l’ordine con il quale
sono decodificati i quadri non coincide con l’ordine di presentazione, in quanto i quadri B sono decodificati dopo i
quadri cui fanno riferimento per la predizione.
Figura 6.1: Schema di principio del codificatore MPEG.
Luminanza (Y )
8
16
19
22
26
27
29
34
16
16
22
24
27
29
34
37
19
22
26
27
29
34
34
38
22
22
26
27
29
34
37
40
22
26
27
29
32
35
40
48
26
27
29
32
35
40
48
58
46
27
29
34
38
46
56
69
27
29
35
38
46
56
69
83
Tabella 6.1: Passi di quantizzazione QINTRA [k1 , k2 ] per la luminanza dei quadri INTRA: esempio.
6.2. LO STANDARD MPEG-2 VIDEO
63
Figura 6.2: Esempio di Group of Pictures.
Residui di luminanza (ΔY )
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
Tabella 6.2: Passi di quantizzazione QINTER [k1 , k2 ] per i residui di luminanza dei quadri INTER (P o B): esempio.
6.2.1
Il controllo di flusso nella codifica MPEG-2
Nelle applicazioni di distribuzione televisiva, la distorsione introdotta dalla codifica sulla sequenza ricostruita deve
essere relativamente costante per non dar luogo ad artefatti visuali non compatibili con le specifiche di qualitá del
servizio. Poiché le caratteristiche locali della seuenza da codificare variano (contenuto dell’immagine, tipo di moto
nella scena etc,), il numero di bit richiesto per codificare ciascun frame é variabile, e il codificatore video si presenta
come una sorgente a bit-rate variabile. Poiché il canale di trasmissione ha tipicamente capacitá costante, l’uscita del
codificatore video alimenta un buffer di trasmissione, che è riempito a burst quando le immagini vengono codificate,
e svuotato a velocità costante durante la trasmissione. Poiché il codificatore ha visibilitá dello stato di riempimento
del buffer, tale informazione è utilizzata per controllare il processo di codifica (quantizzazione, inserimento di quadri
64CAPITOLO 6. SERVIZI DI DIFFUSIONE TELEVISIVA: LO STANDARD MPEG-2 E IL DIGITAL VIDEO BROADCASTING
Figura 6.3: Modello del buffer in uscita al codificatore e del buffer in ingresso al decodificatore.
predetti), al fine di evitare fenomeni di buffer overflow e underflow.
Dualmente, all’interfaccia fra il canale e il decodificatore MPEG é presente un buffer, caricato a velocità costante
quando i dati vengono ricevuti e svuotato a burst durante il processo di decodifica. Lo standard MPEG definisce un
modello ideale di decodificatore (System Target Decoder, STD) che é utilizzato dal codificatore come riferimento per
limitare il bitrate istantaneo in modo da non incorrere nell’overflow o underflow del buffer del decoder. Il modello del
decodificatore ideale puó essere semplicemente descritto da parametri caratteristici della sessione6.2 ovvero descritta
mediante un modello detto Video Buffering Verifier(VBV). Il VBV é identificato dai parametri bit-rate, misurato in
unità di 400bit/s, vbv-buffer-size, misurato in unità di 2048 byte, vbv-delay, che definisce il tempo tra la ricezione
del primo bit di dati della prima immagine nel buffer e la decodifica dei dati stessi, misurato in numero di periodi
di un clock di riferimento a 90 KHz. I parametri del VBV sono multiplati insieme ai dati video secondo il formato
specificato dallo standard MPEG-2 System.
6.2.2
Profili e livelli di un decodificatore MPEG-2 video
Lo standard MPEG-2 video offre diverse varianti dell’algoritmo di compressione sovraesposto, alcune delle quali
godono della proprietá di scalabilitá. Per scalabilitá si intende la disponibilitá all’interno del bitstream tanto di dati
base (Base Layer) quanto ai dati di arricchimento (Enhancement Layers). I dati possono riferirsi a diversi livelli
di qualitá, ovvero di risoluzione spaziale o temporale. Per semplificare la segnalazione della modalitá operativa del
codec, si identificano differenti profili di codec, ciascuno dei quali identifica il particolare algoritmo utilizzato e
alcune particolari opzioni di codifica, che limitano i gradi di libertá della sintassi del bit-stream. La Tabella 7.4
riporta i differenti profili MPEG-2.
6.2 Tale
utilizzata.
rappresentazione semplificata prende il nome di Leak Method ed adotta parametri numerici dipendenti dalla coppia profilo-livello
6.3. LO STANDARD MPEG-2 SYSTEM
Profilo
Principali caratteristiche (Predizione, scalabilitá, formato)
Simple Profile (SP)
I,P, non scalabile, campionamento 4:2:0.
Main Profile (MP)
I,P,B, non scalabile, campionamento 4:2:0
SNR Scalable Profile
Spatially Scalable Profile
I,P,B, scalabile in SNR, campionamento 4:2:0
I,P,B, scalabile spazialmente e/o in SNR, campionamento 4:2:0
4:2:2 Profile
I,P,B, non scalabile, campionamento 4:2:2
High Profile
I,P,B, scalabile spazialmente e/o in SNR, campionamento 4:2:2
Multiview Profile
65
I,P,B, non scalabile, campionamento 4:2:0 di informazioni destra e sinistra (TV 3D)
Tabella 6.3: Profili del codec MPEG-2.
Per ciascun profilo, si identificano decodificatori di differente livello di complessitá, per ciascuno dei quali sono
specificati i limiti massimi supportati per ció che concerne la risoluzione spaziale, il bitrate, la dimensione del buffer,
etc. I servizi di diffusione televisiva utilizzano tipicamente la coppia profilo/livello denominata Main Profile / Main
Level (MP@ML).
6.3
Lo standard MPEG-2 system
Lo standard MPEG-2 system definisce la modalitá di multiplazione di una o più sequenze elementari video, audio e
dati in formato ottimizzato per applicazioni di trasmissione o di memorizzazione. In particolare, lo standard definisce
il formato per la memorizzazione (Flusso di programma, Program Stream, PS ) e per la trasmissione (Flusso di
trasporto, Transport Stream, TS). Entrambe i flussi sono di tipo a pacchetto.
6.3.1
Il Program Stream MPEG-2
I dati prodotti dai codificatori audio e video sono organizzati in un flusso di unitá di lunghezza variabile denominato
Elementary Stream, ES). A partire da ciascun ES, l’MPEG-2 System definisce la generazione del Packetized Elementary Stream, ottenuto mappando ciascun pacchetto ES nel payload di un pacchetto PES, e associando un PES Header
contenente un prefisso, un numero identificativo dello stream (video, audio1, audio2, etc.), e dei dati opzionali di
copyright, CRC, etc. La lunghezza di ogni pacchetto PES é variabile e può essere anche superiore a 64 kBytes.
La sintassi del PES trasporta anche l’informazione necessaria per la sincronizzazione della decodifica e della
presentazione delle informazioni audio e video mediante
• indicatori temporali a 33 bit relativi alla presentazione di audio, video e dati codificati(Presentation Time Stamp
(PTS))
• indicatori temporali a 33 bit relativi alla decodifica (Decoding Time Stamp (DTS)) del video codificato.
Tali indicatori temporali, alla stregua del vbv delay, sono misurati rispetto ad un clock di riferimento a 90 KHz.
Uno o più PES, aventi una base dei tempi comune sono combinati in un singolo flusso multiplato detto Program
stream, che rappresenta un programma, almeno in senso lato. Un Program Stream, quindi, contiene sequenze
66CAPITOLO 6. SERVIZI DI DIFFUSIONE TELEVISIVA: LO STANDARD MPEG-2 E IL DIGITAL VIDEO BROADCASTING
elementari audio e video aventi la stessa base dei tempi6.3. Questo formato puó essere utilizzato direttamente in
canali privi di errori, quali ad esempio quelli che modellano applicazioni di memorizzazione. Per il trasferimento
su canali di comunicazione reali, l’MPEG-2 System definisce un formato apposito detto Transport Stream, che
é estremamente flessibile, ed é supportato dalle direttive DVB/ETSI sui formati di trasmissione della televisione
digitale.
6.3.2
Il Transport Stream MPEG-2
Lo standard MPEG-2 System definisce un formato per la multiplazione di uno o piú Program Stream in un unico
flusso, detto Transport Stream (TS). Mentre il Program Stream contiene pacchetti di lunghezza variabile, il TS é
costituito da pacchetti di lunghezza fissa, pari a 188 byte. Ciascun pacchetto del TS contiene un campo header di
lunghezza variabile, ma con valore minimo di 4 byte, ed un campo dati. Il TS Packet Header contiene sempre un
primo byte di sincronizzazione (pari a 47HEX , ovvero 01000111), un flag di errore dallo strato di trasporto, ed un
campo di 13 bit detto Packet Identifier, o PID. Opzionalmente, il TS Packet Header puó contenere un Adaptation
Field. In tale campo puó comparire l’informazione detta Program Clock Reference, di 33+9=42 bit, utilizzata per
sincronizzare il clock di sistema (System Time Clock, STC) a 27 MHz del decodificatore6.4 . Il PCR é trasmsso
periodicamente ogni 0.1s, e la sincronizzazione é operata misurando la differenza fra PCR successivi decodificati e
confrontandola con il numero di cicli successivi eseguiti dal clock di sistema nello stesso intervallo di tempo.
Il TS consente la multiplazione di uno (Single Program TS, SPTS) o più programmi (Multi Program TS, MPTS)
in un singolo stream6.5 . Ogni programma, a sua volta, contiene piú stream elementari (video, audio, dati). Ciascuno
stream é a sua volta suddiviso in un certo numero di pacchetti del TS. Pertanto, tutti i pacchetti di uno stream di
uno stesso programma saranno marcati dallo stesso PID. A partire dal PID di un pacchetto, é possibile ricostruire il
corretto flusso di appartenenza, mediante un meccanismo di mappatura denominato Program Specific Information,
PSI.
Il PSI é composto delle seguenti tabelle,:
• Program Association Table (PAT);
• Program Map Table (PMT);
• Conditional Access Table (CAT);
Le tabelle del PSI sono rappresentate mediante strutture sintattiche dette Sections6.6 , a loro volta suddivise in
differenti pacchetti del TS.
La PAT, che é sempre trasmessa in pacchetti con PID uguale 0, é una tabella che associa ad ogni programma
la sua PMT. La PAT é suddivisa, ai fini della trasmissione, in piú pacchetti non consecutivi del TS, in modo da
minimizzare i dati persi in caso di errori su alcune porzioni del TS.
La Program Map Table (PMT) identifica un programma, ed associa ad ogni stream (audio, video, dati) del
programma il valore del relativo PID; lo stream sará pertanto ricostruito estraendo dal TS tutti i pacchetti caratterizzati
6.3 Fra
i dati convogliati dal Program Stream é registrato periodicamente il valore assunto da un contatore dei cicli del System Time Clock a 27
MHz del codificatore, mediante un campo a 42 bit detto System Clock Reference.
6.4 Si osserva che tale informazione puó essere presente anche nel PS Header, sotto il nome di system Clock Reference, SCR
6.5 Nel caso di MPTS, ad ogni programma puó essere associato un distinto PCR, ovvero alcuni programmi possono condividere lo stesso PCR.
6.6 Le section utlizzate per le tabelle PSI specificate in MPEG hanno dimensione massima 1K byte mentre le private sections hanno dimensione
massima 4K bytes.
6.3. LO STANDARD MPEG-2 SYSTEM
67
da tale PID. La PMT segnala anche il PID dei pacchetti contenenti la descrizione del STD, e il PID dei pacchetti
contenenti il PCR relativo al programma.
La CAT, che é sempre trasmessa in pacchetti con PID uguale a 1, contiene informazioni relative al sistema di
scrambling e cifratura6.7 .
Accanto al PSI, in ambito DVB-ETSI é stato definito il sistema detto Service Information, che contiene altre tavole
descrittive dei servizi offerti mediante il trasferimento di informazione, anche testuali e grafiche, per la navigazione
fra i differenti programmi. Fra le altre citiamo
• la Network Information Table (NIT), che convoglia informazione su piú di un TS,
• la Event Information Table (EIT) che convoglia informazione sui singoli eventi programati.
• la IP/MAC Notification Table (INT) che convoglia sui flussi dati IPMAC nel TS.
6.3.3
Il trasferimento di dati nel Transport Stream MPEG-2
Lo standard MPEG-2 prevede cinque profili per il trasferimento dati, corrispondenti a diversi servizi: il profilo Data
piping, utilizzato in assenza di relazione temporale con i dati dei PES, il profilo Data streaming, utilizzato in presenza
di relazione temporale con i dati dei PES, i profili Data carousel, Object carousel, per la trasmissione periodica di
dati di servizio, e il profilo Multi-protocol encapsulation (MPE), che supporta dati di differente protocollo.
Il profilo MPE consente la diffusione di dati su TS MPEG-2 in analogia alla distribuzione di dati su una
rete Ethernet. In particolare, il profilo MPE incapsula i dati all’interno di strutture sintattiche dette DVB Section,
caratterizzate da lunghezza variabile fino ad un massimo di 4096 byte. Ogni DVB Section é poi convogliata da
pacchetti del TS MPEG-2, caratterizzati da un assegnato PID. La Fig. 6.4 descrive le componenti sintattiche che
concorrono alla MPE.
Figura 6.4: Multi Protocol Encapsulation.
6.7 I
sistemi di Conditional Access effettivamente utilizzati sono proprietari; tipicamente prevedono che la CAT associ a ciascun programma
cifrato il PID dei pacchetti contenenti un’informazione di controllo detta Entitlement Management Message, circa lo stato di sottoscrizione dei
singoli utenti. Per ciascun programma cifrato, la relativa PMT convoglia il PID dei pacchetti contenenti una informazione detta Entitlement
Control Message, complementare all’EMM. Il Conditional Access Subsystem del decodificatore (Smart Card) gestisce entrambe le informazioni
abilitando o meno l’accesso ai programmi cifrati in base allo stato di sottoscrizione dell’utente.
68CAPITOLO 6. SERVIZI DI DIFFUSIONE TELEVISIVA: LO STANDARD MPEG-2 E IL DIGITAL VIDEO BROADCASTING
I primi byte costituiscono il Section Header contenente table id, section syntax indicator, private indicator, section
length, che identificano rispettivamente il tipo di section, la sintassi, flag proprietari e la lunghezza della section. Il
campo MAC address, di 6x8 bit, contenente l’indirizzo MAC del destinatario, é seguito da ulteriori campi di servizio
(payload e address scrambling control, LLC SNAP flag6.8, current next indicator); i campi section number, last
section number, rispettivamente, numerano la sezione attuale e l'ultima che trasporta il pacchetto IP. Successivamente
la Section contiene il Pacchetto IP, seguito da byte di riempimento opzionali (stuffing byte) tali che ogni pacchetto
IP sia rappresentato da un numero intero di pacchetti del TS MPEG-2, e 32 bit di paritá.
6.4
Distribuzione del Transport Stream MPEG-2 mediante piattaforma
DVB
Il DVB é un consorzio di origine europea che coinvolge diversi operatori del mercato del broadcasting (broadcaster,
manifatturiere, operatori delle telecom, sviluppatori di software, enti regolatori) nella definizione di specifiche tecniche
per i sistemi di distribuzione di video audio e dati, con prevalente riferimento a servizi di tipo televisivo. Le specifiche
tecniche DVB, recepite in ambito ETSI, definiscono i formati per la distribuzione di servizi televisivi via satellite, via
cavo e via digitale terrestre (DVB-S, DVB-C, DVB-T). Inoltre, il DVB ha definito lo standard per la trasmissione,
basata su pila protocollare IP, di video audio e dati su terminali mobili (DVB-H).
6.4.1
I sistemi DVB-S, DVB-C, DVB-T
I documenti ETSI [3, 4, 5], che recepiscono l’attivitá di specifica tecnica svolta in ambito DVB, definiscono le
specifiche tecniche per la tramissione del TS MPEG2 su diversi mezzi trasmissivi, con particolare riguardo alla
codifica di canale e alla modulazione. I mezzi trasmissivi interessati sono il canale radio satellitare, alle frequenze
di 11-12 GHz, il canale radio terrestre, nelle bande UHF (300 MHz, 3 GHz), VHF (30 MHz, 300 MHz), il cavo
coassiale a radio-frequenza, a frequenze portanti da 50-100 MHz fino a 500 MHz. Le specifiche definiscono la
trasformazione fra i dati di ingresso, assunti nel formato TS MPEG-2, nel segnale di uscita, espresso nella forma
di inviluppo complesso del segnale di banda base. La qualitá del segnale di uscita desiderata é dell’ordine di un
evento di errore ogni ora di trasmissione (Quasi Error Free, QEF), corrispondente ad un BER = 10−10 , 10−11
Descriveremo concisamente nel seguito le tecniche di codifica di canale e modulazione adottate nei differenti mezzi
trasmissivi.
La codifica di canale
La codifica di canale prevede tre stadi comuni a tutti i mezzi trasmissivi, dati da un primo stadio di randomizzazione,
un secondo stadio costituito da un codificatore a blocchi, e un terzo stadio di interleaving. Gli stadi operano sui
blocchi di 188 byte del TS.
Il randomizzatore realizza un’operazione di XOR bit a bit della sequenza dei byte di ingresso con una sequenza
psudocasuale, preservando il primo byte che é costituito da una parola di sincronizzazione, pari a 47HEX . L’unica
modifica della parola di sincronizzazione é rappresentata da un’inversione bit a bit (47HEX = B8HEX ), operata
ogni 8 pacchetti TS, al fine di introdurre un sincronismo di trama. La randomizzazione é operata anche quando il
pacchetto TS non convoglia informazione, al fine di evitare l’emissione di una portante nonmodulata.
6.8 Segnala
la presenza di IEEE 802.3 Logical Link Control/ Sub Network Access Protocol Encapsulation per Ethernet; vale 0 per pacchetti IP.
6.4. DISTRIBUZIONE DEL TRANSPORT STREAM MPEG-2 MEDIANTE PIATTAFORMA DVB
69
Il codificatore a blocchi é un codice sistematico (204, 188) che opera sull’intero pacchetto TS aggiungendovi
16 byte di paritá, ed ha capacitá di correzione di errore T=8; in particolare, il codice é un codice di Reed-Solomon
derivato da un codice (255,239) 6.9 .
Il codificatore a blocchi é seguito da un interleaver di tipo convoluzionale. Per preservare la sincronizzazione del
TS, anche l’interleaver non altera la posizione del byte di sincronizzazione nella stringa.
Per la trasmissione via cavo, la codifica di canale é limitata agli stadi descritti.
Per la codifica satellitare e terrestre, é presente un codificatore convoluzionale, derivato mediante punturazione
da un codice di rapporto di codice Rc = 1/2, lunghezza di vincolo K = 76.10, e distanza libera dfree = 10. Il
codificatore puó quindi introdurre ridondanza in misura variabile, ottenendo una maggiore o minore protezione dei
dati di ingresso. La Tabella 6.4 presenta le diverse alternative in termini di rapporto di codice e di corrispondente
distanza libera.
Codificatore convoluzionale
Rapporto di codice Rc
Distanza libera dfree
1/2
10
2/3
6
3/4
5
5/6
4
7/8
3
Tabella 6.4: Rapporto di codice Rc e distanza libera df ree del codificatore convoluzionale adottato nella distribuzione via
satellite e via rete terrestre.
Per la trasmissione via satellite, la codifica di canale é limitata agli stadi descritti. Per la trasmissione digitale terrestre,
la codifica prevede un ulteriore interleaving, finalizzato a distribuire l’informazione codificata non solo su intervalli
di tempo differenti, ma anche su celle tempo-frequenza differenti. La modalitá con cui é operato tale interleaving
dipende strettamente dal tipo di modulazione, e sará pertanto descritta dopo l’esposizione di quest’ultima.
La modulazione
In questo paragrafo, indichiamo il segnale modulato intorno alla portante f0 , con
s(t) = sc (t) cos(2πf0 t) − ss (t) sin(2πf0 t)
l’inviluppo complesso del segnale con
s(t) = sc (t) + jss (t), s(t) = {s(t) exp j2πf0 t}
Nella modulazione numerica per i mezzi trasmissivi coassiale e satellitare, il formato di modulazione adottato é
di tipo QAM. Pertanto l’inviluppo complesso assume la forma
s(t) =
+∞
ck gT (t − kT )
k=−∞
6.9 I
codici di Reed-Solomon sono codici non binari N, K operanti su simboli di k bit, caratterizzati da N = 2k − 1, K = 0, · · · , N − 1,
Dmin = N − K + 1, e capacitá di correzione d’errore pari a floor(Dmin − 1)/2.
6.10 Il codice, a 64 stati, si basa sugli ultimi 6 bit piú il bit attuale.
70CAPITOLO 6. SERVIZI DI DIFFUSIONE TELEVISIVA: LO STANDARD MPEG-2 E IL DIGITAL VIDEO BROADCASTING
dove i simboli ck sono estratti da una costellazione QPSK nel caso di canale satellitare, e da una 16-QAM, 32-QAM
o 64-QAM nel caso di cavo coassiale. Nel caso del cavo coassiale i due bit piú significativi di ciascun simbolo sono
codificati differenzialmente ed associati ad un salto di quadrante 6.11 , cosicché il ricevitore, ai fini della codifica, non
deve conoscere la rotazione di fase assoluta introdotta dal canale, ma solo la fase a meno di un’ambiguitá di π/2,
ció che semplifica l’operazione di sincronizzazione. In entrambi i casi il filtro di trasmissione gT (t) presenta una
caratteristica a radice di coseno rialzato, ovvero
GT (f) =
⎧
⎪
T 1/2
⎪
⎪
'
⎨
⎪
⎪
⎪
⎩
T 1/2
|f| ≤ fN (1 − γ)
(1/2
1 1
1
(|f| − fN )
− sin 2π
2 2
4γfn
fN (1 − γ) ≤ |f| ≤ fN (1 + γ)
0
|f| ≥ fN (1 + γ)
Tale scelta consente di eliminare l’Interferenza Intersimbolica al ricevitore riducendo al minimo l’impatto del rumore
termico, quando il canale sia ideale ed il filtro di ricezione sia adattato al filtro di trasmissione. Nel caso di canale
satellitare il valore di γ é fissato a 0.35. Nel caso di cavo coassiale, γ = 0.15, al fine di minimizzare la banda
occupata dal segnale e ridurre l’effetto della distorsione lineare introdotta dal canale.
Nella modulazione numerica per la rete di distribuzione digitale terrestre, il formato di modulazione adottato é di
tipo OFDM. L’inviluppo complesso assume la forma
s(t) =
+∞
sk (t − kT )
k=−∞
(0)
(1)
(N−1)
sk (t) = (ck + ck expj2πΔft + · · · + ck
expj2π(N−1)Δft )gT (t)
(i)
dove i simboli ck , i = 0, · · · N − 1 sono estratti da una costellazione QPSK, 16-QAM, o 64-QAM, uniforme o non
uniforme. Ció equivale alla modulazione contemporanea, in un intervallo di tempo di durata T , di N portanti alle
frequenze f0 + iΔf, i = 0, · · · N − 1. Gli spettri modulati intorno alle frequenze f0 + iΔf, i = 0, · · · N − 1, dette
sottoportanti OFDM, sono sovrapposti, e i singoli flussi sono demodulabili sotto opportune condizioni sul filtro di
trasmissione gT (t) e sulla frequenza Δf. In particolare, si assuma
⎧
⎨ 1, −Δ ≤ t ≤ Tu
gT (t) =
⎩ 0, altrove
con Δ + Tu = T . La famiglia di funzioni utilizzata in trasmissione é dunque
ϕn (t) = gT (t) expj2πnΔft , n = 0, · · · , N − 1.
Sia inoltre
gR (t) =
⎧
⎨ 1, 0 ≤ t ≤ Tu
⎩ 0, altrove
Scegliendo Δf = 1/Tu é possibile definire la famiglia di funzioni in ricezione
ψm (t) = gR (t) exp−j2πmΔft , m = 0, · · · , N − 1
6.11 In
particolare, alla coppia 00 si associa la permanenza nello stesso quadrante del simbolo precedente, alla coppia 01 un salto di +π/2, alla
coppia 10 un salto di −π/2, alla coppia 11 un salto di +π.
6.4. DISTRIBUZIONE DEL TRANSPORT STREAM MPEG-2 MEDIANTE PIATTAFORMA DVB
71
ortogonali alla famiglia ϕn (t), n = 9, · · · , N − 1 sull’intervallo di simbolo T . Sotto tali condizioni, é assicurata
l’invertibilitá dell’operazione di modulazione, gli N flussi possono essere demodulati, e gli N simboli trasmessi
nell’intervallo T ricostruiti.
Tanto la fase di modulazione che di demodulazione si avvalgono di tecniche numeriche computazionalmente
molto efficienti. Consideriamo infatti i campioni dell’inviluppo complesso s(t), estratti con passo di campionamento
Tu
Tc =
, facendo riferimento, per semplicitá notazionale, all’intervallo k = 0:
N
def
sm = s(mTc ) = c(0) + c(1) expj2πΔfmTc + · · · + c(N−1) expj2π(N−1)ΔfmTc =
N−1
2π
j
im
c(i) exp N
i=0
Nell’intervallo [0, Tu ), ovvero per m = 0, · · · N − 1, i valori assunti dai campioni dell’inviluppo complesso coincidono con una trasformata numerica (Inverse Discrete Fourier Transform) della sequenza complessa c(0), · · · c(N−1) .
Nell’intervallo [−Δ, 0), i valori dei campioni coincidono con quelli giá calcolati nell’intervallo [Tu − Δ, Tu ), perché il segnale é periodico di Tu . In ricezione é sufficiente campionare l’inviluppo complesso in [0, Tu) e operare
una trasformazione numerica (DFT) per recuperare la sequenza trasmessa. I campioni ridondanti trasmessi durante
l’intervallo di guardia evitano che eventuali code dovute a risposta non ideale del canale alterino i campioni dell’intervallo utile. Inoltre, tale ridondanza puó essere sfruttata per stima ed equalizzazione di canale nel caso di distorsione
lineare. Infatti, un canale linearmente distorcente si presenta in forma di differente guadagno H(f0 + iΔf) sulle
diverse sottoportanti. Se tutte le sottoportanti fossero utilizzate per la modulazione, il segnale occuperebbe una banda
superiore a N Δf; pertanto al fine di limitare la banda occupata dal segnale, un certo numero di sottoportanti agli
estremi della banda sono lasciate non modulate. Nella rete digitale terrestre, la banda occupata dal segnale a radio
frequenza puó essere di 8 MHz, 7 MHz, o 6 MHz, in funzione del clock di campionamento Tc prescelto6.12.
Il segnale puó nominalmente convogliare N = 2K o N = 8K sottoportanti, distanti circa 4KHz o 1KHz e con
intervallo di simbolo differente Tu2K ≈ 250μs e Tu8K ≈ 1000μs. Al fine di limitare la banda effettivamente occupata
a N/Tu solo le 1705 o 6817 sottoportanti centrali sono utilizzate in trasmissione. Il tempo di guardia Δ puó essere
1/4, 1/8, 1/16, 1/32 dell’intervallo utile Tu . Infine, solo N = 1512 o N = 6048 sottoportanti sono utilizzate per
trasmettere dati utili.
Le rimanenti sottoportanti si suddividono in
• portanti per la segnalazione dei parametri di trasmissione (Transmission Parameter Signaling, TPS)
• portanti pilota per le procedure di stima e di sincronizzazione.
Le portanti TPS sottoportanti sono in numero di 17 (2K) o 68 (8K), sono modulate in modalitá DPSK, e trasmettono
contemporanemente lo stesso bit di informazione, in diversitá di frequenza. In 68 simboli OFDM6.13 sono pertanto
trasmessi i 68 bit di TPS, che includono informazioni quali la costellazione utilizzata6.14 , l’intervallo di guardia, il
rate del codice convoluzionale, il modo di trasmissione 2K o 8K, e alcuni bit di paritá.
Le portanti pilota sono allocate in modalitá continua (su frequenze costanti da un simbolo OFDM all’altro) o
dispersa -scattered - (su frequenze variabili da un simbolo OFDM all’altro) e trasmesse a livello di potenza doppia
rispetto alla media nominale-boosted power level- e trasmettono la stessa sequenza pseudocasuale di training con fase
al variare di Tc varia Tu = 1/Δf e di conseguenza la banda occupata a radiofrequenza, approssivamente uguale a N Δf .
di 68 simboli OFDM prende il nome di trama OFDM.
6.14 Nel caso di costellazioni non uniformi é segnalato anche il fattore di non uniformitá.
6.12 Infatti,
6.13 L’insieme
72CAPITOLO 6. SERVIZI DI DIFFUSIONE TELEVISIVA: LO STANDARD MPEG-2 E IL DIGITAL VIDEO BROADCASTING
iniziale differente da pilota a pilota; tale training é utilizzato ai fini della stima di canale e della sincronizzazione di
tempo e frequenza.
L’interleaving operato nel sistema di trasmissione digitale terrestre si basa sulla conversione seriale/parallela del
bitstream da trasmettere in 2, 4 o 6 flussi paralleli, nel caso di QPSK, 16-QAM, 64-QAM rispettivamente. Su
ciascuno dei flussi é operata una permutazione su blocchi di 126 bit consecutivi. I 2, 4 o 6 flussi di 126 bit sono
quindi raggruppati in 126 simboli QPSK, 16-QAM, o 64 QAM. Gruppi di 126 simboli sono raggruppati fino ottenere
tanti simboli quanti sono i simboli utili trasportati da un singolo simbolo OFDM, ovvero 12 gruppi da 126 simboli
nel caso 2k (1512=12x126) o 48 gruppi da 126 simboli nel caso 4k (6048=48x126). Su tali gruppi é infine operato
un interleaving sulla profonditá del simbolo OFDM. Pertanto, l’interleaving effettuato su tutti i simboli convogliati
dal simbolo OFDM consente la dispersione dell’informazione originariamente convogliata dal bitstream sull’intera
cella tempo-frequenza relativa a tale simbolo.
Figura 6.5: Inner Interleaving dei sistemi DVB-T e DVB-H.
6.4. DISTRIBUZIONE DEL TRANSPORT STREAM MPEG-2 MEDIANTE PIATTAFORMA DVB
6.4.2
73
Il sistemi DVB-H
La Raccomandazione ETSI [6] definisce le specifiche tecniche per la distribuzione di audio, video e dati a pacchetto
su terminali mobili (handheld).
Il formato di codifica di canale é lo stesso specificato per il DVB-T, con poche significative differenze, legate alla
circostanza che il terminale ricevente mobile soffre di limitazioni di alimentazione ed é affetto in maggiore misura
da disturbi trasmissivi (cammini multipli, effetto Doppler) rispetto a quanto avviene nel daso DVB-T. Pertanto, il
DVB-H prevede
• un meccanismo di ricezione su brevi intervalli di tempo, alternati da periodi di disattivazione, detto time slicing,
finalizzato a ridurre il consumo di alimentazione6.15 (mandatorio)
• un’ulteriore codifica di canale, detta MPE-FEC (opzionale)
• l’opzione di modulazione OFDM a 4K portanti, che consente di progettare la copertura radio in modo piú
flessibile per fronteggiare echi, cammini multipli e effetto Doppler (opzionale)
• l’opzione di intearleaving su 48 gruppi di 126 simboli anche per le modulazioni 2k e 4k, corrispondente
all’interleaving su 4 o 2 simboli OFDM (opzionale)
Il meccanismo di Time Slicing consente ad una sorgente a velocitá di cifra fb di inviare dati a burst di dimensione
B ≤ 2M b utilizzando il Transport Stream ad un rate R ≥ fb . Pertanto i dati vengono inviati in ridotti intervalli di
durata δON = B/R; dopo l’invio il ricevitore si disattiva per un intervallo δOF F tale che fb = B/(δON + δOF F ),
riattivandosi unicamente circa 200 ms prima del successivo burst. La durata δOF F del periodo di spegnimento é
un’informazione trasmessa congiuntamente al burst. Nel caso tipico che R fb la percentuale di tempo in cui il
ricevitore é attivo é significativamente ridotta.
La codifica di canale MPE-FEC prevede l’invio all’interno dello stesso burst tanto di dati incapsulati MPE quanto
di dati FEC ottenuti mediante codifica di Reed Solomon (255,191). La generazione dei dati FEC é realizzata scrivendo
i pacchetti IP da codificare in una tabella di 191 colonne e numero di righe Nr che assume valori compresi fra 256 e
10246.16. A ciascuna riga di 191 byte sono associati i 64 byte del codice Reed-Solomon. I byte del codice, in numero
di Nr × 64, sono infine letti per colonne e trasmessi nello stesso burst dei relativi pacchetti MPE. Tale meccanismo
di protezione, congiunto con il CRC previsto dal profilo MPE, consente la trasmissione affidabile in una gamma di
condizioni di canale (C/N, velocitá del mobile, shadowing, etc.) ben piú ampia di quella utilizzabile dal DVB-T.
Il rate di codice effettivamente utilizzato puó essere aumentato o diminuito mediante operazioni di padding sui dati
MPE ovvero di puncturing sui dati FEC.
6.15 Il
time slicing puó anche consentire il seamless handover fra TS erogati su celle radio adiacenti.
parametro é statico ed assegnato, ed é notificato fra le informazioni del DVB/SI.
6.16 Tale
74CAPITOLO 6. SERVIZI DI DIFFUSIONE TELEVISIVA: LO STANDARD MPEG-2 E IL DIGITAL VIDEO BROADCASTING
Figura 6.6: Codifica MPE-FEC utilizzata nel DVB-H.
Bibliografia
[1] G. Scarano, “Dispense di elaborazione delle immagini”, infocom.uniroma1.it/˜ gaetano.
[2] B. G. Haskell, P. G. Howard, Y. A. LeCun, A. Puri, J. Ostermann, M.R. Civanlar, L. R. Rabiner, L. Bottou, and P. Haffner, “Image
and Video Coding-Emerging Standards and Beyond”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp.
814-837, November 1998
[3] ETS 300 421, “Digital broadcasting systems for television, sound and data service; Framing structure channel coding and modulation for
11/12 GHz satellite services”, Dicembre 1994.
[4] ETS 300 429, “Digital broadcasting systems for television, sound and data service; Framing structure channel coding and modulation for
cable systems, Dicembre 1994.
[5] ETS 300 744, “Digital Video Broadcasting ; Framing structure channel coding and modulation for digital terrestrial television, Luglio 1999.
[6] ETS 302 304, “Digital Video Broadcasting ; Transmission Sysetm for handheld terminal (DVB-H), Luglio 1999.
[7] G. Faria, J. A. Henriksson, E. Stare, P. Talmola, “ DVB-H: Digital Broadcast Services to Handheld Devices”, IEEE Proceedings, Vol.
94, No. 1, pp. 194-209, January 2006
[8] IETF RFC 4259: A framework for Transmission of IP Datagrams over MPEG-2 Networks, Montpetit M. J. et al., November 2005.
[9] M.G. Di Benedetto, P. Mandarini, “Comunicazioni Elettriche”, Edizioni Ingegneria 2000.
75
Capitolo 7
Servizi di videotelefonia e videoconferenza:
le Raccomandazioni ITU-T
I servizi di videotelefonia e videoconferenza offrono la possibilitá di comunicazione audio video e dati, in tempo
reale ed in modalitá interattiva fra utenti che possono fruire di risorse di accesso estremamente differenziate. I servizi
possono coinvolgere terminali multimediali integrati in aule attrezzate per la comunicazione contemporanea di molti
utenti, ovvero terminali autocontenuti in opportune torri attrezzate riutilizzabili in diversi ambienti, ovvero terminali
implementati in via software su PC desktop, fino a terminali radiomobili. Inoltre, la comunicazione puó avvenire in
modalitá punto-punto o punto multipunto, mediante collegamenti diversificati fra di loro tanto in termini di media
coinvolti, quanto in termini di capacitá dei terminali, quanto in termini di risorse di rete. Si esamineranno qui le
Raccomandazioni ITU-T di riferimento nei diversi contesti di rete. L’analisi muoverá dalla descrizione dell’algoritmo
di codifica video utilizzato, che é descritto nella Racc. H.263.
Sala dedicata
Sistemi Rollabout
Sistemi Desktop
Sala conferenze,
Modulo autocontenuto su
Terminale, videocamera,
equipment in cabina di
carrello
e monitor su PC
Display
regia
Video Proiettore
Monitor sul carrello con
video telefono
Monitor su PC o telefono
Videocamere
Multiple
self view video
Una o due
Una
Illuminazione e acustica
con pan, tilt e zoom
Progettata ad hoc
con pan tilt e zoom
Normale
senza pan tilt e zoom
Normale
Scena tipica
Piú di sei partecipanti
Fino a sei partecipanti
Un partecipante,
Microfoni e altoparlanti
Microfoni multipli,
Microfono centrale con-
inquadratura testa spalle
Microfono con cuffie o
cancellatori d’eco
diviso
videotelefono
Assetto
Tabella 7.1: Sistemi di Videoconferenza.
76
7.1. PRINCIPI DELLA CODIFICA VIDEO H.263
7.1
77
Principi della codifica video H.263
La codifica H.263 si inserisce nel filone delle tecniche di codifica ibride a trasformata che mirano a ridurre la
ridondanza temporale e spaziale tipiche delle sequenze video. A tal fine sfrutta la somiglianza fra quadri adiacenti
mediante tecniche di predizione Inter-frame e la continuità spaziale all’interno dello stesso quadro mediante tecniche
di trasformata Intra-frame. I formati video comunemente adottati per le sequenze di ingresso sono riportati nella
Tabella 7.2.
Formato
Colonne
righe
16CIF
1408
1152
4CIF
704
576
CIF (Common Intermediate Format)
352
288
QCIF
176
144
SQCIF
128
96
Tabella 7.2: Formati video H.263.
I quadri di ingresso, inoltre, sono tipicamente acquisiti ad una velocitá di 10−15 quadri al secondo (frames per second,
fps), piú lenta di quella tipica dei servizi televisivi (25 − 30fps). Ciascuno dei quadri in ingresso si considera diviso
in macroblocchi di 16x16 pixel. Una o piú righe di macroblocchi adiacenti costituiscono un Group di block (GOB).
I possibili modi di codifica di ciascun macroblocco sono essenzialmente due: INTER ed INTRA. Nella modalità
INTRA il macroblocco è codificato indipendentemente dai precedenti quadri codificati. Nella modalità INTER il
macroblocco è codificato identificando un opportuna area 16x16 di riferimento all’interno del quadro precedente, e
codificando il relativo vettore di spostamento e l’errore di predizione, ovvero il macroblocco é suddiviso in quattro
blocchi 8 × 8 e codificato identificando, per ciascun blocco 8 × 8, un blocco di riferimento all’interno del quadro
precedente, e codificando quattro vettori di spostamento e l’errore di predizione opportunamente calcolato. Il modo
di codifica può essere deciso su base quadro, producendo interi quadri di tipo Intra (quadri I), o su base macroblocco
(quadri P).
La scelta del vettore di spostamento, costituito da due componenti intere o semi-intere appartenenti all’intervallo
di valori [-16, +15.5], viene effettuata minimizzando una opportuna funzione che misuri la differenza fra il blocco da
codificare ed il blocco candidato come riferimento. La ricerca del blocco di riferimento ottimo può essere vincolata
da criteri di riduzione del costo computazionale. Il vettore di spostamento stimato é codificato in forma differenziale.
In particolare, è codificata la differenza fra tale vettore ed il mediano di tre vettori opportunamente scelti fra quelli
appartenenti a tre macroblocchi adiacenti; la predizione é effettuata indipendentemente sulle due componenti del
vettore. Nel caso che i vettori di spostamento da utilizzare per la predizione non siano disponibili7.1 essi sono
sostituiti da un valore nullo (bordi laterali) ovvero dal vettore relativo al blocco precedente il blocco attuale (bordo
superiore). Le due componenti del vettore differenza sono poi codificate entropicamente utilizzando una tabella VLC
specificata dallo standard.
Tanto i macroblocchi INTRA quanto l’errore di predizione dei macroblocchi INTER sono trasmessi applicando
la trasformazione Discrete Cosine Transform (DCT) a ciascuno dei 4 blocchi 8x8 che li compongono. La trasformata
DCT, che è di semplice implementazione, compatta l’informazione visuale in pochi coefficienti di valore significativo.
7.1 Ció
puó avvenire ai bordi dell’immagine, ovvero in corrispondenza di “confini” logici fra zone di cui si richieda la decodifica indipendente
(Independent Segment Decoding, ISD) per aumentare la robustezza rispetto agli errori di trasmissione.
78 CAPITOLO 7. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T
I coefficienti DCT sono successivamente quantizzati, ottenendo così una compressione dell’informazione pagata
con la perdita di alcuni dettagli visuali, cui l’occhio umano é relativamente poco sensibile. Il coefficiente DCT
che rappresenta il valor medio dei blocchi INTRA (INTRA-DC) è quantizzato sempre con passo Q[0, 0] = 8. A
differenza di quanto avviene negli standard di codifica video precedentemente descritti, caratterizzati da matrice di
quantizzazione non uniforme e trasmessa insieme ai dati codificati, i restanti coefficienti (AC) sono quantizzati con un
passo di quantizzazione costante e fissato per un intero macroblocco, Q[k1, k2] = 2·QP, k1 = 0, · · · 8, k2 = 0, · · · 8,
con 1 ≤ QP ≤ 31. Il valore QP può variare da un macroblocco all’altro, anche in funzione del tipo di codifica
(INTRA, INTER-P, INTER-B). Dopo la quantizzazione, i coefficienti, in gran parte nulli, sono codificati mediante
una opportuna tavola di codici a lunghezza variabile, o Variable Length Code (VLC).
L’algoritmo di codifica ibrido produce in generale un bitstream che, a paritá di qualitá, presenta bit-rate variabile.
In modo analogo a quanto avviene nelle applicazioni di codifica video ad elevato bit-rate, il codificatore puó equalizzare il bit-rate di uscita aumentando o diminuendo il livello di compressione in funzione dell’occupazione elevata o
ridotta del buffer di uscita. Tuttavia, nel caso di bit-rate medio basso questa fluttuazione del livello di compressione
conduce ad una fluttuazione sensibile della qualitá visuale che é fastidiosa per l’utente finale ed é, laddove possibile,
da evitare.
Per applicazioni di videotelefonia, l’introduzione di quadri INTRA non é necessaria al fine di garantire agli utenti
un accesso casuale; essa puó invece essere richiesta dal decodificatore al codificatore utilizzando il canale di ritorno
per il recupero di eventuali errori di trasmissione. A causa dell’elevato costo in bit di un quadro INTRA, la sua
introduzione produce un ritardo di trasmissione; d’altro canto diminuire il costo del quadro aumentando il fattore di
compressione produce una drastica riduzione della qualitá visuale della sequenza decodificata. In definitiva l’uso di
quadri INTRA é limitato ed eventualmente sostituito mediante l’aggiornamento in modalitá INTRA di macroblocchi
isolati.
7.2
Le opzioni avanzate del codec H.263
Rispetto ad altri sistemi di codifica, quali l’H.261, l’H.263 presenta miglioramenti in termini di efficienza di predizione
inter-quadro, risoluzione temporale, qualità visuale della sequenza ricostruita, e sintassi. Tali miglioramenti sono
rispettivamente ottenuti mediante l’adozione delle seguenti quattro opzioni di codifica, finalizzate ad un aumento
dell’efficienza di compressione, descritte in differenti annessi tecnici della Raccomandazione:
• Unrestricted Motion Vectors (Annex D); é abilitato l’uso di vettori spostamento che puntino al di fuori
dell’immagine, ed estende i vettori all’intervallo [-32,31.5]; aumenta l’efficienza di compressione;
• Syntax based arithmetic coding (Annex E); abilita una codifica particolarmente efficiente e ottimizzata sui
diversi elementi sintattici dei coefficienti quantizzati, con un risparmio in bit dell’ordine del 3-4 % sui quadri
INTER e del 10 % sui quadri INTRA.
• Advanced Prediction (AP) o Overlapped Block Motion Motion Compensation (OBMC) (Annex F); migliora la
qualitá dell’immagine predetta a paritá di bit-rate, come esemplificato in Fig.7.1;
• PB frames (Annex G); é abilitato l’uso di frame B, ma in un unica unitá sintatica col frame P successivo per
garantire l’efficienza di codifica;
7.2. LE OPZIONI AVANZATE DEL CODEC H.263
7.2.1
79
La motocompensazione avanzata in H.263
La motocompensazione avanzata in H.263 prende il nome di Advanced Prediction (AP) o Overlapped Block Motion
Motion Compensation (OBMC) per calcolare la predizione di ciascun pixel utilizza oltre al vettore di moto del blocco
8 × 8 attuale anche i vettori di moto dei due blocchi piú vicini. I tre valori di luminanza predetti utilizzando tali
vettori sono combinati linearmente utilizzando pesi differenti in funzione della posizione del pixel all’interno del
blocco, come rappresentato in Fig.7.2 ed esemplificato in Fig.7.3.
Figura 7.1: Esempio di immagine predetta mediante motocompensazione tradizionale e avanzata su blocchi 8x8.
80 CAPITOLO 7. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T
Figura 7.2: Advanced Motion Compensation su blocchi 8x8.
7.3
La sintassi H.263
La struttura del bitstream ricalca essenzialmente la struttura gerarchica nella quale vengono suddivisi i quadri in
ingresso. In particolare, sono definiti quattro livelli sintattici:
• quadro (picture layer),
• gruppo di blocchi (GOB layer),
• macroblocco (MB layer),
• blocco (block layer).
A livello di quadro é definito il cosiddetto Picture Header che contiene informazioni di primaria importanza per
la decodifica, ed induce una divisione del bitstream in unità sintattiche che, per motivi di robustezza, deve essere
mantenuta anche nella fase di multiplazione. Il Picture Header é costituito da una intestazione di lunghezza fissa,
contenente un Picture Start Code (PSC) di 22 bit, che abilita la sincronizzazione da parte del decodificatore, un’informazione di riferimento temporale (TR) relativa all’indice temporale del quadro riferito ad un clock a 29.97 Hz, e
importanti informazioni di segnalazione. In particolare, sono previste informazioni sul formato della sequenza video,
sul tipo di quadro (I, P o PB), sulle opzioni di codifica utilizzate nel quadro, scelte fra quelle negoziate all’inizio
della comunicazione. Il Picture Header, inoltre, contiene il coefficiente PQUANT di 5 bit, che rappresenta il parametro di quantizzazione utilizzato per l’intero quadro, a meno che non sia alterato da informazioni pertinenti ad un
livello sintattico inferiore, e, nel caso di coppia PB, un’eventuale variazione del coefficiente di quantizzazione sul
quadro B (DBQUANT) e il relativo riferimento temporale (TRB). Infine sono previsti comandi per il decodificatore
7.3. LA SINTASSI H.263
81
Figura 7.3: Esempio di Advanced Prediction.
82 CAPITOLO 7. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T
(Freeze Picture Release, Split Screen), o per la entitá di gestione di conferenze detta Multipoint Control Unit, o MCU
(Continous Presence Multipoint, CPM).
Il GOB é una struttura composta da una riga di macroblocchi (SubQCIF, QCIF, CIF), oppure da due (4CIF), o
quattro (16CIF) righe di macroblocchi. A livello di GOB, è inserita un’intestazione (GOB header), contenente un
GOB Start Code di 17 bit per il recupero di sincronismo al decodificatore in presenza di errori nel bitstream, ed un
identificativo di 5 bit (GN) del numero d’ordine del GOB all’interno del quadro. Il GOB header, opzionalmente,
contiene il coefficiente GQUANT a 2 bit, che rappresenta la variazione del parametro di quantizzazione del GOB, a
meno che non sia alterato da informazioni pertinenti a livello di macroblocco. Poiché il numero di macroblocchi che
costituiscono il GOB è fissato, mentre il corrispondente numero di bit codificati che lo rappresenta è estremamente
variabile, la distanza in bit fra GOB header consecutivi è variabile.
A livello di macroblocco sono inserite tutte le informazioni riguardanti il modo di codifica del macroblocco,
i vettori di spostamento7.2 codificati in forma differenziale, nonché la presenza o meno di coefficienti diversi da
zero (Coded Block Pattern) nei diversi blocchi. Il livello di macroblocco, opzionalmente, contiene il coefficiente
DQUANT, che rappresenta il parametro di quantizzazione del macroblocco, codificato in forma differenziale rispetto
al precedente. A livello di blocco sono infine trasmessi il coefficiente DC (8 bit) e i coefficienti AC.
7.4
Versioni, profili e livelli del codec H.263
La versione 2 dello standard H.263 (H.263+), è compatibile all’indietro con l’H.263, ma supporta la codifica di
formati video di ingresso anche di alta qualità, riducendo alcune restrizioni su i vettori spostamento e sui parametri di
quantizzazione. Inoltre gode della proprietá di scalabilitá, consentendo al decodificatore di scartare parte del bitstream
e ricostruire una sequenza di ridotta risoluzione, spaziale o temporale, ovvero di ridotta qualità; in tal modo si abilita
la decodifica dello stesso flusso decodificato da parte di destinatari i cui terminali differiscano per banda disponibile,
potenza di calcolo, o formati di visualizzazione.
Dal punto di vista della robustezza rispetto agli errori, la versione 2 dell’H.263 sostituisce al concetto di GOB
(numero di macroblocchi fissato) il concetto di Slice (numero di macroblocchi variabile). Ciò consente di codificare le
Slice come unità sintattiche omogenee dal punto di vista della lunghezza in bit, separate da punti di sincronizzazione
(Slice header) approssimativamente equidistanti. Slice o GOB all’interno di un quadro sono decodificabili in modo
indipendente. Infine, è prevista la possibilità di utilizzare tabelle di codici di tipo RVLC (Reversible Variable-Length
Coding) per i vettori spostamento, che consentono la decodifica del codice tanto a partire dal primo bit che dall’ultimo,
e di fronteggiare pertanto meglio eventuali errori di trasmissione intermedi.
La versione 3 dello standard H. 263 (H.263++) prevede la modalità di codifica Data Partitioning, che separa,
all’interno del flusso codificato, sezioni che rappresentano dati di diversa importanza visuale. In tale modalità i dati
sono organizzati a segmenti indipendenti, e ogni segmento è diviso in due parti separate da opportuni marcatori. La
prima parte rappresenta i vettori di spostamento e gli header dei macroblocchi, mentre la seconda parte rappresenta i
relativi coefficienti DCT.
Il sistema di codifica H.263 prevede differenti opzioni di codifica, finalizzate a maggiore efficienza di compressione
e miglioramento della qualità visuale, e differenti versioni, tali da offrire maggiore robustezza rispetto agli errori di
7.2 Ad
ogni macroblocco compete un vettore spostamento nel caso di motocompensazione ordinaria e quattro vettori spostamento, uno per ciascun
blocco 8x8, nel caso di AP.
7.5. RACCOMANDAZIONI ITU-T PER VIDEOTELEFONIA E VIDEOCONFERENZA SU RETE FISSA
83
trasmissione. Per semplificare la negoziazione e l’interazione fra codec sono stati identificati un insieme limitato di
profili, caratterizzati dall’uso di un sottoinsieme limitato di opzioni di codifica, riportati nelle Tabelle 7.5,7.4.
Gli strumenti di robustezza all’errore citati, ovvero la codifica in numero di macroblocchi variabile, la codifica
RVLC dei dati rilevanti, la codifica indipendente di diverse aree dell’immagine, la partizione dei dati di diversa
rilevanza visuale sono, almeno nei principi ispiratori, condivisi con lo standard MPEG-4.
Annex
Funzionalitá
Miglioramenti ottenuti
D
Unrestricted Motion Vectors
efficienza di codifica
F
Advanced Prediction
qualitá soggettiva riducendo la blocchettizzazione
(1)
I
Advanced INTRA Coding
efficienza di codifica per MB
J
Deblocking Filter
riduzione della blocchettizzazione
K
Slice Structured mode
robustezza agli errori
L.4
Full Picture Freeze (SEI mode)
anteprima di immagini ad alta qualitá
O.1
B-Pictures (Temporal Scalability Mode)
(2)
fluiditá
P.5
Reference Picture Re-sampling
T
Modified Quantization
ricampionamento del quadro di riferimento
flessibilitá della quantizzazione
U
Enhanced Reference Picture Selection
efficienza di codifica
V
Data Partitioned Slice Mode
robustezza agli errori
W.6.3.8
Previous Picture Header Repetition
robustezza agli errori
W.6.3.11
Interlaced Field Indications
applicabilitá ai formati interallacciati
(3)
Tabella 7.3: Annessi tecnici allo standard di codifica video H.263. (1) Abilita la predizione dei coefficienti DCT di un MB
INTRA a partire da quelli di altri MB INTRA. (2) Abilita la generazione di una nuova immagine di riferimento mediante
ricampionamento, al fine di supportare un cambio di formato o di consentire una motocompensazione globale. (3) Abilita la
sostituzione del parametro di quantizzazione con delle matrici di quantizzazione.
Fra i profili citati, evidenziamo il profilo baseline, di minima complessità, che non utilizza nessuna opzione
aggiuntiva di codifica, e il profilo wireless, che supporta le tecniche di Advanced INTRA Coding, Modified Quantization e Deblocking Filter, che migliorano la qualità visuale ai bassi bit rate, e la codifica su base Slice, che migliora
la robustezza agli errori. In dipendenza della versione di codec supportata dal terminale, è adottata la modalità Data
Partitioning e la ripetizione di parametri critici per la decodifica.
7.5
Raccomandazioni ITU-T per videotelefonia e videoconferenza su rete
fissa
La normativa ITU-T definisce, nell’ambito delle Raccomandazioni della serie H Visual Telephone Systems, i sistemi ed
i terminali per servizi di comunicazioni multimediali punto-punto e punto-multipunto, mediante la specifica di aspetti
funzionali per una fissata rete di comunicazione. In particolare, le raccomandazioni di tipo definiscono i terminali
(H.32x), le codifiche video (H.26x), il multiplex di trasporto (H.22x), le procedure di controllo tra terminali (H.24x),
le codifiche voce/audio (G.7xy), i protocolli per la gestione di dati multimediali e la condivisione di applicazioni
(T.12x).
84 CAPITOLO 7. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T
Per la videcomunicazione su N-ISDN7.4 , la Raccomandazione H.320 definisce la struttura generale del terminale,
le interfacce relative alla rete di comunicazione e la segnalazione di rete, le regole di multiplazione e demultiplazione
(Racc.H.221) dei flussi audio, video e dati e i relativi algoritmi di codifica, e infine la segnalazione tra terminali
(Racc.H.242).
La Raccomandazione H.324 definisce il terminale e le entitá per la videcomunicazione su GSTN mediante modem
a 28.8 kBit/s. Le entitá previste dalla Raccomandazione H.324 sono
• i terminali, realizzati mediante PC o dispositivi dedicati;
• i gateway, che abilitano la connessione con terminali o reti con terminali non-H.324, traducendo i protocolli
per iniziare e rilasciare una chiamata;
• la Multipoint Control Unit (MCU), che supporta conferenze con più di tre partecipanti e svolge funzioni di
processing e di controllo.
La raccomandazione H.323 definisce la videocomunicazione su reti a pacchetto a qualitá non garantita, ed in
particolare reti IP. Può essere adottata su LAN, ATM, GSTN, ADSL. Essa prevede
• i terminali,
• i gateway,
• la Multipoint Control Unit (MCU),
• i Gatekeeper, opzionali, che gestiscono le chiamate, gli indirizzamenti, le autorizzazioni, l’occupazione di
banda,
cioé tutte le entitá giá citate per la Raccomandazione H.324 e i Gatekeeper. I blocchi funzionali Gateways, Gatekeeper
e MCU possono risiedere in una sola unità di rete.
Le raccomandazioni H.324 e H.323 condividono i protocolli di controllo della comunicazione, descritti nella
raccomandazione H.245. La segnalazione H.245, fra l’altro, consente l’apertura e chiusura di canali logici, la descrizione del loro contenuto, la negoziazione delle capacitá del terminale, l’indicazione della modalitá di multiplazione
e protezione e di alcuni parametri del trasporto, fra cui la dimensione della Maximum Transfer Unit, MTU
7.5
.
La Raccomandazione H.225 presente in H.323 descrive, oltre ai formati di multiplazione, le procedure di segnalazione per il controllo di chiamata, per disciplinare l’accesso alle risorse di rete (Registration Admission Status,
RAS). Le procedure RAS per Autenticazione, Autorizzazione, Accounting, consentono lo scambio di informazioni
fra terminali/gateway e gatekeeper, per funzionalitá di gatekeeper discovery, registrazione di terminali, localizzazione
ed assegnazione di indirizzo, controllo di ammissione e restrizione degli accessi; in tal senso la raccomandazione
H.225 integra l’informazione di controllo definita in H.245.
7.4 La
capacitá N-ISDN é tipicamente fornita nella modalitá di accesso base a 144 Kb/s (2 B channel a 64 Kb/s e un D channel a 16 Kb/s)
ovvero nella modalitá di accesso primario a 2048 Kb/s risultante da differenti combinazioni di canali B a 64 Kb/s, D a 16 o 64 Kb/s, o H a 384,
536, 1920, 2048 Kb/s.
7.5 Comandi e indicazioni non richiedono risposte esplicite da parte del terminale remoto: i comandi forzano un azione mentre le indicazioni
mandano un’informazione. Richieste richiedono azioni e risposte immediate. Le risposte sono i messaggi di ritorno per le richieste.
7.5. RACCOMANDAZIONI ITU-T PER VIDEOTELEFONIA E VIDEOCONFERENZA SU RETE FISSA
7.5.1
85
I formati di multiplazione a pacchetto H.223 e H.225 (RTP) per i flussi di dati
multimediali
Sia la Raccomandazione H.324, per connessioni a circuito, che la Raccomandazione H.323, per connessioni a pacchetto, prevedono formati di multiplazione a pacchetto, definiti rispettivamente nelle Raccomandazioni H.223 e
H.225.
I protocolli di multiplazione previsti in H.223 prevedono uno strato di adattamento (Adaptation Layer) ed uno di
multiplazione (Multiplex Layer). L’AL adatta i pacchetti in uscita ai codec di sorgente aggiungendo un numero di
byte variabile in funzione del tipo di dati trasmessi. Si definiscono tre tipi di AL:
• AL1, che non aggiunge dati al bitstream demandando il controllo d’errore agli strati superiori (formato tipico
dei dati),
• AL2, che aggiunge al pacchetto un byte di CRC e opzionalmente un byte per numerazione di sequenza (formato
tipico dell’audio),
• AL3, che aggiunge al pacchetto due byte di CRC e opzionalmente uno o due byte per numerazione di sequenza
e controllo, ed ammette un meccanismo di ritrasmissione (formato tipico del video).
La peculiaritá del formato di multiplazione H.225 previsto in H.323 é che non è definito un vero e proprio flusso
multiplato, ma ciascun flusso (audio, video, dati) é trasmesso separatamente e la multiplazione é realizzata dal livello
di rete. Ogni pacchetto porta un time stamp, che consente la equalizzazione dei ritardi (jitter) e la sincronizzazione
tra media diversi. Ciascun flusso, audio, video o dati, é trasferito utilizzando una pila protocollare unreliable e
l’informazione di controllo e segnalazione H.245 é trasferita utilizzando una pila protocollare reliable. Di assoluta
rilevanza operativa é il caso di un supporto di rete IP, in cui la pila protocollare unreliable per i flussi audio, video
o dati é la pila RTP/UDP/IP, la pila protocollare reliable per il controllo e la segnalazione é la pila TCP/IP.
Osserviamo che nel contesto H.323 la videoconferenza punto multipunto puó fruire delle funzionalitá di multicast
della rete, assumendo una forma decentralizzata e alleggerendo le funzionalitá della MCU.
I formati di multiplazione H.223 e H.225 presentano forti analogie, essendo entrambi orientati al pacchetto e
realizzando funzionalitá di rivelazione d’errore e sequence numbering; le principali differenze risiedono nel fatto che,
rispetto a RTP/UDP/IP, il mux H.223 presenta minore overhead, consente la ritrasmissione, é piú robusto agli errori;
d’altro canto non possiede meccanismi per il riferimento temporale, non gestisce le congestioni, ed é progettato per
una banda massima piú piccola.
86 CAPITOLO 7. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T
Il protocollo RTP
A livello di trasporto, le reti IP utilizzano comunemente due protocolli. Il primo, TCP, caratterizzato da un header
tipico di 20 byte, offre un servizio byte-oriented affidabile, basato su meccanismi di ritrasmissione e controlli di
time-out, che a causa della impredicibilitá dei ritardi introdotti non si adatta alle comunicazioni real-time; il secondo,
UDP, offre un servizio semplice non affidabile. L’UDP Header di 8 byte fornisce una check-sum del payload del
pacchetto IP. A meno di tale controllo di paritá, il protocollo non introduce funzionalitá rispetto al protocollo
IP; pertanto i pacchetti UDP/IP possono essere persi, duplicati, consegnati fuori sequenza, dal trasferimento. Il
protocollo RTP é un protocollo end-to-end di livello di applicazione tipicamente usato su UDP/IP. Il pacchetto RTP
consta di un header di 12 byte che contiene informazioni di sequence numbering, time-stamps, payload type a , marker
bit b , identificativi della sorgente del flussoc . Il protocollo RTP prevede un canale di controllo di ritorno opzionale
(RTCP) che consente al coder di monitorare i pacchetti effettivamente arrivati a destinazioni nelle condizioni attuali
della rete.
a Il
Payload Type contiene l’indicazione del codec multimediale relativo al payload trasportato, secondo tabelle standardizzate o scambiate
nella fase di negoziazione delle opzioni di codifica
b Il Marker bit identifica l’ultimo pacchetto di un gruppo caratterizzato dalla stesso time-stamp; ad esempio l’ultimo pacchetto relativo allo
stesso quadro video; ció consente al decodificatore di iniziare la decodifica prima della ricezione del successivo pacchetto RTP.
c Il campo Synchronization Source Identifier SSRC consente di identificare la sorgente del flusso; nel caso di dati risultanti dal miscelamento
di piú sorgenti, i campi opzionali Contributing Source Identifier CSRC consentono l’identificazione delle diverse sorgenti coinvolte.
7.5.2
Il formato RTP per il flusso binario H.263
Dal punto di vista concettuale, i criteri di frammentazione del bitstream e incapsulamento nei pacchetti del trasporto
mirano a rendere il bitstream robusto rispetto a errori casuali e a perdita di pacchetto, e possono essere sintetizzati in
poche linee guida:
• a ciascuna unità semantica (quadro, segmento di immagine) e a ciascuna unità sintattica provvista di strumenti
di risincronizzazione (gruppo di blocchi) dovrebbe corrispondere un solo pacchetto
• gli header dei diversi livelli sintattici del bitstream non devono essere divisi in più pacchetti
• gli header dei diversi livelli sintattici del bitstream devono essere collocati all’inizio del pacchetto
La pacchettizzazione RTP del flusso binario H.263 definita in [3] opera secondo i criteri sovraesposti. Gli startcode che cadono all’inizio di un pacchetto RTP possono essere sinteticamente segnalati mediante un opportuno bit di
intestazione. Ogni pacchetto RTP contiene un Header RTP di lunghezza fissa, contenenti, fra gli altri, un Marker bit
(M), che segnala se il pacchetto contiene o meno la fine del quadro corrente, un campo di Payload Type (PT), che
specifica il formato H.263 del payload, ed un Time Stamp che codifica l’istante di campionamento del primo quadro
contenuto del pacchetto, consentendo la sincronizzazione fra media differenti, nonché fra strati base e enhancement nel
caso di codifica scalabile. All’interno del pacchetto RTP è poi trasportato il payload H.263. Ai fini della robustezza
agli errori, il flusso dovrebbe contenere una copia ridondante del Picture header, così da consentire la decodifica
anche quando la prima sia andata persa. Inoltre, la lunghezza in bit dell’unitá sintattica codificata dovrebbe essere
scelta in modo da non superare la dimensione della Maximum Transfer Unit (MTU) della rete7.6. Ad esempio, si
7.6 Su
reti Ethernet la MTU ha dimensione pari a 1500 byte; su reti wireless la MTU ha dimensione dell’ordine dei 100 byte.
7.5. RACCOMANDAZIONI ITU-T PER VIDEOTELEFONIA E VIDEOCONFERENZA SU RETE FISSA
87
potrebbe trasferire un quadro in un unico pacchetto RTP, laddove la stringa codificata corrispondente al quadro non
superi la lunghezza della MTU della rete. Alternativamente, il quadro potrebbe essere suddiviso in più segmenti
trasmessi indipendentemente mediante un primo pacchetto seguito da uno o più pacchetti follow-on, con ripetizione
del picture header.
Figura 7.4: Schema a blocchi del terminale H.324.
88 CAPITOLO 7. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T
Figura 7.5: Pila protocollare del terminale H.323.
7.5. RACCOMANDAZIONI ITU-T PER VIDEOTELEFONIA E VIDEOCONFERENZA SU RETE FISSA
N.
Profile Name
Description
Version
Annexes
0
Baseline
Minimal capability.
H.263
None
1
H.320
Enhanced coding effi-
H.263+
Advanced INTRA Coding,
H.263
Advanced Prediction
Coding
Efficiency
2
V2
ciency.
7.3
Backward-Compatibility
V1
Enhanced coding effi-
Backward-Compatibility
ciency within the first
version di H.263 (V1).
Advanced INTRA Coding
3
V2 Interactive and Strea-
Enhanced coding effi-
ming Wireless
ciency.
H.263+
Enhanced error
Deblocking Filter
Slice Structured mode
Modified Quantization
resilience for delivery to
wireless devices.
Advanced INTRA Coding
Deblocking Filter
4
V3 Interactive and Strea-
Enhanced coding effi-
ming Wireless
ciency.
H.263++
Enhanced error
Slice Structured mode
Modified Quantization
Data Partitioned Slice Mode
resilience for delivery to
Previous Picture Header Repetition
wireless devices.
Unrestricted Motion Vectors
Advanced Prediction
Advanced INTRA Coding
5
Conversational
High
Compression
Enhanced coding effi-
H.263++
Deblocking Filter
ciency. No delay associa-
Full Picture Freeze
ted with B pictures. No
Modified Quantization
error resilience.
Enhanced Reference Picture Selection
Unrestricted Motion Vectors
Advanced Prediction
Advanced INTRA Coding
6
Conversational Internet
Enhanced coding efficiency.
H.263++
No delay asso-
Deblocking Filter
Slice Structured mode
Full Picture Freeze
ciated with B pictures.
Modified Quantization
With error resilience mo-
Enhanced Reference Picture Selection
des suitable for Internet
Protocol (IP) networks.
Unrestricted Motion Vectors
Advanced Prediction
Advanced INTRA Coding
7
Conversational Interlace
Enhanced coding effi-
Profile
ciency for low-delay applications.
H.263++
Deblocking Filter
Full Picture Freeze
Modified Quantization
Support di
Enhanced Reference Picture Selection
interlaced video.
Interlaced Field Indications
Unrestricted Motion Vectors
Advanced Prediction
Advanced INTRA Coding
Deblocking Filter
8
High Latency Profile
Enhanced coding efficiency for applications
without
critical
constraints.
delay
H.263++
Slice Structured mode
Full Picture Freeze
B-Pictures
Reference Picture Re-sampling
Modified Quantization
Enhanced Reference Picture Selection
Tabella 7.4: Profili dello standard di codifica video H.263.
89
90 CAPITOLO 7. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T
Terminal capability messages (H.263)
advancedIntraCodingMode, deblockingFilterMode, improvedPBFramesMode, unlimitedMotionVectors,
PictureFreeze (full, partial, resizing), PictureSnapshot (full, partial)
dynamicPictureResizing, Warping, progressiveRefinement, modified QuantizationMode
IndependentSegmentDecoding, slicesInOrder-NonRect (NoOrder, Rect), dataPartitionedSlices, PictureHeaderRepetition (current, previous, next).
Logical Channel Signaling (H.223)
adaptationLayerType: nonStandard, al1 (framed unframed), al2 (with or without sequence number), al3 (number of control field octets, size of the send
buffer), al1M, al2M, al3M
PictureFreeze (full, partial, resizing), PictureSnapshot (full, partial)
headerFEC, crcLength, rcpcCodeRate, arqType, alpduInterleaving, alsduSplitting, rsCodeCorrection
Logical Channel Signaling (H.225)
sessionID (unique RTP or T.120 Session Identifier), associatedSessionID (lip synchronization), transportAddress (unicast, multicast),
mediaChannel (IPv4, IPv6), mediaGuaranteedDelivery, mediaControlChannel mediaControlGuaranteedDelivery, silenceSuppression, dynamicRTPPayloadType, mediaPacketization
Miscellaneous Command
videoFreezePicture, videoFastUpdate (Picture, GOB, MB), videoTemporalSpatialTradeOff
videoSendSyncEveryGOB (Cancel), maxH223MUXPDUsize
Tabella 7.5: Esempi di messaggi H.245.
Bibliografia
[1] G. Scarano, “Dispense di elaborazione delle immagini”, http:
infocom.uniroma1.it/gscarano.
[2] B. G. Haskell, P. G. Howard, Y. A. LeCun, A. Puri, J. Ostermann, M.R. Civanlar, L. R. Rabiner, L. Bottou, and P. Haffner, “Image
and Video Coding-Emerging Standards and Beyond”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp.
814-837, November 1998
[3] IETF RFC 2429: RTP Payload Format for the 1998 Version of ITU-T Rec. H.263 Video (H.263+), Bormann C. et al., October 1998.
91
Capitolo 8
Lo standard ISO MPEG-4
8.1
Principi dello standard MPEG-4
Gli standard di codifica video MPEG-1, MPEG-2 e H.26x nascono per applicazioni chiaramente definite e limitate,
quali, rispettivamente la distribuzione di televisione digitale e la videocomunicazione interpersonale. Lo standard
MPEG-4 nasce per soddisfare le esigenze di un ampio insieme di applicazioni, non tutte completamente definite al
momento della definizione dello standard.
Lo standarda MPEG-4 é stato concepito per applicazioni multimediali estremamente differenziate dal punto di
vista dei dati stessi (audio, video, immagini fisse), della natura delle sorgenti di dati (naturali o sintetiche), della
architettura di comunicazione (punto-punto, punto-multipunto, multipunto-multipunto), e delle funzionalitá richieste
(post-elaborazione avanzata, editing e manipolazione, robustezza agli errori).
L’attivitá di standardizzazione di MPEG-4, sviluppatasi fra il 1993 e il 1999, ha mirato a definire un insieme
di strumenti (tools) di codifica per un insieme di applicazioni differenziate fra di loro. Fra le principali aree di
applicazione sono state considerate particolarmente rilevanti:
• Distibuzione di dati a qualitá televisiva, con avanzata interattivitá dell’utente
• Comunicazioni multimediali per utenti mobili
• Produzione di dati multimediali con elevata flessibilitá rispetto al contenuto
• Giochi e applicazioni di intrattenimento basate su dati naturali e sintetici
• Video Streaming su Internet
Per supportare tali applicazioni, lo standard MPEG-4 offre caratteristiche riconducibili a
• Elevata efficienza di compressione (Compression Efficiency)
• Accessibilitá mediante differenti supporti, fissi o mobili, a banda larga o stretta (Universal Access)
• Interattivitá orientata al contenuto (Content-based Interactivity)
92
8.1. PRINCIPI DELLO STANDARD MPEG-4
93
Per supportare le funzionalitá sopra citate, lo standard definisce una codifica dei dati multimediali, e in particolare
della sequenza video, orientata agli oggetti. La scena da rappresentare, (composta da video e audio, di tipo naturale
o sintetico), é descritta come una composizione di oggetti con evoluzione spaziale e temporale indipendenti.
Figura 8.1: Esempio di decomposizione di contenuto multimediale in oggetti audio e video .
Un oggetto MPEG-4 puó essere di tipo video o audio, naturale o sintetico. Un oggetto video naturale puó essere
di tipo rettangolare di dimensioni arbitrarie, oppure puó avere forma arbitraria ed essere eventualente caratterizzato
da informazioni di trasparenza; puó inoltre essere caratterizzato da profonditá di colore variabile fra 4 bit e 12 bit;
puó inoltre degenerare in un’immagine fissa. Un oggetto video di tipo sintetico, che a sua volta puó contenere una o
piú porzioni estratte da video naturale, puó avere differente complessitá, ma é tipicamente di tipo animato, a partire
da video e immagini fisse sintetiche o naturali. Fra gli oggetti audio di MPEG-4 compaiono oggetti di tipo audio
tradizionale, fra cui il segnale vocale, oggetti ibridi quale segnale vocale generato a partire da un testo, o anche
oggetti sintetici per la generazione di suoni piú o meno complessi.
L’approccio ad oggetti apre la strada ad una differenziazione del trattamento degli oggetti stessi in termini di:
• strumenti di codifica (tools8.1);
• risorse allocate per la trasmissione;
• risorse allocate per la protezione;
• formati di codifica.
8.1 Nell’ambito
MPEG-4 é usuale parlare di tools piuttosto che di algoritmi di codifica, perché lo standard mira a fornire strumenti utilizzabili
in modo flessibile e riconfigurabile.
94
CAPITOLO 8. LO STANDARD ISO MPEG-4
I principali oggetti individuati in MPEG-4 e i corrispondenti Profili di codifica sono gli oggetti video naturali
(Tabella 8.1), gli oggetti video sintetici e ibridi (Tabella 8.2), gli oggetti audio naturali e sintetici(Tabella 8.3), gli
oggetti grafici (Tabella 8.4), e i descrittori della scena (8.5).
Per ció che concerne la codifica di oggetti video, gli oggetti video naturali sono codificati mediante tecniche di
codifica ibrida a trasformata, opportunamente adattate alla codifica di oggetti forma arbitraria. Oltre a tali tecniche
di codifica, MPEG-4 include nei profili di codifica di oggetti video sintetici, l’animazione di volti umani descritta
mediante la caratterizzazione della locazione assoluta e dell’evoluzione temporale di opportuni punti di riferimento
(Simple Facial Animation). MPEG-4 offre inoltre la possibilitá di mappare tessiture statiche in superfici 2D e 3D per
la generazione di oggetti sintetici, e di descrivere tessiture animate. Le tessiture statiche sono codificate utilizzando
strumenti di codifica wavelet-based, analoghi a quelli definiti in JPEG 2000; a differenza di quanto previsto nel
JPEG 2000, tali tool prevedono la predizione fra elementi di differenti sottobande, risultando cos´ piú efficienti in
compressione ma meno robusti rispetto agli errori. Le tessiture animate sono descritte mediante l’animazione di un
grigliato (mesh) a maglia triangolare, che consente l’uto di trasformazioni di tipo affine per la motocompensazione.
Infine, MPEG-4 consente la codifica indipendente di sfondi, detti sprite; per gli oggetti sprite sono abilitate operazioni
di image warping, per supportare variazioni quali zoom o panning, e cambiamenti di illuminazione.
Profilo
Funzionalitá
Simple
Efficienza di compressione, Resistenza agli errori, Oggetti video rettangolari,
Simple Scalable
Scalabilità in spazio, in tempo
Core
Oggetti di forma arbitraria, Scalabilità in tempo
Main
Oggetti interallacciati, Oggetti semitrasparenti, Sprite
N-Bit
Oggetti con dinamica da 4 a 12 bit/pixel
Tabella 8.1: Profili video naturale.
Profilo
Funzionalitá
Simple Facial Animation
Animazione di un modello di viso umano
Scalable Texture
Scalabilità in spazio di immagini fisse
Basic Animated 2D Texture
Hybrid
Scalabilità SNR, Animazione di immagini fisse basata su mesh
Video sintetico e naturale (con oggetti del profilo Core)
Tabella 8.2: Profili video sintetico o ibrido.
Profilo
Funzionalitá
Speech
Coder parametrico VLB, Coder CELP narrow/wideband, Interfaccia Text-To-Speech
Synthesis
Sintesi di suoni e rumori, Interfaccia Text-To-Speech
Scalable
Scalabilità per parlato e musica
Main
Funzionalitá precedenti e algoritmi di tipo AAC e TWinVQ
Tabella 8.3: Profili audio.
8.2. LA CODIFICA VIDEO DI OGGETTI DI FORMA ARBITRARIA
Profilo
Simple 2D
95
Funzionalitá
posizionamento di uno o più oggetti visuali
Complete 2D
testo e grafica bidimensionale
Complete 3D
grafica avanzata, gestione di illuminazione degli oggetti
Tabella 8.4: Profili grafici.
Profilo
Funzionalitá
Audio
applicazioni con solo contenuto audio
Simple 2D
Complete 2D
Complete (VRML)
uno o più oggetti audiovisuali senza supporto di interattività
descrizione di scene 2D
insieme completo degli elementi BInary Format for Scene description(BIFS)
Tabella 8.5: Profili di descrizione della scena.
Figura 8.2: Oggetto video sintetico di tipo Simple Face rappresentato nel profilo Simple Facial Animation.
8.2
La codifica video di oggetti di forma arbitraria
La figura 8.3 mostra l’architettura base di un codificatore video basato sul contenuto della scena. Gli oggetti (di tipo
naturale o sintetico 2D o 3D) sono rappresentati come entità indipendenti, individualmente accessibili nel bitstream.
Gli oggetti che costituiscono la scena sono poi ricomposti tramite informazioni dette di composizione. Ciascun
oggetto puó essere rappresentato in modo scalabile mediante diversi Layer, ovvero diversi livelli di informazione;
grazie all’approccio ad oggetti, la scalabilitá puó essere realizzata in modo differenziato per i diversi oggetti che
compongono la scena.
96
CAPITOLO 8. LO STANDARD ISO MPEG-4
Figura 8.3: Il codificatore video MPEG-4.
Il codificatore dei VOP, rappresentato in Fig.8.10, è composto due componenti, che operano parallelamente sullo
stesso VOP. Il primo componente è il codificatore della forma, che può essere binaria o a scala di grigi per consentire la
codifica di trasparenze; tale componente è opzionale ed è omesso laddove il VOP sia di forma rettangolare e coincida
con il singolo quadro. Il secondo componente è il codificatore di movimento e tessitura, applicato al VOP di forma
arbitraria. Le informazioni di forma, moto e tessitura possono essere multiplate a livello di macroblocco (modalitá
combined) oppure i dati di forma, moto e tessitura relativi ai diversi macroblocchi possono essere raggruppati a livello
di VOP e trasmessi in tre sezioni separate (modalitá separated).
8.2.1
Gli strumenti per la codifica dell’informazione di forma
Le informazioni di forma possono essere di natura binaria ( alpha plane) o a scala di grigio (grey scale alpha plane).
Nel caso binario i pixel sono rappresentati da valori di luminanza pari a 255 se sono parte dell'oggetto (pixel opachi)
e con valori di luminanza nulli se sono esterni all'oggetto (pixel trasparenti). Il supporto dell'informazione di forma
dell'oggetto è un rettangolo (bounding box) che contiene l'oggetto da codificare esteso a multipli di macroblocchi di
16x16 pixels. Le informazioni di forma di tipo binario sono codificati mediante una tecnica di codifica aritmetica
detta Content-based Arithmetic Encoding, CAE; le informazioni di forma a scala di grigio sono trattate tramite moto
compensazione e DCT.
Nel caso di informazione di forma di tipo binario, i macroblocchi del bounding box sono detti binary alpha blocks,
BAB. Si distinguono tre tipi di BAB: blocchi trasparenti, esterni all'oggetto, blocchi opachi, interni all'oggetto, e
blocchi di bordo, che coprono i bordi dell'oggetto. La codifica della forma dei blocchi di bordo è basata sul contesto
e sfrutta la ridondanza spaziale e temporale dell'informazione di forma binaria da codificare. Se il BAB é codificato
8.2. LA CODIFICA VIDEO DI OGGETTI DI FORMA ARBITRARIA
97
Figura 8.4: Il codificatore di oggetti video naturali.
in modalitá Intra, per ogni pixel viene considerato un contesto causale di 10 pixel per la predizione del valore di forma
del pixel corrente. In base al contesto, il codificatore di tipo aritmetico indicizza una tabella di codice differente;
utilizzando tale tavola, si pilota un encoder di tipo aritmetico (CAE), che seleziona un’opportuna parola di codice.
Se il BAB é codificato in modalitá Inter, ad esso é assegnato un vettore di moto, ed il residuo di predizione é ancora
calcolato utilizzando un codificatore aritmetico basato su contesto causale. Il contesto utilizza 9 pixel, di cui 4 estratti
dal quadro attuale e 5 alla locazione moto compensata nel VOP precedente. La codifica della forma può essere con
perdita, ed un’opportuna soglia (alpha threshold) indica, per ciascun BAB, il massimo numero di pixel non codificati
correttamente all'interno di un blocco di bordo.
8.2.2
Gli strumenti per la codifica di movimento e tessitura di oggetti di forma arbitraria
La codifica del singolo VOP é una codifica ibrida a trasformata basata sulla motocompensazione e sulla trasformata
DCT, opportunamente adattati per essere applicati ad oggetti di forma arbitraria.
La stima del movimento, viene effettuata attraverso un algoritmo di ricerca basato su una misura della differenza
tra i blocchi del VOP attuale e i blocchi di quello di riferimento traslati. La ricerca viene effettuata sia sulla base di
macroblocchi 16x16 che di blocchi 8x8; la funzione di costo utilizzata nella stima di spostamento opera unicamente
sui pixel interni all’oggetto, e nel VOP di riferimento si effettua un padding esterno all’oggetto prima di operare la
motocompensazione come rappresentato in Fig.8.5. La precisione dei vettori spostamento può essere a pixel interi,
al mezzo pixel e al quarto di pixel. Ciascun vettore spostamento è trasmesso in forma differenziale rispetto ad
un predittore, analogamente a quanto definito in H.263. La motocompensazione ammette le modalità Unrestricted
Motion Vector e Advanced Prediction, analoghe a quelle definite in H.263.
98
CAPITOLO 8. LO STANDARD ISO MPEG-4
I VOP INTRA e gli errori di predizione relativi ai VOP INTER sono codificati utilizzando la trasformata DCT
8x8 delle componenti di luminanza e crominanza. I macroblocchi al bordo di un VOP di forma arbitraria sono
opportunamente completati prima di operarne la DCT. Se il macroblocco é codificato INTER, i pixel esterni al VOP
sono posti a zero; se il macroblocco é codificato INTRA, il padding detto Low-Pass Extrapolation, é effettuato in
due passi, estendendo il valor medio dei pixel interni al VOP ai pixel esterni al VOP stesso, e sfumando i bordi
fra pixel interni ed esterni (vedi Fig.8.5). I coefficienti DCT possono essere quantizzati utilizzando lo stesso passo
di quantizzazione per tutti i coefficienti di frequenza non nulla, analogamente a quanto avviene in H.263, ovvero
quantizzando più finemente i coefficienti di frequenza più bassa, analogamente a quanto avviene in MPEG-2; inoltre,
le matrici possono essere scelte dal codificatore e scritte nel bitstream. Tanto il coefficiente a frequenza nulla (DC)
quanto la prima riga e la prima colonna degli altri coefficienti (AC) possono essere codificati in forma differenziale,
come illustrato in Fig.8.7. L’ordine in cui sono trasmessi i coefficienti quantizzati e predetti viene scelto fra tre
diversi ordini di scansione: a zig zag, orizzontale alternata, verticale alternata. Infine viene effettuata la codifica
entropica dei coefficienti non nulli presenti nel blocco e del numero di zeri che compaiono tra di essi utilizzando
codici a lunghezza variabile (VLC), oppure codici a lunghezza variabile reversibili (RVLC).
Figura 8.5: Adattamento della notocompensazione e della trasformata per la codifica di oggetti di forma arbitraria.
8.2.3
La sintassi MPEG-4 Visual
La struttura sintattica del bitstream video é la seguente:
• Visual Object Sequence, o Video Session (VS), che rappresenta la scena completa, e contiene uno start code
non emulabile di 24 bit;
8.2. LA CODIFICA VIDEO DI OGGETTI DI FORMA ARBITRARIA
99
Figura 8.6: Predizione dei coefficienti DCT fra blocchi adiacenti.
• Video Object (VO), che rappresenta l’intero oggetto in evoluzione, contiene uno start code e un identificativo
dell’oggetto;
• Video Object Layer (VOL), che convoglia le informazioni relative allo strato (di bae o di enhancement) dell’oggetto in questione; fra le informazioni a livello di VOL citiamo uno start code, il tipo di forma (rettangolare,
binaria, scala di grigio), le dimensioni in pixel nel caso di oggetto rettangolare, la precisione in bit per pixel, il
metodo di quantizzazione scelto (H.263 o MPEG-2 ), le eventuali matrici di quantizzazione INTRA e INTER,
la precisione della stima del vettore di moto (che puó arrivare al quarto di pixel), la attivazione degli strumenti
di robustezza agli errori di trasmissione;
• Group of Video Object Plane (GOV), che svolge un ruolo analogo a quello del GOP
• Video Object Plane (VOP), che sostituisce il tradizionale concetto di quadro della sequenza video; contiene
informazioni di Start Code, di tipo di VOP (I,P,B), le dimensioni del bounding boxnel caso di oggetto di forma
arbitraria, un opportuno marker di risincronizzazione, il numero di macroblocchi all’interno del VOP, il valore
del parametro di quantizzazione, e informazioni di sincronizzazione della presentazione.
• Video packet, la cui sintassi é discussa nel paragrafo dedicato agli strumenti di robustezza all’errore di MPEG-4.
100
CAPITOLO 8. LO STANDARD ISO MPEG-4
Figura 8.7: Predizione dei coefficienti DCT fra blocchi adiacenti.
8.3
La codifica video in ambienti di trasporto soggetti ad errore
La distribuzione di video per servizi televisivi é stata, almeno in origine, caratterizzata da elevata qualità del canale,
con specifiche di BER dell’ordine di 10−10 , 10−11 all’ingresso del decodificatore video. Con la diffusione dei servizi
video in ambienti di trasmissione maggiormente soggetti ad errori, caratterizzati da BER dell’ordine di 10−3 , 10−5 ,
si è reso necessario dotare i sistemi di codifica e decodifica di strumenti per reagire alla degradazione della sequenza
decodificata causata dagli errori di trasmissione 8.2 . Si consideri che mentre il primo tipo di servizi citato prevedeva
un errore ogni ora di trasmissione, nel secondo caso l’errore si presenta su una larga percentuale dei quadri
8.3
.
Il bistream codificato utilizza tipicamente tavole di codice di lunghezza variabile (VLC), ed un errore anche su
un solo bit puó causare diversi tipi di effetti:
• l’errore produce una sequenza illegale ed il decoder rivela immediatamente l’errore; questa circostanza é
piuttosto rara;
• l’errore trasforma la parola di codice in un’altra parola di uguale lunghezza; il corrispondente parametro é
decodificato erroneamente e la lettura del bitstream prosegue a partire dal punto corretto; osserviamo che anche
8.2 Osserviamo
che l’adozione di protocolli di ritrasmissione a livello radio comporta un aumento dei ritardi e del jitter di trasferimento; pertanto
essi non sono adottati sistematicamente, ed in ogni caso sono limitati. Ad esempio, i protocolli di ritrasmissione H.223 AL3 prevedono al massimo
una ritrasmissione per unitá dati.
8.3 Si consideri una sequenza codificata a 48 Kb/s, 10 quadri al secondo; ogni quadro consta di circa 5000 bit, e un BER di 10−4 conduce ad
una media di un errore ogni due quadri; fortunatamente, gli errori tipicamente non sono isolati ma appaiono in burst, condizione piú favorevole
in quanto concentra la degradazione su un area spazialmente e tempoalmente piú contenuta.
8.3. LA CODIFICA VIDEO IN AMBIENTI DI TRASPORTO SOGGETTI AD ERRORE
101
in questo caso, a causa dell’uso intensivo di tecniche di codifica differenziale, la decodifica errata del parametro
tipicamente conduce all’interpretazione errata dei dati decodificati successivamente;
• l’errore trasforma la parola di codice in un’altra parola di lunghezza differente, e la lettura del bitstream
prosegue a partire da un punto errato; in tal caso, si dice che il decodificatore ha perso il sincronismo con il
bitstream; la lettura prosegue fintantoché il decoder incontra una sequenza di bit che corrisponde ad una parola
di codice illegale.
In considerazione di questi effetti di errori, ancorché isolati, é essenziale fornire al decodificatore dei punti di
risincronizzazione col bitstream. A fronte di un errore rivelato, il decodificatore salta i dati codificati fino al primo
punto di sincronizzazione disponibile. I dati mancanti vengono rimpiazzati mediante tecniche dette di mascheramento
dell’errore (error concealment ), che mirano alla costruzione di una sequenza decodificata in cui le aree mancanti siano
mascherate. Fra le piú comuni tecniche di mascheramento dell’errore citiamo la copia di macroblocchi dal quadro
precedente, in posizione corrispondente oppure prescelta in base a criteri di continuitá spaziale, ovvero l’interpolazione
spaziale a partire da macroblocchi adiacenti. Osserviamo che poiché la rivelazione dell’errore avviene con una certa
latenza rispetto all’occorrenza dell’errore, una volta rivelato l’errore il decodificatore puó effettuare il concealment
anche sui blocchi che precedono la rivelazione, allo scopo di evitare i fastidiosi artefatti tipici degli errori non rivelati,
dovuti alla decodifica di parole di codice errate e completamente casuali.
Tra i diversi parametri convogliati nel bitstream, é possibile stabilire una gerarchia di importanza ai fini della
qualitá visuale della sequenza ricostruita, ció che induce a progettare tecniche che proteggano i dati in modo differenziato. Inoltre, la codifica predittiva -insita nel meccanismo di motocompensazione e tipicamente sfruttata almeno
per la codifica dei vettori di moto e per i coefficienti DC- provoca la propagazione degli errori di ricostruzione anche
su aree ricostruite in base a dati correttamente decodificati; pertanto, in ambienti soggetti ad errori, l’efficienza di
compressione puó essere ridotta a favore di una codifica indipendente di diverse sezioni del video, che risulta piú
robusta in presenza di errori.
8.3.1
Le funzionalità di robustezza all’errore dello standard MPEG-4
Lo standard MPEG4 offre funzionalità di protezione e recupero di errore finalizzate alla trasmissione di audio e video
a bit-rate relativamente basso (< 64Kb/s) in ambienti soggetti a errori, come quelli delle comunicazioni mobili. Le
metodologie di recupero includono funzionalità di
• risincronizzazione
• recupero di dati
• mascheramento dell’errore
Le funzionalità di risincronizzazione abilitano la risincronizzazione fra il decodificatore e la stringa codificata a
valle della rivelazione di uno o più errori, e si basano su un approccio a pacchetto video (video packet approach),
che rappresenta un’evoluzione dell’approccio utilizzato da H.261 e H.263. Rispetto alle metodiche previste da
questi standard, MPEG-4 consente l’inserzione nel bitstream di marker ad intervalli di lunghezza in bit prefissata,
migliorando cos´ la protezione delle informazioni relative ad aree in movimento, alle quali, a parità di estensione
spaziale, compete un maggior numero di marker di risincronizzazione di aree più lentamente variabili. I punti di
102
CAPITOLO 8. LO STANDARD ISO MPEG-4
sincronizzazione nella stringa possono inoltre contenere informazioni addizionali, che ridondano la descrizione di
parametri critici per la decodifica.
A questo approccio si affianca l’approccio a intervalli di sincronizzazione definiti (fixed interval synchronization),
nel quale i marker di risincronizzazione possono apparire unicamente in alcuni intervalli autorizzati della stringa. In
questo caso errori che causino l’emulazione degli start code nella stringa ricevuta non hanno effetto, a meno che non
compaiano negli intervalli autorizzati.
Le informazioni che riguardano il moto degli oggetti rappresentati nella scena (motion information) possono essere
codificate separatamente dalle informazioni che ne descrivono i dettagli spaziali (texture information), e dotate di un
proprio resynchronization marker (data partitioning). Nel caso dunque che sia danneggiata la porzione di stringa
relativa alle texture information, il funzionamento corretto dei meccanismi di sincronizzazione consente di utilizzare
metodologie di mascheramento dell’errore basate unicamente sulla motion information che sono estremamente semplici, (ad es. sostituzione di un blocco del quadro attuale con un opportuno blocco di un quadro precedentemente
ricostruito), che forniscono però risultati qualitativamente accettabili in applicazioni a basso bit-rate e con requisiti
di basso ritardo.
La risincronizzazione fra il decodificatore e la stringa codificata consente l’identificazione della quantità di
dati persi, e della loro tipologia (informazione di moto, informazione di tessitura, etc.). Una volta ristabilita la
sincronizzazione, il parziale recupero dei dati contenuti fra i marker di sincronizzazione riconosciuti è consentito sia
da codici di correzione di errore sia da opportune tecniche di codifica. In particolare si adottano codici a lunghezza di
parola variabile decodificabili tanto a partire dal primo quanto dall’ultimo bit di codice (Reversible Variable Length
Coding, RVLC). Ciò consente, una volta identificati due resynchronization marker consecutivi, fra i quali si sia
verificato un burst di errori, di recuperare non solo i dati che seguono il primo resynchronization marker (precedendo
il burst), ma anche i dati rappresentati dai bit non danneggiati che precedono il secondo resynchronization marker.
8.4
Multiplazione e trasporto di dati MPEG-4
Il trasferimento di dati MPEG-4 puó avvenire con diverse modalitá alternative, fondamentalmente dipendenti dalle
applicazioni.
Una prima modaliá definita dallo standard prevede la presentazione dei dati da parte dell’applicazione allo strato
di trasporto tramite l’interfaccia Delivery Multimedia Integration Framework, DMIF. Lo strato di trasporto non é
specificato dallo standard. Il trasporto basato sull’interfaccia DMIF sará prevalentemente utilizzato per lo sviluppo
di applicazioni di tipo proprietario. Una seconda modalitá definita dallo standard prevede l’uso di un formato di file
multimediale estremamente flessibile, adatto tanto alla memorizzazione quanto ad applicazioni di video streaming
su rete a pacchetto. Infine, il bitstream codificato MPEG-4 puó essere direttamente incapsulato in un flusso RTP
secondo utilizzando il formato di pacchettizzazione e i criteri appositamente definiti in ambito IETF; tale modalitá
é utilizzabile in differenti applicazioni basate su IP, quali la videocomunicazione interpersonale o il video streaming,
su rete fissa o rete mobile.
8.4.1
Il formato di trasporto MPEG-4: il Delivery Multimedia Integration Framework
L’architettura funzionale di un generico terminale conforme alla specifica ISO/IEC 14496 (MPEG-4) è costituita da
tre strati:
8.4. MULTIPLAZIONE E TRASPORTO DI DATI MPEG-4
Figura 8.8: Struttura del pacchetto video nella modalitá Data Partitioning.
Figura 8.9: Impatto dell’uso di tavole RVLC sulla qualitá del video ricostruito.
103
104
CAPITOLO 8. LO STANDARD ISO MPEG-4
• lo strato di Codifica (Compression Layer);
• lo strato di Sincronizzazione (Synchronization Layer);
• lo strato di Consegna (Delivery Layer).
Lo strato di codifica produce in uscita flussi dati codificati elementari (Elementary Stream, ES) secondo le sintassi
di codifica del video, dell’audio, e della descrizione della scena8.4 . Oltre ai dati codificati di tipo audiovisuale, gli
ES possono veicolare ulteriori informazioni di descrizione degli oggetti, come informazioni sui diritti d’autore o sulla
protezione del contenuto multimediale, mediante apposite strutture sintattiche (Object Descriptors). Inoltre i dati
codificati possono essere costituiti da apposite librerie definite nello standard e sviluppate in linguaggio Java, destinate
principalmente all’industria dello sviluppo software, dette MPEG-J. Le librerie MPEG-J contengono informazioni di
controllo del terminale ricevente e consentono di manipolare il contenuto della scena audio-video interagendo con il
bitstream, identificare il tipo di decoder e i profili supportati, controllare le risorse locali, interrogare le risorse di
rete; tali librerie possono essere preinstallate sul terminale MPEG-4 oppure possono essere trasferite attraverso ES
dedicati.
Gli ES sono inoltrati allo strato di sincronizzazione che associa ai flussi elementari le informazioni di temporizzazione, necessarie a sincronizzare i flussi e la descrizione gerarchica delle relazioni reciproche. Lo strato di
sincronizzazione presenta una sintassi configurabile in modo da introdurre un maggiore o minore overhead in funzione
delle applicazioni. In generale, lo strato di sincronizzazione puó aggiungere agli ES informazioni di temporizzazione e sequence numbering; fra le informazioni di temporizzazione segnaliamo la presenza, oltre ai time stamps, di
un’informazione opzionale sulla frequenza del clock di riferimento, eventualmente condiviso da piú flussi ES. Da un
punto di vista implementativo, lo strato di compressione e lo strato di sincronizzazione sono tipicamente integrati in
un’unità funzionale. I flussi elementari di pacchetti prodotti dallo strato di sincronizzazione (Synchronization Layer
Packetized Stream, SPS), sono inoltrati allo strato protocollare inferiore di consegna.
Lo Strato di Consegna é specificato nella parte dello standard denominata Digital Multimedia Integration Framework. Il DMIF definisce primitive che permangono per l’intera durata della sessione di comunicazione. In
particolare, il DMIF specifica le primitive del Piano di Controllo sia dal lato trasmissione chee dal lato ricezione, e
specifica le primitive del Piano d’Utente dal lato ricezione. Esso adatta le richieste di acquisizione dati, di trasferimento dati, e piú in generale di interazione con entità remote ai servizi messi a disposizione dallo strato di trasporto
effettivamente disponibile. In tal modo, lo strato di consegna maschera agli strati superiori la tecnologia di trasporto
utilizzata, che dipende dallo scenario applicativo (broadcasting, memorizzazione locale, comunicazioni interattive).
Il confine tra lo strato di sincronizzazione e lo strato di consegna è denominato Interfaccia Applicativa DMIF
(DMIF-Application Interface - DAI). L’interfaccia DAI fornisce primitive classiche del livello di applicazione (PLAY,
PAUSE, etc.), definendo le possibili interazioni fra le applicazioni multimediali e lo strato di consegna. Pertanto, dal
punto di vista del paradigma di comunicazione ISO/OSI, un’istanza DMIF realizza funzionalità di Strato di Sessione
e l’interfaccia DAI corrisponde a un Punto d’Accesso al Servizio di Sessione (Session Service Access Point, SSAP).
Il DMIF maschera agli utenti la tecnologia effettivamente utilizzata per il trasporto assegnando i parametri di
qualità per ciascun flusso elementare ricevuto all’interfaccia DAI e gestendo in tempo reale canali che risentono di
variazioni della QoS.
All’interno dello strato di consegna (strato DMIF) possono essere individuate due multiplazioni indicate rispettivamente con Flex-Mux (opzionale) e Trans-Mux. La multiplazione Flex-Mux riunisce i flussi elementari che richiedano
8.4 La
descrizione della scena utilizza una sintassi appositamente definita, detta Binary Format for Scene description, BIFS
8.4. MULTIPLAZIONE E TRASPORTO DI DATI MPEG-4
105
per la trasmissione gli stessi parametri di qualità di servizio, al fine di ridurre il numero delle connessioni instaurate
per la trasmissione dei dati. La multiplazione Trans-Mux, non definisce una procedura di multiplazione chiusa, ma
si limita a definire le regole per l’incapsulamento dei flussi MPEG-4 pacchettizzati nei protocolli delle differenti
infrastrutture di multiplazione disponibili. Per il trasferimento puó dunque essere utilizzata una qualunque pila di
protocolli per il trasporto, quali ad esempio (RTP)/UDP/IP, AAL2/ATM, oppure il Transport Stream di MPEG-2.
Per ciascuna pila, il trasferimento avverrá sfruttando opportunamente le funzionalità di multiplazione/demultiplazione
native, rispettivamente le porte IP, i VC dell’ATM, i PID di MPEG-2.
Unicamente per il caso di trasporto su reti interattive (reti IP e ATM), lo standard specifica l’interfaccia fra lo
strato Trans-Mux del DMIF e la rete (DMIF Network Interface, DNI), e descrive esplicitamente la corrispondenza
fra la segnalazione DMIF e la segnalazione nativa della rete. Infine per il trasporto su reti eterogenee, lo standard
recepisce i protocolli Digital Storage Media Command & Control - User to Network (DSMCC-UN) che definiscono
una sintassi di descrittori delle risorse di rete utilizzate.
Figura 8.10: Architettura dello strato di consegna DMIF.
8.4.2
Il formato di memorizzazione MPEG-4: il file MP4
La memorizzazione di una presentazione MPEG-4, ovvero delle Elementary Streams che la compongono, in linea
di principio può basarsi sul bitstream codificato fin qui descritto. La definizione di un formato di file per la
memorizzazione di una scena multimediale MPEG-4 risponde all’esigenza di fornire, oltre alle informazioni contenute
nella presentazione vera e propria, informazioni specializzate per applicazioni di editing o di accesso. Ciò è stato
realizzato adattando un formato di file multimediale esistente alle esigenze di MPEG-4. Il formato di file MP4 così
progettato contiene le informazioni multimediali di una presentazione MPEG4 in un formato flessibile ed orientato
106
CAPITOLO 8. LO STANDARD ISO MPEG-4
allo scambio, all’editing, e alla presentazione in ambito locale o remoto. Rispetto alla rappresentazione costituita dal
bitstream, la rappresentazione in file presenta alcune differenze significative:
• I dati multimediali veri e propri possono essere localizzati tanto nel file MP4 o essere esterni al file e referenziati
tramite URL.
• Il file contiene alcuni metadati per l’editing, il playback, e la manipolazione dei dati multimediali.
• Il file contiene istruzioni (hint tracks) per il trasferimento dei dati sullo strato di trasporto disponibile da parte
dell’applicazione. Tali istruzioni segnalano, ad esempio, la modalitá di pacchettizzazione suggerita nel caso di
servizi di streaming basati sul modello client-server, ovvero l’importanza dei pacchetti dati ai fini della qualitá
soggettiva della sequenza decodificata.
Il formato di file MP4 é inoltre alla base del formato .3gp utilizzato nelle comunicazioni video su radiomobile.
8.5
La comunicazione video su reti a pacchetto
La diffusione dei servizi di comunicazione e distribuzione di video su reti a pacchetto dipende da un insieme di fattori
favorevoli.
• In primo luogo, le reti a pacchetto sono diffusissime e basate su standard universalmente accettati.
• Esse offrono strumenti di multiplazione nativi molto potenti di flussi multimediali 8.5 .
• Il formato di multiplazione a pacchetto consente la gestione integrata di dati di natura differente.
• Il formato di multiplazione a pacchetto offre strumenti nativi di monitoring della comunicazione basati su
semplici riscontri a livello di pacchetto.
• Il formato di multiplazione a pacchetto confina gli errori trasmissivi a livello di pacchetto, semplificandone la
gestione a livello di applicazione.
Su una rete a pacchetto possono offrirsi, accanto a servizi di download, tanto servizi multimediali conversazionali
(real-time) quanto servizi di streaming. I servizi conversazionali sono caratterizzati da ritardi massimi tollerabili
dell’ordine dei 200 ms, i servizi di streaming richiedono ritardi massimi dell’ordine di qualche secondo. La pila
protocollare di gran lunga piú diffusa per il trasferimento di dati audio video su reti a pacchetto é la pila RTP/UDP/IP
che offre un protocollo end-to-end con funzionalitá di rivelazione d’errore, numerazione dei pacchetti, sincronizzazione
dei flussi, monitoraggio delle consegne.
Per il trasferimento di video su rete a pacchetto, anche i dati del livello di applicazione sono tipicamente organizzati
a pacchetto. In presenza di perdite di pacchetto, che anche su una rete fissa possono arrivare al 5-10 %, é opportuno
adottare dei criteri di impacchettamento che forzino una corrispondenza fra strutture sintattiche di livello applicativo
e pacchetti di rete. Per ció che concerne la trasmissione su RTP/UDP/IP, tali criteri sono descritti in RFC dedicate.
8.5 A
titolo esemplificativo, si osservi che una videoconferenza H.323 punto/multipunto puó realizzarsi utilizzando una trasmissione multicast a
livello IP, laddove in un sistema a commutazione di circuito la videoconferenza H.324 necessita di un’apposita entitá, il Multipoint Processor del
MCU, per realizzare la multiplazione dei flussi in modalitá punto multipunto.
8.5. LA COMUNICAZIONE VIDEO SU RETI A PACCHETTO
107
In linea di principio tali criteri richiedono l’incapsulamento di un quadro in un pacchetto, ovvero di una struttura
sintattica di livello immediatemente inferiore8.6 in un pacchetto, e richiedono che non si suddividano mai gli header di
livello applicativo fra piú pacchetti. Inoltre, un importante criterio di pacchettizzazione prevede l’adattamento della
dimensione del pacchetto alla Maximum Transfer Unit (MTU)8.7 del cammino sottostante (1500 byte per Ethernet,
100 byte per canali radiomobili), al fine di evitare una frammentazione operata al di fuori del controllo dell’encoder.
In generale, pertanto, la dimensione del pacchetto non dovrebbe superare la dimensione della MTU per evitare che la
perdita, a livello di rete o inferiore, di una porzione del pacchetto del livello di applicazione costringa il decodificatore
a scartare le altre porzioni, pur ricevute correttamente.
La pacchettizzazione deve rispondere ad un trade-off fra overhead introdotto8.8 e robustezza rispetto agli errori; in
generale, a pacchetti piú lunghi corrisponde un minore overhead ma una minore robustezza, e viceversa a pacchetti
piú brevi maggiore overhead e maggiore robustezza. Sul flusso video codificato, questo ha un effetto immediato: a
paritá di banda assegnata al video, al diminuire della dimensione del pacchetto deve aumentare la quantizzazione, ció
che diminuisce la qualitá della sequenza decodificata in assenza di errori di trasmissione. Il problema é piú complesso
su reti eterogenee; in tal caso é prevista la possibilitá di aggregare o frammentare pacchetti, in misura quanto piú
possibile aderente alle unitá sintattiche di livello applicativo.
A fronte di perdite di pacchetti e/o di errori di trasmissione, é possibile delineare diverse strategie per garantire
il servizio:
• Ritrasmissione (tecniche di Picture Header Repetition, Packet Duplication, ritrasmissione con diverso formato
di codifica, piggy-backing)
• Forward Error Correction, Media Independent o Media Dependent (protezione selettiva dei dati piú importanti)
• Interleaving di livello di applicazione
• Congestion control: tali tecniche si basano sulla capacitá del codec di adattare la banda istantanea; in collegamenti punto multipunto ció puó essere reso possibile da una codifica di tipo scalabile, che consenta di
riutilizzare il bitstream codificato per piú utenti, in condizioni di congestione di banda differenti.
8.6 Nel
8.7 La
caso MPEG-4 la struttura sintattica é il Video Packet, in H.263 il GOB, in H.263+, H.263++, H.264 la Slice.
dimensione della MTU é la dimensione massima del pacchetto IP che puó essere trasferito senza essere frammentato a livello di rete. La
frammentazione del pacchetto IP prevede la replica dell’header su tutti i frammenti ed il riassemblaggio degli stessi a destinazione; se non tutti i
frammenti arrivano entro un tempo pre-assegnato misurato a partire dall’istante di arrivo del primo frammento l’intero pacchetto é scartato.
8.8 Si osservi che l’header RTP/UDP/IP é di 40 byte.
108
CAPITOLO 8. LO STANDARD ISO MPEG-4
Protocolli IETF per il controllo e la descrizione della sessione video su reti a pacchetto
Il protocollo Session Initiation Protocol (SIP, RFC 3261) sviluppato dal IETF MMUSIC Working Group é un
protocollo di livello applicativo finalizzato ad inizializzare, modificare e terminare una sessione interattiva che
coinvolga video, voce, messaggistica, etc, tra due dispositivi multimediali.
Il Real Time Streaming Protocol (RTSP, RFC 2326) è un protocollo di livello applicativo sviluppato dal IETF
MMUSIC Working Group allo scopo di controllare la consegna on-demand di flussi dati con requisiti real-time,
come ad esempio flussi audio e video. Il protocollo é stato concepito per essere utilizzato in un paradigma
client-server (web, content e proxy/caching server). Le funzionalitá variano dall’invito di un media server ad una
conferenza, all’aggiunta di media ad una sessione già esistente, alla gestione di piú content server al livelo di trasporto
(multiserver), alla negoziazione di capacitá. Il protocollo prevede metodi che devono essere obbligatoriamente
implementati (setup, teardown, play, client-to-server options), metodi raccomandati per l’implementazione ma non
obbligatori (describe, pause) e metodi opzionali (announce, get parameter, set parameter, record, server-to-client
options). Il protocollo mantiene lo stato, consentendo quindi ai server di mantenere traccia delle connessioni aperte
anche quando la connessione non é presente.
La sessione multimediale puó essere descritta utilizzando il Session Description Protocol (SDP, RFC 2327) che
convoglia informazioni sui media coinvolti, sulla pila protocollare utilizzata dal piano di utente, sugli indirizzi del
trasporto, e su altri metadati. La descrizione SDP puó essere usata congiuntamente ai protocolli SIP, RTSP, Session
Announcement Protocol (SAP, 2974) o Multipurpose Internet Mail Extension (MIME, RFC 2045, 2046).
La pila protocollare di gran lunga piú usata per il piano d’utente é la pila RTP/UDP/IP.
8.5.1
Il formato RTP per il flusso binario MPEG-4 Visual
La [3] definisce la pacchettizzazione RTP del flusso binario MPEG-4 Visual. Dal momento che MPEG-4 è uno
standard di codifica video generico, adattabile cioè ad una varietà di reti caratterizzate da differenti bande e qualità di
trasporto, le regole di frammentazione sono alquanto flessibili, e mirano fondamentalmente a garantire la preservazione
delle caratteristiche di robustezza agli errori. L’header del pacchetto RTP contiene sempre un Marker bit (M),
che segnala se il pacchetto contiene o meno la fine del quadro corrente, ed il Time Stamp che indica l’istante
di campionamento del primo quadro contenuto del pacchetto, consentendo la sincronizzazione fra media differenti,
nonché fra strati base e enhancement nel caso di codifica scalabile.
La stringa MPEG-4 Visual, opportunamente frammentata viene inserita direttamente nel payload del pacchetto.
Non vengono eliminati caratteri, come succede nel caso di header H.263, né inserita informazione ridondante, dal momento che l’MPEG-4 Visual dispone già di funzionalità per il recupero di header corrotti. I criteri di frammentazione
si possono riassumere in alcune linee guida:
• ogni pacchetto RTP non dovrebbe contenere più di un VOP, a meno che il VOP sia molto piccolo;
• ogni pacchetto RTP non dovrebbe eccedere la Maximum Transfer Unit del path;
• un header MPEG-4, di qualsiasi livello gerarchico, non può essere suddiviso in più pacchetti, e deve comparire
all’inizio del pacchetto;
• nel caso che più header siano trasportati in un pacchetto, il payload inizierà con l’header di livello gerarchico
più alto;
8.5. LA COMUNICAZIONE VIDEO SU RETI A PACCHETTO
109
• un pacchetto video dovrebbe essere mandato in un unico pacchetto RTP; tuttavia, è ammessa la trasmissione di
più pacchetti video in un pacchetto RTP in quanto il pacchetto video potrebbe essere talmente corto da risultare
di lunghezza confrontabile con l’header RTP.
Bibliografia
[1] T. Ebrahimi, C. Horne, “MPEG-4 Natural Coding-An overview”, Signal Processing: Image Communication, Vol. 15, 2000, 365-385.
[2] R. Koenen, “Profiles and levels in MPEG-4 -Approach and overview”, Signal Processing: Image Communication, Vol. 15, 2000, 365-385.
[3] IETF RFC 3016: RTP Payload Format for MPEG-4 Audio/Visual Streams, Kikuchi Y. et al., November 2000.
110
Capitolo 9
La Raccomandazione JVT H.264/AVC
9.1
Principi dello standard H.264
Il progetto congiunto Joint Video Team (JVT), che ha coinvolto i gruppi ITU-T Video Coding Expert Group (VCEG)
e ISO-IEC JTC1 Motion Photo Expert Group (MPEG), ha condotto alla definizione dello standard H.264/ MPEG-4
Advanced Video Coding. Tale standard, oltre a prevedere strumenti di codifica innovativi ed efficaci rispetto ai
sistemi precedenti, si presta ad essere trasmesso su reti estremamente diversificate dal punto di vista della banda, del
formato di trasporto e della percentuale di errori introdotta sui dati trasmessi.
Il sistema H.264/ MPEG-4 AVC prevede due strati logicamente distinti: il Video Coding Layer (VCL) e il Network
Adaptation Layer (NAL). Il VCL codifica i dati video, mentre il NAL incapsula le unità sintattiche codificate in
NAL Unit (NALU) adatte al trasferimento in rete, come illustrato in Fig.9.5.
9.2
Il Video Coding Layer H.264
Il VCL dell’H.264 utilizza uno schema di codifica ibrida di video nel formato interallacciato o progressivo e raggiunge
prestazioni superiori rispetto agli standard precedenti in termini di efficienza di compressione, grazie all’introduzione
di alcuni strumenti di codifica innovativi:
• predizione spaziale per la codifica Intra, che aumenta l’efficacia di compressione, ma può essere disabilitata
in ambienti radiomobili per diminuire la propagazione spaziale e temporale degli artefatti dovuti ad errori di
trasmissione;
• motocompensazione a blocchi di dimensione variabile spazialmente, che riduce gli artefatti di codifica ma é
computazionalmente onerosa;
• uso di quadri di riferimento multipli, che migliorano l’efficacia di compressione e, in presenza di un canale di
feedback, diminuiscono la propagazione temporale degli artefatti dovuti ad errori di trasmissione; richiedono
maggiori risorse per il buffering
• trasformata a coefficienti interi 4x4 e trasformate di Hadamard 4x4 e 2x2 che eliminano i disallineamenti
numerici fra codificatore e ricevitore, riducendo la complessità di calcolo della trasformata;
111
112
CAPITOLO 9. LA RACCOMANDAZIONE JVT H.264/AVC
Figura 9.1: Architettura dello standard H.264.
• tabelle di codice Context Adaptive, che aumentano l’efficienza di compressione, ma possono ridurre la resistenza
agli errori di trasmissione;
• formato di quadro (Switching frame) per la commutazione fra differenti flussi precodificati.
9.2.1
La predizione spaziale
La codifica dei macroblocchi Intra sfrutta la predizione spaziale, in cui i campioni del macroblocco attuale sono
predetti a partire dai campioni di luminanza e di crominanza dei macroblocchi adiacenti già ricostruiti, ed é codificato
unicamente il residuo di predizione trasformato, quantizzato e trasmesso. Osserviamo che la predizione spaziale é
giá sfruttata nello standard MPEG-4, dove é applicata nel dominio trasformato.
La predizione opera su base macroblocco 16x16 pixel o su base blocco 4x4 pixel. Nel caso di predizione
16x16 si utilizzano quattro differenti tipologie orizzontale, verticale, continua e planare9.1 . Nel caso di predizione su
base blocco 4x4, per ogni macroblocco il codificatore genera un vettore di 16 elementi in cui sono memorizzate le
modalità di predizione assegnate ai 16 sottoblocchi 4x4, per ciascuno dei quali puó essere scelta una fra 9 modalitá
di predizione. I 16 campioni di luminanza, appartenenti al sotto-blocco 4x4, sono predetti a partire dai 13 campioni
ricostruiti,9.2, situati ai bordi del sotto-blocco.
9.1 Per
ogni macroblocco 16x16 pixel, nel formato di rappresentazione 4:2:0 sono presenti anche due blocchi 8x8 pixel relativi ai coefficienti di
crominanza Cb e Cr. Questi due blocchi subiscono, separatamente, la stessa predizione spaziale, e le modalità direzionali sono ancora quattro,
orizzontale, verticale, continua e planare.
9.2 Lo standard prevede la possibilitá di utilizzare un filtro adattativo, detto deblocking filter,che sfumi i pixel ai bordi dei sottoblocchi 4x4,
riducendo l’effetto della blocchettizzazione ai bassi bit-rate. La predizione opera sui valori ricostruiti al decodificatore (cioé quantizzati) ma non
deblocchettizzati.
9.2. IL VIDEO CODING LAYER H.264
113
Figura 9.2: La predizione spaziale nello standard H.264.
9.2.2
Trasformazione e quantizzazione
Il residuo di segnale relativo all’errore di predizione spaziale o temporale viene trasformato, quantizzato e infine
codificato entropicamente. L’H264 utilizza tre diverse trasformate, relativamente al tipo di residuo che deve essere
processato:
• una trasformata intera 4x4 per tutti i residui di predizione spaziale e temporale.
• una trasformata di Hadamard 4x4 dei coefficienti DC di luminanza per i macroblocchi codificati come INTRA
• una trasformata di Hadamard 2x2 per i coefficienti DC di crominanza per i macroblocchi codificati come
INTRA9.3 ;
Le due trasformate 4x4 e 2x2, applicate ai termini DC, sono state sviluppate poiché sia nel caso del macroblocco
16x16 codificato INTRA e sia per i coefficienti di crominanza, le aree di interesse hanno una notevole estensione
spaziale; é quindi tipicamente presente una ulteriore ridondanza tra i termini in continua dei vari sotto-blocchi 4x4.
L’applicazione successiva delle trasformazioni é illustrata in Fig.9.4.
La quantizzazione é realizzata mediante 52 diversi passi di quantizzazione che vengono indicizzati in modo non
lineare attraverso un Parametro di Quantizzazione (QP), che puó essere differente per i campioni di luminanza e di
crominanza.
9.3 Si
osservi che a causa del campionamento 4:2:0 ad un macrobloco di luminanza 16x16 corrispondono due blocchi di crominanze 8x8.
114
CAPITOLO 9. LA RACCOMANDAZIONE JVT H.264/AVC
Figura 9.3: Base della trasformata intera 4x4 (rappresentazione qualitativa).
Figura 9.4: Trasformazioni utilizzate nello standard H.264.
9.2. IL VIDEO CODING LAYER H.264
115
Figura 9.5: Passi di quantizzazione e Parametro di Quantizzazione (QP)
9.2.3
La motocompensazione ed il controllo di codifica
Il VCL H.264 prevede l’utilizzo della predizione temporale mediante una tecnica di motocompensazione innovativa,
che offre un elevato grado di flessibilitá nella scelta della modalità di codifica. Per ogni macroblocco, la motocompensazione si articola in due fasi, di stima del movimento e di decisione sulla modalità di codifica. L’H264 supporta
la motocompensazione di blocchi di pixel di dimensione variabile nell’intervallo compreso tra 16x16 e 4x4 campioni
di luminanza, detta Motocompensazione ad albero (vedi fig. 9.6). I vettori di moto arrivano a risoluzioni di 1/2 e
1/4 di pixel. I campioni utilizzati per la motocompensazione con passi frazionari non sono disponibili ma possono
essere calcolati mediante interpolazione.
Poiché ad ogni blocco o sotto-blocco é associato un vettore di moto, la suddivisione in aree piú estese necessita
di un minor numero di bit per le informazioni di moto, ma genera residui mediamente piú elevati. D’altro canto la
suddivisione in aree piú limitate richiede piú vettori di moto ma genera residui di minor energia. I vettori di moto
sono codificati in modo differenziale rispetto ad un valore predetto; la modalitá di predizione dipende dalla partizione
adottata nella motocompensazione.
La motocompensazione opera su quadri di riferimento multipli, fino ad un massimo di 5 quadri di riferimento. Un
macroblocco predetto può essere partizionato in blocchi o sottoblocchi, e in linea di principio il quadro di riferimento
puó variare per ciascun blocco 8x89.4 .
La scelta della modalitá di codifica ottima, ovvero della partizione, dei vettori spostamento, e del quadro di
riferimento discende da un compromesso fra la riduzione dell’informazione associata ai residui e l’incremento del9.4 Quando un blocco 8x8 é ulteriormente
suddiviso, tutti i sottoblocchi componenti devono essere predetti partire dallo stesso quadro di riferimento.
116
CAPITOLO 9. LA RACCOMANDAZIONE JVT H.264/AVC
l’informazione associata ai vettori di moto, oltre che da considerazioni di complessitá computazionale al codificatore
e di risorse di memorizzazione al decodificatore.
Lo standard prevede la predizione bidirezionale, ed i quadri B possono essere utilizzati come riferimenti per la
predizione. Infine, per applicazioni ad alta qualitá, é prevista la possibilitá di effettuare una predizione pesata a
partire da due quadri di riferimento, al fine di comprimere con efficienza dissolvenze e cambi scena.
Figura 9.6: Motocompensazione ad albero nello standard H.264.
9.2.4
Algoritmi di codifica entropica
Lo standard H264 prevede l’impiego di due algoritmi avanzati di codifica entropica, Context-Adaptive Variable Lenght
Coding, (CAVLC), e Context-Adaptive Binary Arithmetic Coding, (CABAC); l’algoritmo CABAC ha un’efficienza
di compressione maggiore rispetto al CAVLC, ma anche un maggiore complessità computazionale.
I vari elementi sintattici presenti nel flusso codificato vengono diversamente trattati, relativamente alla loro
tipologia. Gli elementi sintattici connessi ai parametri di sequenza e di quadro, infatti, vengono codificati utilizzando
codici binari a lunghezza fissa oppure mediante codici a lunghezza variabile detti codici Exp-Golomb. I codici ExpGolomb (Exponential Golomb codes) sono a lunghezza variabile con una struttura regolare di [M zeri][1][INFO]. A
livello di slice e di macroblocco, invece, gli elementi sintattici sono trattati utilizzando il CAVLC o il CABAC. Il
codificatore CAVLC é il codificatore a lunghezza variabile utilizzato per i residui trasformati e quantizzati e ordinati
secondo una scansione a zig-zag, e rappresenta in modo compatto tanto valori nulli (Run lengths) quanto successioni
di valori pari a ±1 (Trailing Ones); le tavole VLC utilizzate dipendono da un contesto causale. Il codificatore CABAC
è un codificatore aritmetico di tipo adattativo, basato su un modello probabilistico dipendente dall’elemento sintattico
e dal relativo contesto di codifica; i parametri del modello sono adattati in tempo reale, sfruttando le statistiche locali.
9.2. IL VIDEO CODING LAYER H.264
117
Il CAVLC e il CABAC sono pertanto macchine a stati, che evolvono nel tempo modificando le proprie variabili di
stato, pilotando, rispettivamente, una Codifica VLC oppure una Codifica Aritmetica Binaria.
9.2.5
Flessibilità di accesso ed efficienza di compressione: i quadri di Switching
Lo standard H.264/AVC include delle importanti strutture sintattiche assenti nei precedenti standard ma già presenti
in forma embrionale in alcuni sistemi di codifica video proprietari, denominate Switching pictures. Tali strutture
consentono la commutazione, in fase di decodifica, tra flussi codificati a differente bit rate, consentendo di adattare in
tempo reale il bit rate del flusso video alle effettive condizioni di rete non agendo sul codificatore durante la codifica
ma sfruttando flussi già codificati. Tali strutture si prestano ad essere utilizzate principalmente in applicazioni di
streaming video.
I Switching P picture consentono l’accesso casuale al flusso video di destinazione; dal momento che sfruttano
la somiglianza di quadri codificati nei diversi flussi richiedono un minor numero di bit e una minore latenza in
decodifica rispetto ad un quadro INTRA. Ogni quadro SP ammette due rappresentazioni codificate, una primaria
ed una secondaria. La modalitá di codifica primaria é adottata per quadri scelti ad intervalli regolari nel flusso
codificato, ed offre i punti di accesso alla sequenza di destinazione. La modalitá di codifica secondaria costituisce
una rappresentazione alternativa di questi stessi quadri, ed é utilizzata, cioé trasmessa, solo all’atto della commutazione
fra flussi differenti, come rappresentato in fig. 9.7. La rappresentazione secondaria convoglia il residuo di predizione
fra il quadro da rappresentare (appartenente al flusso di destinazione) ed una sua versione predetta, ottenuta a partire
dal flusso precedentemente decodificato. La differenza é calcolata direttamente nel dominio dei coefficienti trasformati
e quantizzati, al fine di garantire la perfetta uguaglianza fra il quadro decodificato utilizzando la rappresentazione
primaria e il quadro decodificato utilizzando la rappresentazione secondaria. Lo standard prevede inoltre la definizione
di Switching I picture, che sono utilizzati per commutare fra sequenze a contenuto completamente differente.
Principi base per la codifica e decodifica dei quadri SP primari e secondari.
(1)
Sia xmn l’area da predire e sia Xk1 k2 la sua rappresentazione nel dominio trasformato. Sia poi pmn la versone
(1)
˜ (1)
predetta dal flusso 1 e sia Pk1k2 la sua rappresentazione nel dominio trasformato; sia inoltre P̃k1 k2 una versione
(1)
˜ (1)
quantizzata di quest’ultima. Il codificatore calcola il residuo di predizione Ek1 k2 = Xk1 k2 − P̃k1 k2 , la relativa versio(1)
ne quantizzata Ẽk1 k2 , che viene trasmessa insieme ai vettori spostamento nel quadro SP primario. Il decodificatore
(1)
(1)
= P̃˜
+ Ẽ
.
a partire dal flusso 1 ricostruisce X̃
k1 k2
(2)
k1 k2
k1 k2
(2)
Si supponga ora che sia pmn la versone predetta dal flusso 2 e sia Pk1 k2 la sua rappresentazione nel dominio
˜ (2)
trasformato; sia inoltre P̃k1k2 una versione opportunamente quantizzata di quest’ultimaa. Il codificatore calcola il
(2)
(2)
= X̃
− P̃˜
, che consente la ricostruzione esatta dei coefficienti
residuo di predizione definito come E
k1 k2
k1 k2
k1 k2
X̃k1 k2 a partire dal flusso 2; tale residuo viene codificato insieme ai relativi vettori spostamento nel quadro SP
secondario. Nel caso che si voglia abilitare la ricostruzione di X̃k1 k2 non a partire dal flusso 1 di appartenenza
ma dal flusso 2, si trasmette il quadro SP secondario. Il decodificatore a partire dal flusso 2 ricostruisce X̃k1 k2 =
(2)
(2)
+E
.
P̃˜
k1 k2
a Le
k1 k2
(1)
(2)
predizioni P̃˜k k e P̃˜k k adottano la stessa quantizzazione, che in definitiva governa l’efficienza di compressione dei quadri SP:
1 2
1 2
tanto piú essa é fine, tanto piú efficiente risulta la compressione dei quadri SP primari, a scapito dell’efficienza di compressione dei quadri SP
secondari.
118
CAPITOLO 9. LA RACCOMANDAZIONE JVT H.264/AVC
Figura 9.7: Uso di quadri SP per commutazione fra flussi differenti.
9.3
Funzionalitá di robustezza agli errori di H.264
H.264 include numerosi strumenti di robustezza agli errori, mutuati da sistemi precedenti, fra i quali citiamo
• la codifica a segmenti indipendenti (Slice),
• l’Adaptive INTRA Refresh,
• il Data Partitioning.
Oltre a tali strumenti l’H.264 introduce tre nuovi strumenti che lo rendono più robusto e adatto alla trasmissione
in ambienti di rete differenti, tanto fissi quanto mobili, ovvero
• il Flexible Macroblock Ordering (FMO)
• l’Arbitrary Slice Ordering (ASO),
• l’uso di Redundant Slices (RS),
che saranno brevemente richiamati.
Infine, ulteriori caratteristiche di robustezza sono dovute alla particolare architettura sintattica definita in H.264,
in accordo alla quale alcune informazioni essenziali alla decodifica ma condivise a livello di sequenza o di quadro
viaggiano in strutture sintattiche indipendenti dette Parameter Set, e possono essere protette in misura maggiore
rispetto agli altri dati mantenendo un’elevata efficienza di compressione.
Slice e Data Partitioning
9.4. LA SINTASSI DEL VCL H.264
119
La struttura fondamentale prodotta dal video coder è la slice, che rappresenta un’evoluzione del concetto di slice
dell’H.263 Annex K. Le slice di un quadro sono decodificabili independentemente, ma possono importare tessiture
esterne ai confini della slice durante la fase di motocompensazione. Una slice può essere suddivisa in tre partizioni.
La partizione A comprende sempre le informazioni di header, i vettori spostamento, i modi di codifica dei singoli
macroblocchi. La Partizione B contiene le informazioni di tipo Intra e la Partizione C le informazioni di tipo Inter.
In alternativa, tutti i dati possono essere inseriti in un unica partizione. L’informazione sull’adozione della modalità
di Data Partitioning deve essere trasferita fuori banda. Ciascuna partizione inizia con una parola di codice che indica
il tipo di partizione. Si osservi che un errore in tale campo può essere utilizzato per rivelare la perdita di dati ed
attivare conseguentemente gli algoritmi di mascheramento dell’errore, alla stessa stregua di un errore di numerazione
di sequenza RTP o H.223-AL3 a livello di multiplexing.
Il Flexible Macroblock Ordering e l’Arbitrary Slice Ordering (ASO)
Una Slice può essere costituita da macroblocchi adiacenti estratti in ordine lessicografico, oppure scelti secondo
in ordinamento arbitrario, nella modalità Flexible Macroblock Ordering (FMO). Questa modalità di ordinamento
dei macroblocchi rende il sistema di codifica più robusto rispetto alla perdita di slice. Usando la modalità FMO,
le Slice possono rappresentare regioni di maggiore importanza visuale (Foreground Slice), ovvero regioni costituite
da MB non adiacenti (Scattering Slice, Interleaving Slice). Infatti, la perdita di una Slice costituita da MB non
spazialmente adiacenti può essere meglio fronteggiata con tecniche di mascheramento visuale degli errori e condurre
ad una sequenza decodificata di migliore qualità visuale. Tale miglioramento della robustezza è pagato in termini
di efficienza di compressione, che è lievemente ridotta a causa della minore efficacia dei meccanismi di predizione
della Slice9.5 .
L’opzione di codifica Arbitrary Slice Ordering (ASO) consente di utilizzare un ordine arbitrario di trasmissione
delle Slice, anche su piú quadri della sequenza video, realizzando cosi’ una forma di interleaving a livello di
applicazione.
Le Redundant Slices
L’H.264/AVC prevede la possibilità di rappresentazioni ridondanti di Slice, o anche di quadri, particolarmente
importanti. A differenza di una eventuale duplicazione introdotta dallo strato di rete, le Slice ridondanti utilizzano
parametri di codifica differenti rispetto alla rappresentazione primaria. Il decoder utilizza tali Slice ridondanti solo
quando la primary slice non é disponibile. Le Slice ridondanti sono particolarmente utili nel caso di trasferimento
a pacchetto su rete mobile. La robustezza offerta dalle Slice ridondanti puó ulteriormente migliorare se adottata
congiuntamente all’interleaving di livello di applicazione realizzato mediante ASO.
9.4
La sintassi del VCL H.264
La sintassi del VCL H.264 é caratterizzata dal fatto che alcune informazioni pertinenti ai livelli di sequenza e di quadro
sono trasmessi in strutture sintattiche distinte dal contenuto codificato vero e proprio. In particolare i parametri di
codifica condivisi a livello di sequenza e di quadro sono trasmessi utilizzando le strutture sintattiche dette Parameter
9.5 Affinché la
Slice sia decodificabile in modo indipendente, il suo contenuto- vettori spostamento, macroblocchi INTRA- non puó essere predetto
a partire da dati appartenenti ad altre Slice. Per tanto le tecniche di predizione possono essere applicate in misura minore, diminuendo l’efficienza
di compressione a vantaggio della robustezza agli errori.
120
CAPITOLO 9. LA RACCOMANDAZIONE JVT H.264/AVC
Figura 9.8: Aree dell’immagine decodificata nel caso di perdita di una slice, al variare della dimensione e dell’ordinamento dei
macroblocchi.
Set. I contenuti codificati veri e propri sono organizzati nelle strutture sintattiche di Slice e di macroblocco. La
architettura sintattica risultante é riassunta in Tabella 9.1.
Parameter Sets
I Parameter Sets H.264, contenenti alcune informazioni essenziali alla decodifica ma condivise a livello di sequenza,
possono essere trasmesse in banda o fuori banda, eventualamente in modo affidabile. I parameter Sets comprendono
• i Sequence Parameter Sets (SPS),
• i Picture Parameter Sets (PPS),
Tali unità sintattiche contengono rispettivamente informazioni necessarie per la decodifica di un insieme di dati
prodotti a livello di VCL o NAL (VCL o NAL Access Unit), corrispondenti ad una sequenza consecutiva di quadri (Sequence Parameter Set) o ad un quadro (Picture Parameter Set). Pertanto i Parameter Set convogliano, nel
contesto H.264, l’informazione tradizionalmente convogliata da Sequence header, Group-Of-Picture/Group-Of-VOP
(GOP/GOV) header, o Picture/VOP header. I Sequence PS e i Picture PS sono trasferiti prima delle VCL Unit
cui si riferiscono, tipicamente fuori banda, e utilizzando adeguati meccanismi di protezione. Tali informazioni sono
condivise da più Slice, che le indirizzano mediante un elemento sintattico che identifica il Parameter Set appropriato.
I Parameter set rendono il flusso non autocontenuto, ma presentano alcuni vantaggi:
• efficienza di compressione, in quanto lo scambio di parametri nella fase di capability exchange consente di
risparmiare la trasmissione ripetuta di alcune informazioni, per esempio a livello di quadro (e.g. di picture
headers);
9.5. PROFILI E LIVELLI DEL CODIFICATORE H.264
121
• robustezza, in quanto tali parametri possono essere protetti in modo molto piú accurato del flusso principale;
• sicurezza, in quanto la decodifica del bitstream è più ardua in assenza di tali parametri, e ciò consente di
diminuire la protezione del flusso del video in un sistema protetto;
• flessibilità, in quanto a valle della fase di capability exchange, il costo del cambio dei parametri di codifica è
contenuto, in quanto cambia solo l’indirizzamento del parameter set corretto.
Il codificatore e il decodificatore devono mantenere la sincronizzazione di un insieme di Parameter Sets, ciascuno
dei quali convoglia le informazioni a livello di quadro o a livelli sintattici superiori. La sincronizzazione si stabilisce
tipicamente per mezzo di protocolli di controllo all’atto dell’apertura del canale logico, e, nei sistemi più complessi,
può essere gestita dinamicamente. Nel contesto di servizi conversazionali realizzati mediante H.323, H.324 e H.324/M
(3G-324 M) essi sono trasferiti mediante la segnalazione H.2459.6 . Nel contesto di servizi di streaming o di servizi
conversazionali realizzati mediante pila di controllo SIP/SDP, essi sono trasferiti mediante i protocolli di controllo
della sessione, tipicamente in formato SDP o MIME9.7 .
Sequence Parameter Set
profile idc
e
level idc
pic width in mbs,
height in mbs
num ref frames
arbitra-
ry slice order allowed flag, redundant pictures allowed flag seq parameter set id massimo numero
di quadri, metodo di codifica del contatore d'ordine del quadro, modalità field o frame, con o senza
Picture Parameter Set
adattamento.
pic parameter set id,
seq parameter set id
entropy coding mode flag
(CAVLC,
o
CABAC).
num slice groups, mb slice group map type numero di macroblocchi consecutivi assegnati al gruppo
di slice, estremità di un gruppo di slice valore iniziale del parametro di quantizzazione (modificato
da slice qp delta, o da mb qp delta), chroma qp index offset deblocking filter, constrained intra pred
Slice Layer
flag
first mb in slice, slice type (P, B, I, SI, SP ) pic parameter set id frame num, idr pic id redundant pic cnt, direct spatial mv pred flag slice qp delta, slice qs delta disable deblocking filter idc
Macroblock Layer
(tutti, nessuno, interni) numero di macroblocchi skipped
mb type inter, intra, tipo di predizione (dimensione, direzione) CodedBlockPattern Chroma Luma
mb qp delta, numero di coefficienti non nulli e il numero di trailing ones.
Tabella 9.1: Strutture sintattiche utilizzate in H.264.
9.5
Profili e livelli del codificatore H.264
L’H264 è stato disegnato per operare in applicazioni differenti in bit-rate, qualità, risoluzione e servizi. Per efficienza
di implementazione esso presenta una suddivisione in profili estremamente semplificata. I profili introdotti nella
prima fase di standardizzazione H.264 sono tre: il profilo Baseline, il profilo Main e il profilo Extended. I profili
non sono esattamente gerarchici, nel senso che il baseline è un sottoinsieme del profilo extended, ma alcune modalità
previste nel baseline non compaiono nel profilo main. Tale profili sono stati successivamente affiancati da profili
per le applicazioni a qualitá molto elevata (Fidelity Range Extension, FRExt), per le quali H.264 si propone come
successore di MPEG-2.
9.6 E’
9.7 Il
possibile anche utilizzare la segnalazione estesa H.241.
formato Multipurpose Internet Mail Extension (MIME) é stato definito in ambito IETF per cooperare con il protocollo SMTP al trasferimento
di e-mail di dati di tipo composito, che utilizzassero, accanto al formato plain text, anche dati di tipo differente. Il formato si é evoluto consentendo
la descrizione di dati via via piú complessi, corredati da parametri opzionali, fino a rappresentare un’alternativa al protocollo SDP per la descrizione
di dati di tipo multimediale.
122
CAPITOLO 9. LA RACCOMANDAZIONE JVT H.264/AVC
Il profilo Baseline è destinato ad applicazioni con scansione progressiva in cui si richieda un ridotto ritardo di
codecodifica, ad esempio videotelefonia, video-over-IP, le applicazioni mobili. Il profilo supporta alcuni strumenti
di robustezza all’errore, quali l’FMO, l’ASO e le RS. D’altro canto non sfrutta gli strumenti più avanzati come i
segmenti di tipo B, la predizione pesata, la codifica CABAC, i segmenti SP e SI.
Il profilo Extended include tutti gli strumenti di codifica più efficiente (segmenti di tipo B, predizione pesata)
e di robustezza all’errore. Supporta i quadri SP e SI, finalizzati ad offrire scalabilità in bit-rate basata su flussi
precodificati. E’ particolarmente appropriato per applicazioni di streaming su rete fissa e mobile. Non supporta il
codificatore entropico CABAC.
Il profilo Main è appropriato per una codifica efficiente sia dei formato progressivi che dei formati televisivi
interallacciati. E’ destinato ad applicazioni in cui la probabilità di errori sui bit o di perdita di pacchetto siano
contenuti, e non siano presenti restrizioni sul ritardo di co-decodifica. Contiene tutti gli strumenti del profilo base ad
eccezione di quelli specificatamente finalizzati alla robustezza di trasmissione, quali l’FMO, l’ASO e le Redundant
Slices. Sono inoltre presenti i segmenti di tipo B, la codifica CABAC e la predizione pesata.
Oltre ai profili sopra definiti, l’H.264 definisce un insieme di livelli e sottolivelli che stabiliscono diversi livelli
di complessità del codec. Ciascun livello prevede dei limiti di capacità che possono essere indipendenti dal profilo,
come la frequenza di quadro massima, la massima risoluzione, etc., ovvero dipendenti dal profilo, come il massimo
numero di Slice per quadro.
9.6
Il Network Adaptation Layer H.264
Lo strato di adattamento alla rete, o NAL, ha l’obiettivo di adattare il formato dei dati codificati alle caratteristiche
del trasporto offerto dalla rete. La pacchettizzazione nativa operata dal NAL è esplicitamente disegnata per consentire
il trasferimento dati tanto nella modalità a pacchetto che nella modalità a circuito, e per ridurre l’impatto di errori
dello strato di trasporto sul video decodificato. I formati di trasporto sono differenti, e fra essi citiamo
• i formati di trasporto byte-oriented, quali i sistemi H.222.0/MPEG-2 TS per servizi diffusivi e H.221 di H.320
per video conferenza su ISDN;
• il formato di multiplazione RTP/UDP/IP, per servizi di streaming, con attivazione via RTSP, http, WAP o MMS
e servizi conversazionali a pacchetto, con controllo della sessione SIP/SDP o H.323;
• il formato di multiplazione H.223 Annex B di H.324, per servizi conversazionali a circuito, con controllo della
sessione H.324 per videotelefonia e videoconferenza;
• i formati di file basati sul modello ISO MP4 per la memorizzazione e lo streaming su rete fissa e mobile.
Per i formati di trasporto byte-oriented, quali i sistemi H.320 e MPEG-2/H.222.0 per servizi diffusivi, lo standard
prevede l’adattamento delle NALU mediante l’inserzione di Start Code di 3 o 4 byte in corrispondenza dei NALU
header, secondo quanto descritto in H.264 Annex B.
Per i formati a pacchetto, non é applicato l’Annex B, ed il NALU header é progettato per cooperare con l’intestazione del pacchetto di rete. I formati sopra citati presentano una pila protocollare molto simile, e pertanto ci si
riferirà d’ora in poi alla pacchettizzazione RTP/UDP/IP.
Il bit-stream codificato è organizzato in Slice. Ciascuna Slice costituisce il payload di una NALU. Il NALU
header è costituito da un byte che contiene indicazioni sul tipo di dati trasportati nella NALU, sulla integrità dei dati,
9.6. IL NETWORK ADAPTATION LAYER H.264
123
ed è progettato per integrare l’header del pacchetto RTP nel caso di trasferimento a pacchetto9.8 . Mentre nei sistemi
byte-oriented ogni NALU contiene tre o quattro byte per la risincronizzazione del decoder in caso di errore, nel caso
di trasferimento a pacchetto l’inizio della NALU è identificato dall’header del pacchetto RTP.
L’ header della NALU è formato dai seguenti campi:
• FORBIDDEN BIT (F) (1 bit) indica l’integrità della NALU segnalata dagli strati inferiori;
• NAL REFERENCE IDR (NRI) (2 bit) che segnala l’importanza di una NALU per la ricostruzione del video;
il valore a zero indica che la NAL Unit non e’ usata per la predizione e può essere scartata dal decoder o dagli
elementi della rete senza propagazione di artefatti visuali;
• NALU TYPE (T) (5 bit) che consente di indirizzare 32 differenti tipi di NALU, di cui solo 12 definiti; fra
i principali tipi di NALU segnaliamo i tipi Slice non partizionata, Partizione A, B o C, Parameter Set, Slice
marcata per essere aggregata ad altre in un solo pacchetto RTP; i rimanenti sono riservati per usi futuri.
Figura 9.9: Pacchettizzazione di NALU nella pila RTP/UDP/IP.
Il Trasferimento delle unità NALU in un contesto di trasporto a pacchetto mediante l’uso della pila di protocolli
RTP/UDP/IP sfrutta l’incapsulamento delle NALU in pacchetti RTP in modalità Simple Packetization (una NALU in
un pacchetto RTP), Fragmentation (una NALU in diversi pacchetti RTP) o Aggregation (più NALU in un pacchetto
RTP); la modalitá ottimale, ai fini di minimizzare l’impatto della perdita di un pacchetto RTP sul video decodificato,
dipende dal trasporto disponibile.
In primo luogo, la dimensione delle NALU dovrebbe essere adattata alla dimensione della MTU della rete
sottostante, in modo che il livello IP non frammenti il pacchetto RTP contenente la NALU. Poiché una slice è
9.8 Si
osservi che l’header non contiene informazioni di sincronizzazione.
124
CAPITOLO 9. LA RACCOMANDAZIONE JVT H.264/AVC
formata da un numero arbitrario di macroblocchi di un quadro, la lunghezza della Slice puó essere scelta in funzione
della dimensione della Maximum Transfer Unit (MTU) della rete interessata dal trasferimento.
Laddove la NALU ecceda la dimensione delle MTU delle reti sottostanti, è opportuno frammentare la NALU in
diversi pacchetti RTP. Ció accade ad esempio quando il flusso trasmesso é di alta qualitá, e precodificato, oppure
quando si voglia introdurre FEC su segmenti di dati appartenenti a pacchetti RTP di lunghezza fissa. Laddove una
o più NALU siano molto piccole, come nel caso di NALU contenenti un Parameter Set, possono essere aggregate
in un unico pacchetto RTP in modo tale da contenere l’overhead dovuto alla trasmissione dell’header del pacchetto
RTP. Il meccanismo di aggregazione prevede che le NALU del pacchetto possano essere contrassegnate da un
unico riferimento temporale, dando luogo ad un Single Time Aggregation Packet (STAP), o da differenti riferimenti
temporali, dando luogo al Multi Time Aggregation Packet (MTAP).
Bibliografia
[1] T. Wiegand, G.J. Sullivan, G. Bjøntegaard, A. Luthra, “Overview of the H.264/AVC video coding standard,” IEEE Trans. on Circuits and
System for Video Technology, Vol. 13, pp. 560-576, July 2003.
[2] S. Wnger, “H.264/AVC over IP,” IEEE Trans. on Circuits and System for Video Technology, Vol. 13, pp. 645-656, July 2003.
[3] RFC 3984, RTP Payload Format for H.264 Video , Wenger S. et al., February 2005.
[4] T. Stockhammer, M.M. Hannuksela, T. Wiegand, “H.264/AVC in Wireless Environment,” IEEE Trans. on Circuits and System for Video
Technology, Vol. 13, pp. 657-673, July 2003.
125
Capitolo 10
Comunicazioni multimediali su reti
radiomobili 2.5 e 3 G
10.1
Introduzione
La maturitá delle tecnologie di trasmissione e commutazione utilizzate nei sistemi radio mobili 2.5 e 3 G, e l’efficienza
delle tecnologie di compressione dei dati d’utente, ed in particolare del video, abilitano le comunicazioni multimediali
in contesti radiomobili. In tale contesto si possono pertanto progettare servizi complessi riconducibili a finalitá di
• comunicazione interpersonale
• distribuzione di contenuti in modalitá streaming
• messaggistica avanzata
Ciascuno dei servizi presenterá inoltre proprie specifiche rispetto al trasporto, in termini di banda, ritardi, jitter,
disponibilitá del canale di ritorno. Fra queste, la specifica piú rilevante é quella che concerne il massimo delay/jitter
tollerabile da ciascun servizio, che ne limita l’effettiva realizzabilitá in funzione delle diverse tecnologie di rete
disponibili.
Al fine di garantire tanto l’interoperabilitá fra terminali e la realizzabilitá dei servizi, per ciascuna di queste
categorie di servizio, devono essere individuati
• l’architettura protocollare di riferimento, in funzione della tecnologia di commutazione disponibile
• l’insieme dei codec, mandatori od opzionali, per i differenti dati (voce, audio, dati, immagini, video)
Richiameremo nei prossimi paragrafi le caratteristiche dei sistemi di comunicazione 2.5 e 3G, citando gli elementi
fondamentali dell’architettura di rete ed evidenziando gli aspetti di maggiore impatto sulle comunicazioni multimediali, cioé la qualitá di servizio e l’architettura protocollare dell’interfaccia radio. Successivamente, descriveremo
l’architettura protocollare e i codec multimediali specificati in ambito 3GPP per le tre categorie di servizo sopra citate.
126
10.2. IL GENERAL PACKET RADIO SERVICE (GPRS)
10.2
127
Il General Packet Radio Service (GPRS)
Il sistema GPRS é l’estensione dell’architettura GSM per la trasmissione dati in modalità a pacchetto sia a livello
radio che nella core network.
Architettura di Rete GPRS
L’architettura del sistema GPRS riutilizza alcuni elementi del sistema GSM, ed in particolare l’interfaccia radio
e gli elementi di gestione della mobilitá, introducendo gli elementi necessari alla gestione di nuovi servizi di
trasferimento dati a pacchetto. La Mobile Station (MS), é l’entità che accede ai servizi GSM e GPRS. I terminali
GPRS si differenziano in base alla capacitá di utilizzo contemporaneo delle risorse GSM e GPRS del sistema.
Il Base Station Subsystem (BSS) è l’entità delegata al controllo delle risorse radio e alla ricezione e trasmissione delle
informazioni delle MS in un’area geografica, coperta da una o più celle, ciascuna servita da una Base Transceiver
Station (BTS).
Nel sistema GSM, il BSS si interfaccia con il Mobile Switching Center (MSC) per il trasferimento del traffico voce
a circuito. L’MSC è una centrale di commutazione numerica che serve gli utenti di una rete radiomobile GSM
che si trovano nell’area di copertura radio da esso controllata; svolge le funzioni di commutazione per instaurare,
controllare, tassare le chiamate da e per una MS nell’area da servita. Tipicamente co-locato con l’MSC é il Visitor
Location Register (VLR), che é un database che memorizza le informazioni relative alle MS gestite dal MSC,
e coopera con il database centrale su cui l’operatore memorizza i dati statici relativi agli utenti (Home Location
Register).
Nel sistema GPRS, il BSS si interfaccia con il Serving GPRS Support Node, SGSN, che è uno dei due elementi
funzionali (insieme al Gateway GPRS Support Node, GGSN) introdotti per permettere i servizi di trasferimento dati
a pacchetto. L’SGSN offre servizi di gestione dell’autenticazione, della mobilità, e della connessione a livello di
link logico. L’GGSN (Gateway GSN) opera da interfaccia tra la rete a pacchetto interna e le reti a pacchetto esterne,
convertendo il formato dei pacchetti GPRS provenienti dal SGSN verso la rete a pacchetto esterna e instradando i
pacchetti in arrivo dalle reti esterne verso l’appropriato SGSN.
10.2.1
Qualitá di servizio GPRS
Per utilizzare i servizi GPRS l’utente sottoscrive il servizio e identifica il servizio richiesto mediante un profilo che
definisce la qualità di servizio che deve essere garantita, in condizioni di sufficiente copertura e di carico normale
della rete. In caso di congestione, tali parametri sono indicativi e la rete è tenuta solo a garantire la priorità fra i
vari servizi. I vari parametri suddividono le richieste in classi di servizio, anche se non obbligano gli operatori a
supportare tutte le combinazioni possibili delle varie classi.
Classe di prioritá
Indica il livello di prioritá relativa dei vari servizi in caso di condizioni anomale di funzionamento del sistema. Le
classi di priorità previste dallo standard sono tre, alta, normale e bassa. La rete non utilizza queste classi nel caso in
cui vi siano risorse sufficienti a servire tutti i flussi.
Classe di ritardo
128
CAPITOLO 10. COMUNICAZIONI MULTIMEDIALI SU RETI RADIOMOBILI 2.5 E 3 G
Nel caso di servizi interattivi sono stati definiti dei ritardi massimi che la rete deve garantire al flusso di informazioni
transitante all’interno del sistema GPRS. I ritardi sono definiti come ritardo medio ed il percentile 95 del ritardo nel
flusso di informazioni all’interno della rete GPRS ed includono il ritardo di accesso alla rete in uplink ed il ritardo
in downlink. Ad entrambi i tipi di comunicazione va aggiunto il ritardo di transito all’interno della rete GPRS fino
all’inoltro del traffico sulle reti esterne. Il minimo vincolo sul ritardo é pari a 500 ms.
Classe di affidabilitá
La classe di affidabilitá é un parametro che indica le caratteristiche di trasmissione che un’applicazione richiede ai
livelli sottostanti. Ciascuna classe si diversifica in base alle richieste di servizio che vengono effettuate sui vari livelli
della pila protocollare GPRS, in termini di pacchetti MAC persi, errati, duplicati, o fuori sequenza, ovvero di BER
residuo.
Classe di Throughput
La throughput class è un parametro fornisce un’indicazione quantitativa della banda richiesta per il trasferimento dei
dati di utente. I parametri di throughput che possono essere specificati si riferiscono al comportamento medio e di
picco della comunicazione. Il parametro Peak Throughput class è scambiato tra BTS e MS in fase di instaurazione
della comunicazione e può essere utilizzato per l’allocazione delle risorse trasmissive. In base a questi parametri,
negoziati al momento della sottoscrizione del servizio o in fase di instaurazione del collegamento, il mobile ottiene
l’assegnazione delle risorse radio ed una priorità che viene utilizzata per la gestione dei flussi informativi. Le possibili
priorità che possono essere assegnate a livello radio sono quattro e vengono utilizzate in fase di instaurazione del
collegamento.L’assegnazione delle risorse radio si basa sulla peak throughput class e sulla capacità di ricezione e
trasmissione del mobile.
10.3
L’Universal Mobile Telecommunication System
Le principali innovazioni nei servizi offerti dall’UMTS sono la capacità di supportare servizi eterogenei basati su
comunicazioni di tipo simmetrico e asimmetrico, di tipo real time e non real time, trasportando traffico a commutazione
di circuito con garanzia di QoS e traffico a commutazione di pacchetto con diversi livelli di QoS. Le reti UMTS
costituiscono un’evoluzione delle reti di telefonia mobile 2G e 2.5G.
10.3.1
Qualitá di servizio UMTS
Sono definite quattro diverse classi di qualità di servizio in base alla sensibilità ai ritardi di trasferimento:
Traffico Conversazionale
E’ la classe più sensibile ai tempi di trasferimento e descrive il traffico real time, sia di tipo telefonico classico, che
di tipo voce su IP. Descrive inoltre il traffico dei servizi di videotelefonia e videoconferenza. Poiché i servizi relativi
sono le comunicazioni interpersonali, il traffico di questa classe richiede basso ritardo di trasferimento, jitter limitato
e mantenimento delle relazioni temporali tra i diversi flussi multimediali.
Traffico Streaming
10.3. L’UNIVERSAL MOBILE TELECOMMUNICATION SYSTEM
129
Architettura di Rete UMTS
L’architettura di rete UMTS consta di servizi a commutazione di circuito e servizi a commutazione di pacchetto, e
si differenzia dal sistema GSM/GPRS principalmente per il tipo di accesso radio utilizzato, mentre la rete utilizza
elementi che rappresentano un’evoluzione del sistema GSM/GPRS. In particolare, il BSC evolve in un’entitá detta
Radio Network Controller (RNC), mentre MSC, SGSN e GGSN evolvono verso le corrispettive entitá 3G, cioé
3G-MSC, 3G-SGSN e 3G-GGSN. Le caratteristiche funzionali delle diverse unitá sono riportate in Tabella 10.1.
Dall’osservazione della Tabella risulta evidente come alcune funzionalitá del 2G SGSN siano state ereditate dal
3G SGSN, e/o dal RNC; quest’ultimo risulta pertanto un elemento molto piú complesso del BSC. Sono inoltre
evidenziate le funzionalitá innovative di telefonia su IP, comunicazioni multimediali real-time, commutazione ad
alta capacitá che caratterizzano le reti di terza generazione.
3G SGSN
Autenticazione
RNC
X
2G SGSN
BSC
X
GTP Tunneling verso il GGSN
X
X
Tariffazione e misure di traffico
X
X
Interazione con HLR
X
X
Gestione della mobilitá
X
X
X
Interazione con MSC
X
X
X
Conversione fra protocollo radio e protocollo IP
X
X
Cifratura
X
X
Compressione
X
X
Commutazione ad alta capacitá
X
Telefonia su IP
X
X
Comunicazioni multimediali real-time
X
X
Tabella 10.1: Caratteristiche funzionali dei principali elementi di rete 2.5 e 3 G.
Attualmente il sistema UMTS prevede sia funzionalitá di trasferimento a commutazione di pacchetto che a commutazione di circuito; in prospettiva, il trasferimento dovrebbe evolvere verso un unico dominio a commutazione di
pacchetto. L’interfaccia di accesso dovrebbe prevedere la coesistenza di tecnologia di accesso radio GPRS/EDGE
(GERAN) e UMTS (UTRAN).
E’ la classe che caratterizza il trasporto unidirezionale di flussi di dati multimediali. Richiede il mantenimento delle
relazioni temporali tra i diversi flussi e jitter limitato, ma in misura meno stringente rispetto alla classe conversazionale.
Traffico Interattivo
E’ la classe che descrive il traffico generato dall’interazione di un utente con un apparato remoto, per esempio per
applicazioni di Web Browsing o accesso a data base. Il round trip delay deve essere contenuto, e il trasferimento dei
dati deve essere caratterizzato da un basso tasso d’errore.
130
CAPITOLO 10. COMUNICAZIONI MULTIMEDIALI SU RETI RADIOMOBILI 2.5 E 3 G
Traffico di Background
E’ la classe che descrive il traffico generato da un trasferimento dati in background, per applicazioni quali e-mail,
SMS, MMS, download di file da data base. Questa classe non presenta requisiti di ritardo ma richiede un tasso
d’errore molto basso.
10.4
Architettura protocollare della rete d’accesso UTRAN e GERAN
L’architettura protocollare dell'interfaccia radio prevede funzionalitá di diversi livelli:
Funzionalità di livello 3
• assegnazione, gestione e rilascio di connessioni fra il terminale e la UTRAN;
• gestione degli aspetti di mobilità, allocazione delle risorse, sincronizzazione;
Funzionalità di livello 2
• mapping di unità di rete in unità Radio Link Control (RLC) e realizzazione di protocolli di controllo d'errore,
con significativo impatto sulla qualitá percepita10.1 ;
• associazione dei canali logici ai canali di trasporto, selezione del formato di trasporto, cambiamento del tipo di
canale di trasporto10.2;
• segmentazione, riassemblaggio, concatenazione, padding;
• gestione delle priorità tra diversi flussi di dati, multiplazione demultiplazione, monitoraggio del volume di
traffico, cifratura;
Funzionalità di livello 1
• multiplazione e demultiplazione dei flussi,
• codifica e decodifica di canale, l’interleaving e de-interleaving dei dati codificati,
• modulazione e demodulazione, sincronizzazione in tempo e frequenza.
10.1 I
protocolli di RLC consentono di realizzare le funzionalitá di trasferimento dei dati video con differenti livelli di qualità. Tipicamente il
traffico conversazionale e di streaming adottano la modalità a basso ritardo mentre la Messaggistica multimediale in modalitá download adotta la
modalità piú protetta.
10.2 Il livello Medium Access Control (MAC) opera sulle unitá dati da trasmettere selezionando il formato di trasporto appropriato in funzione del
bit-rate di sorgente e dei parametri selezionati a livello di RLC.
10.4. ARCHITETTURA PROTOCOLLARE DELLA RETE D’ACCESSO UTRAN E GERAN
131
Funzionalità di RLC nella GERAN e nella UTRAN
GERAN
UTRAN
⇒ adattamento al canale radiomobile mediante compressione
⇒ adattamento al canale radiomobile mediante compressione
dell'header e del payload (SNDCP);
dell'header (PDCP);
⇒ gestione dei servizi del piano d'utente per dati comuni a
più utenti (BMC);
⇒ trasferimento in modalitá Acknowledged Data transfer,
⇒trasferimento in modalitá Acknowledged Data trans-
con consegna dei dati trasmessi senza duplicazione, in
fer, con consegna dei dati trasmessi senza duplicazione,
sequenza, e senza errori grazie alla ritrasmissione delle
in sequenza, e senza errori grazie alla ritrasmissione delle
singole unitá;
singole unitá;
⇒ trasferimento in modalitá Unacknowledged Data Transfer,
⇒trasferimento in modalitá Unacknowledged Data Transfer,
con rivelazione di errori di trasmissione e duplicazione dati.
con rivelazione di errori di trasmissione e duplicazione dati;
⇒ trasferimento in modalitá Transparent Data Transfer,
senza funzionalitá di correzione o rivelazione d’errore.
Funzionalità di livello 1 nella UTRAN
I dati arrivano in insiemi di unità elementari dette Trasport Block, associate ad un intervallo di tempo prefissato
(Transmission Time Interval, TTI), variabile fra un minimo di 10 ms e un massimo di 80 ms. I dati raccolti
nell'ambito di un TTI sono segmentati in blocchi all'ingresso del codificatore di canale. Il codificatore può essere
costituito da un codificatore convoluzionale con rapporto di codice 1/2, o 1/3, o da un Turbo codice di rapporto di
codice 1/3. L'interleaving si estende su una profondità pari al TTI. I dati relativi ad un TTI sono segmentati in trame
radio di 10 ms. L'impatto di errori di trasmissione sulle trame radio al livello di bitstream ricevuto dipende tanto
dalla profondità dell'interleaving che dalla capacità di rivelazione del codice. D'altra parte tali parametri dipendono
dal budget disponibile in termini di banda e di ritardo, e variano da applicazione ad applicazione.
132
CAPITOLO 10. COMUNICAZIONI MULTIMEDIALI SU RETI RADIOMOBILI 2.5 E 3 G
Funzionalità di livello 1 nella GERAN
Nel caso di trasmissione GPRS, sono definiti quattro schemi di codifica di canale associati ad una modulazione di
tipo GMSK, riportati in Tabella 10.2. Inoltre é possibile attribuire ad un utente fino ad 8 time-slots, per un data-rate
nominale massimo di 160 Kb/s. La modulazione utilizzata é la GMSKa .
Coding Scheme
Modulation
Code Rate
Data rate netto (nominale)
CS1
GMSK
1/2
8(9.05)
CS2
GMSK
2/3
12(13.4)
CS3
GMSK
3/4
14.4(15.6)
CS4
GMSK
1
20(21.4)
Tabella 10.2: Schemi di codifica di canale adottati nel GPRS.
Nel caso di trasmissione Enhanced Data rates for GSM Evolution (EDGE), sono definiti nove schemi di modulazione
e codifica di protezione decrescente e data rate crescente, riportati in Tabella 10.3. La modulazione utilizzata é la
GMSK o la 8PSK.
Coding Scheme
Modulation
Code Rate
Data rate
MCS1
GMSK
1/2
8.8
MCS2
GMSK
2/3
11.2
MCS3
GMSK
3/4
14.8
MCS4
GMSK
1
17.6
MCS5
8PSK
0.37
22.4
MCS6
8PSK
0.49
29.6
MCS7
8PSK
0.76
44.8
MCS8
8PSK
0.92
54.4
MCS9
8PSK
1
59.2
Tabella 10.3: Schemi di modulazione e codifica di canale adottati nel sistema EDGE.
a L’interleaving
operato in GPRS e EDGE differisce da quello utilizzato nel GSM perché opera su 4 Normal Burst anziché 8, in quanto si
suppone che la qualitá del servizio offerto sia maggiormente condizionata dalla percentuale di pacchetti errati che dal BER residuo.
10.5. SERVIZI MULTIMEDIALI CONVERSAZIONALI IN AMBITO 3GPP
10.5
133
Servizi multimediali conversazionali in ambito 3GPP
I servizi di tipo conversazionale sono servizi real-time, di telefonia, videotelefonia e conferenza audio/video. Il
traffico conversazionale é sensibile ai ritardi di trasferimento, che devono essere contenuti entro i 200 ms. Essi sono
realizzabili nel sistema UMTS sia utilizzando un modo di trasferimento a circuito che un modo di trasferimento a
pacchetto.
10.5.1
Servizi conversazionali a commutazione di circuito
La descrizione dell’architettura protocollare e dei codec per servizi conversazionali a commutazione di circuito é
contenuta in [3]. Il terminale multimediale 3G-324M definito in [3] consente lo scambio informazioni real-time, di
tipo video, audio, e dati su reti 3GPP a commutazione di circuito. Le specifiche del terminale 3G-324M si basano sulla
Raccomandazione ITU-T H.324 Annex C, e H10.3 per canali soggetti ad errori e per comunicazioni mobili. L’Annex
C di H.324, anche noto come H.324/M, definisce l’uso di terminali H.324 in ambienti di trasmisione soggetti ad
errore. In particolare, esso estende le funzionaliá di protezione dagli errori previste dal formato di multiplazione
H.223. Le comunicazioni possono essere bidirezionali o unidirezionali, eventualmente supportate da una Multipoint
Communication Unit (MCU). I terminali possono essere fissi o mobili. Le modifiche 3GPP all’H.324 sono descritte
in principalmente in [4]. L’architettura del terminale 3G-324M per i servizi conversazionali a commutazione di
circuito é descritta in Fig.10.1.
10.5.1.1
Architettura protocollare per servizi conversazionali a commutazione di circuito
Un terminale multimediale 3G-324M dispone di un protocollo di controllo H.245 versione 3 o successive, di un
multiplex di tipo H.223 Annex A e B, e di una interfaccia wireless. I terminali 3G-324M supportano almeno 32
kbit/s di bit rate all’interfaccia fra il multiplex e la rete wireless. La multiplazione puó adottare techiche estese di FEC
e ARQ, descritte negli Annessi tecnici C e D della raccomandazione H.223; in tal caso il formato di multiplazione
robusto prevede l’introduzione di codici a correzione d’errore nell’Adaptation Layer AL-1 e AL-3, e di protocolli di
ritrasmissione nell’AL-1. Il supporto di H.223 Annex C e D, ovvero dei formati di multiplazione, é opzionale, e così
il supporto delle altre componenti di H.324 Annex C. Il Multiplexing di dati video nei terminali 3G-324 M è definito
da criteri generali di allineamento dell’inizio di unità sintattiche del bitstream video con l’inizio dei relativi pacchetti
H.223, detti AL3 SDU. In un sistema reale, il decodificatore video può scartare le AL3-SDU che risultino errate
in base alla loro AL3 checksum o tentare la decodifica dei dati ricevuti, fintantoché non si riscontri una violazione
sintattica o semantica. I criteri di pacchettizzazione dei dati in modalitá robusta rispetto agli errori di trasmissione
sono sostanzialmente analoghi a quelli precedentemente discussi per la pila IP/UDP/RTP. Tuttavia, a differenza della
multiplazione RTP/UDP/IP, la multiplazione H.223 opera a banda fissa, tipicamente limitata. Inoltre, è progettato per
ambienti dalla MTU limitata (100 bytes), per cui presenta un minore overhead, e ad elevato tasso d’errore, per cui è
dotato di un meccanismo di ritrasmissione per SDU perse o danneggiate. H.223 inoltre non presenta alcuni campi
dell’RTP header, quali l’RTP timestamp o il marker bit.
10.3 L’Annex
H definisce la modalitá operativa di H.324 su connessioni fisiche indipendenti (multilink), aggregate insieme al fine di fornire un
bit-rate complessivo piú elevato.
134
CAPITOLO 10. COMUNICAZIONI MULTIMEDIALI SU RETI RADIOMOBILI 2.5 E 3 G
10.5.1.2
Codec per servizi conversazionali a commutazione di circuito
I codec raccomandati sono:
• Audio: AMR codec narrowband (mandatario) e G.723.1
• Video: H.263 baseline (mandatorio), H.263 wireless e MPEG-4 Visual SP L0, H.264 baseline
• Testo/Timed Text: ITU-T T.140; la Racc. ITU-T T.140 descrive il trasferimento di dati testuali con informazioni
di sincronizzazione, detti Timed Text10.4.
Figura 10.1: Architettura del terminale 3G-324M per servizi conversazionali a commutazione di circuito.
10.4 Il
etc).
Timed text é il formato dei dati testuali utilizzati nel chatting, per il testo presentato con grafica e con eventuali animazioni (effetto karaoke,
10.5. SERVIZI MULTIMEDIALI CONVERSAZIONALI IN AMBITO 3GPP
10.5.2
135
Servizi conversazionali a commutazione di pacchetto
I servizi di tipo conversazionale a commutazione di pacchetto (Packet Switched Conversational Multimedia Applications) sono definiti in [2].
10.5.2.1
Architettura protocollare per servizi conversazionali a commutazione di pacchetto
L’architettura protocollare per i servizi conversazionali su rete a pacchetto di tipo IMS (IP Multimedia Subsystem)
è rappresentata in Fig.10.2.Le procedure di segnalazione per il controllo di chiamata per servizi multimediali su
reti IP sono basate sui protocolli SDP e SIP [11]. I flussi di segnalazione sono riportati in [10]. I flussi di
segnalazione utilizzano tipicamente una pila protocollare reliable, mentre i dati multimediali codificati utilizzano una
pila protocollare unreliableRTP/UDP/IP.
10.5.2.2
Codec per servizi conversazionali a commutazione di pacchetto
I tipi di dati e i relativi codec che possono essere trasferiti sono gli stessi previsti per la commutazione di circuito e
sono:
• Audio: AMR codec narrowband (mandatario) e G.723.1
• Video: H.263 baseline (mandatorio), H.263 wireless e MPEG-4 Visual SP L0, H.264 baseline
• Testo/Timed Text: ITU-T T.140.
Figura 10.2: Pila protocollare per i servizi conversazionali su rete a pacchetto.
136
CAPITOLO 10. COMUNICAZIONI MULTIMEDIALI SU RETI RADIOMOBILI 2.5 E 3 G
10.6
Servizi multimediali di streaming in ambito 3GPP
Col termine streaming si identifica la modalità operativa di un’applicazione che presenta media quali audio e video,
opportunamente sincronizzati, mentre la ricezione di tali flussi di dati è in corso di da parte delle risorse di rete
mediante modo di trasferimento a pacchetto. Le applicazioni che operano in modalità streaming possono essere di
tipo on-demand (accesso a database) o live. Tali servizi hanno specifiche di ritardo dell’ordine di qualche secondo,
ma richiedono tuttavia un jitter contenuto e la sincronizzazione fra media differenti. I servizi di Packet Switched
Streaming (PSS) sono definiti in [5], e i relativi codec in [6].
10.6.1
Architettura protocollare per servizi di streaming a commutazione di pacchetto
L’architettura protocollare per il supporto dei servizi streaming a pacchetto prevista in sistemi 3G è rappresentata
in Figura 10.3. Tale architettura realizza il controllo mediante il protocollo RTSP di strato applicativo, definito in
ambito IETF, per il controllo della consegna dei dati con requisiti real-time. Il protocollo RTSP consente all’ utente
di agire lato client per richiedere il flusso in streaming al server che distribuisce i contenuti, di controllare la ricezione
del flusso, e di eseguire operazioni come il fast forward, rewind o la pausa del flusso dati. Oltre al recupero e
controllo di flusso da un content server, il protocollo RTSP abilita altre funzionalità quali l’invito di un content
server ad una conferenza o l’inserimento di nuovi flussi in una sessione già esistente. Tale protocollo é trasferito
tipicamente mediante la pila reliable TCP/IP. Il trasferimento dei dati multimediali prevede invece l’adozione di una
pila unreliable RTP/UDP/IP per i flussi audio/video e reliable TCP/IP per gli altri dati.
10.6.2
Codec per servizi di streaming a commutazione di pacchetto
I tipi di dati che possono essere trasferiti sono diversificati, e comprendono voce, audio, video, immagini fisse, dati
non sincronizzati quali file grafici o testo, o dati sincronizzati, descritti da file multimediali. I formati di codifica
previsti sono:
• Segnale vocale: codec AMR (narrowband o wideband)
• Audio naturale: MPEG4 AAC Low Complexity
• Audio sintetico: Scalable Poliphony MIDI
• Immagini fisse di tipo fotografico: JPEG, JFIF10.5
• Formati grafici di tipo scalare: GIF87a, GIF89a10.6 , PNG10.7
• Formati grafici di tipo vettoriale: Scalable Graphic, profili Tiny o Basic
• File multimediali: formato file 3gpp
10.5 Il
formato JFIF é il formato file del bitstream JPEG, ed é tipicamente caratterizzato come un file con estensione .JPG. Esistono tuttavia
applicativi, ad esempio all’uscita di fotocamere digitali, che scrivono l’immagine in accordo al formato del bitstream JPEG senza le informazioni
aggiuntive del JFIF.
10.6 Il formato GIF é un formato di compressione di immagini basato sull’algoritmo di Lempel-Ziv, coperto da brevetto. Esso risulta senza perdita
per immagini con un numero di colori limitato a 256.
10.7 Il formato PNG non é protetto da brevetto e non soffre delle limitazioni sul numero di colori rappresentabili senza perdita. E’ lievemente
meno efficiente del formato GIF, e non supporta animazione del contenuto.
10.6. SERVIZI MULTIMEDIALI DI STREAMING IN AMBITO 3GPP
137
• Video: H.263 baseline (mandatorio), H.263 wireless, MPEG-4 visual SP L0, H.264 Baseline
• Testo: formato XHTML o SMIL10.8
• Timed Text: formato file 3gpp
Figura 10.3: Pila protocollare per i servizi di streaming su rete a pacchetto.
10.8 Il
linguaggio SMIL é un linguaggio simile ad HTML per la descrizione di sessioni multimediali, mentre XHTML é una versione ridotta di
HTML.
138
CAPITOLO 10. COMUNICAZIONI MULTIMEDIALI SU RETI RADIOMOBILI 2.5 E 3 G
10.7
Servizi multimediali in ambito 3GPP: la messaggistica multimediale
La messaggistica multimediale prevede lo scambio di dati compositi; il trasferimento puó avvenire tanto in modalitá
download che in modalitá streaming.
I dati multimediali sono combinati in accordo al formato Multipurpose Internet Mail Extension10.9 . I formati dei
dati codificati sono:
• Segnale vocale: codec AMR (narrowband o wideband)
• Audio naturale: MPEG4 AAC Low Complexity
• Audio sintetico: Scalable Poliphony MIDI
• Immagini fisse di tipo fotografico: JPEG,JFIF
• Formati grafici di tipo scalare: GIF 87a, GIF89a, PNG
• Formati grafici di tipo vettoriale: Scalable Graphic, profili Tiny o Basic
• File multimediali: formato file 3GP
• Video: H.263 baseline (mandatorio), H.263 wireless, MPEG-4 visual SPL0, H.264 Baseline
• Testo: formato plain text
• Presentazione/sincronizzazione: formato XHTML o SMIL
10.8
Il formato file .3gp.
Il formato di file 3GPP (3GP) definisce un tipo di file multimediale basato sul modello dei file ISO MPEG/JPEG.
Il file multimediale 3GPP é utilizzato nell’ambito di servizi di Packet Switched Streaming per il trasferimento di
testo sincronizzato e nell’ambito di servizi di Multimedia Messaging. I contenuti multimediali del file 3GPP possono
essere trasferiti sia in modalitá download che in modalitá streaming. I codec utilizzabili sono H.263, MPEG-4, H.264
(AVC) per il video, AMR narrow-band e wide-band per la voce, AMR esteso e MPEG-4 AAC per l’audio, e testo
sincronizzato (scritte animate, etc.); il formato di file prevede la sintassi per la descrizione dei codec effettivamente
utilizzati. Esso prevede inoltre estensioni per la memorizzazione negli streaming server (RTP hint tracks, SDP
description, Alternative Tracks), metadati per la descrizione del contenuto, informazioni sulle specifiche richieste per
il buffer del decodificatore video, dati criptati.
10.9 Il
Multipurpose Internet Mail Extension (MIME, RFC 2045, 2046) é un protocollo di descrizione di messaggi che coimvolgano media di
diversi tipi, quali testo, immagini, video e audio.
Bibliografia
[1] 3GPP TS 23.140: Multimedia Messaging Service (MMS); Functional description; Stage.
[2] 3GPP TS 26.140: Multimedia Messaging Service (MMS); Media formats and codecs.
[3] 3GPP TS 26.110: Codec for circuit switched multimedia telephony service; General description.
[4] 3GPP TS 26.111: Codec for circuit switched multimedia telephony service; Modifications to H.324.
[5] 3GPP TS 26.233: Transparent end-to-end packet switched streaming service (PSS); General Description.
[6] 3GPP TS 26.234: Transparent end-to-end packet switched streaming service (PSS); Protocols and Codecs.
[7] 3GPP TS 26.244: 3GPP file Format.
[8] IETF RFC 3261: SIP: Session Initiation Protocol.
[9] IETF RFC 2327: SDP: Session Description Protocol.
[10] 3GPP TS 24.228: Signalling flows for the IP multimedia call control based on SIP and SDP.
[11] 3GPP TS 24.229: IP Multimedia Call Control Protocol based on SIP and SDP.
139
Capitolo 11
Conclusioni
11.1
Conclusioni
Il progetto di un sistema di comunicazioni multimediali si basa sulla definizione di un’architettura end-to-end articolata in strati corrispondenti alla realizzazione di diverse funzionalitá, e che coinvolge differenti tecnologie. In
questo testo sono stati descritti i principi su cui si basa la codifica di sorgente di informazione multimediale, con
particolare riferimento alla codifica della voce, dell’audio, delle immagini, e del video. Attraverso l’esame degli
standard internazionali, sono state quindi esposte le peculiaritá degli algoritmi di compressione utilizzati in servizi
differenti, quali i servizi diffusivi e di comunicazione interpersonali su canali di comunicazione differenti, in termini
di capacitá, qualitá, tecnologia di rete adottata. Sono state inoltre analizzate le strategie di protezione dei dati multimediali estremamente differenziate incontrate nell’esame dei diversi contesti in cui sono realizzabili le comunicazioni
multimediali, con particolare riferimento alle funzionalitá di protezione che possono essere realizzate al livello applicativo. Particolare attenzione é stata infine dedicata ai principi e alle diverse modalitá di attuazione delle funzionalitá
di multiplazione dati, evidenziando il ruolo svolto da tali metodologie tanto nella qualitá dei servizi multimediali
quanto nell’affermazione dei servizi stessi. In alcuni casi, si é evidenziato lo stretto legame fra le funzionalitá di
livello fisico e di quelle di multiplazione dei dati, ed il successo dei servizi caratterizzati da un adeguato disegno
congiunto di tali funzionalitá.
L’ordine scelto nell’esposizione degli argomenti corrisponde fondamentalmente alla successione storica dell’emergere dei servizi multimediali; tale ordinamento ha comunque tenuto conto dell’esigenza di presentare in modo
compatto l’intero dispiegarsi dello sviluppo di ciascun servizio. Gli argomenti presentati, tuttavia, si prestano ad un’analisi trasversale, concentrata ad esempio sulle differenti applicazioni dei principi generali della teoria della codifica
di sorgente e di canale, sull’evoluzione dell’una o dell’altra tecnologia, sul confronto delle particolari realizzazioni
della stessa tecnologia dei diversi contesti applicativi; tale analisi é, laddove possibile, suggerita da richiami interni
al testo. Nel suo complesso, il presente testo risponde all’intento di stimolare l’elaborazione critica dei principi e
delle questioni applicative concernenti le comunicazioni multimediali, al fine di consentire l’analisi e la comprensione
delle tecnologie multimediali e del loro sviluppo.
140