
Сжатие данных простыми словами: как файлы становятся меньше
Один и тот же час музыки занимает 600 мегабайт в формате WAV и 50 мегабайт в MP3. Скан договора на десяти листах — 40 мегабайт в TIFF и 900 килобайт в PDF. Разница не в магии: почти в любых данных полно повторов и деталей, которых никто не заметит. Сжатие данных — это способ описать ту же информацию короче.
Разберём без формул: почему файлы уменьшаются, чем сжатие с потерями отличается от сжатия без потерь, какой архиватор реально выигрывает и почему папка с фотографиями в ZIP худеет на два процента.
Что такое сжатие данных простыми словами
Сжатие — это перекодирование данных в более короткую запись, из которой потом можно получить исходную обратно, полностью или почти полностью. Программа, которая это делает, называется компрессором или кодером, обратная операция — распаковка.
Бытовая аналогия: вместо «улица Ленина, улица Ленина, улица Ленина» вы пишете «улица Ленина ×3». Запись короче, смысл цел. Компьютер делает то же самое, только с байтами и по строгому алгоритму, который умеет всё развернуть назад.
Слово «сжатие» прикрывает две принципиально разные операции, и путаница между ними — источник большинства проблем:
- Сжатие без потерь (lossless). После распаковки получается байт в байт тот же файл. Так работают ZIP, 7z, RAR, gzip, PNG, FLAC. Единственный вариант для документов, таблиц, кода, баз данных.
- Сжатие с потерями (lossy). Часть информации выбрасывается навсегда, зато файл уменьшается в разы и десятки раз. Так работают JPEG, MP3, AAC, H.264, AV1. Применимо там, где потерю не заметит человек: фото, звук, видео.
Третье, что тоже называют сжатием, — оптимизация: удаление метаданных, лишних слоёв в PDF, уменьшение картинки в пикселях. Формально данные не сжимаются, а выбрасываются, но результат тот же — файл легче.
Правило, к которому сводится половина статьи: документ, таблица, бухгалтерия — только без потерь. Фото на сайт, музыка в плеер, видео в мессенджер — с потерями, и не бойтесь.
Почему файлы вообще можно уменьшить
Сжатие возможно ровно потому, что в реальных данных есть избыточность — то, что можно вывести из остального, не храня отдельно. Она бывает четырёх сортов.
Повторы. В HTML-странице сотни раз встречается </div>, в CSV — одни и те же названия городов, в скане документа — гигантские белые поля. Хранить каждое вхождение целиком незачем.
Неравномерность. В русском тексте буква «о» встречается в десятки раз чаще, чем «ъ», но в обычной кодировке они занимают одинаковое место. Логичнее дать частым символам короткий код, редким — длинный.
Предсказуемость соседей. В фотографии неба соседние пиксели отличаются на один-два оттенка. Вместо абсолютного значения каждого пикселя достаточно хранить разницу с предыдущим: маленькие числа записываются короче.
Незаметность для человека. Ухо не слышит тихий звук сразу после громкого на близкой частоте. Глаз хуже различает оттенки цвета, чем перепады яркости. Это территория сжатия с потерями.
Отсюда сразу следует ограничение. Если избыточности нет — данные зашифрованы, уже сжаты или просто случайны, — сокращать нечего. Архив готового JPEG иногда получается на пару килобайт больше оригинала: компрессор ничего не нашёл, но дописал свой заголовок и оглавление.
Сжатие без потерь: три главные идеи
Все распространённые алгоритмы без потерь собраны из трёх приёмов. Реальные форматы комбинируют их в разных пропорциях.
Считать одинаковое подряд (RLE)
Кодирование длин серий: последовательность «ААААААБББ» превращается в «6А3Б». Работает блестяще там, где много одинаковых байтов подряд — чёрно-белые сканы, скриншоты интерфейса, рисунки с однотонной заливкой. И бесполезен на фотографии, где соседние пиксели почти никогда не совпадают точно. Поэтому RLE в чистом виде сегодня редок, обычно он один из этапов внутри формата.
Словарь и ссылки назад (LZ)
Главный рабочий приём современных архиваторов. Алгоритм читает файл и запоминает всё, что уже встречалось. Как только попадается знакомый фрагмент, он пишет не его, а ссылку: «отступи назад на 340 байт и скопируй оттуда 12 байт».
Семейство называется LZ — по фамилиям Лемпеля и Зива, описавших идею в конце 1970-х. Разновидностей много: LZ77, LZ78, LZW, LZMA, LZ4. В текстах, коде, логах, XML и JSON повторяются не отдельные буквы, а целые куски — теги, имена полей, шаблонные фразы. Одна ссылка заменяет десятки символов, отсюда и рекордные коэффициенты на текстовых данных.
Деталь, которая объясняет разницу между архиваторами, — размер окна словаря, то есть дистанция, на которую алгоритм помнит назад. У классического Deflate окно 32 килобайта: повтор дальше этой отметки найден не будет. У LZMA в 7-Zip окно достигает сотен мегабайт, поэтому 7z ловит совпадения между файлами в разных концах архива.
Частым символам — короткие коды (Хаффман)
Алгоритм Хаффмана строит таблицу, где самые частые символы получают самые короткие битовые коды, а редкие — длинные. Вместо восьми бит на символ частая буква занимает два-три, редкая — двенадцать. Декодер разбирает поток однозначно, потому что коды построены так, что ни один не является началом другого. Более тонкий вариант той же идеи — арифметическое кодирование: оно позволяет тратить на символ дробное число битов и выжимает ещё несколько процентов.
Как это собирается в формат
Классический пример — Deflate: сначала LZ77 вылавливает повторы и заменяет ссылками, затем Хаффман кодирует остаток. Именно Deflate работает внутри ZIP, gzip и PNG — три очень разные вещи на одном движке. LZMA в 7z построен по той же схеме, но с огромным словарём, арифметическим кодированием и предсказанием следующего байта по предыдущим: медленнее, зато плотнее.
Сжатие с потерями: что именно выбрасывают
Здесь алгоритм не ищет повторы, а решает, чем пожертвовать. Ориентир — особенности человеческого восприятия, изученные довольно подробно.
Изображения: JPEG
JPEG работает в три шага, и каждый выбрасывает что-то своё.
- Разделение яркости и цвета. Картинка переводится из RGB в представление, где яркость хранится отдельно от двух цветовых каналов. К цвету глаз менее чувствителен, поэтому цветовые каналы прореживают — один цвет на квадрат 2×2 пикселя (схема 4:2:0). Объём падает почти вдвое без заметной потери.
- Разложение на частоты. Изображение режется на блоки 8×8 пикселей, каждый раскладывается на набор волн разной частоты. Плавные переходы описываются низкими частотами, мелкие детали и резкие грани — высокими.
- Квантование. Высокочастотные составляющие огрубляются или обнуляются. Именно этим управляет ползунок «качество» от 1 до 100. Остаток дожимается уже без потерь.
Отсюда характерные артефакты: квадратики на градиентах и «звон» вокруг контрастных букв. Для фотографий качество 80-85 обычно неотличимо от оригинала на глаз, а файл меньше в 10-20 раз. Ниже 60 артефакты видны на резких границах. WebP, HEIC и AVIF используют ту же логику, но с более умным разбиением на блоки и предсказанием пикселей внутри кадра: при равном качестве файл выходит меньше, плата — время кодирования.
Звук: MP3, AAC, Opus
Аудиокодеки опираются на психоакустику. Ключевой эффект — маскирование: громкий звук делает неслышимыми тихие звуки на близких частотах и несколько десятков миллисекунд после себя. Кодер строит модель того, что ухо физически не услышит, и не тратит на это биты. Плюс срезается всё выше порога слышимости. Результат: компакт-диск отдаёт около 1400 килобит в секунду, а MP3 на 192-256 кбит/с большинство слушателей на бытовой технике от него не отличают. Opus держит сравнимое качество примерно вдвое ниже по битрейту.
Видео: межкадровое сжатие
К внутрикадровому сжатию добавляется главный козырь: соседние кадры почти одинаковы. Кодек хранит опорный кадр целиком, дальше пишет только изменения — причём не голую разницу, а векторы движения: «этот блок сместился на шесть точек вправо». Поэтому статичное интервью жмётся в разы лучше съёмки с рук в толпе, а битрейт характеризует качество честнее, чем разрешение.
Главная опасность
Потери необратимы и накапливаются. Каждое пересохранение JPEG заново проходит квантование и добавляет артефакты, даже если в картинке ничего не менялось. Держите мастер-копию в формате без потерь и делайте сжатую версию из неё, а не из предыдущей сжатой. Особенно это критично для картинок с текстом: скриншот, трижды пересохранённый в JPEG, читается плохо.
Форматы архивов: ZIP, 7z, RAR и остальные
Архиватор делает две разные вещи сразу: упаковывает несколько файлов в контейнер и сжимает содержимое. Это стоит различать: tar в Linux только собирает файлы в один поток, а сжимает отдельная программа, отсюда двойные расширения вроде .tar.gz.
| Формат | Алгоритм | Плотность | Особенности |
|---|---|---|---|
| ZIP | Deflate | Средняя | Открывается везде без установки программ, включая Windows и macOS «из коробки» |
| 7z | LZMA / LZMA2 | Высокая | Большой словарь, solid-режим, шифрование AES-256; нужен архиватор |
| RAR | Собственный (RAR5) | Высокая | Проприетарный, есть тома и данные для восстановления; создание платное |
| gzip (.gz) | Deflate | Средняя | Один поток, стандарт для веба и логов, очень быстрый |
| bzip2 (.bz2) | BWT + Хаффман | Выше gzip | Заметно медленнее, постепенно вытесняется |
| xz (.xz) | LZMA2 | Очень высокая | Медленная упаковка, быстрая распаковка; дистрибутивы ПО |
| Zstandard (.zst) | LZ + ANS | Высокая | Лучший баланс скорости и плотности, широкий диапазон уровней |
Что такое solid-архив
Обычный ZIP сжимает каждый файл независимо. Solid-архив (7z и RAR) склеивает всё содержимое в один поток и жмёт целиком. Если в наборе тысяча похожих файлов — исходники, отчёты по одному шаблону, — алгоритм находит повторы между ними, и выигрыш бывает кратным. Обратная сторона: чтобы достать один файл из середины, придётся распаковать всё, что лежит до него.
Уровни сжатия и пароль
Зависимость нелинейная: переход с быстрого уровня на обычный даёт заметный выигрыш при небольшом росте времени, а выжимание последних процентов на максимуме может занять в разы дольше и потребовать много оперативной памяти. Максимальный уровень оправдан, когда архив создаётся один раз, а скачиваться будет тысячи раз. Про пароль важно помнить одно: шифрование — не сжатие, и порядок операций внутри формата всегда «сначала сжать, потом зашифровать». Зашифрованные данные выглядят как шум и не сжимаются вовсе.
Коэффициент сжатия: почему архив с фото не уменьшается
Коэффициент сжатия — отношение исходного размера к сжатому. Если 100 МБ превратились в 25 МБ, коэффициент 4:1. Зависит он не от архиватора, а в первую очередь от природы данных.
| Тип данных | Ожидаемый результат | Почему так |
|---|---|---|
| Текст, логи, CSV, JSON, XML | Уменьшение в 3-10 раз | Много повторяющихся конструкций и слов |
| Исходный код, HTML, SQL-дамп | Уменьшение в 4-10 раз | Шаблонные структуры, длинные общие фрагменты |
| BMP, TIFF без сжатия, WAV | Уменьшение в 2-4 раза | Есть предсказуемость соседних значений |
| DOCX, XLSX, PPTX | Единицы процентов | Внутри это уже ZIP-контейнер |
| JPEG, PNG, MP3, MP4 | 0-3% | Уже сжаты, избыточности не осталось |
| Зашифрованные файлы | 0% или чуть больше оригинала | Данные статистически неотличимы от шума |
Отсюда ответ на самый частый вопрос. Вы кладёте в ZIP папку с отпускными фотографиями на 4 гигабайта, ждёте десять минут и получаете архив на 3,94 ГБ. Ничего не сломалось: JPEG уже прошёл всё то, что умеет архиватор, и вычерпал избыточность до дна. Архиватору осталось только сложить файлы в контейнер.
Практический вывод: для фото, музыки и видео архив нужен ради удобства — один файл вместо трёхсот, пароль, тома по размеру носителя, — а не ради экономии места. Чтобы фото реально уменьшились, их надо не архивировать, а пережимать.
Отдельно про офисные документы. Современные DOCX, XLSX и PPTX — это ZIP-архивы: переименуйте .docx в .zip и откройте, внутри будет папка с XML и картинками. Поэтому повторная архивация даёт почти ноль. Зато если в документе лежат фотографии в исходном разрешении, поможет встроенное в редактор «сжатие рисунков» — оно пережимает картинки, а не пытается их архивировать.
Форматы изображений: что чем сжимать
Самая частая практическая задача — уменьшить картинки, не испортив их. Здесь важно выбрать формат под тип изображения.
| Формат | Тип | Для чего подходит |
|---|---|---|
| JPEG | С потерями | Фотографии, сложные градиенты, фон |
| PNG | Без потерь | Скриншоты, схемы, логотипы, прозрачность, текст на картинке |
| WebP | Оба режима | Универсальная замена JPEG и PNG в вебе |
| AVIF | Оба режима | Максимальная экономия при том же качестве, медленное кодирование |
| SVG | Вектор | Иконки, логотипы, графики, коды для печати любого размера |
| GIF | Без потерь, 256 цветов | Простая анимация; для видео давно проигрывает MP4 |
Ошибка номер один — сохранять скриншот интерфейса в JPEG. Резкие границы букв как раз то, что квантование портит сильнее всего: вокруг текста появляется грязь, а размер выходит не меньше, чем у PNG. Ошибка номер два — сохранять фотографию в PNG: без потерь она весит в разы больше, чем нужно.
Отдельная тема — вектор. SVG хранит не пиксели, а описание фигур: линии, кривые, заливки. Файл получается крошечным и печатается одинаково резко в любом размере. По той же причине в генераторе QR-кодов мы отдаём векторный SVG рядом с растровым PNG: макет для типографии из вектора не пикселизуется при увеличении.
Порядок при подготовке фото для сайта такой. Сначала уменьшите разрешение — это даёт основной эффект: для страницы хватает ширины 1600-2000 пикселей, для превью 600-800. Затем подберите качество JPEG, начиная с 82. Уберите EXIF: метаданные камеры, а иногда и координаты съёмки, весят до сотен килобайт. И проверьте WebP — при равном качестве он обычно даёт файл меньше.
Сжатие в вебе: gzip, brotli и скорость сайта
Каждый раз, когда вы открываете сайт, браузер и сервер договариваются о сжатии. Браузер шлёт заголовок с перечнем поддерживаемых методов, сервер отвечает сжатым содержимым и указывает, чем именно он его сжал. Пользователь ничего не замечает — распаковка занимает миллисекунды.
gzip — исторический стандарт, тот же Deflate, понимается абсолютно всем. Brotli — более новый алгоритм от Google со встроенным словарём распространённых веб-фрагментов: типовые куски HTML и CSS уже известны декодеру и передаются ссылкой. На текстовых ресурсах Brotli стабильно выигрывает у gzip заметный процент.
На практике HTML, CSS, JavaScript, JSON и SVG сжимаются в среднем в 3-5 раз: страница на 400 КБ разметки и стилей уезжает по сети как 100 КБ. Для мобильного интернета это разница между «открылось сразу» и «крутится спиннер». Сжимать не нужно JPEG, PNG, WebP, MP4, шрифты WOFF2 и готовые архивы — они пожаты внутри себя, и повторный gzip только съест процессорное время сервера.
Есть и обратная задача: иногда данные специально делают избыточнее. Машиночитаемые метки добавляют к полезной нагрузке служебные байты коррекции ошибок, чтобы читаться даже поцарапанными. Компромисс между объёмом и надёжностью хорошо виден на примере QR-кода с логотипом: чем выше уровень коррекции, тем больше избыточных данных и тем крупнее сама метка.
Компактное кодирование в QR и штрих-кодах
Внутри QR-кода архиватора нет, но есть приём из той же семьи — выбор наиболее экономного способа записи символов. Стандарт ISO/IEC 18004 определяет несколько режимов кодирования, и кодер подбирает подходящий сам:
- Цифровой режим — только цифры 0-9, три цифры упаковываются в 10 бит. Самый плотный: в QR максимальной версии помещается до 7089 цифр.
- Алфавитно-цифровой — 45 символов (заглавные латинские буквы, цифры и несколько знаков), два символа в 11 бит, ёмкость до 4296 символов.
- Байтовый режим — любые байты по 8 бит на символ, до 2953 байт. Сюда попадает кириллица и всё, что не влезло в предыдущие наборы.
Эффект такой же, как от сжатия: одна и та же ссылка, записанная заглавными буквами, укладывается в меньший QR-код, чем она же строчными, потому что попадает в более экономный режим. Отсюда и совет писать короткие ссылки в верхнем регистре — код выходит проще и сканируется увереннее.
С линейными штрих-кодами история другая: у них фиксированная символика без всякого сжатия, а объём жёстко ограничен стандартом — тринадцать цифр в EAN-13, четырнадцать в ITF-14. Разница в подходах и ёмкости разобрана в материале про отличия QR-кода и штрих-кода, а перечень символик с их ограничениями — в справочнике видов штрих-кодов. Ещё одна параллель: чем меньше данных, тем меньше модулей и тем крупнее каждый модуль при том же физическом размере метки, а крупный модуль читается с большего расстояния — расчёт этой зависимости приведён в статье про размер QR-кода для печати.
Онлайн-сжималки: чем платят за бесплатность
Запрос «сжать файл» ведёт на десятки сайтов, которые уменьшают PDF, фото и видео прямо в браузере. Инструмент рабочий, но у него есть цена.
Файл уезжает на чужой сервер. Большинство сервисов обрабатывают документ на своей стороне. Для рекламной картинки это безразлично, для договора со сканом паспорта или выгрузки клиентской базы — уже вопрос: вы передаёте персональные данные третьему лицу без всякого договора. Часть сервисов пишет, что удаляет файлы через час, но проверить это невозможно.
Качество регулируется вслепую. Кнопка «сжать» скрывает конкретные параметры, и результат виден только после скачивания. Для PDF со сканами типичный приём — снизить разрешение картинок внутри до 96-150 dpi. Документ похудеет в разы, но мелкий шрифт может стать нечитаемым, а такой PDF потом не примут в печать или в госоргане. Часть сервисов заодно растеризует страницы, превращая текст в картинку: документ перестаёт искаться по тексту, из него нельзя скопировать реквизиты, а объём иногда даже растёт.
Что делать вместо этого с конфиденциальными файлами: для PDF — экспорт с уменьшенным размером в самом редакторе или печать в PDF с выбором качества; для картинок — офлайн-программа либо встроенное сжатие рисунков в офисном пакете; для набора документов — обычный 7z с паролем, он не портит содержимое и не покидает компьютер; для видео — локальный кодировщик, где видно битрейт и кодек. Общее правило простое: если в файле персональные данные, коммерческая тайна или медицинская информация, обрабатывайте его локально.
Чек-лист: что чем сжимать
- Документы, таблицы, код, дампы БД — только без потерь: 7z для максимума, ZIP если у получателя может не быть архиватора.
- Много однотипных файлов — 7z в solid-режиме, выигрыш бывает кратным против ZIP.
- Фотографии для веба — уменьшить разрешение, затем JPEG качества 80-85 или WebP. Архивировать бессмысленно.
- Скриншоты, схемы, логотипы, текст на картинке — PNG или SVG, никогда не JPEG.
- Мастер-копии — хранить без потерь и всегда пережимать из оригинала, а не из предыдущей сжатой версии.
- Уже сжатое (JPEG, MP4, MP3, DOCX, готовый архив) — повторно не сжимать, толку не будет.
- Сайт — включить gzip или Brotli для HTML, CSS, JS, JSON и SVG; картинки и шрифты не трогать.
- Конфиденциальные файлы — обрабатывать локально, не загружать в онлайн-сжималки.
Частые вопросы
Как работает сжатие файлов простыми словами?
Компрессор ищет в файле избыточность — то, что можно не хранить целиком, а описать короче. Работают три базовых приёма. Первый: если один и тот же байт повторяется подряд много раз, вместо цепочки пишется «столько-то штук такого-то байта» — это кодирование длин серий, RLE. Второй, главный: алгоритм запоминает всё, что уже встречалось в файле, и при повторе фрагмента ставит вместо него ссылку вида «отступи назад на 340 байт и скопируй оттуда 12 байт» — это семейство LZ, на нём построены ZIP, gzip и 7z. Третий: частым символам выдаются короткие битовые коды, редким длинные, как в алгоритме Хаффмана, и вместо восьми бит на символ частая буква занимает два-три. Реальные форматы комбинируют приёмы: Deflate внутри ZIP сначала вылавливает повторы через LZ77, потом кодирует остаток по Хаффману. При распаковке всё разворачивается обратно по тем же правилам, поэтому исходный файл восстанавливается точно. Именно поэтому текст, код и логи ужимаются в несколько раз, а случайный или уже сжатый набор байтов — почти нет.
Чем сжатие с потерями отличается от сжатия без потерь?
Сжатие без потерь гарантирует, что после распаковки вы получите файл, побайтово идентичный исходному: алгоритм только переупаковывает информацию компактнее, ничего не выбрасывая. Так работают ZIP, 7z, RAR, gzip, а также форматы PNG и FLAC. Это единственный допустимый вариант для документов, таблиц, программного кода и баз данных — везде, где изменение одного байта меняет смысл. Выигрыш при этом скромнее: текст ужимается в 3-10 раз, несжатая графика в 2-4. Сжатие с потерями действует иначе: оно навсегда выбрасывает часть информации, ориентируясь на то, что человек её всё равно не заметит. JPEG огрубляет мелкие детали и цветовые переходы, MP3 не кодирует звуки, замаскированные более громкими, видеокодеки хранят только изменения между кадрами. Взамен файл уменьшается в десятки раз. Ключевое ограничение — потери необратимы и накапливаются при каждом пересохранении, поэтому мастер-копию держат без потерь и сжатую версию делают всегда из неё. Правило выбора простое: файл читает машина и важен каждый байт — только без потерь; файл смотрит или слушает человек — можно с потерями.
Почему архив с фотографиями почти не уменьшается?
Потому что фотографии уже сжаты, и вычерпывать из них нечего. JPEG прошёл через цветовую субдискретизацию, разложение на частоты и квантование, а остаток дожат энтропийным кодированием — то есть ровно те приёмы, которые умеет архиватор, к нему уже применены при экспорте из камеры или редактора. Архиватор честно проходит по данным, не находит статистических закономерностей и складывает файлы в контейнер практически как есть: типичный результат — минус ноль-три процента, а иногда архив на десяток килобайт больше оригинала за счёт служебного заголовка и оглавления. То же самое с MP3, MP4, PNG и с офисными документами DOCX и XLSX — последние сами по себе ZIP-архивы внутри. Практический вывод: архивировать медиафайлы имеет смысл ради удобства — отправить один файл вместо трёхсот, поставить пароль, разбить набор на тома, — а не ради места. Если задача именно уменьшить объём фотографий, нужно пережимать сами картинки: снизить разрешение до разумного для экрана, выставить качество JPEG около 80-85 или перевести в WebP, заодно убрав EXIF-метаданные.
Какой формат архива сжимает лучше — ZIP, 7z или RAR?
По плотности на большинстве наборов данных выигрывает 7z, за ним RAR, замыкает ZIP. Причина техническая: классический ZIP использует Deflate с окном словаря всего 32 килобайта, то есть помнит повторы лишь на небольшом расстоянии назад. У LZMA2 в 7z окно достигает сотен мегабайт, добавлены контекстное моделирование и арифметическое кодирование вместо Хаффмана — на однотипных файлах разница бывает двукратной. Второй фактор — solid-режим, который есть у 7z и RAR: содержимое склеивается в один поток и сжимается целиком, поэтому находятся повторы между разными файлами. На тысяче похожих документов это даёт кратный выигрыш, но за него платят удобством: чтобы достать один файл из середины solid-архива, придётся распаковать всё, что лежит перед ним. У ZIP есть решающее преимущество совместимости — он открывается штатными средствами Windows и macOS без установки чего-либо. Практический ориентир: архив для своего хранения — 7z на обычном уровне, отправка внешнему получателю — ZIP, дистрибутив для массового скачивания — 7z или xz на максимуме, поскольку пакуется он один раз, а качается многократно.
Можно ли восстановить качество после сжатия с потерями?
Нет. Информация, выброшенная при кодировании с потерями, физически отсутствует в файле, и достать её неоткуда. Когда JPEG обнуляет высокочастотные коэффициенты, а MP3 не кодирует замаскированные звуки, эти данные не спрятаны и не сжаты — их просто нет. Пересохранение картинки в PNG или конвертация MP3 во FLAC размер увеличат, но качество не вернут: вы получите формат без потерь, аккуратно хранящий уже испорченные данные. Инструменты улучшения на нейросетях работают иначе — они не восстанавливают исходник, а правдоподобно дорисовывают детали, которых в файле нет. Для семейной фотографии это может выглядеть приятно, но для документа, скана или доказательства такой результат опасен: дорисованные символы могут не совпасть с настоящими. Отсюда рабочая дисциплина — держите мастер-копию без потерь (RAW, TIFF, PNG для картинок, WAV или FLAC для звука, проект монтажа для видео) и генерируйте из неё все сжатые версии заново под каждую задачу. Не пережимайте сжатое повторно: каждый цикл кодирования кладёт новые артефакты поверх старых.
Почему нельзя сжать любой файл ещё сильнее?
Существует принципиальный предел, а не недоработка алгоритмов. Сжатие живёт за счёт избыточности — повторов, неравномерной частоты символов, предсказуемости соседних значений. Если избыточности нет, сокращать нечего: зашифрованный контейнер, готовый архив или поток случайных чисел выглядят для компрессора как ровный шум без единой закономерности. Более того, универсального алгоритма, который уменьшал бы абсолютно любой файл, не может существовать в принципе. Если бы каждый возможный набор байтов становился короче, разные исходные файлы неизбежно превращались бы в одну и ту же короткую запись, и распаковать её однозначно было бы невозможно. Поэтому любой компрессор что-то уменьшает, а что-то немного увеличивает за счёт служебных заголовков. Практический вывод: паковать ZIP внутрь ZIP, архивировать зашифрованный том или прогонять JPEG через архиватор второй раз бессмысленно — вы потратите время и получите те же байты плюс оглавление. Меру предсказуемости данных в теории информации называют энтропией, и она задаёт нижнюю границу для сжатия без потерь. Уйти ниже можно единственным способом — согласившись что-то выбросить.