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

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 157 — #157 i 7.1. PARALLELIZZAZIONE INTERNA clock 0 1 2 3 4 5 6 7 8 9 10 11 12 RL ∅ ∅ 2 2 2 ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ RR ∅ ∅ 0 1 2 ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ i 157 Pacchetti RL RR ∅ ∅ 1 0 1 1 ∅ ∅ ∅ ∅ ∅ ∅ 4 0 4 1 4 2 4 3 4 4 ∅ ∅ ∅ ∅ RL 0 ∅ ∅ ∅ ∅ 3 3 3 3 ∅ ∅ ∅ ∅ RR 0 ∅ ∅ ∅ ∅ 0 1 2 3 ∅ ∅ ∅ ∅ Tabella 7.1: Pacchetti di coppie di pixel righe 0, 1 e 2 la seconda riempie 3 e 4, La riga 5 non esiste dato che l’immagine è larga 5. Come si può vedere, mentre i pixel del Raster Left (RL) rimangono uguali fino a quando non si passa alla sezione successiva, quelli del Raster Right (RR) subiscono una sorta di shift per andare a riempire tutte le righe. Per quanto possa sembrare strano, per effettuare il riempimento della matrice dei punteggi è necessario produrre coppie che non vengono utilizzate nella fase di scoring (tutte le coppie (∅, ∅)), tutte le coppie inutili all’inizio di una sezione della tabella servono per aspettare che le celle di north relative siano riempite, invece tutte le coppie inutili alla fine di una sezione servono a dare il tempo ad ogni riga di terminare. Nella seconda sezione come si può ben vedere una delle righe non è presente, in questo caso, nonostante non sia necessario produrre coppie, queste devono essere comunque inviate per permettere una corretta parametrizzazione della parallelizzazione, in caso contrario bisognerebbe andare a scrivere codice aggiuntivo per ogni grado di parallelizzazione e ogni risoluzione dell’immagine usata, per evitare tutto ciò, tutte le coppie, a prescindere dalla loro utilità devono essere generate. Nel caso in cui ancora non sia chiaro il modo in cui lo stream di coppie di pixel venga sfruttato dal modulo Scoring, in Fig:7.1.2 è possibile osservare come le i i i i