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