bzip2の後継の圧縮アルゴリズムのbzip3の紹介

bzip3とは

bzip3は、2022年に登場した圧縮アルゴリズムです。 bzip2の後継を謳っており、連長圧縮(RLE)とLempel-Ziv + Prediction(LZP)、それに続くブロックソート(BWT)と算術符号を使用することによる高い圧縮率と優れたパフォーマンスを特徴としています。

リファレンス実装はC言語で書かれており、GNU Lesser General Public License v3.0(またはそれ以降)に基づいて配布されています。

リファレンス実装

https://github.com/kspalaiologos/bzip3

インストール方法

Packaging status

多くのOSの公式リポジトリでパッケージが提供されているので簡単にインストールすることができます。

使い方

他の圧縮アルゴリズムと同様に、それを実装したライブラリに加えて、ファイルの圧縮などを行うためのコマンドラインユーティリティが提供されています。

基本的にオプションはgzipなどと同様ですが、圧縮レベルを指定するオプション(-1--best)はbzip3では機能しないことから、バージョン1.4.0の時点では意図的に実装されていません1。 圧縮率は-bまたは--blockでブロックサイズを設定することで変化する場合があります。

また、xzzstdなどと同様に並列処理に対応しており、-jまたは--jobsで使用するスレッド数を指定することができます。

圧縮

1
bzip3 README.md

展開

1
2
3
bzip3 -d README.md.bz3
# または
bunzip3 README.md.bz3

他の圧縮アルゴリズムとの比較

Git 2.43.0のtarballを使用して他の圧縮アルゴリズムとの比較を行いました。 全てデフォルトの圧縮レベルでシングルスレッドで実行しています。

元のファイルサイズ

44.2 MiB (46,346,240 B)

圧縮

CommandMean [s]Min [s]Max [s]Relative
bzip2 git-2.43.0.tar5.301 ± 0.0605.2165.3851.00
bzip3 git-2.43.0.tar5.421 ± 0.0205.3875.4601.00
gzip git-2.43.0.tar1.864 ± 0.0261.8341.9231.00
xz git-2.43.0.tar20.552 ± 0.10520.38820.6881.00
zstd git-2.43.0.tar0.324 ± 0.0050.3160.3331.00

圧縮速度の比較

展開

CommandMean [s]Min [s]Max [s]Relative
bunzip2 git-2.43.0.tar.bz21.972 ± 0.0491.9272.0781.00
bunzip3 git-2.43.0.tar.bz35.234 ± 0.0275.1925.2811.00
gunzip git-2.43.0.tar.gz0.312 ± 0.0020.3090.3151.00
unxz git-2.43.0.tar.xz0.540 ± 0.0060.5320.5491.00
unzstd git-2.43.0.tar.zst0.072 ± 0.0030.0670.0831.00

展開速度の比較

圧縮後のファイルサイズ

FormatResult [MiB]Result [B]Compression Ratio
bzip28.28,624,6085.374
bzip36.66,888,0616.728
gzip10.511,021,0054.205
xz7.07,352,9126.303
zstd9.810,298,8314.500

圧縮比の比較

使用したコマンドのバージョン

CommandVersion
bzip21.0.8
bzip31.4.0
gzip1.13
xz5.4.5
zstd1.5.5

これらの結果とリファレンス実装のREADME.mdにあるベンチマークの結果を見た感じでは、xz以上の圧縮率をそれよりも短い時間で実現できるようです。

ソフトウェアの対応状況

fileのバージョン5.44以降はbzip3形式のファイルを認識することができます2

終わりに

圧縮率が高いことやbzip2とは異なり並列処理に対応していることから、圧縮率が重要な場合にbzip2xzの代わりの選択肢になるかもしれないと思いました。 多くのOSの公式リポジトリでパッケージが提供されているので気軽に使い始めることができそうです。

この記事はCC BY 4.0の下でライセンスされています
最終更新 2024年9月13日 20:19 +0900
Hugo で構築されています。
テーマ StackJimmy によって設計されています。