Guetzli: JPEG-кодировщик Google для сильного сжатия фотографий
Guetzli — это специализированный JPEG-энкодер Google для сжатия изображений с упором на высокое визуальное качество. Программа не является графическим редактором, просмотрщиком или универсальным конвертером форматов. Ее задача уже и конкретнее: взять PNG или JPEG на входе, провести перцептуальное сжатие и создать стандартный JPEG-файл, который открывается обычными браузерами, CMS, фоторедакторами и просмотрщиками изображений. Guetzli работает через командную строку, поэтому вместо привычных кнопок и панелей здесь используются команды, входной файл, выходной файл и параметры запуска: --quality, --verbose, --memlimit, --nomemlimit.
Guetzli: онлайн-сервис
Новейшая версия для Windows и macOS. Удобный редактор с ИИ и профессиональными функциями.
⬇ Скачать ФотоМАСТЕР бесплатно
Guetzli нельзя скачать — сервис работает онлайн

Название Guetzli произносится как гецли и переводится со швейцарского немецкого как печенье. Это не декоративная деталь, а часть общей линии Google в области компрессии: рядом с Guetzli стоит Zopfli, тоже названный в пищевой стилистике и тоже ориентированный на более плотное сжатие без перехода на новый пользовательский формат. Главное отличие Guetzli от WebP, AVIF и JPEG XL состоит именно в том, что результат остается обычным .jpg, а не новым типом изображения.
Что такое Guetzli и для чего нужна программа
Guetzli нужен для подготовки JPEG-изображений, где размер файла важен, но нельзя грубо урезать качество. Его типовой сценарий — финальная оптимизация фотографий, иллюстраций, промо-изображений и графики для сайта, когда картинка уже выбрана, отретуширована, приведена к нужному размеру и остается только получить более компактный JPEG.
Программа решает конкретные задачи:
сжимает фотографии в JPEG без смены формата;
преобразует PNG в JPEG, если прозрачность не нужна;
заново кодирует JPEG с более плотной упаковкой;
подбирает параметры так, чтобы визуальные артефакты были менее заметны;
уменьшает размер статичных изображений для сайта;
помогает снизить вес страниц, где много фотографического контента;
дает обычный JPEG-файл, совместимый с браузерами и большинством программ.
Guetzli не занимается ретушью, кадрированием, изменением разрешения, пакетным переименованием, удалением объектов с фото или настройкой цвета через визуальные ползунки. В нем нет кнопок Open, Save, Export, Batch, Preview или Compare, потому что это не приложение с графическим интерфейсом. Все управление происходит через консольную строку.
Базовая логика работы выглядит так:
guetzli input.png output.jpgили так:
guetzli --quality 90 input.jpg output.jpgПервый путь к файлу — исходник, второй путь — новый JPEG, который программа создаст после обработки. Если на вход подается PNG, Guetzli читает PNG и кодирует его в JPEG. Если на вход подается JPEG, программа читает JPEG и создает новый JPEG с собственным подбором параметров.
Чем Guetzli отличается от обычного JPEG-сжатия
Обычный JPEG-экспорт в фоторедакторе обычно сводится к выбору качества: 70, 80, 90, 95 или аналогичный ползунок. Чем ниже качество, тем меньше файл, но тем заметнее блоки, шум, звон на границах, грязь вокруг контрастных линий и потеря тонких деталей. Guetzli подходит к той же задаче иначе: он не просто применяет стандартный набор таблиц сжатия, а подбирает параметры с учетом того, как человек воспринимает искажения.
В основе работы Guetzli лежит перцептуальная модель: программа пытается сохранить то, что визуально важно, и сильнее сжимает то, где потери менее заметны. Это особенно важно для фотографий с плавными переходами, небом, кожей, шерстью, листвой, бликами, тонкими линиями и контрастными границами. В таких местах обычный JPEG часто выдает ringing artefacts — светлые или темные ореолы вокруг резких деталей.
Guetzli работает с классическим JPEG-процессом: цветовое преобразование, дискретное косинусное преобразование, квантование и кодирование коэффициентов. Его сильная сторона — более тщательная работа на этапе квантования и выбора DCT-коэффициентов. Программа использует Butteraugli как метрику обратной связи: результат оценивается не только математически, но и с учетом психовизуального расстояния между исходником и сжатым изображением.
На демонстрационном фрагменте хорошо видна практическая цель Guetzli: убрать лишние JPEG-артефакты вокруг контрастной линии и при этом не раздувать размер файла. Это не магическое улучшение качества и не восстановление деталей, которых нет в исходнике. Guetzli просто тратит битрейт более избирательно.
Формат результата и совместимость
Guetzli создает стандартный JPEG. Это важная особенность: после обработки файл не требует специального декодера, расширения браузера, отдельного просмотрщика или поддержки нового формата в CMS. Такой .jpg можно вставить в HTML через обычный тег <img>, загрузить в медиатеку WordPress, открыть в XnView, Photoshop, Preview, FastStone Image Viewer, IrfanView и других программах, которые понимают JPEG.
Результат Guetzli — последовательный JPEG, не progressive JPEG. Это значит, что изображение не загружается в браузере слоями от размытого к четкому, как progressive JPEG. Такой выбор сделан в пользу более быстрого декодирования последовательных JPEG-файлов. Для сайтов это может быть как плюсом, так и минусом: файл совместим и быстро декодируется, но не дает progressive-эффекта при медленном соединении.
| Характеристика | Как работает в Guetzli |
|---|---|
| Входные форматы | PNG и JPEG |
| Выходной формат | JPEG |
| Совместимость результата | Обычные браузеры, CMS, редакторы и просмотрщики |
| Progressive JPEG | Нет |
| Прозрачность PNG | Не сохраняется |
| Управление | Командная строка |
| Основной акцент | Высокое визуальное качество при меньшем размере файла |
Интерфейс программы: почему здесь нет привычных кнопок
Guetzli — консольная утилита. В ней нет окна программы, верхнего меню, панели инструментов, вкладок, кнопки предпросмотра и визуального сравнения до/после. Это может показаться минусом, но именно такой формат делает программу удобной для автоматизации: Guetzli легко встроить в скрипт, пайплайн сборки сайта, локальную обработку папки с изображениями или подготовку статичных файлов перед публикацией.
Вместо элементов интерфейса используются флаги командной строки:
| Элемент управления | Назначение |
|---|---|
input_filename | путь к исходному PNG или JPEG |
output_filename | путь к создаваемому JPEG |
--quality Q | целевое визуальное качество |
--verbose | подробный вывод процесса кодирования |
--memlimit M | ограничение памяти в мегабайтах |
--nomemlimit | запуск без лимита памяти |
-- | завершение списка флагов, если имя файла может быть похоже на параметр |
Стандартная форма команды выглядит так:
guetzli [flags] input_filename output_filenameВ этой схеме нет скрытой логики. Guetzli не перезаписывает исходник, если явно не указать один и тот же путь для входа и выхода в сценариях, где это поддерживается. Практически безопаснее всегда писать результат в отдельную папку или под новым именем.
Подготовка к работе
Перед запуском Guetzli нужно подготовить исходное изображение. Программа лучше всего раскрывается на качественных исходниках, а не на многократно пережатых JPEG-файлах. Идеальный вариант — PNG без потерь, TIFF, PSD или другой исходник, который предварительно экспортирован в PNG, либо JPEG высокого качества, полученный из камеры или редактора без агрессивного сжатия.
Правильная подготовка выглядит так:
Сначала выполняется кадрирование.
Затем задается нужное разрешение.
После этого проводится цветокоррекция и ретушь.
Удаляется ненужная прозрачность, если исходник PNG.
Только потом запускается Guetzli.
Готовый JPEG проверяется визуально и по размеру файла.
Guetzli не должен быть первым инструментом в цепочке. Его место — ближе к финалу. Если сначала сжать изображение через Guetzli, а потом открыть JPEG в редакторе, изменить размер и снова сохранить, часть преимущества потеряется, а артефакты могут накопиться.
Как пользоваться Guetzli: базовые команды
Самая простая команда берет исходный PNG и создает JPEG:
guetzli original.png output.jpgЗдесь original.png — исходное изображение, а output.jpg — результат. Если файл лежит в другой папке, указывается путь:
guetzli images/original.png public/output.jpgДля JPEG-входа команда выглядит так же:
guetzli original.jpg output.jpgПри таком запуске Guetzli применяет качество по умолчанию. Для практической работы чаще задают качество явно:
guetzli --quality 90 original.jpg output.jpgЕсли нужно увидеть больше информации о процессе, используется --verbose:
guetzli --verbose --quality 95 original.png output.jpgПорядок флагов может быть разным, но входной и выходной файл идут после параметров:
guetzli --quality 92 --verbose photo.png photo-guetzli.jpgКоманда с ограничением памяти:
guetzli --quality 90 --memlimit 4096 photo.png photo.jpgКоманда без лимита памяти:
guetzli --quality 90 --nomemlimit photo.png photo.jpg--nomemlimit не делает обработку быстрее и не уменьшает расход ресурсов. Он только разрешает программе использовать столько памяти, сколько потребуется системе для конкретного изображения.

