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