Все методы трансформации текста естественно распадаются на две группы: диссипативные, связанные с потерей информации (аннотирование, реферирование, компиляция, сжатие данных с потерями - lossy data compression) и консервативные, без потерь информации (перевод с одного языка на другой, шифрование, сжатие данных без потерь - lossless data compression) .
Эксплуатируя ту же самую идею повторяющихся токенов, LZ2 отличается от LZ1 в двух важных аспектах: во-первых, словарь строк выделен теперь в отдельный объект и, во-вторых, сами словарные входы (паттерны) конструируются теперь по-другому.
Однажды Ходжу Насреддина спросили: - Как строятся самые высокие минареты? - Очень просто, - ответил тот. - Роют глубокий колодец, а потом выворачивают его наизнанку.
Алгоритм компрессии данных Давида Хаффмана ("Трансформатор Хаффмана") описан в сотнях (если не тысячах) статей, но я не знаю ни одной, где это было бы сделано правильно :-)