Открыть сервисСервис

Сжатие данных и уменьшение размера файлов

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

Принципы сжатия

Все методы делятся на две большие группы — с потерями и без потерь.

Сжатие без потерь

При сжатии без потерь данные полностью восстанавливаются до исходного состояния. Объём файла уменьшается за счёт устранения статистической избыточности: повторяющихся последовательностей, редко встречающихся символов, шаблонов. Наиболее известные алгоритмы:

  • Huffman coding — замена часто встречающихся символов короткими кодами, редких — длинными;
  • LZ77 / LZ78 / DEFLATE — поиск и замена повторяющихся фрагментов ссылками на уже встречавшиеся последовательности;
  • LZW — словарное сжатие, применялось в формате GIF;
  • Brotli и Zstandard — современные алгоритмы с высокой степенью сжатия, используемые в вебе и системах хранения.

Такое сжатие незаменимо для текстов, исполняемых файлов, баз данных, где любое изменение данных недопустимо.

Сжатие с потерями

В отдельных случаях допускается необратимое изменение данных ради существенного уменьшения размера. Наиболее распространено в мультимедиа:

  • JPEG — сжатие фотографий с удалением деталей, малозаметных для человеческого зрения;
  • MP3, AAC, Ogg Vorbis — аудиоформаты, отбрасывающие звуки за порогом слышимости;
  • H.264, H.265 (HEVC), AV1 — видеокодеки, использующие межкадровое предсказание и квантование.

Степень сжатия регулируется пользователем или программой: чем выше, тем меньше файл, но и тем ниже качество.

Архивация

Самый распространённый способ уменьшить объём группы файлов — упаковать их в архив. Популярные форматы:

ФорматТип сжатияОсобенности
ZIPбез потерьШироко поддерживается, допускает шифрование
RARбез потерьВысокая степень сжатия, проприетарный
7zбез потерьОткрытый, максимальная степень сжатия
GZIP, BZ2, XZбез потерьСтандартны в Linux-системах
TAR.GZ, TAR.BZ2без потерьОбъединение нескольких файлов + сжатие

Архивация эффективна для текстов, таблиц, программных пакетов. Для уже сжатых форматов (JPEG, MP4) повторное сжатие почти не даёт выигрыша.

Уменьшение размера изображений

Изображения — один из основных источников «тяжёлых» файлов. Основные способы уменьшить их объём:

  1. Смена формата — переход с PNG на JPEG или WebP, с BMP на что-либо компактное.
  2. Снижение разрешения — уменьшение ширины и высоты в пикселях. Файл 4000×3000 при уменьшении до 1200×900 сжимается в несколько раз.
  3. Снижение качества — регулировка коэффициента квантования в JPEG (обычно 60–85 % достаточно для веба).
  4. Удаление метаданных — EXIF-данные камеры, GPS-координаты, профили ICC могут занимать десятки килобайт.
  5. Использование прогрессивного или сжатого варианта — Progressive JPEG, оптимизация PNG через инструменты типа pngquant.

Уменьшение размера видео

Видеофайлы обычно самые объёмные. Методы уменьшения:

  • Перекодирование в более эффективный кодек — переход с MJPEG или старого MPEG-2 на H.264/H.265/AV1.
  • Снижение битрейта — уменьшение количества бит на секунду (например, с 20 Мбит/с до 5 Мбит/с).
  • Уменьшение разрешения — с 4K на 1080p или 720p.
  • Снижение частоты кадров — с 60 fps до 30 fps.
  • Обрезка ненужных фрагментов — удаление начал и концов, чёрных кадров.
  • Удаление или пережатие звуковой дорожки — переход на AAC с меньшим битрейтом.

Инструменты: FFmpeg (командная строка), HandBrake, XMedia Recode.

Уменьшение размера PDF

Документы PDF нередко содержат встроенные шрифты, растровые копии векторной графики и сканы высокого разрешения. Способы уменьшения:

  • Сжатие изображений внутри PDF (понижение DPI до 150–200).
  • Удаление встроенных шрифтов или замена на стандартные.
  • Удаление скрытых слоёв, метаданных, якорей.
  • Пересохранение через Acrobat, Ghostscript (команда gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook), SmallPDF, ILovePDF.

Уменьшение объёма текстовых файлов

Для текстов и документов:

  • Сохранение в формате с сжатием (DOCX, ODT, EPUB — это ZIP-контейнеры).
  • Удаление форматирования, картинок, скрытых элементов.
  • Конвертация из сканированного PDF в текстовый формат (OCR-распознавание убирает растровые страницы).
  • Применение более эффективной кодировки (UTF-8 вместо UTF-16 для латиницы).

Инструменты и программы

ЗадачаИнструменты
Архивация7-Zip, WinRAR, WinZip, PeaZip
ИзображенияXnConvert, RIOT, ImageMagick, Squoosh
ВидеоHandBrake, FFmpeg, Avidemux
PDFGhostscript, Adobe Acrobat, PDF24
ДискиCCleaner, BleachBit (очистка мусора)

Ограничения

Сжатие имеет физический предел: данные, уже являющиеся случайными или предварительно сжатыми (JPEG, ZIP, зашифрованные файлы), не уменьшаются. Степень достижимого сжатия оценивается теоремой Шеннона о сжатии произвольных данных. Кроме того, при сжатии с потерями неизбежен компромисс между размером и качеством.

Источники:

  • Шеннон К. «Математическая теория связи»
  • Седов Е. А. «Основы информатики»
  • Документация проектов 7-Zip, FFmpeg, Ghostscript
  • RFC 1951 (DEFLATE), RFC 7932 (Brotli)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru