logo SBA

ETD

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

Tesi etd-07022014-124232


Tipo di tesi
Tesi di laurea magistrale
Autore
LUONGO, DONATO
URN
etd-07022014-124232
Titolo
Sviluppo di un sistema di compressione video Motion Jpeg su FPGA
Dipartimento
INGEGNERIA DELL'INFORMAZIONE
Corso di studi
INGEGNERIA ELETTRONICA
Relatori
tutor Ing. Caputo, Pierluigi
relatore Prof. Fanucci, Luca
Parole chiave
  • Compressione video
  • FPGA
  • Motion Jpeg
Data inizio appello
23/07/2014
Consultabilità
Completa
Riassunto
Lo sviluppo di sistemi che gestiscono e manipolano segnali video è in continuo aumento. Molti di questi sistemi richiedono velocità di elaborazione e bassa latenza, per questo vengono preferite piattaforme hardware programmabili come FPGA invece di CPU general purpose. Questo perché si possono realizzare applicazioni su FPGA in cui tutte le risorse sono ottimizzate per un processo.

In questo lavoro di tesi è stata realizzata un'applicazione specifica su FPGA per la manipolazione di un formato video specifico. Nel dettaglio l'obbiettivo raggiunto era di realizzare una compressore video che avesse una latenza minore di 2 ms, che mantenesse una buona qualità del video e che producesse un segnale solido ai disturbi. Il formato del video da comprimere è un PAL YCbCr 4:2:2 interlacciato 8 bit per campione con un bitrate pari a 21\: MB/s
.

Il progetto è stato realizzato in linguaggio VHDL utilizzando il software di Altera Quartus II per la programmazione e per le simulazioni ModelSim.

Il processo di compressione scelto per realizzare l'applicazione, tra le varie tecniche esistenti, è il Motion JPEG. Questa tecnica effettua una compressione JPEG su ogni fotogramma del video. In questo modo si ottengono basse latenze, vista la limitata attività computazionale richiesta dalla compressione JPEG. In più ogni fotogramma è elaborato indipendentemente degli altri, questo porta ad una maggiore robustezza ai disturbi in trasmissione perché limita la propagazione dell'errore alla singola immagine in cui avviene.

Di contro un video Motion JPEG ha un bitrate più elevato rispetto ad uno standard MPEG, valori che però sono compatibili con le caratteristiche di trasmissione hardware della scheda di elaborazione video su cui è presente la FPGA.

Il segnale video analogico proviene da una telecamera PAL ed è digitalizzato da un decoder video prima di arrivare sui pin della FPGA.

Nel processo Motion JPEG le componenti del video sono suddivise in matrici 8x8, ognuna della quali viene sottoposta a compressione. Sfruttando questa caratteristica, occorre memorizzare solamente 8 righe del video per iniziare l'elaborazione. Questo aspetto aiuta a mantenere bassa la latenza.

In questa versione del progetto è stato scelto di agire solamente sulle matrici 8x8 della componente Y del video, cioè di comprimere il video come se fosse in bianco e nero.

Il sistema realizzato è composto da 2 macro blocchi:

• lo Stadio d'Ingresso che si occupa di ordinare in matrici 8x8 i campioni provenienti dal decoder e di inviarle una ad una al modulo che le comprime.

• il Compressore che implementa il processo JPEG su ogni matrice 8x8.

Come detto precedentemente, occorre memorizzate 8 righe del video (costituite da 90 matrici della componente Y) per iniziare la compressione. Iniziata la compressione delle 8 righe appena memorizzate, lo Stadio d'Ingresso si occupa di memorizzare le successive 8 righe, le quali verranno compresse finito il processo sulle prime.

La frequenza di clock del sistema è stata scelta in modo che il tempo di compressione di 8 righe sia minore del tempo di memorizzazione delle 8 righe successive.

L'intero sistema è stato testato con il simulatore ModelSim ricreando diverse condizioni di funzionamento. I risultati dei test funzionali sono stati positivi.

Per testare fisicamente il sistema è stato utilizzato un tool fornito da Altera, SignalTap, con il quale si possono visualizzare segnali e registri interni al sistema altrimenti impossibili da raggiungere fisicamente. Il test effettuato consiste nel comprimere un fotogramma memorizzato sulla FPGA e di valutarne la qualità. Con SignalTap sono stati prelevati i risultati della compressione del Frame e decompressi con Matlab. L'immagine risultato della compressione è stata confrontata sia con l'immagine originale che con la stessa immagine ma compressa da Matlab.

Per i fotogrammi compressi con il sistema è stata valutata una qualità che è pari ad una compressione JPEG del 50% ed un fattore di compressione che varia intorno a 1:10.

Per valutare il bitrate del sistema realizzato è stato compresso il flusso video proveniente dalla telecamera PAL ed è risultato intorno a 8\: Mbit/s
.

La stima della latenza massima è stata valuta in \approx1ms
ed è relativa ad 8 righe, più precisamente è il tempo massimo che intercorre tra il primo pixel della prima riga in ingresso e l'ultimo pixel compresso dell'ottava riga in uscita.

Il sistema realizzato più essere utilizzato in trasmissioni video per limitare la banda occupata e in cui è richiesta una bassa latenza.

Ogni fotogramma compresso è facilmente accessibile e quindi il sistema è adatto ad applicazioni di analisi e di editing.

L'adozione di una serie di scelte peculiari all'interno del progetto è giustificata dal fatto che nelle specifiche non è richiesto che il formato del video compresso sia compatibile con quello di un qualsiasi produttore, in quanto anche la decodifica è pensata per essere realizzata su FPGA con un sistema custom.

In ambito militare, questo compressore può essere utile in sistemi di tiro, in cui l'arma da fuoco si trova distante dalla postazione di mira e quindi il video viene compresso e trasmesso velocemente via cavo mantenendo una buona qualità.

Un'altra applicazione realizzabile con il sistema oggetto della tesi è quella di poter criptare, oltre che comprimere, il video così da evitare “sniffing”.
File