bzip3

2026/09/07 22:35

bzip3

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Bzip3 は、高い圧縮比とより優れた性能を提供し、順序 0 コンテキストミックスエントロピーコーダー、サフィックス配列による高速な Burrows-Wheeler 変換 (libsais)、RLE、予測を伴う Lempel-Ziv、ラン長符号化を用いた BZip2 の精神的後継者として提示されています。Perl ソースコードに対するベンチマークでは、Bzip3(

-b 511
フラグを使用)は約 262 MB のアーカイブを 7 分 8 秒で 546,456,978 バイトに圧縮し、LZMA (xz) が 2'056'645'240 バイト、bzip2 が 3'441'163,911 バイトとなるのに対し優れています。WD Blue HDD(並列処理)における復旧性能は、Bzip3 で 4 分 6 秒、LZMA で 4 分 40 秒、bzip2 で 9 分 22 秒であり、Bzip3 が最も速いです。lrzip の重複排除機能と組み合わせるパイプラインでは、ファイルサイズを 60'672,608 バイトに削減でき、bzip2(75'685,065 バイト)よりも優れ、LZMA(64'774,202 バイト)とほぼ同等のパフォーマンスを示しました。性能はコンパイラ依存であり、x64 Linux 上の clang13 でビルドした場合、スレッドあたり圧縮速度が最大 17 MiB/s、復旧速度が 23 MiB/s に達しますが、Windows および 32 ビットビルドでは低速です。Bzip3 は x86、x86_64、armv6/7、aarch64、ppc64le、mips/mips64、sparc、s390x の多数のアーキテクチャをサポートしており、古い 32 ビットシステムでも動作しますが、それでは速度が遅くなります。Linux へのインストールには
./bootstrap.sh
./configure
make
sudo make install
の手順を、macOS では Homebrew を通じて行うことができます。プロジェクト全体は LGPLv3 ライセンスを採用しており、libsais は Apache 2.0(Ilya Grebnov)、build-aux コンポーネントは GPL-3+ に AutoConf の例外と FSFAP が適用されています(貢献者には Daniel Richard G と Marc Stevens が含まれます)。クレジットは Ilya Grebnov(libsais)、Caleb Maclennan(autotools 設定)、Ilya Muravyov(BWT 後部コーダー)に寄ります。著者は、広範なテストを施しているにもかかわらず低確率のバグを完全に排除することは不可能であり、データ損失に対して責任を負わない旨警告しており、重要な環境では注意が必要であると述べています。全体として、ライセンス制約を遵守し、安定性のリスクを理解すれば、重複排除パイプラインに適した高パフォーマンスの圧縮代替手段としての Bzip3 が提供されています。

本文

BZip3:高性能で強力なデータ圧縮ソフトウェア

BZip2 の精神的後継者であり、より高性能・高速・強力なデータを圧縮するソフトウェアです。

技術的特徴

  • 0 次文脈混合エントロピー符号化器: より効率的な情報圧縮を実現。
  • Burrows-Wheeler 変換 (BWT): サフィックス配列を活用し、超高速な処理を可能にします。
  • ハイブリッドなアルゴリズム:
    • LZ77 方式による文字列一致探索
    • PPM(文脈予測モデル)様式に基づく RLE(レランニングエリミネーション)
    • Lempel-Ziv+Prediction パス
  • これらの組み合わせにより、高い圧縮率と優れたパフォーマンスを両立します。
  • テキストやコードの圧縮において、先祖である BZip2 と同様に卓越した性能を発揮します。

インストール方法

ソースからインストール(Git クローン時)

ソースパッケージを使用する場合は不要ですが、以下の手順でビルド・インストールを行います。

# 1. コンフィギュレーション
$ ./bootstrap.sh

# 2. ビルド
$ ./configure
$ make

# 3. インストール
$ sudo make install

パッケージマネージャーによるインストール(MacOS)

MacOS では Homebrew を利用して簡単にインストール可能です。

# Homebrew で検索・インストール(具体的なコマンド名は状況により異なる可能性があります)
$ brew install bzip3

ベンチマーク結果:Perl ソースコード圧縮

これまでリリースされたPerl5 の全バージョンをダウンロード・解凍し、各種圧縮ツールの性能を比較しました。

環境とデータ量

  • データ量:262 ファイル(合計約数 GB)
  • ハードディスク:WD Blue HDD

