Guetzli — это JPEG-компрессор Google для сжатия изображений с высоким визуальным качеством. Программа работает не как обычный уменьшатель картинок, а как отдельный JPEG-энкодер: она получает на вход PNG или JPEG, заново кодирует изображение и сохраняет результат в формате .jpg. На выходе получается обычный JPEG-файл, который открывается в браузерах, просмотрщиках изображений, CMS, графических редакторах и других программах без специальных декодеров.

Главная идея Guetzli — уменьшить размер файла не за счет грубого ухудшения картинки, а за счет психовизуальной оптимизации. Утилита старается убрать те данные, потеря которых меньше заметна человеческому зрению, и сохранить участки, где артефакты JPEG будут бросаться в глаза. Поэтому Guetzli особенно интересен там, где нужен компактный JPEG без явной мыльности, цветных ореолов, резких блоков и грязи вокруг контрастных деталей.

Скачать Guetzli

Оценка 9.7 Рекомендуем
  • Ретушь фото
  • Русский интерфейс
  • Просто для новичков
Скачать бесплатно на Windows
Лучшая альтернатива
Guetzli
Оценка 8.5
  • Только командная строка
  • Не для ретуши фото
  • Медленное сжатие
Скачать Guetzli
Загрузка начнётся после нажатия

Guetzli не является новым форматом изображения. Это важно: программа не создает WebP, AVIF, JPEG XL или другой современный контейнер. Она создает именно JPEG. Отличие находится не в расширении файла, а в способе кодирования. Guetzli пытается построить более выгодные таблицы квантования и подобрать такие DCT-коэффициенты, чтобы итоговый файл был меньше при близком визуальном качестве. В сравнении с libjpeg изображения Guetzli обычно получаются на 20–30% меньше при сопоставимом качестве, а сам энкодер формирует только последовательные, то есть non-progressive JPEG-файлы.

Guetzli выглядит необычно для пользователя, привыкшего к графическим конвертерам. У программы нет главного окна, кнопок Открыть, Сжать, Сохранить как, панели предпросмотра, ползунка качества и списка файлов. Ее интерфейс — командная строка. Управление выполняется через команду guetzli, входной файл, выходной файл и несколько параметров. Это делает программу не самой дружелюбной для новичка, но удобной для воспроизводимой обработки: одна и та же команда дает понятный результат, ее можно вставить в shell-скрипт, использовать в автоматизации и повторять на разных наборах изображений.

Для каких задач подходит Guetzli

Guetzli нужен не для любого сжатия изображений. Его задача уже: высококачественная оптимизация JPEG-файлов, когда итоговый размер важен, но время обработки не критично. Это компрессор для офлайн-подготовки графики, а не для мгновенной обработки картинок в реальном времени.

Программа хорошо подходит для таких задач:

  • подготовка фотографий для сайта, блога, лендинга или документации;

  • уменьшение веса крупных JPEG-изображений перед публикацией;

  • конвертация PNG-фотографий в JPEG с меньшим размером;

  • оптимизация изображений, которые редко меняются;

  • подготовка статичных иллюстраций для веб-архива;

  • сжатие картинок, где важно сохранить хорошее визуальное качество;

  • автоматизация через командную строку, когда нужен одинаковый результат на серии файлов.

Guetzli особенно уместен для изображений, которые будут долго использоваться на сайте: обложки статей, фотографии товаров, иллюстрации в справке, превью, баннеры без прозрачности, крупные изображения в портфолио. В таких сценариях медленное кодирование окупается: файл сжимается один раз, а затем много раз загружается пользователями.

Для динамической обработки Guetzli подходит плохо. Если пользователь загружает картинку в CMS, а сервер должен сразу создать несколько размеров, Guetzli может стать узким местом. Утилита потребляет много CPU-времени и памяти: для нее нормальна ситуация, когда обработка одной большой фотографии занимает заметное время. Для серверных очередей, массовой пакетной конвертации тысяч изображений и realtime-сжатия чаще выбирают MozJPEG, libjpeg-turbo, jpegoptim или современные библиотеки с более высокой скоростью.

Что конкретно делает программа

Guetzli выполняет одну главную задачу: создает оптимизированный JPEG-файл из PNG или JPEG. Внутри этой задачи есть несколько конкретных сценариев.

Первый сценарий — перекодирование JPEG в новый JPEG. На вход подается файл .jpg, программа анализирует изображение, заново кодирует его с учетом психовизуальной модели и записывает результат в другой .jpg. Это не простая чистка метаданных и не lossless-оптимизация. Guetzli выполняет именно повторное JPEG-кодирование с потерями, поэтому исходник лучше сохранять отдельно.

Второй сценарий — создание JPEG из PNG. На вход можно подать .png, а на выходе получить .jpg. Это удобно, если PNG содержит фотографический контент и занимает слишком много места. Но такой сценарий не подходит для изображений с прозрачностью, пиксель-арта, интерфейсных иконок, схем с тонкими линиями и логотипов, которым нужен абсолютно четкий край.

Третий сценарий — управление визуальным качеством через параметр --quality. Он задает целевой уровень качества в единицах, сопоставимых с quality-параметром libjpeg. Программа чаще используется на высоких значениях качества, потому что ее смысл — не максимально испортить изображение ради размера, а найти более выгодный JPEG при хорошем внешнем виде.

