Алгоритм сжатия данных при работе с Unicode работает следующим образом:
- Входные данные рассматриваются как серия 16-битных единиц, а не произвольных 8-битных данных. unicode.org
- Отсутствует необходимость в скользящем окне, так как все данные уже присутствуют в памяти. unicode.org
- Словарь организован в виде хэш-таблицы. unicode.org Хэш составляется из двух последовательных 16-битных символов и служит индексом к массиву указателей на предыдущие вхождения пары символов в тексте. unicode.org
- Не предпринимаются усилия для нахождения самого длинного совпадения или избегания конфликтов в хэшах. unicode.org Это приводит к худшему коэффициенту сжатия, но к более высокой производительности. unicode.org
- Найдённые по хэшу символы просто сравниваются, чтобы найти длину совпадения, после чего хэш обновляется, чтобы указывать на текущее расположение. unicode.org
Также для сжатия данных при работе с Unicode может использоваться групповое кодирование (Run Length Encoding, RLE). studfile.net В нём сжатие происходит за счёт замены цепочек одинаковых байт на пары «счётчик, значение». studfile.net