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