Четвертый сценарий — диагностика через --verbose. Этот режим выводит подробный trace попыток кодирования. Для обычного разового сжатия он не обязателен, но полезен, когда нужно понять, что программа работает, а не зависла, или когда изображение обрабатывается долго.

Пятый сценарий — контроль памяти через --memlimit и --nomemlimit. Guetzli может потреблять много RAM, поэтому параметр --memlimit M задает лимит памяти в мегабайтах, а --nomemlimit снимает ограничение. Если программа не укладывается в лимит, она завершает работу с ошибкой, а не продолжает бесконтрольно занимать память.

Интерфейс Guetzli: командная строка вместо окна программы

Guetzli — консольная утилита. Ее интерфейс состоит из имени команды, параметров и двух путей: к исходному изображению и к итоговому JPEG-файлу.

Базовый синтаксис выглядит так:

guetzli [flags] input_filename output_filename

Для PNG:

guetzli original.png output.jpg

Для JPEG:

guetzli original.jpg output.jpg

Здесь нет кнопки Start или Convert. Ее роль выполняет запуск команды. Нет кнопки Browse; путь к файлу прописывается вручную или подставляется оболочкой. Нет отдельного поля Output folder; путь к выходному файлу указывается вторым файловым аргументом.

Основные элементы управления Guetzli:

Элемент CLI-интерфейса Что делает Пример
input_filename Указывает исходный PNG или JPEG photo.png
output_filename Указывает имя итогового JPEG photo-guetzli.jpg
--quality Q Задает визуальное качество --quality 90
--verbose Показывает подробный ход кодирования --verbose
--memlimit M Ограничивает память в МБ --memlimit 4096
--nomemlimit Снимает ограничение памяти --nomemlimit 

Команда всегда должна содержать входной и выходной файл. Если указать только исходник, Guetzli не будет угадывать имя результата. Если перепутать порядок, программа попытается читать то, что должно было быть выходом. Если указать одинаковое имя входного и выходного файла, есть риск потерять исходник или получить некорректный рабочий сценарий, поэтому оригинал лучше не перезаписывать.

Пример автоматизации Guetzli в Automator через shell-команду

Этот скриншот хорошо показывает практическую особенность Guetzli: даже когда программа используется через визуальную оболочку вроде Automator, внутри все равно запускается shell-команда с путем к бинарнику, параметром --quality и именами файлов. Для самой Guetzli это обычный запуск из командной строки.

Как Guetzli сжимает JPEG

Guetzli работает глубже, чем простые оптимизаторы, которые удаляют EXIF, пересобирают Huffman-таблицы или переводят изображение в progressive JPEG. Программа заново ищет способ закодировать изображение так, чтобы уменьшить размер файла и одновременно сохранить визуальную похожесть на исходник.

JPEG-сжатие связано с несколькими этапами: преобразованием цвета, дискретным косинусным преобразованием, квантованием и энтропийным кодированием. Главная зона вмешательства Guetzli — квантование и подбор коэффициентов. Программа оптимизирует глобальные таблицы квантования JPEG и значения DCT-коэффициентов в блоках, используя замкнутый цикл оценки результата. В роли оценки выступает Butteraugli — психовизуальная метрика, которая моделирует заметность различий для человеческого зрения.

Именно из-за такого подхода Guetzli медленный. Он не просто берет число качества и один раз кодирует файл. Он перебирает варианты, проверяет, насколько результат визуально близок к исходнику, и ищет более удачное соотношение размера и perceptual distance. Для пользователя это выражается просто: команда может выполняться долго, особенно на больших изображениях.

У Guetzli есть характерная особенность: он нацелен на высокое качество. На низких значениях JPEG quality выигрыш становится менее очевидным, а артефакты могут становиться заметными. Программа раскрывается там, где нужен компактный, но визуально аккуратный JPEG: фотографии, сложные текстуры, изображения с мягкими градиентами, фрагменты с деталями и контрастными границами.

Поддерживаемые форматы

Guetzli работает с двумя входными форматами:

  • PNG;

  • JPEG.

Выходной формат один:

  • JPEG.

Это значит, что Guetzli не сохраняет PNG, не делает WebP, не делает AVIF, не создает TIFF и не является универсальным конвертером изображений. Его задача — получить оптимизированный JPEG.

Особенно важно учитывать прозрачность. JPEG не поддерживает альфа-канал. Если подать на вход PNG с прозрачностью, прозрачные области не останутся прозрачными. При кодировании они будут наложены на черный фон. Для логотипов, иконок, UI-элементов, схем и иллюстраций с прозрачным фоном это часто неприемлемо.

Также Guetzli предполагает входное изображение в sRGB с гаммой 2.2 и игнорирует метаданные цветового профиля. Для обычных веб-фотографий это часто не создает проблемы, но для изображений с нестандартными ICC-профилями, подготовленных в профессиональном цветовом workflow, результат нужно проверять особенно внимательно.

Исходный файл Можно использовать в Guetzli Что получится
photo.jpg Да Новый оптимизированный JPEG
photo.jpeg Да Новый оптимизированный JPEG
image.png без прозрачности Да JPEG
image.png с альфа-каналом Да, но с потерей прозрачности JPEG с черным фоном в прозрачных областях
logo.svg Нет Нужно сначала конвертировать другим инструментом
image.webp Нет Нужно сначала конвертировать другим инструментом
image.avif Нет Нужно сначала конвертировать другим инструментом

