Статья только в электронной версии журнала
Архиваторы
С. Б.
Уже давно никто не задается вопросом, насколько “плотно” архиваторы пакуют информацию: подразумевается, что революционных новшеств в этой области быть не может.
Однако Джулиан Севард, работающий в европейском исследовательском центре фирмы Canon, а ранее занимавшийся созданием компиляторов для параллельных архитектур, 8 сентября 1998 г. выпустил усовершенствованную версию своего архиватора bzip2-0.9 для Linux, Solaris, SunOS и Windows 95/NT, который пакует данные в среднем на 15% эффективнее. При этом сам процесс сжатия осуществляется в два раза, а распаковки - в шесть раз быстрее, чем в других подобных программах.
Приведу пример. На ПК Pentium/233 МГц/32 Мб ОЗУ я запаковал отладочную библиотеку MFC mafxcwd.lib размером 10,043,000 байт по очереди тремя архиваторами: PkZip 2.01, Arj 2.50 и bzip2-0.9.0b. Первый потратил на паковку 15,5 с и сжал исходный файл на 70%. Arj за 35 с добился результата 70,4%, а bzip2 за 35 с запаковал файл на 76,7%.
По утверждению автора bzip2, преимущества этого архиватора особенно наглядно проявляются при сжатии больших файлов в сотни мегабайт: тогда размер bzip-файлов может быть в несколько раз меньше файлов, запакованных с помощью других архиваторов.
Алгоритм, реализованный в bzip2, позволяет восстанавливать частично поврежденные файлы, что немаловажно при передаче мультимедийной информации через Интернет, когда небольшие сбои при воспроизведении видеоизображения или звука не принципиальны.
Исходные тексты bzip2 (он написан на ANSI C) распространяются, как и сам bzip2, бесплатно. Код организован в виде библиотеки функций, которую можно быстро откомпилировать практически на любой платформе и использовать в своих приложениях. Например, я знаю как минимум одну московскую компанию, без проблем встроившую эту библиотеку в систему обслуживания клиентов через Интернет, существенно снизив объемы передаваемых данных.
Скачать bzip2 и его исходные тексты можно с сайта www.muraroa.demon.co.uk.