Для текстовых файлов чаще всего используют сжатие без потерь, при котором восстановленная информация в точности соответствует исходной. 14
Некоторые методы сжатия данных для текстовых файлов:
- Кодирование длин серий (RLE). 5 Вместо записи одинаковых символов несколько раз подряд, их заменяют указанием числа повторов и символа. 5 Например, строка «AAAAAAABBBCCDD» становится «7A3B2C2D». 5
- Кодирование Хаффмана. 5 Создаётся таблица частот символов, где самые часто встречающиеся символы заменяются короткими последовательностями битов, а редкие — более длинными. 5
- Словарные методы. 3 Повторяющиеся последовательности символов заменяются на короткие кодовые слова, которые хранятся в словаре. 3 Примеры: алгоритмы LZ77/LZ78, LZW (Lempel-Ziv-Welch). 3
- Алгоритм DEFLATE. 3 Комбинирует методы словарного сжатия и кодирования Хаффмана. 3 Вначале текст сжимается методом LZ77, а затем оставшаяся избыточность кодируется с помощью алгоритма Хаффмана. 3
Для достижения лучших результатов алгоритмы сжатия иногда комбинируют. 5 Например, в ZIP-файлах может использоваться LZW для создания словаря, а потом данные могут быть дополнительно упакованы методом Хаффмана. 5