JPEG является стандартом в области компрессии изображений и это один из самых быстрых алгоритмов, но у него одна проблема: JPEG сжимает с потерей качества. Если фотография подвергается многократной обработке, это неприемлемо, и в таких случаях приходится искать альтернативу. Хочется чего-нибудь быстрого и при этом с приемлемой степенью сжатия.
Беглый взгляд на бенчмарки losless-алгоритмов на выборке фотографий не даёт оснований для радости: оказывается, PNG очень быстр на распаковке, но исключительно медленно работает на сжатии изображений.
Есть ещё JPEG-LS, хороший на первый взгляд. Но на него патент у компании HP, так что без шансов на использование. Немецкий программист Кристоф Фек (Christoph Feck) решил исправить ситуацию и выпустил свой алгоритм ImageZero сжатия фотографий без потери качества. Он примерно в 20 раз быстрее PNG, а по степени сжатия сравним с JPEG-LS.London Bridge (Tower Bridge): Reflection on the River Thames. Автор фотографии: Anirudh Koul
Результаты обработки полноразмерной версии фотографии London Bridge (4507×3512 пикселей)
Метод
Размер файла
Сжатие
Распаковка
Без сжатия
46380 КБ
-
-
JLS
14984 КБ
6,6 с
7,3 с
PNG
16256 КБ
42,4 с
2,4 с
IZ
15496 КБ
1,2 с
1,3 с
Судя по первым независимым тестам, IZ претендует на то, чтобы быть вообще самым быстрым lossless-алгоритмом для 24-битных фотографий, и по степени сжатия тоже хорошо выглядит.
Автор алгоритма пишет, что IZ не предназначен для greyscale-изображений или синтетических изображений, но он может его приспособить для этих задач. Сейчас IZ лучше всего работает на полноцветных фотографиях и может использоваться в системах хранения, для генерации уменьшенных копий для предпросмотра, ну и как будущий формат для иконок.Исходный код ImageZero (под лицензией BSD)