APP下载

火星车图像压缩存储系统与关键算法设计

2021-01-28朱剑冰王翠莲范延芳

深空探测学报 2020年5期
关键词:码流误码火星车

徐 勇,贾 阳,郭 坚,赵 蕾,朱剑冰,王翠莲,范延芳,佟 玲

(北京空间飞行器总体设计部,北京 100094)

引 言

对未知环境的探索是人类发展的永恒主题,火星作为太阳系地球轨道外侧距离地球最近的一颗行星,许多特点与地球相似,最具人类开发宇宙第二家园的可能。同时研究火星可以了解太阳系产生和衍变的一些未解之谜。我国开展首次火星探测任务,将提升我国航天技术的水平,促进我国空间科学的发展,成为建设航天强国的标志性里程碑。

在陌生环境的探索中,图像信息无疑是最直观也是最核心的信息。2004年1月4日和25日分别登陆火星的“勇气号”(Spirit)和“机遇号”(Opportunity)“火星探测漫游车”(Mars Exploration Rovers,MERs)已在火星漫游几十km,发回照片十多万张,包括火星之流星、日落、日食和小旋风等珍贵异域照片。其中,2005年5月19日“勇气号”拍摄的火星日落景象在2007年1月美国国家航空航天局(National Aeronautics and Space Administration,NASA)组织的公众评选中被评为最佳火星照片。更具有探索意义的是它们不仅发现了火星火山喷发的证据,而且(2007年5月)发现了硅石,为“火星生命说”添加了新的证据,且是迄今有关火星有水的最强有力证据[1]。

由于图像信息中含有相当多的时间和空间冗余,导致了图像信息的数据量非常大。而火星与地球之间距离为0.56 × 108~4 × 108km,从火星到地球的通信链路带宽受到极大限制,在深空数据源端对图像进行在轨压缩无疑是节省发射能量、提高信息回传效率的必由之路。我国在月球探测中取得较多的成功经验,在月球车中使用复接存储VCDU格式数据保存图像压缩码流,而不是文件系统。实现图像的灵活挑选传输比较困难。

火星探测任务与月球探测任务所不同的是:由于空间距离遥远,火星到地球的遥测信道带宽极低并且发生误码的风险更高,传输数据容量更为宝贵。另外,由于火星任务的长期性、相机携带数量较多,火星任务对设备功耗及体积的约束也强于月球探测。因此,需要根据火星探测任务的应用需求,统一考虑和设计图像数据的压缩及传输两个环节,根据火星任务的特点及约束,从应用层面设计总体最优的图像数据压缩及传输方案。

本文面向火星车图像数据存储、压缩和传输需求进行分析,提出设计需求与关键设计特征,开展系统设计与关键软硬件架构、图像压缩核心算法与传输协议设计,满足我国首次火星探测可靠、高效、灵活的图像应用需求。

1 火星车图像管理需求分析

1.1 多相机数据管理需求

为了完成火星表面科学探测任务,火星车配置了多台多种类的相机和传感器设备[2],用于完成各阶段各图像数据获取,汇总如表1所示。

表1 多相机数据管理需求Table 1 Multi-camera data management demands

导航地形相机和前后避障相机用于火星车行走时的周围环境观察、最优路径规划和障碍物规避;配置了多光谱相机用于科学考察;多功能避障敏感器和光学避障敏感器用于实现导航下降过程中的障碍物规避和着陆点选取,同时可以记录下降过程的图像数据。而开伞过程监视相机和落火状态监视相机分别负责降落伞和落火过程的记录监视,Wi-Fi视频相机则用于着陆器与巡视器分离过程的监视。火星车上各数据源端与系统管理单元(System Management Unit,SMU)中数据存储与压缩模块连接关系如图1所示。

其中,部分相机(如开伞过程监视相机和落火状态监视相机)不用进行压缩,存储和下传其码流即可,此外还有一些工程遥测数据需要存储下传。

1.2 需求分析

为了更加高效灵活地利用器-地传输链路,火星车提出了更灵活的图像传输方式需求。为此,火星车上的大部分相机数据均采用先存储原始数据,根据需要挑选图像、设置需要的压缩方式、压缩比或其它特性,再进行压缩后下传地面,避免了相机端固定压缩比压缩后不便于后期根据图像内容重要性进行交互式传输。经过分析,对火星车多台相机图像的存储、压缩与传输提出的需求包括以下几点。

图1 火星车多相机连接图Fig. 1 Multi-camera connection diagram in Mars rover

1)基于文件的图像存储管理

