Università degli Studi di Modena e Reggio Emilia Dipartimento di Ingegneria dell Informazione Video Over IP (Internet) Maria Luisa Merani 1
UN EXCURSUS MINIMALE sulla CODIFICA VIDEO Senza presunzione di completezza e sistematicità, vediamo di introdurre le conoscenze ed i concetti basilari per la comprensione delle problematiche della trasmissione video su Internet 2
Scene video naturali Una tipica scena video naturale è costituita da una molteplicità di oggetti Ciascuno ha le proprie caratteristiche in termini di Forma Profondità Texture Illuminazione Inoltre, il colore e la brillantezza cambiano all interno della scena Entrambe Le caratteristiche spaziali e Le caratteristiche temporali della scena risultano rilevanti nella fase di processing e compressione del segnale video 3
Fase di cattura 1/2 Una scena video naturale è spazialmente e temporalmente continua Per rappresentarla in formato digitale occorre eseguire un operazione di campionamento Spaziale e temporale Ciascun campione spazio-temporale (pixel) viene rappresentato attraverso un set di valori numerici Descrivono l intensità luminosa ed il colore del campione 4
Fase di cattura 2/2 Per ottenere un immagine campionata 2D, la videocamera esegue una proiezione 2D della scena video su un sensore, ad esempio un array di Charge Coupled Device (CCD) Nel caso di cattura di immagine a colori, ciascun componente colore viene filtrato separatamente e proiettato su un array di CCD All uscita dell array CCD si recupera un segnale video analogico tipicamente un segnale elettrico che rappresenta l immagine video 5
Campionamento spaziale Il formato più comune per eseguire il campionamento spaziale di un immagine è quello rettangolare, con i punti di campionamento posizionati su una griglia rettangolare Il campionamento avviene in corrispondenza dei punti di intersezione i della griglia L immagine campionata può essere ricostruita rappresentando ciascun campione come un elemento quadrato dell immagine La qualità dell immagine dipende dal numero di campioni 6
Campionamento temporale Un immagine video in movimento viene catturata attraverso una sequenza di istantanee del segnale ad intervalli di tempo periodici Eseguire il play-back della sequenza dei frame catturati fornisce l idea del movimento Frame rate < 10 frame al secondo impressione di movimenti a scatti, non naturali Impiegata per comunicazioni video a bassissime bit rate 10 20 frame al secondo fluidità dei movimenti accettabile, degradata solo nelle porzioni di sequenza con elementi che si muovono velocemente 25 30 frame al secondo standard per trasmissione video televisiva (con interlacing) 50 60 frame al secondo ottima fluidità nei movimenti, a scapito di data rate molto elevate 7
Frame e fields Frame è il termine con cui si individua un immagine all interno di una sequenza video Da non confondere con i frame che circolano sulle reti!!! Il campo (field) consiste invece delle linee dispari o delle linee pari costituenti il frame video Un segnale video può essere campionato come una serie di frame completi PROGRESSIVE SAMPLING Oppure come una sequenza di campi (field) interallacciati INTERLACED SAMPLING Una sequenza video interallacciata è costituita da una sequenza di campi, ciascuno dei quali rappresenta metà informazione di un frame 8
Vantaggi Il campionamento interallacciato consente di inviare un numero di fields al secondo pari al doppio del numero di frame al secondo di una sequenza equivalente a campionamento progressivo con la stessa data rate Sensazione di maggiore fluidità Video PAL: 50 fields/s 9
Gli spazi colore La maggior parte delle applicazioni video prevede l uso del colore Necessario un meccanismo per catturare e rappresentare l informazione colore Un immagine monocromatica richiede un unico valore numerico per caratterizzare l intensità luminosa di ciascun campione spaziale Le immagini a colori richiedono perlomeno tre valori per pixel per rappresentare accuratamente il colore Il metodo scelto per rappresentare l intensità luminosa ed il colore viene referenziato come spazio colore 10
RGB Nello spazio colore RGB, il campione di una immagine i a colori è rappresentato attraverso tre valori numerici Indicano la proporzione relativa di Rosso, verde, blu Si tratta dei tre colori primari della luce Si può creare qualsiasi colore attraverso una loro opportuna combinazione ES: Un display a cristalli liquidi idi rende una immagine i RGB illuminando separatamente i componenti di rosso,verde e blu di ciascun pixel in accordo con le corrispondenti intensità Ad una distanza tipica di osservazione, i componenti separati si fondono 11
YCbCr Il sistema visivo dell essere umano è meno sensibile al colore che alla luminosità Nello spazio colore RGB i tre colori sono egualmente importanti e vengono tipicamente memorizzati con la medesima risoluzione Spazio colore YCbCr Consente una rappresentazione più efficiente Y, componente di luminanza: Y = kr R + kgg + kbb Cb, Cr, Cg, componenti di crominanza: Cb = B Y ; Cr = R Y ; Vale la seguente proprietà: Cb + Cr + Cg = cost Cg = G Y 12
YCbCr ha un vantaggio importante t rispetto all RGB: I componenti Cr e Cb possono essere rappresentati con una risoluzione inferiore rispetto ad Y Si riduce la quantità di dati per rappresentare la crominanza, senza danneggiare la qualità visiva dell immagine/video Si tratta di una forma semplice, ma efficace, di image compression 13
I formati di campionamento YCbCr Sono supportati da MPEG-4 e H.264 444 4:4:4 Componenti di luma e croma con medesima risoluzione 4:2:2 Risoluzione i orizzontale croma dimezzata Riproduzioni a colori ad alta fedeltà 14
4:2:0 Risoluzione croma orizzontale e verticale dimezzata TV digitale, DVD, video conferenze 15
Esempi numerici i Risoluzione i immagine: i 720 X 576 pixel risoluzione Y: 720 X 576 campioni, ciascuno rappresentato con 8 bit 4:4:4 campioni Cb e Cr rappresentati con 8 bit numero totale di bit: 3 X (720 X 576 X 8) = 9 953 280 bit 4:2:0 numero totale di bit: 720 X 576 X 8 + 2 X (360 X 288 X 8) = 4 976 640 16
I formati video Tipicamente, prima delle fasi di Compressione e Trasmissione i il video viene catturato e convertito in un formato intermedio Il CIF - Common Intermediate Format - è la base di un popolare set di formati 4CIF TV e video DVD CIF e QCIF Videoconferenza QCIF e SQCIF Applicazioni multimediali su terminali mobili Componente di luma delle immaginii i 17
Formati frame video FORMATO RISOLUZIONE LUMINANZA BIT PER FRAME (4:2:0, otto bit per campione) 4CIF 704 X 576 4 866 048 CIF 352 X 288 1 216 512 Quarter CIF 176 X 144 304 128 (QCIF) Sub-QCIF 128 X 96 147 456 18
PRONTI PER LA COMPRESSIONE VIDEO Ma perchè eseguire compressione video? Bit rate delle reti in continua crescita Connessioni domestiche ad alta velocità in rapida diffusione Capacità di storage dei dischi fissi, delle memorie flash e dei dispositivi ottici sempre più elevata 19
Due vantaggi davvero significativi: ifi i 1. Consente l utilizzo di video digitali it in sistemi i di trasporto t e memorizzazione che non tollerano l impiego di flussi video raw, non compressi Le attuali velocità supportate da Internet sono insufficienti per video real time non compressi Un DVD può memorizzare solo alcuni secondi di un video raw che abbia una risoluzione i adatta ad un apparato televisivo i 2. Consente un impiego più efficiente di tali sistemi di trasporto e memorizzazione Trasmissione di un video compresso ad alta risoluzione, piuttosto che di uno stream non compresso a bassa risoluzione 20
Come si consegue la compressione dei dati? R: occorre rimuovere la ridondanza Ridondanza d statistica ti ti i dati possono essere efficacemente compressi senza perdita di informazione gli standard attuali per la compressione LOSSLESS di immagini e video come il JPEG-LS garantiscono un rapporto di compressione pari a 3-4 Per ottenere rapporti di compressione più elevati occorre ricorrere ad una compressione LOSSY In un sistema di compressione lossy i dati decompressi non risultano identici ai dati sorgente Si tratta di sistemi basati sul principio della rimozione di ridondanza soggettiva Si rimuove del contenuto informativo associato all immagine o al video, senza penalizzare in modo significativo la percezione della qualità visiva dello spettatore 21
Compressione Video (Lossy) Si tratta del processo che conduce alla compattazione di una sequenza video digitale in un numero inferiore di bit Prevede la presenza di due sistemi complementari, Il compressore (encoder) e Il decompressore (decoder) Spesso referenziati come CODEC (encoder/decoder) Gli standard video non definiscono l encoder, ma l uscita che dovrebbe produrre definiscono un metodo di decodifica, ma non ne escludono di alternativi, a patto che forniscano lo stesso risultato 22
Schema a blocchi di un codificatore video 23
Modello temporale L input al modello temporale è una sequenza video non compressa Il modello temporale tenta di ridurre la ridondanza temporale tra i frame video trasmessi sfruttando le similarità tra frame adiacenti tipicamente costruisce una predizione del frame corrente a partire da uno o più frame (passati o futuri) e la sottrae dal frame stesso L output di tale processo è un frame residuo, o differenza Quanto più è accurata la predizione, tanto è minore l energia contenuta nel frame residuo L accuratezza della predizione può essere migliorata attraverso una compensazione del moto tra il frame di riferimento ed il frame corrente 24
Compensazione del moto Più dettagliatamente: L unità base per la compensazione del moto nella maggioranza degli standard per la codifica video è il macroblocco (MB) regione di un frame di 16 X 16 pixel Procedura I CODEC MPEG-4 Visual o H.264 processano ciascun frame video in unità di macroblocchi 1. Per ogni MB del frame corrente si individua un MB nel frame di riferimento (passato o futuro, ma precedentemente codificato e trasmesso) con cui valga una corrispondenza il più possibile soddisfacente 2. L area candidata diviene il predittore del MB corrente e viene sottratta da tale MB per formare il residuo 3. Il MB residuo è codificato e trasmesso, insieme all offset tra il MB corrente e la posizione del MB predittore (vettore di moto) 25
Modello spaziale Il frame residuo costituisce l input al modello spaziale che fa uso di similarità tra campioni adiacenti nel frame residuo per ridurre la ridondanza spaziale In MPEG-4 e H.264 tale scopo è raggiunto 1. applicando una trasformata t ai campioni i residui i e successivamente 2. quantizzando il risultato L uscita del modello spaziale è costituita da un set di coefficienti trasformati e quantizzati 26
Quali trasformate? t Block-Based DCT - Discrete Cosine Transform Opera sui blocchi costituenti l immagine Image-based DWT - Discrete Wavelet Transform Opera su un intera immagine o frame, o su una sua ampia porzione (tile) E con quali obiettivi? 1. I dati nel dominio i trasformato t devono essere decorrelati compatti 2. L operazione di trasformazione deve essere reversibile 3. Computazionalmente trattabile Modesta richiesta di memoria e di operazioni matematiche 27
DCT La DCT opera su X, un blocco di N X N campioni (es: valori residui dopo la predizione), per ottenere Y, un blocco di N X N coefficienti Forward DCT (FDCT) Y = T AXA Inverse DCT (IDCT) X dove: A ij = A T YA ( 2 j + 1) iπ 1 2 = Ci cos con Ci = i i > 2 N N N ( i = 0), C = ( 0) 28
Vantaggio? La rimozione dei coefficienti con ampiezze trascurabili (ad esempio attraverso l operazione di quantizzazione) consente ai dati provenienti dal frame video di essere rappresentati con un numero inferiore di valori numerici a scapito di una certa perdita di qualità INFATTI: Il forward quantizer di un codificatore video è progettato per 1. mappare coefficienti insignificanti a zero e 2. conservare un numero ridotto di coefficienti significativi Il suo output è tipicamente costituito da un array sparso di coefficienti, che ne contiene pochi diversi da zero e molti di valore pari a zero 29
Prima del codificatore di entropia I coefficienti trasformati vengono riordinati Scansione a zig-zag di un blocco 8 X 8 di coefficienti DCT Esempio di distribuzione di probabilità di coefficienti DCT diversi da zero in un blocco 8 X 8 di un frame residuo QCIF 30
Ed infine si applica una rappresentazione efficiente dei coefficienti che valgono zero L uscita di tale processo di riordinamento è un vettore che tipicamente contiene al suo inizio uno o più gruppi di coefficienti diversi da zero, seguiti da una stringa di zeri Esempio di possibile codifica: Vettore ingresso: 16,0,0,-3,5,6,0,0,0,0,-7, Vettore uscita: (0,16),(2, (2-3) 3),(0,5),(0,6),(4, (4-7) 7) Il vettore uscita è in questo caso una serie di coppie (run, level) run: indica il numero di zeri che precede il coefficiente diverso da zero level: indica l ampiezza di tale coefficiente 31
Codificatore di entropia Questo codificatore prende in ingresso i parametri del modello temporale I vettori di moto i parametri del modello spaziale I coefficienti trasformati e quantizzati e, ad es., run-level encoded markers Codici che indicano un punto di risincronizzazione headers Header di macroblocchi, header di sequenza, informazioni ulteriori Info collaterale, inessenziale per una decodifica corretta e li comprime 32
In altri termini, rimuove la ridondanza d statistica ti ti dei dati e produce un bit stream compresso che può essere trasmesso e/o immagazzinato Una sequenza compressa consiste allora dei parametri dei vettori di moto codificati, dei coefficienti dei residui codificati e di informazioni aggiuntive 33
Tecniche di entropy coding Variable Length coding Un encoder di questo tipo mappa i simboli in ingresso in una serie di parole di codice, a lunghezza variabile (VLC) Simboli più frequenti sono rappresentati da VLC brevi Simboli meno frequenti da VLC lunghe Se il numero di simboli da codificare è sufficientemente elevato, ciò conduce ad una compressione dei dati Es. : la codifica di Huffmann, che assegna a ciascun simbolo un VLC sulla base della probabilità di occorrenza del simbolo Necessario il calcolo della probabilità di occorrenza di ciascun simbolo Necessaria la costruzione di un set di VLC Arithmetic coding Alternativa pratica alla codifica di Huffman Si avvicina maggiormente al massimo rapporto di compressione teorico conseguibile 34
Il decoderd Il decoder d video ha il compito di ricostruire i il frame video a partire dallo stream di bit compresso Un decodificatore di entropia decodifica i vettori di moto e i coefficienti trasformati Il modello spaziale è decodificato per ricostruire una versione del frame residuo Il decoder impiega i parametri dei vettori di moto con uno o più frame precedentemente decodificati per creare la predizione del frame corrente Il frame corrente è ricostruito aggiungendo il frame residuo alla predizione 35
In conclusione Gli strumenti ti per la codifica video precedentemente t descritti Motion compensated prediction Transform coding Quantization Entropy coding formano la base del modello di codifica che ha dominato il campo della compressione video degli ultimi dieci anni Tale modello è il cuore degli standard d MPEG e H.26x 36
Standardizzazione di i Per incoraggiare la competitività e l interoperabilità, è stato infatti necessario definire metodi standard di compressione e codifica Ciò ha condotto allo sviluppo di diversi standard internazionali per la compressione di immagini e video JPEG MPEG H.26X (H.263, H.263+, H.264) 37
MPEG-4 Visual e H.264 MPEG-4 Visual Enfasi sulla flessibilità Consente di trattare Frame rettangolari (materiale video tradizionale) Oggetti video (regioni di forma arbitraria all interno della scena) Informazione video ibrida (sintetica/generata via computer e naturale/mondo reale) Funzionalità garantite attraverso un set di strumenti di codifica, organizzati in profili (una ventina circa) 38
MPEG-4 Visual Suo contributo chiave: Abbandono dell interpretazione t i tradizionale i di una sequenza video come collezione di frame rettangolari di video Una sequenza video è una collezione di uno o più oggetti video Un oggetto video (VO, Video Object) è un entità flessibile cui l utente può accedere (seek, browse) e che può manipolare (cut and paste) Si tratta di un area nella scena video che può occupare una regione di forma arbitraria e che può esistere per un periodo arbitrario di tempo L istanza di un VO osservata in un particolare istante è definita come un Video Object Plane (VOP) 39
H.264 Enfasi su una compressione efficiente E su un altrettanto efficiente trasmissione Numerose built-in features specificatamente consentono trasmissioni affidabili e robuste su un ampia varietà di canali e di reti Tre profili Baseline video conferenza Extended videostreaming attraverso reti Main consumer applications (broadcast di video e memorizzazione) 40
Un pò di folclore l Sulla base dei dati forniti, un film tipicamente i t occupa in memoria da 1 a 4 Gbyte Lo sapevate che Da una videocamera si cattura e si trasferisce su computer via USB solo un fermo immagine Per trasferire un intero video Firewire Il sistema USB con le sue data rates non ce la fa 41
Un riferimento i bibliografico Per ulteriori approfondimenti: Iain E. G. Richardson H.264 and MPEG-4 Video Compression: Video Coding for Next Generation Multimedia 2003 John Wiley & Sons Ltd. ISBN: 0-470-84837-5 42