Сжатие данных: почему файлы можно уменьшить (Приложение С)

Опубликовано: 11.04.2026

 

← B. Компилятор 📋 Оглавление D. Экран →
КАК УСТРОЕНО ВСЁ — приложение C

Сжатие данных: почему файлы можно уменьшить - и до какого предела

Как ZIP находит повторы, почему JPEG выбрасывает часть картинки и отчего уже сжатый файл не сжимается повторно

В статье про биты и байты мы упомянули, что минута несжатого звука занимает около 10 мегабайт, а видео в хорошем качестве - сотни мегабайт в секунду. В реальности музыкальный трек весит несколько мегабайт, а полуторачасовой фильм - пару гигабайт. Разница - в сжатии. Разберёмся, как оно работает и почему не бесконечно.

🔁 Главная идея: избыточность

Любое сжатие эксплуатирует одно свойство реальных данных - избыточность. Большинство файлов содержат повторения, закономерности, предсказуемые паттерны. Чистый случайный шум - несжимаем по определению, в нём нет ничего лишнего. Но реальные тексты, изображения и звук устроены иначе: в них очень много предсказуемого.

Возьмём простой пример. Представьте, что нужно записать строку: «аааааааааа» - десять букв «а» подряд. Можно записать все десять. А можно записать: «10 раз а» - и это займёт меньше места, неся ровно ту же информацию. Именно на этом принципе построено всё сжатие без потерь.

📦 Сжатие без потерь: данные восстанавливаются точно

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

Кодирование повторов

Самый простой алгоритм - RLE (Run-Length Encoding — кодирование длин серий). Вместо того чтобы хранить «белый, белый, белый, белый, белый, белый», он хранит «6 белых». Хорошо работает для изображений с большими однотонными областями - например, для скриншотов с белым фоном или простой графики. Плохо работает для фотографий, где почти нет одинаковых соседних пикселей.

Словарное сжатие

Алгоритмы семейства LZ (по именам авторов - Лемпел и Зив, 1977 год) работают хитрее. Они строят словарь из уже встреченных последовательностей байт и заменяют повторные вхождения ссылками на словарь. Встретили слово «компьютер» - добавили в словарь. Встретили снова - записали не само слово, а короткую ссылку: «то же, что запись номер 47». Чем длиннее файл и чем больше в нём повторов - тем лучше сжатие.

На этом принципе построены ZIP, gzip, форматы PNG и многие другие. Текстовый файл сжимается в несколько раз - в нём много повторяющихся слов. Исходный код программы - тоже хорошо: ключевые слова языка встречаются постоянно. Уже сжатый файл - почти не сжимается: словарь не находит повторов там, где их нет.

Коды Хаффмана: частые символы - короче

Ещё один классический приём - кодирование Хаффмана. Идея: зачем тратить одинаковое количество битов на все символы, если одни встречаются гораздо чаще других? В русском тексте буква «о» встречается намного чаще, чем «ъ». Если «о» закодировать двумя битами, а «ъ» - двенадцатью - суммарно файл станет меньше, хотя каждый символ кодируется по-разному.

Это та же логика, что и в азбуке Морзе: точка - самый короткий сигнал, буква «е» - самая частая в английском. Хаффман формализовал этот принцип математически и доказал, что его метод даёт оптимальный результат для данного распределения символов. Коды Хаффмана используются внутри ZIP, JPEG, MP3 и многих других форматов.

📌 Предел сжатия без потерь: Математик Клод Шеннон в 1948 году доказал, что у любого файла есть нижний предел сжатия - энтропия. Это количество «настоящей» информации в файле, которую нельзя выразить короче без потерь. Если файл уже сжат до энтропии - дальше некуда. Именно поэтому повторное сжатие ZIP-архива почти не даёт результата: первое сжатие уже убрало всю избыточность.

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

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

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 есть специальный аппаратный декодер, чтобы не нагружать основной процессор. Фотографии в мессенджере пересжимаются на сервере перед доставкой - отсюда потеря качества при пересылке.

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


📍 Привезите технику в сервис ANY.BY — диагностика бесплатно, работаем без выходных.
🚗 Не можете приехать — вызовите мастера на дом.
🛒 Ноутбуки, компьютеры и комплектующие — магазин magaz.by.

📞 +375 (33) 323-70-00 (МТС) | +375 (29) 323-70-00 (A1)
✉️ Telegram | Viber

➡️ Смотреть полный прайс-лист →

← B. Компилятор 📋 Оглавление D. Экран →
Расписание работы · ул. Куйбышева, 26
Пн–Пт 10:00–19:00
Суббота 11:00–17:00
Воскресенье 12:00–16:00

★★★★★ 4.8 · 161 отзыв в Google
★★★★★ 4.8 · 41 отзыв в Яндекс
А
Александр Козарез
сентябрь 2025
★★★★★

Быстро и качественно. Рекомендую.

Д
Денис
2021
★★★★★

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

Ю
Юлия Сокол
октябрь 2025
★★★★★

Огромная благодарность ребятам за реанимацию моего компьютера. Профессионалы своего дела. Рекомендую 100%.

Ф
Фекла Иванова
март 2026
★★★★★

В марте 2026 воспользовалась услугами ANY.BY. Ребята большие умнички, специалисты своего дела: быстро установили причину поломки, оперативно заказали поврежденную деталь и в кратчайшие сроки осуществили ремонт. Дали необходимые рекомендации по обслуживанию и дальнейшей работе. Большое им спасибо. Обязательно буду рекомендовать их своим знакомым.

А
Артем
март 2025
★★★★★

Отличный мастер, всё объяснил, показал. Ремонт видеокарты выполнили быстро. Спасибо!

Е
Евгений Кисель
февраль 2025
★★★★★

Ремонтировал здесь ноутбук, всё сделали отлично. Рекомендую этот сервис.

Д
Денис Кадыко
июнь 2025
★★★★★

Обращался по поводу чистки ноутбука и замены термопасты. Сделали всё быстро, аккуратно, предоставили фотоотчёт. Ноутбук перестал греться. Рекомендую!

A
Artyom
2022
★★★★★

Ремонт выполнен качественно и в короткие сроки. Рекомендую всем, кто ищет надёжного специалиста по ремонту ноутбуков.

Ю
Юлия
ноябрь 2024
★★★★★

Очень довольна сервисом. Быстро, качественно и недорого.

И
Игорь С.
май 2023
★★★★★

Рекомендую этот сервис. Мастера — профессионалы своего дела.


📖 Как устроен компьютер

Цикл статей ANY.BY - от транзистора до интернета.
Простым языком, без лишней теории.

🎓 Читать учебник →