Tesi Robotica Analisi, progettazione e implementazione... | Page 119

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 119 — #119 i 6.1. MIGLIORAMENTI i 119 Figura 6.1.1: Dipendenza fra le celle della matrice Score rosso) automaticamente la casella (i − 1, j − 1) diventa inutile e può essere cancellata dato che è servita al suo scopo. Questo comporta un enorme liberamento di memoria, infatti in ogni istante dell’esecuzione è necessario conservare solo n elementi (da (i−1, j−1) a (i−1, j)) anziché n × n, modificando le equazioni della matrice dei punteggi di prima si ottiene: ScoreRAM = ( log(255 ∗ n) × n) bit T ot = 2(24 × n) + ( log(255 ∗ n) × n) + 3(1 × n × n) Come è facile immaginare a questo punto le risorse richieste sono diminuite drasticamente portando ai risultati di Tab:6.4. Spazio necessario (bit) Spazio necessario (Byte) Spazio necessario (KByte) 160 × 120 87.040 10.880 11 320 × 240 328.000 41.000 41 450 × 375 636.750 79.594 78 640 × 480 1.271.040 158.880 156 Tabella 6.4: Primi risultati soddisfacenti Pur essendo dei buoni risultati quelli appena ottenuti, è possibile fare di meglio. Come detto in Sez:2.2.3 tutti i sotto percorsi trovati dal Backtrack nella triangolare superiore della matrice sono inequivocabilmente errati perché nessun oggetto può mai andare a finire alle spalle dell’obbiettivo della telecamera, da questo ne segue che quasi metà della RAM score, così come quasi metà di gapNorth, gapWest e diag è completamente inutile, o comunque qualsiasi risultato in quella posizione è da considerarsi errato. Per questo motivo è stato possibile rimuovere le triangolari superiori da tutte le BRAM, portando le dimensioni delle matrici da n×n a (n×n)/2+n/2, ovvero metà degli elementi più metà di un’altra riga per sopperire al fatto che la diagonale è rimasta integra. i i i i