我国之前“嫦娥”系列深空探测器中采用复接存储管理器完成各相机图像数据的复接存储[3],各相机进行相机端压缩后将码流送给综合电子,综合电子采用位流业务进行复接并形成虚拟信道数据单元(Virtual Channel Data Unit,VCDU)帧[4],按照时间顺序存储于复接存储器的NandFLASH芯片中,后续再根据时间和存储地址对应关系进行图像数据VCDU的下传。可以采用挑选虚拟信道(Virtual Channel,VC)的方式进行某相机的图像挑选顺序下传,但是无法实现图像的文件化管理,在使用灵活性上难以实现多相机、多图像序列号的灵活组合挑选下传的需求;而火星车携带更多台不同分辨率、多光谱的相机,且下传带宽远远低于“嫦娥”系列探测器,因此在火星车图像存储系统设计上,需要支持基于文件的图像存储管理,实现图像高效、灵活、准确的存储访问能力。一方面使得传输图像更高效,另一方面使得地面操控人员按照更接近地面计算机的文件访问方式实现火星车的图像管理和下传。

2)灵活的压缩比控制

各相机获取图像的重要性根据任务模式各不相同,即使在同一次任务中,同一相机对不同场景成像的图像数据的压缩需求也不尽相同。因此火星车图像压缩系统应当提供更灵活、强大的压缩比控制能力:支持图像的有损/无损压缩,有损压缩模式下可以支持2~64倍压缩码率的任意设置,并支持批量图像压缩时的每个图像单独设置压缩比,通过灵活的压缩比设置实现批量图像压缩传输时更加高效地使用珍贵的传输信道传输的每一个比特。

3)具备码流质量渐进性特性

为了改善低码率下图像传输应用体验,火星车图像压缩系统所采用的压缩编码算法应具备码流质量渐进性特性,使得地面所接收到的每一个比特的码流均能起到持续改善图像质量的作用;即质量渐进性特性使得火星车在给地面传输图像数据时,即使每幅图像的数据没接收完,也可以在任何时刻采用已经接收的码流实现整个图像的解码显示,随着码流的持续传输,图像质量逐渐改善,直到所有数据传输完成,图像质量达到最优效果。如果采用无损压缩比设置,码流传输完成后,地面解压获得图像即达到质量无损。

4)支持感兴趣区域(Region Of Interest,ROI)编码

感兴趣区域编码是近年来图像压缩技术发展的一种新编码特性,支持整幅图像中不同区域根据重要性分配不同的压缩码率,即在重要性较大的感兴趣区域分配较大码率获得较高图像质量的同时,不太重要的背景区域采用较小码率,从总体上解决了整幅图像高压缩比与保障重要区域高质量之间的矛盾;该技术提供的应用特性较为符合火星车的低码率传输信道的应用环境,使得地面运控用户或科学家能够在尽量减少总体传输码率的情况下对感兴趣区域保持较高图像质量甚至无损质量。

5)抗误码扩散机制

尽管留有一定的链路能力余量,并采用了优秀的低密度奇偶检验码(Low Density Parity Check code,LDPC)信道编码,在一定程度上缓解了传输误码,但是由于超远传输距离和不可预知干扰因素影响,误码导致的压缩码流错误不可避免,缺少抗误码扩散机制的话,就会导致整个图像解压错误。因此,图像压缩算法与传输协议必须考虑误码影响,将误码影响控制在图像局部区域。

6)缩略图策略

类似地面计算机系统,火星车提供车上存储图像缩略图生成和预览功能。便于地面运控和图像用户在传输所有图像数据前,提前利用极小码率回传所有图像的缩略图,对车上每幅图像的内容有所了解和评估,为后续的图像挑选、压缩比设置、感兴趣区域设置提供依据,是图像交互式按需传输的重要环节。

2 系统设计

2.1 系统架构

在火星车中,图像文件存储处理系统位于系统管理单元中,主要完成各相机送来的图像数据存储管理,工程载荷复接存储、图像压缩、压缩码流组织传输、遥测/回放数据下传、与中央处理控制模块进行数据通信功能。图像文件存储处理系统采用A/B双机冷备份模式,单份组成框图如图2所示,主要包括以下功能组件。

图2 图像存储与压缩传输模块功能框图Fig. 2 Block diagram of data storage & process module

1)LVDS接口组件:完成接收载荷的数据和下传数据到数传机的高速差分接口功能;

2)FPGA(Field Programmable Gate Array)芯片组件:采用抗辐照300万门FPGA,实现CPU通信、图像数据接收与NandFLASH文件系统,MRAM与NandFLASH接口与冗余容错管理;

3)MRAM&FLASH存储体阵列组件:MRAM存储各类非易失信息,包括坏块表、读写地址等。NandFLASH用于存储大容量数据;

