Коэффициент сжатия LZW, LZ77 и других простых в реализации алгоритмов
Я хочу сжать .txt
файлы, которые содержат даты в yyyy-mm-dd hh:mm:ss
формат и английские слова, которые иногда имеют тенденцию повторяться в разных строках.
Я прочитал несколько статей об алгоритме сжатия и обнаружил, что в моем случае кодирование на основе словаря лучше, чем кодирование на основе энтропии. Поскольку я хочу реализовать алгоритм самостоятельно, мне нужно что-то не очень сложное. Поэтому я обратил внимание на LZW и LZ77, но не могу выбирать между ними, потому что выводы из найденных статей противоречивы. Согласно некоторым статьям, у LZW более высокая степень сжатия, а по другим - лидер LZ77. Так что вопрос в том, какой из них, скорее всего, будет лучше в моем случае? Есть ли более простые в реализации алгоритмы, которые могут быть полезны для моей цели?
1 ответ
LZW устарел. Современные и даже довольно старые компрессоры LZ77 превосходят LZW.
В любом случае, вы единственный, кто может ответить на ваш вопрос, поскольку только у вас есть примеры данных, которые вы хотите сжать. Просто поэкспериментируйте с различными методами сжатия (zstd, xz, lz4 и т. Д.) В своих данных и посмотрите, какое сочетание степени сжатия и скорости соответствует вашим потребностям.