基于Blackfin561的JPEG2000 壓縮算法實(shí)現(xiàn)及優(yōu)化
5.2 代碼優(yōu)化
設(shè)計(jì)時(shí)可以結(jié)合具體的硬件環(huán)境對(duì)代碼本身做出大量優(yōu)化,以使得編譯器能夠充分的使用硬件循環(huán)、軟件流水化、矢量化等技術(shù)。但是,也應(yīng)注意一下幾個(gè)方面:
首先,因?yàn)檠h(huán)是程序中時(shí)間消耗最大的部分,所以要把主要精力集中在循環(huán)程序的設(shè)計(jì)上。應(yīng)盡量使用短循環(huán);避免循環(huán)執(zhí)行的依賴性;確保內(nèi)部循環(huán)次數(shù)比外部的多;在循環(huán)中應(yīng)避免條件代碼,否則會(huì)出現(xiàn)大量控制流延遲;在循環(huán)體中不要放函數(shù)調(diào)用語句,這樣會(huì)妨礙編譯器用硬件循環(huán)結(jié)構(gòu)。
其次,定點(diǎn)處理器本身不直接支持除法操作,所以,應(yīng)該盡量避免除法。如“if(X/Y>A/B)”可以寫成“if(X*B>A*Y)”。通過移位操作同樣可以避免除法,如除以8可以用左移3位來代替。最后,通過查詢表的方法也可以避免一些復(fù)雜運(yùn)算。
5.3 存儲(chǔ)器優(yōu)化
Blackfin56l中的存儲(chǔ)器采用分層結(jié)構(gòu),距離核最近的Ll存儲(chǔ)器運(yùn)行速度最快,但容量很小。因此需要對(duì)圖像數(shù)據(jù)進(jìn)行合理的存儲(chǔ)器資源分配,以使得絕大多數(shù)操作都集中在L1存儲(chǔ)器。下面以小波變換為例來進(jìn)行說明。
本系統(tǒng)中待處理的圖像位于SDRAM中。圖3所示是DMA雙緩沖操作示意圖,DMA優(yōu)化的總體思想是以一行圖像數(shù)據(jù)為基本單位,然后通過DMA把要處理的數(shù)據(jù)轉(zhuǎn)移到Ll,實(shí)現(xiàn)數(shù)據(jù)的高效處理。傳輸可采用雙緩沖乒乓操作,這樣可避免DMA傳輸數(shù)據(jù)所耗費(fèi)的時(shí)間。
為了驗(yàn)證JPEG2000編碼器在BF56l上移植和優(yōu)化后的效果,我們對(duì)一幅512x512x8bit圖像進(jìn)行測(cè)試并給出了相關(guān)數(shù)據(jù)。表l所列為16倍壓縮率下優(yōu)化前后的數(shù)據(jù)對(duì)比。
6 結(jié)束語
JPEG2000是新一代圖像壓縮國際標(biāo)準(zhǔn)。本設(shè)計(jì)可實(shí)現(xiàn)JPEG2000圖像壓縮算法在DSP上的移植和優(yōu)化,壓縮后的圖像具有較高的信噪比。同時(shí)經(jīng)過優(yōu)化,其編碼器的運(yùn)算速度也得到了很大的提高,可以滿足實(shí)際應(yīng)用的需要。最后的結(jié)果。所以,為了在高頻輸入時(shí),系統(tǒng)也能正常工作,可以把CA3140替換成高頻特性比較好的LM616l,這樣可以提高系統(tǒng)的高頻特性。
評(píng)論