4)DSP&SDRAM处理组件:用于图像压缩算法实现、码流组织、下传控制,DSP选用宇航级抗辐照DSP处理器,外挂两片SDRAM计算缓存提供图像压缩算法所需计算缓存;

5)电源管理:模块供电、上电复位、电压转换等,产生3.3 V、1.5 V、1.8 V电压。

2.2 图像存储文件系统

为适应火星车轻小型化的需求,存储器阵列采用2片3D叠封的NandFLASH芯片(如图3所示,叠封8片K9F8G08U0M基片)[5],每片容量64 Gbits,因此板载总物理容量为:64 Gb × 2 = 128 Gb = 16 GB。

图3 NandFLASH基片K9F8G08U0M存储结构Fig. 3 NandFLASH K9F8G08U0M array organization

为了支持按照相机、按照图像帧为单位的并行存储与随机访问,将图像存储系统分为11个分区的存储空间按照Block进行分配,如表2所示。

表2 图像存储分区地址分配表Table 2 Image storage partition address allocation table

MRAM中数据组织方式如图4和图5所示,MRAM中分配最开始的32 bit × 2 K的逻辑空间存储整个Nandflash的坏块信息,随后分配6 K × 32 bit的空间存储各分区的图像文件的节点信息。每个文件的节点信息包括32 bit时间与若干32 bit节点物理地址信息。为存储以上信息,板上搭载一片磁电存储器(MRAM)的容量为8 Mb(32 bit × 256 K),设计对MRAM中存储所有数据在3个地址存储3份,按照TMR存储访问,那么逻辑空间为32 bit × 85 K,除去上述分析的32 bit × 8 K空间外,还剩32 bit × 77 K余量用于存储其它信息。

图4 MRAM中全色图像数据组织方式图Fig. 4 Organization of panchromatic image data in MRAM

文件系统的实现载体为系统管理单元中存储复接FPGA,主要包含图像接收创建写入模块、DSP图像访问模块、图像节点信息初始化模块、MRAM控制器、FLASH访问控制模块共5个模块,如图6所示。

2.3 图像压缩算法

图5 MRAM中多波段图像数据组织方式图Fig. 5 Organization of multi-band image data in MRAM

图6 文件系统的FPGA的顶层架构设计Fig. 6 Top-level architecture design of the FPGA files system

火星车采用了一种在计算复杂度与算法性能方面较好平衡的“自适应首1游程编码算法”(图7)[6]实现图像数据的压缩处理,并支持所需的质量渐进式码流、感兴趣区域编码和抗误码扩散特性。该算法为首1游程的位面编码算法[7]的改进算法,在位置数据编码时使用计数法进行bit值进行前向概率估计,并按照概率估计自适应选择最优的游程和指数哥伦布编码参数,利用小波系数位置系数概率分布不均匀的特性提高编码效率。自适应参数的选择通过估计当前上下文bit流的概率,选择当前bit最适合的变长编码器编码,以提高整体编码效率,最佳编码参数表如表3所示。

图8中的小波变换在首1游程编码算法中已有介绍,此处不再详述。

其中EG(x,K)表示对整数x进行K阶的指数哥伦布编码(Exp-Golomb)[8]。

图7 上下文“自适应首1位游程编码算法”图示Fig. 7 Illustration of Context based Adaptive First 1 bit run-length bit-plane coding algorithm

表3 最佳编码参数表Table 3 Optimal encoding parameters table

图8 上下文“自适应首1位游程编码算法”Fig. 8 Context based adaptive first 1 bit run-length bit-plane coding algorithm

图9 上下文自适应带符号二进制游程编码算法Fig. 9 Context based adapted run-length coding of Signed binary data

2.4 其它功能设计

1)支持ROI编码

火星车图像压缩软件中,基本压缩单位为1 024 ×1 024的图像,并将其设置为固定的4 × 4 分段,其它尺寸图像压缩由该单位图像压缩程序组合完成。由于压缩码流具备质量渐进式特性,火星车ROI编码基于分段码流的位面顺序调整完成,对于ROI区域对应的分段则在压缩码率截断时提高其位面的传输优先级,高于背景区域若干位面。

2)缩略图策略

在存储了多幅图像后,为使得地面能够大致看到各图像的大致内容,要求具备生产并下传缩略图的功能。因此,对于1 024 × 1 024的图像,支持1/16下采样生产64 × 64的缩略图(thumbnail)。对于2 048 × 2 048的图像,支持1/32下采样生产64 × 64的缩略图,同时包含60字节的附属信息。

3)抗误码扩散机制

