WWW: JPEG Archive — набор утилит для оптимального сжатия фотографий

Ты выбираешь папку Photos, запрашиваешь сведения и, пока компьютер считает, успеваешь прикинуть, сколько будет стоить еще один жесткий диск. Проблема растущей горы снимков знакома многим энтузиастам фотографии, и если сортировать и удалять — не выход, то интересным решением будет набор скриптов и утилит под названием JPEG Archive.

Смысл JPEG Archive в том, чтобы готовить большие массивы не очень нужных снимков для долгого хранения, ужимая их ровно так, чтобы на глаз было незаметно. В комплекте:

  • jpeg-hash — выдает хеш изображения — для дальнейшего сравнивания с другими хешами;
  • jpeg-compare — сравнивает два снимка и сообщает, насколько они визуально похожи (в процентах);
  • jpeg-recompress — сжимает фотографию несколько раз и затем выбирает оптимальный по соотношению размер — качество вариант (порог можно настроить);
  • jpeg-archive — скрипт, который принимает на вход множество снимков и последовательно применяет предыдущие утилиты для отсеивания дубликатов и сжатия.

Я пока что не стал связываться с jpeg-archive: для него нужно поставить еще exiftool, dcraw и Ladon или GNU Parallel для параллельной работы на нескольких процессорных ядрах. Зато поигрался с jpeg-recompress как с самой интересной утилитой из всего набора.


Сложно сказать, чего я ждал, но точно не того, что обещал разработчик: сжатия почти без визуальных изменений с уменьшением размера исходного файла от 30 до 70% на умолчательных настройках. Причем если снимки, сделанные на Phone 6, уменьшаются максимум процентов на 20, то в несколько раз более увесистые кадры iPhone X — уже на 40–50%. И все это полная ерунда по сравнению с 70–80%, которые теряют в весе огромные изображения с Canon 7D. Было 10 мегабайт, стало 2–3. Круто? Но должен быть подвох!


Конечно, сжатие с потерями всегда означает… собственно, потери. Без увеличения на глаз разницы, может быть, никакой, но под «микроскопом» сразу видно, как теплые ламповые пупырышки превращаются в холодные цифровые квадраты. Вся суть JPEG!


Однако если ты не собираешься делать шестикратное увеличение и разглядывать шум матрицы, то результаты jpeg-recompress почти идеальны. Только в одном случае я заметил разницу, перелистывая кадры вперед-назад (голые ветки кустов потеряли резкость), но, когда я поставил изображения рядом, она стала уже далеко не такой очевидной.

Слева — вариант со сжатием, справа — без. Отличить не так-то просто

Для особых эстетов существует ключ -a, который ставит в приоритет точность подбора, пренебрегая потреблением ресурсов. На мой взгляд, тормоза того не стоят: сила сжатия меняется где-то на 1%, что совсем уже незаметно для глаза.

Андрей Письменный: @apismenny Главный редактор