Tesi Robotica Analisi, progettazione e implementazione... | Page 117
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 117 — #117
i
6.1. MIGLIORAMENTI
i
117
ottenendo così i risultati in Tab:6.2 per le varie dimensioni (da notare che la
larghezza verticale non influisce minimamente sullo spazio utilizzato).
Spazio necessario (bit)
Spazio necessario (Byte)
Spazio necessario (KByte)
160 × 120
903.680
112.960
111
320 × 240
3.599.360
449.920
440
450 × 375
7.109.100
888.638
868
640 × 480
14.366.720
1.795.840
1.754
Tabella 6.2: Dimensioni delle RAM in bit nella Prima Release
Gli spazi richiesti sono veramente eccessivi per gli FPGA di medio/piccolo dimensione, come se non bastasse questa è la quantità di memoria richiesta per singolo modulo Processor, infatti istanziandone due la memoria richiesta aumenta
del doppio.
Per spiegare questi risultati è necessario pensare al fatto che la prima release è
stata solo una versione del progetto servita per dimostrare la fattibilità dell’algoritmo su FPGA, ed è per questo motivo che nella seconda versione si è deciso
di migliorarne le performance.
A questo punto bisogna cominciare a chiedersi dove è possibile modificare il
codice per ottenere migliori risultati, una cosa che salta subito all’occhio è che la
RAM Score utilizzi elementi grandi come interi a 32 bit, non c’è nessuno motivo
in hardware per preferire queste dimensioni ad altre, per lo più la grandezza
massima dei numeri che finiscono in score è calcolabile a priori, sapendo quanto
al massimo può essere grande un numero è possibile quindi sapere in anticipo
quanto grande deve essere un elemento della RAM.
Prima di tutto si rende necessario identificare il caso in cui si ottiene il punteggio massimo all’interno di score, per forza di cose questo punteggio si trova
nell’elemento più in basso a destra dato che proviene dalla accumulazione dei
punteggi precedenti, ma quanto può essere grande questo elemento?
Tutto dipende dalle dimensioni dell’immagine, più è grande più il numero cresce,
ma solo con un input particolare può raggiungere il massimo, questo input
consiste nel dare all’algoritmo una riga bianca e una nera, cioè una situazione
di totale mismatch. In questo caso ad ogni elemento della tabella viene aggiunto
a quello della casella precedente il valore 255, quindi più celle nella matrice ci
sono e più grande diventa questo elemento, per questi motivi è possibile dire
che per ogni punteggio p presente nella matrice score vale: p < 255 ∗ n.
i
i
i
i