名 前
bzip2, bunzip2
− ブ ロ ッ ク ソ
ー ト に よ っ て
フ ァ イ ル を 圧
縮 ・ 伸 長 す る
。 バ ー ジ ョ ン 1.0.6
bzcat − フ ァ イ ル を
標 準 出 力 に 伸
長 す る
bzip2recover − 破 損 し た
bzip2 フ ァ イ ル か ら
デ ー タ を 復 元
す る
書 式
bzip2 [
−cdfkqstvzVL123456789 ] [ filenames ...
]
bzip2 [ −h|−−help ]
bunzip2 [ −fkvsVL ] [ filenames ...
]
bunzip2 [ −h|−−help ]
bzcat [ −s ] [ filenames ... ]
bzcat [ −h|−−help ]
bzip2recover filename
説 明
bzip2 は 、 Burrows−Wheeler ブ ロ ッ ク ソ ー ト テ キ ス ト 圧 縮 ア ル ゴ リ ズ ム と Huffman コ ー ド 化 を 使 っ て フ ァ イ ル を 圧 縮 す る 。 圧 縮 率 は 、 一 般 的 な LZ77/LZ78 ベ ー ス の 圧 縮 率 に 比 べ る と 、 大 抵 の 場 合 で と て も 良 い 。 ま た 、 圧 縮 速 度 は 、 統 計 的 圧 縮 法 で あ る PPM 圧 縮 の 速 度 に 近 づ い て い る 。 コ マ ン ド ラ イ ン オ プ シ ョ ン は GNU gzip の オ プ シ ョ ン に わ ざ と 似 せ て あ る が 、 同 じ で は な い 。
bzip2 は コ マ ン ド ラ イ ン の フ ラ グ を 伴 っ た フ ァ イ ル 名 の リ ス ト を 受 け 取 る 。 各 フ ァ イ ル は 、 "original_name.bz2" と い う 名 前 の 圧 縮 さ れ た フ ァ イ ル に 置 き 換 え ら れ る 。 圧 縮 フ ァ イ ル の 修 正 日 ・ ア ク セ ス 権 ・ (設 定 可 能 な 場 合 の ) 所 有 者 は 、 元 の フ ァ イ ル と 同 じ に な る 。 こ れ に よ り 、 伸 長 時 に 属 性 が 正 し く 復 元 さ れ る 。 フ ァ イ ル 名 の 操 作 は 、 元 の フ ァ イ ル 名 ・ ア ク セ ス 権 ・ 所 有 者 を 保 存 す る 仕 組 み が フ ァ イ ル シ ス テ ム に な か っ た り 、 MS−DOS の よ う に 深 刻 な フ ァ イ ル 名 の 長 さ 制 限 が あ る た め に 、 と て も 面 倒 で あ る 。
bzip2 と bunzip2 は デ フ ォ ル ト で は 既 存 の フ ァ イ ル を 上 書 き し な い 。 上 書 き し た い 場 合 は −f フ ラ グ を 指 定 す る こ と 。 フ ァ イ ル 名 が 指 定 さ れ な い 場 合 、 bzip2 標 準 入 力 を 圧 縮 し て 標 準 出 力 に 書 き 出 す 。 こ の 場 合 、 bzip2 は 圧 縮 さ れ た 出 力 を 端 末 に は 書 き 出 さ な い 。 な ぜ な ら 、 こ の 出 力 は 全 く 分 か り に く く て 、 無 駄 な も の だ か ら で あ る 。
bunzip2 (ま た は bzip2 −d) は 、 指 定 さ れ た 全 て の フ ァ イ ル を 伸 長 す る 。 bzip2 で 圧 縮 さ れ て い な い フ ァ イ ル は 検 知 さ れ 、 無 視 さ れ る 。 さ ら に 警 告 が 出 さ れ る 。 bzip2 は 、 以 下 の よ う に し て 圧 縮 フ ァ イ ル の 名 前 か ら 伸 長 後 の フ ァ イ ル 名 を 推 測 す る 。
filename.bz2
は filename に な る 。
filename.bz は filename に な る
。
filename.tbz2 は filename.tar に な
る 。
filename.tbz は filename.tar に な
る 。
anyothername は anyothername.out に な
る 。 フ ァ イ ル
名 が .bz2, .bz, .tbz2,
.tbz の よ う な 認
識 さ れ る 拡 張
子 の い ず れ か
で 終 っ て い な
い 場 合 、 bzip2 は
元 の フ ァ イ ル
名 が 推 測 で き
な い と い う 警
告 を 出 し 、 .out
を 付 加 し た 名
前 を 元 の フ ァ
イ ル 名 と し て
使 う 。 圧 縮 の
場 合 と 同 様 に
、 フ ァ イ ル 名
が 指 定 さ れ な
い 場 合 は 、 標
準 入 力 を 伸 長
し て 標 準 出 力
に 書 き 出 す 。
bunzip2 は 2 つ 以 上 の 圧 縮 フ ァ イ ル を 連 結 し た フ ァ イ ル で も 正 し く 伸 長 す る 。 伸 長 し て 得 ら れ る フ ァ イ ル は 、 圧 縮 前 の フ ァ イ ル を 連 結 し た も の に な る 。 連 結 し た 圧 縮 フ ァ イ ル の 完 全 性 テ ス ト (−t) も サ ポ ー ト さ れ て い る 。
−c フ ラ グ を 指 定 す る こ と に よ り 、 圧 縮 ・ 伸 長 さ れ た フ ァ イ ル を 標 準 出 力 に 書 き 出 す こ と も で き る 。 こ の フ ラ グ を 指 定 し て 、 複 数 の フ ァ イ ル を 圧 縮 ・ 伸 長 す る こ と が で き る 。 結 果 の 出 力 は 標 準 出 力 に 順 番 に 書 き 出 さ れ る 。 こ の 方 式 に よ る 複 数 フ ァ イ ル の 圧 縮 で は 、 複 数 圧 縮 フ ァ イ ル 表 現 を 含 む ス ト リ ー ム が 生 成 さ れ る 。 こ の よ う な ス ト リ ー ム は 、 バ ー ジ ョ ン 0.9.0 以 降 の bzip2 で し か 正 し く 伸 長 で き な い 。 こ れ よ り 前 の バ ー ジ ョ ン の bzip2 で は ス ト リ ー ム 中 の 最 初 の フ ァ イ ル を 伸 長 し た 後 に 停 止 す る 。
bzcat (ま た は bzip2 −dc) は 指 定 し た 全 て の フ ァ イ ル を 伸 長 し 、 標 準 出 力 に 書 き 出 す 。
bzip2 は 環 境 変 数 BZIP2, BZIP か ら こ の 順 番 で 引 き 数 を 読 み 込 み 、 コ マ ン ド ラ イ ン か ら 読 み 込 ま れ た 引 き 数 よ り も 先 に 処 理 す る 。 こ れ は デ フ ォ ル ト の 引 き 数 を 与 え る 便 利 な 方 法 で あ る 。 圧 縮 後 の フ ァ イ ル が 元 の フ ァ イ ル よ り 少 し 大 き く な る 場 合 で あ っ て も 、 圧 縮 は 常 に 行 わ れ る 。 100 バ イ ト よ り 小 さ い ぐ ら い の フ ァ イ ル は 、 圧 縮 に よ っ て 大 き く な る 傾 向 が あ る 。 な ぜ な ら 、 こ の 圧 縮 メ カ ニ ズ ム が 定 常 的 に 50 バ イ ト の オ ー バ ー ヘ ッ ド を 持 つ た め で あ る 。 (大 部 分 の フ ァ イ ル 圧 縮 法 に よ る 出 力 を 含 む ) ラ ン ダ ム な デ ー タ は 、 1 バ イ ト 当 た り 約 8.05 ビ ッ ト で コ ー ド 化 さ れ 、 約 0.5% 大 き く な る 。 デ ー タ 保 護 の た め の 自 己 チ ェ ッ ク と し て 、 bzip2 は 32 ビ ッ ト CRC を 破 損 し た フ ァ イ ル を 元 の フ ァ イ ル と 同 じ に す る た め に 使 う 。 こ れ に よ り 、 圧 縮 デ ー タ の 破 損 と ま だ 見 つ か っ て い な い bzip2 の バ グ (と て も 少 な い こ と を 期 待 す る ) か ら デ ー タ を 保 護 す る こ と が で き る 。 デ ー タ の 破 損 が 検 知 さ れ な い 確 率 は 非 常 に 少 な く 、 各 フ ァ イ ル 処 理 に つ き 40 億 回 に 1 回 程 度 で あ る 。 し か し 、 こ の チ ェ ッ ク は 伸 長 の と き に し か 行 わ れ な い の で 、 何 か 間 違 い が あ る こ と を 知 ら せ る だ け で あ る 点 に 注 意 す る こ と 。 オ リ ジ ナ ル の 圧 縮 さ れ て い な い デ ー タ を 復 元 す る 助 け に は な ら な い 。 破 損 し た フ ァ イ ル か ら デ ー タ を 復 元 す る た め に は 、 bzip2recover を 使 う こ と が で き る 。 返 り 値 : 正 常 終 了 の 場 合 、 0 が 返 さ れ る 。 実 行 環 境 の 問 題 (フ ァ イ ル が な い ・ 不 正 な フ ラ グ ・ I/O エ ラ ー な ど ) が あ る 場 合 、 1 が 返 さ れ る 。 破 損 し た 圧 縮 フ ァ イ ル の 場 合 、 2 が 返 さ れ る 。 bzip2 に パ ニ ッ ク を 引 き 起 こ す 内 部 整 合 性 エ ラ ー (例 え ば 、 バ グ ) の 場 合 、 3 が 返 さ れ る 。
オ プ シ ョ ン
−c
−−stdout 圧 縮 ・ 伸
長 し た 結 果 を
標 準 出 力 に 書
き 出 す 。
−d −−decompress フ ァ
イ ル の 伸 長 を
さ せ る 。 bzip2,
bunzip2, bzcat は 実 際
に は 同 じ プ ロ
グ ラ ム で あ る
。 ど の 動 作 を
す る の か は 、
ど の 名 前 が 使
わ れ た か に 基
づ い て 決 め ら
れ る 。 こ の フ
ラ グ は 、 そ の
動 作 決 定 機 構
よ り 優 先 さ れ
、 bzip2 に フ ァ イ
ル の 伸 長 を さ
せ る 。
−z −−compress
−d の 反 対 。 起 動 さ れ た 名 前 に か か わ ら ず 、 フ ァ イ ル の 圧 縮 を さ せ る 。
−t
−−test 指 定 さ れ
た フ ァ イ ル の
完 全 性 の チ ェ
ッ ク を す る が
、 伸 長 は し な
い 。 伸 長 テ ス
ト を 行 い 、 結
果 を 破 棄 す る
。
−f −−force 出 力 フ
ァ イ ル の 上 書
き を さ せ る 。
通 常 、 bzip2 は 既
存 の 出 力 フ ァ
イ ル を 上 書 き
し な い 。 さ ら
に bzip2 に フ ァ イ
ル へ の ハ ー ド
リ ン ク を 削 除
さ せ る 。 こ の
オ プ シ ョ ン が
指 定 さ れ て い
な い 場 合 は 、
ハ ー ド リ ン ク
の 削 除 も さ れ
な い 。 通 常 bzip2 は
正 し い マ ジ ッ
ク ヘ ッ ダ バ イ
ト を 持 た な い
フ ァ イ ル を 伸
長 し な い 。 た
だ し (−f) で 強 制
す れ ば 、 こ れ
ら の フ ァ イ ル
も 修 正 せ ず に
通 過 さ せ る 。
こ れ は GNU gzip の 動
作 と 同 じ で あ
る 。
−k −−keep 伸 長 ・
展 開 の 後 で も
入 力 フ ァ イ ル
を 保 存 す る (削
除 し な い )。
−s −−small 圧 縮 ・
伸 長 ・ テ ス ト
の 際 の メ モ リ
使 用 量 を 減 ら
す 。 1 ブ ロ ッ ク
バ イ ト 当 た り 2.5
バ イ ト し か 必
要 と し な い 修
正 さ れ た ア ル
ゴ リ ズ ム を 使
っ て 、 フ ァ イ
ル の 伸 長 ・ テ
ス ト が 行 わ れ
る 。 全 て の フ
ァ イ ル が 2300kB の メ
モ リ で 伸 長 で
き る が 、 通 常
の 速 度 の 約 半
分 の 速 度 に な
っ て し ま う 。
圧 縮 の 場 合 、
−s フ ラ グ を 使
う と 200kB の ブ ロ ッ
ク サ イ ズ が 選
択 さ れ る 。 メ
モ リ 使 用 量 は
こ れ と 同 じ く
ら い に な る が
、 圧 縮 率 が 犠
牲 に な る 。 つ
ま り 、 計 算 機
に メ モ リ が 少
な い (8 MB 以 下 ) 場
合 は 、 全 て の
フ ァ イ ル に つ
い て −s フ ラ グ
を 使 う こ と 。
以 下 の 「 メ モ
リ 管 理 」 セ ク
シ ョ ン を 参 照
す る こ と 。
−q −−quiet 本 質 的
で な い 警 告 メ
ッ セ ー ジ を 抑
制 す る 。 I/O エ ラ
ー と 致 命 的 な
イ ベ ン ト に 関
係 す る メ ッ セ
ー ジ は 抑 制 さ
れ な い 。
−v −−verbose 詳 細
表 示 モ ー ド −−
各 フ ァ イ ル 処
理 に つ い て 圧
縮 率 を 表 示 す
る 。 さ ら に −v
の 数 を 増 や す
と 、 詳 細 表 示
の レ ベ ル も 上
が り 、 主 に 診
断 を 目 的 と す
る 多 く の 情 報
を 書 き 出 す 。
−h −−help ヘ ル プ
メ ッ セ ー ジ を
表 示 し て 終 了
す る 。
−L −−license −V
−−version ソ フ ト
ウ ェ ア の バ ー
ジ ョ ン ・ ラ イ
セ ン ス ・ 配 布
条 件 を 表 示 す
る 。
−1 (ま た は −−fast)
か ら −9 (ま た は
−−best) 圧 縮 の 場
合 、 ブ ロ ッ ク
サ イ ズ を 100 k, 200 k .. 900 k
に 設 定 す る 。
伸 長 の 場 合 、
何 も 影 響 を 及
ぼ さ な い 。 以
下 の 「 メ モ リ
管 理 」 セ ク シ
ョ ン を 参 照 す
る こ と 。 −−fast
と −−best エ イ リ
ア ス は 、 主 と
し て GNU gzip と の 互
換 性 の た め に
あ る 。 特 に
−−fast オ プ シ ョ
ン で 目 に 見 え
て 速 く な る 訳
で は な い 。 ま
た −−best は 単 に
デ フ ォ ル ト の
動 作 を 選 択 す
る だ け で あ る
。
−− こ れ 以 降 の 引 き 数 が 、 た と え ダ ッ シ ュ で 始 ま る も の で あ っ て も 、 フ ァ イ ル 名 と し て 扱 う 。 こ れ に よ り 、 ダ ッ シ ュ で 始 ま る 名 前 の フ ァ イ ル を 扱 う こ と が で き る 。 例 を 挙 げ る : |
bzip2 −−
−myfilename
−−repetitive−fast
−−repetitive−best こ れ
ら の フ ラ グ は
、 バ ー ジ ョ ン 0.9.5
以 降 で は 余 計
な も の で あ る
。 こ れ ら の フ
ラ グ は 、 以 前
の バ ー ジ ョ ン
で ソ ー ト ア ル
ゴ リ ズ ム の 動
作 を 大 雑 把 に
制 御 す る た め
に 提 供 さ れ た
も の で 、 時 々
は 役 立 っ た も
の で あ る 。 0.9.5 以
降 で は 、 こ れ
ら の フ ラ グ が
無 関 係 に な る
改 良 さ れ た ア
ル ゴ リ ズ ム が
使 わ れ て い る
。
メ モ リ 管 理
bzip2
は ブ ロ ッ ク 毎
に 大 き な フ ァ
イ ル を 圧 縮 す
る 。 ブ ロ ッ ク
サ イ ズ は 、 実
行 さ れ た 結 果
の 圧 縮 率 と 圧
縮 ・ 伸 長 に 必
要 な メ モ リ 使
用 量 の 両 方 に
影 響 を 及 ぼ す
。 フ ラ グ −1 か
ら −9 は 、 そ れ
ぞ れ ブ ロ ッ ク
サ イ ズ 100,000 バ イ
ト か ら (デ フ ォ
ル ト の ) 900,000 バ イ
ト を 指 定 す る
。 伸 長 時 に は
、 圧 縮 に 使 わ
れ た ブ ロ ッ ク
サ イ ズ が 圧 縮
フ ァ イ ル の ヘ
ッ ダ か ら 読 み
込 ま れ 、 bunzip2 は
フ ァ イ ル を 伸
長 す る の に ち
ょ う ど 十 分 な
メ モ リ を 確 保
す る 。 ブ ロ ッ
ク サ イ ズ は 圧
縮 フ ァ イ ル に
格 納 さ れ て い
る の で 、 伸 長
時 に は フ ラ グ
−1 か ら −9 は 関
係 な く 無 視 さ
れ る 。 圧 縮 ・
伸 縮 に 必 要 な
メ モ リ 使 用 量
(バ イ ト 単 位 ) は
、 以 下 の よ う
に 計 算 で き る :
圧 縮 : 400k + ( 8 x ブ ロ ッ
ク サ イ ズ ) 伸 長 :
100k + ( 4 x ブ ロ ッ ク サ
イ ズ ), ま た は
100k + ( 2.5 x ブ ロ ッ ク サ
イ ズ ) 大 き い ブ
ロ ッ ク サ イ ズ
に す る と 、 境
界 の 返 り 値 を
す ぐ に 減 少 さ
せ る 。 大 部 分
の 圧 縮 は 、 最
初 の 200kB か ら 300kB の
ブ ロ ッ ク サ イ
ズ で つ く ら れ
る 。 bzip2 を メ モ
リ の 少 な い 計
算 機 で 使 う 場
合 は 、 こ の こ
と を 覚 え て お
く 価 値 が あ る
。 さ ら に 、 伸
長 に 必 要 な メ
モ リ は 、 圧 縮
時 に ブ ロ ッ ク
サ イ ズ を 選 択
す る こ と で 設
定 さ れ る 点 を
知 っ て お く こ
と も 重 要 で あ
る 。 デ フ ォ ル
ト の 900kB ブ ロ ッ ク
サ イ ズ で 圧 縮
さ れ た フ ァ イ
ル に 対 し て 、
bunzip2 は 伸 長 時 に
約 3700kB の メ モ リ を
必 要 と す る 。 4MB
の メ モ リ の 計
算 機 で フ ァ イ
ル 伸 長 を サ ポ
ー ト す る に は
、 bunzip2 こ の メ モ
リ 量 の 約 半 分
、 約 2300kB を 使 っ て
伸 長 す る オ プ
シ ョ ン が あ る
。 伸 長 速 度 も
半 分 に な る の
で 、 こ の オ プ
シ ョ ン は 必 要
な 場 合 に の み
使 う べ き で あ
る 。 関 連 す る
フ ラ グ と し て
−s が あ る 。 一
般 的 に は 、 メ
モ リ の 制 限 が
許 す 限 り 一 番
大 き な ブ ロ ッ
ク サ イ ズ を 使
う こ と 。 こ う
す る こ と で 圧
縮 率 が 最 も 良
く な る 。 圧 縮
・ 伸 長 の 速 度
は 事 実 上 ブ ロ
ッ ク サ イ ズ に
影 響 さ れ な い
。 他 に 重 要 な
点 が 単 一 の ブ
ロ ッ ク に 適 用
さ れ る 。 −− つ
ま り 、 入 手 す
る 大 部 分 の フ
ァ イ ル は 、 大
き い ブ ロ ッ ク
サ イ ズ を 使 っ
て い る と い う
こ と で あ る 。
こ の フ ァ イ ル
の サ イ ズ は ブ
ロ ッ ク サ イ ズ
よ り 小 さ い の
で 、 実 際 の メ
モ リ 使 用 量 は
フ ァ イ ル サ イ
ズ に 比 例 す る
。 例 え ば 、 20,000 バ
イ ト (20kB) の フ ァ イ
ル を −9 フ ラ グ
で 圧 縮 す る 場
合 、 7600kB の メ モ リ
が 確 保 さ れ る
が 、 400k + 20000 * 8 = 560kB し か
使 用 し な い 。
同 様 に 、 伸 長
時 に は 3700kB が 確 保
さ れ る が 、 100k + 20000 *
4 = 180 kB し か 使 用 し
な い 。 異 な る
ブ ロ ッ ク サ イ
ズ に 対 し て の
最 大 メ モ リ 使
用 量 を ま と め
た テ ー ブ ル を
以 下 に 示 す 。
カ ル ガ リ ー 大
学 の テ キ ス ト
圧 縮 コ ー パ ス (14
個 の フ ァ イ ル
、 合 計 3,141,622 バ イ
ト ) を 圧 縮 し た
サ イ ズ も 記 録
さ れ て い る 。
行 毎 に 比 べ る
と 、 ブ ロ ッ ク
サ イ ズ に よ っ
て 圧 縮 が ど の
よ う に 変 わ る
か を 知 る こ と
が で き る 。 こ
の 数 字 は 、 大
き な フ ァ イ ル
に 対 し て 大 き
な ブ ロ ッ ク サ
イ ズ を 使 う こ
と の 利 点 を 、
控 え 目 に し か
述 べ て い な い
。 な ぜ な ら 、
こ の コ ー パ ス
が 小 さ め の フ
ァ イ ル で 占 め
ら れ て い る た
め で あ る 。 圧
縮 時 の 伸 長 時
の −s 伸 長 時 の
コ ー パ ス の フ
ラ グ 使 用 量 使
用 量 使 用 量 サ
イ ズ
−1 1200k
500k 350k 914704
−2 2000k 900k 600k 877703
−3 2800k 1300k 850k 860338
−4 3600k 1700k 1100k 846899
−5 4400k 2100k 1350k 845160
−6 5200k 2500k 1600k 838626
−7 6100k 2900k 1850k 834096
−8 6800k 3300k 2100k 828642
−9 7600k 3700k 2350k 828642
破 損 し た フ ァ イ ル か ら の デ ー タ 復 元
bzip2 は 、 通 常 900kB の ブ ロ ッ ク で フ ァ イ ル を 圧 縮 す る 。 各 ブ ロ ッ ク は 独 立 に 操 作 さ れ る 。 メ デ ィ ア の エ ラ ー や 転 送 エ ラ ー に よ り 、 複 数 ブ ロ ッ ク か ら な る .bz2 フ ァ イ ル が 破 損 し て も 、 フ ァ イ ル の 破 損 し て い な い ブ ロ ッ ク か ら デ ー タ を 復 元 で き る 可 能 性 が あ る 。 各 ブ ロ ッ ク の 圧 縮 さ れ た 表 現 は 、 48 ビ ッ ト の パ タ ー ン で 区 切 ら れ る 。 こ の パ タ ー ン に よ り 、 論 理 的 な 確 実 性 を 持 っ て ブ ロ ッ ク 境 界 を 見 つ け る こ と が で き る 。 各 ブ ロ ッ ク に は そ れ ぞ れ の 32 ビ ッ ト CRC が あ る の で 、 破 損 し た ブ ロ ッ ク は 破 損 し て い な い も の と 区 別 で き る 。
bzip2recover は 、 .bz2 フ ァ イ ル の 各 ブ ロ ッ ク を 検 索 し 、 そ れ 独 自 の .bz2 フ ァ イ ル に 各 ブ ロ ッ ク を 書 き 出 す 。 ユ ー ザ ー は 、 bzip2 −t を 使 っ て 得 ら れ た フ ァ イ ル の 完 全 性 を テ ス ト し 、 破 損 し て い な い フ ァ イ ル と し て 伸 長 で き る 。
bzip2recover は 、 破 損 し た フ ァ イ ル を 唯 一 の 引 き 数 と し て 受 け 取 り 、 抽 出 さ れ た ブ ロ ッ ク を 含 ん だ "rec00001file.bz2", "rec00002file.bz2", ..., と い う 多 く の フ ァ イ ル を 書 き 出 す 。 出 力 フ ァ イ ル の 名 前 は 、 そ の 後 の 処 理 で ワ イ ル ド カ ー ド が 使 え る よ う に 設 計 さ れ て い る −− 例 え ば 、 "bzip2 −dc rec*file.bz2 > recovered_data" −− と す れ ば 、 フ ァ イ ル を 正 し い 順 番 で 処 理 す る こ と が で き る 。 大 き な .bz2 フ ァ イ ル に は 多 く の ブ ロ ッ ク が 含 ま れ て い る の で 、 bzip2recover は 、 ほ と ん ど の 場 合 、 こ の よ う な フ ァ イ ル を 扱 う た め に 使 わ れ る 。 1 ブ ロ ッ ク が 全 て 破 損 し た ブ ロ ッ ク は 復 元 で き な い の で 、 こ の よ う な フ ァ イ ル に 対 し て 使 う の は 明 ら か に 無 駄 で あ る 。 メ デ ィ ア エ ラ ー や 転 送 エ ラ ー に よ る 潜 在 的 な デ ー タ 損 失 を 少 な く し た い な ら 、 小 さ い ブ ロ ッ ク サ イ ズ で 圧 縮 す る こ と を 考 え た 方 が 良 い 。
性 能 に 関 す る 注 意
圧 縮 の ソ ー ト フ ェ ー ズ で は 、 フ ァ イ ル 中 の 同 一 の 文 字 列 を 集 め る 。 そ の た め 、 "aabaabaabaab ..." の よ う に (数 百 回 ) 同 じ シ ン ボ ル が 長 く 繰 り 返 さ れ て い る フ ァ イ ル は 、 通 常 の も の よ り 圧 縮 が 遅 く な る 。 バ ー ジ ョ ン 0.9.5 以 降 で は 以 前 の バ ー ジ ョ ン に 比 べ る と 、 こ の 点 が 良 く な っ て い る 。 圧 縮 時 間 の 最 も 悪 い 場 合 と 平 均 の 場 合 の 比 率 は 、 10:1 の 範 囲 で あ る 。 以 前 の バ ー ジ ョ ン で は 、 こ の 比 率 は 100:1 で あ っ た 。 も し 見 て み た い な ら 、 −vvvv オ プ シ ョ ン を 使 っ て 、 詳 細 な 圧 縮 過 程 の 進 行 を 見 る こ と が で き る 。 伸 長 は 、 こ の 現 象 に 影 響 さ れ な い 。
bzip2 は 通 常 、 操 作 の た め に 数 メ ガ バ イ ト の メ モ リ を 確 保 し 、 と て も ラ ン ダ ム な 方 法 で 確 保 さ れ た メ モ リ を 変 更 す る 。 こ れ は 、 「 圧 縮 ・ 伸 長 の 両 方 の 性 能 は 、 キ ャ ッ シ ュ に な い 場 合 に 計 算 機 が 対 応 す る 速 度 に 大 き く 依 存 す る 」 と い う こ と を 意 味 す る 。 そ の た め 、 キ ャ ッ シ ュ に な い 割 合 を 減 ら す た め の ち ょ っ と し た コ ー ド の 変 更 が 、 非 常 に 大 き な 性 能 の 向 上 を も た ら し た の を 見 た こ と が あ る 。 bzip2 は 、 非 常 に 大 き な キ ャ ッ シ ュ を 持 っ た 計 算 機 で 、 最 も 良 い 性 能 を 発 揮 す る と 考 え ら れ る 。
警 告
I/O エ ラ ー の メ ッ セ ー ジ は 、 そ れ ほ ど 役 立 た な い 。 bzip2 は 、 で き る だ け I/O エ ラ ー を 検 知 し て 正 し く 終 了 し よ う と す る 。 し か し 、 何 が 問 題 な の か の 詳 細 は 、 と き ど き か な り 間 違 っ た も の に 見 え る 。 こ の man ペ ー ジ は 、 バ ー ジ ョ ン 1.0.6 の bzip2 に つ い て 述 べ て い る 。 こ の バ ー ジ ョ ン で 生 成 さ れ た 圧 縮 デ ー タ は 、 以 前 の パ ブ リ ッ ク リ リ ー ス で あ る バ ー ジ ョ ン 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 と そ れ 以 降 に 対 し て 、 前 方 互 換 と 後 方 互 換 が あ る 。 た だ し 、 次 の よ う な 例 外 が あ る : 0.9.0 以 降 で は 複 数 の フ ァ イ ル を 連 結 し て 圧 縮 し た フ ァ イ ル を 伸 長 で き る が 、 0.1pl2 で は 伸 長 で き ず 、 ス ト リ ー ム の 最 初 に あ る フ ァ イ ル を 伸 長 し た 後 に 停 止 す る 。
1.0.2 以 前 の bzip2recover は 、 圧 縮 フ ァ イ ル で の ビ ッ ト 位 置 を 表 現 す る た め に 、 32 ビ ッ ト 整 数 を 使 っ て い た 。 そ の た め 512MB 以 上 の 圧 縮 フ ァ イ ル を 扱 え な い 。 バ ー ジ ョ ン 1.0.2 と そ れ 以 降 で は 、 512MB 以 上 の 圧 縮 フ ァ イ ル を サ ポ ー ト 可 能 な プ ラ ッ ト フ ォ ー ム (GNU が サ ポ ー ト す る タ ー ゲ ッ ト と Windows) で は 、 64 ビ ッ ト 整 数 を 使 用 し て い る 。 こ の 制 限 あ り で bzip2recover が ビ ル ド さ れ て い る か を 確 認 す る に は 、 bzip2recover 引 き 数 な し で 実 行 す れ ば よ い 。 少 な く と も MaybeUInt64 を 符 号 な し 64 ビ ッ ト 整 数 型 に 設 定 し て 再 コ ン パ イ ル す る こ と に よ り 、 非 制 限 バ ー ジ ョ ン を ビ ル ド す る こ と が で き る 。
作 者
Julian Seward, jsewardbzip.org.
bzip2 に 含 ま れ て い る ア イ デ ィ ア は 、 (少 な く と も ) 以 下 の 方 々 の お か げ で あ る : Michael Burrows, David Wheeler (ブ ロ ッ ク ソ ー ト 変 換 ), David Wheeler (Huffman コ ー ド 化 に つ い て も ), Peter Fenwick (オ リ ジ ナ ル の bzip に お け る 構 造 化 コ ー ド 化 モ デ ル 、 そ し て 多 く の 改 良 ), Alistair Moffat, Radford Neal, Ian Witten (オ リ ジ ナ ル の bzip に お け る 算 術 コ ー ド 化 )。 私 は 、 彼 ら の 助 け ・ サ ポ ー ト ・ 助 言 に 対 し て 感 謝 し て い る 。 ド キ ュ メ ン ト の ソ ー ス の 場 所 に つ い て は 、 ソ ー ス 配 布 の 中 の マ ニ ュ ア ル を 参 照 す る こ と 。 Christian von Roques は 、 圧 縮 速 度 の 向 上 の た め に 、 よ り 速 い ソ ー ト ア ル ゴ リ ズ ム を 探 す こ と を 勧 め て く れ た 。 Bela Lubkin は 、 圧 縮 速 度 が 最 も 遅 い 場 合 の 改 良 を 勧 め て く れ た 。 Donna Robinson は ド キ ュ メ ン ト の XML 化 を し て く れ た 。 bz* ス ク リ プ ト は GNU gzip の も の に 由 来 し て い る 。 多 く の 方 々 が パ ッ チ を 送 り 、 移 植 性 の 問 題 に つ い て 助 け て く れ た 。 ま た 、 計 算 機 を 貸 し て く れ た り 、 ア ド バ イ ス を し て く れ た 人 達 も い た 。 こ れ ら は 全 て 助 け に な っ た 。