文献标识码: A
文章编号: 0258-7998(2013)04-0072-03
航天技术的发展对遥测系统提出了更高的要求,测量参数种类增多、数据量增大、测量实时性增强为有限的传输信道容量带来巨大压力。为降低遥测系统对传输信道带宽的要求,采用数据压缩技术,可以有效地提高信道利用率,增强遥测数据的实时性和吞吐率。世界上较为先进的航天数据压缩技术被各国视为机密。我国于2000年成功发射的“资源二号”卫星采用DPCM编码器,速率为102 Mb/s,压缩比为2:1。填补了我国航天星载数据压缩的空白[1-2]。对于较平稳的数据,包括DPCM在内大多数无损压缩算法都可以达到2:1的压缩比和较稳定的压缩时间,但针对一些复杂情况下的数据,比如火箭飞行过程中的噪声数据,在信号活跃期,其压缩时间超出了实时压缩的忍受极限。本文设计了一种以FPGA+DSP为实现平台,以具有一阶差分预测的ARC编码为压缩算法的数据压缩系统。
1 航天遥测数据实时压缩的关键技术
从算法方面考虑:评价一个压缩算法的优劣有两个重要指标,即压缩去除率和压缩用时,在实时系统中对时间的要求更为严格,而在航天遥测系统这样特殊的应用场合还必须考虑可靠性因素。压缩去除率仅与算法有关,而压缩用时和可靠性因素不仅与算法相关,还与硬件实现平台密切相关[3]。
从硬件实现方面考虑:成本和开发时间是需要考虑的首要条件,由ASIC(专用集成电路)来实现压缩算法可以满足极为苛刻的时间要求和很高的可靠性要求,但开发周期太长,开发成本过大,不宜作为航天遥测这样小批量生产的实现方案;由FPGA(现场可编程门阵列)实现压缩算法也可以达到很快的压缩速度和很好的可靠性,但用硬件描述语言实现复杂的算法需要很长的开发周期;单纯用DSP(数字信号处理器)实现又很难保证数据采集、压缩和输出的实时性要求[4]。因此,由FPGA实现数据传输、由DSP实现压缩算法的FPGA+DSP结构是航天遥测数据压缩较为理想的实现方案。
2 无损压缩算法选择
2.1 压缩去除率
定义1:设压缩系统输入的数据量为Ni,压缩编码后输出数据量为No,则w=(1-No/Ni)称之为压缩去除率,以表示压缩系统的空间压缩效率。
针对不同统计特性的数据,特定的算法表现出的压缩去除率相差很大,要根据数据的统计特性和应用场合才能选出合适的算法[5]。本文选用一段已测得的火箭飞行过程中的噪声数据对算法进行比较。由于实现平台对算法的压缩去除率没有影响,因此选用易于算法实现的PC机作为实现平台。
在航天领域,对可靠性的要求尤为重要,对遥测领域代码的共识是越小的代码量具有越高的可靠性,因此本文选用ARC、LRice和LZARI三种压缩算法进行比较。
以上编码方法都围绕Shannon思想中信息量与信源分布的关系而展开,这些编码方法统称为统计编码。在Shannon 框架下,除了统计编码外还有预测编码与变换编码,统称三大经典编码。后两种编码本身不会改变数据量,但是在特定用途下可以降低平均码长,再与统计编码(也称为熵编码)结合,可以得到可观的压缩效果。正是基于这种原因,可以把压缩编码分两步完成,第一步称之为预变换编码,第二步才是熵编码[6]。熵编码本身是可逆的。如果第一步的变换编码是可逆的,整个压缩就是无损压缩;但如果第一步的变换是不可逆的,那么整个压缩就会是不可逆的,就是有损压缩。预变换编码是通过去相关导致码元表示位数降低来影响压缩效果的。
一阶多项式预测编码就是一阶差分编码。根据参考文献[8]的研究,编码效率随着预测阶数的增高而增大,然而,二阶以上的预测编码对编码效率的改善已经很小。对于变化较平稳的数据流,采用一阶差分就可达到很高的编码效率;对于变化较大的数据流,其数据相关性本来就很小,预测编码对数据的分布不会有明显改善。显然,预测阶数越高,编码过程中的计算量就越大,在DSP中的执行时间也就越长,在火箭这种高可靠性要求的应用场合,为了甚微的压缩空间改进而占用较多的时间显然是不可取的。表1是在PC机上对不同算法的压缩去除率的比较。
从表1可以看出LZARI算法具有最好的压缩去除率,LRice在数据相关性好时(正弦波)压缩去除率较高,在数据相关性较差时(噪声)压缩去除较低,可靠性较差,经一阶差分处理后,各算法对正弦波压缩去除率改善较大,而对噪声数据的改善很小。
2.2 压缩用时
算法逻辑是决定其时间效率的根本所在,评价其执行效率可以有两种手段:一种是通过算法机理建模分析,另一种是直接通过外部数据测试。由于大部分算法的逻辑模型难以建立,通过模型进行准确、定量的比较就难以实现。在实际应用环境中,更关注一个算法的使用性能。一组既定的算法的复杂度是确定的,可以弱化其内部工作机理,直接从外部施加一定的条件进行精确测试。
对一个压缩系统而言,其压缩时间与实现平台、压缩算法和待压缩数据三者相关。实现平台从处理器结构进行分类,可以分为指令型和逻辑型两种。计算机、DSP、ARM 平台都属于指令结构,而专用集成电路平台属于逻辑型结构。由于专用集成电路采用硬件电路逻辑实现,可以达到很高的压缩速度,通常可以满足实时性要求。本文只针对指令结构平台进行压缩速度分析。
经过对不同类型数据的多次压缩比较,在PC机上仿真的压缩速度大小依次是LRice>ARC> LZARI,而在DSP上的效果是ARC>LRice>LZARI。这种变化产生的根源主要是DSP 处理器的并行指令执行能力使得ARC较LRice反而更快。固定数据的一阶差分预测在相同实现平台上的运行时间是一定的,因此带一阶差分预测的压缩算法用时比较同上。
考虑航天设备对运行环境、压缩比、压缩速度等方面的要求,DSP相比于PC是一种可行的算法实现平台,因而用ARC算法实现遥测数据无损压缩就更有优势, 本文采用一阶差分编码改进的ARC算法对火箭遥测数据进行无损压缩。
3 数据压缩系统的实现
遥测数据采集系统的工作流程分为采集—压缩—输出3个主要步骤。本文利用FPGA+DSP架构作为硬件平台,将待压缩的6路模拟噪声信号经电压跟随后输入给A/D转换器进行量化,量化结果写入到FPGA内部FIFO数据缓冲器中。DSP通过FPGA内部FIFO半满信号读取数据,通过识别通道号把数据流分配到6个分组缓冲区,其中某一分组缓冲区满2 KB就进行一次压缩,压缩后的数据被存入缓冲器SDRAM中。当缓冲器半满时,DSP将压缩后数据串行发送至FPGA,然后FPGA根据接口协议发送给数据接收器,保证压缩数据传输的实时性。系统框图如图1所示。
由于遥测系统的各功能单元相互独立,相互通信时需要数据缓存进行协调,为此,本设计多处使用由FPGA内核构建的FIFO(先进先出)暂存器,在保证系统可靠性的同时降低了开发难度。
考虑遥测系统的整体环境,数据压缩系统采用固定格式的数据流输出压缩后数据,如果压缩数据的产生速率低于数据输出速率,数据可完整发送。由表1可以看出,在强噪声数据阶段,数据的压缩去除率很低,剩余数据量较大,无法满足数据的即时发送,产生数据积累,必须采用数据缓冲单元。数据缓冲单元容量大小如下:
其中t1、t2分别为数据积累的开始和结束时间,vi、vo分别为压缩数据的产生和发送速率。航天器实际飞行过程中,强噪声数据阶段仅为几分钟左右,其余时间段都可达到较高的数据压缩去除率。由此估算出缓冲器的容量为1 MB左右,采用容量为8 MB的SDRAM,保证数据的完整输出。
4 实验及结果分析
火箭飞行过程中的噪声数据是一种典型的航天遥测数据,火箭上的噪声在飞行过程中的大部分时间是平稳的,在小部分时间内是剧烈变化的。数据压缩系统要保证压缩用时和压缩去除率两方面都满足要求。表2是一段实测噪声数据以各种压缩算法在DSP平台上压缩效果比较。
从表2可以看出,ARC算法具有较快的压缩速度和较高的压缩去除率。加入一阶差分预测后带来的时间延迟并不是很明显,却明显改善了压缩去除率。结合各算法表现出的压缩去除率,具有一阶差分的ARC算法在航天遥测这种应用场合表现出了最佳性能。
采用FPGA+DSP结构和用一阶差分优化的ARC算法对火箭遥测数据进行无损压缩,达到了较高的压缩去除率和可靠性,减轻了遥测系统的信道传输压力,提高了数据的传输效率,是航天遥测数据压缩较为理想的实现方案。
参考文献
[1] 王泉,齐春,罗新民,等. LZW压缩算法的改进及其参数优化分析[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] 高艺,孙桂玲,李维祥,等.基于预测编码的无线传感器网络节点数据压缩算法研究[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] 沈海峰. 遥测系统提高传输容量方法探讨[J]. 装备指挥技术学院学报,2007,18(2):99-104.
[7] 张天序,邹胜,曾永慧.基于FPGA的图像无损压缩算法的实现[J].系统工程与电子技术,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.