Fast Lossless Image Compression: interested?

Hi,

so, I coundn’t shut up about this on my social media, so some of you might be already sick and tired of me, but I am sharing it here, hoping to understand if the robotic community may benefit from this work.

By pure chance, I started exploring the topic of Lossless Image Compression, in particular in terms of speed, thinking about real-time streaming and recording.

I got very interesting results that I think may benefit some use cases in robotics.

Before moving forward releasing the code or more details about the algorithm (that is very much still work in progress) I wanted to:

  • share the binaries with the community to allow people with healthy dose of skepticism to replicate results on their computer.

  • understand what the actual use case for fast, but still better than PNG, lossless compression is.

These are my results: 3 codecs with 3 different tradeoffs (being Griffin the most balanced one in the 3 dimensions).

I would love to hear the feedback of the community :grin:

LINK: GitHub - AurynRobotics/dvid3-codec · GitHub

Also, if you think that you have a practical application for this, please DM me to discuss this, either here or contacting me on dfaconti@aurynrobotics.com

Davide

8 Likes

No reaction ? :laughing:

Let me drop another image here:

1 Like

What’s your proposal here? Are you thinking of an alternative back end for ROS Bag? A new format for image pipeline? A lossless WebRTC-like a streaming utility for a UI? A super cool new fourth thing?

Since it is almost tax day here in the states, I want to know what kind of tax I’m paying to send uncompressed images over the wire in ROS versus using a video streaming codec.

Just some food for thought, if you are streaming series of images (i.e. frames from a camera) most video streaming codecs exploit inter-frame consistency to achieve higher compression ratios and de/compression speeds. What might be handy here is a bench mark on how well a lossless sequential image stream compares to something like a lossy video streaming codec. I would try using a dataset of 10-30s worth of images collected at 30-60 Hz from a ROS Bag (i.e. 300-1800 images taken sequentially) and compare the results against a video streaming codec. This would help determine the trade off between using something like a lossy real-time video streaming codec versus having a series of images with better per-image compression.

1 Like

The truth is that maybe there is no use cases for this technology.

If the goals of streaming is visual inspection, or teleoperation, lossy video streaming is waaaay better.

Even if someone still prefers to save individual Compressed images in rosbag, maybe lossy jpeg is fine?

So, there is a high probability that no one needs this :sweat_smile:

1 Like