新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 分布式多視角目標跟蹤算法在OMAP3平臺上的實現(xiàn)與優(yōu)化

分布式多視角目標跟蹤算法在OMAP3平臺上的實現(xiàn)與優(yōu)化

作者: 時間:2011-05-21 來源:電子產(chǎn)品世界 收藏

  4.2 軟件優(yōu)化

本文引用地址:http://butianyuan.cn/article/119685.htm

  軟件優(yōu)化就是對程序代碼進行優(yōu)化。只在C語言的層面上進行優(yōu)化有利于保持程序良好的移植性。不管是ARM上的C程序,還是DSP上的C程序,其優(yōu)化的一般方法都具有相似性。

  A.dsplib的使用:TI公司為程序員提供了一個高效的函數(shù)庫dsplib,這個函數(shù)庫實現(xiàn)了很多常用運算,如相關(guān)、乘加、FFT等。通過使用dsplib,一方面減少了算法優(yōu)化的時間和工作量,另一方面又能到達與匯編優(yōu)化相近的效果。

  B.循環(huán)內(nèi)部優(yōu)化及循環(huán)展開:內(nèi)循環(huán)往往是程序運行效率低下的瓶頸,通過優(yōu)化內(nèi)循環(huán)代碼,可以大大提高代碼的運行效率。一方面,應盡量精簡內(nèi)循環(huán)的代碼,合理安排內(nèi)循環(huán)存儲器的操作;另一方面,通過循環(huán)展開的方法提高代碼運行的并行程度,充分發(fā)揮C64+DSP單周期多指令的性能。

  C.提高存儲器操作的并行性:通過在函數(shù)聲明中使用關(guān)鍵字const和restrict等,并合理安排存儲器的操作,可以消除存儲器的關(guān)聯(lián)性,使串行的存取操作變成并行的存取操作,從而提高程序運行速度。

  D.浮點運算轉(zhuǎn)定點運算:C64+DSP核是一款定點DSP處理器,不支持硬件的浮點運算,只支持軟件的浮點運算。為了提高運算速度,需要盡可能把浮點運算轉(zhuǎn)化為定點運算。

  E.intrinsics函數(shù)(內(nèi)聯(lián)函數(shù))的使用: instrinsics是直接映射為內(nèi)聯(lián)的C64x+指令的特殊函數(shù),使用instrinsics函數(shù)相當于在一定程度上做匯編優(yōu)化,可以大大提高了代碼的執(zhí)行效率。

  5.實現(xiàn)的性能與結(jié)果

  5.1 跟蹤效果演示

  圖3所示為遮擋情況下跟蹤情況。本系統(tǒng)可以抗各種類型遮擋,包括短期遮擋,長遮擋。此外,本系統(tǒng)為分布式跟蹤,也就是說部分節(jié)點的失效并不會影響我們最終的跟蹤效果,節(jié)點的失效可以是網(wǎng)絡的出錯或者節(jié)點斷電。在圖4中從左到右有三個視角,每個視角內(nèi)的白框為當前視角跟蹤結(jié)果,藍框為其他視角的跟蹤結(jié)果在本地的投影。視角內(nèi)的綠色點為粒子位置。

  一幀視頻消耗的DSP周期數(shù)

  為了測量優(yōu)化效果,我們使用CCS對跟蹤算法進行了離線仿真。通過使用Clock工具和斷點配合,我們可以精確地得到整個程序處理一整幀視頻數(shù)據(jù)及程序內(nèi)各函數(shù)需要的時鐘周期數(shù)。我們選取了其中一個攝像頭的某一幀視頻,對跟蹤算法所消耗的時鐘周期數(shù)進行測量。表1顯示了優(yōu)化前和優(yōu)化后這幀視頻所消耗的DSP時鐘周期數(shù)。表1只對DSP上運行的跟蹤算法的主流程進行測量,其他的如視頻采集和預處理等不在測量范圍中。

  從表中可以發(fā)現(xiàn),在小模板的情況下,優(yōu)化比率并不高,這是由于粒子濾波中產(chǎn)生粒子的開銷不隨模板的變化而變化。在模板較大的情況下,優(yōu)化比率迅速上升,因為起主導作用的是SSIM計算函數(shù)和插值函數(shù)。特別是SSIM計算函數(shù),其優(yōu)化比率隨模板大小增加而迅速上升。在63×63大小的模板下,SSIM計算函數(shù)優(yōu)化比率為117.6倍,而插值函數(shù)的優(yōu)化比率為32.9倍,插值函數(shù)的優(yōu)化比率基本不隨模板的大小而變化。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