Manpages

名 前

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 の よ う に 深 刻 な フ ァ イ ル 名 の 長 さ 制 限 が あ る た め に 、 と て も 面 倒 で あ る 。

bzip2bunzip2 は デ フ ォ ル ト で は 既 存 の フ ァ イ ル を 上 書 き し な い 。 上 書 き し た い 場 合 は −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.

http://www.bzip.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 の も の に 由 来 し て い る 。 多 く の 方 々 が パ ッ チ を 送 り 、 移 植 性 の 問 題 に つ い て 助 け て く れ た 。 ま た 、 計 算 機 を 貸 し て く れ た り 、 ア ド バ イ ス を し て く れ た 人 達 も い た 。 こ れ ら は 全 て 助 け に な っ た 。