logo SBA

ETD

Archivio digitale delle tesi discusse presso l’Università di Pisa

Tesi etd-04062004-164501


Tipo di tesi
Tesi di laurea vecchio ordinamento
Autore
Melani, Massimiliano
Indirizzo email
melanimassimiliano@tiscali.it
URN
etd-04062004-164501
Titolo
Studio e progettazione VLSI di uno stimatore del moto per codifica video avanzata
Dipartimento
INGEGNERIA
Corso di studi
INGEGNERIA ELETTRONICA
Relatori
relatore Saponara, Sergio
relatore Terreni, Pierangelo
relatore Prof. Fanucci, Luca
relatore Prof. Saletti, Roberto
Parole chiave
  • VLSI (Very Large Scale Integrated systems)
  • codifica video
  • progettazione di circuiti digitali
Data inizio appello
04/05/2004
Consultabilità
Completa
Riassunto
L’ H.264/MPEG-4 Advanced Video Codec (AVC) è il nuovo standard di codifica video sviluppato congiuntamente dall’ITU-T e ISO/IEC [1,2]. Mentre la struttura di base è simile a schemi di compensazione di moto ibridi di precedenti standard nuove caratteristiche migliorano l’efficienza portando però un aumento del costo di implementazione. La stessa qualità visiva dell’H.263 e MPEG-4 ASP può essere raggiunta con una riduzione in termini di bit-rate del 50%[2]. Il maggior contributo all’aumento dell’efficienza di codifica e della complessità di implementazione è dovuto alle nuove caratteristiche delle predizione di tipo Inter: mentre nei precedenti standard la stima del moto del frame corrente faceva riferimento a un solo frame precedente e a blocchi dell’immagine di dimensione 16x16-pixel, l’ H.264/AVC considera molteplici frames di riferimento e diverse dimensioni dei blocchi in esame (blocchi 16x16-pixel e le sue partizioni in 16x8, 8x16, 8x8, 8x4, 4x8 e 4x4 pixels). Sebbene la computazione richiesta da blocchi di dimensioni minori può essere ridotta considerando la sovrapposizione che si crea tra blocchi nel flusso di dati durante i calcoli [3] (ad esempio calcolando la distorsione dei blocchi più piccoli 4x4 e successivamente sommando opportunamente le distorsioni di sottoblocchi posso ottenere direttamente la distorsione per blocchi di dimensione maggiore) il costo della stima del moto nell’ H.264/AVC è ancora proibitivo. Assumendo, come nel modello C standard [2], di avere M=5 frames di riferimento, un area di ricerca di ±p=16 e un algoritmo di ricerca Full Search (FS), per ogni blocco dell’immagine, dobbiamo analizzare M*(2p+1)2 =5445 locazioni invece di (2p+1)2=1089 come nei precedenti standard. Per ogni locazione viene valutata una funzione di costo dell’errore, di solito rappresentata dalla SAD (Sum of Absolute Differences): se a(i,j) e b(i,j) sono i pixels del blocco corrente e di quello di riferimento e m, n le coordinate dei Vettori di Moto (MV) (posizione del blocco di riferimento nell’area di ricerca) la SAD per un blocco di VxH-pixel e :
(1)
Lo stimatore del moto nel H.264/AVC riceve quindi in ingresso il frame corrente e fino a 5 frames di riferimento e produce come uscite le minime SADs (SADmin) e il relativi vettori di moto (MVs) per ogni blocco 16x16 dell’immagine e per ogni sottopartizione in blocchi più piccoli (fino ai 4x4). Come esempio, implementare l’algoritmo menzionato per una sequenza video CIF (352x288 pixels) a 30 Hz richiede più di 16x109 differenze assolute e caricamento dei dati per operazioni a livello di pixel (8-bit data). Questi requisiti così elevati di calcolo e di memoria (e il conseguente consumo di potenza in realizzazioni custom hardware o software based) rappresenta una seria sfida di progettazione per sistemi elettronici con limitate risorse come dispositivi wireless.
Per risolvere i problemi sopra elencati questa tesi propone una tecnica di stima del moto che sfrutta le variazioni del segnale in ingresso per configurare dinamicamente la dimensione dell’area di ricerca e il numero di frames di riferimento per una ricerca esaustiva. Si evitano così calcoli inutili fornendo, per applicazioni che variano da bit-rate di pochi Kbps fino a molti Mbps, la stessa efficienza di compressione dell’algoritmo di FS con molteplici frames di riferimento e varie dimensioni dei blocchi ma con una notevole riduzione di complessità.
Dopo questa introduzione nel Capitolo1 viene descritto il principio di funzionamento di un encoder e vengono brevemente descritti i precedenti standard. Alla fine del capitolo viene trattato l’algoritmo di Full Search. Nel Capitolo 2 dopo una breve descrizione dell’ambiente di test, effettueremo una comparazione tra diversi modelli C del sistema: prima rapporteremo il JM21 con il JM6.1d e, osservandone un comportamento similare, estenderemo le considerazioni a cui si era giunti in[4] per il JM21 anche per il JM6.1d. In un secondo momento confronteremo questo ultimo con l’AHM20 per poi concentrare la nostra analisi sulla stima del moto che si rivela essere il componente del sistema più esteso in termini di costo computazionale, di memorizzazione e trasferimento dati. All’interno del capitolo 3 effettueremo, dopo aver descritto l’ambiente di test, l’analisi di alcuni algoritmi per stima del moto video che sono stati proposti per apportare migliorie a quello di Full Search (FS). Successivamente affronteremo uno studio di un nuovo algoritmo proposto e effettueremo delle comparazioni tra questo e alcuni presenti in letteratura. Nel capitolo 4 verrà affrontato una descrizione dedicata dell’algoritmo proposto tramite linguaggio VHDL. Verranno poi di seguito tratte le conclusioni.
File