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

表 2 DSP負載測試

評論