Стиснення багатьох подібних великих зображень?


17

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

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

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

  1. zip: 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 на оригінальних зображеннях. У такому випадку рідкість знижується до 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
"Занадто великий для відео"? Не впевнений, що я з цим згоден. Деякі кодеки мають дуже високу або необмежену максимальну роздільну здатність. Ви не намагаєтеся створити спостережуване відео, просто стисніть кілька статичних зображень. Чи можете ви кодувати метадані як субтитри чи інші дані?
беншеферд

1
Щоб додати до списку програм, мені знадобиться це для зберігання оригінальних кадрів проекту з проміжок часу, який отримає додаткові частини в майбутньому. Поточні зображення у форматі JPG розміром 10 000 x 4K займають 25 ГБ місця, а MP4, що складається з них, займає лише 85 МБ.
Акселі Пален

Відповіді:


6

Я не знаю конкретного програмного забезпечення, яке це робить, але є деякі дослідження з цього питання. Наприклад, перегляньте статті " Стиснення наборів подібних зображень " Самі Айт-Аудіа, Абдельхаліма Габіса, Аміна Наймі та стискання наборів подібних зображень за допомогою гібридної моделі стиснення Джанн-Дер Лі, Шу-Іен Вана, Шем-Мін Ма, Руї -Фенг Ву.

На більш практичному рівні ви можете розширити свою техніку віднімання, наприклад, написавши сценарій, який використовує 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.
Адрієн Клерк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.