Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 92
i
i
“LP_Tesi” — 2011/9/9 — 21:20 — page 92 — #92
i
4.7. MODULO TB
i
92
viene lasciata alla regola manager (r:5 Alg:4.28), la quale aspetta che i loader
siano pronti per inviare nuove righe (codizione di fire) e ad ogni segnale di
restart dal modulo Top li riavvia allo scopo di riattivare il flusso di pixel in
trasmissione. Come prima, il contatore c scandisce l’operazione, permettendole
di essere eseguita solamente dopo che la fase di inizializzazione è terminata
(c > 1).
Algoritmo 4.28 Tb: rule loader+manager
1
2
3
rule loader (loaderL.getFinNotEmpty && loaderR.getFinNotEmpty);
top.put(loaderL.get(),loaderR.get());
endrule: loader
4
5
6
7
8
9
10
rule manager(!loaderL.getReadLine && !loaderR.getReadLine && c>1);
top.manager();
if(top.restart) begin
loaderL.restart(); loaderR.restart();
end
endrule: manager
Una volta che i processor cominciano a terminare la computazione è possibile andare a prelevare il risultato sotto forma di elementi DispAddr, grazie al metodo
top.get(). È in questo momento che entra in gioco la regola getter (Alg:4.29).
La rule non ha condizioni di fire, ma ciò non implica che venga eseguita ad
ogni ciclo di clock, infatti proprio la chiamata al metodo get del modulo Top
inibisce la sua esecuzione. Come si può ben vedere da Alg:4.12 il metodo get ha
come condizione fout.notEmpty, ciò significa che se la FIFO di uscita è vuota,
il metodo non può entrare in esecuzione, e così come il metodo anche tutte le
regole che lo chiamano (r:3 Alg:4.29).
Prima o poi la FIFO si comincerà a riempire di elementi DispAddr, quindi la
regola entrerà in azione prelevando valori da analizzare. Se la disparità dell’iesimo elemento è pari a 0 c’è poco da fare, l’i-esimo pixel della riga (sia della
mappa di disparità che quella delle occlusioni) diventerà nero, se invece la disparità è diversa da 0, si analizza il colore e nell’i-esimo pixel della riga della
mappa delle occlusioni si setta il canale corrispondente a 255, mentre nell’iesimo pixel della riga della mappa di disparità si setta semplicemente il valore
con quello ricevuto, tranne nel caso in cui si tratti di un occlusione, ovvero color
= GREEN (r:15 Alg:4.29).
i
i
i
i