Первый запуск Guetzli

Для первого теста лучше взять не огромную фотографию, а изображение среднего размера. Guetzli потребляет много ресурсов, поэтому проверять программу на многомегапиксельном снимке сразу нерационально. Хороший тестовый файл — фотография шириной 1200–2000 пикселей без прозрачности.

Базовая команда:

guetzli original.jpg output.jpg

В этой команде:

  • guetzli — запуск программы;

  • original.jpg — исходное изображение;

  • output.jpg — новый JPEG после обработки.

После выполнения нужно сравнить два параметра: размер файла и визуальный результат. Одного размера недостаточно. JPEG-компрессия всегда требует проверки глазами, потому что два файла одинакового размера могут выглядеть по-разному: один сохранит фактуру и границы, другой даст ореолы, зернистые пятна или грязь на плавных переходах.

Для PNG команда почти такая же:

guetzli original.png output.jpg

Здесь Guetzli не оптимизирует PNG, а создает JPEG из PNG. Это хороший вариант для фотографий, ошибочно хранящихся в PNG, но плохой вариант для прозрачных иконок, скриншотов интерфейса с четким текстом, схем и плоской графики.

Работа с параметром --quality

Параметр --quality задает целевое визуальное качество. Его используют так:

guetzli --quality 95 input.jpg output.jpg

Или так:

guetzli --quality 90 input.png output.jpg

Смысл параметра не в том, чтобы подобрать магическое число, одинаковое для всех изображений. Фотографии, иллюстрации, темные кадры, яркие градиенты и контрастные детали реагируют на JPEG-сжатие по-разному. Поэтому значение качества нужно подбирать на группе типичных изображений проекта, а не на одном удачном примере.

Практические ориентиры:

Значение --quality Когда использовать Комментарий
95 Максимально аккуратная оптимизация Хороший старт для важных фотографий
92 Баланс качества и размера Часто подходит для веб-публикаций
90 Более заметное уменьшение размера Нужно внимательно смотреть мелкие детали
85 Агрессивнее, но еще применимо Подходит не для всех изображений
84 Нижняя практическая граница для Guetzli Ниже смысл Guetzli обычно теряется

Пример для качественной фотографии:

guetzli --quality 95 hero-original.jpg hero-guetzli.jpg

Пример для изображения в статье:

guetzli --quality 90 article-photo.jpg article-photo-optimized.jpg

Пример для PNG-фотографии:

guetzli --quality 92 source.png source-guetzli.jpg

Самая частая ошибка — выбирать качество только по итоговому размеру. Если файл стал в два раза меньше, это еще не значит, что результат приемлем. Нужно открыть исходник и результат рядом, увеличить до 100%, проверить лица, текстуры, волосы, линии, небо, тени, тонкие контрастные границы и области плавного цвета.

Режим --verbose

По умолчанию Guetzli может долго работать без подробного вывода. Для тяжелого изображения это выглядит как зависание: пользователь запустил команду, курсор стоит, процесс идет, но на экране почти ничего не происходит.

Для контроля используют --verbose:

guetzli --verbose input.jpg output.jpg

Или вместе с качеством:

guetzli --quality 90 --verbose input.jpg output.jpg

Режим --verbose выводит подробный trace попыток кодирования. Он полезен в нескольких ситуациях:

  • нужно убедиться, что программа действительно работает;

  • нужно диагностировать слишком долгую обработку;

  • нужно понять, на каком файле застряла пакетная обработка;

  • нужно вести лог при автоматизации;

  • нужно сравнить поведение на разных значениях качества.

Для одноразовой ручной обработки --verbose не обязателен. Для скриптов и длинных очередей он полезен, потому что позволяет видеть прогресс и потом разбирать лог.

Ограничение памяти через --memlimit

Guetzli требователен к памяти. Для больших изображений это критично: программа может использовать сотни мегабайт или гигабайты RAM. Поэтому у нее есть параметр:

guetzli --memlimit 4096 input.jpg output.jpg

Здесь 4096 — лимит памяти в мегабайтах. Если Guetzli не может обработать файл в заданных рамках, он завершит работу с ошибкой. Это лучше, чем ситуация, когда система начинает активно использовать swap, компьютер перестает отвечать, а обработка все равно не заканчивается в разумное время.

По умолчанию лимит памяти — 6000 МБ. Параметр --nomemlimit отключает ограничение памяти:

guetzli --nomemlimit input.jpg output.jpg

Использовать --nomemlimit стоит только осознанно. На машине с большим объемом RAM это может помочь обработать крупный файл. На рабочем ноутбуке с параллельно открытым браузером, редактором, IDE и графическими программами такой запуск может привести к резкому замедлению системы.

Практическая схема:

guetzli --quality 92 --memlimit 4096 input.jpg output.jpg

Так команда одновременно задает качество и ограничивает память. Для пакетной обработки это безопаснее, чем запускать Guetzli без лимита на множестве крупных изображений.

Расход CPU и памяти

Guetzli — тяжелая программа. Для нее нормальны две особенности: большой расход памяти и длительное время кодирования. Ориентир по ресурсам — около 300 МБ памяти на 1 мегапиксель входного изображения и около 1 минуты CPU-времени на 1 мегапиксель. Это не означает, что каждая фотография будет обрабатываться строго по этой формуле, но порядок нагрузки именно такой.

