視頻跟蹤算法在Davinci SOC上的實現與優化
* 內聯函數的使用
本文引用地址:http://www.j9360.com/article/269186.htmC64x+編譯器提供的內聯函數可快速優化C代碼。內聯函數是直接映射為內聯的C64x+指令的特殊函數,內聯函數用前下滑線(_)來表示,使用時同調用普通函數一樣使用它。我們在優化過程中,使用了許多內聯函數,如_round()等,大大提高了代碼的執行效率。
* 循環展開
由于for技術循環需要打斷C64x+ DSP內部的軟件流水線,而頻繁的for循環會大大降低DSP的處理效率,所以我們在優化過程中,將部分for循環進行了展開,以代碼增加為代價提高了代碼的執行效率。通過上述方法,可將代碼的處理效率提高3-5倍。
測試結果
為了獲得視頻跟蹤算法Codec運行所需要的DSP時鐘周期數,進而估計出優化后的算法代碼是否已經滿足實時跟蹤的需要,我們使用CCStudio v3.3對同一測試序列,同一起始目標位置,不同大小模板的情況進行了離線仿真。
表 1 視頻跟蹤算法優化結果

表 2 DSP負載測試

評論