Viele ähnlich große Bilder komprimieren?

16

Ich habe es mit einem großen Archiv von Satellitenbildern der Erde zu tun, die jeweils 15 Minuten voneinander entfernt sind und sich daher ziemlich ähnlich sind. Zwei zusammenhängende sehen so aus: Geben Sie hier die Bildbeschreibung ein

Videoalgorithmen komprimieren sehr gut mehrere ähnliche Bilder. Diese Bilder sind jedoch zu groß für Videos (10848 x 10848), und die Verwendung von Video-Encodern würde die Metadaten der Bilder löschen. Das Extrahieren und Wiederherstellen der Metadaten wäre daher umständlich, selbst wenn ich einen Video-Encoder für die Arbeit mit so großen Bildern bekomme.

Um einige Tests durchzuführen, habe ich die 96 Bilder eines Tages auf 1080 x 1080 Pixel (insgesamt 40,1 MB) reduziert und eine andere Komprimierung mit den folgenden Ergebnissen versucht:

  1. Postleitzahl: 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

Die letzten drei sollen den Kontext viel besser nutzen und tatsächlich besser funktionieren als die herkömmliche Komprimierung, aber das Komprimierungsverhältnis ist immer noch ziemlich schlecht im Vergleich zu MP4-Videos, bei denen die Bildqualität auf 15 MB oder noch weniger erhalten bleiben kann.

Keiner der von diesen Komprimierungsprogrammen verwendeten Algorithmen scheint jedoch die Ähnlichkeit der Bilder auszunutzen, wie dies bei der Videokomprimierung der Fall ist. Tatsächlich wird mit packJPG , das jedes Bild separat komprimiert, der gesamte Satz auf 32,9 MB reduziert, was fp8 und paq8pxd sehr nahe kommt, ohne jedoch die Ähnlichkeiten zwischen den Bildern auszunutzen (da jedes Bild einzeln komprimiert wird).

In einem anderen Experiment habe ich in Matlab die Differenz der beiden obigen Bilder berechnet und es sieht folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein

Wenn Sie beide Originalbilder (219,5 + 217,0 = 436,5 kB insgesamt) mit fp8 komprimieren, werden sie auf 350,0 kB (80%) reduziert. Wenn Sie jedoch eines davon und das Differenzbild (als JPG gleicher Qualität und mit 122,5 kB) komprimieren, erhalten Sie das Ergebnis In einer Datei von 270,8 kB (62%) scheint fp8 (wie aus dem Vergleich von mp4 und packJPG hervorgeht) die Ähnlichkeiten nicht sehr auszunutzen. Sogar mit rar komprimiert, ist ein Bild plus der Unterschied besser als fp8 auf den Originalbildern. In diesem Fall wird es selten auf 333,6 kB (76%) gesenkt.

Ich denke, es muss eine gute Komprimierungslösung für dieses Problem geben, da ich mir viele Anwendungen vorstellen kann. Neben meinem speziellen Fall haben viele professionelle Fotografen aufgrund von Serienaufnahmen oder Zeitrafferbildern usw. viele ähnliche Aufnahmen. Alle Fälle, die von einer solchen Komprimierung profitieren würden.

Außerdem benötige ich keine verlustfreie Komprimierung, zumindest nicht für die Bilddaten (Metadaten müssen erhalten bleiben).

Also ... Gibt es eine Komprimierungsmethode, die die Ähnlichkeiten zwischen den komprimierten Bildern ausnutzt?

Die beiden Bilder des obigen Tests können hier heruntergeladen werden , und die 96 Bilder des ersten Tests hier .

Camilo Rada
quelle
1
Weitere Rückmeldungen von Personen, die die Frage zurückgestellt haben, sind willkommen. Ich bin der Meinung, dass die Frage allgemein genug ist und beantwortet werden kann, ohne auf ein bestimmtes Produkt zu verweisen, sondern auf eine Methode, einen Algorithmus oder eine Technik.
Camilo Rada
1
Erdnussgalerie (ich habe nicht für die Schließung gestimmt), aber Is there a compression utility that take advantage of the similarities between images better than zpaq and fp8?und Is there a updated/maintained version of the fp8 utility?sind wahrscheinlich die beleidigenden Linien. Vergleichen Sie das mit zB Is there a compression *method, algorithm or technique* that take advantage of the similarities between images better than zpaq and fp8?Der Fokus ist wohl viel anders. Das Anfordern von Software ist wahrscheinlich ohnehin überflüssig, da bestimmte Software (falls zutreffend) mit ziemlicher Sicherheit in jeder Antwort erwähnt wird.
Anaksunaman
1
Genau. Und fertig. Viel Glück. =)
Anaksunaman
2
"Zu groß für Video"? Ich bin mir nicht sicher, ob ich damit einverstanden bin. Einige Codecs haben sehr hohe oder unbegrenzte maximale Auflösungen. Sie versuchen nicht, ein anschauliches Video zu erstellen, sondern komprimieren nur einige statische Bilder. Könnten Sie die Metadaten als Untertitel oder andere Daten codieren?
Benshepherd
1
Um die Liste der Anwendungen zu erweitern, würde ich dies benötigen, um Originalframes eines Zeitrafferprojekts zu speichern, die in Zukunft zusätzliche Teile erhalten werden. Die aktuellen 10 000 x 4K JPG-Bilder benötigen 25 GB Speicherplatz, während ein aus ihnen zusammengesetzter MP4 nur 85 MB benötigt.
Akseli Palén

Antworten:

5

Ich kenne keine bestimmte Software, die dies tut, aber es gibt einige Untersuchungen zu diesem Thema. Siehe beispielsweise die Artikel Komprimieren von Sätzen ähnlicher Bilder von Samy Ait-Aoudia, Abdelhalim Gabis, Amina Naimi und Komprimieren von Sätzen ähnlicher Bilder unter Verwendung eines Hybridkomprimierungsmodells von Jiann-Der Lee, Shu-Yen Wan, Chemg-Min Ma, Rui -Feng Wu.

Auf einer praktischeren Ebene können Sie Ihre Subtraktionstechnik erweitern, indem Sie beispielsweise ein Skript schreiben, das ImageMagick verwendet , um die Differenz zwischen aufeinanderfolgenden Bildern zu berechnen, und das Ergebnis als JPEG (oder als komprimiertes PNG, wenn Sie es verlustfrei wünschen) speichern. Sie erhalten ein Basisbild und einen Satz komprimierter "Delta" -Bilder, die viel kleiner sein sollten. So berechnen Sie den Unterschied mit ImageMagick:

convert image2.png image1.png -compose MinusSrc -composite -depth 24 -define png:compression-filter=2 -define png:compression-level=9 -define png:compression-strategy=1 difference-2-1.png

So berechnen Sie neu, indem Sie zurück hinzufügen:

convert image1.png difference-2-1.png -compose Plus -composite image2-reconstructed.png

(Sie können dasselbe auch mit jpg tun und viel Platz sparen).

Marco Pantaleoni
quelle
Es scheint, dass dies keine Überläufe verwaltet. Ich habe einige ähnliche Bilder mit sehr unterschiedlichen Farben, und daher habe ich einige Artefakte in den neu berechneten Bildern, entweder mit Minus / Plus oder Subtrahieren / Hinzufügen.
Adrien Clerc