Пример: фотография 4000×3000 пикселей содержит 12 мегапикселей. Для такого файла Guetzli может потребовать много гигабайт памяти и заметное время. Если таких файлов десятки, запуск в лоб будет долгим. Перед обработкой имеет смысл уменьшить изображения до целевого веб-размера другим инструментом, а уже затем сжимать Guetzli.

Правильная последовательность для веб-публикации:

  1. Сначала определить реальный размер показа на сайте.

  2. Уменьшить фотографию до нужных пиксельных размеров.

  3. Сохранить промежуточный качественный исходник.

  4. Прогнать Guetzli.

  5. Проверить итоговый размер и качество.

  6. Не удалять оригинал до финальной проверки.

Guetzli не заменяет ресайзер. Он не предназначен для кадрирования, изменения размера, поворота, пакетного переименования или цветокоррекции. Это JPEG-энкодер. Если изображение слишком большое по пикселям, сначала нужно решить проблему размеров, а потом уже задачу JPEG-компрессии.

Практический сценарий: сжатие JPEG для сайта

Типичная задача: есть фотография для статьи camera-original.jpg, нужно получить более легкий JPEG для публикации.

Команда:

guetzli --quality 92 --verbose camera-original.jpg camera-web.jpg

После завершения нужно проверить:

ls -lh camera-original.jpg camera-web.jpg

Что важно смотреть:

  • размер исходного файла;

  • размер результата;

  • нет ли заметных JPEG-артефактов;

  • не изменился ли общий цвет;

  • не появились ли ореолы вокруг контрастных границ;

  • не испортились ли мелкие детали;

  • не стала ли кожа пятнистой;

  • не появились ли полосы на небе или градиентах.

Для веба часто лучше получить не минимальный размер, а стабильное качество. Если на --quality 90 изображение выглядит хорошо, можно оставить 90. Если на тонких деталях появились дефекты, лучше поднять значение до 92–95. Guetzli хорошо работает именно тогда, когда пользователь не пытается выжать любой ценой еще несколько килобайт.

Практический сценарий: PNG в JPEG

PNG-файл с фотографией может быть очень тяжелым. Например, скриншот фото или экспорт из редактора в PNG может занимать несколько мегабайт. Если прозрачность не нужна, а изображение фотографическое, Guetzli можно использовать для получения JPEG:

guetzli --quality 92 photo-source.png photo-source.jpg

Этот сценарий подходит для:

  • фотографий, случайно сохраненных в PNG;

  • полноцветных иллюстраций без прозрачности;

  • изображений с большим количеством плавных переходов;

  • контента для веб-страниц, где JPEG уместнее PNG.

Этот сценарий не подходит для:

  • логотипов с прозрачным фоном;

  • иконок;

  • схем;

  • скриншотов с мелким текстом;

  • интерфейсов;

  • изображений с резкими плоскими цветами;

  • PNG, где важна пиксельная точность.

Главное ограничение — альфа-канал. Если PNG содержит прозрачность, Guetzli не сохранит ее, потому что JPEG не поддерживает прозрачность. Прозрачные области будут сведены к черному фону.

Практический сценарий: пакетная обработка папки

У Guetzli нет встроенной кнопки Batch, но пакетную обработку легко сделать через оболочку. Например, для всех JPEG в текущей папке:

mkdir -p outfor f in *.jpg; do  guetzli --quality 92 --verbose "$f" "out/${f%.*}-guetzli.jpg"done

Эта команда:

  • создает папку out;

  • перебирает все .jpg в текущей директории;

  • для каждого файла запускает Guetzli;

  • сохраняет результат с суффиксом -guetzli;

  • не затирает оригиналы.

Для PNG:

mkdir -p outfor f in *.png; do  guetzli --quality 92 --verbose "$f" "out/${f%.*}.jpg"done

Для смешанной папки лучше не писать слишком сложный однострочник. Надежнее сначала разложить исходники по типам или использовать отдельный скрипт с проверками. Guetzli медленный, поэтому ошибка в пакетной команде может стоить часов: например, если результат снова попадает в ту же папку и повторно обрабатывается циклом.

Безопасный подход:

mkdir -p guetzli-outputfor f in *.jpg; do  [ -f "$f" ] || continue  guetzli --quality 92 --memlimit 4096 "$f" "guetzli-output/${f%.*}.jpg"done

Здесь [ -f "$f" ] || continue защищает цикл от ситуации, когда в папке нет подходящих файлов, а --memlimit 4096 ограничивает расход памяти.

Как оценивать результат Guetzli

Guetzli нельзя оценивать только по проценту сжатия. Правильная оценка состоит из трех частей: размер, визуальное качество и пригодность для конкретного места публикации.

Проверка размера:

ls -lh original.jpg output.jpg

Проверка визуального качества:

  • открыть исходник и результат рядом;

  • сравнить на масштабе 100%;

  • проверить самые проблемные зоны;

  • уменьшить до реального размера отображения на сайте;

  • проверить еще раз уже как пользователь увидит картинку.

Проблемные зоны для JPEG:

Зона изображения Что проверять
Небо и градиенты Полосы, пятна, ступенчатые переходы
Волосы, трава, ткань Потеря мелкой фактуры
Текст на изображении Размытие, ореолы, цветная грязь
Контрастные линии Ringing-артефакты вокруг края
Темные области Блоки, пятна, шум
Лица Пятнистость кожи, потеря микроконтраста

