Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 93
i
i
“LP_Tesi” — 2011/9/9 — 21:20 — page 93 — #93
i
4.7. MODULO TB
i
93
Algoritmo 4.29 Tb: rule getter
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
rule getter;
Bit#(24) pixelR = 0;
if(top.get().disp != 0) begin
if(top.get().color==RED) begin
pixelR = extend(8’hFF);
end else if(top.get().color==GREEN) begin
pixelR = extend(8’hFF) << 8;
end else if(top.get().color==BLUE) begin
pixelR = extend(8’hFF) << 16;
end
end
$fwriteb(result, "%0c",pack(pixelR)[7:0]);
$fwriteb(result, "%0c",pack(pixelR)[15:8]);
$fwriteb(result, "%0c",pack(pixelR)[23:16]);
if(top.get().color==RED || top.get().color==BLUE)
$fwriteb(disparity, "%0c",top.get().disp);
else
$fwriteb(disparity, "%0c",0);
endrule: getter
Esempio: sia dispA un DispAddr con questo valore {disp: 10, color: BLUE,
addr: i}, allora l’i-esimo pixel della riga della mappa di disparità avrà valore
10 = 0000 1010
dato che ad ogni pixel sono associati 8 Bit, mentre l’i-simo pixel della riga della
mappa delle occlusioni avrà valore:
0 0 255 = 0000 0000 - 0000 0000 - 1111 1111
dato che ad ogni pixel è associato una tripla di elementi da 8 Bit ciascuno (24
Bit) utilizzando così il formato RGB.
i
i
i
i