В современных информационных системах используются алгоритмы сжатия текста, которые можно разделить на два основных типа: сжатие без потерь и сжатие с потерями. 13
Сжатие без потерь позволяет восстановить исходные данные полностью после декомпрессии. 1 Некоторые алгоритмы, которые используются для сжатия текста:
- Run-Length Encoding (RLE). 13 Метод заменяет последовательности повторяющихся символов (или битов) на один символ и счётчик повторов. 1 Используется для сжатия данных с большими участками повторяющихся символов, например, в графике (форматы BMP и TIFF). 1
- Кодирование Хаффмана. 13 Метод основан на создании переменно-длинных кодов для символов, где более частые символы получают более короткие коды. 1 Широко используется в форматах сжатия, таких как ZIP и JPEG. 1
- Lempel-Ziv-Welch (LZW, алгоритм Лемпеля-Зива). 1 Алгоритм создаёт словарь повторяющихся последовательностей в данных и заменяет их кодами. 1 Используется в форматах GIF и некоторых версиях ZIP. 1
- Преобразование Барроуза — Уилера (BWT). 1 Алгоритм переставляет символы в данных таким образом, чтобы повторяющиеся символы оказались рядом. 1 После этого применяются другие методы сжатия, такие как RLE. 1
Сжатие с потерями позволяет значительно уменьшить размер данных за счёт удаления некоторой информации, которая считается несущественной. 1 Некоторые алгоритмы, которые используются для сжатия текста:
- JPEG. 1 Алгоритм сжатия изображений, который уменьшает размер файла путём удаления несущественной для человеческого глаза информации. 1 Используется для фотографий и изображений, где небольшие потери качества несущественны. 1
- MP3. 1 Алгоритм сжатия аудио, который удаляет части звука, которые человеческое ухо не воспринимает. 1 Применяется преобразование Фурье и психоакустическая модель, чтобы удалить избыточные и нерегулярные звуки. 1
- MPEG. 1 Алгоритм сжатия видео, который использует как внутрикадровое сжатие (например, JPEG) для каждого кадра, так и межкадровое сжатие для устранения избыточности между кадрами. 1