На таких увеличенных фрагментах хорошо видно, зачем Guetzli вообще нужен. Обычный JPEG-энкодер может дать заметные ringing-артефакты вокруг резких деталей, а Guetzli старается распределить потери так, чтобы визуально неприятные дефекты были слабее. Это не магическое восстановление качества: если исходник плохой, пережатый или слишком маленький, Guetzli не сделает его новым. Но при хорошем исходнике компрессор умеет дать более аккуратный результат, чем прямолинейное JPEG-кодирование.

Лучшие исходники для Guetzli

Guetzli лучше всего работает с качественными исходными изображениями. Чем меньше поврежден исходник предыдущими JPEG-сжатиями, тем больше смысла в повторном кодировании.

Хорошие исходники:

  • PNG без потерь;

  • TIFF, заранее конвертированный в PNG;

  • качественный JPEG с минимальными артефактами;

  • экспорт из RAW-конвертера в высоком качестве;

  • финальная веб-версия после ресайза, но до сильного JPEG-сжатия.

Плохие исходники:

  • JPEG из мессенджера;

  • изображение, уже несколько раз пересохраненное в JPEG;

  • скриншот с мелким текстом;

  • логотип с прозрачностью;

  • картинка с сильными блоками;

  • маленькая картинка, растянутая до большого размера.

Guetzli не удаляет прошлые артефакты. Если вокруг деталей уже есть JPEG-грязь, повторное кодирование может закрепить ее или сделать более заметной. Поэтому лучше начинать с максимально чистого файла.

Чего Guetzli не умеет

Guetzli важно не переоценивать. Это узкий инструмент, а не универсальная программа для обработки изображений.

Guetzli не умеет:

  • редактировать изображения;

  • обрезать фото;

  • менять размер;

  • поворачивать картинку;

  • добавлять водяные знаки;

  • удалять фон;

  • сохранять прозрачность;

  • создавать WebP или AVIF;

  • делать progressive JPEG;

  • показывать визуальный предпросмотр;

  • сравнивать до/после внутри интерфейса;

  • автоматически выбирать лучший формат;

  • обрабатывать папку собственной встроенной командой;

  • восстанавливать качество испорченного JPEG.

Эти ограничения не являются дефектами в рамках замысла программы. Guetzli создан как JPEG-энкодер с психовизуальной оптимизацией. Если нужна полноценная программа с окном, перетаскиванием файлов, предпросмотром и очередью задач, Guetzli придется использовать через оболочку, скрипты или сторонние инструменты.

Типичные команды Guetzli

Ниже — набор команд, которые покрывают основные реальные сценарии.

Сжатие JPEG с качеством по умолчанию:

guetzli input.jpg output.jpg

Сжатие JPEG с качеством 95:

guetzli --quality 95 input.jpg output.jpg

Сжатие JPEG с качеством 90 и подробным выводом:

guetzli --quality 90 --verbose input.jpg output.jpg

Конвертация PNG в JPEG:

guetzli --quality 92 input.png output.jpg

Ограничение памяти 4 ГБ:

guetzli --quality 92 --memlimit 4096 input.jpg output.jpg

Запуск без лимита памяти:

guetzli --nomemlimit input.jpg output.jpg

Пакетная обработка JPEG в отдельную папку:

mkdir -p outfor f in *.jpg; do  guetzli --quality 92 "$f" "out/${f%.*}.jpg"done

Пакетная обработка PNG с выводом в JPEG:

mkdir -p outfor f in *.png; do  guetzli --quality 92 "$f" "out/${f%.*}.jpg"done

Ошибки при работе с Guetzli

Неправильный путь к файлу

Если файл лежит не в текущей папке, команда вида:

guetzli photo.jpg output.jpg

не сработает. Нужно либо перейти в папку с изображением, либо указать полный путь:

guetzli "/Users/name/Pictures/photo.jpg" "/Users/name/Pictures/output.jpg"

Пути с пробелами нужно заключать в кавычки:

guetzli "my photo.jpg" "my photo optimized.jpg"

Перезапись оригинала

Нельзя использовать один и тот же файл как вход и выход. Даже если оболочка позволит такую команду, это плохая практика. Исходник нужно сохранять отдельно:

guetzli input.jpg input-guetzli.jpg

Ожидание мгновенной обработки

Guetzli может долго сжимать одну фотографию. Это нормальное поведение. Если нужна быстрая массовая оптимизация, лучше использовать другой инструмент или запускать Guetzli только на финальных важных изображениях.

Попытка сохранить прозрачность

Команда:

guetzli logo-transparent.png logo.jpg

создаст JPEG без прозрачности. Прозрачный фон станет черным. Для логотипов и интерфейсной графики это часто ломает результат.

Слишком низкое качество

Guetzli не раскрывается как максимально агрессивный JPEG-убийца. Если поставить слишком низкое качество, можно получить небольшой файл, но потерять главный смысл программы — аккуратное визуальное сжатие.

Обработка уже испорченного JPEG

Если исходник уже пережат, Guetzli не восстановит детали. Он может сделать файл меньше, но старые артефакты останутся.

Где Guetzli показывает сильный результат

Guetzli особенно хорош на фотографиях и сложных изображениях, где обычный JPEG-энкодер дает заметные дефекты при попытке уменьшить размер. Программа хорошо работает с изображениями, где много натуральных текстур, плавных переходов, мелких деталей и зон, чувствительных к ringing-артефактам.