圧縮速度と結果比較

圧縮ツールコマンド引数例圧縮時間 (Total)CPU/メモリ負荷圧縮後のサイズ
LZMA (xz)
-T16 -9
12:09.241488% / 14885M2'056'645'240 bytes
bzip2
-9
17:16.6495% / 8M3'441'163'911 bytes
bzip3 (
-b 256
)
-e -b 256 -j 12
7:10.10634% / 18301M1'001'957'587 bytes
bzip3 (
-b 511
)
-e -b 511 -j 4
7:08.65170% / 12178M546'456'978 bytes
Zstandard
-T12 -16
6:35.621056% / 687M3'076'143'660 bytes

【圧縮率の勝敗】 最も圧縮率が高かったのは

bzip3 -b 511
です。

  • bzip3 (
    -b 511
    ) のサイズは、xz や Zstandard よりも圧倒的に小さく、bzip2 の約 1/6 の体積です。

解凍速度比較(ウォールクロック時間)

圧縮ツール解凍時間
Zstandard3 分 51 秒
bzip3 (並列処理)4 分 6 秒
LZMA (xz)4 分 40 秒
bzip29 分 22 秒

ベンチマーク:lrzip との組み合わせ(重複排除+圧縮)

元の

.tar
ファイルに対し、
lrzip
で長距離の重複排除を行い、その後で最終的な圧縮を行いました。

1. lrzip による重複排除時間

対象コマンド時間 (Total)
無圧縮 (
-n
)
lrzip -o all_none.tar.lrz
11:28.00
LZMA
lrzip --lzma -o ...
11:44.83
bzip2
lrzip -b -o ...
10:34.10

2. 最終圧縮結果(lrzip + 最終圧縮)

生成された

all_none.tar.lrz
をさらに
bzip3
で圧縮しました。

方法圧縮後のサイズ
lrzip + bzip360'672'608 bytes ⚡ (最小)
lrzip + lzma64'774'202 bytes
lrzip + bzip275'685'065 bytes

【結論】 重複排除処理を行った上で

bzip3
を適用すると、他のアルゴリズムに比べて極めて小さいファイルサイズが達成可能であることを確認できました。

補足: Turbo-Range-Coder および BSC に関する詳細なベンチマークについては、powturbo プロジェクトの公式ページをご参照ください。


免責事項と信頼性について

本プログラムまたはライブラリを使用することにより生じるあらゆるデータ損失について、いかなる場合でも責任を負いません

  • 前提条件: データを圧縮することは、「元に戻せる(解凍可能)」という前提に基づいています。
  • バグの可能性: アルゴリズムの複雑さや極稀な特別事例のため、プログラムに残るバグを 100% 排除することは不可能です。
  • 利用条件: データ損失のリスクを受け入れ、回復不能になった場合でも許容する覚悟がある場合のみ、本プログラムを使ってください。
  • 信頼性の真実: 本プログラムは**「信頼性が低いもの」ではありません**。むしろ、慎重に構築され、広範にテストされている高品質なソフトウェアです。

パフォーマンスの依存要因

BZip3 の性能はコンパイラや環境に大きく影響します。

  • 推奨環境: x64 Linux (clang13)
    • 圧縮速度: スレッドあたり約 17 MiB/s
    • 解凍速度: スレッドあたり約 23 MiB/s
  • 避けるべき環境: Windows、32 ビット系のビルド(著しく低速化する可能性あり)

サポートされるアーキテクチャ

x86, x86_64, armv6, armv7, aarch64, ppc64le, mips, mips64, sparc, s390x

詳細なベンチマーク結果は etc/BENCHMARKS.md を参照してください。


ライセンス情報

bzip3 の全体ライセンスは LGPLv3 です。 LGPLv3 と Apache 2.0 のデュアルライセンスではなく、単一の LGPLv3 ライセンスです。

各コンポーネントの詳細ライセンス内訳:

コンポーネントリンカー依存性コピーライトライセンス
コード全体実行時2022-2023 Kamila SzewczykLGPL
BWT 変換 (libsais) & LZP実行時2021-2022 Ilya GrebnovApache 2.0
build-aux (構成スクリプト等)コンパイル時2008-2019 複数開発者GPL-3+ (AutoConf 例外付き)
ax_check_compile_flag.m4コンパイル時2008-2011 Guido U. Draheim/Maarten BosmansFSFAP
git-version-genコンパイル時2007-2012 Free Software FoundationGPLv3
bz3grep実行時2003 Thomas KlausnerBSD-2-Clause

