Compressione video
Transcript
Compressione video
Lezione 9: Video(II) Informatica e Produzione Multimediale Docente: Umberto Castellani Sommario Introduzione al video Formati video – – Analogici digitali Il Moving picture Expert group (MPEG) Editing video MPEG e compressione Introduzione Principi generici Compressione video – – MPEG 2 MPEG 4 Quanto occupa una immagine? 352 pixel • liv. grigio: 352x288x1 = 99 Kbyte 288 pixel • RGB: 352x288x3 = 297 Kbyte Filmato 25fps (immagini per sec) • liv. grigio: 99Kb x 25 = 2.4 Mb/s • RGB: 297Kb x 25 = 7.2 Mb/s Compressione: principi Il ruolo della compressione è di minimizzare il numero di bit necessari per ritenere accettabile una versione del dato originale allo scopo di ridurre i costi di memorizzazione e di trasmissione. Dato originale Dato “ricostruito” Codifica Decodifica Trasmissione o memorizzazione La compressione coinvolge tutti i dati multimediali Compressione: architettura Compressione: architettura (II) Ricostruzione lossless originale coder decoder dati compressi Compressione: metodi Esistono due macro-categorie di metodi di compressione: – Metodi reversibili (o lossless): metodi che non comportano alcuna perdita di informazione in seguito al processo di codifica e decodifica (i.e., la versione ricostruita è identica alla versione originale) – Metodi non reversibili (o lossy): metodi che comportano una perdita di informazione occorre quantificare tale perdita (se ne occupa la Teoria dell’informazione) Compressione lossless: esempio Dati: • il set di tutti i possibili simboli provenienti dalla sorgente dei dati (detto alfabeto); • la distribuzione di probabilità di ciascun simbolo dell’alfabeto; l’algoritmo di Huffman permette di ricavare il codice a lunghezza variabile VL (variable lenght) ottimo, che minimizza il numero di bit necessari per la codifica di un blocco di dati coerente con la distribuzione di probabilità. Huffman: esempio Probabilità Simbolo Non compresso Codifica Huffman 40% s1 000 0 15% s2 001 100 15% s3 010 110 10% s4 011 111 10% s5 100 1010 5% s6 101 10110 4% s7 110 101110 1% s8 111 101111 Mediamente: Non compresso: Huffman: 3 bit / simbolo 2.55 bit / simbolo Algoritmi lossless universali Esistono algoritmi lossless che non richiedono la conoscenza a priori della distribuzione di probabilità dei simboli dell’alfabeto. In generale riescono a modellare dinamicamente le caratteristiche statistiche dei dati da comprimere e adeguano di conseguenza la codifica. Algoritmi Lempel-Ziv (costituiscono il nucleo di gzip, pkzip, compress ecc.) – LZ77, LZ78, LZW, LZY Metodi Lossy: esempio JPEG Immagine originale suddivisa in blocchi di 8x8 pixel (spazio YCbCr) blocco 8x8 pixel Il JPEG è uno standard per la compressione lossy di immagini (statiche) JPEG: funzionamento 201 190 190 183 165 162 182 171 199 18' 183 201 88 102 15 25 67 107 200 105 199 199 178 0 123 63 255 183 183 23 54 0 65 38 194 21 148 18 243 0 0 180 255 0 123 226 12 0 66 102 0 130 189 0 255 6 22 254 132 159 183 213 6 43 blocco 8x8 (una sola componente) DCT IDCT trasformata DCT trasformata DCT zigzag quantizzata secondo modelli percettivi: • molti valori nulli • comprimibile molto efficacemente con algoritmi lossless Coder e decoder JPEG coder JPEG lossless DCT quantizz. coder immagine originale decoder JPEG lossless decoder dequant. IDCT immagine finale JPEG2000 • basato non su DCT, ma su WAVELET (i.e., classe di funzioni matematiche ‘speciali’) • migliori prestazioni a forte compressione • possibilità di definire regioni di interesse (ROI) • visione multirisoluzione 7Kb - compressione 100:1 7Kb - compressione 100:1 Compressione video Possibili applicazioni: – Memorizzazione su disco – Broadcast di video digitali (video on demand) – Reti multimediali (Internet) Premessa Un video è costituito da una sequenza di immagini (frames) che si susseguono nel tempo (es. 25 frames al secondo). Se non si applica la compressione la quantità di dati che servono per memorizzare un filmato digitale esplode dopo qualche secondo…. Occorre dunque studiare delle tecniche intelligenti per la compressione video. L’idea di fondo consiste nel considerare che due frame ‘vicini’ hanno circa lo stesso contenuto (alta ridondanza temporale) Schema generale MPEG-2 CODIFICA CODIFICA DECODIFICA Input video Output video Pre-processing Post-processing Predizione Predizione Compressione Decompressione Trasmissione o memorizzazione Pre-processing: interpolazione MPEG-2 usa il formato YCrCb (3 numeri) per codificare le immagini: – – – Y(luminanza): rappresenta l’intensità del colore Cr (crominanza rossa): rappresenta il valore su una scala di rossi Cb (crominanza blu): rappresenta il valore sulla scala di blu Poiché la percezione visiva umana è più sensibile alle variazioni di luminanza rispetto a quelle di crominanza le componenti Cr e Cb vengono ridotte (i.e., si prende un pixel ogni due). Predizione La predizione rappresenta la fase che più caratterizza il formato MPEG-2 Si basa sui seguenti concetti: – – – Riduzione della ridondanza temporale Stima del moto Compensazione del moto Riduzione della ridondanza temporale Frequentemente, le immagini di una sequenza video hanno solo poche differenze l'una dall'altra, cioè sono altamente correlate. Si può ottenere un'alta compressione della sequenza codificando le immagini differenzialmente, e trasmettendo solo la differenza fra un immagine e l'altra. Le regioni inalterate possono essere copiate da un'immagine a quella successiva, riducendo considerevolmente le dimensioni del bitstream. Stima e compenzazione del moto Si assume che, localmente, un immagine sia esprimibile come traslazione di un immagine precedente e/o successiva della sequenza video, dove per ``localmente'' si intende limitatamente a limitatamente a un singolo macroblocco (i.e., blocco da 16x16 pixel). – Es: una scena con sfondo fisso e un singolo oggetto che si muove Stima del moto dato un macroblocco dell’immagine corrente data un immagine di riferimento (detta anchor) la stima del moto consiste nel cercare lo spostamento del blocco che porta il blocco stesso a sovrapporsi con l’immagine di riferimento Lo spostamento viene codificato con una coppia di valori (traslazione verticale e orizzontale) che costituiscono il cosiddetto vettore di moto. Compensazione del moto Dato un vettore di moto (riferito ad un certo macroblocco) e data un immagine di riferimento Si usa il vettore per estrarre il blocco dall’immagine di riferimento i pixel nell'immagine di riferimento vengono usati per predire i pixel dell'immagine corrente Questo meccanismo prende il nome di predizione Tipi di frames Interframes I: frames senza predizione. Rappresentano immagini intere (autocontenute) e servono per consentire gli accessi casuali al filmato. Predicted frames P: frames che effettuano la predizione solo verso il precedente anchor frame. Essi stessi sono usati come anchor. Bidirectionally Predicted frames B: frames che effettuano la predizione facendo la media tra il precedente e il successivo anchor frame. Sono quelli che raggiungono il più elevato rate di compressione. Esempi di sequenze Una possibile successione di tipi di frames è la seguente: I-B-B-P-B-B-P-B-B-I Di solito c’è uno spazio fisso tra anchor frames (ma lo standard non lo impone). – – Si indica con N la distanza tra 2 I-frames (nell’esempio N=9) Si indica con M la distanza tra 2 anchor frames (nell’esempio M=3) Domanda: con che ordine devono essere spediti i frames ? Ordine di spedizione dei frames La regola consiste nello spedire sempre gli anchor frames prima dei predicted frames che li utilizzano. Nell’esempio: I1-B2-B3-P4-B5-B6-P7-B8-B9-I10 La sequenza da spedire sarà: I1-P4-B2-B3-P7-B5-B6-I10-B8-B9 Compressione dei singoli frames I frames di tipo I sono compressi come le usuali immagini 2D (i.e., jpeg) Sui frames di tipo P e B viene applicata la compensazione del moto su ogni blocco. I blocchi vengono sottratti all’immagine di riferimento e la compressione avviene solo sulla differenza. A questo punto la codifica del filmato è terminata e dunque si è pronti per la memorizzazione o trasmissione. Schema generale: 16x16 16x16 16x16 16x16 8x8 8x8 Y R G B I-frame C Cr b P-frame YCbCr 4:2:0 Decodifica La decodifica si basa sul processo inverso di ogni fase della codifica: – – – Decompressione Predizione Post-processing Schema generale MPEG-2 CODIFICA CODIFICA DECODIFICA Input video Output video Pre-processing Post-processing Predizione Predizione Compressione Decompressione Trasmissione o memorizzazione Comunicazione multimediale: MPEG 4 ``Comunicazione Multimediale'' è la possibilità di comunicare informazione audio-video che: 1. 2. 3. 4. 5. 6. 7. sia naturale, sintetica, o entrambe sia in tempo reale e non supporti differenti funzionalità a seconda delle esigenze dell'utente fluisca da e verso differenti sorgenti simultaneamente non richieda all'utente di preoccuparsi di specifici canali di comunicazione, ma usi una tecnologia che ne sia cosciente dia all'utente la possibilità di interagire con differenti elementi di informazione consenta di presentare all'utente i risultati della sua interazione con il contenuto in una maniera idonea alle sue necessità MPEG 4 Nel Luglio del 1993, l'MPEG (il moving picture expert group) ha iniziato lo sviluppo dell'MPEG-4, che soddisferà i sette punti appena elencati; le specifiche MPEG-4 diventeranno Standard Internazionale nel Novembre del 1998, con codice ISO/IEC 14496 e titolo ``Coding of Audio-Visual Objects''. Codifica basata su oggetti L’idea fondamentale dell’MPEG-4 consiste nel proporre una codifica basata sugli oggetti che appaiono nel filmato: – video, singole immagini, animazioni, texture, suoni, modelli 3D Si parla di oggetti-media (media object) o audio visual objects (AVO) – naturali o sintetici L’MPEG-4 fornisce un modo per comporre una scena permettendo la trasmissione separata degli oggetti che la compongono MPEG 4: composizione della scena Le scene audio-visuali sono composte da diversi AVO, organizzati gerarchicamente. es: un TG – – – – – – Sfondo fisso 2D Immagine di una persona che parla (senza lo sfondo) Voce associata alla persona Oggetto sintetico (es, tavolo e mappamondo) Suono sintetico (es. musica della sigla) Etc. Mpeg 4 standardizza un insieme di primitive AVO per rappresentare oggetti naturali e sintetici 2D o 3D MPEG 4: descrizione della scena La descrizione di una scena consiste nelle seguenti informazioni: – Come gli oggetti sono raggruppati insieme (struttura gerarchica) – Come gli oggetti sono posti nello spazio e nel tempo: ogni oggetto ha le proprie coordinate e l’apparizione degli AVO deve essere sincronizzata – Attributi degli AVO: alcuni elementi possono essere modificabili (es. contrasto o colore) MPEG 4: grafo della scena o BIFS La scena è codificata secondo una struttura dati detta BInary Format for Scene description (BIFS) Generalmente si tratta di un grafo della scena in cui i nodi rappresentano gli oggetti con i loro attributi e gli archi rappresentano le relazioni spaziali e temporali La struttura è dinamica per cui il grafo varia nel tempo (es. parametri di posizione) Esempio di scena MPEG 4 MPEG: il futuro Il futuro riguarda l’MPEG-7: – Il fuoco è sulla caratterizzazione del contenuto dei dati multimediali (i.e., flusso di informazioni audio/video). – Codifica dei cosiddetti Meta dati – Es: nomi degli attori di un film, data e ora di registrazione di un evento di cronaca L’MPEG 7 propone un metodo per il trattamento uniforme (eventualmente automatico) dei metadati di un prodotto multimediale