Сильные стороны Guetzli:

  • хороший баланс размера и визуального качества;

  • обычный JPEG на выходе;

  • совместимость с браузерами и просмотрщиками;

  • эффективная работа с фотографическим контентом;

  • понятный CLI-интерфейс;

  • удобство для скриптов;

  • возможность задавать качество;

  • подробный режим диагностики;

  • контроль памяти через --memlimit.

Guetzli полезен в ситуациях, когда важны именно последние проценты оптимизации. Например, есть главная фотография на лендинге, которая загружается у каждого посетителя. Если ее можно уменьшить без видимой потери качества, выигрыш будет постоянным. При этом время кодирования неважно: изображение готовится один раз.

Где Guetzli слаб

Главный недостаток Guetzli — скорость. Программа сознательно меняет время обработки на качество поиска. Для единичных изображений это терпимо. Для тысяч файлов — серьезная проблема.

Второй недостаток — память. Большие фотографии могут требовать много RAM. На слабой машине Guetzli может быть неудобен даже для обычной веб-подготовки.

Третий недостаток — отсутствие графического интерфейса. Для технического пользователя это плюс: все прозрачно, повторяемо и скриптуется. Для обычного пользователя это барьер: нужно открывать терминал, писать команды, следить за путями и не ошибаться с именами файлов.

Четвертый недостаток — отсутствие progressive JPEG. Guetzli создает только sequential JPEG. Для некоторых веб-сценариев progressive JPEG может быть предпочтительнее, потому что картинка сначала появляется грубо, а затем уточняется по мере загрузки. Guetzli выбирает другой подход и не делает progressive-вывод.

Пятый недостаток — ограниченная работа с цветом и прозрачностью. Программа предполагает sRGB gamma 2.2 и игнорирует цветовые профили, а прозрачность PNG переводит в черный фон.

Рекомендованные настройки для разных задач

Задача Команда Комментарий
Фото для главного экрана сайта guetzli --quality 95 input.jpg output.jpg Лучше сохранить максимум качества
Фото внутри статьи guetzli --quality 90 input.jpg output.jpg Часто дает хороший баланс
PNG-фото в JPEG guetzli --quality 92 input.png output.jpg Только если прозрачность не нужна
Длинная обработка с логом guetzli --quality 92 --verbose input.jpg output.jpg Видно ход работы
Ограниченная память guetzli --quality 92 --memlimit 4096 input.jpg output.jpg Защищает систему от чрезмерного расхода RAM
Один важный файл без лимита guetzli --nomemlimit input.jpg output.jpg Только при достаточном объеме памяти

Для большинства веб-фотографий разумно начинать с --quality 92. Если изображение важное, увеличить до 95. Если изображение второстепенное и хорошо переносит компрессию, проверить 90 или 88. Ниже спускаться стоит только после внимательной визуальной проверки.

Сравнение с аналогами

Guetzli часто сравнивают с MozJPEG, libjpeg-turbo, jpegoptim и Jpegli. Это реальные альтернативы, но они решают задачу по-разному.

MozJPEG

MozJPEG — улучшенный JPEG-энкодер Mozilla, совместимый со стандартом JPEG и большинством существующих декодеров. Он ориентирован на веб-оптимизацию и включает progressive encoding с оптимизацией jpegrescan, trellis quantization, новые presets таблиц квантования и совместимость с libjpeg API/ABI.

Guetzli отличается подходом. Он тяжелее, медленнее и сильнее завязан на психовизуальную оптимизацию. MozJPEG практичнее для массовой обработки, сборочных пайплайнов и задач, где нужны progressive JPEG и хорошая скорость. Guetzli лучше рассматривать как инструмент для отдельных важных изображений, где можно позволить себе долгую обработку ради компактного результата.

libjpeg-turbo

libjpeg-turbo делает упор на скорость. Это JPEG-кодек с SIMD-ускорением для baseline и progressive JPEG; на распространенных CPU-архитектурах он обычно в 2–6 раз быстрее libjpeg при прочих равных.

Guetzli находится на противоположной стороне. Он не пытается быть самым быстрым. Он пытается сделать качественный компактный JPEG, тратя на это много вычислений. Если нужно быстро кодировать изображения в большом количестве, libjpeg-turbo практичнее. Если нужно офлайн-сжать несколько важных фотографий и время не важно, Guetzli может дать более интересный результат по размеру.

jpegoptim

jpegoptim — утилита для оптимизации JPEG-файлов. Она работает с libjpeg, libjpeg-turbo или MozJPEG и поддерживает разные режимы оптимизации, включая сценарии с сохранением или изменением качества. В отличие от Guetzli, jpegoptim удобнее для потоковой обработки уже существующих JPEG-файлов и массовой оптимизации папок.

Guetzli не является прямой заменой jpegoptim. jpegoptim хорош, когда нужно быстро пройтись по большому набору JPEG, удалить лишнее, оптимизировать кодирование, задать ограничения и встроить обработку в регулярный workflow. Guetzli лучше подходит для более тяжелого перекодирования отдельных изображений.

Jpegli

Jpegli — более новый JPEG coding library от Google. Он сохраняет совместимость с традиционным JPEG, нацелен на улучшение качества и сжатия, а также работает как быстрый подход, сопоставимый по скорости с libjpeg-turbo и MozJPEG. Для high quality compression settings улучшение степени сжатия составляет примерно 35%.

