文獻標識碼: A
文章編號: 0258-7998(2013)04-0072-03
航天技術的發(fā)展對遙測系統(tǒng)提出了更高的要求,測量參數種類增多、數據量增大、測量實時性增強為有限的傳輸信道容量帶來巨大壓力。為降低遙測系統(tǒng)對傳輸信道帶寬的要求,采用數據壓縮技術,可以有效地提高信道利用率,增強遙測數據的實時性和吞吐率。世界上較為先進的航天數據壓縮技術被各國視為機密。我國于2000年成功發(fā)射的“資源二號”衛(wèi)星采用DPCM編碼器,速率為102 Mb/s,壓縮比為2:1。填補了我國航天星載數據壓縮的空白[1-2]。對于較平穩(wěn)的數據,包括DPCM在內大多數無損壓縮算法都可以達到2:1的壓縮比和較穩(wěn)定的壓縮時間,但針對一些復雜情況下的數據,比如火箭飛行過程中的噪聲數據,在信號活躍期,其壓縮時間超出了實時壓縮的忍受極限。本文設計了一種以FPGA+DSP為實現(xiàn)平臺,以具有一階差分預測的ARC編碼為壓縮算法的數據壓縮系統(tǒng)。
1 航天遙測數據實時壓縮的關鍵技術
從算法方面考慮:評價一個壓縮算法的優(yōu)劣有兩個重要指標,即壓縮去除率和壓縮用時,在實時系統(tǒng)中對時間的要求更為嚴格,而在航天遙測系統(tǒng)這樣特殊的應用場合還必須考慮可靠性因素。壓縮去除率僅與算法有關,而壓縮用時和可靠性因素不僅與算法相關,還與硬件實現(xiàn)平臺密切相關[3]。
從硬件實現(xiàn)方面考慮:成本和開發(fā)時間是需要考慮的首要條件,由ASIC(專用集成電路)來實現(xiàn)壓縮算法可以滿足極為苛刻的時間要求和很高的可靠性要求,但開發(fā)周期太長,開發(fā)成本過大,不宜作為航天遙測這樣小批量生產的實現(xiàn)方案;由FPGA(現(xiàn)場可編程門陣列)實現(xiàn)壓縮算法也可以達到很快的壓縮速度和很好的可靠性,但用硬件描述語言實現(xiàn)復雜的算法需要很長的開發(fā)周期;單純用DSP(數字信號處理器)實現(xiàn)又很難保證數據采集、壓縮和輸出的實時性要求[4]。因此,由FPGA實現(xiàn)數據傳輸、由DSP實現(xiàn)壓縮算法的FPGA+DSP結構是航天遙測數據壓縮較為理想的實現(xiàn)方案。
2 無損壓縮算法選擇
2.1 壓縮去除率
定義1:設壓縮系統(tǒng)輸入的數據量為Ni,壓縮編碼后輸出數據量為No,則w=(1-No/Ni)稱之為壓縮去除率,以表示壓縮系統(tǒng)的空間壓縮效率。
針對不同統(tǒng)計特性的數據,特定的算法表現(xiàn)出的壓縮去除率相差很大,要根據數據的統(tǒng)計特性和應用場合才能選出合適的算法[5]。本文選用一段已測得的火箭飛行過程中的噪聲數據對算法進行比較。由于實現(xiàn)平臺對算法的壓縮去除率沒有影響,因此選用易于算法實現(xiàn)的PC機作為實現(xiàn)平臺。
在航天領域,對可靠性的要求尤為重要,對遙測領域代碼的共識是越小的代碼量具有越高的可靠性,因此本文選用ARC、LRice和LZARI三種壓縮算法進行比較。
以上編碼方法都圍繞Shannon思想中信息量與信源分布的關系而展開,這些編碼方法統(tǒng)稱為統(tǒng)計編碼。在Shannon 框架下,除了統(tǒng)計編碼外還有預測編碼與變換編碼,統(tǒng)稱三大經典編碼。后兩種編碼本身不會改變數據量,但是在特定用途下可以降低平均碼長,再與統(tǒng)計編碼(也稱為熵編碼)結合,可以得到可觀的壓縮效果。正是基于這種原因,可以把壓縮編碼分兩步完成,第一步稱之為預變換編碼,第二步才是熵編碼[6]。熵編碼本身是可逆的。如果第一步的變換編碼是可逆的,整個壓縮就是無損壓縮;但如果第一步的變換是不可逆的,那么整個壓縮就會是不可逆的,就是有損壓縮。預變換編碼是通過去相關導致碼元表示位數降低來影響壓縮效果的。
一階多項式預測編碼就是一階差分編碼。根據參考文獻[8]的研究,編碼效率隨著預測階數的增高而增大,然而,二階以上的預測編碼對編碼效率的改善已經很小。對于變化較平穩(wěn)的數據流,采用一階差分就可達到很高的編碼效率;對于變化較大的數據流,其數據相關性本來就很小,預測編碼對數據的分布不會有明顯改善。顯然,預測階數越高,編碼過程中的計算量就越大,在DSP中的執(zhí)行時間也就越長,在火箭這種高可靠性要求的應用場合,為了甚微的壓縮空間改進而占用較多的時間顯然是不可取的。表1是在PC機上對不同算法的壓縮去除率的比較。
從表1可以看出LZARI算法具有最好的壓縮去除率,LRice在數據相關性好時(正弦波)壓縮去除率較高,在數據相關性較差時(噪聲)壓縮去除較低,可靠性較差,經一階差分處理后,各算法對正弦波壓縮去除率改善較大,而對噪聲數據的改善很小。
2.2 壓縮用時
算法邏輯是決定其時間效率的根本所在,評價其執(zhí)行效率可以有兩種手段:一種是通過算法機理建模分析,另一種是直接通過外部數據測試。由于大部分算法的邏輯模型難以建立,通過模型進行準確、定量的比較就難以實現(xiàn)。在實際應用環(huán)境中,更關注一個算法的使用性能。一組既定的算法的復雜度是確定的,可以弱化其內部工作機理,直接從外部施加一定的條件進行精確測試。
對一個壓縮系統(tǒng)而言,其壓縮時間與實現(xiàn)平臺、壓縮算法和待壓縮數據三者相關。實現(xiàn)平臺從處理器結構進行分類,可以分為指令型和邏輯型兩種。計算機、DSP、ARM 平臺都屬于指令結構,而專用集成電路平臺屬于邏輯型結構。由于專用集成電路采用硬件電路邏輯實現(xiàn),可以達到很高的壓縮速度,通常可以滿足實時性要求。本文只針對指令結構平臺進行壓縮速度分析。
經過對不同類型數據的多次壓縮比較,在PC機上仿真的壓縮速度大小依次是LRice>ARC> LZARI,而在DSP上的效果是ARC>LRice>LZARI。這種變化產生的根源主要是DSP 處理器的并行指令執(zhí)行能力使得ARC較LRice反而更快。固定數據的一階差分預測在相同實現(xiàn)平臺上的運行時間是一定的,因此帶一階差分預測的壓縮算法用時比較同上。
考慮航天設備對運行環(huán)境、壓縮比、壓縮速度等方面的要求,DSP相比于PC是一種可行的算法實現(xiàn)平臺,因而用ARC算法實現(xiàn)遙測數據無損壓縮就更有優(yōu)勢, 本文采用一階差分編碼改進的ARC算法對火箭遙測數據進行無損壓縮。
3 數據壓縮系統(tǒng)的實現(xiàn)
遙測數據采集系統(tǒng)的工作流程分為采集—壓縮—輸出3個主要步驟。本文利用FPGA+DSP架構作為硬件平臺,將待壓縮的6路模擬噪聲信號經電壓跟隨后輸入給A/D轉換器進行量化,量化結果寫入到FPGA內部FIFO數據緩沖器中。DSP通過FPGA內部FIFO半滿信號讀取數據,通過識別通道號把數據流分配到6個分組緩沖區(qū),其中某一分組緩沖區(qū)滿2 KB就進行一次壓縮,壓縮后的數據被存入緩沖器SDRAM中。當緩沖器半滿時,DSP將壓縮后數據串行發(fā)送至FPGA,然后FPGA根據接口協(xié)議發(fā)送給數據接收器,保證壓縮數據傳輸的實時性。系統(tǒng)框圖如圖1所示。
由于遙測系統(tǒng)的各功能單元相互獨立,相互通信時需要數據緩存進行協(xié)調,為此,本設計多處使用由FPGA內核構建的FIFO(先進先出)暫存器,在保證系統(tǒng)可靠性的同時降低了開發(fā)難度。
考慮遙測系統(tǒng)的整體環(huán)境,數據壓縮系統(tǒng)采用固定格式的數據流輸出壓縮后數據,如果壓縮數據的產生速率低于數據輸出速率,數據可完整發(fā)送。由表1可以看出,在強噪聲數據階段,數據的壓縮去除率很低,剩余數據量較大,無法滿足數據的即時發(fā)送,產生數據積累,必須采用數據緩沖單元。數據緩沖單元容量大小如下:
其中t1、t2分別為數據積累的開始和結束時間,vi、vo分別為壓縮數據的產生和發(fā)送速率。航天器實際飛行過程中,強噪聲數據階段僅為幾分鐘左右,其余時間段都可達到較高的數據壓縮去除率。由此估算出緩沖器的容量為1 MB左右,采用容量為8 MB的SDRAM,保證數據的完整輸出。
4 實驗及結果分析
火箭飛行過程中的噪聲數據是一種典型的航天遙測數據,火箭上的噪聲在飛行過程中的大部分時間是平穩(wěn)的,在小部分時間內是劇烈變化的。數據壓縮系統(tǒng)要保證壓縮用時和壓縮去除率兩方面都滿足要求。表2是一段實測噪聲數據以各種壓縮算法在DSP平臺上壓縮效果比較。
從表2可以看出,ARC算法具有較快的壓縮速度和較高的壓縮去除率。加入一階差分預測后帶來的時間延遲并不是很明顯,卻明顯改善了壓縮去除率。結合各算法表現(xiàn)出的壓縮去除率,具有一階差分的ARC算法在航天遙測這種應用場合表現(xiàn)出了最佳性能。
采用FPGA+DSP結構和用一階差分優(yōu)化的ARC算法對火箭遙測數據進行無損壓縮,達到了較高的壓縮去除率和可靠性,減輕了遙測系統(tǒng)的信道傳輸壓力,提高了數據的傳輸效率,是航天遙測數據壓縮較為理想的實現(xiàn)方案。
參考文獻
[1] 王泉,齊春,羅新民,等. LZW壓縮算法的改進及其參數優(yōu)化分析[J].重慶郵電學院學報,2005,17(3):351-355.
[2] RIZZO F, STORER J A,CARPENTIERI B.LZ-based image compression[J].Information Sciences,2001(135):107-122.
[3] 高藝,孫桂玲,李維祥,等.基于預測編碼的無線傳感器網絡節(jié)點數據壓縮算法研究[J].南開大學學報:自然科學版,2010,43(6):77-80.
[4] BENTLEY J, MCILROY D. Data compression with long repeated strings[J]. Information Sciences, 2001(135):1-11.
[5] 劉向宇,王雅哲,楊曉春,等. 面向無線傳感器網絡的流數據壓縮技術[J]. 計算機科學,2007,34(2):141-142.
[6] 沈海峰. 遙測系統(tǒng)提高傳輸容量方法探討[J]. 裝備指揮技術學院學報,2007,18(2):99-104.
[7] 張?zhí)煨?,鄒勝,曾永慧.基于FPGA的圖像無損壓縮算法的實現(xiàn)[J].系統(tǒng)工程與電子技術,2004,26(10):1340-1343.
[8] ZIV J, LEMPEL A. A universal algorithm for sequential data compression[J]. IEEE Trans. Inform. Theory,1977(23):337-343.