摘 要: 在綜合考慮成本、功耗、數據接口和處理能力的基礎上,提出了一種多DSP+FPGA的硬件設計方案。壓縮算法" title="壓縮算法">壓縮算法選擇基于雙正交疊式變換和簡化SPIHT的低復雜度圖像壓縮" title="圖像壓縮">圖像壓縮方法。對壓縮算法從PC機向DSP移植過程中的一些關鍵技術進行了研究。最后以一組遙感灰度圖像為樣本,用4:1和8:1兩種壓縮比" title="壓縮比">壓縮比對數據壓縮系統" title="壓縮系統">壓縮系統進行測試。測試表明數據壓縮系統設計合理,實際工作能滿足圖像質量和高速實時處理要求。
關鍵詞: 遙感圖像數據壓縮 LBT 多DSP+FPGA 并行處理
數據壓縮系統是衛星數傳分系統的前端模塊,接收并壓縮星載CCD相機的圖像數據。壓縮后的碼流通過固存設備傳輸給衛星發射機進行發射,進入數傳信道。某衛星星載多個線陣CCD相機,相機時鐘頻率為50MHz,幀周期為0.77ms,每幀數據為4 096字節,總碼速率為725Mbps。要求以1:1、4:1和8:1三種壓縮模式壓縮相機的圖像數據,輸出速率在8:1模式下小于100Mbps,在4:1模式下小于200Mbps。并且,機械特性、熱特性、電特性等符合接口數據單要求。
自2000年以來,筆者在國外著名學者Malvr提出的雙正交重疊變換[1](LBT)的基礎上系統地研究了整數(重疊+DCT)的塊變換算法以及低復雜度的存儲編碼算法,使其圖像壓縮質量與JPEG 2000推薦的小波方法近似。由于克服了邊緣效應,因而質量明顯高于JPEG壓縮方法,而且計算復雜度與存儲量又比小波方法有顯著改善。
目前的衛星遙感圖像壓縮系統硬件方案大多基于高性能可編程邏輯器件FPGA[2-4]。但這種方案整系統成本居高不下,且FPGA存在單粒子翻轉效應。因此,筆者提出一種多DSP+FPGA的硬件設計結構,使用DSP取代FPGA完成核心算法,而僅用一個FPGA進行管理和控制。該硬件設計成本較低。
1 基于雙正交疊式變換的低復雜度圖像壓縮方法
1.1 雙正交重疊變換的快速整數實現
在有損壓縮中,通常先對圖像矩陣進行正交/雙正交變換,使能量分布集中,表示更為稀疏。離散余弦變換(DCT)由于具有良好的去相關效果,并且存在相應的快速算法,應用廣泛。雙正交重疊變換繼承了DCT 計算簡便、存儲要求低的特點,同時克服了DCT的塊效應。這里以LBT為藍本提出雙正交重疊變換的快速整數實現算法[5],所有系數均采用分母為2的冪、分子為整數的分數近似,從而使整個變換過程只需要整數加法和位移運算。圖1給出了一維binLBT的實現流程,二維變換按先行后列的順序分別進行一維變換。
1.2 零樹編碼的簡化與改進
SPIHT作為一種高效零樹編碼方法,對位平面進行了集合劃分,將大量的非重要位0集中到幾個具有特定模式的集合里面,并對含有重要位的此類集合進行劃分,直至將集合劃分為具體的元素。LBT系數塊中存在著類似零樹結構。圖2中給出了模仿小波變換中樹結構的LBT塊變換中的零樹劃分方法,其中每一個線框對應著一個系數,實線則將64個系數分為10個子帶。由于塊變換具有集中能量的作用,系數的能量由左上到右下逐漸減少。
在每一子帶中,首先使用Golomb方法編碼,再將其輸出碼流輸入到MQ編碼器,進行下一步的編碼。零樹編碼過程應用了零樹結構中父子節點間的相關性,需要在已知父節點的情況下定位它的子節點。因此,在LBT系數輸出后進入編碼器前,利用線性索引的方法對LBT系數重新排序,將其放置在一維數組里。
2 并行多DSP+FPGA的硬件設計方案
2.1 系統硬件整體框圖
數據壓縮系統硬件總體框圖如圖3所示。2x-1路串行CCD數據通過LVDS接口多路并行進入FPGA進行時序轉換,每個DSP通過兩個串口以EDMA方式從FPGA讀取兩路相機數據并緩存、壓縮編碼,整個數據壓縮系統需要x個DSP并行處理" title="并行處理">并行處理。壓縮后碼流數據通過串口輸出到FPGA,FPGA重新緩存、組幀、時序轉換后輸出到固存設備。碼流數據輸出、遙控指令輸入、遙測信號輸出和電源的接口均通過底板總線和數傳綜合處理器連接。
2.2 器件選擇
DSP選擇TMS320C6416,它是TI公司于2000年推出的一款具有C64XX系列新內核的高性能DSPs芯片。TMS320C6416采用一種高性能的先進的VLIW(非常長指令字)結構,其內部具有8個并行處理單元。因單指令字長為32位,8個指令可組成長達256位的指令包,由內部專門的指令分配模塊同時分配到8個處理單元同時運行。因此在600MHz主頻時,TMS320C6416的最大處理能力高達4800MIPS(百萬條指令/秒)[3]。TMS320C6416核心電壓為1.2V,外圍電壓為3.3V,主頻為400MHz~1GHz,并且在600MHz主頻下,能夠提供833B級器件[6]。
FPGA選用X2V3000-5FG676C,該型號屬于Xlinix公司的VirtexTM-II系列,300萬門,676個管腳中包括484個I/O管腳。Xlinix FPGA的基本特點是由可配置邏輯塊(CLB)、輸入/輸出塊(IOB)以及可編程互連資源組成,另外還包括三態緩沖器、全局時鐘緩沖器和邊界掃描邏輯。CLB中包含有查找表(LUT)、寄存器和進位邏輯,IOB中包含DDR寄存器。存儲器資源主要包括分布式SelectRAM/ROM以及18KB的塊狀SelectRAM。
2.3 接口設計
線陣CCD相機圖像灰度數據以串行方式及LVDS信號電平輸出。為了便于DSP串口接收,由FPGA進行電平轉換,并依據相關串行協議進行時序轉換。而壓縮圖像編碼則經DSP串口輸出,由FPGA進行電平轉換,并依據壓縮機輸出接口時序進行相應的轉換。
遙控機輸出線有指令線、地線,在使用端上拉。指令整形輸出后如需要負脈沖可再外加一級反相器或在FPGA內部實現。遙測接口分為模擬遙測、數字遙測和數據遙測三部分,模擬遙測主要針對電源(5V、1.5V、1.4V等)進行遙測,遙測輸出電平為0~5V;數字遙測主要對分機中關鍵器件工作狀態進行遙測,遙測輸出電平為TTL電平;數據遙測主要對內部運行狀態進行遙測。
3 壓縮算法在DSP實現中的關鍵技術及并行處理
3.1 C6000系列CPU結構與流水線
C6000系列CPU采用哈佛結構,指令取指與執行可以并行運行。程序總線寬度為256bit,每一次取指操作都是取8條指令,成為一個取指包。取指、指令分配和指令譯碼都具備每周期讀取并傳遞8條32位指令的能力。C64xx系列CPU有兩個數據通路A和B,每個通路有4個功能單元(.L、.S、.M和.D),不同的8個功能單元中的指令均可并行執行。
現代微處理器把指令分成幾個子操作,每個子操作在微處理器內部可由不同的部件來完成。在同一時間內,可有多條指令交迭地在不同部件內處理,這種工作方式就是“流水線”(pipeline)工作方式。TMS320C6000的特殊結構可使多個指令包(每包最多8條指令)交迭地在不同部件內處理,大大提高了微處理器的吞吐量。
3.2 數據類型轉換與數據溢出問題
TMS320C6000系列DSP的數據打包處理技術,可以使用寬長度的存儲器對短字長的數據訪問,這樣可使編譯出的代碼性能顯著提高。壓縮算法在DSP實現中,采用short代替int來存儲圖像像素值和變換后的系數,并確保不會產生數據溢出。
對|T|的每一行求和,最大為2.8284。進行行列兩次變換,最終變換系數最大為圖像像素值的8倍。當圖像像素占8位或10位時,包括符號位1位,16位存儲變換系數不會溢出。
3.3 并行計算
壓縮算法核心軟件結構如圖4所示。
各子函數采用匯編語言編寫,在C6000系列DSP中優化代碼的關鍵是如何實現代碼的并行。針對C64XX系列處理器的指令特點,采取以下并行處理措施:
(1)雙通路。處理系數平均安排,分別分布在A、B兩通路;
(2)數據打包處理技術。用LDW和STW一次讀取和存儲兩個16位系數;
(3)半字操作指令。每條指令處理兩個16位系數;
(4)多功能單元。兩通路內各8個系數的計算充分利用L、S、M和D四個功能單元。
4 實驗結果與結論
以一組40幅中科院遙感所提供的1024×1024×8圖像為樣本,用4:1和8:1兩種壓縮比,對遙感圖像壓縮系統樣機進行測試。測試結果如下:
(1)壓縮比為4:1時,PSNR平均40dB以上,最低38dB;壓縮比為8:1時,PSNR平均35dB以上,最低32dB。
(2)對1024×1024×8圖像,壓縮比為4:1時,單DSP處理時間在64ms以下;壓縮比為8:1時,單DSP處理時間在48ms以下,為優化前時間的1/30。
(3)單DSP內部RAM能滿足2路相機數據及中間系數緩存要求;
(4)單路功耗在0.5W以下,整機功耗不足15W。
結果表明,數據壓縮系統設計合理,實際工作能滿足圖像質量和高速實時處理要求。但從人工判圖的結果看,8:1壓縮時,算法小目標保持情況不如JPEG2000。系統目前已進入初樣階段,希望在算法尤其是編碼算法上繼續研究并優化,進一步提高圖像質量。
參考文獻
[1] MALVAR H S.Biorthogonal and nonuniform lapped transforms for transform coding with reduce blocking and ringing artifacts.IEEE Transactions on Signal Processing.1998,46(4):1043-1053.
[2] 肖江.衛星干涉光譜圖像編碼技術研究.西安電子科技大學博士學位論文,2004
[3] 陳超.高速傳輸圖像壓縮系統設計與實現.遙測遙控,2004,(7).
[4] 周梅,張志敏,鄧云凱.星載SAR原始數據壓縮模塊的FPGA實現,現代雷達,2006,28(2).
[5] 鐘廣軍,成禮智,陳火旺.雙正交重疊變換的整數實現算法與圖像壓縮.電子學報,2001,29(11):2001.
[6] TMS320C6414,TMS320C6415,TMS320C6416 FIXED-POINT DIGITAL SIGANAL PROCESSORS.Texas Instruments Incor porated,October 2002.