Перейти к содержимому
Vizua
Поддержать Vizua (скоро)

Сжатие изображений с потерями и без: принципы, форматы и практика

Vizua

Сжатие с потерями убирает данные, которые ваши глаза не заметят, уменьшая файл на 60-80%. Сжатие без потерь реорганизует данные, не удаляя ничего, экономя 20-50%. Каждый формат изображений использует один из этих подходов — и правильный выбор является главным фактором, определяющим размер файла.

Что происходит с пикселями: ключевое различие

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

Сжатие без потерь (lossless) находит паттерны в пиксельных данных и описывает их компактнее — вместо «оранжевый, оранжевый, оранжевый, оранжевый» записывает «оранжевый × 4». При распаковке каждый пиксель восстанавливается в точности. Файл меньше, но ни один бит информации не отброшен. Так работают PNG и lossless WebP.

Сжатие с потерями (lossy) идёт дальше. Алгоритм анализирует изображение и определяет, какие детали зрительная система человека вряд ли заметит, — и навсегда их удаляет. Тонкие цветовые градиенты упрощаются. Мелкая текстура в тенях сглаживается. Результат — файл, который кардинально меньше, но исходные данные утрачены безвозвратно. JPEG, lossy WebP и AVIF используют именно этот подход.

Ни один метод не является универсально «лучшим». Они решают разные задачи, и грамотный рабочий процесс использует оба.

Сжатие с потерями: как это устроено

Lossy-кодировщики вроде JPEG применяют многоэтапный процесс:

  1. Конвертация цветового пространства — изображение переводится из RGB в YCbCr, разделяя яркость (к которой глаз чувствителен) от цветовой информации (к которой — нет).
  2. Chroma subsampling — цветовые каналы семплируются с половинным или четвертинным разрешением. Глаз почти не замечает разницы, так как распознаёт цвет с гораздо меньшей точностью, чем яркость.
  3. Блочное преобразование — изображение делится на блоки 8×8 пикселей. Каждый блок преобразуется математической операцией, которая отделяет важную визуальную информацию от мелких деталей.
  4. Квантование — здесь данные действительно отбрасываются. Высокочастотные детали (тонкие текстуры, шум) обнуляются. Ползунок «качество» в инструменте управляет агрессивностью этого этапа.
  5. Энтропийное кодирование — оставшиеся данные дополнительно сжимаются без потерь, чтобы выжать последние байты.

Результат: камерный JPEG весом 5 МБ при качестве 80 обычно превращается в файл 500 КБ — 1 МБ без видимого ухудшения при обычном просмотре. Это уменьшение на 80%.

Сжатие без потерь: сохранение каждого пикселя

Lossless-кодировщики действуют иначе. Они не отбрасывают информацию — вместо этого находят более эффективные способы описать те же данные:

  • Фильтрация/предсказание — для каждого пикселя кодировщик предсказывает его значение на основе соседних пикселей и сохраняет только разницу. В гладких областях эти разницы — крошечные числа, которые отлично сжимаются.
  • Словарное кодирование — повторяющиеся паттерны сохраняются один раз и далее ссылаются коротким указателем, аналогично тому, как работает ZIP.
  • Энтропийное кодирование — частые значения получают более короткие бинарные представления, редкие — более длинные.

Экономия сильно зависит от содержимого. Скриншот с большими областями одного цвета может сжаться на 70-80%. Детальная фотография с уникальными текстурами в каждой области — всего на 10-20%. Именно поэтому lossless идеален для графики, но непрактичен для массовой раздачи фотографий в вебе.

Реальные цифры: сравнение размеров

Исходный формат Lossless-результат Lossy-результат (качество 80)
Несжатое фото (5 МБ) PNG: ~3,5 МБ (экономия 30%) JPEG: ~500 КБ (экономия 90%)
Скриншот (2 МБ) PNG: ~400 КБ (экономия 80%) JPEG: ~200 КБ (экономия 90%, но текст размывается)
Логотип с прозрачностью (500 КБ) PNG: ~80 КБ (экономия 84%) Неприменимо (JPEG не поддерживает прозрачность)
JPEG-фото (1 МБ) пересжатое PNG: ~2,5 МБ (больше!) JPEG 80: ~700 КБ (экономия 30%, generation loss)

