Сжатие без потерь: почему JPG не сожмётся в ZIP
Вы кладёте папку с фотографиями в ZIP, ждёте волшебства — а размер почти не изменился. Знакомое разочарование. Дело не в плохом архиваторе: за этим стоит красивый закон из теории информации. Разберёмся, как архив вообще сжимает, что такое энтропия и почему одни файлы ужимаются в разы, а другие — никак.
Как архив вообще сжимает данные
Чтобы понять, почему JPG не жмётся, сначала нужно понять, как вообще работает сжатие. Возьмём простой пример. Строку AAAAAAAA (восемь букв A) можно записать короче: «8 раз A». Мы не потеряли ни капли информации, но заняли меньше места. Это и есть суть сжатия без потерь — найти повторы и закономерности и записать их компактнее.
Настоящие архиваторы делают это умнее, но принцип тот же. Алгоритм DEFLATE в ZIP работает в два этапа: сначала ищет повторяющиеся куски и заменяет их короткими ссылками на предыдущее вхождение, а затем кодирует результат так, что частые символы получают короткие коды, а редкие — длинные (код Хаффмана). LZMA в 7z действует похоже, но заглядывает дальше и находит повторы на большом расстоянии — оттого и жмёт плотнее.
Ключевая идея
Сжатие без потерь живёт за счёт повторов и предсказуемости. Есть закономерности — есть что сжимать. Данные выглядят как случайный шум — сжимать нечего.
Два вида сжатия: без потерь и с потерями
Здесь важно развести два принципиально разных подхода, которые часто путают.
Сжатие без потерь (lossless) уменьшает файл так, что при распаковке данные восстанавливаются байт в байт — ровно то, что было. Так работают ZIP, RAR, 7z, а также форматы PNG (картинки) и FLAC (звук). Ничего не теряется: разжатый файл идентичен исходному. Именно поэтому архиваторы всегда без потерь — иначе они портили бы ваши документы.
Сжатие с потерями (lossy) идёт на сделку: оно безвозвратно выбрасывает часть информации ради куда меньшего размера, стараясь удалить то, чего человек почти не заметит. Так работают JPG (фото), MP3 (музыка), MP4 (видео). Разжатый JPG уже не равен оригиналу — часть деталей потеряна навсегда. Зато файл в разы легче. Как это выглядит на примере фотографий, подробно разобрано в статье почему JPEG теряет качество.
| Свойство | Без потерь | С потерями |
|---|---|---|
| Данные после распаковки | Точно как были | Часть потеряна |
| Степень сжатия | Умеренная | Очень высокая |
| Примеры | ZIP, PNG, FLAC | JPG, MP3, MP4 |
| Где нужно | Документы, код, архивы | Фото, звук, видео |
Энтропия и предел, который нельзя перейти
А теперь — красивая часть, объясняющая всё. У любых данных есть характеристика под названием энтропия — мера их непредсказуемости, «беспорядка». Чем данные упорядоченнее и повторяемее, тем ниже их энтропия. Чем ближе к случайному шуму — тем выше.
И вот главный закон: нельзя без потерь сжать данные меньше их энтропии. Это фундаментальный предел, доказанный ещё в теории информации Клода Шеннона. Если в данных много порядка (низкая энтропия) — их можно сильно ужать. Если данные близки к случайным (высокая энтропия) — сжать их не выйдет вообще, хоть каким архиватором. Полностью случайную последовательность байтов нельзя сжать ни на байт.
Почему JPG, MP4 и MP3 не ужимаются
Теперь всё складывается. JPG, MP4 и MP3 — это форматы со встроенным сжатием с потерями. Когда файл сохраняется в JPG, из него уже выжали избыточность и выбросили лишнее. На выходе получается плотный поток данных, который выглядит почти как случайный — его энтропия высока, он близок к своему пределу сжатия.
Что происходит, когда вы кладёте такой файл в ZIP? Архиватор честно ищет повторы и закономерности — но их почти нет, всё уже вырезано форматом. Сжимать нечего. Поэтому размер падает лишь на проценты, а иногда файл даже чуть увеличивается: архив добавляет свою служебную информацию (заголовки, оглавление), а сэкономить не на чем. Это не поломка — это математика.
Отсюда практический вывод
Архивировать папку с фото, музыкой или видео «ради сжатия» бессмысленно — выигрыш будет в пределах процента. Архив для медиа имеет смысл только чтобы собрать много файлов в один для удобной отправки, а не чтобы уменьшить их вес.
Что сжимается хорошо, а что нет
Соберём наглядную картину. С одной стороны — данные с низкой энтропией, полные повторов: их архив ужимает отлично. С другой — уже сжатое, которое трогать бесполезно.
- Сжимается отлично: текст (TXT), таблицы (CSV), логи, исходный код, несжатые картинки (BMP), несжатый звук (WAV). В них много повторов и структуры — низкая энтропия. Тот же формат BMP хранит пиксели без сжатия, поэтому в ZIP он ужимается очень заметно.
- Почти не сжимается: JPG, PNG (уже сжат без потерь внутри), MP3, MP4, а также сами архивы ZIP, RAR, 7z. Повторно паковать их бесполезно.
Кстати, отсюда понятно, почему PNG тоже почти не выигрывает от ZIP: он и так использует сжатие без потерь внутри себя, избыточность уже убрана. А вот текстовые данные — раздолье для архиватора: в статье про ZIP, RAR и 7z показано, как 100 МБ логов ужимаются до 8–15 МБ.
Что делать, если архив не помогает
Раз архив бессилен против уже сжатого, а уменьшить фото или видео всё же надо — работать нужно с самим файлом, а не с упаковкой. Логика простая: если lossless-сжатие упёрлось в предел, остаётся аккуратно применить сжатие с потерями или уменьшить разрешение.
- Фото JPG — уменьшить разрешение и, если нужно, качество. Для письма или соцсетей 4000 пикселей избыточны. См. как сжать JPG.
- PNG — есть оптимизация без потерь (уменьшение палитры, чистка метаданных): как сжать PNG.
- Фото в целом — общий гид: сжать фото без потери качества.
Уменьшите файл правильно — сжатием, а не архивом
FormatZ сжимает и конвертирует изображения, документы и другие форматы прямо в браузере, без установки и регистрации. Там, где ZIP бессилен, сжатие исходника даёт реальный результат.
Открыть все конвертерыИтого: сжатие без потерь — это не магия, а вычёркивание избыточности, и у него есть жёсткий предел — энтропия данных. Уже сжатые JPG, MP3 и MP4 к этому пределу близки, поэтому в ZIP не ужимаются. Понимая это, вы перестанете тратить время на бесполезную архивацию медиа и будете сразу сжимать сам файл. А если хотите выбрать архиватор для того, что действительно хорошо жмётся, — вам в разбор ZIP, RAR или 7z.


