摘 要:JPEG2000圖像壓縮算法分為小波變換、嵌入式塊編碼和優化截斷三個模塊,三個模塊間存在數據交互,為滿足系統的實時性要求,本文采用TMS320C6678新型DSP,基于EDMA3實現了模塊間的數據后臺傳輸,并通過EDMA3的相關配置,在位平面掃描開始前,完成了小波數據傳輸和數據結構的優化調整,減少了位平面掃描的小波數據讀取次數,避免了不必要的系統開銷。
關鍵詞:JPEG2000;多核DSP;TMS320C6678;并行方案;EDMA3
中圖分類號:TP274 文獻標識碼:A 文章編號:1674-7712 (2013) 22-0000-02
衛星遙感圖像隨著分辨率的提高,產生的海量數據對存儲和傳輸提出了挑戰,為了獲得高壓縮比、高質量的實時圖像壓縮,JPEG2000靜態圖像壓縮標準在衛星遙感圖像實時壓縮領域得到了廣泛應用[1-3]。針對JPEG2000編碼算法復雜度高、運算量大的特點,采用高性能多核DSP(如TMS320C6678)實現并行圖像壓縮,能有效提高圖像的壓縮性能。
TMS320C66X[4]系列采用梯形多內核架構,不但最大限度地提高了片上數據量的吞吐量,而且還可以消除可能出現的瓶頸問題,釋放了多內核的強大功能,在性能、精度、功耗、實時等方面打破了圖像壓縮應用中“不可兼得”的局面。特別是8核TMS320C6678每個內核都同時具備定點和浮點運算能力,運行速率能達到10GHz。
JPEG2000算法分為小波變換(Transform)、嵌入式塊編碼(Embedded Block Coding,EBC)和優化截斷(Optimized Truncation,OT)三個模塊[5],EBC模塊算法復雜、計算量大,適合采用TMS320C6678的多個核并行實現。通過對EBC算法的拆分,DSP采用EDMA方式進行數據搬移,可以使算法與數據搬移并行實現,不占用CPU,從而實現數據搬移的“零時間”[6]。為了提高位平面的掃描效率,在掃描前需對小波數據塊的存儲結構進行優化調整,增加了額外的開銷。本文基于TMS320C6678使用EDMA3在實現數據搬移的同時實現了小波數據塊結構的優化存儲。
一、基于TMS320C6678的JPEG2000并行壓縮方案
自從20世紀70年代末,第一片數字信號處理芯片問世以來,DSP就以數字器件特有的穩定性,可重復性,可大規模集成,特別是可編程性高和易于實現自適應處理等特點,給數字信號處理的發展帶來了巨大機遇。德州儀器(TI)在2010年推出的TMS320C66X可擴展DSP器件可提供業界高性能的多核DSP。為使圖像系統性能和效率達到最高,同時考慮系統容錯等特性,我們選擇了8核DSPTMS320C6678。
圖1 TMS320C6678芯片片內結構
TMS320C6678具有8個速率高達1.25GHz的高性能DSP,每周期定點性能高達32MAC,每周期浮點性能高達16 FLOP。每個核配置了32KB的一級程序存儲器L1P,32KB的一級數據存儲器L1D,512KB二級局部存儲器L2,并有多核共享存儲空間控制器(MSMC)和多核導航來控制多核間的協同工作。(TMS320C6678芯片片內結構如圖1所示)
JPEG2000圖像實時壓縮設備采用基于TMS320C6678的硬件平臺來實現,系統結構如圖2所示。
圖2 基于TMS320C6678的JPEG2000壓縮系統結構
JPEG2000算法中Transform模塊由Core0完成,EBC模塊由Core1至Core5共同完成,Core6負責OT模塊。各模塊間的中間數據由外部SRAM存儲,數據傳輸由EDMA3完成。經Transform模塊處理產生的小波系數存儲方式為按行存儲。而EBC算法的位平面掃描方式為按列掃描(位平面掃面方式如圖3所示),為充分發揮DSP數據存儲器雙字讀寫的潛能(其前提是地址連續),一次讀寫4個16位小波數據,需要對小波系數存儲的結構進行調整。
本文基于EDMA3提出一種小波數據存儲結構優化方案,如圖4所示,圖中的每個元素表示一個樣本。其優化思想是,在EDMA3傳輸數據的同時將小波數據的存儲結構由按行存儲改為按列存儲。優化后,每列的4個樣本地址空間連續。
圖3 位平面的掃描方式
圖4 小波數據存儲結構優化調整
二、基于EDMA3的數據搬移及存儲結構優化
EDMA3是數字信號處理器用于快速數據交換的重要技術,具有獨立于CPU的后臺批量數據傳輸能力,能夠滿足實時圖像處理中高速數據傳輸的要求。TMS320C6678采用最新的EDMA技術EDMA3,EDMA3控制器主要包括兩部:EDMA3通道控制器和EDMA3傳輸控制器[7]。
EDMA的實現步驟:(1)初始化并打開EDMA3模塊;(2)EDMA3模塊設置,并得到該模塊的設置值;(3)啟用DMA和QDMA區域;(4)打開指定的QDMA通道'channelNum';(5)PING使用參數寄存器入口1;(6)PONG使用參數寄存器入口2;(7)配置PARAM;(8)啟用通道;(9)通過設置觸發字啟動QDMA傳輸;(10)輪詢IPR位;(11)清除掛起位;(12)EDMA3模塊。
通過對參數寄存器組和控制寄存器組進行恰當配置(EDMA3傳輸配置如圖5所示,各寄存器的詳細介紹參見文獻[7]),實現了后臺每次4行小波數據的傳輸和對傳輸數據結構的優化調整。圖6所示為傳輸4行,每行64個小波數據樣本的EDMA3通道控制寄存器組配置,每個樣本用16位表示。
圖5 EDMA3通道控制寄存器組配置 圖6 EDMA3小波數據重排傳輸配置
三、分析總結
在1個編碼塊的位平面編碼過程中,以樣本讀取累加次數為15次,每次讀操作需要4個時鐘周期,采用TMS320C6678的EDMA3實現小波數據塊的傳輸和存儲結構優化,執行EBC的內核讀取一列樣本只需要1次讀操作,節省了75%的數據讀取時間,累計可節約時間為
由于采用的TMS320C6678主頻為1.25GHz,極大地提高了位平面掃描時小波數據讀取的速度,雖然采用EDMA3在隱藏數據搬移的同時實現了小波數據塊結構的優化,減少了圖像壓縮系統的開銷,這樣的存儲結構優化對于一個小波數據塊的讀取節約的時間并不明顯,但在海量數據圖像壓縮時,面對海量小波數據塊的讀取具有相當大的意義。
參考文獻:
[1]Nicholson D,Kajfasz P.An effective satellite on-board JPEG2000 image(de)coding implementation based on PIRANHA systematic-DSP[C]//20th AIAA International Communication Satellite Systems Conference and Exhibit.2002:1-6.
[2]Trenschel T,Bretschneider T,Leedham G.Using JPEG2000 on-board mini-satellites for image-driven compression[C]//Geoscience and Remote Sensing Symposium,2003.IGARSS'03.Proceedings.2003 IEEE International.IEEE,2003,03:2033-2035.
[3]趙清,林寶軍,張善從.JPEG2000遙感圖像實時壓縮系統[J].計算機仿真,2007,03:180-183.
[4]TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Data Manual.Texas Instruments Incorporated,Texas,United States,2011.
[5]Taubman D S.JPEG2000:Image Compression Fundamentals,Standards and Practice [M].Kluwer Academic Publishers,Massachusetts, 2002.
[6]杜列波,肖學敏,羅武勝,等.JPEG2000遙感圖像實時壓縮系統中基于并行機制的\"零時間\"數據搬移策略[J].JOURNAL OF NATIONAL UNIVERSITY OF DEFENSE TECHNOLOGY,2008,30(04).
[7] Enhanced Direct Memory Access(EDMA3)Controller User Guide.Texas Instruments Incorporated,Texas,United States,2011.
[8]杜列波.JPEG2000星載圖像壓縮設備中的關鍵技術研究[D].國防科學技術大學,2008.