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