Алгоритм сжатия с заранее определённым словарём
Существует ли алгоритм сжатия, который позволяет заранее определить словарь, который будет использоваться при распаковке?
То есть:
Я хочу на стороне сервера сжимать статьи про котиков и передавать их на клиент, а значит я заранее определяю словарь:
Котик, кошечка, ми-ми-ми, мусик ...
Этот словарь получает и сервер и клиент, он не изменяется более никогда, либо изменяется по взаимному договору клиента и сервера.
Теперь при сжатии алгоритм использует заранее сформированный словарь (плюс, если требуется, создаёт дополнительный словарь конкретно для сжимаемых данных).
Ответы (1 шт):
ZSTD так умеет. Сначала обучаете его на примерных данных, потом - в бой
Сжатие со словарём:
Создание словаря:
zstd --train FullPathToTrainingSet/* -o dictionaryName
Сжатие со словарём:
zstd -D dictionaryName FILE
Распаковка со словарём:
zstd -D dictionaryName --decompress FILE.zst