На скриншоте показан реальный консольный сценарий, где Guetzli запускается как часть автоматизированной обработки изображений. Видно, что задачи guetzli-100, guetzli-90 и guetzli-85 выполняются долго, а вывод показывает экономию размера и время завершения. Такой формат хорошо отражает характер программы: Guetzli не рассчитан на мгновенную обработку, зато подходит для финального сжатия статичных изображений.
Параметр --quality: как выбрать качество JPEG
--quality — главный рабочий параметр Guetzli. Он задает целевое визуальное качество в единицах, сопоставимых с привычным JPEG quality. Значение по умолчанию — 95.
Пример:
guetzli --quality 95 input.png output.jpgЧем выше значение, тем больше файл и тем аккуратнее Guetzli сохраняет детали. Чем ниже значение, тем меньше файл, но тем выше риск заметных потерь.
Практическая шкала:
Значение --quality | Практическое применение |
|---|---|
| 84–87 | Агрессивное сжатие для второстепенных изображений, где допустима потеря деталей |
| 88–90 | Хороший компромисс для статей, блогов, карточек, иллюстраций и больших медиатек |
| 91–94 | Фотографии, промо-блоки, изображения товаров, где важна аккуратная детализация |
| 95 | Безопасный вариант для качественных исходников и визуально важных изображений |
| 96–100 | Редкие случаи, когда размер менее важен, чем максимальное сохранение визуальной точности |
Для большинства веб-задач начинать лучше с --quality 90 или --quality 92. Если изображение содержит кожу, текстуры ткани, предметную съемку, тонкие градиенты или важные мелкие детали, разумнее подняться до --quality 95.
Команда для универсального веб-сценария:
guetzli --quality 90 input.jpg output.jpgКоманда для аккуратной обработки фотографии товара:
guetzli --quality 95 product.png product.jpgКоманда для обложки, которую нельзя сильно портить:
guetzli --quality 96 cover.png cover.jpgВажно не воспринимать --quality 90 как 90% качества. Это условная шкала JPEG-качества, а не точный процент сохраненных данных. Два разных изображения при одном и том же значении могут дать совершенно разный размер файла и разную заметность артефактов.
Параметр --verbose: подробный режим
--verbose включает подробный вывод. Это полезно, потому что Guetzli работает медленно, и без вывода может казаться, что процесс завис. Подробный режим показывает следы попыток кодирования и помогает понять, что программа продолжает работу.
Пример:
guetzli --verbose --quality 90 input.png output.jpgКогда стоит включать --verbose:
при первом запуске программы;
при обработке больших изображений;
при диагностике долгого кодирования;
при сравнении разных значений
--quality;при запуске Guetzli внутри скрипта;
при поиске проблемы с памятью или ошибкой чтения файла.
Для обычной пакетной обработки --verbose можно отключить, чтобы не засорять консоль. Для одиночных крупных файлов подробный режим, наоборот, удобен.
Параметры памяти: --memlimit и --nomemlimit
Guetzli требователен к оперативной памяти. Для расчета можно использовать ориентир 300 МБ на 1 мегапиксель входного изображения. Также нужно учитывать, что обработка требует значительного процессорного времени: примерно 1 минута CPU на 1 мегапиксель исходника.
Пример расчета:
| Размер изображения | Мегапиксели | Ориентировочная память |
|---|---|---|
| 1920×1080 | 2,1 МП | около 630 МБ |
| 3000×2000 | 6 МП | около 1800 МБ |
| 4000×3000 | 12 МП | около 3600 МБ |
| 6000×4000 | 24 МП | около 7200 МБ |
| 8000×6000 | 48 МП | около 14400 МБ |
Параметр --memlimit задает лимит в мегабайтах:
guetzli --memlimit 4096 input.jpg output.jpgЕсли Guetzli понимает, что не сможет уложиться в лимит, он завершает работу с ошибкой:
Memory limit would be exceeded. Failing.Для крупного изображения можно увеличить лимит:
guetzli --memlimit 8192 large.png large.jpgИли снять ограничение:
guetzli --nomemlimit large.png large.jpg--nomemlimit стоит использовать осознанно. Если система уйдет в активный swap, обработка может стать крайне медленной, а другие программы начнут заметно тормозить. Для стабильной работы лучше заранее уменьшить разрешение изображения до финального размера, а не пытаться сжимать исходник на 30–50 мегапикселей, если для сайта нужна картинка 1600–2400 пикселей по ширине.
Какие изображения лучше подавать на вход
Guetzli рассчитан на высококачественные исходники. Чем чище исходное изображение, тем больше смысла в его перцептуальной оптимизации. Если подать уже пережатый JPEG с блоками, ореолами и грязью вокруг контуров, программа не восстановит исходную детализацию. Она заново закодирует поврежденный материал и может даже подчеркнуть часть дефектов.
Лучшие входные данные:
PNG без потерь;
JPEG высокого качества;
фотографии после финальной обработки;
изображения без предыдущих агрессивных JPEG-сохранений;
статичные картинки для сайта;
промо-изображения, баннеры и обложки;
предметные фотографии;
иллюстрации с плавными переходами.
Плохие входные данные:
маленькие JPEG-превью из мессенджеров;
изображения, уже сжатые до качества 50–70;
файлы с сильными JPEG-блоками;
картинки с текстом, если нужен идеально резкий шрифт;
PNG с прозрачностью, где фон должен остаться прозрачным;
скриншоты интерфейсов с мелким текстом;
изображения, которые потом снова будут редактироваться и пересохраняться.
Для фотографий Guetzli обычно полезнее, чем для скриншотов. Скриншоты часто содержат резкие границы, тонкие шрифты и плоские заливки. JPEG как формат неидеален для такого материала, а Guetzli все равно создает JPEG, а не PNG. Если нужно сжать интерфейсный скриншот, логотип, схему или изображение с большим количеством текста, лучше сначала проверить, не будет ли PNG или WebP без потерь практичнее.
Что происходит с PNG-прозрачностью
JPEG не поддерживает alpha channel. Если подать в Guetzli PNG с прозрачностью, прозрачные области не сохранятся. Они будут наложены на черный фон перед кодированием.
Это критически важно для логотипов, иконок, вырезанных товаров, изображений на прозрачном фоне и графики для маркетплейсов. Если нужен белый фон, его нужно подложить заранее в редакторе или через отдельную утилиту, а уже потом запускать Guetzli.
Неправильный сценарий:
guetzli logo-transparent.png logo.jpgРезультат может получить черный фон.
Правильный сценарий:
Открыть PNG с прозрачностью в редакторе.
Добавить нужный фон: белый, серый, фирменный или фон сайта.
Сохранить подготовленный файл без прозрачности.
Запустить Guetzli.
Пример:
guetzli --quality 95 logo-on-white.png logo.jpgДля товарных изображений это особенно важно: если карточка должна быть на белом фоне, фон нужно зафиксировать до сжатия. Guetzli не является инструментом композитинга и не выбирает фон автоматически.
Цветовой профиль и гамма
Guetzli предполагает, что входное изображение находится в sRGB с гаммой 2.2, и игнорирует метаданные цветового профиля.
На практике это означает: перед обработкой лучше привести изображение к sRGB. Для веба это стандартный рабочий вариант. Если исходник находится в Adobe RGB, Display P3 или другом цветовом пространстве, полагаться на то, что Guetzli корректно сохранит задуманный вид через профиль, не стоит. Цвет лучше конвертировать заранее в редакторе.
Правильная цепочка для фотографии:
обработать RAW или исходник в редакторе;
привести картинку к sRGB;
задать финальное разрешение;
экспортировать в PNG или JPEG высокого качества;
обработать через Guetzli;
проверить результат в браузере и просмотрщике.
Практические сценарии использования
Подготовка фотографий для сайта
Guetzli хорошо подходит для финального сжатия фотографий перед публикацией на сайте. Например, есть блог, каталог, портфолио или лендинг, где используются большие изображения. Обычный экспорт JPEG из редактора дает файл 400–700 КБ. Guetzli может уменьшить итоговый вес при сопоставимом визуальном качестве, особенно если исходник качественный и не содержит старых артефактов.
Рабочая команда:
guetzli --quality 90 article-photo.png article-photo.jpgДля обложек и главных экранов лучше выбрать качество выше:
guetzli --quality 95 hero-image.png hero-image.jpgЗатем нужно проверить:
размер файла;
резкость важных зон;
небо и градиенты;
края объектов;
кожу и текстуры;
отсутствие сильного цветового сдвига;
вид в браузере на обычном масштабе.
Оптимизация статичных картинок в проекте
Guetzli плохо подходит для сжатия на лету, но хорошо подходит для статичных файлов, которые редко меняются. Например, в проекте есть папка assets/images, где лежат фотографии для страниц, документации или посадочных блоков. Можно один раз обработать изображения и положить результат в production-сборку.
Пример:
guetzli --quality 92 assets/source/banner.png assets/build/banner.jpgДля повторяемого процесса Guetzli удобно запускать из скрипта. Главное — не заставлять его обрабатывать файлы при каждом запросе пользователя. Это не серверный быстрый ресайзер, а медленный энкодер для финальной подготовки.
PNG → JPEG для фотографических изображений
PNG-файлы с фотографиями часто весят неоправданно много. Если прозрачность не нужна, Guetzli может превратить такой PNG в компактный JPEG.
Пример:
guetzli --quality 90 photo.png photo.jpgТакой сценарий особенно полезен, когда фотография случайно сохранена в PNG, а для сайта нужен JPEG. Но для логотипов, схем, скриншотов интерфейса и графики с текстом решение не всегда будет удачным: JPEG может создать размытость и артефакты вокруг букв.
Повторное кодирование JPEG
Guetzli умеет брать JPEG на входе:
guetzli --quality 90 camera.jpg camera-optimized.jpgЭтот режим полезен, если исходный JPEG качественный. Например, файл экспортирован из Lightroom, Capture One, Photoshop или камеры с высоким качеством. Если же JPEG уже был сильно сжат, повторное кодирование может ухудшить изображение.
Хорошая практика: сравнить результат при масштабе 100% и в реальном размере отображения на сайте. Если при 100% видна небольшая разница, но на странице она незаметна, а файл стал существенно меньше, обработка оправдана. Если на глаз заметны грязные края, потеря текстуры или пятна на градиентах, качество нужно повысить.
Контроль качества перед публикацией
Guetzli не показывает визуальное сравнение внутри программы. Проверка делается внешними средствами: просмотрщиком изображений, браузером, фоторедактором или отдельной утилитой сравнения.
Минимальный контроль:
Открыть исходник и результат рядом.
Проверить 100% масштаб.
Посмотреть изображение в реальном размере на сайте.
Сравнить вес исходника и результата.
Проверить проблемные зоны: небо, тонкие линии, мелкие детали, кожу, шерсть, текст.
Если картинка для коммерческой карточки товара, лучше проверять не только общий вид, но и зоны, где покупатель будет увеличивать изображение: фактура материала, край упаковки, надписи, мелкие элементы.
На фрагментах с глазом хорошо видно, зачем Guetzli нужен именно для фотографического материала: цель не в том, чтобы сделать картинку резче, а в том, чтобы при заданном размере сохранить более приятное восприятие контрастных деталей и не получить грубый ringing вокруг мелких форм.
Пакетная обработка
В Guetzli нет собственной кнопки Batch и окна пакетной обработки. Пакетный режим организуется средствами оболочки: Bash, PowerShell, Makefile, npm scripts, Python-скриптом или любым другим инструментом, который перебирает файлы.
Linux и macOS
Пример для PNG-файлов:
mkdir -p outfor file in *.png; do guetzli --quality 90 "$file" "out/${file%.png}.jpg"doneПример для JPEG-файлов:
mkdir -p outfor file in *.jpg; do guetzli --quality 90 "$file" "out/${file%.jpg}-guetzli.jpg"doneЕсли в папке могут быть .jpeg:
mkdir -p outfor file in *.jpg *.jpeg; do [ -e "$file" ] || continue base="${file%.*}" guetzli --quality 90 "$file" "out/${base}-guetzli.jpg"doneWindows PowerShell
Пример для JPEG:
New-Item -ItemType Directory -Force -Path outGet-ChildItem -Filter *.jpg | ForEach-Object { guetzli --quality 90 $_.FullName ("out" + $_.BaseName + "-guetzli.jpg")}Пример для PNG:
New-Item -ItemType Directory -Force -Path outGet-ChildItem -Filter *.png | ForEach-Object { guetzli --quality 90 $_.FullName ("out" + $_.BaseName + ".jpg")}Для большой папки лучше сначала протестировать несколько файлов, подобрать --quality, оценить скорость и только потом запускать весь набор. Guetzli может быть слишком медленным для сотен крупных изображений, особенно если это фотографии 20–50 МП.
Скорость работы и системные требования
Скорость — главный компромисс Guetzli. Программа может давать компактный JPEG при высоком визуальном качестве, но за это приходится платить временем. Она не рассчитана на сценарий пользователь загрузил фото — сервер мгновенно сжал и отдал результат. Для такого лучше подходят libjpeg-turbo, MozJPEG, Sharp, ImageMagick, Squoosh CLI или другие инструменты, где скорость важнее предельной плотности JPEG.
Ориентир по времени — около 1 минуты CPU на 1 мегапиксель. Для изображения 4000×3000 это уже около 12 мегапикселей, то есть обработка может занять заметное время. На слабом процессоре или при нехватке памяти процесс будет еще дольше.
Практические выводы:
маленькие изображения обрабатываются терпимо;
фотографии 6–12 МП требуют терпения;
файлы 24 МП и выше лучше предварительно уменьшать;
для тысяч изображений нужно планировать долгий пакетный запуск;
для веба почти всегда нужно сначала привести картинку к финальному размеру;
запускать несколько экземпляров Guetzli параллельно стоит только при достаточном объеме RAM.
Если нужно обработать 100 фотографий по 12 МП, Guetzli может оказаться слишком тяжелым решением. Если нужно подготовить 20 важных обложек, где каждый килобайт имеет значение и результат будет долго использоваться на сайте, программа выглядит гораздо уместнее.
Качество результата: где Guetzli выглядит сильнее
Guetzli особенно интересен там, где обычный JPEG начинает показывать неприятные артефакты при снижении размера. Это не универсальное улучшение картинки, а более умная упаковка визуально значимой информации.
Сильные зоны Guetzli:
| Тип изображения | Почему Guetzli полезен |
|---|---|
| Небо и плавные градиенты | меньше грубых пятен и заметных переходов |
| Тонкие линии на контрастном фоне | меньше ringing-артефактов |
| Шерсть, волосы, ткань | аккуратнее сохраняется воспринимаемая фактура |
| Предметная фотография | лучше контролируются границы и мелкие детали |
| Промо-баннеры с фото | можно уменьшить вес без грубой деградации |
| Иллюстрации с фотографической основой | сохраняется визуальная плотность при меньшем размере |
Слабые зоны:
| Тип изображения | Почему результат может быть хуже ожидаемого |
|---|---|
| Скриншоты интерфейсов | JPEG плохо держит мелкий текст и резкие пиксельные границы |
| Логотипы | лучше сохранять в SVG или PNG |
| Схемы и чертежи | тонкие линии и подписи могут размываться |
| Изображения с прозрачностью | JPEG не поддерживает alpha channel |
| Уже пережатые JPEG | Guetzli не восстановит потерянную информацию |
| Картинки, которые будут редактироваться дальше | повторное сохранение снова ухудшит качество |
История версий Guetzli
Guetzli развивался коротко и достаточно интенсивно. В истории программы важны не десятки крупных релизов, а переход от раннего экспериментального состояния к стабильной консольной утилите с исправлениями сборки, памяти и ошибок на малых изображениях.
| Версия | Дата релиза | Основные изменения |
|---|---|---|
| v0 | 24 октября 2016 | начальный публичный релиз, ранняя база энкодера |
| v0.1 | 21 декабря 2016 | исправлена проблема, из-за которой некоторые просмотрщики не открывали созданные JPEG; подготовлена рабочая сборка для Windows |
| v0.2 | 17 января 2017 | исправлена работа с одинаковыми именами входного и выходного файла, устранены проблемы компиляции, исправлен Windows-crash, добавлены 64-битные Windows-бинарники |
| v1.0 | 15 марта 2017 | исправлены два падения, требования к памяти описаны более явно |
| v1.0.1 | 21 марта 2017 | исправлено падение на малых изображениях, выровнена обработка метаданных, добавлена поддержка memory limit, исправлены сообщения об ошибках, устранены проблемы сборки и документации |
История версий показывает характер программы: Guetzli не превращался в большой графический пакет. Это был точечный инструмент вокруг одного алгоритма — перцептуального JPEG-кодирования. Поэтому изменения касались стабильности, сборки, обработки памяти, корректности метаданных и поведения на отдельных типах входных изображений, а не новых визуальных модулей или интерфейсных функций.
Ограничения и проблемы Guetzli
Главный плюс Guetzli — качество на байт. Главный минус — цена этого качества. Программа требовательна к CPU и RAM, не имеет GUI и не подходит для большинства быстрых повседневных задач.
Основные ограничения:
нет графического интерфейса;
нет встроенного предпросмотра результата;
нет ползунков, панелей и визуального сравнения;
нет встроенной пакетной очереди;
выходной формат только JPEG;
progressive JPEG не создается;
PNG-прозрачность не сохраняется;
цветовые профили игнорируются;
расход памяти высокий;
скорость кодирования низкая;
уже испорченные JPEG не становятся чистыми;
для изображений с текстом JPEG может быть плохим выбором;
для серверного сжатия на лету программа обычно слишком медленная.
Отдельно стоит подчеркнуть: Guetzli не является lossless-оптимизатором. Он создает JPEG с потерями. Даже если визуально результат очень похож на исходник, математически он не идентичен оригиналу. Если нужен строго без потерь меньший файл, Guetzli не решает эту задачу.
Сравнение с аналогами
Guetzli корректнее сравнивать не с фоторедакторами, а с JPEG-энкодерами и оптимизаторами изображений. Он не конкурирует с Photoshop как редактор и не заменяет ImageMagick как универсальный набор операций. Его прямое поле — создание компактного JPEG с высоким воспринимаемым качеством.
| Программа | Сильные стороны | Слабые стороны | Когда выбирать |
|---|---|---|---|
| MozJPEG | Хорошее сжатие, progressive JPEG, trellis quantization, удобство для веб-пайплайнов | Не всегда дает такой же перцептуальный результат на отдельных качественных исходниках | Массовая оптимизация JPEG для сайтов |
| jpegoptim | Простая оптимизация готовых JPEG, lossless и lossy-режимы, удобно для папок и серверных задач | Меньше фокус на глубокой психовизуальной оптимизации | Быстро уменьшить уже готовые .jpg |
| libjpeg-turbo | Очень высокая скорость за счет SIMD, хорош для кодирования и декодирования | Не ориентирован на предельное качество на байт | Серверная обработка, ресайз, быстрый экспорт |
| Jpegli | Современный JPEG-энкодер и декодер, совместимость с libjpeg API/ABI, высокая эффективность | Другая технологическая ветка и иной сценарий внедрения | Современный JPEG-пайплайн с упором на скорость и эффективность |
| ImageOptim | Удобная графическая оболочка для оптимизации изображений на macOS, пакетная обработка | Это не отдельный JPEG-энкодер, а оболочка над разными инструментами | Ручная оптимизация без терминала |
MozJPEG — более практичный выбор для регулярной веб-оптимизации. Он поддерживает progressive encoding, умеет работать с trellis quantization и хорошо встраивается в автоматические пайплайны. Для большинства сайтов, где нужно обработать много JPEG и не ждать слишком долго, MozJPEG удобнее.
jpegoptim проще по идее: он оптимизирует JPEG-файлы, может удалять метаданные, выполнять lossless-оптимизацию через таблицы Хаффмана и lossy-оптимизацию с ограничением качества. Это хороший рабочий инструмент для быстрой зачистки папок с картинками, но он не делает такой тяжелый перцептуальный поиск, как Guetzli.
libjpeg-turbo выигрывает в скорости. Он использует SIMD-инструкции и часто работает в несколько раз быстрее классического libjpeg. Это выбор для приложений, где нужно быстро кодировать или декодировать JPEG: серверы, библиотеки обработки изображений, десктопные программы, пакетный экспорт.
Jpegli — более современный подход к JPEG-кодированию. Он сохраняет совместимость с классическим JPEG и ориентирован на более эффективное кодирование и декодирование. Для новых проектов, где нужна современная JPEG-библиотека, Jpegli выглядит практичнее, но Guetzli остается показательной утилитой для задач, где нужно именно медленное перцептуальное уплотнение готовых JPEG.
Guetzli и современные форматы: WebP, AVIF, JPEG XL
Guetzli не конкурирует напрямую с WebP, AVIF и JPEG XL как форматами. Он работает внутри старого JPEG-мира. Это важно для сайтов и систем, где JPEG остается обязательным: старые CMS, строгие требования к форматам, простая совместимость, внешние площадки, консервативные пайплайны, email-рассылки, документы и изображения, которые должны открываться везде.
Если формат можно менять, современные варианты часто рациональнее:
| Формат | Когда лучше |
|---|---|
| WebP | массовая веб-графика, хорошая поддержка браузерами, баланс размера и качества |
| AVIF | сильное сжатие, когда допустим более тяжелый encode/decode и нужна современная веб-оптимизация |
| JPEG XL | качественные сценарии хранения и передачи изображений, где поддержка формата уже допустима |
| PNG | скриншоты, схемы, интерфейсы, логотипы, прозрачность |
| SVG | векторные логотипы, иконки, простая графика |
| JPEG через Guetzli | когда нужен именно обычный .jpg, но хочется выжать из него больше |
Guetzli полезен там, где менять формат нельзя или нежелательно. Если сайт спокойно принимает WebP/AVIF и есть корректные fallback-сценарии, Guetzli перестает быть единственным разумным вариантом. Но когда на выходе нужен именно JPEG, программа остается интересной за счет перцептуального подхода.
Пример рабочего процесса для сайта
Допустим, нужно подготовить фотографии для статьи, карточки товара или посадочной страницы. Правильный процесс выглядит так:
Шаг 1. Подготовить исходник
Сначала изображение приводится к финальному виду: кадрирование, цвет, ретушь, размер. Не стоит запускать Guetzli на исходнике 6000×4000, если на сайте картинка будет показана в ширине 1600 пикселей. Сначала нужно уменьшить изображение до нужного размера, затем сжать.
Шаг 2. Проверить цветовое пространство
Для веба лучше использовать sRGB. Если изображение было в Adobe RGB или Display P3, его нужно заранее конвертировать. Guetzli не является инструментом управления цветом.
Шаг 3. Убрать прозрачность
Если исходник PNG содержит прозрачность, фон нужно подложить заранее. Для большинства сайтов это белый или цвет блока, где будет стоять картинка.
Шаг 4. Запустить Guetzli
Для обычной фотографии:
guetzli --quality 90 input.png output.jpgДля визуально важного изображения:
guetzli --quality 95 input.png output.jpgДля диагностики:
guetzli --verbose --quality 95 input.png output.jpgШаг 5. Сравнить размер
На Linux/macOS:
ls -lh input.png output.jpgНа PowerShell:
Get-Item input.png, output.jpg | Select-Object Name, LengthРазмер — не единственный критерий. Если файл стал меньше на 5%, но обработка заняла много времени, возможно, исходник уже был хорошо оптимизирован. Если файл стал меньше на 25–35% и визуально почти не изменился, Guetzli сработал удачно.
Шаг 6. Проверить визуально
Нужно открыть исходник и результат рядом. Важно смотреть не только на 100% масштаб, но и на реальное отображение на странице. Иногда при 100% можно найти микропотери, которые не имеют значения для веба. Но если изображение товара, портфолио или обложка, контроль должен быть строже.
Шаг 7. Использовать результат
Готовый JPEG можно размещать как обычный файл. Никаких специальных настроек для браузера не требуется.
Ошибки, с которыми можно столкнуться
Memory limit would be exceeded. Failing.
Эта ошибка означает, что изображение требует больше памяти, чем разрешено лимитом. Решения:
уменьшить разрешение исходника;
увеличить
--memlimit;использовать
--nomemlimit;закрыть другие тяжелые программы;
обрабатывать файлы по одному.
Пример:
guetzli --memlimit 8192 input.png output.jpgError reading PNG data from input file
Guetzli не смог прочитать PNG. Причины:
файл поврежден;
расширение
.pngне соответствует содержимому;изображение сохранено нестандартно;
путь указан неверно;
файл занят другой программой.
Что сделать:
открыть PNG в просмотрщике;
пересохранить его в редакторе;
проверить путь;
попробовать другой исходник.
Error reading JPG data from input file
Проблема аналогична, но для JPEG. Возможные причины:
файл поврежден;
это не JPEG, несмотря на расширение
.jpg;файл обрезан при копировании;
внутри нестандартная структура.
Unknown commandline flag
Флаг написан неправильно. Например:
guetzli --quailty 90 input.jpg output.jpgПравильно:
guetzli --quality 90 input.jpg output.jpgЧерный фон вместо прозрачности
Это не ошибка Guetzli, а следствие ограничения JPEG. Прозрачность нужно заранее заменить нужным фоном.
Результат почти не меньше исходника
Так бывает, если:
исходный JPEG уже хорошо оптимизирован;
выбрано слишком высокое качество;
изображение содержит сложную детализацию;
файл маленький, и служебные данные занимают заметную долю;
исходник уже был сжат похожим способом.
Можно попробовать:
guetzli --quality 90 input.jpg output.jpgЕсли до этого было:
guetzli --quality 95 input.jpg output.jpgОбработка идет слишком долго
Это нормальная особенность Guetzli. Для крупных изображений нужно либо ждать, либо уменьшить разрешение, либо выбрать более быстрый JPEG-энкодер. Если задача массовая и срочная, Guetzli не лучший инструмент.
Метаданные и EXIF
Guetzli ориентирован на кодирование изображения, а не на полноценное управление метаданными. В истории программы отдельно исправлялась согласованность обработки metadata handling, но использовать Guetzli как EXIF-редактор не нужно.
Для веба часто полезно удалить лишние метаданные до или после сжатия: GPS, данные камеры, миниатюры, комментарии, служебные профили. Это делается отдельными инструментами. Guetzli в этом сценарии отвечает за JPEG-кодирование, а не за политику приватности и метаданных.
Практический подход:
Подготовить изображение.
Убрать ненужные EXIF-данные отдельным инструментом.
Запустить Guetzli.
Проверить, какие метаданные остались.
При необходимости зачистить результат.
Использование в рабочих пайплайнах
Guetzli можно встроить в разные процессы, но нужно учитывать его скорость.
Локальный ручной процесс
Подходит для фотографа, веб-мастера или редактора сайта:
guetzli --quality 95 source/photo.png public/photo.jpgПлюсы:
полный контроль;
можно проверять каждую важную картинку;
не нужно строить сложную автоматизацию.
Минусы:
медленно;
неудобно для больших объемов;
легко забыть обработать часть файлов.
Скрипт перед публикацией
Подходит для статического сайта или проекта с папкой изображений:
for file in source/*.png; do guetzli --quality 90 "$file" "public/${file##*/}.jpg"doneЗдесь уже нужно следить за именами файлов, путями и форматом результата. Для аккуратного production-процесса лучше явно формировать расширение .jpg.
CI/CD
Технически Guetzli можно запускать в сборке проекта, но это часто нерационально: сборка будет долгой, а расход памяти высоким. Такой вариант допустим только для небольшого набора статичных изображений. Для постоянной обработки большого количества ассетов лучше использовать более быстрые инструменты.
Серверная загрузка изображений пользователями
Для такого сценария Guetzli обычно не подходит. Если пользователь загружает фото в личный кабинет, маркетплейс, блог или CRM, сервер должен быстро создать превью, средний размер и финальный JPEG. Guetzli слишком тяжелый для синхронной обработки. Его можно использовать разве что в отложенной очереди для избранных изображений, где время не критично.
Как выбрать качество под разные задачи
| Задача | Рекомендуемый старт |
|---|---|
| Фото в статье | --quality 90 |
| Главное изображение страницы | --quality 92–95 |
| Фото товара | --quality 95 |
| Фоновая иллюстрация | --quality 88–92 |
| Большая галерея | --quality 88–90 |
| Портфолио фотографа | --quality 95–96 |
| Малозначимые миниатюры | лучше использовать другой быстрый инструмент |
| Скриншоты интерфейса | чаще лучше PNG/WebP, а не JPEG |
Для товарной фотографии качество лучше не занижать. На карточках товаров важны текстуры, края, мелкие надписи, цвет и общее ощущение чистоты изображения. Экономия 30–50 КБ не стоит испорченной фактуры упаковки или грязных краев.
Для статей и блогов можно быть агрессивнее. Там изображение часто выполняет иллюстративную функцию, а скорость загрузки страницы важнее идеального сохранения каждой детали.
Что Guetzli не делает
Guetzli часто неправильно воспринимают как программу для оптимизации картинок вообще. Это слишком широкое описание. Реально программа не делает многие операции, которые есть в графических редакторах и универсальных конвертерах.
Guetzli не умеет:
менять размер изображения;
кадрировать;
поворачивать фото;
удалять фон;
улучшать резкость;
убирать шум;
редактировать EXIF через интерфейс;
конвертировать в WebP, AVIF, PNG или TIFF;
создавать progressive JPEG;
показывать предпросмотр;
сравнивать до/после в окне;
работать как плагин Photoshop;
автоматически выбирать лучший формат;
сохранять прозрачность.
Это не недостаток в рамках его назначения. Guetzli просто решает одну задачу: создать компактный JPEG с высоким воспринимаемым качеством.
Плюсы и минусы
| Плюсы | Минусы |
|---|---|
| Создает обычный совместимый JPEG | Нет графического интерфейса |
| Хорошая плотность сжатия при высоком качестве | Очень медленное кодирование |
| Подходит для финальной оптимизации сайта | Высокий расход памяти |
| Использует перцептуальный подход | Не поддерживает progressive JPEG |
| Хорош для качественных фотографических исходников | Не сохраняет прозрачность PNG |
| Удобен для скриптов | Не подходит для быстрой серверной обработки |
| Может уменьшать размер лучше обычного JPEG-экспорта | Не восстанавливает испорченные JPEG |
| Простая командная модель | Не универсальный конвертер изображений |
Кому подойдет Guetzli
Guetzli подойдет тем, кто понимает цену медленного кодирования и хочет получить выигрыш именно в JPEG. Это хороший инструмент для веб-мастеров, разработчиков, SEO-специалистов, владельцев сайтов с большим количеством фотографий, технических редакторов, людей, которые готовят статичные изображения для страниц и не хотят переходить на другой формат.
Подходящие сценарии:
финальная подготовка важных изображений сайта;
оптимизация промо-фотографий;
подготовка статей с большим количеством фото;
сжатие обложек;
обработка иллюстраций для документации;
подготовка JPEG-изображений, которые должны открываться везде;
эксперименты с JPEG quality и Butteraugli-подходом.
Guetzli особенно уместен, когда изображение будет долго использоваться. Если файл сжимается один раз, а потом месяцами или годами лежит на сайте, медленное кодирование оправдать проще.
Кому Guetzli не подойдет
Guetzli не подойдет пользователям, которым нужен визуальный интерфейс с кнопками. Если человек ожидает окно, drag-and-drop, предпросмотр и ползунок качества, консольная модель будет неудобной.
Также программа не подходит для:
ежедневной обработки тысяч фотографий;
автоматического серверного ресайза;
мгновенной загрузки пользовательских изображений;
скриншотов с мелким текстом;
логотипов с прозрачностью;
графики, где лучше SVG или PNG;
случаев, где нужен progressive JPEG;
задач, где можно свободно использовать WebP/AVIF и это дает лучший результат;
пользователей, которые не хотят разбираться с командной строкой.
Если нужна простая ручная оптимизация на macOS, удобнее ImageOptim. Если нужен быстрый серверный JPEG, практичнее libjpeg-turbo. Если нужен массовый веб-пайплайн, часто лучше MozJPEG. Если нужен современный JPEG-стек, стоит смотреть в сторону Jpegli. Guetzli стоит выбирать осознанно: ради качества на байт, а не ради удобства.
Практические рекомендации
Для первой проверки достаточно взять 3–5 разных изображений:
фотографию с небом;
фото с человеком;
предметную съемку;
изображение с мелкими деталями;
картинку с плавными градиентами.
Затем прогнать каждую через несколько значений:
guetzli --quality 88 input.png output-q88.jpgguetzli --quality 90 input.png output-q90.jpgguetzli --quality 92 input.png output-q92.jpgguetzli --quality 95 input.png output-q95.jpgПосле этого сравнить размер:
ls -lh output-q88.jpg output-q90.jpg output-q92.jpg output-q95.jpgИ визуально проверить результат. Обычно быстро становится понятно, какой диапазон подходит для конкретного сайта. Не нужно слепо ставить --quality 95 для всего: часть изображений можно спокойно сжать сильнее, а часть требует аккуратного качества.
Рациональная схема:
| Тип файла | Действие |
|---|---|
| Главные изображения | Guetzli --quality 95 |
| Обычные фото в статье | Guetzli --quality 90–92 |
| Миниатюры | быстрый энкодер вместо Guetzli |
| Скриншоты | PNG/WebP вместо JPEG |
| Логотипы | SVG/PNG вместо JPEG |
| Фото товара | Guetzli --quality 95, обязательная ручная проверка |
Итоговая оценка
Guetzli — сильный, но узкий инструмент. Его нельзя оценивать как обычную программу для сжатия изображений с удобным интерфейсом. Это консольный перцептуальный JPEG-энкодер, который делает одну задачу: создает стандартные JPEG-файлы с высокой визуальной плотностью. Он полезен, когда нужно остаться в формате .jpg, сохранить качество и уменьшить вес статичных изображений.
Главный смысл Guetzli — не скорость, а аккуратность. Программа требует времени, памяти и проверки результата. За это она дает возможность выжать больше из старого JPEG-формата без перехода на WebP, AVIF или JPEG XL. Для массовых серверных задач она слишком медленная. Для ручной финальной оптимизации важных фотографий — вполне оправданная.
FAQ
Guetzli сжимает без потерь?
Нет. Guetzli создает JPEG с потерями. Он старается сделать потери менее заметными для человеческого зрения, но результат не идентичен исходнику.
Можно ли открыть JPEG после Guetzli в любом браузере?
Да. Guetzli создает стандартный JPEG, совместимый с обычными браузерами, просмотрщиками и редакторами.
Почему программа такая медленная?
Guetzli выполняет тяжелый перцептуальный поиск параметров кодирования. Он оптимизирует таблицы квантования и DCT-коэффициенты с обратной связью через Butteraugli, поэтому работает значительно медленнее обычных JPEG-энкодеров.
Можно ли использовать Guetzli для PNG с прозрачностью?
Можно, но прозрачность не сохранится. Прозрачные области будут наложены на черный фон. Если нужен другой фон, его нужно добавить заранее.
Есть ли у Guetzli графический интерфейс?
В самой программе графического интерфейса нет. Управление выполняется через командную строку.
Какой --quality выбрать?
Для большинства веб-фотографий разумно начинать с --quality 90 или --quality 92. Для важных изображений, предметной съемки и обложек лучше использовать --quality 95.
Почему итоговый файл иногда получается больше ожидаемого?
Причины могут быть разные: исходник уже хорошо сжат, качество выбрано слишком высоким, изображение содержит сложные детали, либо файл сам по себе небольшой. Guetzli не гарантирует одинаковый процент экономии на всех изображениях.
Подходит ли Guetzli для скриншотов?
Обычно нет. Скриншоты с текстом, интерфейсами и резкими линиями часто лучше сохранять в PNG или WebP. Guetzli создает JPEG, а JPEG неидеален для такой графики.
Можно ли запускать Guetzli на сервере?
Можно, но для обработки на лету это плохой выбор. Guetzli потребляет много CPU и RAM. Он лучше подходит для предварительной обработки статичных файлов.
Чем Guetzli отличается от MozJPEG?
MozJPEG практичнее для массовой веб-оптимизации и поддерживает progressive JPEG. Guetzli медленнее, но делает более тяжелую перцептуальную оптимизацию под высокий визуальный уровень.
Нужно ли использовать Guetzli, если сайт уже отдает WebP или AVIF?
Не всегда. Если WebP или AVIF уже настроены и дают хороший результат, Guetzli может быть нужен только как JPEG-fallback или для площадок, где требуется именно .jpg.
Можно ли сжимать одно и то же изображение несколько раз?
Лучше не делать так. Повторное JPEG-кодирование накапливает потери. Нужно хранить качественный исходник и запускать Guetzli от него, а не от уже сжатой копии.
