Алгоритмы сжатия данных при кодировании текста работают на основе устранения избыточности, содержащейся в исходных данных. 2 Простейший пример избыточности — повторение в тексте фрагментов (например, слов естественного или машинного языка). 2 Подобная избыточность обычно устраняется заменой повторяющейся последовательности ссылкой на уже закодированный фрагмент с указанием его длины. 2
Другой вид избыточности связан с тем, что некоторые значения в сжимаемых данных встречаются чаще других. 2 Сокращение объёма данных достигается за счёт замены часто встречающихся данных короткими кодовыми словами, а редких — длинными. 2
Например, в алгоритме LZW процесс сжатия выглядит так: последовательно считываются символы входного потока и происходит проверка, существует ли в созданной таблице строк такая строка. 1 Если такая строка существует, считывается следующий символ, а если строка не существует, в поток заносится код для предыдущей найденной строки, строка заносится в таблицу, а поиск начинается снова. 1