Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 82
i
i
“LP_Tesi” — 2011/9/9 — 21:20 — page 82 — #82
i
4.5. MODULO SCORING
i
82
Algoritmo 4.22 Scoring: method II
1
2
3
4
5
6
7
8
[...]let maxi = max(cNorthWest,cNorth,cWest);
if(cNorthWest == maxi) diag.b.put(True, addr, 1);
else diag.b.put(True, addr, 0);
if(cNorth == maxi) gapNorth.b.put(True, addr, 1);
else gapNorth.b.put(True, addr, 0);
if(cWest == maxi) gapWest.b.put(True, addr, 1);
else gapWest.b.put(True, addr, 0);
score.b.put(True, addr, maxi);
9
10
11
12
13
14
15
west<=maxi;
if (addr==(size*size-1)) step<=2;
else begin
step<=0; addr<=addr+1;
end
endmethod: put
nelle matrici, la funziona di max restituisce il massimo fra i tre valori calcolati
durante la fase di individuazione del caso. Dato che potrebbero esserci più
elementi di valore massimo, ovvero che danno allineamento migliore, sono stati
posizionati tre if (r:2 Alg:4.22) per aggiornare in modo corretto il valore delle
matrici. Dato che il punteggio massimo trovato è anche il punteggio che viene
assegnato alla cella attuale, questo viene salvato in west (r:10 Alg:4.22) in modo
tale che al ciclo di clock successivo il valore precedente risulti effettivamente
quello della casella a sinistra.
Come accennato poco fa, durante questa fase avviene una sorta di ping-pong
fra la regola preRead e il metodo put. Step parte da 1, al primo passo quindi
abbiamo l’esecuzione di put, non appena questo è concluso step viene settato a
0 abilitando così la regola di preRead, come si può ben vedere la regola consiste
di due parti distinte, la loro esecuzione avviene solamente quando addr ≥ size,
questo onde evitare la lettura di indirizzi delle RAM inconsistenti. Passando
direttamente al caso in cui addr > size (r:8 Alg:4.23) possiamo notare due richieste di lettura della RAM score allo scopo di conoscere i punteggi della casella di
Diag (addr − size − 1) e quella di North (addr − size), successivamente vengono
fatte anche due richieste di lettura alle RAM dei gap. Una volta terminata, la
regola setta step a 1 facendo ricominciare il ciclo.
Questa parte di creazione della matrice dei punteggi termina solo quando l’indi-
i
i
i
i