AdvanceCOMP Compression Utilities (обычно пакет называют просто AdvanceCOMP) — это набор консольных утилит для пересжатия уже упакованных файлов: ZIP-архивов, PNG-изображений, MNG-клипов и GZ/TGZ/SVGZ. Важно, что речь не про “архиватор на каждый день”, а именно про “финальный проход” по готовым файлам, когда нужно выжать ещё несколько процентов за счёт более сильной реализации Deflate и дополнительных оптимизационных приёмов.
Сильная сторона AdvanceCOMP — предсказуемая, “скриптуемая” работа в командной строке: утилиты не требуют GUI, хорошо подходят под пакетную обработку и нормально встраиваются в сборку/релиз, где критичен размер артефактов (например, ассеты, архивы релизов, коллекции скриншотов). При этом пакет остаётся компактным и переносимым: его можно держать рядом с проектом и запускать точечно.
Скачать AdvanceCOMP
- Ретушь и коррекция
- Русский интерфейс
- Просто для новичков
- Нет GUI
- CLI-настройка
- Не для новичков
Кому подходит AdvanceCOMP и когда он реально полезен
1) Тем, кто гонится за минимальным размером ZIP “без смены формата”
Если вам нужно остаться в стандарте ZIP, но хочется добиться меньшего размера, чем даёт типичная “zip -9” или базовая упаковка в 7-Zip, advzip делает то, для чего его обычно и ставят: перепаковывает ZIP с более эффективным Deflate и может прогнать более “тяжёлые” режимы, вплоть до zopfli.
Практические кейсы:
-
финальная оптимизация релизного
assets.zip; -
уменьшение
.cbz(по сути ZIP с картинками) перед публикацией; -
“дожим” архивов, где много текстовых файлов, SVG, JSON, шейдеров, локализаций, HTML/CSS/JS.
2) Тем, кто оптимизирует PNG без потерь
advpng — утилита для пересжатия PNG до минимального размера. Она делает несколько вещей в одном проходе: убирает “вспомогательные” чанки, собирает данные IDAT более компактно и применяет мощные реализации Deflate.
Кейсы:
-
пакетная оптимизация папки со скриншотами;
-
подготовка PNG-ассетов перед выкладкой;
-
“последний килобайт” перед ограничением по размеру (например, конкурс/инсталлер/веб-пакет).
3) Тем, кто работает с GZ/TGZ/SVGZ и хочет “дожать” Deflate внутри контейнера
advdef не “перепаковывает” контейнер заново, а пересжимает Deflate-данные внутри уже существующих файлов: .gz, .tgz, .svgz, а также внутри .png и .mng. Это удобный инструмент, когда файл уже в нужном формате, а хочется получить ещё немного выигрыша по размеру.
4) Энтузиастам ретро/эмуляции и тем, у кого есть MNG-клипы
AdvanceCOMP исторически заточен под работу с коллекциями ROM’ов/скриншотов/клипов эмуляторов. advmng умеет не только пересжимать MNG, но и использовать оптимизации Delta/Move, а также выделять кадры и собирать MNG из PNG-последовательности.
Что входит в пакет: утилиты AdvanceCOMP и их “зона ответственности”
AdvanceCOMP — это не одна программа с кнопками, а набор отдельных исполняемых файлов. Обычно в дистрибутиве вы видите такие команды: advzip, advpng, advdef, advmng.
| Утилита | Основная задача | С чем работает | Типичный результат |
|---|---|---|---|
advzip |
пересжатие и тестирование ZIP | .zip (и производные вроде .cbz) |
ZIP меньше при сохранении совместимости |
advpng |
пересжатие PNG | .png |
PNG меньше без потерь |
advdef |
пересжатие Deflate-данных внутри контейнера | .png, .mng, .gz, .tgz, .svgz |
контейнер тот же, Deflate компактнее |
advmng |
пересжатие MNG + операции с клипами | .mng + кадры .png |
MNG меньше / извлечение кадров / сборка MNG |
“Интерфейс” AdvanceCOMP: как устроена работа через CLI
У AdvanceCOMP нет окон, вкладок и кнопок. Его интерфейс — это команды и параметры. Удобно воспринимать это как “панель управления”, где:
-
Команда = какая утилита запускается (
advzip,advpng,advdef,advmng) -
Командный режим = что делать (
-z/--recompress,-t/--test,-l/--list,-x/--extract,-a/--add) -
Профиль сжатия = насколько агрессивно (
-0 … -4) -
Итерации = сколько “попыток” сделать ещё плотнее (
-i/--iter N) -
Политика замены = переписывать файл даже если стал больше (
-f/--force) или выбрать лучший вариант (обычно по умолчанию выбирается минимальный)
Вывод результата “до/после”
Фирменный стиль вывода у утилит AdvanceCOMP похож: вы запускаете команду и получаете строку со значениями размера “было/стало” и процентом. Это удобно — даже при пакетной обработке видно, какой файл выиграл сильнее.
Важное поведение: многие операции делают замену “на месте”
AdvanceCOMP рассчитан на пересжатие, поэтому результат часто заменяет исходный файл (перезаписывает его). Это нормально для рабочих пайплайнов, но требует дисциплины:
-
сначала работать с копией;
-
при первом прогоне включать вывод (не скрывать
--quiet); -
по возможности использовать систему контроля версий или резервную папку.
advzip — ключевая утилита пакета. Её задача — сделать ZIP-архив как можно меньше, сохранив его в формате ZIP (если вы не включаете экспериментальные режимы). Кроме пересжатия, advzip умеет листинг и тестирование ZIP на целостность, включая расширенные проверки.
Главные режимы работы (команды)
advzip использует понятные режимы:
-
-l, --list ARCHIVES...— показать содержимое архива(ов) -
-t, --test ARCHIVES...— проверить архив(ы) -
-z, --recompress ARCHIVES...— пересжать архив(ы) -
-a, --add ARCHIVE FILES...— создать архив и добавить файлы -
-x, --extract ARCHIVE— извлечь архив
Примеры, которые стоит запомнить
1) Быстро посмотреть содержимое
advzip -l assets.zip
2) Проверить архив на ошибки
advzip -t assets.zip
3) Проверить “строже”
advzip -t -p assets.zip
Опция -p, --pedantic включает более строгие проверки целостности, которые часто не делают обычные zip-утилиты.
4) Пересжать архив максимально агрессивно
advzip -z -4 -i 20 assets.zip
-
-zвключает пересжатие -
-4— режим--shrink-insane(самый агрессивный) -
-i 20— итерации для режимов-3и-4
Профили сжатия -0 … -4: что они реально означают
У advzip пять “ступеней”, и это важно понимать правильно — это не просто “уровень 1–9”, а выбор компрессора/подхода:
| Ключ | Название | Логика | Когда выбирать |
|---|---|---|---|
-0, --shrink-store |
store | отключить сжатие | если внутри уже сжатые файлы (PNG, MP3), и вы хотите избежать лишнего CPU |
-1, --shrink-fast |
fast | быстрый режим на zlib | когда важна скорость, а выигрыш “по чуть-чуть” |
-2, --shrink-normal |
normal | режим по умолчанию на libdeflate | универсальный выбор: быстро и часто даёт хороший выигрыш |
-3, --shrink-extra |
extra | 7z-компрессор + итерации -i |
когда готовы тратить время ради дополнительных процентов |
-4, --shrink-insane |
insane | zopfli + итерации -i |
когда нужен максимум, и вы готовы ждать |
Почему -0 иногда полезнее, чем -4
В мануале advzip подчёркивается: --shrink-store полезен, когда в архиве уже сильно сжатые форматы вроде .png и .mp3. Повторная компрессия таких данных почти всегда бессмысленна: вы тратите время, а выигрыш — нулевой или отрицательный. В таких архивах часто лучше “хранить” файлы без сжатия, чтобы:
-
не жечь CPU на пересжатии;
-
ускорить распаковку;
-
получить предсказуемый результат.
Итерации -i, --iter N: как выбирать без фанатизма
Опция -i применяется к режимам -3 и -4. Логика простая:
-
больше итераций = шанс выжать чуть меньше размер;
-
но время растёт сильно (особенно в
-4).
Практический подход:
-
для “рабочего максимума” часто хватает
-i 10или-i 20; -
если вы гонитесь за последними байтами (ограничение по размеру релиза/конкурса), можно поднять до
-i 100,-i 200и выше — но это уже “ночной прогон”.
Сохранение времени файла: -k, --keep-file-time
Если вы пересжимаете архив и хотите сохранить его исходный timestamp (например, чтобы не ломать логику сборки или сравнения), используйте:
advzip -z -k -2 assets.zip
--keep-file-time оставляет время файла .zip прежним.
Экспериментальный режим “не ZIP”: когда он вообще нужен
advzip умеет включать LZMA-алгоритм через -N. Важный момент: архив формально становится несовместимым с обычными распаковщиками, то есть “любой unzip” его не прочитает. Этот режим нужен только для специфических задач, где вы контролируете распаковку тем же инструментом/процессом.
advpng: оптимизация PNG без потерь
advpng — инструмент для пересжатия .png до минимального размера. Он удобен тем, что работает в “один выстрел”: вы даёте файл(ы), задаёте уровень и получаете результат “на месте”.
Ключевые режимы
-
-l, --list FILES...— вывести информацию о PNG -
-z, --recompress FILES...— пересжать -
-f, --force— принудительно принять новый файл даже если он больше -
-q, --quiet— более тихий вывод
Ступени -0 … -4 у advpng
Структура уровней похожа на advzip, и смысл также в выборе компрессора/стратегии:
-
-0, --shrink-store— записать без компрессии (файл будет переписан даже если станет больше) -
-1, --shrink-fast— быстрый zlib -
-2, --shrink-normal— режим по умолчанию на libdeflate -
-3, --shrink-extra— 7z + итерации -
-4, --shrink-insane— zopfli + итерации
Что именно делает advpng с PNG внутри
У advpng есть понятная философия оптимизации:
-
удаляет “вспомогательные” (ancillary) чанки;
-
объединяет IDAT-чанки (делает поток данных более “стройным”);
-
применяет мощную реализацию Deflate для максимального эффекта.
Это важно: advpng не про “визуальную оптимизацию” и не про ухудшение качества. Он про структуру PNG и пересжатие Deflate так, чтобы итоговый файл стал меньше.
Практические команды (самое полезное)
1) Пересжать один PNG “по максимуму”
advpng -z -4 -i 20 screenshot.png
2) Пакетно пересжать папку (Windows)
for %f in (*.png) do advpng -z -4 -i 10 "%f"
3) Пакетно пересжать папку (Linux/macOS)
find . -type f -name "*.png" -print0 | xargs -0 advpng -z -4 -i 10
4) Если нужно гарантированно “переписать” файл новым вариантом
advpng -z -2 -f image.png
--force полезен, когда вам важна унификация (например, один и тот же компрессор для всех), даже если отдельный файл стал на байты больше.
advdef: пересжатие Deflate внутри PNG/MNG/GZ/TGZ/SVGZ
advdef — инструмент, который часто недооценивают. Он не “меняет формат” файла и не ломает структуру контейнера: он пересжимает только Deflate-данные внутри. Поэтому его удобно применять к файлам, которые уже должны оставаться .gz или .svgz, но вы хотите “ещё плотнее”.
Что поддерживается
advdef работает с:
-
.png -
.mng -
.gz -
.tgz -
.svgz
Главные параметры
-
-z, --recompress FILES...— пересжать -
-0 … -4— профили сжатия -
-i, --iter N— итерации для-3/-4 -
-f, --force— принять новый файл даже если больше -
-q, --quiet— тихий режим
Практика: “дожать gzip после сборки”
1) Пересжать .gz (универсально)
advdef -z -2 file.gz
2) Максимально агрессивно (если время не критично)
advdef -z -4 -i 20 file.svgz
Ограничение по памяти: важный нюанс
advdef не рассчитан на “гигантские” файлы, потому что ему нужно выделять память под полный сжатый и полный распакованный массив данных. На очень больших файлах это может стать стоп-фактором. Поэтому advdef отлично подходит для типичных .gz/.svgz веб-ассетов и средних контейнеров, но не лучший выбор для многогигабайтных монстров.
advmng: пересжатие MNG, извлечение кадров и сборка клипа
advmng — специализированная утилита под .mng (анимированный формат, близкий по духу к PNG). С точки зрения интерфейса она богаче остальных, потому что кроме пересжатия умеет работать с кадрами.
Команды (режимы)
-
-l, --list FILES...— информация о MNG -
-z, --recompress FILES...— пересжать MNG -
-x, --extract FILES...— извлечь PNG-кадры из MNG -
-a, --add RATE MNG_FILE PNG_FILES...— собрать MNG из PNG-последовательности, задав FPS
Опции, которые реально используются
-
-s, --scroll HxV— оптимизация под прокрутку (скроллинг фон), гдеHиV— размер паттерна в пикселях -
-S, --scroll-square N— ускоренная версия скролл-поиска (контроль X+Y<=N) -
-r, --reduce— попытаться снизить цветность до 8 бит (если возможно) -
-e, --expand— принудительно расширить цвет до 24 бит -
-n, --noalpha— убрать альфа-канал -
-c, --lcи-C, --vlc— принудительные режимы совместимости (LC/VLC) -
-v, --verbose— подробный вывод -
-f, --force— принимать новый файл даже если больше
Готовые примеры (прямо из практики)
1) Хороший баланс “время/выигрыш”
advmng -z -r -S 16 *.mng
Это популярная комбинация: пересжатие + попытка 8-битной оптимизации + ускоренная скролл-проверка.
2) Собрать MNG из кадров с частотой 30 fps
advmng -a 30 video.mng video*.png
Главное условие: все PNG должны быть одного размера и одинаковой глубины цвета.
3) Извлечь кадры из MNG
advmng -x video.mng
advmng выгрузит кадры в PNG; по умолчанию они будут 24-bit с альфа-каналом, а если альфа не нужна — можно удалять её -n.
Готовые “рецепты” — пошаговые мини-инструкции
Рецепт 1: “Безопасный прогон” для ZIP (проверить → пересжать → проверить)
-
Проверяем архив:
advzip -t -p archive.zip
-
Пересжимаем в разумном максимуме:
advzip -z -4 -i 20 archive.zip
-
Ещё раз тестируем:
advzip -t -p archive.zip
Этот порядок дисциплинирует процесс: если у вас есть сомнения в целостности ZIP или вы работаете с важным архивом, вы ловите проблемы до того, как начнёте массовое пересжатие.
Рецепт 2: “Оптимизация PNG-ассетов” в проектной папке
Linux/macOS:
find ./assets -type f -name "*.png" -print0 | xargs -0 advpng -z -4 -i 10
Windows (CMD):
cd assetsfor %f in (*.png) do advpng -z -4 -i 10 "%f"
Если вы не уверены, стоит ли ставить -4, начните с -2 (быстрее), посмотрите на общий выигрыш, а “тяжёлый” прогон оставьте для релизной сборки.
Рецепт 3: “Дожать GZ/TGZ/SVGZ” после сборки статики
find ./dist -type f \( -name "*.gz" -o -name "*.tgz" -o -name "*.svgz" \) -print0 | xargs -0 advdef -z -2
В этом сценарии advdef хорош тем, что не меняет структуру контейнера: вы остаётесь в .gz/.svgz, но выигрываете по размеру.
Рецепт 4: “ZIP с уже сжатыми файлами” — не тратить CPU зря
Если у вас архив “почти полностью PNG/MP3/JPG”, часто выгодно:
-
не пытаться пересжимать содержимое ещё раз;
-
использовать
--shrink-store, чтобы архив стал “упаковкой без лишнего сжатия”:
advzip -z -0 archive.zip
Это звучит парадоксально (как “сделать меньше, отключив сжатие”), но на практике даёт выигрыш в сценариях, где предыдущий ZIP был собран неоптимально (например, много мелких блоков, странные настройки, лишние служебные поля), а данные внутри всё равно не сжимаются лучше.
Тонкие моменты и типичные проблемы
“Почему файл не стал меньше?”
Это нормальная ситуация для AdvanceCOMP и означает одно из трёх:
-
файл уже был сжат близко к пределу;
-
выбран профиль, который на этом типе данных не даёт выгоды;
-
“перепаковка” дала служебный оверхед (редко, но бывает).
Для PNG чаще всего помогает переход с -2 на -3/-4 и подбор итераций -i. Для ZIP иногда наоборот помогает -0 (если внутри уже сжатые форматы).
“Почему иногда становится больше?”
Для advpng/advdef есть --force, который заставляет принять новый вариант даже если он больше. По умолчанию утилиты стараются выбирать более выгодный вариант, но если вы сознательно хотите унифицировать метод сжатия (например, одинаковая политика во всём пайплайне), -f пригодится.
“advdef упирается в память”
Это специфика advdef: ему нужно держать данные целиком. Поэтому:
-
применяйте
advdefк “обычным” веб-артефактам (где файлы не гигантские); -
для огромных файлов используйте другие подходы (или пересжимайте на этапе генерации).
“Риск совместимости в advzip”
Пока вы не используете экспериментальный -N, вы остаётесь в ZIP. Но -N делает архив нечитабельным для обычных распаковщиков. Этот режим стоит воспринимать как отдельный инструмент под специфические задачи, а не как стандартный путь оптимизации.
Использование AdvanceCOMP в рабочих процессах (сборки, релизы, CI)
Пост-обработка артефактов сборки (post-build)
Один из самых практичных подходов:
-
сборка генерирует
dist/(PNG, SVGZ, ZIP релиза), -
запускается шаг оптимизации:
-
advpngпо PNG, -
advdefпо.svgz/.gz, -
advzipпо итоговому архиву релиза.
-
Плюс такого подхода — вы не вмешиваетесь в логику сборки, а просто “полируете” результат.
Режим “быстро/качественно”
Часто делают два профиля:
-
быстрый:
-2(libdeflate) почти везде, -
релизный:
-4 -i 10/20для критичных мест.
Так вы не тормозите повседневную разработку, но на релизе получаете максимальную плотность.
Контроль результатов в CI
AdvanceCOMP удобен тем, что выводит “до/после” по каждому файлу. В CI это можно использовать как:
-
лог оптимизации;
-
метрику эффективности (сколько процентов выиграно);
-
контроль, что оптимизация вообще отрабатывает.
Сравнение с аналогами
AdvanceCOMP vs OptiPNG
OptiPNG — очень популярный PNG-оптимизатор. Его сильная сторона — гибкая оптимизация PNG-структуры и хорошие результаты “из коробки”. AdvanceCOMP (advpng) хорош, когда вы хотите предельно простой CLI-инструмент, который делает пересжатие в несколько режимов и легко гоняется пакетно. На практике нередко используют оба: OptiPNG как “основной” оптимизатор PNG, а advpng — как дополнительный проход в релизной сборке.
AdvanceCOMP vs pngcrush
pngcrush часто выбирают за тонкий контроль и предсказуемость, особенно когда нужно управлять чанками и параметрами сжатия. AdvanceCOMP проще как инструмент: “пересжать и забыть”, без длинной конфигурации. Если вам важен контроль над тем, что именно остаётся в PNG (метаданные, профили, специфические чанки), pngcrush обычно удобнее; если важна скорость внедрения и пакетный прогон — advpng чаще выигрывает.
AdvanceCOMP vs Zopfli (zopfli/zopflipng)
Zopfli как технология ассоциируется с очень плотным Deflate, но и с высокой стоимостью по времени. В AdvanceCOMP режим -4 как раз построен вокруг zopfli и управляющихся итераций -i. То есть AdvanceCOMP даёт вам zopfli-уровень “в рамках привычных команд” и позволяет одинаковым образом применить подход и к ZIP, и к PNG, и к Deflate-контейнерам.
AdvanceCOMP vs 7-Zip (ZIP-архивы)
7-Zip — универсальный инструмент, но его цель шире: разные форматы, разные алгоритмы, архивирование как задача. advzip — это инструмент узкой специализации: пересжатие существующего ZIP до минимума с фокусом на Deflate и проверку архива (--test, --pedantic). Там, где нужен “правильный ZIP минимум” без ухода в 7z/rar, advzip часто оказывается удобнее именно как “доводчик”.
AdvanceCOMP vs gzip/pigz (GZ-файлы)
gzip и pigz отлично подходят для первичной компрессии потоков и файлов. Но если .gz уже создан (особенно какими-то стандартными настройками), advdef может пересжать Deflate-данные внутри контейнера и дать небольшой, но приятный выигрыш по размеру. Это типичный “последний проход” перед публикацией, когда размер важнее времени выполнения.
AdvanceCOMP vs GUI-оболочки (FileOptimizer, Trimage, ImageOptim-подобные)
Если вам нужна автоматизация “перетащил папку — получил меньше”, часто удобнее оболочки, которые внутри вызывают несколько CLI-утилит (включая advpng). Но сами по себе они не заменяют AdvanceCOMP: под капотом всё равно работает та же связка инструментов, а в CI/скриптах обычно проще держать чистые CLI-команды.
Практический итог: как использовать AdvanceCOMP “по делу”
AdvanceCOMP — это не “программа для архивации”, а именно набор утилит для финального пересжатия. Его удобно держать как “последний шаг” в цепочке:
-
ZIP:
advzip -z -2как базовый уровень,advzip -z -4 -i 10/20как релизный максимум. -
PNG:
advpng -z -4 -i 10для ассетов/скриншотов, либо-2для быстрого прогона. -
GZ/TGZ/SVGZ:
advdef -z -2как спокойный и быстрый “дожим”. -
MNG:
advmng -z -r -S 16как практичный баланс (и отдельные режимы для сборки/извлечения кадров).
Пакет ценен тем, что остаётся простым: одна команда — один результат, понятные уровни -0…-4, итерации -i, “тихий режим” -q и “принять любой результат” -f. Именно поэтому AdvanceCOMP часто живёт в инструментарии годами: когда нужен контроль размера без лишней возни, эти утилиты работают предсказуемо и быстро встраиваются в процесс.