На фоне Jpegli Guetzli выглядит как более ранний и более тяжелый психовизуальный JPEG-энкодер. Его ценность — в качестве результата и исследовательской идее, но для современных производственных сценариев Jpegli может быть привлекательнее: он ориентирован на скорость, совместимость и практическое внедрение. Guetzli при этом остается понятным CLI-инструментом, который можно использовать для точечной оптимизации.

Squoosh

Squoosh — веб-инструмент для ручной оптимизации изображений с визуальным предпросмотром. Его удобно использовать, когда нужно перетащить файл, подвигать параметры, сразу увидеть результат и скачать готовое изображение. Guetzli устроен иначе: это командная утилита без предпросмотра.

Squoosh удобнее для ручного подбора параметров. Guetzli удобнее для воспроизводимого запуска через команду. Если нужно быстро показать человеку до и после, веб-интерфейс практичнее. Если нужно зафиксировать одинаковую команду для проекта, Guetzli лучше ложится в CLI-процесс.

Программа Тип Сильная сторона Слабая сторона Лучший сценарий
Guetzli CLI JPEG-энкодер Высокое визуальное качество при меньшем размере Очень медленный и требовательный к памяти Офлайн-сжатие важных JPEG
MozJPEG JPEG-энкодер / библиотека Практичная веб-оптимизация, progressive JPEG Не такой психовизуально тяжелый подход, как Guetzli Массовая веб-оптимизация
libjpeg-turbo JPEG-кодек Скорость Не специализируется на максимальной плотности при визуальном качестве Быстрое кодирование и декодирование
jpegoptim CLI-оптимизатор JPEG Удобная массовая обработка JPEG Не Guetzli-подход к психовизуальному поиску Оптимизация папок и пайплайнов
Jpegli JPEG coding library Современная эффективность и скорость Нужна интеграция в инструменты Новые JPEG-пайплайны
Squoosh Веб-инструмент Визуальный предпросмотр и ручная настройка Менее удобен для воспроизводимых CLI-скриптов Разовая ручная оптимизация

Пошаговая инструкция: как сжать изображение без потери контроля

Шаг 1. Подготовить исходник

Лучше всего использовать чистый исходник: PNG без потерь или JPEG высокого качества. Не стоит брать файл из мессенджера, соцсети или CMS, где он уже был пережат.

Шаг 2. Сохранить оригинал

Перед запуском Guetzli оригинал нужно оставить отдельно. Выходной файл всегда называйте иначе:

guetzli input.jpg input-guetzli.jpg

Шаг 3. Начать с высокого качества

Для первого теста:

guetzli --quality 95 input.jpg input-guetzli-q95.jpg

Это безопасная отправная точка. Если размер все еще слишком большой, можно попробовать 92 или 90.

Шаг 4. Включить подробный вывод для тяжелых файлов

guetzli --quality 92 --verbose input.jpg input-guetzli-q92.jpg

Так удобнее контролировать долгую обработку.

Шаг 5. Проверить размер

ls -lh input.jpg input-guetzli-q92.jpg

Размер результата должен быть меньше, но это не единственный критерий.

Шаг 6. Проверить глазами

Откройте оба файла рядом. Сравните проблемные участки: лица, линии, небо, тени, мелкие детали, текст. Если результат ухудшился, увеличьте --quality.

Шаг 7. Проверить в реальном размере

Иногда артефакт заметен на 100%, но не виден в реальном размере на сайте. Бывает и наоборот: уменьшенный масштаб скрывает проблему, а на retina-экране она заметна. Поэтому нужно проверить изображение в том контексте, где оно будет использоваться.

Шаг 8. Зафиксировать настройки

Если для проекта хорошо работает --quality 92, не нужно каждый раз угадывать заново. Можно зафиксировать команду в скрипте:

mkdir -p outfor f in *.jpg; do  guetzli --quality 92 --memlimit 4096 "$f" "out/${f%.*}.jpg"done

Практические советы по качеству

Guetzli лучше использовать после ресайза. Если на сайте картинка отображается шириной 1200 пикселей, а исходник имеет ширину 6000 пикселей, сначала нужно уменьшить изображение. Сжатие огромного оригинала не решает проблему лишних пикселей.

Не используйте Guetzli как единственный этап оптимизации. Для сайта важны также размеры изображений, lazy loading, правильные responsive-варианты, кэширование и формат. Но внутри задачи получить хороший JPEG Guetzli делает именно то, для чего создан.

Не гонитесь за одинаковым quality для всех изображений. Темные фото, лица, небо, текстуры и скриншоты реагируют по-разному. Для главных изображений лучше качество выше. Для второстепенных — можно ниже, если визуально результат чистый.

Не сравнивайте только проценты. Файл, уменьшенный на 15%, но выглядящий идеально, лучше файла, уменьшенного на 45%, но с грязью на важных деталях. Для Guetzli разумный подход — сохранять качество, а не ломать картинку ради рекорда.

Важные ограничения JPEG при работе с Guetzli

Guetzli создает JPEG, а значит наследует фундаментальные ограничения JPEG:

  • JPEG сжимает с потерями;

  • JPEG не поддерживает прозрачность;

  • JPEG плохо подходит для резкого текста и интерфейсной графики;

  • JPEG может давать артефакты вокруг контрастных границ;

  • каждое повторное JPEG-сохранение может ухудшать изображение.

