Для уменьшения объёма данных в информационных системах используют сжатие данных (компрессию). 24 Это процесс, при котором удаляются избыточные фрагменты, не влияющие на главную идею, значение или функциональность данных. 2
Существуют два основных типа сжатия: 2
- Без потерь. 2 После распаковки восстанавливается исходная структура файла без каких-либо изменений. 2 Такой тип популярен в системах, где точность крайне важна, например, при хранении критически важных документов, архивов с программным кодом или аналитических отчётов. 2
- С потерями. 2 Допускает определённое искажение, чтобы достичь высокого коэффициента уменьшения объёма. 2 Основная сфера применения — аудио, видео, графика, где незначительное снижение качества часто приемлемо ради экономии пространства. 2
Некоторые алгоритмы сжатия данных:
- Huffman coding. 2 Базируется на частоте встречаемости символов, строит эффективную кодовую таблицу и подходит в основном для текстовых материалов. 2
- LZ77, LZ78, LZW. 2 Целое семейство алгоритмов, где применяется поиск и замена повторяющихся последовательностей. 2 Широко используется для сжатия архивов и в СХД, так как даёт хороший баланс между скоростью и эффективностью. 2
- BZIP2. 2 Сочетает блочное сжатие и методику Burrows–Wheeler transform, показывая высокую степень уменьшения размера, но иногда требует больше ресурсов. 2
- Deflate. 2 Основан на комбинации LZ77 и Huffman, часто встречается во множестве форматах, например, в ZIP-архивах. 2
- Zstandard (zstd). 2 Отличается очень высокой скоростью работы и эффективностью, особенно важен для современных корпоративных решений, где необходимо быстро обрабатывать большой объём данных. 2
- JPEG, MPEG-4. 2 Алгоритмы с потерями, применяемые для изображений и видео. 2 Позволяют достичь крайне высоких коэффициентов уменьшения за счёт допустимого снижения качества. 2
Выбор алгоритма сжатия должен основываться на различных факторах, включая не только коэффициент сжатия, но и время, требуемое для сжатия и распаковки данных, а также требования по сохранению качества. 4