Guetzli — perceptual JPEG encoder от Google — это консольная программа для сжатия изображений в JPEG с упором на высокое визуальное качество и уменьшение размера файла. В отличие от обычных компрессоров картинок, Guetzli не пытается быть универсальным редактором, пакетным менеджером изображений или графической программой с кнопками Открыть, Сохранить и Экспорт. Это узкоспециализированный JPEG-энкодер: на вход он принимает PNG или JPEG, а на выходе создаёт оптимизированный JPEG-файл.
Выбор редакции
Guetzli
ФотоМАСТЕР
- Простой интерфейс
- Ретушь и замена фона
- Фильтры и автокоррекция
- Быстрая обработка фото
Guetzli
- Работает онлайн
- Зависит от сервиса
- Не заменяет полноценный фоторедактор
- Есть ограничения бесплатного доступа
Главная идея Guetzli состоит в том, чтобы уменьшить вес JPEG без перехода на новый формат. Итоговый файл остаётся обычным JPEG, его можно открыть в браузере, графическом редакторе, CMS, файловом менеджере, просмотрщике изображений и практически любом приложении, которое умеет работать с JPEG. Это принципиально отличает Guetzli от инструментов, которые переводят изображение в WebP, AVIF или другой формат: здесь совместимость сохраняется за счёт того, что меняется способ кодирования, а не сам контейнер изображения.
Guetzli особенно интересен для веб-изображений, где важна каждая лишняя сотня килобайт, но нельзя заметно испортить картинку. Это могут быть фотографии в статье, иллюстрации на лендинге, изображения товаров, обложки, баннеры, медиафайлы для блога или статичные картинки, которые не нужно пересобирать каждую минуту. Программа лучше всего раскрывается не в роли быстрого массового конвертера, а как финальный энкодер для тех изображений, где качество важнее скорости.
Что именно делает Guetzli
Guetzli выполняет одну главную задачу: создаёт JPEG-файл с высокой визуальной плотностью сжатия. Программа анализирует исходное изображение, подбирает параметры JPEG-кодирования и старается получить файл меньшего размера при сохранении визуального качества. Guetzli ориентирован на excellent compression density at high visual quality, а типичный выигрыш относительно libjpeg составляет примерно 20–30% при сопоставимом качестве.
Практически это выглядит так:
guetzli original.jpg output.jpg
или так:
guetzli original.png output.jpg
Первый аргумент — исходное изображение. Второй аргумент — имя JPEG-файла, который нужно получить. Если исходник уже JPEG, Guetzli перекодирует его заново. Если исходник PNG, Guetzli конвертирует его в JPEG. В обоих случаях результатом будет именно JPEG, а не PNG, WebP или AVIF.
Guetzli не выполняет ретушь, кадрирование, изменение размера, шумоподавление, цветокоррекцию, пакетную сортировку, удаление дублей и ручную настройку кривых. Это не замена Photoshop, GIMP, Affinity Photo или Lightroom. Его задача уже: взять готовую картинку и закодировать её в JPEG так, чтобы файл стал меньше, а видимые артефакты оставались минимальными.
Особенность подхода: перцепционное сжатие
Guetzli относится к перцепционным JPEG-энкодерам. Это значит, что при сжатии программа ориентируется не только на формальные математические показатели, а на то, как человек воспринимает искажения изображения. JPEG-компрессия всегда связана с потерями: чтобы файл стал меньше, часть информации отбрасывается. Разница между простым и более сложным энкодером в том, какую именно информацию он отбрасывает и насколько заметными становятся последствия.
Guetzli использует психовизуальную модель Butteraugli как обратную связь в процессе оптимизации. Программа оптимизирует глобальные таблицы квантования JPEG и значения DCT-коэффициентов в блоках изображения через closed-loop optimizer. Это объясняет и сильную сторону программы, и её главный недостаток: Guetzli может находить хорошие решения для качества, но делает это медленно.
Обычный JPEG-энкодер часто действует быстрее и грубее: он применяет заданный уровень качества, выполняет квантование, кодирует результат и завершает работу. Guetzli же тратит гораздо больше времени на подбор параметров, чтобы итоговые потери были менее заметны человеческому глазу. Особенно это важно на плавных градиентах, в областях с небом, кожей, бликами, тонкими линиями, мелкими деталями и контрастными границами.
На таком сравнении хорошо видно, почему Guetzli нельзя оценивать только по размеру файла. Важнее смотреть на характер артефактов: ореолы вокруг контрастных линий, звон на границах, шум в ровных областях и блочную структуру. Guetzli специально работает с теми зонами, где классическая JPEG-компрессия часто выглядит грубо.
История создания
Guetzli появился как проект Google Research Europe и был представлен как open-source JPEG encoder в марте 2017 года. Название произносится как [guɛtsli] и означает печенье на швейцарском немецком. Такой выбор названия продолжает линию других компрессионных проектов Google, где встречаются названия, связанные со сладостями и едой.
Смысл релиза был практическим: дать веб-мастерам и разработчикам инструмент, который уменьшает JPEG-файлы без необходимости вводить новый формат. Для сайта это важно: JPEG по-прежнему широко поддерживается, а значит, оптимизированные файлы можно использовать в старых и новых браузерах без дополнительной логики выбора формата.
Guetzli создаёт высококачественные JPEG-изображения с файлами до 35% меньше по сравнению с доступными на тот момент методами. В практической работе чаще встречается разница около 20–30% относительно libjpeg при эквивалентном качестве. Эти цифры не стоит воспринимать как гарантию для каждой фотографии: результат зависит от исходника, уровня качества, предыдущих пересжатий и характера изображения.
История версий программы
Развитие Guetzli было коротким и довольно плотным: основные публичные сборки вышли в период с конца 2016 года по март 2017 года. Это типичный пример исследовательского инструмента, который быстро дошёл до рабочего состояния, получил исправления стабильности и затем остался в нише специализированных JPEG-энкодеров.
| Версия | Что изменилось |
|---|---|
v0 | Первый публичный релиз, начальная публикация инструмента и базовой документации. |
v0.1 | Следующий ранний релиз после начальной публикации. |
v0.2 | Исправлена работа с одинаковым именем входного и выходного файла, устранены проблемы компиляции, исправлен сбой на Windows из-за неинициализированной памяти, добавлены 64-битные Windows-бинарники. |
v1.0 | Исправлены два сбоя и более явно описаны требования к памяти. |
v1.0.1 | Исправлен сбой на маленьких изображениях, приведена к более последовательному виду обработка метаданных, добавлена поддержка ограничения памяти, исправлены некорректные сообщения об ошибках, устранены проблемы сборки и документации. |
Эта история версий хорошо показывает характер Guetzli: программа не превращалась в большой графический продукт, не обрастала панелями, мастерами экспорта и профилями обработки. Основная работа шла вокруг стабильности, сборки, обработки памяти и корректного поведения энкодера.
Интерфейс программы
У Guetzli нет классического графического интерфейса. В нём нет окна предпросмотра, ленты инструментов, палитры слоёв, кнопки Open, кнопки Save As, выпадающего списка форматов и ползунка качества в визуальной панели. Интерфейс Guetzli — это командная строка.
Реальные элементы управления Guetzli:
| Элемент | Назначение |
|---|---|
guetzli | команда запуска программы |
input_filename | путь к исходному PNG или JPEG |
output_filename | путь к создаваемому JPEG |
--quality Q | настройка целевого качества |
--verbose | подробный вывод процесса кодирования |
--memlimit M | ограничение памяти в мегабайтах |
--nomemlimit | запуск без ограничения памяти |
Базовый синтаксис выглядит так:
guetzli [--quality Q] [--verbose] original.png output.jpg
guetzli [--quality Q] [--verbose] original.jpg output.jpg
Именно это и есть рабочий интерфейс Guetzli: команда, флаги, входной файл, выходной файл. Такой подход неудобен для пользователей, которые привыкли перетаскивать изображения мышью, но удобен для разработчиков, технических SEO-специалистов, администраторов сайтов и тех, кто собирает изображения через скрипты.
Поддерживаемые форматы
Guetzli работает с двумя типами входных файлов:
PNG;JPEG/JPG.
Выходной формат у программы один:
JPEG.
Это важное ограничение. Guetzli не сохраняет изображение обратно в PNG, не создаёт WebP, не делает AVIF, не пишет TIFF и не является универсальным конвертером. Даже если на вход подан PNG, на выходе будет JPEG.
Отдельно нужно учитывать прозрачность. JPEG не поддерживает альфа-канал. Если исходный PNG содержит прозрачные области, Guetzli не сможет сохранить их прозрачными: прозрачность будет наложена на чёрный фон перед кодированием.
На практике это означает простое правило: если прозрачность важна, Guetzli не подходит для финального файла. Логотипы, иконки, графика с прозрачным фоном, стикеры, интерфейсные элементы и PNG-объекты поверх произвольного фона лучше оставлять в PNG, WebP или AVIF с поддержкой альфа-канала. Guetzli стоит использовать для фотографий и растровых изображений, где JPEG уместен изначально.
Последовательный JPEG и отсутствие progressive JPEG
Guetzli создаёт только sequential JPEG, то есть непроgressive JPEG. Это заметная особенность программы. Progressive JPEG загружается слоями: сначала появляется грубая версия изображения, затем она уточняется. Sequential JPEG загружается последовательно, строка за строкой, и обычно проще для декодирования.
Для веба это неоднозначный выбор. Progressive JPEG часто удобен для восприятия на медленном соединении, потому что пользователь быстрее видит приблизительное изображение. Sequential JPEG проще, предсказуемее и совместим, но не даёт такого визуального эффекта постепенного уточнения. Guetzli осознанно работает в рамках sequential JPEG, поэтому если в проекте строго требуется progressive JPEG, стоит смотреть в сторону MozJPEG, jpegoptim или других инструментов.
Качество: параметр --quality
Главный пользовательский параметр Guetzli — --quality. Он задаёт качество в единицах, сопоставимых с quality в libjpeg. Базовый пример:
guetzli --quality 90 input.jpg output.jpg
В этой команде:
guetzliзапускает программу;--quality 90задаёт качество;input.jpgуказывает исходный файл;output.jpgзадаёт имя результата.
Guetzli ориентирован на верхнюю часть диапазона качества JPEG. В реальной работе чаще всего проверяют значения 85, 90, 95 и иногда 100, но начинать разумно с 90: это даёт хороший баланс между визуальным качеством и весом файла. Параметр качества нужно подбирать не абстрактно, а по конкретной картинке. Одна фотография может хорошо выглядеть на 85, другая начнёт показывать артефакты уже на 90.
Пример серии тестов:
guetzli --quality 95 photo.jpg photo-q95.jpg
guetzli --quality 90 photo.jpg photo-q90.jpg
guetzli --quality 85 photo.jpg photo-q85.jpg
После этого нужно сравнить:
| Файл | Что смотреть |
|---|---|
photo-q95.jpg | максимальное сохранение деталей, минимальный риск артефактов |
photo-q90.jpg | практичный баланс качества и размера |
photo-q85.jpg | меньший размер, но выше риск заметных потерь |
Качество в Guetzli нельзя выбирать только по числу. Нужно открыть исходник и результат рядом, увеличить изображение до 100%, проверить небо, кожу, резкие линии, текст, мелкие детали, границы объектов и плавные переходы. JPEG-артефакты часто заметны не по всему кадру, а в отдельных местах.
Подробный режим --verbose
По умолчанию Guetzli может работать довольно молча: пользователь запускает команду и ждёт. Из-за медленного кодирования это неудобно: на большом изображении может казаться, что программа зависла. Для диагностики используется параметр --verbose.
guetzli --verbose --quality 90 input.jpg output.jpg
--verbose включает подробный вывод о попытках кодирования. Этот режим полезен в нескольких случаях:
- нужно понять, что процесс действительно идёт;
- требуется проверить, на каком файле задержалась пакетная обработка;
- нужно диагностировать долгую работу на сервере;
- нужно увидеть поведение при подборе качества;
- нужно отличить нормальную медленную обработку от зависания или ошибки.
Для Guetzli подробный вывод особенно важен, потому что скорость — одно из главных слабых мест программы. Когда обычный JPEG-энкодер справляется за секунды, Guetzli может тратить минуты. Без --verbose пользователь часто видит только пустой терминал и растущий расход CPU.
Ограничение памяти: --memlimit и --nomemlimit
Guetzli активно использует память. Для оценки нужно закладывать примерно 300 МБ RAM на 1 мегапиксель входного изображения. Фотография 4000×3000 пикселей — это 12 мегапикселей, и для неё уже может потребоваться несколько гигабайт памяти.
Параметр --memlimit задаёт лимит памяти в мегабайтах:
guetzli --memlimit 2048 input.jpg output.jpg
Такой запуск ограничивает использование памяти примерно двумя гигабайтами. Это важно на VPS, в CI-сборке, на слабом ноутбуке или при пакетной обработке. Без ограничения несколько параллельных процессов Guetzli легко перегружают систему.
Параметр --nomemlimit отключает ограничение:
guetzli --nomemlimit input.jpg output.jpg
Использовать --nomemlimit стоит только тогда, когда понятно, сколько памяти доступно и какой размер у изображения. На больших фотографиях этот параметр может привести к тому, что система начнёт активно использовать swap или завершит процесс из-за нехватки памяти. Для массовой обработки безопаснее задавать --memlimit и не запускать слишком много процессов одновременно.
Требования к времени обработки
Guetzli требует не только много памяти, но и много CPU. Для грубой оценки можно считать примерно 1 минуту CPU-времени на 1 мегапиксель входного изображения. Это не точный секундомер для каждой машины, а практический ориентир: инструмент действительно медленный.
Примерная оценка:
| Размер изображения | Мегапиксели | Ожидаемый характер обработки |
|---|---|---|
| 1200×800 | 0,96 МП | терпимо для ручной проверки |
| 1920×1080 | 2,07 МП | уже заметное ожидание |
| 3000×2000 | 6 МП | долгий процесс |
| 4000×3000 | 12 МП | серьёзная нагрузка на CPU и RAM |
| 6000×4000 | 24 МП | обработка может быть непрактичной без мощной машины |
Именно поэтому Guetzli не стоит воспринимать как быстрый сжать всё в папке инструмент. Он даёт смысл там, где итоговый размер важнее времени кодирования. Для ежедневной массовой оптимизации тысяч файлов лучше выбирать более быстрые энкодеры или использовать Guetzli только для самых тяжёлых и важных изображений.
Цветовой профиль и sRGB
Guetzli предполагает, что входное изображение находится в sRGB с гаммой 2.2. Метаданные цветового профиля при обработке игнорируются. Это важная деталь для фотографов, дизайнеров и тех, кто работает с изображениями в Adobe RGB, Display P3 или нестандартных профилях.
Если цвет критичен, лучше заранее привести изображение к sRGB в редакторе или в отдельном этапе подготовки. Иначе после кодирования можно получить результат, который формально сжат правильно, но визуально отличается от ожидаемого просмотра в рабочем редакторе.
Практический порядок такой:
- Подготовить изображение в редакторе.
- Привести цвет к sRGB.
- Убедиться, что изображение выглядит корректно в браузерном просмотре.
- Передать файл в Guetzli.
- Сравнить итоговый JPEG с подготовленным исходником.
Guetzli — это не система управления цветом. Он не должен решать задачи, которые обычно решаются на этапе экспорта или цветовой подготовки.
Практическая инструкция: сжатие одного JPEG
Самый простой сценарий — взять готовую фотографию original.jpg и получить оптимизированный файл optimized.jpg.
guetzli original.jpg optimized.jpg
Такой запуск использует настройки по умолчанию. Для контролируемого результата лучше сразу указать качество:
guetzli --quality 90 original.jpg optimized.jpg
Рабочий порядок:
- Подготовить исходный JPEG без лишнего пересжатия.
- Открыть терминал в папке с файлом.
- Запустить команду с нужным качеством.
- Дождаться завершения процесса.
- Сравнить размер исходного и итогового файла.
- Открыть оба изображения и проверить качество на 100% масштабе.
- Проверить проблемные зоны: небо, кожу, текстуры, контрастные края, мелкие линии.
Команда может выглядеть так:
guetzli --verbose --quality 90 hero-original.jpg hero-guetzli.jpg
Такой вариант удобен для главного изображения сайта: hero-original.jpg остаётся исходником, а hero-guetzli.jpg становится версией для публикации.
Практическая инструкция: PNG в JPEG
Guetzli можно использовать для конвертации PNG в JPEG, если исходный PNG содержит фотографическое изображение или тяжёлую растровую иллюстрацию без нужной прозрачности.
guetzli --quality 90 original.png result.jpg
Подходит:
- скриншот без прозрачности;
- фотография, сохранённая в PNG;
- большая растровая иллюстрация;
- изображение для статьи, где JPEG будет легче PNG;
- фоновые изображения для сайта.
Не подходит:
- логотип с прозрачным фоном;
- иконка интерфейса;
- картинка с текстом на прозрачности;
- UI-элемент, который должен накладываться на разные фоны;
- изображение, где нужны резкие однотонные границы без JPEG-артефактов.
JPEG не поддерживает прозрачность, поэтому PNG с альфа-каналом после обработки станет обычным JPEG на чёрном фоне. Это нужно проверять до публикации, а не после загрузки на сайт.
Практическая инструкция: подбор качества
Для Guetzli нормальная практика — сделать несколько вариантов и выбрать лучший визуально. Команда с одним качеством не всегда даёт оптимальный результат.
guetzli --quality 95 banner.png banner-q95.jpg
guetzli --quality 90 banner.png banner-q90.jpg
guetzli --quality 85 banner.png banner-q85.jpg
После обработки полезно составить небольшую таблицу:
| Вариант | Размер | Визуальное качество | Решение |
|---|---|---|---|
banner-q95.jpg | больше | почти без риска | использовать для важных изображений |
banner-q90.jpg | средний | обычно хороший баланс | проверить первым |
banner-q85.jpg | меньше | возможны артефакты | использовать только после ручной проверки |
На фотографиях с большим количеством деталей 85 может выглядеть приемлемо. На изображениях с чистым небом, плавными градиентами, тонкими линиями и текстом лучше поднимать качество. Guetzli не избавляет от необходимости смотреть на результат глазами: он просто делает более умную попытку сжатия.
Практическая инструкция: пакетная обработка
В Guetzli нет встроенной панели пакетной обработки. Нет окна, где можно выбрать папку, нажать Batch Convert, увидеть очередь и остановить отдельные файлы. Массовая обработка делается средствами оболочки.
Пример для всех JPEG в текущей папке:
for file in *.jpg; do
guetzli --quality 90 --verbose "$file" "guetzli-$file"
done
Этот цикл создаёт для каждого файла новую версию с префиксом guetzli-. Такой подход безопаснее, чем перезаписывать исходники.
Более аккуратный вариант с отдельной папкой:
mkdir -p optimized
for file in *.jpg; do
guetzli --quality 90 --verbose "$file" "optimized/$file"
done
Для PNG:
mkdir -p optimized
for file in *.png; do
name="${file%.*}"
guetzli --quality 90 --verbose "$file" "optimized/$name.jpg"
done
Главное правило пакетной обработки: не запускать слишком много процессов одновременно. Guetzli тяжёлый по памяти и CPU, поэтому параллельная обработка десятков изображений может привести не к ускорению, а к зависанию системы.