Поэтому Guetzli не стоит использовать для всего подряд. Фото — да. Сложная веб-графика без прозрачности — иногда. Логотипы, иконки, схемы, скриншоты с мелким текстом — чаще нет.

Если изображение должно остаться прозрачным, нужен PNG, WebP, AVIF или другой формат с альфа-каналом. Если важна безусловная пиксельная точность, нужен lossless-формат. Если нужна универсальная фотография для браузера, JPEG по-прежнему практичен, а Guetzli помогает сделать такой JPEG компактнее.

Плюсы Guetzli

  • Создает обычные JPEG-файлы.

  • Хорошо подходит для высокого визуального качества.

  • Может уменьшать размер сильнее, чем стандартное JPEG-кодирование.

  • Работает с PNG и JPEG на входе.

  • Имеет простой CLI-синтаксис.

  • Подходит для автоматизации через shell-скрипты.

  • Позволяет задавать качество через --quality.

  • Позволяет включать подробный вывод через --verbose.

  • Позволяет контролировать память через --memlimit.

  • Хорошо вписывается в офлайн-подготовку статичных изображений.

Минусы Guetzli

  • Очень медленно кодирует изображения.

  • Требует много оперативной памяти.

  • Не имеет собственного графического интерфейса.

  • Не делает progressive JPEG.

  • Не сохраняет прозрачность PNG.

  • Игнорирует цветовые профили изображения.

  • Не предназначен для realtime-обработки.

  • Не имеет встроенной очереди пакетной обработки.

  • Не умеет менять размер изображения.

  • Не подходит для всех типов графики.

Кому стоит использовать Guetzli

Guetzli стоит использовать тем, кто понимает задачу JPEG-оптимизации и готов потратить время на проверку результата. Это хороший инструмент для веб-разработчиков, технических редакторов, администраторов сайтов, людей, которые готовят изображения для статичных страниц, и тех, кто хочет получить компактный JPEG без заметной потери качества.

Guetzli не стоит выбирать как первый инструмент для человека, которому нужно просто уменьшить картинку. Для такого сценария удобнее графические оптимизаторы или веб-сервисы с предпросмотром. Guetzli требует аккуратности: нужно правильно указать файлы, не затереть оригинал, подобрать качество и проверить результат.

Итоговая оценка

Guetzli — специализированный JPEG-компрессор Google для качественного офлайн-сжатия изображений. Его сильная сторона — психовизуальный подход: программа старается получить меньший JPEG без грубого визуального ухудшения. На хороших исходниках и при высоких значениях качества Guetzli может дать компактный файл, который внешне остается близким к оригиналу.

При этом Guetzli нельзя считать универсальным решением. Он медленный, прожорливый по памяти, не имеет GUI, не поддерживает progressive JPEG и не подходит для прозрачных PNG. Это инструмент не для поточной обработки всего медиахранилища, а для точечной подготовки важных JPEG-изображений.

Лучший сценарий для Guetzli — финальное сжатие статичных фотографий и веб-графики без прозрачности, когда изображение будет использоваться долго, а время кодирования не имеет значения. Для массовых пайплайнов чаще практичнее MozJPEG, jpegoptim, libjpeg-turbo или Jpegli. Для ручной работы с предпросмотром удобнее визуальные инструменты. Но как конкретная программа для плотного JPEG-сжатия с высоким визуальным качеством Guetzli остается технически сильным и понятным инструментом.

FAQ

Guetzli — это новый формат изображения?

Нет. Guetzli создает обычный JPEG. Файл можно открыть стандартными просмотрщиками, браузерами и редакторами. Отличие находится в способе кодирования, а не в формате.

Есть ли у Guetzli графический интерфейс?

У самой Guetzli нет графического интерфейса. Это CLI-программа. Управление выполняется через команду guetzli, параметры и имена файлов.

Можно ли сжать PNG через Guetzli?

Да, но результат будет JPEG. Если PNG содержит прозрачность, прозрачность не сохранится.

Почему Guetzli так долго работает?

Потому что программа не выполняет простое быстрое JPEG-сохранение. Она ищет более выгодный вариант кодирования с учетом психовизуальной модели и оценки визуальных различий.

Какое качество выбрать?

Для важных изображений стоит начинать с --quality 95. Для обычных веб-фотографий часто подходит --quality 92 или --quality 90. Итог нужно проверять глазами.

Можно ли обработать папку целиком?

Да, через shell-цикл или скрипт. Встроенной кнопки пакетной обработки у Guetzli нет.

Подходит ли Guetzli для логотипов?

Обычно нет. Логотипы, иконки и схемы часто лучше хранить в SVG, PNG или другом формате, где сохраняются резкие границы и прозрачность.

Делает ли Guetzli progressive JPEG?

Нет. Guetzli создает последовательные non-progressive JPEG-файлы.

Можно ли использовать Guetzli для серверной обработки загружаемых изображений?

Можно технически, но часто неразумно. Guetzli медленный и требовательный к памяти. Для realtime-сценариев лучше выбирать более быстрые инструменты.

Чем Guetzli отличается от обычного JPEG-сохранения в редакторе?

Обычное сохранение чаще просто кодирует изображение с выбранным quality. Guetzli выполняет более тяжелую психовизуальную оптимизацию и пытается получить меньший файл при хорошем визуальном качестве.