Для многих не секрет, что большинство изображений в форматах JPEG и PNG содержат избыточную информацию, которая может быть удалена без потери качества. Обычно это достигается за счет эвристических алгоритмов перебора различных параметров компрессии и выбора наименее затратного варианта. Применение оптимизаторов особенно важно на файлах, которые используются на посещаемых сайтах, для экономии дискового пространства, трафика и уменьшения времени загрузки страниц у пользователей. Программ такого типа довольно много и мы поставили себе цель найти какие же оптимизаторы сжимают лучше и работают быстро.
В тесте принимали участие следующие программы.
Для PNG:
1. Leanify 0.4.3 (x64)
2. pingo v0.79c
3. pinga v0.09
4. OptiPNG 0.7.6
5. pngout
6. PngOptimizer 2.5 (x64)
7. advpng aka AdvanceCOMP v1.23
8. ECT 0.6 (x64)
9. TruePNG 0.6.2.2
10. pngwolf-zopfli 1.1.1 (x64)
Для JPEG:
1. Leanify 0.4.3 (x64)
2. pingo v0.79c
3. ECT 0.6 (x64)
4. mozjpeg 3.2 (x64)
5. jhead 3.00
6. jpegoptim v1.4.4 (x64)
7. jpegtran
Было отобрано 100 PNG файлов и 100 JPG файлов в качестве тестовой выборки. Разных размеров и разрешения от совсем маленьких до огромных. Каждая из программ была запущена на всём наборе. Считался размер файла после оптимизации и сколько времени потребовалось программе на оптимизацию. Сводные таблицы приведены ниже.
Таблица 1. Лучшие оптимизаторы PNG по уровню компрессии
Максимум | 88.49 | |
1 место | ECT | 88.98 |
2 место | Leanify | 89.62 |
3 место | Pingo | 89.69 |
4 место | pngwolf | 91.34 |
5 место | pngout | 91.85 |
6 место | TRUEPng | 93.01 |
7 место | Optipng | 94.19 |
8 место | pinga | 94.8 |
9 место | PNGOptimizer | 95.13 |
10 место | advpng | 97.27 |
Таблица 2. Лучшие оптимизаторы PNG по скорости работы
1 место | PNGOptimizer | 00:04:08 |
2 место | pinga | 00:21:41 |
3 место | Pingo | 00:23:15 |
4 место | TruePNG | 01:53:29 |
5 место | Leanify | 01:57:00 |
6 место | pngout | 02:53:09 |
7 место | pngwolf | 02:55:26 |
8 место | ECT | 03:06:08 |
9 место | advpng | 03:25:34 |
10 место | Optipng | 03:39:05 |
Таблица 3. Сводная таблица по PNG оптимизаторам
ПО | Speed Rank | Compression Rank | Overall rank | Open source |
---|---|---|---|---|
Pingo | 3 | 3 | 6 | - |
Leanify | 5 | 2 | 7 | + |
ECT | 8 | 1 | 9 | + |
PNGOptimizer | 1 | 9 | 10 | + |
TruePNG | 4 | 6 | 10 | - |
pinga | 2 | 8 | 10 | - |
pngout | 6 | 5 | 11 | + |
pngwolf | 7 | 4 | 11 | + |
Optipng | 10 | 7 | 17 | + |
advpng | 9 | 10 | 19 | + |
Таблица 4. Лучшие оптимизаторы JPG по уровню компрессии
1 место | ECT | 89.996 |
1 место | pingo | 89.996 |
1 место | leanify | 89.997 |
1 место | mozjpeg | 89.999 |
5 место | jpegoptim | 90.880 |
6 место | jpegtran | 90.924 |
7 место | jhead | 99.592 |
Таблица 5. Лучшие оптимизаторы JPG по скорости работы
1 место | jhead | 00:00:25 |
2 место | jpegtran | 00:00:52 |
3 место | jpegoptim | 00:01:03 |
4 место | leanify | 00:01:30 |
5 место | pingo | 00:01:42 |
6 место | mozjpeg | 00:01:55 |
7 место | ECT | 00:02:52 |
Таблица 6. Сводная таблица по JPG оптимизаторам
Soft | Speed Rank | Compression Rank | Overall rank | Open source |
---|---|---|---|---|
leanify | 4 | 1 | 5 | + |
jpegoptim | 3 | 2 | 5 | + |
jpegtran | 2 | 3 | 5 | + |
jhead | 1 | 4 | 5 | + |
pingo | 5 | 1 | 6 | - |
mozjpeg | 6 | 1 | 7 | + |
ECT | 7 | 1 | 8 | + |
Параметры запусков
PNG:
Leanify -i 15 -q
Pingo -s4
pinga -lossless -more
Optipng -o7 -strip all -quiet
pngout /s0 /q /y /r /d0 /mincodes0 /k1
PngOptimizer -file
advpng -z -q -4 -i 20
ECT --allfilters --mt-deflate -strip --strict -quiet -9
TruePNG /i0 /tz /quiet /y /md remove all /g0 /o4
pngwolf --strip-optional --out-deflate=zopfli,iter=30 --in= --out=
JPEG:
Leanify -i 15 -q
Pingo -s4
ECT --mt-deflate -strip -progressive --allfilters --strict -quiet -9
mozjpegtran -outfile -progressive
jhead -autorot -purejpg -di -dx -dt -zt -q
jpegoptim --strip-all -o -q --all-progressive
jpegtran -copy none -progressive
Для своих внутренних целей решили использовать Leanify. И сделали небольшой тестовый сайтик, если кому-то нужно оптимизировать небольшое число изображений он-лайн:
→ lossless-image-optimization.com
Для локального запуска можно использовать FileOptimizer. Он запускает последовательно почти все указанные выше оптимизаторы один за одним на одном файле и как следствие работает достаточно долго, но выдаёт результат близкий к максимальному.
Ссылки
→ Архив с тестовыми файлами PNG (100 штук)
→ Архив с тестовыми файлами JPG (100 штук)
→ Подробная таблица по всем файлам на Google.Docs
Автор: Turbo