Cap.8
Transcript
Cap.8
Capitolo 8 Servizi di videotelefonia e videoconferenza: le Raccomandazioni ITU-T I servizi di videotelefonia e videoconferenza offrono la possibilitá di comunicazione voce, 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 via software su PC desktop, fino a terminali radiomobili. Inoltre, la comunicazione puó avvenire in modalitá punto-punto o punto multi-punto, 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 8.1: Sistemi di Videoconferenza. 80 8.1. PRINCIPI DELLA CODIFICA VIDEO H.263 8.1 81 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 8.2. Formato Colonne righe 16CIF 1408 1152 4CIF 704 576 CIF (Common Intermediate Format) 352 288 QCIF 176 144 SQCIF 128 96 Tabella 8.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 un’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 disponibili8.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. 8.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. 82 CAPITOLO 8. 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. 8.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.8.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; 8.2. LE OPZIONI AVANZATE DEL CODEC H.263 8.2.1 83 La motocompensazione avanzata in H.263 La tecnica di motocompensazione avanzata descritta in H.263 prende il nome di Advanced Prediction (AP) o Overlapped Block Motion Motion Compensation (OBMC). Per calcolare la predizione di ciascun pixel il decodificatore 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.8.2 ed esemplificato in Fig.8.3. Figura 8.1: Esempio di immagine predetta mediante motocompensazione tradizionale e avanzata su blocchi 8x8. 84 CAPITOLO 8. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T Figura 8.2: Advanced Motion Compensation su blocchi 8x8. 8.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) a 8 bit 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 8.3. LA SINTASSI H.263 85 Figura 8.3: Esempio di Advanced Prediction. 86 CAPITOLO 8. 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 spostamento8.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. 8.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 8.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. 8.5. RACCOMANDAZIONI ITU-T PER VIDEOTELEFONIA E VIDEOCONFERENZA SU RETE FISSA 87 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 8.5,8.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 8.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. 8.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). 88 CAPITOLO 8. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T Per la videcomunicazione su N-ISDN8.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, controllare 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 8.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. 8.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. 8.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. 8.5. RACCOMANDAZIONI ITU-T PER VIDEOTELEFONIA E VIDEOCONFERENZA SU RETE FISSA 8.5.1 89 I formati di multiplazione a pacchetto H.223 e H.225 (RTP) per i flussi di dati multimediali Sia la Raccomandazione H.324, per trasmissione su reti caratterizzate da modo di trasferimento a circuito, che la Raccomandazione H.323, per trasmissione su reti a pacchetto, prevedono formati di multiplazione orientati al 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. 90 CAPITOLO 8. 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 (Transmission Control Protocol), 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 (User Datagram Protocol), 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 é caratterizzato da 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 destinazione 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. 8.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 rete8.6. Ad esempio, si 8.6 Su reti Ethernet la MTU ha dimensione pari a 1500 byte; su reti wireless la MTU ha dimensione dell’ordine dei 100 byte. 8.5. RACCOMANDAZIONI ITU-T PER VIDEOTELEFONIA E VIDEOCONFERENZA SU RETE FISSA 91 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 8.4: Schema a blocchi del terminale H.324. 92 CAPITOLO 8. SERVIZI DI VIDEOTELEFONIA E VIDEOCONFERENZA: LE RACCOMANDAZIONI ITU-T Figura 8.5: Pila protocollare del terminale H.323. 8.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. 8.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 8.4: Profili dello standard di codifica video H.263. 93 94 CAPITOLO 8. 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 8.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. 95