Сжатие данных: почему файлы можно уменьшить (Приложение С)
Сжатие данных: почему файлы можно уменьшить (Приложение С)
Опубликовано: 11.04.2026
Сжатие данных: почему файлы можно уменьшить - и до какого предела
Как ZIP находит повторы, почему JPEG выбрасывает часть картинки и отчего уже сжатый файл не сжимается повторно
В статье про биты и байты мы упомянули, что минута несжатого звука занимает около 10 мегабайт, а видео в хорошем качестве - сотни мегабайт в секунду. В реальности музыкальный трек весит несколько мегабайт, а полуторачасовой фильм - пару гигабайт. Разница - в сжатии. Разберёмся, как оно работает и почему не бесконечно.
🔁 Главная идея: избыточность
Любое сжатие эксплуатирует одно свойство реальных данных - избыточность. Большинство файлов содержат повторения, закономерности, предсказуемые паттерны. Чистый случайный шум - несжимаем по определению, в нём нет ничего лишнего. Но реальные тексты, изображения и звук устроены иначе: в них очень много предсказуемого.
Возьмём простой пример. Представьте, что нужно записать строку: «аааааааааа» - десять букв «а» подряд. Можно записать все десять. А можно записать: «10 раз а» - и это займёт меньше места, неся ровно ту же информацию. Именно на этом принципе построено всё сжатие без потерь.
📦 Сжатие без потерь: данные восстанавливаются точно
Сжатие без потерь гарантирует: после распаковки файл будет побайтово идентичен оригиналу. Это критично для текстов, программ, таблиц - любых данных, где каждый бит важен.
Кодирование повторов
Самый простой алгоритм - RLE (Run-Length Encoding — кодирование длин серий). Вместо того чтобы хранить «белый, белый, белый, белый, белый, белый», он хранит «6 белых». Хорошо работает для изображений с большими однотонными областями - например, для скриншотов с белым фоном или простой графики. Плохо работает для фотографий, где почти нет одинаковых соседних пикселей.
Словарное сжатие
Алгоритмы семейства LZ (по именам авторов - Лемпел и Зив, 1977 год) работают хитрее. Они строят словарь из уже встреченных последовательностей байт и заменяют повторные вхождения ссылками на словарь. Встретили слово «компьютер» - добавили в словарь. Встретили снова - записали не само слово, а короткую ссылку: «то же, что запись номер 47». Чем длиннее файл и чем больше в нём повторов - тем лучше сжатие.
На этом принципе построены ZIP, gzip, форматы PNG и многие другие. Текстовый файл сжимается в несколько раз - в нём много повторяющихся слов. Исходный код программы - тоже хорошо: ключевые слова языка встречаются постоянно. Уже сжатый файл - почти не сжимается: словарь не находит повторов там, где их нет.
Коды Хаффмана: частые символы - короче
Ещё один классический приём - кодирование Хаффмана. Идея: зачем тратить одинаковое количество битов на все символы, если одни встречаются гораздо чаще других? В русском тексте буква «о» встречается намного чаще, чем «ъ». Если «о» закодировать двумя битами, а «ъ» - двенадцатью - суммарно файл станет меньше, хотя каждый символ кодируется по-разному.
Это та же логика, что и в азбуке Морзе: точка - самый короткий сигнал, буква «е» - самая частая в английском. Хаффман формализовал этот принцип математически и доказал, что его метод даёт оптимальный результат для данного распределения символов. Коды Хаффмана используются внутри ZIP, JPEG, MP3 и многих других форматов.
🎨 Сжатие с потерями: выбрасываем то, чего не заметят
Для фотографий, музыки и видео можно пойти дальше: выбросить часть данных совсем, если человек всё равно этого не заметит. Так работает сжатие с потерями. Восстановить оригинал после него невозможно - но результат выглядит и звучит достаточно хорошо.
JPEG: фотографии
JPEG разбивает изображение на блоки 8×8 пикселей и применяет к каждому математическое преобразование - дискретное косинусное преобразование (ДКП). Оно раскладывает блок на набор волн разных частот: грубые контуры - это низкие частоты, мелкие детали - высокие. Затем JPEG выбрасывает высокочастотные компоненты - те самые мелкие детали, которые глаз плохо различает. Чем сильнее «качество» снижено - тем больше выброшено, тем меньше файл и тем заметнее артефакты.
Именно поэтому сохранённая в JPEG фотография, пересохранённая ещё раз, теряет качество снова: каждое сохранение выбрасывает новую порцию деталей. И именно поэтому скриншот с текстом лучше сохранять в PNG - сжатие без потерь сохранит чёткие края букв, а JPEG их размоет.
MP3 и AAC: звук
Алгоритмы сжатия звука эксплуатируют особенности человеческого слуха. Ухо плохо слышит тихий звук, если рядом играет громкий — это явление называется маскировкой. MP3 анализирует звуковой сигнал, определяет, какие частоты маскируются другими, и кодирует их с меньшей точностью или не кодирует вовсе. Частоты выше 16–18 кГц большинство взрослых людей и вовсе не слышат - их тоже можно выбросить. В результате файл уменьшается в 10 раз при почти неразличимой разнице в звучании.
Видео: межкадровое сжатие
Видео сжимается особенно эффективно, потому что между соседними кадрами обычно очень мало различий. Если камера снимает человека на фоне стены - стена почти не меняется от кадра к кадру. Видеокодеки вроде H.264 и H.265 хранят не каждый кадр целиком, а только разницу между кадрами. Полный кадр сохраняется раз в несколько секунд - он называется ключевым кадром, или I-фреймом. Остальные кадры хранят только то, что изменилось: «объект сдвинулся на 12 пикселей вправо», «этот блок теперь темнее на 5%». Это и есть причина, по которой сцены с резкими монтажными склейками или быстрым движением «бьются» при низком битрейте - там много различий между кадрами, и кодек не успевает.
| Формат | Тип сжатия | Для чего | Степень сжатия |
|---|---|---|---|
| ZIP, gzip | Без потерь (LZ + Хаффман) | Любые файлы, архивы | 2–10× для текста, почти 1× для уже сжатых |
| PNG | Без потерь | Изображения с текстом, скриншоты, графика | 2–5× для простой графики |
| JPEG | С потерями (ДКП) | Фотографии | 10–20× при хорошем качестве |
| MP3, AAC | С потерями (психоакустика) | Музыка, подкасты | ~10× по сравнению с WAV |
| H.264, H.265 | С потерями (межкадровое) | Видео | 100–1000× по сравнению с несжатым |
| FLAC | Без потерь | Музыка в максимальном качестве | ~2× по сравнению с WAV |
🔗 Сжатие и всё, что мы уже знаем
Сжатие пронизывает весь стек, который мы разбирали в цикле. Файловая система хранит сжатые файлы на диске. Браузер получает сжатые HTML и CSS по сети - сервер сжимает их gzip или Brotli перед отправкой, браузер распаковывает на лету. Видеокарта декодирует сжатые видеопотоки с YouTube - именно для этого в GPU есть специальный аппаратный декодер, чтобы не нагружать основной процессор. Фотографии в мессенджере пересжимаются на сервере перед доставкой - отсюда потеря качества при пересылке.
Каждый раз, когда данные куда-то передаются или где-то хранятся, вопрос сжатия незримо присутствует: что можно выбросить без потерь, что - с потерями, и до какого предела. Ответ всегда один и тот же - до предела энтропии.
© 2008–2026 ANY.BY - ремонт компьютеров и ноутбуков в Барановичах. Использование материалов сайта возможно с письменного разрешения.
📍 Привезите технику в сервис ANY.BY — диагностика бесплатно, работаем без выходных.
🚗 Не можете приехать — вызовите мастера на дом.
🛒 Ноутбуки, компьютеры и комплектующие — магазин magaz.by.
📞 +375 (33) 323-70-00 (МТС) | +375 (29) 323-70-00 (A1)
✉️ Telegram | Viber
📞 Мы на связи для Вас:
| Пн–Пт | 10:00–19:00 |
| Суббота | 11:00–17:00 |
| Воскресенье | 12:00–16:00 |
Быстро и качественно. Рекомендую.
Хороший сервис, рекомендую. Сделали чистку и замену термопасты, ноутбук теперь летает и не греется.
Огромная благодарность ребятам за реанимацию моего компьютера. Профессионалы своего дела. Рекомендую 100%.
В марте 2026 воспользовалась услугами ANY.BY. Ребята большие умнички, специалисты своего дела: быстро установили причину поломки, оперативно заказали поврежденную деталь и в кратчайшие сроки осуществили ремонт. Дали необходимые рекомендации по обслуживанию и дальнейшей работе. Большое им спасибо. Обязательно буду рекомендовать их своим знакомым.
Отличный мастер, всё объяснил, показал. Ремонт видеокарты выполнили быстро. Спасибо!
Ремонтировал здесь ноутбук, всё сделали отлично. Рекомендую этот сервис.
Обращался по поводу чистки ноутбука и замены термопасты. Сделали всё быстро, аккуратно, предоставили фотоотчёт. Ноутбук перестал греться. Рекомендую!
Ремонт выполнен качественно и в короткие сроки. Рекомендую всем, кто ищет надёжного специалиста по ремонту ноутбуков.
Очень довольна сервисом. Быстро, качественно и недорого.
Рекомендую этот сервис. Мастера — профессионалы своего дела.
Цикл статей ANY.BY - от транзистора до интернета.
Простым языком, без лишней теории.