Расширение файла .BZ2
Файлы с расширением .BZ2 сжимаются с использованием алгоритма BZIP2. Этот бесплатный инструмент с открытым исходным кодом, разработанный Джулианом Сьюардом, обеспечивает впечатляющую степень сжатия, что делает его идеальным для сжатия больших файлов или наборов данных. В отличие от таких форматов архивов, как ZIP , BZIP2 сжимает только отдельные файлы. К счастью, создавать и извлекать файлы BZ2 легко с помощью большинства файловых архиваторов, поддерживающих этот формат. Эффективность BZIP2 как при сжатии, так и при распаковке сделала его популярным выбором для распространения программного обеспечения, резервного копирования данных и передачи через Интернет.
Об архиве BZIP2
Подобно GZIP , BZ2 служит компрессором данных, но ему не хватает универсальности таких архиваторов, как TAR или ZIP. В отличие от этих форматов, BZIP2 не поддерживает сжатие нескольких файлов в один архив, а также не предлагает функции шифрования или разделения архива. В традициях UNIX архивирование обычно выполняется отдельно, а BZIP2 используется исключительно для сжатия. Однако распаковка с помощью BZIP2 особенно эффективна, особенно по сравнению с более медленной скоростью сжатия. Чтобы устранить этот дисбаланс, в 2003 году появилась модифицированная версия под названием PBZIP2, использующая многопоточность для значительного улучшения времени сжатия в современных многопроцессорных и многоядерных системах.
Информация об истории формата архивного файла .BZ2
Формат файла .BZ2, связанный со сжатием BZIP2, берет свое начало от усилий Джулиана Сьюарда по разработке в конце 1990-х годов в сообществе UNIX. За прошедшие годы алгоритм претерпел несколько изменений в обслуживании, и в июне 2021 года его обязанности взял на себя Мика Снайдер. Одновременно с этой эволюцией появились такие модификации, как PBZIP2, в которых используются возможности многопоточности для повышения скорости сжатия на современных многопроцессорных устройствах. и многоядерные системы. Несмотря на эти достижения, основные принципы формата .BZ2 по-прежнему основаны на эффективном использовании преобразования Берроуза-Уиллера, преобразования движения вперед и методов кодирования Хаффмана.
Структура архива BZIP2
BZIP2 использует блочное сжатие, обычно сжимая данные блоками размером от 100 до 900 КБ. Он использует преобразование Берроуза-Уиллера для преобразования повторяющихся последовательностей символов в строки одинаковых букв с последующим преобразованием движения вперед и кодированием Хаффмана. Примечательно, что его предшественник, bzip, для сжатия использовал арифметическое кодирование вместо метода Хаффмана.
Методы сжатия BZIP2
К сожалению, в BZIP2 отсутствует тот разнообразный набор методов сжатия, который имеется в некоторых его аналогах. Вместо этого он опирается на уникальный, тщательно разработанный подход к сжатию данных. Эта техника характеризуется:
- Сортировка блоков: BZIP2 делит данные на более мелкие блоки для индивидуального сжатия.
- Преобразование Берроуза-Уиллера: На этом этапе данные внутри каждого блока переупорядочиваются для повышения эффективности сжатия за счет выявления повторяющихся шаблонов.
- Движение назад: Затем алгоритм выполняет итерацию преобразованных данных в обратном направлении, применяя кодирование Хаффмана для дальнейшего сжатия.
- Кодирование по длине серии. Этот метод идентифицирует и кодирует повторяющиеся символы в блоках данных для дополнительной экономии места.
Операции, поддерживаемые архивом BZIP2
Aspose.ZIP облегчает ряд операций с файловыми архивами .BZ2, включая извлечение, сжатие, упаковку файлов, слияние и преобразование архивов. Пользователи могут легко извлекать данные из архивов .BZ2, сжимать файлы, объединять архивы и легко конвертировать между различными форматами архивов. Кроме того, Aspose.ZIP поддерживает разделение больших архивов .BZ2 на несколько томов для улучшения управляемости и эффективности хранения.
BZIP2 — Внутренняя структура
Хотя официальной спецификации bzip2 не существует, неофициальная спецификация была получена путем обратного проектирования эталонной реализации. По сути, поток .bz2 начинается с краткого 4-байтового заголовка, за которым следует любое количество сжатых блоков, которые плавно завершаются маркером конца потока, содержащим 32-битную контрольную сумму CRC для всего обработанного потока открытого текста. Примечательно, что сжатые блоки выравниваются по битовому уровню без необходимости дополнительного заполнения. Эта оптимизированная структура подчеркивает эффективность и простоту формата сжатия bzip2.
После сжатия RLE на начальном этапе (см. выше) максимальная длина несжатого текста, который может поместиться в один блок размером 900 КБ в bzip2, составляет примерно 46 МБ (45 899 236 байт). Этот сценарий возникает, когда весь несжатый текст полностью состоит из повторяющихся значений (в результате получается файл .bz2 размером всего 46 байт). Файлы даже меньшего размера, всего 40 байт, можно получить, используя входные данные, полностью состоящие из значения 251, что приводит к поразительной степени сжатия 1 147 480,9:1. Это замечательное достижение демонстрирует невероятную эффективность и универсальность алгоритма сжатия bzip2.
Популярность архива и поддержки BZIP2
Архивы .BZ2, хотя и не так распространены, как форматы .ZIP или .7z , все же находят полезность в определенных приложениях, особенно в средах Unix и Linux. Они предлагают мощные возможности сжатия и хорошо поддерживаются различными операционными системами и программными инструментами. Несмотря на свой нишевый статус, архивы BZIP2 остаются надежным выбором для упаковки дистрибутивов программного обеспечения и резервного копирования данных. Поддержка файлов .BZ2 широко распространена: многие инструменты архивирования и языки сценариев предлагают встроенные функции для их создания и извлечения. Однако по мере появления новых алгоритмов сжатия популярность и использование архивов BZIP2 могут продолжать развиваться.
Примеры использования BZIP2
Aspose.ZIP выводит сжатие Bzip2 на новый уровень. Используя мощность параллельной обработки вашего процессора, Aspose.ZIP может разделить рабочую нагрузку сжатия между несколькими ядрами. Это приводит к значительно более быстрому сжатию, особенно для больших наборов данных. Активировать параллельное сжатие с помощью Aspose.ZIP так же просто, как установить для свойства CompressionThreads значение больше 1.
Parallel Compression for BZ2 Files
This simple configuration unlocks the full potential of your multi-core processor, dramatically accelerating your Bzip2 compression tasks.
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource("data.bin");
archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads = Environment.ProcessorCount });
}
Bzip2SaveOptions.CompressionThreads property
This setting controls the number of compression threads. When set to a value greater than 1, multithreading compression is activated. Read more .
public int CompressionThreads { get; set; }
Дополнительная информация о BZIP2-архивах
- BZIP орг
- Bzip2Archive методы, классы и конструкторы.
- Создать Tar.BZ2 онлайн
Часто Задаваемые Вопросы
1. Безопасен ли BZIP2? Может ли он шифровать файлы?
Это решает общую проблему безопасности данных. Важно уточнить, что BZIP2 сам по себе не поддерживает шифрование. Пользователям может понадобиться отдельный инструмент для шифрования файлов перед их сжатием с помощью BZIP2. Например, надежные пароли можно сгенерировать для ранее созданных архивов с помощью отдельных инструментов шифрования.
2. Каковы преимущества и ограничения использования сжатия BZIP2?
Основным преимуществом BZIP2 является его способность достигать высоких степеней сжатия, но для этого может потребоваться больше вычислительных ресурсов и времени по сравнению с другими алгоритмами. Кроме того, архивы BZIP2 не поддерживают хранение нескольких файлов в одном сжатом файле .
3. В чем разница между BZIP2 и такими форматами архивов, как ZIP или TAR?
Это очень важно, поскольку BZIP2 сжимает только отдельные файлы, в отличие от ZIP и TAR, которые могут архивировать несколько файлов в один пакет. Чтобы устранить это ограничение, вы можете использовать API-интерфейсы Aspose.ZIP для добавления файлов в ZIP-архивы без сжатия .