6

I'm dealing with a large archive of satellite images of the Earth, each one taken 15 minutes apart over the same area, therefore they are quite similar to each other. Two contiguous ones look like this: enter image description here

Video algorithms do very well compressing multiple similar images. However, this images are too large for video (10848x10848) and using video encoders would delete the metadata of the images, so extracting them and restoring the metadata would be cumbersome even if I get a video encoder to work with such large images.

To make some tests I've reduced the 96 images of one day to 1080x1080 pixels, totaling 40.1MB and try different compression with the folowing results:

  1. zip: 39.8 MB
  2. rar: 39.8 MB
  3. 7z : 39.6 MB
  4. tar.bz2: 39.7 MB
  5. zpaq v7.14: 38.3 MB
  6. fp8 v2: 32.5 MB
  7. paq8pxd v45: 30.9 MB

The last three, are supposed to take much better advantage of the context and indeed work better than traditional compression, but the compression ratio is still pretty poor compared with mp4 video that can take it to 15 MB or even less preserving the image quality.

In addition, using packJPG, that packs each image separately. The whole set get down to 32.9 MB, quite close to fp8 and paq8pxd but without taking at all advantage of the similarities between images (because each image is compressed individually).

In another experiment, I calculated in Matlab the difference of the two images above, and it looks like this:

enter image description here

Compressing both original images (219.5 + 217.0 = 436.5 kB total) with fp8 get them down to 350.0 kB (80%), but compressing one of them and the difference image (as a jpg of the same quality and using 122.5 kB), result in a file of 270.8 kB (62%), so again (as revealed by the mp4 and packJPG comparison), fp8 doesn't seem to take much advantage of the similarities. Even compressed with rar, one image plus the difference do better than fp8 on the original images. In that case, rar get it down to 333.6 kB (76%).

I guess there must be a good compression solution for this problem, as I can envision many applications. Beside my particular case, I guess many professional photographers have many similar shots due to sequential shooting, or time-lapse images, etc. All cases that would benefit from such compression.

Also, I don't require loseless compression, at least not for the image data (metadata must be preserved).

So... Is there a compression utility that take advantage of the similarities between images better than zpaq and paq8pxd?

I envision that the solution could be some kind of wrapper for a video encoder, that would allows to easily compress the images as video but extract them as individual frames, keeping filenames and metadata (like EXIF info) for each.

NOTE: The two images of the above test can be downloaded here, and the 96 images of the first test here.

9
  • Have you looked at Graphic Converter? This app has been around for quite a while and can handle most image types. Maybe it would have some sophisticated compression routines. Just a suggestion.
    – Natsfan
    Commented Apr 10, 2018 at 3:08
  • @jmh I haven't. Unfortunately it is only available for Mac OS and I use Linux. However, having a quick look at the features, doesn't seem to offer the feature I'm looking for. Commented Apr 10, 2018 at 20:01
  • The links are 404 Commented Jan 11, 2019 at 12:56
  • Those are not real satellite photos, are they? How can the clouds be so bright on the night side? Commented Jan 11, 2019 at 13:09
  • @ThomasWeller They are a visualization of real data, that includes, infrared and thermal bands, that have been combined in a way that clouds can be seen both in day and night sides of the globe. Commented Jan 11, 2019 at 17:53

1 Answer 1

-1

Would suggest you to use jpeg optimizer or Tinypng. Being a blogger, I have been using these two tools for compressing my image sizes

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.