新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA視頻圖像的Canny算法加速器的設(shè)計(jì)

基于FPGA視頻圖像的Canny算法加速器的設(shè)計(jì)

作者: 時(shí)間:2012-07-25 來(lái)源:網(wǎng)絡(luò) 收藏

2.2 的地址產(chǎn)生
在系統(tǒng)的連續(xù)處理過(guò)程當(dāng)中,沒(méi)有專門(mén)的等待時(shí)間用來(lái)對(duì)數(shù)據(jù)進(jìn)行讀取和存儲(chǔ),這兩類(lèi)運(yùn)算都是并行進(jìn)行的。因此需要具有自動(dòng)選通的讀/寫(xiě)地址電路。對(duì)于一幅512×512圖像來(lái)說(shuō),從偏移值0開(kāi)始計(jì)數(shù),一次加1,以便于從內(nèi)存中讀一組4個(gè)像素值,把偏移地址和基地址加起來(lái)形成前一行的像素地址,把它加上512/4就形成當(dāng)前行的讀地址,再加上1 024/4就形成了下一行的讀地址。對(duì)于寫(xiě)地址來(lái)說(shuō),從偏移值512/4開(kāi)始計(jì)數(shù),一次加1形成每次的寫(xiě)地址。地址發(fā)生器的部分代碼如下:
f.JPG

3 算法加速設(shè)計(jì)
為了使得整個(gè)算法的計(jì)算速度得到提高,使算法既滿足高速要求也不會(huì)耗費(fèi)大量的硬件資源,本文對(duì)高斯濾波和梯度強(qiáng)度計(jì)算兩個(gè)任務(wù)模塊做了加速設(shè)計(jì)組合,流程圖如圖3所示。

本文引用地址:http://butianyuan.cn/article/190119.htm

g.JPG


高斯濾波器采用與Sobel加速器相似的設(shè)計(jì)原理,具有流水線的加速功能。圖中RAM是中自帶的Block RAM塊,其大小配置為僅存儲(chǔ)當(dāng)前被處理圖像的三行像素值,對(duì)于512×512的8位圖像來(lái)說(shuō)RAM應(yīng)配置為512×3×8 b。因?yàn)楦咚篂V波的存儲(chǔ)和Sobel加速器在讀取的時(shí)候都是每4個(gè)像素點(diǎn)即32 b數(shù)據(jù)來(lái)進(jìn)行,所以配置為32位寬的同時(shí)讀寫(xiě)操作的雙口RAM。
梯度運(yùn)算之后,進(jìn)行非極大值的抑制,在非極大值抑制之前需要計(jì)算梯度的方向。梯度方向的計(jì)算分為四個(gè)方向:水平、垂直、45°方向及135°方向,且每個(gè)方向上都包含兩個(gè)45°的范圍。通過(guò)Ex和Ey的比值及正負(fù)可以確定梯度方向落在上面規(guī)定的四個(gè)方向之一。判斷四個(gè)方向的具體如下:
h.JPG
中,直接做除法運(yùn)算是很復(fù)雜的過(guò)程;為了減少資源的開(kāi)銷(xiāo),把式(5)~式(8)中的除法變換成乘法,再做比較來(lái)判斷梯度的方向。對(duì)于tan 22.5°和tan 67.5°做如下處理:
i.JPG
非極大值的抑制在系統(tǒng)中通過(guò)選擇器和比較器來(lái)實(shí)現(xiàn)。根據(jù)輸入的梯度值和梯度方向,用非極大值抑制條件(式(5)~(8))和高低閾值條件對(duì)輸出的數(shù)據(jù)進(jìn)行比較選擇,強(qiáng)邊緣點(diǎn)輸出為255,弱邊緣點(diǎn)輸出為0。由于硬件流水線的特點(diǎn),邊界像素的計(jì)算結(jié)果是無(wú)效的,所以將邊界上的行列都置為0。重復(fù)以上步驟,直到整幅圖像掃描完成,最終得出邊緣圖像。

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: Canny FPGA 視頻圖像 加速器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