Обратите внимание на последнюю строку. Конвертация JPEG в PNG фактически увеличивает размер файла, потому что lossless-сжатие не может эффективно описать шум и артефакты, уже внесённые JPEG-сжатием. Это распространённая ошибка — PNG не всегда меньше.

Какие форматы используют какой тип сжатия

Формат Lossy Lossless Лучше всего для
JPEGДа (только)НетФотографии, hero-баннеры
PNGНетДа (только)Скриншоты, логотипы, графика с текстом
WebPДаДаОба — веб-изображения любых типов
AVIFДаДаОба — максимальное сжатие для современных браузеров
GIFНетДа (ограниченно)Простые анимации (в основном заменён WebP/AVIF)
TIFFОпциональноДаАрхивное хранение, печатные процессы

WebP и AVIF — наиболее универсальные форматы, потому что поддерживают оба режима. Вы выбираете для каждого изображения: lossy для фото, lossless для графики. Если не уверены, какой формат выбрать, наше сравнение WebP vs AVIF разбирает все компромиссы.

Практическое руководство: когда какой тип применять

Сжатие с потерями — для:

  • Фотографий и натуральных изображений (пейзажи, портреты, товарные снимки)
  • Hero-баннеров и фоновых изображений сайта
  • Изображений для соцсетей и миниатюр
  • Любых изображений, где уменьшение на 60-80% важнее попиксельной точности

Оптимальное качество для большинства веб-фотографий — 75-85. При таких настройках визуальная разница от оригинала не обнаруживается при обычном размере просмотра, а файл становится на 60-80% легче. Проверьте сами с помощью JPEG-компрессора Vizua или WebP-компрессора — оба позволяют настраивать качество и сравнивать «до» и «после».

Сжатие без потерь — для:

  • Скриншотов с текстом (lossy-сжатие размывает текст)
  • Логотипов и брендовых ресурсов (точная цветопередача критична)
  • Технических диаграмм и иллюстраций
  • Изображений с прозрачностью (PNG или lossless WebP)
  • Архивных копий, которые могут понадобиться для редактирования

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

Часто задаваемые вопросы

Можно ли визуально отличить lossy от lossless?

При высоких настройках качества (JPEG 80+, WebP 75+) большинство людей не видят разницы. Исследования с использованием метрики SSIM показывают: значения выше 0,95 означают, что изображения перцептуально неотличимы. Разница становится заметной только при агрессивном сжатии (JPEG ниже 60) или при увеличении 200%+ на мелких деталях вроде текста или волос.

PNG — это всегда без потерь?

Стандартный PNG — всегда без потерь, каждый пиксель сохраняется точно. Однако некоторые инструменты предлагают «lossy PNG» — оптимизацию путём сокращения палитры с 16 миллионов цветов (24 бит) до 256 цветов (8 бит). Технически это с потерями, но для большинства скриншотов и иллюстраций результат визуально идентичен, при этом размер файла уменьшается на 70-80%.

Какой тип сжатия лучше для веб-изображений?

Сжатие с потерями — для фотографий (JPEG, lossy WebP, AVIF). Без потерь — для графики с текстом, чёткими границами или прозрачностью (PNG, lossless WebP). Ключевой критерий — визуальное качество при целевом размере отображения: если сжатая фотография выглядит идентично при том размере, в котором она реально показывается на экране, — lossy подходит.

Ухудшается ли изображение при многократном сжатии?

Для форматов с потерями — да. Каждый цикл lossy-сжатия (сохранить, открыть, сохранить снова) вносит дополнительное ухудшение качества, называемое «generational loss». Поэтому фотографы хранят оригиналы в RAW или TIFF и экспортируют в JPEG/WebP только как финальный шаг. Форматы без потерь этой проблемы не имеют — PNG можно пересжимать неограниченное число раз без деградации.

Сожмите изображения прямо сейчас

С потерями или без — бесплатно, конфиденциально, в вашем браузере.