お礼(Credits)

以下の皆様に感謝申し上げます:

  • Ilya Grebnov:
    libsais
    ライブラリを提供し、BWT 構築および LZP エンコーダーに貢献されました。また、実装の参考となり大変助かりました。
  • Caleb Maclennan: autotools を用いたパッカーフレンドリーなビルドシステムの構築を支援してくださいました。
  • Ilya Muravyov: パブリックドメインの BWT ポストコーダーを提供し、プロジェクトで使用されている派生機能に貢献されました。

同じ日のほかのニュース

一覧に戻る →

2026/09/08 3:52

ロサンゼルスが一つ一つのビル建設を通じて発展していく姿を見てください(1880 年~2026 年)

## Japanese Translation: 本テキストは、ロサンゼルス独自の視覚マップを説明している。既存の構造物それぞれが建設年によって配置された一つの箱として表現されており、現在も存続している建物のみが含まれ、取り壊されたものは除外されている。その結果、この可視化は都市の歴史的景観や完全なタイムラインではなく、現在の建築環境を示している。これは生存する建築への明確な年代的概要を提供する一方で、過去の構造物や将来の開発については洞察を与えず、ロサンゼルの進化を現在にのみ焦点を当てており不完全な画像として提示する。 ## Text to translate : This text describes a unique visual map of Los Angeles where each existing structure is shown as one box arranged by its construction year. Only buildings still standing today are included; those that have been demolished are excluded. As a result, the visualization shows the current built environment rather than the city's historical appearance or full timeline. While it provides a clear chronological overview of surviving architecture, it offers no insight into former structures or future developments, presenting an incomplete picture of Los Angeles's evolution by focusing solely on the present.

2026/09/05 20:25

Linux ディストリビューション全体に対する信頼を誤用した攻撃 (Trust-Trust Attack)

## Japanese Translation: Ken Thompson の「信頼の連鎖」攻撃は、以前はコンパイラレベルでの改ざんが必要とされていたものが、GNU strip 内でも実行可能であることを実証した。本研究では、GNU strip が完成済みの ELF ファイルを改変することで、ソースコードを確認せず・改変せずにも、Linux 全体のビルド環境に永続的なバックドアを埋め込むことを示している。NixOS のブートストラッププロセスにおいて、バイナリシードに含まれる GNU strip の単一のパッチ済みバージョンによってペイロードが挿入され、それが次のビルド世代へと伝播し、シードが依存関係の閉じ外に出た後の最終的な標準環境においても存続する。実際の nixpkgs リビジョンにおいて、この攻撃は障害なく完全なグラフィカルインストールメディアを構築でき、任意の悪意のある挙動を行う汚染されたバイナリを生み出した。この発見は、NixOS のような不変系ディストリビューションに依存するユーザーや組織に対し、一見安全なツールが大規模な侵害の主要なベクトルとなるリスクを提起している。この研究成果は Aman Sharma(メール:[メールを表示])によって提出され、UTC 2026 年 7 月 27 日 12:59:15 に投稿された(バージョン 1)。

2026/09/04 1:06

WeatherNext 3

## 日本語翻訳: ## サマリー:Google は、年間毎日ごとに正確な時間ごとの予報を生成する、これまで最も高度な全球気象 AI モデル「WeatherNext 3」をローンチしました。以前のモデルとは異なり、本モデルは生きた衛星画像を直接分析することで、降雨や降雪といった急速な変化を追跡し、トレーニングが施されたことのない場所であっても精密なローカルデータを提供します。この機能は、ジャマイカでのハリケーンメリサの上陸地点を特定して予測することを支援するなど、最近のイベントにおいて極めて重要であることを実証しました。Google Search、Maps、Gemini などの日常的な消費者向け利用に加え、WeatherNext 3 は風力発電所や太陽光発電所向けの放射線量および雲量予測という重要な産業用途に最適化されています。これにより、運営者は運用コストを削減しながら再生可能エネルギー源をより効率的に管理できるようになります。また、温度などの地表変数を 5km〜10km の高精度で予測することで、インフラがより信頼性高く動作するよう確保するとともに、ユーザーには日々の意思決定を賢く行うための精密なローカルデータを提供します。

bzip3 | そっか~ニュース