基于多DSP+FPGA的衛(wèi)星遙感圖像壓縮系統(tǒng)設計
2.3 接口設計
線陣CCD相機圖像灰度數(shù)據(jù)以串行方式及LVDS信號電平輸出。為了便于DSP串口接收,由FPGA進行電平轉換,并依據(jù)相關串行協(xié)議進行時序轉換。而壓縮圖像編碼則經(jīng)DSP串口輸出,由FPGA進行電平轉換,并依據(jù)壓縮機輸出接口時序進行相應的轉換。
遙控機輸出線有指令線、地線,在使用端上拉。指令整形輸出后如需要負脈沖可再外加一級反相器或在FPGA內(nèi)部實現(xiàn)。遙測接口分為模擬遙測、數(shù)字遙測和數(shù)據(jù)遙測三部分,模擬遙測主要針對電源(5V、1.5V、1.4V等)進行遙測,遙測輸出電平為0~5V;數(shù)字遙測主要對分機中關鍵器件工作狀態(tài)進行遙測,遙測輸出電平為TTL電平;數(shù)據(jù)遙測主要對內(nèi)部運行狀態(tài)進行遙測。
3 壓縮算法在DSP實現(xiàn)中的關鍵技術及并行處理
3.1 C6000系列CPU結構與流水線
C6000系列CPU采用哈佛結構,指令取指與執(zhí)行可以并行運行。程序總線寬度為256bit,每一次取指操作都是取8條指令,成為一個取指包。取指、指令分配和指令譯碼都具備每周期讀取并傳遞8條32位指令的能力。C64xx系列CPU有兩個數(shù)據(jù)通路A和B,每個通路有4個功能單元(.L、.S、.M和.D),不同的8個功能單元中的指令均可并行執(zhí)行。
現(xiàn)代微處理器把指令分成幾個子操作,每個子操作在微處理器內(nèi)部可由不同的部件來完成。在同一時間內(nèi),可有多條指令交迭地在不同部件內(nèi)處理,這種工作方式就是“流水線”(pipeline)工作方式。TMS320C6000的特殊結構可使多個指令包(每包最多8條指令)交迭地在不同部件內(nèi)處理,大大提高了微處理器的吞吐量。
3.2 數(shù)據(jù)類型轉換與數(shù)據(jù)溢出問題
TMS320C6000系列DSP的數(shù)據(jù)打包處理技術,可以使用寬長度的存儲器對短字長的數(shù)據(jù)訪問,這樣可使編譯出的代碼性能顯著提高。壓縮算法在DSP實現(xiàn)中,采用short代替int來存儲圖像像素值和變換后的系數(shù),并確保不會產(chǎn)生數(shù)據(jù)溢出。
對|T|的每一行求和,最大為2.8284。進行行列兩次變換,最終變換系數(shù)最大為圖像像素值的8倍。當圖像像素占8位或10位時,包括符號位1位,16位存儲變換系數(shù)不會溢出。
3.3 并行計算
壓縮算法核心軟件結構如圖4所示。
各子函數(shù)采用匯編語言編寫,在C6000系列DSP中優(yōu)化代碼的關鍵是如何實現(xiàn)代碼的并行。針對C64XX系列處理器的指令特點,采取以下并行處理措施:
(1)雙通路。處理系數(shù)平均安排,分別分布在A、B兩通路;
(2)數(shù)據(jù)打包處理技術。用LDW和STW一次讀取和存儲兩個16位系數(shù);
(3)半字操作指令。每條指令處理兩個16位系數(shù);
(4)多功能單元。兩通路內(nèi)各8個系數(shù)的計算充分利用L、S、M和D四個功能單元。
4 實驗結果與結論
以一組40幅中科院遙感所提供的1024×1024×8圖像為樣本,用4:1和8:1兩種壓縮比,對遙感圖像壓縮系統(tǒng)樣機進行測試。測試結果如下:
(1)壓縮比為4:1時,PSNR平均40dB以上,最低38dB;壓縮比為8:1時,PSNR平均35dB以上,最低32dB。
(2)對1024×1024×8圖像,壓縮比為4:1時,單DSP處理時間在64ms以下;壓縮比為8:1時,單DSP處理時間在48ms以下,為優(yōu)化前時間的1/30。
(3)單DSP內(nèi)部RAM能滿足2路相機數(shù)據(jù)及中間系數(shù)緩存要求;
(4)單路功耗在0.5W以下,整機功耗不足15W。
結果表明,數(shù)據(jù)壓縮系統(tǒng)設計合理,實際工作能滿足圖像質量和高速實時處理要求。但從人工判圖的結果看,8:1壓縮時,算法小目標保持情況不如JPEG2000。系統(tǒng)目前已進入初樣階段,希望在算法尤其是編碼算法上繼續(xù)研究并優(yōu)化,進一步提高圖像質量。
評論