UNIVERSITÀ DEGLI STUDI DI TRIESTE Corso di Elaborazione Elettronica di Immagini CODIFICA ED ELABORAZIONE DI SEQUENZE VIDEO
Sommario Formati video Codifica di sequenze video 1 Formati video 2 3 Cenni su digital cinema e cinema 3D Elaborazione di sequenze video 4
Video analogico Interlacciamento Video digitale FORMATI VIDEO
Formati televisivi SD Video analogico Interlacciamento Video digitale NTSC SECAM PAL or PAL/SECAM no info
Formati televisivi SD Video analogico Interlacciamento Video digitale Formati PAL e SECAM: 25 fps Formato NTSC: 29,97 fps L active area ha un aspect ratio di 4:3 (i pixel sono rettangolari) Gli spazi vuoti ai bordi danno tempo al fascio di elettroni del tubo catodico di spostarsi alla riga o fotogramma successivo Line blanking Field blanking Usato per trasmettere il televideo
Interlacciamento Formati video Video analogico Interlacciamento Video digitale In un tubo catodico, i fosfori si illuminano quando vengono colpiti dal fascio di elettroni e si spengono in breve tempo Flicker Per ridurre il flicker si potrebbe aumentare la frequenza di fotogramma, ma questo aumenterebbe l occupazione di banda in radiofrequenza Soluzione, sviluppata nel 1930 1932: interlacciamento Raddoppiare la frequenza di fotogramma Ogni fotogramma (frame) viene diviso in 2 quadri (fields) In ogni quadro, trasmettere soltanto le righe pari o dispari alternatamente In questo modo, l occupazione di banda resta invariata ma il flicker è meno visibile.
Interlacciamento Formati video Video analogico Interlacciamento Video digitale L interlacciamento è motivato da due fattori: Riproduzione del video su tubi catodici Flicker Trasmissione in radiofrequenza Limitazioni di banda L interlacciamento complica notevolmente l elaborazione del video, perché i quadri sono campionati in istanti di tempo diversi. Se non è necessario, il video viene trasmesso in modo progressivo Monitor da PC Video digitale ad alta definizione...
Video digitale Formati video Video analogico Interlacciamento Video digitale
CODIFICA MEDIANTE STIMA DEL MOVIMENTO
Per comprimere una sequenza video digitale, si potrebbe semplicemente codificare ogni fotogramma separatamente (esempio: Motion JPEG) Vantaggi: Basso costo computazionale Buona resistenza agli errori Facilità di editing (il video può essere tagliato e montato in qualsiasi punto) Esempi di applicazioni: Videocamere digitali con cassette Mini DV Digital Cinema Svantaggio: non sfrutta la ridondanza temporale
Ridondanza temporale In una sequenza video tipica, i pixel di un fotogramma sono fortemente correlati con quelli del fotogramma precedente Tuttavia, la scena spesso contiene del movimento Movimento degli oggetti Movimento della macchina da presa Conseguenza: i pixel sono correlati con quelli del fotogramma precedente, ma in una diversa posizione
Block matching Formati video I codificatori video più comunemente utilizzati Dividono il fotogramma da codificare in blocchi Per ogni blocco, cercano il blocco più simile nel fotogramma precedente
Procedimento di codifica Motion estimation 1 Il fotogramma da codificare viene diviso in blocchi, di dimensione fissa o variabile 2 Per ogni blocco, si cerca il blocco più simile (secondo qualche metrica) al blocco in esame all interno di una search region del fotogramma precedente 3 In questo modo, per ogni blocco si ottiene un vettore di movimento Motion compensation 4 Si costruisce una stima del fotogramma da codificare traslando i blocchi del fotogramma precedente secondo i vettori di movimento
Procedimento di codifica Codifica 5 Si calcola la differenza tra il fotogramma da codificare e la stima costruita in precedenza 6 La differenza viene compressa, ad esempio mediante DCT o wavelet seguite da codifica entropica Esempio di predictive coding Un fotogramma codificato nel modo descritto è detto di tipo P ( predictive )
Tipi di fotogrammi È opportuno, per vari motivi, codificare alcuni fotogrammi in modo autonomo Fotogramma di tipo I ( intra ) o keyframe Primo fotogramma della sequenza Cambi di scena Per consentire spostamenti rapidi Per migliorare la resistenza agli errori Possibili criteri per il posizionamento dei fotogrammi I: Periodico (es. ogni 15 fotogrammi nei DVD PAL) Adattativo (es. ai cambi di scena), entro limiti fissati
Tipi di fotogrammi GOP In alcuni casi, è conveniente costruire la stima del fotogramma usando anche fotogrammi successivi Fotogramma di tipo B ( bidirectional ) Esempio tipico: oggetti in movimento che scoprono lo sfondo In questo caso, i fotogrammi vengono codificati e trasmessi fuori ordine L insieme dei fotogrammi tra un I-frame (compreso) e l I-frame successivo (escluso) è detto group of pictures (GOP)
GOP Formati video Tipicamente, nessun fotogramma dipende da un fotogramma B Possono essere saltati dal decodificatore se non ha risorse sufficienti
Schema a blocchi del codificatore e decodificatore
Stima del movimento La stima del movimento ha un costo computazionale molto elevato Esempio: full search su video PAL Risoluzione 720 576, blocchi di 16 16 pixel 1620 blocchi Search region di ± 16 pixel in orizzontale e verticale 33 2 posizioni (trascurando i blocchi ai bordi) Numero di confronti al secondo: 1620 33 2 16 2 25 11 10 9 È indispensabile usare tecniche di fast search per ridurre il costo computazionale Semplificare l operazione di confronto Ridurre il numero di confronti
Stima del movimento Operazione di confronto Metodo ideale: ricerca del blocco che rende minimo il numero di bit necessario per codificare l errore Improponibile in pratica I metodi di codifica che abbiamo visto (predittori, trasformate,... ) tentano di produrre numeri vicini a zero, codificabili con pochi bit Possibile metodo: ricerca del blocco che minimizza l errore quadratico medio Più semplice, ma richiede moltiplicazioni Ulteriore semplificazione: minimizzare la sum of absolute differences (SAD)
Stima del movimento Numero di confronti In generale, la SAD varia piuttosto lentamente in funzione dello spostamento ( x, y) È possibile ridurre il numero di confronti. Esempio: log search Alternativa: metodi multirisoluzione, gradient-based,...
Stima del movimento Altri metodi Globale Ideale per descrivere i movimenti della macchina da presa Rappresentabile con pochi parametri Tipicamente combinato con altri metodi per descrivere il movimento degli oggetti Pixel-based Non utilizzato nella compressione video Problema indeterminato si impone qualche regolarità nei vettori di movimento Algoritmi di optical flow
Stima del movimento Altri metodi Mesh-based Buona qualità (evita gli artefatti di blocchettatura) Alto costo computazionale, sia in codifica sia in decodifica Region-based Richiede una segmentazione Difficile Utilizzato talvolta per la codifica di video sintetici
Il metodo descritto in precedenza è comune a buona parte degli standard di compressione video attualmente in uso. I diversi standard si differenziano per i dettagli nell implementazione H.261 Sviluppato nel 1988 per videoconferenza su linee ISDN Risoluzioni fisse: CIF (352 288) o QCIF (176 140), YCbCr 4:2:0 Introduce la tecnica di block-based motion estimation, con blocchi di 16 16 pixel Blocchi di tipo I o P, con fotogrammi I inseriti periodicamente Vettori di spostamento interi Codifica del residuo simile al JPEG (DCT 8 8,... ) Codifica differenziale dei vettori di movimento
MPEG-1 Pubblicato nel 1993, codifica video e audio Applicazioni: Video CD, PC/Internet. Decodifica software Diverse risoluzioni e bit-rate, YCbCr 4:2:0 Vettori di movimento con risoluzione di 1 2 pixel Stima del movimento bidirezionale MPEG-2 Pubblicato nel 1994 Applicazioni: DVD, TV satellitare, digitale terrestre, HDTV Codifica di video interlacciato Diversi schemi di chroma subsampling Scalabilità (spaziale, temporale, quantizzazione)
MPEG-4 Introdotto nel 1998 e tuttora in sviluppo Applicazioni: PC/Internet (DivX, XviD) Vettori di movimento con risoluzione di 1 4 pixel Global motion compensation Supporto per grafica 3D, codifica a oggetti/regioni, texture Metodi di codifica entropica più complessi H.264 / MPEG-4 AVC Pubblicato nel 2003 Applicazioni: Blu-ray, PC/Internet Stima del movimento con blocchi di dimensione variabile, fino a 16 fotogrammi di riferimento, weighted prediction In-loop deblocking filter Metodi di codifica entropica più complessi (es. CABAC)
Telecine Deinterlacciamento CONVERSIONE DI FORMATO
Telecine Formati video Telecine Deinterlacciamento Un film su pellicola cinematografica ha 24 fps. Per essere distribuito su DVD o trasmesso in televisione, deve essere convertito a 25 o 29,97 fps interlacciati. Il processo di conversione, e il macchinario utilizzato, prendono il nome di telecine Conversione da film a video PAL/SECAM 1 Il film viene accelerato da 24 a 25 fps 2 Un fotogramma di film viene trasferito su un fotogramma video Il video risultante è progressivo Tipicamente, l accelerazione del video non è visibile. È talvolta necessario elaborare l audio
Telecine Formati video Telecine Deinterlacciamento Conversione da film a video NTSC 1 Il film viene rallentato da 24 a 23,976 fps 2 2 fotogrammi di film vengono trasferiti su 5 quadri video con uno schema detto 2:3 pulldown Tipicamente, i quadri ripetuti non vengono codificati e vengono invece inseriti dal decodificatore MPEG-2 Schema analogo: 3:2 pulldown Il procedimento descritto è reversibile: inverse telecine
Deinterlacciamento Telecine Deinterlacciamento Operazione indispensabile, ad esempio, per riprodurre un video interlacciato su un PC. Può introdurre artefatti Weave Unione dei due quadri nello stesso fotogramma. Artefatti: combing, perdita di risoluzione temporale Blend Media spaziale e temporale delle righe. Artefatti: ghosting, perdita di risoluzione verticale e temporale Bob Interpolazione spaziale delle linee mancanti. Artefatto: oscillazione verticale dell immagine Selective blend Combinazione di weave e blend, in funzione del movimento. Perdita di risoluzione temporale Motion compensated temporal interpolation Metodo migliore ma con elevato costo computazionale