На скриншоте виден практический вариант автоматизации: действие Run Shell Script запускает /usr/local/Cellar/guetzli/1.0.1/bin/guetzli --quality 85 для входных изображений. Такой подход показывает реальную природу Guetzli: даже когда вокруг него строят графический сценарий, сама программа всё равно вызывается как консольный энкодер.
Что происходит с метаданными
Guetzli ориентирован на создание оптимизированного JPEG, а не на сохранение всей служебной информации исходника. В версии v1.0.1 обработка метаданных была приведена к более последовательному виду. Для практического использования это значит, что не стоит воспринимать Guetzli как архиватор фотографий, который обязан бережно сохранить EXIF, GPS, профиль камеры, комментарии и все служебные блоки исходного файла.
Для сайта удаление лишних метаданных часто полезно: файл становится меньше, а приватная информация вроде координат съёмки не попадает в публичный доступ. Для фотоархива ситуация другая: если важны EXIF, дата съёмки, модель камеры, объектив, геометки и авторские поля, исходник нужно хранить отдельно. Guetzli-файл лучше считать публикационной копией, а не мастер-файлом.
Качество входного изображения
Guetzli лучше работает с качественными исходниками. Если подать на вход JPEG, который уже был сильно сжат, программа не сможет восстановить потерянные детали. Она перекодирует то, что осталось после предыдущего энкодера. Предпочтительнее подавать несжатые или не пересжатые другими JPEG-энкодерами изображения; на других изображениях Guetzli тоже работает, но результат будет хуже.
Оптимальный исходник:
- качественный PNG без прозрачности, если нужен JPEG на выходе;
- JPEG высокого качества после финальной цветокоррекции;
- изображение, которое ещё не проходило через цепочку сохранили — загрузили — снова скачали — снова пересжали;
- файл с достаточным разрешением, но без лишнего апскейла.
Плохой исходник:
- маленький JPEG из мессенджера;
- картинка с уже заметными блоками;
- изображение после многократного пересохранения;
- скриншот с мелким текстом, который лучше оставить в PNG;
- PNG с прозрачностью, если прозрачность нужна.
Guetzli не является улучшателем качества. Он может сжать файл аккуратнее, но не превращает плохой исходник в хороший.
На каких изображениях Guetzli раскрывается лучше
Guetzli сильнее всего смотрится на статичных изображениях, где важна визуальная чистота:
- фотографии для сайта;
- крупные баннеры;
- hero-изображения;
- иллюстрации в статьях;
- изображения товаров;
- обложки публикаций;
- медиафайлы, которые долго остаются на странице;
- картинки, которые часто загружаются пользователями.
Особенно полезно тестировать Guetzli на изображениях с проблемными JPEG-зонами:
| Тип области | Почему важно |
|---|---|
| Небо и градиенты | обычный JPEG часто даёт полосы и шум |
| Контрастные провода, ветки, линии | возможен ringing-эффект |
| Глаза, волосы, мех, ткань | легко потерять мелкие детали |
| Кожа | артефакты быстро становятся заметными |
| Текст на изображении | JPEG может размывать края букв |
| Архитектура | много тонких линий и границ |
На увеличенном фрагменте глаза хорошо заметен смысл Guetzli: программа старается уменьшить файл так, чтобы зоны вокруг резких переходов выглядели спокойнее. Для обычного пользователя это выражается не в терминах DCT и квантования, а в простом впечатлении: картинка меньше весит, но не выглядит грубо пересжатой.
На каких изображениях Guetzli использовать не стоит
Guetzli не является универсальным решением. Есть типы файлов, где его применение не даёт смысла или создаёт проблемы.
Неудачные сценарии:
- изображения с прозрачностью;
- иконки и логотипы;
- UI-графика с резкими однотонными краями;
- скриншоты интерфейсов с мелким текстом;
- уже сильно сжатые JPEG;
- огромные фотоархивы;
- изображения, которые нужно оптимизировать мгновенно;
- картинки, для которых нужен progressive JPEG;
- задачи, где лучше использовать WebP или AVIF.
Для логотипов и интерфейсной графики JPEG вообще часто не лучший формат. Там важнее чёткие края, прозрачность, ограниченная палитра и отсутствие шумных артефактов. Guetzli создан не для этого. Его зона — фотографические и сложные растровые изображения, где JPEG уместен.
Производительность в реальной работе
Главный компромисс Guetzli — скорость. Программа может давать хороший результат по размеру и качеству, но делает это за счёт долгого поиска. Вычисления Guetzli крайне медленны, а область применения из-за этого ограничивается статичным контентом и демонстрацией потенциала психовизуальной оптимизации.
Это нужно воспринимать трезво. Guetzli не подходит для сценариев, где пользователь загружает изображение и ждёт ответа в веб-интерфейсе за 1–2 секунды. Он не подходит для динамической генерации картинок на лету. Он плохо подходит для массового пересжатия огромной медиатеки без очереди, лимитов и контроля ресурсов.
Зато он логичен в таких схемах:
- дизайнер подготовил финальные изображения;
- разработчик прогнал их через Guetzli;
- результат проверили визуально;
- файлы положили в статическую сборку сайта;
- эти изображения долго используются без повторного кодирования.
Для статического сайта, лендинга, документации, блога или каталога такой подход может быть оправдан. Для пользовательского фотохостинга или новостного портала с постоянным потоком изображений — обычно нет.
Типовой рабочий процесс для сайта
Практичный процесс подготовки изображения с Guetzli выглядит так:
- Отобрать изображение для публикации.
- Обрезать и изменить размер в отдельном редакторе.
- Привести цвет к sRGB.
- Убрать лишние варианты и оставить один мастер-файл.
- Запустить Guetzli с качеством
90или95. - Сравнить размер.
- Проверить качество в браузере.
- Подставить итоговый JPEG в сайт.
- Проверить страницу через инструменты анализа загрузки.
Пример для hero-изображения:
guetzli --verbose --quality 90 hero-source.png hero.jpg
Пример для фотографии в статье:
guetzli --verbose --quality 90 article-photo.jpg article-photo-optimized.jpg
Пример для более осторожного сжатия:
guetzli --verbose --quality 95 product-main.jpg product-main-web.jpg
Разница между 90 и 95 может быть существенной по размеру. Но если изображение крупное и важное, лучше сначала сделать обе версии, открыть рядом и выбрать глазами. Guetzli хорошо автоматизируется, но финальная оценка качества остаётся визуальной задачей.
Работа с изображениями товаров
Для интернет-магазина Guetzli может быть полезен, но не всегда. Товарные изображения обычно должны быть чистыми, детальными и быстро загружаться. Если речь идёт о небольшом количестве ключевых изображений — например, карточки дорогих товаров, главные фотографии категории, промобаннеры — Guetzli может дать аккуратный JPEG без заметной деградации.
Плюсы для товарных изображений:
- можно уменьшить вес главных фото;
- итоговый JPEG остаётся совместимым;
- качество хорошо сохраняется на верхних значениях
--quality; - удобно встроить в сборочный скрипт.
Минусы:
- медленно для тысяч SKU;
- сложно использовать без очереди обработки;
- нужно вручную проверять критичные изображения;
- для белого фона и тонких контуров иногда лучше сравнивать с MozJPEG;
- исходники с прозрачностью не подходят.
Рациональная схема для каталога: не обрабатывать Guetzli весь архив без разбора, а применять его к изображениям, которые действительно влияют на загрузку страницы и конверсию.
Работа с изображениями для статей и блогов
Для статей Guetzli подходит лучше, чем для огромных товарных архивов. Обычно в статье ограниченное количество изображений, и каждое из них можно проверить вручную. Если исходные картинки тяжёлые, Guetzli помогает уменьшить размер страницы без перехода на другой формат.
Типовой пример:
guetzli --quality 90 --verbose interview-photo.jpg interview-photo-web.jpg
Для блога важно не просто сжать максимально, а сохранить доверие к изображению. Пережатая фотография с блоками и ореолами выглядит дешёво. Guetzli как раз ориентирован на высокое визуальное качество, поэтому его логично применять там, где картинка видна крупно.
Работа с баннерами и обложками
Баннеры часто содержат градиенты, контрастный текст, лица, предметы и большие ровные области. Это сложный случай для JPEG. Guetzli может помочь, но проверка обязательна.
Рекомендации:
- если в баннере много текста, сравнить JPEG с PNG/WebP;
- если есть прозрачность, не использовать JPEG;
- если баннер фотографический, начать с
--quality 90; - если есть лицо крупным планом, проверить кожу и глаза;
- если есть небо или фоновые градиенты, проверить полосы и шум;
- если изображение открывается на retina-экранах, смотреть на реальном размере и на 100%.
Команда:
guetzli --quality 90 --verbose promo-banner.png promo-banner.jpg
Если после Guetzli текст становится мягким, а края букв теряют чёткость, лучше выбрать другой формат или поднять качество.
Работа в автоматизированной сборке
Guetzli можно встроить в pipeline, но с осторожностью. В отличие от быстрых оптимизаторов, он способен сильно увеличить время сборки. Если каждое изменение сайта заново запускает обработку десятков изображений, сборка станет неприятно долгой.
Более разумный вариант:
- хранить исходники отдельно;
- обрабатывать только новые или изменённые изображения;
- не перезапускать Guetzli для уже готовых файлов;
- сохранять результат в отдельной папке;
- не запускать много процессов одновременно;
- фиксировать качество в скрипте;
- использовать
--verboseдля логов.
Пример простой проверки по папке:
mkdir -p dist-images
for file in source-images/*.jpg; do
base="$(basename "$file")"
if [ ! -f "dist-images/$base" ]; then
guetzli --quality 90 --verbose "$file" "dist-images/$base"
fi
done
Такой скрипт не трогает уже обработанные изображения. Это важно: повторное JPEG-пересжатие ухудшает качество и тратит время.
Типичные ошибки и проблемы
Программа работает слишком долго
Это нормальное поведение для Guetzli на больших изображениях. Если файл крупный, а команда запущена без --verbose, процесс может выглядеть как зависание. Решение — использовать подробный режим:
guetzli --verbose --quality 90 input.jpg output.jpg
Если обработка всё равно слишком долгая, стоит уменьшить размер изображения до нужного веб-размера до запуска Guetzli. Нет смысла кодировать 6000×4000, если на сайте картинка показывается в 1600×1067.
Не хватает памяти
Guetzli требует много RAM. Если процесс завершается или система становится нестабильной, нужно ограничить память:
guetzli --memlimit 2048 --quality 90 input.jpg output.jpg
Но если лимит слишком мал для изображения, программа не сможет завершить кодирование. В таком случае нужно либо увеличить лимит, либо уменьшить разрешение исходника.
PNG потерял прозрачность
Это ожидаемо. JPEG не поддерживает альфа-канал, поэтому прозрачные области не сохраняются. Если прозрачность нужна, Guetzli использовать нельзя.
Цвет стал отличаться
Guetzli предполагает sRGB gamma 2.2 и игнорирует метаданные цветового профиля. Нужно заранее подготовить изображение в sRGB и проверять результат в среде, близкой к реальному просмотру.
Итоговый файл всё равно большой
Так бывает. Guetzli не гарантирует одинаковый процент экономии на всех изображениях. Если исходник уже хорошо оптимизирован или содержит сложные детали, выигрыш может быть меньше ожидаемого. Тогда стоит сравнить результат с MozJPEG, jpegoptim, WebP или AVIF.
Качество хуже ожидаемого
Нужно поднять --quality, проверить исходник и убедиться, что файл не был сильно пересжат ранее. Если изображение содержит текст, интерфейсные элементы или резкую графику, JPEG может быть неподходящим форматом независимо от энкодера.
Плюсы
Guetzli силён там, где нужно аккуратное JPEG-сжатие при высоком визуальном качестве.
| Плюс | Что это даёт |
|---|---|
| Обычный JPEG на выходе | не требуется менять формат и логику сайта |
| Высокое визуальное качество | меньше заметных JPEG-артефактов |
| Подходит для веб-изображений | можно уменьшать вес страниц |
| Простая команда запуска | легко встроить в скрипт |
| Поддержка PNG и JPEG на входе | можно кодировать разные исходники |
| Психовизуальная модель | сжатие ориентировано на восприятие человеком |
| Открытый исходный код | программа прозрачна для технической проверки |
| Хорош для статического контента | можно один раз долго обработать и долго использовать |
Главное достоинство Guetzli — не в удобстве, а в качестве кодирования. Это инструмент для тех, кто готов заплатить временем обработки за более аккуратный JPEG.
Минусы
Недостатки Guetzli существенные, и их нельзя замалчивать.
| Минус | Почему это важно |
|---|---|
| Очень медленная работа | не подходит для быстрой массовой обработки |
| Высокий расход памяти | крупные изображения требуют гигабайты RAM |
| Нет графического интерфейса | неудобно для нетехнических пользователей |
| Нет предпросмотра | качество нужно проверять отдельно |
| Нет встроенной пакетной панели | массовая обработка только через скрипты |
| Нет progressive JPEG | не подходит для проектов, где он обязателен |
| Нет сохранения прозрачности | PNG с alpha превращается в JPEG без прозрачности |
| Не универсальный конвертер | выходной формат только JPEG |
| Не редактор изображений | нет кадрирования, ресайза и цветокоррекции |
Guetzli — не лучший компрессор для всего. Это мощный, но узкий инструмент. Если нужна скорость, GUI, пакетная очередь, современные форматы или прогрессивный JPEG, часто разумнее выбрать другой вариант.
Сравнение с аналогами
Таблица сравнения
| Программа | Сильные стороны | Слабые стороны | Когда выбирать |
|---|---|---|---|
| MozJPEG | Практичный JPEG-энкодер для веба, поддерживает современные приёмы оптимизации JPEG, часто удобнее по скорости | Не всегда даёт такой же характер перцепционной оптимизации на высоком качестве | Для массовой JPEG-оптимизации и production-процессов |
| libjpeg-turbo | Очень высокая скорость за счёт SIMD-ускорения, широкое применение, хорошая совместимость | Ориентирован больше на скорость, чем на максимальный выигрыш размера при визуальном качестве | Для быстрых конвертаций, серверной обработки и приложений |
| jpegoptim | Простая массовая оптимизация готовых JPEG, умеет работать с метаданными и progressive JPEG | Не является таким глубоким перцепционным энкодером | Для пакетной оптимизации JPEG-файлов на сайте |
| ImageOptim | Удобный GUI на macOS, объединяет несколько оптимизаторов, хорошо подходит для drag-and-drop | Меньше прямого контроля над конкретным запуском энкодера | Для ручной оптимизации без терминала |
| Squoosh | Визуальное сравнение, браузерный интерфейс, поддержка разных кодеков, включая MozJPEG, WebP и AVIF | Менее удобен для тяжёлой автоматизации через классический CLI | Для ручного подбора формата и качества |
| WebP-инструменты | Часто дают меньший размер, поддерживают прозрачность и современные веб-сценарии | Это уже другой формат, нужна стратегия fallback или проверка поддержки | Для современных сайтов, где допустим не-JPEG |
| AVIF-инструменты | Очень сильное сжатие на многих типах изображений | Кодирование может быть медленным, совместимость и workflow сложнее JPEG | Для проектов, где нужен максимальный выигрыш размера |
MozJPEG улучшает эффективность JPEG-сжатия и остаётся совместимым с JPEG-декодерами; его чаще используют как библиотеку или часть инструментов обработки изображений.
libjpeg-turbo делает ставку на скорость и использует SIMD-инструкции для ускорения baseline и progressive JPEG compression/decompression; на типичных архитектурах он обычно заметно быстрее классического libjpeg.
jpegoptim удобен для оптимизации уже готовых JPEG: он поддерживает lossless optimization через оптимизацию Huffman-таблиц, lossy-режим с верхним пределом качества, удаление метаданных и преобразование progressive/non-progressive.
ImageOptim отличается тем, что даёт графическую оболочку и объединяет несколько инструментов оптимизации изображений, включая JPEGOptim, Jpegtran, Guetzli, Gifsicle, SVGO и MozJPEG.
Squoosh работает как веб-приложение для сжатия и сравнения изображений в браузере, а обработка выполняется локально на устройстве пользователя. Он удобнее для ручного сравнения разных кодеков и форматов.
Когда сильнее MozJPEG
MozJPEG часто практичнее для production. Он быстрее, лучше подходит для массовых pipeline, может использоваться через инструменты сборки и поддерживает сценарии, где нужен progressive JPEG. Для большого сайта с тысячами изображений это обычно более здравый выбор.
Guetzli имеет смысл, когда скорость кодирования не важна, а важен максимально аккуратный JPEG для ограниченного набора изображений. Например, для главных фотографий лендинга или тщательно отобранных иллюстраций.
Когда сильнее libjpeg-turbo
libjpeg-turbo выигрывает в скорости. Его выбирают там, где нужно быстро кодировать и декодировать JPEG: серверная обработка, приложения, CMS, медиасервисы, библиотеки, просмотрщики. Если задача — обработать много изображений быстро, Guetzli почти всегда проигрывает по времени.
Guetzli выигрывает только в ситуации, где можно ждать и где результат проверяется по визуальному качеству и размеру.
Когда сильнее jpegoptim
jpegoptim проще для массовой оптимизации существующих JPEG. Он хорошо подходит для задач вроде пройтись по папке сайта, удалить лишние метаданные, оптимизировать файлы, при необходимости сделать progressive JPEG. Guetzli глубже перекодирует изображение, но платит за это временем.
jpegoptim — инструмент повседневной уборки. Guetzli — инструмент точечной финальной перекодировки.
Когда сильнее ImageOptim
ImageOptim удобнее для пользователя, который не хочет работать с терминалом. Перетащил файлы — получил оптимизацию. Для дизайнеров, редакторов и контент-менеджеров это часто лучше, чем объяснять синтаксис guetzli --quality.
Guetzli удобнее, если нужен точный CLI-запуск, скрипт, логирование и повторяемый результат в сборочной системе.
Когда сильнее Squoosh
Squoosh полезен, когда нужно глазами сравнить разные форматы и настройки: JPEG, WebP, AVIF, MozJPEG, OxiPNG. Визуальный интерфейс и локальная обработка в браузере делают его удобным для ручного выбора.
Guetzli не показывает предпросмотр и не предлагает набор современных форматов. Он делает одну вещь: создаёт JPEG.
Сравнение с современными форматами
Guetzli остаётся внутри JPEG. Это одновременно преимущество и ограничение. Преимущество — максимальная совместимость. Ограничение — потолок эффективности старого формата.
WebP и AVIF часто дают меньший размер при сопоставимом визуальном качестве, особенно на современных сайтах. Они также могут поддерживать прозрачность, а AVIF особенно силён на сложных изображениях и низких битрейтах. Но переход на них требует другой логики публикации: нужно учитывать поддержку браузеров, fallback, генерацию нескольких форматов, корректные picture/source, MIME-типы и кэширование.
Guetzli проще в интеграции: был JPEG — остался JPEG. Для сайтов, где нельзя менять формат, это сильный аргумент. Для новых проектов, где можно настроить современный pipeline, стоит сравнивать Guetzli не только с JPEG-энкодерами, но и с WebP/AVIF.
Научная оценка качества
Guetzli оценивается через perceptual distance по Butteraugli и показывает сильное снижение размера по сравнению с другими протестированными компрессорами при заданном уровне воспринимаемых искажений. При этом вычисления Guetzli крайне медленны, поэтому он лучше подходит для статичного контента и как пример эффективности продвинутых психовизуальных моделей.
Парные сравнения изображений Guetzli и libjpeg одинакового размера показывают, что пользователи чаще предпочитают вариант Guetzli. Это важный момент: речь не только о меньшем размере, но и о субъективном восприятии качества человеком.
Для практического обзора это означает следующее: Guetzli нельзя корректно оценивать одним числом на сколько процентов сжал. Его сильная сторона — соотношение размера и воспринимаемого качества, особенно на верхних уровнях качества JPEG.
Безопасность использования
Guetzli — консольная программа, которая читает входной файл и создаёт JPEG. Основной риск при использовании связан не с интерфейсом, а с рабочим процессом:
- случайная перезапись исходников;
- обработка файлов без резервной копии;
- потеря прозрачности при PNG → JPEG;
- потеря или изменение метаданных;
- перегрузка системы памятью;
- запуск непроверенных бинарников из сомнительных мест;
- использование результата без визуальной проверки.
Безопасная схема:
- Хранить исходники отдельно.
- Писать результат в другую папку.
- Не перезаписывать мастер-файлы.
- Использовать понятные имена файлов.
- Сначала тестировать на нескольких изображениях.
- Проверять качество вручную.
- Ограничивать память на слабых машинах.
Пример безопасного запуска:
mkdir -p guetzli-output
guetzli --quality 90 --verbose original.jpg guetzli-output/original.jpg
Так исходник остаётся нетронутым.
Лицензия и открытость
Guetzli распространяется как open-source проект под лицензией Apache-2.0. Это важно для разработчиков и компаний: инструмент можно изучать, собирать, интегрировать и использовать в автоматизированных процессах с понятной лицензией. Репозиторий содержит исходный код, файлы сборки, документацию и историю релизов.
Открытость также полезна для технической проверки. Guetzli не является чёрным ящиком онлайн-сервиса: можно понять, как он вызывается, какие параметры принимает и как ведёт себя в скриптах.
Практические рекомендации по настройкам
Для большинства ручных тестов стоит начинать с --quality 90.
guetzli --quality 90 --verbose input.jpg output.jpg
Для очень важных изображений:
guetzli --quality 95 --verbose input.jpg output.jpg
Для более сильного уменьшения размера:
guetzli --quality 85 --verbose input.jpg output.jpg
Для слабой машины или сервера с ограниченной RAM:
guetzli --memlimit 2048 --quality 90 --verbose input.jpg output.jpg
Для PNG без прозрачности:
guetzli --quality 90 --verbose input.png output.jpg
Для пакетной обработки без перезаписи исходников:
mkdir -p optimized
for file in *.jpg; do
guetzli --quality 90 --verbose "$file" "optimized/$file"
done
Рекомендованные стартовые значения:
| Сценарий | Значение |
|---|---|
| Главная фотография сайта | --quality 95 или 90 |
| Обычная иллюстрация в статье | --quality 90 |
| Большой баннер | --quality 90, затем визуальная проверка |
| Товарное фото | --quality 90 или 95 |
| Эксперимент на размер | --quality 85 |
| Диагностика долгой обработки | --verbose |
| Сервер с ограниченной памятью | --memlimit |
Проверка результата после сжатия
После Guetzli недостаточно посмотреть только на размер файла. Нужно проверить картинку.
Минимальный чек-лист:
- открыть исходник и результат рядом;
- сравнить на 100% масштабе;
- проверить небо, фон и градиенты;
- проверить кожу, глаза, волосы, мех;
- проверить текст и логотипы, если они есть;
- проверить контрастные края;
- проверить файл в браузере;
- сравнить размер до и после;
- убедиться, что изображение не стало визуально хуже.
Если результат меньше, но изображение выглядит неприятно, такой результат не нужно публиковать. Guetzli — не оправдание для чрезмерного сжатия. Его смысл в том, чтобы сохранить качество, а не выжать минимальный размер любой ценой.
Лучшие сценарии применения
Финальная оптимизация важных JPEG
Самый правильный сценарий: есть несколько важных изображений, которые будут долго использоваться на сайте. Их можно один раз обработать Guetzli, проверить и положить в production.
Оптимизация статических страниц
Документация, блог, лендинг, портфолио, промо-страницы и статические сайты хорошо сочетаются с Guetzli. Изображения меняются редко, поэтому долгое кодирование не мешает ежедневной работе.
Подготовка медиа для SEO и скорости загрузки
Сжатие изображений влияет на вес страницы. Guetzli может помочь уменьшить JPEG без визуально грубой деградации. Но он не заменяет остальные меры: правильный размер изображения, lazy loading, srcset, кэширование и современные форматы.
Сравнение JPEG-энкодеров
Guetzli полезен как эталонный медленный, но качественный вариант для сравнения с MozJPEG, libjpeg-turbo и jpegoptim. Можно взять один исходник, закодировать разными инструментами, сравнить размер и визуальное качество.
Неудачные сценарии применения
Динамическая обработка пользовательских загрузок
Если пользователь загружает фотографию и ждёт готовый результат сразу, Guetzli может быть слишком медленным. Для такого сценария нужны быстрые энкодеры.
Полная медиатека на тысячи изображений
Обработать можно, но это потребует времени, памяти и очереди задач. Для огромных архивов лучше использовать более быстрый pipeline и применять Guetzli только выборочно.
Изображения с прозрачностью
PNG с альфа-каналом не должен проходить через Guetzli, если прозрачность нужна в финальном файле.
Интерфейсные скриншоты
Скриншоты с текстом, таблицами, панелями и тонкими линиями часто лучше хранить в PNG или WebP. JPEG может испортить резкость.
Проекты с обязательным progressive JPEG
Guetzli создаёт sequential JPEG. Если progressive JPEG обязателен, нужен другой инструмент.
Частые вопросы
Можно ли использовать Guetzli как обычный редактор изображений?
Нет. Guetzli не редактирует изображение в привычном смысле. Он не кадрирует, не меняет размер, не рисует, не корректирует цвет и не работает со слоями. Это JPEG-энкодер.
Можно ли сжимать PNG?
Да, но результат будет JPEG. Если PNG содержит прозрачность, она не сохранится.
Можно ли получить WebP или AVIF?
Нет. Guetzli создаёт только JPEG.
Можно ли сделать progressive JPEG?
Нет. Guetzli создаёт sequential JPEG.
Почему программа такая медленная?
Guetzli использует сложный поиск и психовизуальную модель качества. Он тратит много CPU-времени, чтобы подобрать более удачное кодирование. Это не баг, а свойство подхода.
Нужно ли использовать --verbose?
Для ручной работы — желательно. Без него на больших файлах сложно понять, идёт ли обработка.
Можно ли перезаписывать исходный файл?
Технически в некоторых версиях поведение с одинаковым именем исправлялось, но в рабочем процессе лучше так не делать. Безопаснее всегда писать результат в отдельный файл или папку.
Какое качество выбрать?
Начать с 90. Для важных изображений проверить 95. Для экономии места протестировать 85, но обязательно смотреть результат глазами.
Кому подходит Guetzli
Guetzli подходит:
- веб-разработчикам;
- техническим SEO-специалистам;
- администраторам сайтов;
- специалистам по производительности фронтенда;
- владельцам статических сайтов;
- разработчикам сборочных pipeline;
- пользователям, которым удобна командная строка;
- тем, кто готов ждать ради лучшего JPEG-сжатия.
Главный пользователь Guetzli — не человек, который хочет быстро уменьшить фотку, а тот, кто понимает компромисс между временем кодирования, весом файла и визуальным качеством.
Кому лучше выбрать другой инструмент
Другой инструмент лучше выбрать, если нужно:
- графическое окно;
- drag-and-drop;
- быстрый результат;
- массовая обработка тысяч файлов;
- progressive JPEG;
- WebP или AVIF;
- сохранение прозрачности;
- предпросмотр до сохранения;
- конвертация множества форматов;
- простая работа без терминала.
В таких случаях практичнее смотреть на Squoosh, ImageOptim, MozJPEG, jpegoptim, libjpeg-turbo, WebP-энкодеры или AVIF-энкодеры.
Итоговая оценка
Guetzli — сильный, но узкоспециализированный JPEG-энкодер. Его нельзя честно назвать универсальным компрессором изображений или удобной программой для любого пользователя. Он медленный, прожорливый по памяти, не имеет графического интерфейса, не поддерживает progressive JPEG и создаёт только JPEG. Эти ограничения серьёзные.
Но в своей нише Guetzli остаётся интересным инструментом. Он берёт PNG или JPEG, применяет перцепционный подход к JPEG-кодированию и создаёт совместимый JPEG-файл с хорошим визуальным качеством. Для статичных веб-изображений, важных фотографий, баннеров и иллюстраций, которые можно обработать один раз и затем долго использовать, это рациональный вариант.
Короткая практическая формула такая: Guetzli стоит использовать не для всего архива, а для тех JPEG, где качество заметно, размер важен, а время обработки не критично.

