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