ImageZero is a fast, lossless compression algorithm for 24-bit color photographic images developed by Christopher Feck. This repository repackages it as a catkin package, has a package that provides ROS integration, and has a package that implements a ROS image_transport plugin that uses it.
The compressed size for natural, photographic color images is comparable to PNG, usually between 30% to 50% of the original size. It compresses more than 20 times faster than PNG and decompresses about twice as fast, which means it is suitable for lossless compression of real-time camera video feeds. Read the KDE Blog Post about it for some more details.
The ImageZero image compression library, restructured into a catkin package. ImageZero is a high-performance lossless compression algorithm designed for natural photos.
A library that provides ROS integration for ImageZero. It contains methods for
using ImageZero to convert between sensor_msgs/Image
s and sensor_msgs/CompressedImage
s.
A ROS image_transport plugin that uses
ImageZero as its compression mechanism. It can be used like any other ROS
image_transport by setting the image_transport
param for your client node to imagezero
.
The ImageZero packages have been release for the ROS Indigo, Jade, Kinetic, and Lunar distributions. You can install any of the packages like so:
sudo apt-get install ros-<distro>-<package>
These directions assume you have already set up a catkin workspace. See this tutorial on the ROS Wiki for help setting up a catkin workspace.
If you're using wstool, add this repository to your wstool workspace:
wstool set imagezero --git https://github.com/swri-robotics/imagezero_transport.git
If you're not using wstool, you can check out the repositories with git:
git clone https://github.com/swri-robotics/imagezero_transport.git
Install all of the dependencies using rosdep by running the following command from the root of your catkin workspace:
rosdep install --from-paths src --ignore-src
Build the workspace with catkin_make:
catkin_make