Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Алгоритмы сжатия

354
19 сентября 2006 года
ШпиЁн
468 / / 19.02.2006
Господа, я понимаю что вопрос не совсем по теме форума, но все же надеюсь, что модераторы не будут особо зверствовать....

Итак, вопрос очень прост - есть текстовый файл, громадных размеров (прога логи ведет). Каким алгоритмом его ПРОЩЕ сжимать? Мне важен сам алгоритм и его описание.
240
19 сентября 2006 года
aks
2.5K / / 14.07.2006
Если текстовый файл, то наверно какой нибудь из модификаций LZ. На тексте они как раз хороши ибо словарные, и сжимают целые цепочки символов. А так хаффман еще можно, но для текстового всеже лучше попробовать LZW например и сравнить. Поищи их описание в инете - там этого полно и даже я думаю есть реализации. Сейчас писать сюда описание просто лень - конец рабочего дня.
Это если надо быстро написать алгоритм самому. Если же есть необходимость заюзать какие то готовые библиотеки - то тут полно на выбор. Зипом например.
354
19 сентября 2006 года
ШпиЁн
468 / / 19.02.2006
Пасип, похоже буду LZW использовать, кое-что уже нашел. :-)))
547
20 сентября 2006 года
Hydra
488 / / 20.06.2006
Хаффман двухпроходной - для логов наверное неудобно будет.
А LZW у меня че-то тормозной получался.
240
20 сентября 2006 года
aks
2.5K / / 14.07.2006
Ну не знаю, LZW у меня всегда быстро работал. Там главное оптимально подобрать еще максимальную длинну кодового слова и способы отчистки словаря при заполнении. Только его помоему лицензией облагали в отличии от других алгоритмов серии LZ. Помнится одно время из-за этого были гонения на программы работающие с gif картнками, так как в gif-ы тоже сжимаются LZW, и как бы авторы любой программы для работы с gif нарушают лицензию и должны платить отчисления. Но это было в еще конце 90-х насколько я помню, может щас недоразумение разрешили уже, ибо к тому времени gif просто заполонил инет.

А по поводу Хаффмана - класический алгоритм Хаффмана действительно двухпроходный, но есть же адаптивный алгоритм Хаффмана. Он как раз и применяется для сжатия потоков (например траффика сетевого). Там дерево статистики строится по ходу получения новых символов и постоянно обновляется. Отсюда кстати и отпадает необходимость сохранять в сжатых данных статистические данные - они сами восстанавливаются в процессе разжатия как в LZW. И результат тоже кстати дает зачастую на уровне классического Хаффмана.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог