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

表 2 DSP負(fù)載測(cè)試

評(píng)論