Я имею дело с большим архивом спутниковых снимков Земли, каждый из которых занимает 15 минут друг от друга в одной и той же области, поэтому они очень похожи друг на друга. Два смежных выглядят так:
Видео алгоритмы очень хорошо сжимают несколько похожих изображений. Однако эти изображения слишком велики для видео (10848x10848), и использование видеокодеров приведет к удалению метаданных изображений, поэтому их извлечение и восстановление метаданных будет громоздким, даже если я получу видеокодер для работы с такими большими изображениями.
Чтобы провести несколько тестов, я уменьшил 96 изображений за один день до 1080x1080 пикселей, что составляет 40,1 МБ, и попробуйте другое сжатие с следующими результатами:
- почтовый индекс: 39,8 МБ
- rar: 39,8 МБ
- 7z: 39,6 МБ
- tar.bz2: 39,7 МБ
- zpaq v7.14: 38,3 МБ
- fp8 v2: 32,5 МБ
- 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 изображений первого теста здесь .
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?
Фокус, возможно, сильно отличается. Просьба о программном обеспечении, вероятно, в любом случае является излишней, поскольку конкретное программное обеспечение (если применимо) почти наверняка будет упомянуто в любом ответе.Ответы:
Я не знаю конкретного программного обеспечения, которое делает это, но есть некоторые исследования по этому вопросу. Например, см. Статьи « Сжатие наборов похожих изображений » Сэми Айт-Аудии, Абдельхалима Габиса, Амины Наими и « Сжатие наборов похожих изображений с использованием гибридной модели сжатия » Джиан-Дер Ли, Шу-Йен Ван, Чемг-Мин Ма, Руи Фэн Ву.
На более практическом уровне вы можете расширить свою технику вычитания, например, написав скрипт, который использует ImageMagick для вычисления разницы между последовательными изображениями, сохраняя результат в формате JPEG (или сжатый PNG, если вы хотите, чтобы он без потерь). Вы получите одно базовое изображение и набор сжатых «дельта» изображений, которые должны быть намного меньше. Чтобы вычислить разницу с помощью ImageMagick:
Чтобы пересчитать, добавив обратно:
(Вы можете сделать то же самое, используя вместо этого jpg и сэкономив много места).
источник