bzip2 - это переписанная и переработанная версия 0.21. Это выглядит внешне довольно похоже, но было почти полностью переписано (несколько раз :-). Важными отличиями являются:
Патентно-бесплатно! (Надеюсь; см. Утверждение выше). bzip-0.21 используется арифметическое кодирование; bzip2 использует кодирование Хаффмана, которое, как правило, считается проблематичным с точки зрения патента. Обе программы основаны на преобразовании Берроуза-Уилера, но, насколько мне известно, это также не запатентовано.
Быстрее, особенно при декомпрессии. bzip2 распаковывает более чем на 50% быстрее, чем 0,21, в основном из-за использования кодирования Хаффмана. Я также улучшил скорость сжатия, хотя и не так сильно - возможно, он сжимается на 30% быстрее, чем 0,21.
Восстановление от ошибок носителя. Обе программы сжимают данные в блоки по умолчанию длиной 900 КБ. С bzip2 каждый блок обрабатывается полностью независимо, имеет свою собственную контрольную сумму и ограничен 48-битной последовательностью. Таким образом, если у вас есть поврежденный сжатый файл, bzip2 может извлечь сжатые блоки, определить, какие из них не повреждены, и распаковать их.
Тестовый режим. Вы можете проверить целостность сжатых файлов, не распаковывая их. Я должен был поставить это в 0.21, правда, но было слишком лениво (+ сгорело от взлома к тому времени, как я его выпустил).
Обрабатывает очень повторяющиеся файлы гораздо лучше. Такие файлы являются худшим случаем для любого компрессора с сортировкой блоков. bzip2 работает примерно в десять раз быстрее, чем 0,21 для таких файлов.
Поддержка для небольших машин. bzip2 может распаковать любой файл, который он создает в 2300k, что означает, что вы можете распаковать файлы на 4-мегабайтных компьютерах. Пиковое использование памяти во время сжатия также уменьшено примерно на 900 КБ по сравнению с 0,21 до 6400 КБ.
Лучшая обработка флага. В частности, поддерживаются длинные флаги (--like --this), что упрощает использование.
Однострочное стартовое сообщение, которое напечатано в 0.21, пропало. Это была самая популярная особенность 0,21. Это даже беспокоит меня в наши дни.
Я больше не распространяю 0.21, потому что это увековечивает проблемы с патентами, что гарантирует, что программа никогда не будет широко использоваться. Это позор, потому что это полезная программа, и многим людям это нравится. Если вы уже используете 0.21, пожалуйста, обновитесь до bzip2. К сожалению, я не могу сделать так, чтобы bzip2 мог распаковывать файлы .bz 0,21, поскольку это сделало бы уклонение от патентов бессмысленным. Я знаю, что изменение форматов файлов является болезненным; с этого момента я постараюсь вносить любые дальнейшие изменения обратно совместимым способом.