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