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