Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 71
i
i
“LP_Tesi” — 2011/9/9 — 21:20 — page 71 — #71
i
4.3. MODULO PROCESSOR
i
71
Algoritmo 4.15 Processor: method
1
2
3
method Action put (Pixel left, Pixel right);
rasterL.write(left); rasterR.write(right);
endmethod: put
4
5
6
7
method Action deque;
disparity.deq();
endmethod: deque
8
9
10
11
method DispAddr get = disparity.get;
method Bool getReady = disparity.getReady;
method Bool getNotEmpty = disparity.getFoutNotEmpty;
Venendo alla descrizione delle rule possiamo notare la loro semplicità ad una
prima occhiata, consistono semplicemente nel collegare i raster con il modulo
Scoring e il modulo Scoring con quello Disparity.
Il tutto è reso estremamente asincrono grazie alla gestione delle condizioni di
fire tramite i segnali. Il modulo Scoring non può essere riempito fino a quando i
raster non mettono qualche elemento nella FIFO di uscita, quello Disparity non
riceve niente fino a quando Scoring non inizia a elaborare i primi risultati.
Algoritmo 4.16 Processor: rule
1
2
3
4
rule r_1 (rasterL.getFoutNotEmpty && rasterR.getFoutNotEmpty &&
scoring.getStep==1);
scoring.put(rasterL.get(),rasterR.get());
endrule: r_1
5
6
7
8
rule r_2 (scoring.notEmpty);
disparity.put(scoring.get()); scoring.deque();
endrule: r_2
i
i
i
i