Главная цель сжатия данных – уменьшение размера данных, сохраняя информационную значимость. Она активно применяется при передаче данных, это может быть особенно важно, например, на стриминговых платформах. Сжатие изображений важна для их оптимизации для различных операционных систем и экранов. Сжатие так же используется при архивировании, чтобы сохранять место на диске и удобно обмениваться большими файлами. Каждый алгоритм сжатия имеет свои особенности и область применения и их преимущества в различных сферах.
Рассмотрим основные алгоритмы сжатия данных и дадим им краткую характеристику.
1. Сжатие с потерями
При таком сжатии теряется часть информации, но при этом сохраняется общая суть. Это используется, например, при сжатии изображений. При переводе картинки из png в jpeg ухудшается качество при детальном рассмотрении, но при этом сильно уменьшается размер. Такое сжатие так же используется при сжатии аудио и видео, там могут отбросить звуки, неслышимые человеческим ухом или статичные кадры. Разберём методы сжатия с потерями.
JPEG
Из множества алгоритмов сжатия с потерями кодирование с преобразованием оказалось наиболее востребованным. Наилучший пример такого метода — популярный стандарт Joint Photographers Experts Group — Объединенная группа экспертов по машинной обработке фотографических изображений). Рассмотрим на примере JPEG работу алгоритма сжатия с потерями. Он разбивает картинку на 3 маски: чёрно-белая версия для демонстрации уровня яркости, а также синий и красный канал. Далее происходит деление картинки на квадраты по 8 пикселей, у каждого из них есть свой паттерн – комбинация амплитуд различных частотных компонент (рис. 1). Далее определяется коэффициент похожести каждого паттерна, где чем меньше число, тем меньше важных деталей. Наиболее близкие значения округляются и приравниваются, последовательности низких коэффициентов удаляются, так же удаляются детали, плохо воспринимаемые человеческим глазом, и в место них записывается число повторений паттерна. JPEG даёт возможность установить параметр качества, чем он выше, тем меньше данных теряется, но при этом размер файла больше, чем при низком качестве. JPEG является основным форматом сжатия для фотографий и изображений на веб-сайтах, в цифровых фотоаппаратах, телефонах и других средствах хранения и передачи изображений.
Рисунок 1 – 64 паттерна
MP3
Этот формат используется для аудиофайлов, но работает аналогичным образом – звук разбивается на кусочки и раскладывается на волны, округляет похожие и удаляет те, которые плохо воспринимаются человеческим ухом.
H264 и HEVC
Стандарты сжатия видео, так же называемые кодеками. HEVC – стандарт нового поколения, обеспечивающий улучшенное качество при меньшем битрейте по сравнению с H.264. Каждый кадр в видео разбивается на блоки чтобы отслеживать изменения в кадрах. Если что-то поменялось, то создаётся вектор, показывающий направление смещения и длину. Таким образом, из последующих кадров удаляются повторяющиеся элементы, заменяя их на элементы предыдущего опорного кадра. (рис. 2).
Рисунок 2 – Примеры опорного и повторяющихся кадров
2.Сжатие без потерь
При методах сжатия без потерь данные не теряются, но более компактно переорганизуются. К примеру, вместо того, чтобы писать список с повторяющимися элементами, можно указать элемент и его количество. Рассмотрим алгоритмы сжатия без потерь.
Метод Хоффмана
Этот метод был разработан Дэвидом Хаффманом в 1952 году и используется для сокращения текстовых данных. Он определяет количество повторений символов в тексте и частотность каждого символа становится его весом. Эти веса используются для построения дерева, где каждый узел содержит символ и его частоту, а листья представляют отдельные символы. Объединяясь вместе, они создают новый узел, пока не доходят до корня и тогда каждый символ получает свой код, показывающий путь от корня до нужного символа. Затем данные кодируются, путём замены символов этим кодом и в результате текст весит меньше. Преимуществами алгоритма Хаффмана являются его простота и эффективность сжатия для данных с неравномерным распределением символов. Он широко применяется в различных областях, включая сжатие текстовых данных, аудиофайлов и изображений. (рис. 2).
Рисунок 2 – Принцип работы алгоритма Хаффмана
Алгоритм Лемпеля-Зива-Велча (LZW)
Этот метод создаёт словарь, где кодирует символы входных данных и потом создаёт новые коды для повторяющихся символов в словаре. При сжатии данных он удаляет повторяющиеся участки информации, заменяя их более короткими ссылками и этот же словарь используется для декомпрессии. Он обладает высоким уровнем сжатия и высокой скоростью выполнения, что делает его особенно полезным для решения задач сжатия данных без потерь. Так же существует смесь этого алгоритма и метода Хаффмана под названием Deflate, который создаёт дерево не только из повторяющихся символов, но и слов.
Инструменты для сжатия данных
При передаче крупных файлов используются архивы – папки с сжатыми без потерь данными, которые надо извлечь. Для архивирования есть различные утилиты, например ZIP, поддерживающийся почти на всех операционных системах и способный сжимать множество файлов, поэтому он очень широко применяется, или FFmpeg – фреймворк для сжатия медиафайлов, поддерживающий множество кодеков, включая H264 и HEVC для видео и MP3 и AAC для аудиофайлов. Он ограничивается не только сжатием, он так же позволяет редактировать медиафайлы, создавать нарезки, применять фильтры, конвертировать в другие форматы и другое. В последнее время набирает популярность утилита 7-Zip, поддерживающая форматы 7z, ZIP, RAR и TAR. Кроме этого, у неё высокий уровень сжатия и совместимость с Windows и Linux. 7-Zip также поддерживает создание защищённых паролем архивов с шифрованием.
Методов много, поэтому надо определить какой из них наиболее эффективный. Для этого надо сравнить исходный размер файла с сжатым, однако самый маленький файл не всегда показывает наибольшую эффективность, ибо надо учитывает время для сжатия и декодирования и сохранение качества. При сжатии с потерями, может быть утеряна детализация, точность или сами данные, поэтому для каждого конкретного случая нужно найти баланс между степенью сжатия и сохранения качества данных.
Таким образом, для архивации файлов подходит любая из перечисленных выше утилит, но для сжатия веб-сайтов больше всего подходит формат GZIP, способный сжимать HTML и CSS без потерь, благодаря чему сайты быстрее прогружаются.
Для передачи изображений подходит JPEG, но для профессиональных фотографов или чертёжников он не подходит, ибо может удалить важные детали. Для них будет лучше формат RAW, которые содержит максимум данных, нужных для обработки.
Для любительской съёмки подходит кодек H264, но для профессиональной лучше использовать ProRes и HEVC.
И наконец, для аудиофайлов хватит MP3 или AAC, чтобы, например, просто послушать музыку. Но для тех, кто занимается музыкой профессионально или им важна точность, то им подойдёт FLAC – формат без потери данных.
Список литературы:
Методы сжатия данных: алгоритмы и инструменты [Электронный ресурс] / URL: https://tproger.ru/articles/metody-szhatiya-dannyh--algoritmy-i-instrumenty-251908 (дата обращения: 24.11.2025)
Алгоритмы компрессии данных: принципы и эффективность [Электронный ресурс] / URL: https://habr.com/ru/companies/otus/articles/745628/ (дата обращения: 25.11.2025)
Анализ и сравнение методов сжатия при обработке данных большого объёма [Электронный ресурс] URL: https://scienceforum.ru/2025/article/2018038402 (дата обращения 25.11.2025)
Форматы сжатия данных [Электронный ресурс] https://russianelectronics.ru/formaty-szhatiya-dannyh/ (дата обращения 25.11.2025)