HLS圖像處理系列——前言

HLS是Xilinx新推出的高層次綜合工具,能夠將C語言綜合成硬件電路。相對於Verilog實現硬件圖像處理模塊,它的開發過程更簡便,方便地支持浮點運算,並且封裝了多種圖像處理函數(如直方圖均衡,窗運算等),以及數學運算函數(三角函數,開方等)。

博主學習並使用HLS工具一年有餘,主要是用HLS工具實現一些圖像處理功能,把他們封裝成IP核,然後放在圖像通路中作爲圖像處理模塊。HLS工具提供了一個類似opencv的函數庫,用戶可以直接調用其中的圖像處理函數。以個人經驗來談,使用HLS工具來進行圖像處理的開發,需要這麼幾個前提:

1.開發人員需要有硬件的理論基礎,比如需要熟悉流水線結構。最好有過較豐富的FPGA設計經驗。

2.HLS官方文檔ug871、ug902至少粗略讀過一遍,瞭解其開發流程,優化指令作用。

3.已經在板卡上實現了視頻源至DDR的存儲通路。因爲HLS生成的IP通常是基於AXI-Stream接口,之所以用AXI-stream接口,一個重要的原因是通信速率很快。圖像存儲至DDR的操作由VDMA這個IP進行管理,而這個IP只支持AXI-Stream接口。因此爲了使用HLS生成的IP核,需要一個DDR存儲方式的圖像通路。

使用HLS,也可以根據需要自己構建函數。比如,我看到HLS提供的圖像函數庫中,並沒有RGB轉HSV這個函數,因此我想自己寫一個此功能的函數。個人建議是:先要充分了解這個圖像處理算法,然後仔細研究HLS工具提供的圖像處理函數的底層源碼,尤其是那些優化指令;最後再自己仿照HLS提供的圖像函數形式,構建RGB轉HSV的函數。綜合完畢後,需要用HLS自帶的分析工具進行狀態的分析。分析完畢後,測試、打包生成IP。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章