И снова о сжатии изображений без потерь
Jan. 8th, 2019 07:48 pmБыло два пациента.
Первый — скан старой цветной фотографии 1996 года. Размеры в байтах и степень сжатия без потерь в различных форматах такие:
PNG дожимал мучительно при помощи OptiPNG, FLIF просто мучительно сохранял (он сам по себе мучительный). HEIF... он что, такой хороший? Нет, не такой. Как минимум енкодер в GIMP с установками без потерь привёл к потерям с уровнями до 24/256. Т.е. либо Apple врёт, либо GIMP.
Второй — скан паспорта. Вообще второй эксперимент с самого начала плохой, негодный, т.к. скан был до этого в WebP с хорошим качеством, но с потерями. Т.е. как минимум WebP должен, по идее, без потерь жать картинку очень эффективно: на ней уже нет деталей, которые ему тяжело переварить. В остальном в плане мучений и потерь то же самое, правда HEIF дал тут маскимальный уровень потерь, равный 11, а не 24 (артефакты исходного WebP помогли?..)
Какие выводы?
Первый — скан старой цветной фотографии 1996 года. Размеры в байтах и степень сжатия без потерь в различных форматах такие:
Формат Размер, б. Сжатие BMP 54267470 1,00 FLIF 31147880 1,74 HEIF 14934934 3,63 Потери 24 PNG 32452404 1,67 TIFF 36768907 1,48 WebP 31424946 1,73 J2K 32304001 1,68
PNG дожимал мучительно при помощи OptiPNG, FLIF просто мучительно сохранял (он сам по себе мучительный). HEIF... он что, такой хороший? Нет, не такой. Как минимум енкодер в GIMP с установками без потерь привёл к потерям с уровнями до 24/256. Т.е. либо Apple врёт, либо GIMP.
Второй — скан паспорта. Вообще второй эксперимент с самого начала плохой, негодный, т.к. скан был до этого в WebP с хорошим качеством, но с потерями. Т.е. как минимум WebP должен, по идее, без потерь жать картинку очень эффективно: на ней уже нет деталей, которые ему тяжело переварить. В остальном в плане мучений и потерь то же самое, правда HEIF дал тут маскимальный уровень потерь, равный 11, а не 24 (артефакты исходного WebP помогли?..)
Формат Размер, б. Сжатие BMP 37000282 1,00 FLIF 15187729 2,44 HEIF 11556145 3,20 Потери 11 PNG 25430631 1,45 TIFF 24265414 1,52 WebP 16678118 2,22 J2K 22895056 1,62
Какие выводы?
- TIFF с Deflate (без потерь то бишь), который все советуют, работает быстро, совместим со всем, чем можно, жмёт хуже всех, но раза в полтора помогает. Т.е. годится в целом.
- PNG c мучительным OptiPNG жмёт получше TIFF.
- HEIF использовать стрёмно. Не знаю, кто виноват.
- FLIF использовать конечно можно, но только если так нужно, что хоть убейся. Его почти никто, кроме его собственных тулзов, не читает и не пишет. Сжатие по времени занимает столько же примерно, сколько OptiPNG.
- JPEG2000 без потерь жмёт небыстро, но с более-менее разумной скоростью, и лучше OptiPNG. Только потом поди найди, чем его прочитать в полевых условиях...
- WebP, как ни странно (повторюсь, второй тест негодный, будет возможность — потестирую на других файлах), жмёт медленно, но с приемлемой скоростью, по результату уступает только FLIF и много чем поддерживается.