黄 佳, 曹 金, 陈 夏
(上海微小卫星工程中心 上海 200210)
CCSDS无损数据压缩算法在分包遥测中的应用及其FPGA实现∗
黄 佳, 曹 金, 陈 夏
(上海微小卫星工程中心 上海 200210)
对CCSDS推荐的无损数据压缩算法(Rice算法)进行研究,介绍Rice算法的基本原理与编码方法以及如何应用到航天测控分包遥测体制中。通过优化Rice算法的FPGA实现,对实际某卫星遥测数据进行压缩试验,压缩比在1.4~2.1之间,对后续研制型号设计遥测存储、传输方案有一定指导意义。
分包遥测; CCSDS建议; 无损数据压缩; FPGA实现
随着航天科技的高速发展,一方面空间任务的增加导致航天器上原始遥测数据量迅速增加[1,2],另一方面要求航天器尽量降低功耗并且提高功能密度,这给遥测存储和链路传输带来不少困难[3],为此空间数据系统咨询委员会CCSDS提出了数据压缩的建议。在航天器遥测系统中应用数据压缩算法(Rice算法)具有以下优点[4]:①实现了数据无损压缩。对于某些航天应用场合,每个比特数据蕴含的信息都有可能十分珍贵;②算法易于在功耗和内存相对紧张的平台中实现;③算法对于不同统计特性原始数据都有较好的压缩比;④算法能够较好地融入到分包遥测体制中。
Rice算法的基本思想是:使用一组可变长度的码字对信源符号重新编码,其中出现概率较高的符号用较短的码字表示,出现概率较低的符号用较长的码字表示。Rice算法实现框图如图1所示。Rice算法实现过程主要分为预处理和自适应编码两个部分。
1.1 预处理
预处理的主要目的是消除信源符号之间的相关性,提高编码效率。其输入x={x0,x1,…,xJ-1}为一组包含J个信源符号的码块(J一般取值8、16、32、64;J取值越大,压缩比越高,同时编码所消耗的资源越多)。在分包遥测系统中,xi代表一个遥测码字,通常为8bits数据。处理分包遥测数据时,建议J取8或16。
图1 Rice压缩算法实现框图
为了实现数据的无损压缩,要求预处理过程可逆。一种易于实现的预处理器如图2所示。
图2 一种Rice算法预处理器实现框图
图2中,Δi为当前符号与前一个符号的差值。映射器将Δi映射为n(遥测中,n=8)bits的非负整数δi。δi应满足如下条件
式(1)中,Pi为δi=i的概率。常采用的映射算法为
式(2)中,θi=min(xi-xmin,xmax-xi)。当n=8时,xmin=0,xmax=255。
1.2 自适应编码器
自适应编码器负责对预处理后的J×n bits数据集δ进行编码。编码器内部包含多个编码选项,每个选项能对不同熵的信源进行有效编码,编码器自动选择其中效率最高的一种编码方式作为输出。自适应编码器内部的编码选项主要分为FS编码、k阶分裂编码、二次项扩展编码、零块编码和不压缩选项五类。
1.2.1 FS(Fundamental Sequence)编码
FS编码通过识别bit“1”前面的bit“0”的个数,来确定当前传输的样本符号δi。具体编码方式见表1。
表1 FS编码方式
1.2.2 k阶分裂编码
k阶分裂编码对预处理后的每个符号δi(n bits)进行分裂。对从每个符号中分裂出的低k位不编码,对高n-k位进行FS编码,然后把分裂出来的低k位附加在FS码后。k=0时即为FS编码。对于遥测字长n=8的情况,k取值[1,5]。
1.2.3 二次项扩展编码
二次项扩展编码主要是针对信源熵较低的符号进行编码。它将2个预处理后的码字δi和δi+1按照一定算法拼接成新码字γi,然后对γi进行FS编码。γi生成方法如下
1.2.4 零块编码
当预处理后的一个或者连续多个码字δi为全零时,采用全零FS编码。具体编码方法可见参考文献[5]。
1.2.5 不压缩选项
如果上述几种编码方式均不能对样本码字进行有效压缩,则选择不压缩选项,直接传输预处理后的码字+编码ID。
每J个信源符号编码后,对应一个编码数据集CDS(Coded Date Set),根据不同的编码选项,其格式略有不同。CDS格式如图3所示。
图3 CDS格式
ID标识不同的编码选项,ID具体取值可见参考文献[4]。n bits参考码字用来给接收端提供解码时的参考值。n bits参考码字为J个原始码块中第一个码字x1的二进制码值,不进行Rice编码。已编码数据流格式如表2所示。
表2 已编码数据流格式
符合CCSDS分包遥测[6]协议的Rice压缩源包格式如图4所示。
图4 符合CCSDS分包遥测协议的Rice压缩源包格式
在源包末段填充比特是为了保证Rice压缩源包长度为8bits的整数倍。另外,为了保证接收端正确解包,在遥测协议中需要明确遥测字长n,码块中的码字个数J,Rice压缩源包中编码数据集的个数l。
Rice压缩算法在整个遥测通信链路中的位置见图5。
以某分布式遥测采集的卫星为例来说明数据采集、压缩以及由卫星传输至地面的过程。星上各分系统下位机负责采集本分系统的遥测数据,按照星上约定的应用层总线协议传输至星载计算机;星载计算机对原始数据进行压缩后,加上当前星上时间、包主导头、副导头等信息,构成CCSDS源包。在链路层,当前生成的压缩源包与其它源包按照特定算法合路组成遥测帧。遥测帧经过信道编码后,送往物理层调制发射。
图5 Rice算法在分包遥测中应用框图
3.1 FPGA设计
与CPU的串行计算相比,FPGA可以实例化多个功能部件,并行运算,从而提高压缩处理码速率[7]。图6是Rice算法的FPGA实现框图。本图中,取n=8、J=8进行说明。
图6 Rice算法的FPGA实现框图
整个工程主要分为预处理和自适应编码两个模块[8]。预处理模块将输入的遥测比特流数据串并转换后,依次对各遥测字xi作预处理,同时计算Δi和θi,并按照式(2)得出相应的值。
通过编码长度计算,找到最优编码算法后,数据集δ便送入相应的编码器进行编码。各种编码器可以事先实例化,从而进一步提高处理速度。
3.2 试验验证
考虑到本方案的应用背景,选择Xilinx公司的XCV300-6HQ240芯片进行试验,在航天实际应用时,只需将FPGA更换为其对应的抗辐加固版本XQVR300即可。其中,FPGA工作时钟为4MHz。编译后,对某卫星48小时内采集的延时遥测数据进行压缩试验,遥测码速率为32.768kb/s。试验结果表明:热控包、姿轨控包压缩比较高,在1.7~2.1之间,其它数据源包压缩比在1.4~1.7之间。
CCSDS标准正逐步被中国航天领域采用。本文结合CCSDS推荐的分包遥测与无损数据压缩技术,详细阐述了无损数据压缩的原理,并在FPGA上实现了Rice算法。对某卫星采集的实际遥测数据进行压缩试验,其压缩比在1.4~2.1之间。如需进一步提高压缩比,需要在遥测采集编排时,将相关性较强的遥测量邻近排放,这部分工作需要在遥测采集方案实施阶段完成。本方案可以为后续航天器遥测采集、传输方案设计提供一定参考。
[1] 郑翠芳.几种常用无损数据压缩算法研究[J].计算机技术与发展,2011,(9):73~76.
[2] 李锦明,张文栋,毛海央,等.实时无损数据压缩算法硬件实现的研究[J].哈尔滨工业大学学报,2006,2(38):315~317.
[3] 朱 红,郑晓松,黄普明.遥感卫星高速数传信息流设计[J].中国空间科学技术,2013,(8):55~61.
[4] Lossless Data Compression.Recommendation for Space Data System Standards[S].CCSDS 121.0-B-2.Blue Book. May,2012.
[5] Lossless Data Compression.Report Concerning for Space Data System Standards[S].CCSDS 121.0-G-3.Green Book. April,2012.
[6] Packet Telemetry.Recommendation for Space Data System Standards[S].CCSDS 102.0-B-5.Blue Book. November,2000.
[7] Chu Qingwei,Zhang HongQun,Wu YeWei.Research and Software Implementation of CCSDS Lossless Data Compression Algorithm[C].IEEE 11th International Conference on Signal Processing,2012.
[8] 朱云华,王凤阳,等.CCSDS无损数据压缩算法的实现与应用研究[J].中国空间科学技术,2008,(8):40~46.
Huang Jia, Cao Jin, Chen Xia
The principle of CCSDS recommended lossless data compression algorithm(Rice algorithm)is introduced,and how to use this algorithm in the packet telemetry system is also explained.Then the FPGA implementation process of this algorithm is analyzed and improved.At last,a large amount of compression-study has been done on practical spacecraft telemetry data.The compression performance,expressed as compression rate,is between 1.4 and 2.1.The result has important reference value for the design of other spacecraft telemetry scheme.
Packet telemetry; CCSDS recommended; Lossless data compression; FPGA implementation
TN927.2
A
CN11-1780(2014)02-0043-05
黄 佳 1984年生,2008年毕业于哈尔滨工业大学,获通信与信息系统硕士学位,研究方向为卫星通信数据处理。
中科院支撑技术项目(615010201)
2013-10-10 收修改稿日期:2013-10-28
Application and FPGA Implementation of CCSDS Lossless Data Compression in Packet Telemetry
曹 金 1984年生,2006年毕业于华东理工大学,测控技术与仪器专业,研究方向为卫星通信系统设计。
陈 夏 1986年生,2011年毕业于西安交通大学,获测控技术与仪器专业硕士学位,研究方向为卫星自动化测试系统。