Data Compression for Satellites

The generation of spacecraft data has a direct correlation with the value of any mission. More data typically means more mission value. That is why we at VisionSpace have been looking into the compression of satellite telemetry data. In particular, we looked at the new and yet-to-be-released CCSDS standard for housekeeping data compression. This article is the second part of this series; if you have not read the first, check it out here.

To meet the specific needs of spacecraft operations and allow interoperability among space agencies worldwide, the Consultative Committee for Space Data Systems (CCSDS) and European Cooperation for Space Standardization (ECSS) define standards that are in use by member agencies and among commercial spacecraft operators. These well-reviewed standards reduce risk, development time, and overall project costs while enabling interoperability.

The CCSDS defined standards suitable for images, multi-, and hyperspectral image data compression. These include a lossless or lossy 2D image compressor [CCSDS 122.0-B-2] and a lossless 1D universal Rice code compressor [CCSDS 121.0-B-3]. For multi- and hyperspectral image compression, there exists a lossy or lossless [CCSDS 122.1-B-1] and a predictive 3D image compressor [CCSDS 123.0-B-2].

Swirling ice in the Foxe Basin, Nunavut, Canada

Currently, there are two more compression algorithms under review by the CCSDS. The first of these is called "Compression of Raw Synthetic Aperture Radar Data". It uses a block-based compression method to compress the data stream generated by radar payloads onboard a satellite. We focused on the second new standard for the "Robust Compression of Fixed-Length Housekeeping Data". It is the first standard ever defined to address the problem of housekeeping data compression on satellites. While the image compression algorithms can only work on pixels with 16- or 32-bit data types, in contrast, the standard for housekeeping data compression supports a range from 1 bit up to 65535 bits which covers nearly all commonly used data packet sizes onboard a spacecraft.  

The base for the new housekeeping data compression standard is the POCKET+ algorithm. It is a lossless compression algorithm for fixed-length time series data. Only the compression procedure is defined, and the decompression must be derived from it. POCKET+ compresses satellite housekeeping TM data in near real-time. This data is of constant length and often has repeating patterns and fixed positions where the data changes. Based on this, it extracts the most recent changes, and only the changes are transmitted, assuming that the remaining data is unchanged. The algorithm works best for regular changes in the Least Significant Bit (LSB) position. This algorithm builds on the POCKET algorithm, described in the patent "Method, device and system for compressing time-series data". In 2015 the algorithm was first tested on the ESA PROBA-2 earth observation satellite mission. The POCKET algorithm has the shortcoming that it is entirely ground-controlled, and the compressor on board the spacecraft was not allowed to optimize the compression on its own. The upgraded POCKET+ algorithm was patented in 2015 and launched in 2019 with the OPS-SAT CubeSat mission to encounter these problems. A patent for POCKET++ was filed in 2019 to enhance the compression performance further.  

Based on POCKET+, the CCSDS decided to develop a compression algorithm standard named "Robust Compression of Fixed-Length Housekeeping Data", which is currently under review and implemented independently by different organization members for validation before the standard is released. It offers parameters to adapt to changes in the data and a unique robustness feature that maintains context when losing packets over an unstable connection.  

To investigate the possible compression performance of the new standard and its applications, we implemented the draft (November 2020) in C++17. The final version of the CCSDS standard might differ from the algorithm implemented, but the core concepts will remain. As soon as the final version is released, the implementation will be updated accordingly. The complete source code is available under a free and open-source license on GitHub.

We put the algorithm to the test with housekeeping data from ESAs Rosetta and Venus Express missions. Without any robustness features used, the Rosetta data set was compressed by 14 on average, and maximum robustness resulted in an average factor of 6.5. The data set consists of time-series data packets with different lengths from various subsystems of the spacecraft. How well a fixed-length parameter compresses depends on multiple factors, including the packet length.

Pocket+ Compression factor versus Packet length

The POCKET+ encoding implementation is compliant with the CCSDS draft standard "Robust Compression of Fixed-Length Housekeeping Data". The implicitly given decoding was derived from the standard and implemented for verification that the encoding works as expected. The implementation exports in the form of a shared library and provides a simple application for demonstration purposes. An emphasis on readability rather than performance enabled the code to serve as a reference for our Field Programmable Gate Array (FPGA) implementation.

Our FPGA IP core design is based on VHDL and consists of fully synthesizable code, verified with simulations. It was already deployed on the ITAR-free "NG-Medium" FPGA by NanoXplore. The FPGA implementation currently offers energy-efficient data compression in constraint environments and up to 75 megabits per second thruput for 2-kilobyte data packets.

NanoXplore Board

Explore more of our open-source projects: https://github.com/visionspacetec/

If you are interested in spacecraft data compression or want to know more about our offered products and services, please contact us!

Miguel Lordelo