FPGA在圖像處理中的哪一步起到重要作用?

圖像處理要1採集圖像2用演算法對圖像進行分析、計算。那FPAG的作用體現在哪一步呢?要是用在第二步,如果我想要用不同的處理演算法,是不是要對FPGA重新進行VHDL的編程呢?


在項目中使用FPGA,本質上是為了追求更高的處理速度。通過HDL設計專用電路並在FPGA運行,有可能實現CPU或者DSP架構達不到的數據吞吐量。

問題中「採集圖像」中的圖像捕捉應該是攝像頭之類的感測器的工作。廣義的採集圖像可能涉及到將捕捉的圖像高速編碼並發送出去,可以考慮使用FPGA。

「用演算法對圖像進行分析、計算」,則是FPGA的強項。但用HDL語言實現複雜演算法較CPU或DSP平台常用的C語言代價較高。

要改變FPGA上的電路結構,需要寫新的HDL並對其重新編程。


都挺重要。

1、圖像採集。涉及到大量的數據存儲、前處理、傳輸,對帶寬要求很高。這一塊如果沒做好,一定程度上也會限制圖像處理功能。除去一些簡單演算法可以實現實時處理圖像數據流外,大部分圖像處理演算法需要大量的存儲帶寬作保障。

2、演算法。之前做過FPGA的視頻編碼(MPEG-2)、視頻預處理(反交錯、縮放、雙邊濾波。。。),不同的演算法,現在PCIE卡,不同的HDL代碼實現,C語言不也是要照樣重新搞嘛。。。還有,一般的圖像處理都會涉及到大量的四則運算吧,如果需要同時搞多路,再要求實時性神馬的,FPGA確實是個不錯的選擇。

======================================

@bug moving 視頻圖像編碼、處理這一塊我也正在學習中,僅就目前知道的說說,希望能幫到你。。。

1、圖像演算法方面。岡薩雷斯的數字圖像處理,很基礎。對於了解圖像處理的一些基本概念還是很有幫助的。

2、Design for Embedded Image Processing on FPGAs,自行google,其中有演算法介紹,也有演算法在FPGA中實現時的一些架構分析、設計實現方面的內容,還不錯。

至於工程案例,可以先找一個點,比如圖像縮放?邊緣檢測啥的。。。這些演算法都有開源代碼,剛開始可以先理解下演算法,然後可以寫個C/C++程序驗證下,再HDL實現,Modelsim模擬,上板調試、驗證通過,Congratulations!

PS:如果要在FPGA下搞圖像演算法實現,C環境的下演算法驗證,我覺得是不可少的。方便模擬、調試、定位問題、解決問題。。。


贊同@毛寧元 的答案。

1.在圖像採集中主要用於介面的適配,包括兩個方面,一是將輸出的數據介面轉換成標準的或者後端晶元可以接受的格式,二是如果速度太快後端無法接收的還需要fpga做緩存然後傳給後端的晶元或設備。

2.在圖像處理中主要用於對實時性要求較高的領域,主要是asic不提供但是實際中需要用的的功能。


@markHit, 能不能給我建議些FPGA 圖像演算法方面的資料,最好是具體工程案例,全部的代碼,開發流程。謝謝


推薦閱讀:

是否可以用fpga搭建一個可以用的gpu模型?
fpga開發的疑問?(關於高層次綜合)
怎麼才算是應用層開發和底層開發,調用系統API算是應用層開發嗎?

TAG:圖像處理 | 硬體 | 嵌入式系統 | 現場可編輯邏輯門陣列FPGA |