Как работает сжатие изображений: с потерями и без потерь | Bulk Image Compressor

Что такое сжатие изображений на самом деле?

Сжатие изображений — это уменьшение размера файла путем удаления данных. В этом вся концепция. Вы берете файл, скажем, 5 МБ, и уменьшаете его до 500 КБ или меньше. Вопрос всегда в том: какие данные удаляются и заметите ли вы разницу?

Каждое цифровое изображение состоит из пикселей, и каждый пиксель хранит цветовую информацию. Фото 4000x3000 имеет 12 миллионов пикселей, и если каждый хранит 24 бита цветовых данных, это около 36 МБ сырой информации. Очевидно, никто не хочет иметь дело с файлами изображений по 36 МБ, поэтому мы их сжимаем.

Есть два подхода к этому: с потерями и без потерь. Они работают по-разному, дают разные результаты и подходят для разных вещей.

Сжатие с потерями: выбрасывание того, чего вы не заметите

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

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

Как работает сжатие JPEG

JPEG — самый распространенный формат с потерями, и способ его работы довольно умный.

Сначала изображение разбивается на маленькие блоки 8x8 пикселей. Каждый блок проходит через так называемое дискретное косинусное преобразование (DCT). Не беспокойтесь о математике. То, что делает DCT, — преобразует данные пикселей из «вот цвета в каждой позиции» в «вот паттерны изменений в этом блоке».

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

При качестве 95 удаляется очень мало. При качестве 30 удаляется много. Разница в размере файла между этими двумя настройками может быть огромной, часто в 10 раз или более.

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

Компромисс качества

Каждое сжатие с потерями включает компромисс между размером файла и визуальным качеством. Хорошая новость в том, что этот компромисс нелинеен. Переход с качества 100 на качество 80 может сократить размер файла на 70% почти без видимой разницы. Переход с 80 на 60 экономит меньше места, но начинает показывать артефакты — те блочные, размазанные области, которые иногда видны в сильно сжатых фото.

Для большинства фотографий качество 75-85% — это золотая середина. Вы получаете огромную экономию размера файла, и изображение все еще отлично выглядит для большинства людей. Если вы хотите узнать больше о поиске правильного баланса, ознакомьтесь с нашим руководством как уменьшить размер файла изображения без потери качества.

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

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

Так как же уменьшить файл без потери чего-либо? Находя более эффективные способы описания тех же данных.

Как работает сжатие PNG

PNG — наиболее широко используемый формат без потерь. Он использует комбинацию фильтрации и сжатия DEFLATE (того же алгоритма, что используется в ZIP-файлах).

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

После фильтрации данные проходят через DEFLATE, который находит повторяющиеся паттерны и заменяет их более короткими кодами. Если последовательность пикселей появляется несколько раз, она сохраняется один раз и ссылается отовсюду.

Результат: вы получаете меньший файл, который все еще является идеальной копией оригинала. Для типичного скриншота или графики сжатие PNG может уменьшить размер файла на 50-70% без потери качества.

Где сжатие без потерь незаменимо

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

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

Когда использовать каждый тип

Используйте сжатие с потерями (JPEG) когда:

  • Вы работаете с фотографиями
  • Размер файла важнее, чем безупречная точность
  • Изображение будет отображаться в интернете
  • Вам нужно сжать много изображений за раз (попробуйте Bulk Image Compressor для пакетной обработки)

Используйте сжатие без потерь (PNG) когда:

  • Изображение содержит текст, логотипы или четкие края
  • Вам нужна прозрачность (PNG поддерживает ее, JPEG — нет)
  • Вы сохраняете скриншоты или макеты интерфейсов
  • Вам нужно снова редактировать изображение позже и вы хотите сохранить качество

Что на самом деле означают настройки качества

Когда вы регулируете ползунок качества от 1 до 100 в любом инструменте для изображений, вы управляете тем, сколько данных выбрасывается на этапе квантования. Но числа не стандартизированы между инструментами. Качество 80 в Photoshop, качество 80 в GIMP и качество 80 в онлайн-компрессоре могут давать разные результаты.

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

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

Не обязательно выбирать что-то одно

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

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

Ready to compress your images?

Bulk compress JPEG, PNG, WebP, and AVIF images right in your browser. No uploads, no sign-ups.

Try Bulk Image Compressor