Когда вы отправляете фотографию в WeChat или загружаете изображение на веб-сайт, за кулисами происходит одна вещь: файл становится меньше.
Но «уменьшение» на самом деле происходит двумя совершенно разными способами. Одно называется «выбрасывать вещи», другое «переупаковывать». С отраслевой точки зрения это сжатие с потерями и сжатие без потерь — два основных способа сжатия изображений. Сегодня мы четко разберем оба понятия, простым языком, без жаргона.
Однострочное определение: сжатие с потерями удаляет детали, которые едва заметны глазу, сжимая файлы на 80-90%, но процесс необратим, и оригинал невозможно восстановить; При сжатии без потерь не теряется ни одного бита и побайтно распаковывается идентично оригиналу, но обычно сжимаются файлы только на 20–50%.
Что на самом деле делает сжатие изображений
Разберите изображение на части, и вы увидите просто кучу цветных точек. Фотография на телефоне легко может содержать десятки миллионов точек, каждая из которых хранит значение цвета. Файл большой, потому что он точно хранит каждый из этих десятков миллионов цветов.
Целью сжатия является одно: выразить изображение с меньшим количеством байтов. Как сделать его меньше, но при этом выглядеть прежним? Два маршрута.
С потерями: выбросьте то, чего не видите
Lossy звучит пугающе — «отбрасывание данных». Но хорошее сжатие с потерями не удаляет пиксели случайным образом; он использует «модель человеческого зрения», чтобы вычислить, какую информацию вы, вероятно, не заметите недостающей, отбрасывает ее и плотно упаковывает остальную информацию.
Думайте об этом как о написании аннотации к роману: хороший синопсис сохраняет сюжет и исключает только те прилагательные, которые никто не помнит.
Эффект мощный. Фотография размером 5 МБ, сжатая до 500 КБ, является обычной — на 80-90% меньше, и на экране она выглядит так же.
Единственная цена: вы не сможете вернуться назад. Отброшенные байты действительно исчезли, и в тот момент, когда вы сохраняете, вы принимаете эту версию — улица с односторонним движением.
Без потерь: никаких изменений, просто перекодировано
Без потерь — более вежливый вариант. Файл становится меньше, но не теряет ни одного бита, распаковывая его побайтно, как в оригинале.
Он делает именно то, что делает ZIP: находит повторения и закономерности в данных и записывает их более экономичным способом.
Например, если ряд пикселей содержит 200 одинаковых синих пикселей подряд, кодирование без потерь не будет сохранять «синий» 200 раз — оно просто записывает «синий ×200» и движется дальше. Вот почему он прекрасно сжимает скриншоты и пользовательский интерфейс — изображения, полные повторяющихся сплошных цветов.
Стоимость столь же очевидна: полная точность, но ограниченная экономия. Для изображений без потерь обычно файлы сжимаются только на 20%–50%, а иногда и меньше. Шумная, хаотичная фотография почти не имеет шаблонов, которые можно было бы использовать, поэтому без потерь почти не помогает.
Уровни PNG и WebP без потерь, а также FLAC в аудио, идут по этому пути. Ничего не теряется, и файл становится меньше — но лишь настолько, насколько вы готовы терпеть, что он остаётся довольно большим.
Как JPEG смеет удалять ваши цвета? Лазейка в человеческом зрении
Сначала ответьте: JPEG — формат сжатия с потерями. Вы, наверное, задаетесь вопросом: как он посмел коснуться моих данных о цвете?
Потому что он использует лазейку в человеческом зрении. В глазу есть два типа фоторецепторных клеток: палочки отвечают за яркость, колбочки — за цвет. Палочек примерно в двадцать раз больше, чем колбочек, а способность мозга различать яркость намного выше, чем цвет. Проще говоря: вы чрезвычайно чувствительны к свету и темноте, но совершенно нечувствительны к цвету.
JPEG знает это. При сжатии изображение разделяется на каналы яркости и цвета, агрессивно обрезается цвет и сохраняется яркость. Это называется подвыборкой цветности — см. объяснение в Википедии — именно так она может отбрасывать более половины цвета, в то время как ваш глаз не замечает разницы.
Затем он объединяется с дискретным косинусным преобразованием (DCT), разделяя изображение на частоты и еще сильнее отсекая высокочастотные мелкие текстуры и шум — вещи, которые ваши глаза тоже не очень хорошо видят, особенно в красочных областях. Вся стратегия состоит в том, чтобы отказаться от «того, что вы не пропустите», а этого много.
Эта 85% золотая середина
Для подавляющего большинства фотографий сохранение JPEG в качестве 80-85 неотличимо от оригинала. Не «достаточно близко» — поместите их рядом на нормальном расстоянии на обычном экране, и большинство людей не смогут отличить, что есть что.
Я не преувеличиваю. Я сам прошел несколько слепых тестов, и выводы однозначны: в 85 лет люди просто не видят той разницы, которую удалили. Чтобы действительно заметить это, вам придется увеличить масштаб до 400% и прищуриться на область размером 20 пикселей, и даже тогда вы можете только угадать.
Но разница в размерах между качеством 100 и 85 огромна, часто на 60–75% меньше. Это не округление — это разница между мгновенной загрузкой страницы и неприятным отказом, и это самая трудная победа в оптимизации изображений.
Упадите ниже 70, и вы начнете это видеть: неровные края, мутные тона кожи, размытый текст. Но этот щедрый диапазон 80–90 — лучшее соотношение цены и качества: большая экономия при нулевых видимых затратах.
Когда идти в убыток, не беспокоясь
Подавляющее большинство изображений в Интернете должно быть с потерями. Веб-фотографии, загрузки в социальные сети и миниатюры — все сталкивается с одной и той же реальностью: никто не считает пиксели на изображении в заголовке во время прокрутки. JPEG/WebP с качеством 80-85 выглядит хорошо и загружается быстро.
Instagram и Facebook в любом случае повторно сжимают все, что вы загружаете, поэтому загрузка оригинального TIFF вам ничего не даст. Миниатюры маленькие и их можно найти по десятку на странице, поэтому сильное сжатие вполне разумно. Отправьте фотографию тете — она просмотрит ее на телефоне, и ей не нужен 24-мегапиксельный оригинал.
В этих сценариях сохраненный размер является реальным, а потеря качества в основном теоретическая. На 90 % меньше с нулевыми ощутимыми потерями — это не компромисс, а просто здравый смысл.
Когда вам нужно работать без потерь
По умолчанию используется вариант с потерями, но в этих случаях потерять даже немного неправильно:
- Медицинская визуализация. Врач, читающий сканирование опухолей, не должен заставлять вас решать, «какая деталь, вероятно, незаметна». Сжатие диагностических изображений с потерями строго регулируется такими организациями, как FDA и ACR.
- Мастера архива. Мастер-копии фотографий, произведений искусства и архивов должны быть без потерь. Сегодня вы не видите разницы, но не знаете, какие инструменты потребуются завтра. Лосси — улица с односторонним движением.
- Многократно редактируемая работа. Каждый раз, когда вы открываете JPEG, редактируете и сохраняете, он повторно сжимается и добавляется еще один слой артефактов. Это называется потеря поколений, поэтому профессионалы снимают в формате RAW и редактируют в TIFF/PSD. Сжимайте конечный результат, а не рабочий файл.
- Изображения с текстом и четкими краями. Скриншоты, логотипы и макеты пользовательского интерфейса представляют собой жёсткие линии и сплошные цветные блоки — метод с потерями не справляется с ними. JPEG родился для фотографий; PNG в этом плане гораздо сильнее. Не сжимайте электронную таблицу в формате фотографии.
Краткий обзор: с потерями и без потерь
| Измерение | Искажающий | Без потерь |
|---|---|---|
| Двусторонний | Нет (в одну сторону) | Да (байт за байт) |
| Степень сжатия | Высокий, часто на 60%–90% меньше | Ограниченный, ~20%–50% |
| Качество | Почти незаметная потеря качества (80-85) | 100% точность |
| Общие форматы | JPEG, WebP с потерями, AVIF, MP3 | PNG, без потерь WebP, TIFF, FLAC, ZIP |
| Подходит для: | Веб-фотографии, социальные сети, эскизы | Медицина, мастера, перемонтаж, скриншоты/логотипы |
Часто задаваемые вопросы
В чем разница между сжатием с потерями и без потерь?
Сжатие с потерями удаляет детали, которые человеческий глаз едва замечает, значительно уменьшая размер, и этот процесс необратим; Сжатие без потерь не приводит к потере данных и побайтно распаковывает идентично оригиналу, но степень сжатия ограничена, обычно меньше всего на 20–50%.
JPEG с потерями или без потерь?
JPEG — это формат сжатия с потерями. Он отбрасывает цвета и высокочастотные детали, к которым человеческий глаз нечувствителен, с помощью субдискретизации цветности и дискретного косинусного преобразования (DCT), что резко сжимает фотографии. JPEG также имеет режим без потерь, но в Интернете и подавляющем большинстве сценариев используется уровень с потерями.
Должен ли я установить качество сжатия изображения на 80 или 100?
Для подавляющего большинства фотографий сохранение с качеством 80–85 выглядит неотличимо от оригинала на нормальном расстоянии просмотра и на экране, однако файл на 60–75 % меньше, чем с качеством 100. Видимые артефакты, такие как блочность и мутные оттенки кожи, проявляются только при значении ниже 70, поэтому 80–85 — наилучшее соотношение цены и качества.
Когда необходимо использовать сжатие без потерь?
Медицинские изображения, архивные мастер-файлы, редактирование файлов, которые неоднократно открываются и изменяются, а также снимки экрана/логотипы/пользовательский интерфейс с текстом и резкими краями — все это требует сжатия без потерь. Потеря данных — это улица с односторонним движением: удаленные данные невозможно восстановить, а повторное сохранение приводит к потерям поколений.
Одно последнее слово
По умолчанию в Интернете используется значение Lossy: 80–85 позволяет значительно сэкономить на фотографиях с почти нулевыми видимыми потерями. Без потерь используются архивные файлы, медицинские визуализации и рабочие процессы редактирования, которые неоднократно пересохраняются. Самый безопасный вариант — это одно предложение: сохранить мастер-файл без потерь и экспортировать его для доставки.
Готовы применить это на практике? Используйте наш бесплатный компрессор изображений, чтобы сжать фотографии с потерями или без потерь, или перейдите к изменить размер, обрезку и конвертировать JPG в WebP, чтобы применить то, что вы только что узнали.