软件实现时,基本压缩单位为1 024 × 1 024的图像,并将其设置为固定的4 × 4 分段,其它尺寸图像压缩由该单位图像压缩程序组合完成。在进行位面编码时,每个分段的每个位面的码率独立打包,并附带其位面与分段编号,再封装为VCDU下传地面,可以有效防止误码扩散。

3 工程实现与分析

火星车中图像存储与压缩传输模块采用单板双机设计,单机设计架构如图10所示,包括了FPGA、MRAM、Nand-FLASH、DSP、SDRAM、LVDS接口等芯片,均采用抗辐照宇航级芯片设计。

图10 火星车中图像存储与压缩传输模块Fig. 10 Srorage and compression Module in MARS Rover

多分区并行图像文件系统实现与FPGA中,可以完成多相机同时工作的文件并行创建、写入、读取、删除、打开、关闭等操作,实现火星车图像数据的灵活存储与下传。设计基于VHDL语言开发,其设计层次树如图11所示,共19个顶层模块。

图11 FPGA代码层次树Fig. 11 Hierarchy tree of FPGA design

各模块中采用安全状态机实现,并在关键寄存器与关键控制路径上采用三模冗余设计,辅以在轨定期刷新(scrubing)操作,可以有效抵御空间环境下的单粒子功能中断影响,确保火星车在任务过程中的功能可靠性。该设计最终采用ISE9.2 XST综合工具进行了综合实现,设计使用资源如表4所示。

表4 XQR2V3000(-4)FPGA资源开销Table 4 Resources utility in XQR2V3000(-4)FPGA

选取了多种复杂度测试图像(图12)进行测试,实验结果如表5所示。表5中无损压缩性能对比中,改进后“自适应首1游程编码算法”全面优于原F1Rrun 算法[7]和CCSDS-IDC[9],与JPEG2000[10]算法相近,个别图像比如baboon图像还取得优于JPEG2000的性能。相对于后者复杂的EBCOT+QM算法,本文利用简单的首1游程和上下文自适应方法即可获得相近的性能。

图12 标准测试图样Fig. 12 Standard sample images for test

表5 无损压缩性能比较Table 5 Performance of lossless image compression bpp

表6和表7给出了针对Lena图像的有损压缩性能的实验对比,均采用兼容无损压缩的整数97小波变化时,本文算法获得优于改进前的F1Rrun[7]、CCSDSIDC[10]及略优于SPIHT[11]算法的性能,尤其是低码速率时优于F1Run算法0.7 dB左右。如果采用浮点97小波变化,本文算法仍然获得接近SPIHT和JPEG2000算法的性能,而且该算法编码复杂度远远低于后者,且容易实现位平面间并行化编码从而实现高速图像压缩,在工程应用中具有明显优势。

表6 整数97小波有损压缩性能比较Table 6 Performance in lossy compression by using Int97 DWT

表7 浮点97小波有损压缩性能比较Table 7 Performance in lossy compression by using float-point97 DWT

4 结 论

本文针对火星探测任务中图像文件存储管理需求,设计了一种基于FPGA的并行图像文件系统,采用FPGA实现,兼顾了高速高可靠与高灵活的特点,且采用了数据RS编码等多种措施抵抗误码,并在火星车存储系统中完成了在系统中多类型,多相机数据的文件存储管理,在保证高可靠的同时,提供多分区的,多图像文件并行读写与按需寻址功能,有效解决了传统复接存储类设备中图像数据并行存储以及火星表面图像处理按需访问的难题。

针对宇航应用中计算及缓存资源受限的特点,火星车采用了“自适应首1游程编码算法”作为核心算法,采用简单的计数法估计上下文概率,对计算复杂度增加较少,且可以有效提升编码效率,还保留了原算法的位面间并行高速的图像压缩特性,并保留了原算法的内嵌式编码特性,通过码流截断来精确控制压缩比,支持码流的渐进性传输,支持无损及有损压缩。其无损压缩性能优于CCSDS-IDC、LDC等标准推荐算法,与JPEG2000相近。

最终在工程研制中实现了多相机数据存储管理、图像压缩比灵活控制、质量渐进性传输、ROI编码、抗误码扩散和图像缩略图生成下传等功能,满足我国首次火星探测任务可靠、高效、灵活的图像应用需求。

猜你喜欢

码流误码火星车
“祝融号”在火星上的奇妙之旅
中国祝融号火星车艺术效果图
揭秘“天问一号”火星车
高清网络摄像机图像延迟分析及解决方案
SDH传输设备信号传输过程中误码问题的分析
一种基于CAN总线的误码测试方法
如何对数字电视信号进行有效监测
一种比较ASN.1码流差异的方法
潘小芳(太原铁路局太原通信段网管中心,太原 030012)
IRD对TS流的处理