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:
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:
- Postleitzahl: 39,8 MB
- rar: 39,8 MB
- 7z: 39,6 MB
- tar.bz2: 39,7 MB
- zpaq v7.14: 38.3 MB
- fp8 v2: 32,5 MB
- 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:
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 .
Is there a compression utility that take advantage of the similarities between images better than zpaq and fp8?
undIs there a updated/maintained version of the fp8 utility?
sind wahrscheinlich die beleidigenden Linien. Vergleichen Sie das mit zBIs 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.Antworten:
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:
So berechnen Sie neu, indem Sie zurück hinzufügen:
(Sie können dasselbe auch mit jpg tun und viel Platz sparen).
quelle