La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ARCES University of Bologna Proposte di tesina Mario Toma.

Presentazioni simili


Presentazione sul tema: "ARCES University of Bologna Proposte di tesina Mario Toma."— Transcript della presentazione:

1 ARCES University of Bologna Proposte di tesina Mario Toma

2 ARCES University of Bologna Algoritmo MPEG YUV Stima di Moto FDCT Predizione Quant. Quant. Inv. RLE-VLC - StreamMPEG IDCT Trasformata coseno discreta (decorrelazione) Frame (luminanza + crominanza) Quantizzazione (molti campioni troncati a zero) Codifica entropica + run-length (riduzione ridondanza)

3 ARCES University of Bologna Algoritmi per la tesina FDCT/IDCT –trasformazione di un segnale in due dimensioni nel dominio della frequenza –energia concentrata in pochi campioni –concettualmente simile a trasformata di Fourier discreta Codifica entropica/run-length –forte compressione grazie alleliminazione della ridondanza –Bitstream in ingresso ha molti zeri codifica run-length –Codifica entropica simile ad Huffman

4 ARCES University of Bologna Trasformata Coseno Discreta f j = x k cos [ ( /n) j (k+1/2) ] Complessità O(n 2 ) i fattori c jk = cos [ ( /n) j (k+1/2) ] sono costanti per n fissato (MPEG n = 8) per n costante la DCT si riduce ad una sommatoria di prodotti per costante: f j = x k c jk k=0 n-1 k=0

5 ARCES University of Bologna 2D-DCT f pq = x ij cos[( /N) p(i+1/2)] cos[( /M) q(j+1/2)] Trasformazione della matrice di pixel x ij nella matrice f pq la doppia sommatoria si può separare nel prodotto di due 1D-DCT (caso precedente) si computa prima la 1D-DCT sulle M colonne, e sul risultato si computa la 1D-DCT sulle N righe N-1 i=0j=0 M-1

6 ARCES University of Bologna DCT: Calcolo ottimizzato I termini moltiplicativi costanti: c jk = cos [ ( /n) j (k+1/2) ] presentano delle proprietà di simmetria che permettono di semplificare i calcoli. Esempio per n=8: Implementazione diretta: 64 moltiplicazioni, 56 addizioni Algoritmo di Loeffler: 11 moltiplicazioni e 29 addizioni

7 ARCES University of Bologna Calcolo della DCT sul PiCoGA La DCT si riduce ad un calcolo di somme e moltiplicazioni per costante. Problema: il PiCoGA non implementa le moltiplicazioni in modo efficiente Soluzioni: – sviluppare il prodotto per costante attraverso operazioni di somma e shift – sfruttare laritmetica distribuita

8 ARCES University of Bologna Aritmetica Distribuita (DA) Utilizzata nel calcolo di espressioni del tipo : y= A k x k dove le grandezze A k sono costanti. Se x k è rappresentato in complemento a due, e nellipotesi che | x k | < 1 x k = -b k0 + b kn 2 -n y= A k [ -b k0 + b kn 2 -n ] y = [ A k b kn ] 2 -n + A k (-b k0 ) k=1 N-1 k=1 N-1 n=1 k=1 K K K K

9 ARCES University of Bologna Aritmetica Distribuita Il termine individuato precedentemente: C n = A k b kn può assumere solo 2 K possibili valori in quanto b kn sono K variabili binarie. Lespressione sopra riportata può essere quindi pre-calcolata e memorizzata in una ROM, indirizzata dal vettore di K bit b kn. C n = R(b kn ) k=1 K

10 ARCES University of Bologna Aritmetica Distribuita Quindi, utilizzando le ROM: y = R 1 (b kn ) 2 -n + R 2 (b k0 ) Rimangono da eseguire N accumulazioni e shift. Tale approccio può essere sviluppato ulteriormente al fine di aumentare lo speed-up e ridurre le risorse hardware Nell MPEG, con N=8 (pixel rappresentati con 8 bit), sono necessarie delle ROM con 256 locazioni da 8 bit ed un accumulatore Implementabile sul PiCoGA N-1 n=1

11 ARCES University of Bologna Attività Tesina Studiare il materiale a disposizione riguardante una implementazione ottimizzata della DCT Assimilare le basi dellaritmetica distribuita Ideare uno schema che sfrutta laritmetica distribuita per il calcolo della DCT, mappabile su PiCoGA Implementazione in Griffy-C e simulazione dello schema ideato

12 ARCES University of Bologna Codifica entropica + run-length (MPEG) A valle della quantizzazione i simboli presentano le seguenti caratteristiche: lunghe sequenze di zeri (termini di minore energia troncati a zero) – Vantaggi da codici run-length distribuzione delle frequenze di occorrenza dei simboli non uniforme –Vantaggi da codifica a lunghezza variabile tipo Huffman LMPEG prevede una codifica a lunghezza variabile che contiene entrambe le caratteristiche

13 ARCES University of Bologna Variable Length Coding (VLC) Si considerano le coppie (symb_in,run-length), dove run-length è il numero di zeri che precede il simbolo in ingresso symb_in. Ad ogni coppia si associa un simbolo in uscita, symb_out avente un numero di bit variabile Il numero di bit di symb_out dipende dalla probabilità di occorrenza della coppia (symb_in,run-length). Una tabella associativa permette di ottenere symb_out dalla coppia (symb_in,run-length). Non tutte le possibili coppie (symb_in,run-length) hanno delle entry nella tabella associativa. In caso di entry assente, symb_out coincide con la coppia (symb_in,run-length) preceduta da una opportuna sequenza di escape (per evitare confusioni con altri simboli del codice) La tabella associativa è stabilita dal trasmettitore (può essere predefinita o variabile dinamicamente) e viene trasmessa al ricevitore insieme al bitstream.

14 ARCES University of Bologna VLC: Implementazione su DSP La tabella associativa è implementata attraverso una matrice indirizzata dalla coppia (symb_in,run-length) Matrice suddivisa in varie sottomatrici solo alcune coppie (symb_in,run-length) sono indirizzi validi La matrice contiene le coppie (symb_out,nbit), dove nbit è il numero di bit del simbolo in uscita symb_out. Una procedura provvede a scrivere gli nbit di symb_out sul bitstream in uscita

15 ARCES University of Bologna VLC: Implementazione su XiRisc La tabella associativa può essere implementata attraverso le LUT del PiCoGA Svantaggio: –occorre un meccanismo per modificare a run- time il contenuto delle LUT Vantaggio: –il PiCoGA funge da cache dedicata con un risparmio nel consumo di potenza

16 ARCES University of Bologna VLC: implementazione su XiRisc La procedura per scrivere nbit sul bitstream è molto inefficiente (operazioni bit-level) PiCoGA utilizzabile per implementare queste operazioni bit-level Possibilità di integrare in ununica pga-op sia laccesso in tabella che la generazione del bitstrea, im uscita

17 ARCES University of Bologna Proposta di tesina 1.Implementazione della tabella associativa sul PiCoGA con meccanismo per la programmazione run-time delle LUT 2.Definizione della pga-op per la gestione del bitstream in uscita 3.Versione duale delle due tesine anche per il decoder VLC


Scaricare ppt "ARCES University of Bologna Proposte di tesina Mario Toma."

Presentazioni simili


Annunci Google