POCKET+ is a lossless compression algorithm for fixed length time series data.
This repository contains a C++17 based implementation of a variety of the POCKET+ compression algorithm, described in the CCSDS 124.0-W-6 standard (version June 2021). The implementation was done to validate the compression performance and properties of the algorithm. Since the standard was not yet released, some changes might happen before the final release.
This project uses Google Test (GTest) with CMake for testing and building.
sudo apt-get install cmake git libgtest-dev lcov gcovr
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
cd lib
sudo cp *.a /usr/lib
cd ~
git clone https://github.com/visionspacetec/PocketPlus.git
cd PocketPlus
mkdir build
cd build
cmake ..
make
make testTo install the library in /usr/local/lib run:
sudo make install
sudo ldconfigIf you forget to run ldconfig, the programm links but does not run.
sudo apt install doxygen graphvizBuild documentation:
doxygen DoxyfileOpen ./docs/index.html with your favorite web browser.
When using the installed PocketPlus library in another C++ project, include it with CMake:
find_library( PocketPlus REQUIRED )
In you code, import the compressor, decompressor and the utility functions as needed:
#include "pocketpluscompressor.h"
#include "pocketplusdecompressor.h"
#include "pocketplusutils.h"A simple example can be found in the provided main function, which is only ment to showcase and test the algorithm.
valgrind --tool=callgrind ./PocketPlus.exe
gprof2dot --format=callgrind --output=out.dot ./callgrind.out.[xxx]
dot -Tpng out.dot -o graph.png
# Or, open with KCachegrind/QCachegrindcd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
make PocketPlus_tests_coverageThis work was created following a standard defined by the Consultative Committee for Space Data Systems (CCSDS): https://public.ccsds.org
If you would like help implementing a new feature or fix a bug, check out our Contributing page and the Code of Conduct!
Please open an issue for bug reporting, enhancement or feature requests.