圖像算法移植到DSP及其優化步驟

   當你需要把已經寫好的算法,移植到你的DSP開發板上並很好的跑起來,需要做哪些工作呢?

下面我分兩部分來講,第一分部是移植,第二部分爲算法優化

移植:

1)如果你的算法是基本opencv這樣的基本上開發的,你需要脫離opencv的環境。

2)如果你的算法是C++語言,請你改成標準的C語言。雖然DSP的開發環境是支持C++的,但是不建議你這麼做。

3)修改你算法的內存分配,儘量內存一次分配好,DSP在算法不斷的申請和釋放時會有隱患。優先使用靜態數組,會減輕很多工作量。

4)CCS下建立工程,來調試你的算法,內存分配函數需要使用TI提供的函數。如果你的算法能夠長期穩定的運行,那麼恭喜你,你的算法移植就完成了。

優化:

算法優化,需要你能懂算法,也懂DSP。如果你只會寫DSP程序,而不會算法,這對整個產品來說,是不能達到最優的。有些公司怕算法泄密,給優化人員一段或幾段程序讓其優化。我覺得這樣做是很不合理的。除非你自己能控制大局,精通優化,這樣纔可行。


1)你需要對算法原理做一個深刻苦的理解,閱讀相關的文章。

2)對你拿到的算法做全方位的熟悉。

3)做好上面的準備工作後,你要對算法的結構做重新的整理。依據DSP的特點,比如內存的分佈。算法結構調整完成後,你的算法在DSP上速度應該有一個明顯的提高了。

4)結構調整完成後,找到算法中比較費時的部分。確定我們需要優化的重點,這部分內容多是每張圖像都要處理一次或多次的部分。對於算法啓動時初始化部分的內容,一般不需要優化。

5)確定優化內容後,你首先考慮從語言結構上去做優化,這個時候應該還是C語言的。我不建議大家用TI提供的在C語言中使用優化嵌入的C庫函數。

6)你把需要優化的函數改寫爲線性彙編或彙編函數。不斷的調整軟件流水,提高速率。


這個整個移植優化的工作就基本上做完了,其實實際工作中,移植優化的工作量往往會比較大,要不斷的反覆,找更好的方法。移植優化跟算法開發一樣,是個細緻的活。需要靜下心來,仔細研究,歡迎大家一起來探討。


本文出自 “智能視頻分析方案” 博客,請務必保留此出處http://junzhuivs.blog.51cto.com/7446454/1249404


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