算法實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)方案
由前面所述可知,Sobel的濾波函數(shù)為
H=(Q0+2Q3+Q6)-(Q2+2Q5+Q8);V=(Q0+2Q1+Q2)—(Q6+2Q7+Q8)
DR=(Q1+2Q0+Q3)-(Q5+2QS+Q7);DL=(Q1+2Q2+Q5)—(Q3+2Q6+Q7)
Magnitude=Max(H,V, DR,DL)
為了減少設(shè)計(jì)的復(fù)雜度,上面式子中的乘法運(yùn)算可以改寫成加法運(yùn)算:
H=(Q0+Q3+Q3+Q6)-(Q2+Q5十Q5+Q8);V=(Q0+Q1+Q1+Q2)_(Q6+Q7+Q7+Q8)
DR=(Q1+Q0+Q0+Q3)_(Q5+Q8+Q8+Q7);DL=(Q1+Q2+Q2+Q5)-(Q3+Q6+Q6+Q7)
對(duì)于以上數(shù)據(jù)的處理,我們先估算分別使用單片機(jī)、DSP、CPLD/FPGA所需的時(shí)間。
如果使用12 MB的單片機(jī),加法運(yùn)算需要執(zhí)行2次,加法的中間結(jié)果寄存20次,大小比較三次,比較中間結(jié)果寄存2次,51單片機(jī)內(nèi)的加法需要兩個(gè)指令周期,比較需要兩個(gè)指令周期。這樣,完成一次Sobel濾波操作需要的時(shí)間至少為:(24×2+20+2×3+2)×1 us=72uS°對(duì)于一幅600×800像素的圖像,總共的時(shí)間為:600×800×72uS=32s。
若使用40 MB六級(jí)流水的DSP,它們的處理時(shí)間大概為:32s/24=1.4s。
如果使用CPLD/FPGA設(shè)計(jì),首先,H、V、DR、DL四個(gè)方向的濾波可以全部并行,同時(shí),每一個(gè)方向的濾波函數(shù)可以采用一級(jí)四路并行加法器與一級(jí)雙路并行加法器串連。這樣一來(lái),算上兩級(jí)串行比較器,實(shí)際上整個(gè)系統(tǒng)只有四級(jí)串行結(jié)構(gòu),假設(shè)使用50 M的系統(tǒng)時(shí)鐘,則處理完一個(gè)像素點(diǎn)的時(shí)間為4×1/(50 M)=80 ns,處理完一幀圖像的時(shí)間為800×600×80 ns=38.4 ms,結(jié)果處理速度比DSP高了大約兩個(gè)數(shù)量級(jí)。
從上可以看出,使用CPLD`FPGA設(shè)計(jì)有關(guān)圖像處理模塊,對(duì)整個(gè)系統(tǒng)速度的改善是非常明顯的。
歡迎轉(zhuǎn)載,信息來(lái)源維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)
來(lái)源:ks990次





