Сжатие много похожих больших изображений?

16

Я имею дело с большим архивом спутниковых снимков Земли, каждый из которых занимает 15 минут друг от друга в одной и той же области, поэтому они очень похожи друг на друга. Два смежных выглядят так: введите описание изображения здесь

Видео алгоритмы очень хорошо сжимают несколько похожих изображений. Однако эти изображения слишком велики для видео (10848x10848), и использование видеокодеров приведет к удалению метаданных изображений, поэтому их извлечение и восстановление метаданных будет громоздким, даже если я получу видеокодер для работы с такими большими изображениями.

Чтобы провести несколько тестов, я уменьшил 96 изображений за один день до 1080x1080 пикселей, что составляет 40,1 МБ, и попробуйте другое сжатие с следующими результатами:

  1. почтовый индекс: 39,8 МБ
  2. rar: 39,8 МБ
  3. 7z: 39,6 МБ
  4. tar.bz2: 39,7 МБ
  5. zpaq v7.14: 38,3 МБ
  6. fp8 v2: 32,5 МБ
  7. paq8pxd v45: 30,9 МБ

Предполагается, что последние три, в гораздо большей степени, используют контекст и действительно работают лучше, чем традиционное сжатие, но степень сжатия все еще довольно плохая по сравнению с видео mp4, которое может занимать 15 МБ или даже меньше, сохраняя качество изображения.

Однако ни один из алгоритмов, используемых этими утилитами сжатия, похоже, не использует преимущества сходства изображений, как это происходит при сжатии видео. Фактически, с помощью packJPG , который сжимает каждое изображение отдельно, весь набор сокращается до 32,9 МБ, что довольно близко к fp8 и paq8pxd, но без учета общего сходства между изображениями (поскольку каждое изображение сжимается индивидуально).

В другом эксперименте я рассчитал в Matlab разницу двух изображений выше, и это выглядит так:

введите описание изображения здесь

Сжатие обоих исходных изображений (всего 219,5 + 217,0 = 436,5 кБ) с fp8 приводит к снижению их до 350,0 кБ (80%), но при сжатии одного из них и разностного изображения (в формате JPG того же качества и с использованием 122,5 кБ) получается в файле размером 270,8 КБ (62%), и опять же (как показывает сравнение mp4 и packJPG), fp8, похоже, не пользуется большим преимуществом сходства. Даже сжатые с помощью rar, одно изображение плюс разница лучше, чем fp8 на исходных изображениях. В этом случае RAR снизит его до 333,6 КБ (76%).

Я думаю, что для этой проблемы должно быть хорошее решение для сжатия, поскольку я могу представить множество приложений. Помимо моего конкретного случая, я думаю, что многие профессиональные фотографы имеют много похожих снимков из-за последовательной съемки, или покадровой съемки, и т. Д. Все случаи, которые выиграли бы от такого сжатия.

Кроме того, я не требую сжатия без потерь, по крайней мере, для данных изображения (метаданные должны быть сохранены).

Итак ... Есть ли метод сжатия, который использует сходство между сжатыми изображениями?

Два изображения из вышеприведенного теста можно скачать здесь , а 96 изображений первого теста здесь .

Камило Рада
источник
1
Хотелось бы получить больше отзывов от людей, которые отложили вопрос. Я чувствую, что вопрос достаточно общий и на него можно ответить, не указывая на конкретный продукт, а на метод, алгоритм или технику.
Камило Рада
1
Галерея арахиса (я не голосовал, чтобы закрыть), но Is there a compression utility that take advantage of the similarities between images better than zpaq and fp8?и Is there a updated/maintained version of the fp8 utility?, вероятно, оскорбительные строки. Сравните это с, например, Is there a compression *method, algorithm or technique* that take advantage of the similarities between images better than zpaq and fp8?Фокус, возможно, сильно отличается. Просьба о программном обеспечении, вероятно, в любом случае является излишней, поскольку конкретное программное обеспечение (если применимо) почти наверняка будет упомянуто в любом ответе.
Анаксунаман
1
Я согласен. И сделано. Удачи. =)
Анаксунаман
2
"Слишком большой для видео"? Не уверен, что я согласен с этим. Некоторые кодеки имеют очень высокое или неограниченное максимальное разрешение. Вы не пытаетесь создать видео для просмотра, просто сжимайте статические изображения. Не могли бы вы закодировать метаданные в виде субтитров или других данных?
Benshepherd
1
Чтобы добавить в список приложений, мне нужно было бы сохранить исходные кадры проекта с замедленной съемкой, который будет получать дополнительные части в будущем. Текущие изображения JPG размером 10 000 x 4K занимают 25 ГБ, в то время как MP4, состоящий из них, занимает всего 85 МБ.
Аксели Пален

Ответы:

5

Я не знаю конкретного программного обеспечения, которое делает это, но есть некоторые исследования по этому вопросу. Например, см. Статьи « Сжатие наборов похожих изображений » Сэми Айт-Аудии, Абдельхалима Габиса, Амины Наими и « Сжатие наборов похожих изображений с использованием гибридной модели сжатия » Джиан-Дер Ли, Шу-Йен Ван, Чемг-Мин Ма, Руи Фэн Ву.

На более практическом уровне вы можете расширить свою технику вычитания, например, написав скрипт, который использует ImageMagick для вычисления разницы между последовательными изображениями, сохраняя результат в формате JPEG (или сжатый PNG, если вы хотите, чтобы он без потерь). Вы получите одно базовое изображение и набор сжатых «дельта» изображений, которые должны быть намного меньше. Чтобы вычислить разницу с помощью 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

Чтобы пересчитать, добавив обратно:

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

(Вы можете сделать то же самое, используя вместо этого jpg и сэкономив много места).

Марко Панталеони
источник
Кажется, что это не управляет переполнением. У меня есть несколько похожих изображений с очень разными цветами, и, таким образом, у меня есть некоторые артефакты в пересчитанных изображениях, используя Minus / Plus или Subtract / Add.
Адриен Клерк