Перейти к содержимому

Сжатие с потерями и без потерь

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

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

Подвох сжатия с потерями в том, что потери накапливаются. Каждое сохранение отбрасывает еще немного данных, поэтому многократное открытие и повторное сохранение JPEG ухудшает его качество, чего никогда не происходит с PNG. Храните оригинал без потерь, экспортируйте копии с потерями для публикации и всегда делайте повторный экспорт из оригинала, а не из копии.

Что на самом деле удаляет сжатие с потерями

Сжатие с потерями удаляет мелкие детали и едва заметные различия в цвете, которые человеческое зрение воспринимает плохо. Эти алгоритмы основаны на измеренных пределах восприятия, а не на догадках.

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

Как работает сжатие без потерь

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

Ряд из 400 одинаковых белых пикселей можно записать как одну инструкцию вместо 400 отдельных значений, поэтому однотонные цвета сжимаются колоссально, а фотографический шум почти не сжимается. Так работает PNG, WebP в режиме без потерь, а также сжатие внутри ZIP-архива.

Какие форматы к чему относятся

ФорматТипПрозрачностьЛучше всего для
JPEGТолько с потерямиНетФотографии
PNGТолько без потерьДаСкриншоты, логотипы, схемы
WebPОба режимаДаПочти все в вебе
AVIFОба режимаДаБольшие фотографии
HEICС потерями, возможен без потерьДаХранение фото на телефоне
GIFБез потерь, 256 цветовДа, один цветМало для чего, почти заменен
BMPФактически без сжатияОграниченноНичего из современного

WebP и AVIF — наиболее полезные варианты, так как оба поддерживают оба режима. Таким образом, один формат может правильно обрабатывать и фотографию, и логотип, чего JPEG или PNG по отдельности сделать не могут.

Почему повторное сохранение портит JPEG

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

После 5 или 6 циклов эффект становится заметен в виде блочности на гладких участках и ореолов вокруг резких краев. Проблема чаще всего возникает с изображениями, которыми делятся многократно, так как фотография, пересланная через несколько мессенджеров, может пройти 4 или 5 перекодирований еще до того, как кто-то решит ее отредактировать. Работа с оригиналом каждый раз полностью решает эту проблему.

Когда сжатие с потерями — правильный выбор

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

Когда сжатие без потерь — правильный выбор

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

Что означает настройка качества

Показатель качества определяет, насколько агрессивно отбрасываются детали, и он не является процентным выражением чего-то конкретного. Качество 50 не означает половину качества, а качество 100 не означает сжатие без потерь.

Это число указывает, насколько сильно кодировщик упрощает каждый блок изображения. JPEG с качеством 100 все равно отбрасывает информацию, поэтому такая настройка скорее тратит место на диске, чем сохраняет абсолютно все. Разные форматы используют эту шкалу по-разному, поэтому WebP на 80 и AVIF на 60 выглядят сопоставимо с JPEG на 85.

Как выстроить надежный рабочий процесс

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

  1. Храните исходный файл с камеры или рабочий файл дизайна нетронутым в папке, из которой вы никогда ничего не экспортируете напрямую.
  2. Вносите изменения в копию без потерь, а не в готовый JPEG.
  3. Экспортируйте копии для публикации каждый раз из оригинала, а не из предыдущего экспорта.
  4. Выбирайте формат публикации в зависимости от назначения, используя WebP для веба и JPG для форм и электронной почты.
  5. Выполняйте повторный экспорт, а не повторное сжатие, когда требуется новый размер или формат.

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

Почему ZIP-архив не уменьшает JPEG

Сжатие папки с файлами JPEG в ZIP-архив практически не экономит место, потому что эти изображения уже сжаты. ZIP-архив с 200 фотографиями обычно всего на 1–3 процента меньше, чем сами фотографии.

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

Можно ли определить степень сжатия изображения

Сравните размер файла с количеством пикселей: если на один пиксель фотографии приходится значительно меньше 1 байта, значит, она была сильно сжата. Фотография размером 1000 на 1000 пикселей при весе 60 KB сжата очень сильно, тогда как то же изображение при весе 400 KB — нет.

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

Можно ли исправить повреждения от сжатия с потерями

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

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

Как эти понятия называются в реальных инструментах

Программы редко используют слова «с потерями» и «без потерь» напрямую, предлагая вместо этого ползунок качества или готовые пресеты экспорта. Понимание того, какой режим вы используете, важнее, чем надпись на кнопке.

  • Ползунок качества всегда означает сжатие с потерями, как бы ни назывался формат.
  • Сохранить для Web в графических редакторах означает экспорт с потерями при заданном качестве.
  • Оптимизация или сжатие PNG означает реорганизацию без потерь, если только не сокращается количество цветов.
  • Экспорт в PNG 8 означает сокращение палитры, что безвозвратно меняет изображение.
  • Ограничение по размеру в KB означает, что инструмент будет снижать качество, пока файл не впишется в лимит, так что это всегда сжатие с потерями.

Применение правильного режима для всей библиотеки

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

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

Назад в блог