基于DSP的實(shí)時(shí)圖像處理系統(tǒng)
(4)選取周圍的四個(gè)點(diǎn)作為匹配點(diǎn),步長改為1,如圖5中所示的空心點(diǎn)。選取SAD最小的點(diǎn)作為最終目標(biāo)點(diǎn)。
四步搜索算法比三步搜索算法的復(fù)雜度更小,但精度并沒有降低,同時(shí)算法規(guī)則易于實(shí)現(xiàn)軟件流水,而非常適合在DSP 上實(shí)現(xiàn)。
3.3 軟件優(yōu)化
由于圖像處理的數(shù)據(jù)量大,數(shù)據(jù)處理相關(guān)性高,并且具有嚴(yán)格的幀、場時(shí)間限制,因此如何針對圖像處理的特點(diǎn)對DSP 進(jìn)行優(yōu)化編程,充分發(fā)揮其性能就成為提高整個(gè)系統(tǒng)性能的關(guān)鍵。
要想充分發(fā)揮DSP的運(yùn)算能力,必須從它的硬件結(jié)構(gòu)出發(fā),最大限度地利用八個(gè)功能單元,使用軟件流水線,盡量讓程序無沖突地并行執(zhí)行。一般循環(huán)體都滿足并行處理的條件,并且循環(huán)體往往是程序中耗時(shí)最長的。因此在進(jìn)行優(yōu)化時(shí)將重點(diǎn)放在循環(huán)體上。
1) DSP跳轉(zhuǎn)指令的優(yōu)化
DSP的指令多為單周期指令,但是轉(zhuǎn)移類指令卻通常要耗費(fèi)較多的時(shí)鐘周期,每個(gè)跳轉(zhuǎn)都有5個(gè)延遲間隙,從性能上考慮是一項(xiàng)很耗時(shí)的工作,因此應(yīng)盡可能地減少程序中的分支。
2) 使用庫函數(shù)
TI公司對TMS320C6000的用戶提供了功能強(qiáng)大的IMAGE LIB庫支持。在這個(gè)庫中,包含許多常用函數(shù),可以完成DCT/IDCT變換、小波變換、DCT量化、自適應(yīng)濾波等功能。這些函數(shù)都是優(yōu)化過的,完全能夠?qū)崿F(xiàn)軟件流水,效率很高。
3)存儲空間的考慮
DSP存儲空間的配置十分重要。因?yàn)镈SP對不同的存儲單元的訪問速度是有區(qū)別的,對片內(nèi)寄存器的訪問速度最快,對片內(nèi)RAM的訪問速度比片外RAM的訪問速度快。因此合理地配置和使用存儲空間,對系統(tǒng)整體效率影響很大。應(yīng)該盡可能地把訪問比較頻繁的常數(shù)表和代碼段裝入片內(nèi)RAM,如果過大,則把其中一部分裝入片外存儲器。
4)混合編程
不同于傳統(tǒng)的VLIW ,Veloci TI 采用了多種先進(jìn)技術(shù),從而使得DSP的C編譯器具有很高的效率,我們稱之為面向C語言結(jié)構(gòu)的DSP芯片。其平均編譯效率可以達(dá)到手工匯編的84 %。這使得在絕大多數(shù)應(yīng)用中我們可以采用C 語言編寫程序從而充分利用大量用C 描述的算法程序,并獲得遠(yuǎn)勝于傳統(tǒng)DSP程序的可維護(hù)性、可移植性、可繼承性,縮短開發(fā)周期。
雖然C6000的C編譯器有如此高的編譯效率,但是對于MPEG-4這樣復(fù)雜的算法,只運(yùn)用C語言是遠(yuǎn)遠(yuǎn)不夠的,一般采用C語言和匯編語言相結(jié)合的方式來完成程序設(shè)計(jì)。程序設(shè)計(jì)流程如下:先寫C代碼并對其優(yōu)化,如果不能達(dá)到預(yù)期的運(yùn)行效率,則編寫匯編代碼來提高效率。
4 總結(jié)
該系統(tǒng)非常靈活,支持的視頻輸入為PAL制或NTSC制式的標(biāo)準(zhǔn)模擬視頻信號,輸入的視頻信號既可以是復(fù)合視頻信號,也可以是S-Video信號。并支持多分辨率,分別為FULL、CIF和QCIF,可以滿足多種應(yīng)用的需求。測試證明經(jīng)過以上的優(yōu)化可以實(shí)現(xiàn)視頻圖像的實(shí)時(shí)壓縮,同時(shí)系統(tǒng)運(yùn)行可靠、功耗低。
評論