Man page - xz(1)

Packages contains this manual

Available languages:

en fr pt_BR it ko ja uk ro sr de

Manual

XZ

名 前
書 式
コ マ ン ド エ イ リ ア ス
説 明
メ モ リ 利 用
.xz フ ァ イ ル の 連 結 と パ デ ィ ン グ
オ プ シ ョ ン
整 数 に 対 す る サ フ ィ ッ ク ス と 特 別 な 値
オ ペ レ ー シ ョ ン モ ー ド
オ ペ レ ー シ ョ ン 修 飾 子 (operation modifiers)
基 本 的 な フ ァ イ ル フ ォ ー マ ッ ト と 圧 縮 オ プ シ ョ ン
カ ス タ ム 圧 縮 フ ィ ル タ ー チ ェ ー ン
そ の 他 の オ プ シ ョ ン
ロ ボ ッ ト モ ー ド
バ ー ジ ョ ン
メ モ リ 制 限 に 関 す る 情 報
リ ス ト モ ー ド
終 了 ス テ ー タ ス
環 境 変 数
LZMA Utils と の 互 換 性
圧 縮 プ リ セ ッ ト レ ベ ル
ス ト リ ー ム 化 さ れ て い る /さ れ て い な い .lzma フ ァ イ ル
サ ポ ー ト さ れ な い .lzma フ ァ イ ル
ゴ ミ デ ー タ
情 報
圧 縮 結 果 は さ ま ざ ま
埋 め 込 み .xz の 伸 長 処 理
利 用 例
基 本
複 数 フ ァ イ ル の 並 行 圧 縮 処 理
ロ ボ ッ ト モ ー ド
カ ス タ ム 圧 縮 フ ィ ル タ ー チ ェ ー ン
関 連 項 目

名 前

xz, unxz, xzcat, lzma, unlzma, lzcat - .xz, .lzma フ ァ イ ル の 圧 縮 、 伸 長

書 式

xz [ option... ] [ file... ]

コ マ ン ド エ イ リ ア ス

unxz xz --decompress と 同 じ で す 。
xzcat
xz --decompress --stdout と 同 じ で す 。
lzma
xz --format=lzma と 同 じ で す 。
unlzma
xz --format=lzma --decompress と 同 じ で す 。
lzcat
xz --format=lzma --decompress --stdout と 同 じ で す 。

フ ァ イ ル 圧 縮 を 行 う ス ク リ プ ト を 記 述 す る 場 合 は 、 unxz xzcat な ど を 用 い る の で は な く 、 常 に xz コ マ ン ド に 適 切 な 引 数 ( xz -d or xz -dc ) を つ け て 利 用 す る こ と を お 勧 め し ま す 。

説 明

xz は 汎 用 目 的 の デ ー タ 圧 縮 ツ ー ル で す 。 コ マ ン ド ラ イ ン に は gzip (1) や bzip2 (1) と 同 等 の 文 法 が 用 い ら れ て い ま す 。 ネ イ テ ィ ブ な フ ァ イ ル フ ォ ー マ ッ ト は .xz で す 。 さ ら に LZMA Utils が 利 用 し て い る こ れ ま で の .lzma フ ォ ー マ ッ ト や 、 コ ン テ ナ ー フ ォ ー マ ッ ト ヘ ッ ダ ー を 持 た な い 、 生 の (raw) 圧 縮 ス ト リ ー ム に も 対 応 し て い ま す 。

xz は 指 定 さ れ た オ ペ レ ー シ ョ ン モ ー ド に 従 っ て 、 各 file の 圧 縮 、 伸 長 を 行 い ま す 。 files が 指 定 さ れ て い な い 、 ま た は - と 指 定 さ れ た 場 合 、 xz は 標 準 入 力 か ら デ ー タ を 読 み 込 ん で 、 処 理 結 果 を 標 準 出 力 へ 書 き 出 し ま す 。 端 末 上 に お い て 圧 縮 デ ー タ を 標 準 出 力 に 書 き 出 そ う と し た 場 合 に は 、 xz は 処 理 停 止 し ま す (エ ラ ー を 表 示 し て file の 処 理 を ス キ ッ プ し ま す )。 同 様 に 端 末 上 に お い て 圧 縮 デ ー タ を 標 準 入 力 か ら 読 み 込 も う と し た 場 合 も 、 xz は 処 理 停 止 し ま す 。

--stdout の 指 定 が な く files - で な い 場 合 は 新 規 の フ ァ イ ル 生 成 と な り 、 そ の フ ァ イ ル 名 は 元 の file か ら 命 名 さ れ ま す 。

圧 縮 時 は 、 目 的 と す る フ ァ イ ル フ ォ ー マ ッ ト ( .xz ま た は .lzma ) を サ フ ィ ッ ク ス と し て 、 元 の フ ァ イ ル 名 に こ れ を 加 え た フ ァ イ ル 名 と し ま す 。

伸 長 時 は 、 サ フ ィ ッ ク ス .xz ま た は .lzma を 取 り 除 い て 、 目 的 の フ ァ イ ル 名 と し ま す 。 xz は サ フ ィ ッ ク ス と し て .txz .tlz も 識 別 し ま す 。 こ の 場 合 は サ フ ィ ッ ク ス を .tar と し て 置 き 換 え ま す 。

目 的 と す る フ ァ イ ル が す で に 存 在 し て い る 場 合 、 エ ラ ー が 表 示 さ れ て file に 対 す る 処 理 は ス キ ッ プ さ れ ま す 。

出 力 先 が 標 準 出 力 で な く 、 以 下 の い ず れ か に 該 当 す る 場 合 、 xz は 警 告 を 表 示 し て file の 処 理 を ス キ ッ プ し ま す 。

file が 通 常 の (regular) フ ァ イ ル で は な い 場 合 。 シ ン ボ リ ッ ク リ ン ク を た ど る こ と は あ り ま せ ん 。 し た が っ て そ の 場 合 は 通 常 の フ ァ イ ル で は な い も の と し て 扱 わ れ ま す 。

file が 複 数 の ハ ー ド リ ン ク を 持 つ 場 合 。

file に setuid、 setgid、 ス テ ィ ッ キ ー ビ ッ ト (sticky bit) セ ッ ト が あ る 場 合 。

オ ペ レ ー シ ョ ン モ ー ド が 圧 縮 と し て 設 定 さ れ て い て 、 file の サ フ ィ ッ ク ス が 目 的 と す る フ ァ イ ル フ ォ ー マ ッ ト に す で に な っ て い た 場 合 ( .xz へ の 圧 縮 時 に す で に .xz .txz で あ っ た 場 合 、 ま た .lzma へ の 圧 縮 時 に す で に .lzma .tlz で あ っ た 場 合 )。

オ ペ レ ー シ ョ ン モ ー ド が 伸 長 と し て 設 定 さ れ て い て 、 file の サ フ ィ ッ ク ス が 対 応 し て い る フ ァ イ ル フ ォ ー マ ッ ト ( .xz , .txz , .lzma , .tlz ) で な い 場 合 。

file に 対 す る 圧 縮 ま た は 伸 長 が 正 常 に 処 理 さ れ た 後 は 、 元 の ソ ー ス file の 所 有 者 、 グ ル ー プ 、 パ ー ミ ッ シ ョ ン 、 ア ク セ ス 時 刻 、 更 新 時 刻 を 、 目 的 と す る フ ァ イ ル に コ ピ ー し ま す 。 グ ル ー プ 情 報 の コ ピ ー に 失 敗 し た 場 合 は 、 パ ー ミ ッ シ ョ ン を 修 正 し て 、 元 の ソ ー ス file に ア ク セ ス 権 を 有 し て い な か っ た ユ ー ザ ー が 、 目 的 の フ ァ イ ル に ア ク セ ス で き な い よ う に し ま す 。 現 状 の xz で は 、 ア ク セ ス コ ン ト ロ ー ル リ ス ト や 拡 張 属 性 の よ う な メ タ デ ー タ の コ ピ ー に は 対 応 し て い ま せ ん 。

目 的 と す る フ ァ イ ル の ク ロ ー ズ 処 理 が 正 常 終 了 し た ら 、 --keep が 指 定 さ れ て い な い 限 り 、 ソ ー ス file は 削 除 さ れ ま す 。 こ の ソ ー ス file は 、 出 力 先 が 標 準 出 力 で あ る 場 合 に は 削 除 さ れ ま せ ん 。

xz に 対 し て SIGINFO SIGUSR1 を 送 信 す る と 、 標 準 エ ラ ー 出 力 に 対 し て 進 捗 情 報 を 出 力 し ま す 。 こ の 用 途 は 限 ら れ て い ま す 。 な ぜ な ら 標 準 エ ラ ー 出 力 先 が 端 末 で あ る 場 合 、 --verbose を 利 用 す れ ば 進 捗 イ ン ジ ケ ー タ ー が 自 動 的 に 更 新 さ れ る た め で す 。

メ モ リ 利 用

xz が 利 用 す る メ モ リ 量 は 、 圧 縮 の 設 定 に よ り 数 100 キ ロ バ イ ト か ら 数 ギ ガ バ イ ト ま で と さ ま ざ ま で す 。 フ ァ イ ル 圧 縮 時 に 利 用 さ れ る 設 定 は 、 フ ァ イ ル 伸 長 時 の メ モ リ 利 用 を 決 定 づ け ま す 。 通 常 、 伸 長 処 理 に 要 す る メ モ リ 容 量 は 、 圧 縮 処 理 に お い て フ ァ イ ル 生 成 に 必 要 と な る メ モ リ 容 量 の 5 % か ら 20 % で す 。 た と え ば xz -9 に よ っ て 圧 縮 さ れ た フ ァ イ ル を 伸 長 す る に は 、 今 の と こ ろ 65 MiB の メ モ リ を 要 し ま す 。 た だ し .xz フ ァ イ ル の 伸 長 に 数 ギ ガ バ イ ト を 利 用 す る こ と も 可 能 で す 。

特 に 、 古 い シ ス テ ム を 利 用 し て き た ユ ー ザ ー は 、 あ ま り に も メ モ リ が 大 量 に 消 費 さ れ る の で 、 好 ま し く 思 わ な い か も し れ ま せ ん 。 そ の よ う な 状 況 を 回 避 す る た め に xz に は ビ ル ト イ ン の メ モ リ 制 限 機 能 が あ り ま す 。 こ れ は デ フ ォ ル ト で は 無 効 化 さ れ て い ま す 。 オ ペ レ ー テ ィ ン グ シ ス テ ム の 中 に は 、 プ ロ セ ス の メ モ リ 利 用 を 制 限 す る 方 法 を 提 供 す る も の が あ り ま す が 、 そ こ に 依 存 す る の は 、 柔 軟 性 に 欠 け る と 考 え ら れ て き ま し た (た と え ば ulimit (1) を 利 用 し て 仮 想 メ モ リ を 制 限 す る と 、 mmap (2) が 機 能 し な く な る 傾 向 に あ る な ど で す )。

メ モ リ 制 限 機 能 を 有 効 に す る に は 、 コ マ ン ド ラ イ ン オ プ シ ョ ン --memlimit= limit を 指 定 し ま す 。 こ の 制 限 機 能 は 、 環 境 変 数 XZ_DEFAULTS を 用 い て XZ_DEFAULTS=--memlimit=150MiB の よ う に し て デ フ ォ ル ト で 有 効 に し て お く と 、 利 用 し や す く な り ま す 。 こ の 制 限 機 能 は 、 圧 縮 時 と 伸 長 時 の そ れ ぞ れ に 対 し て --memlimit-compress= limit お よ び --memlimit-decompress= limit を 使 え ば 、 個 別 に 指 定 す る こ と が で き ま す 。 こ の 2 つ の オ プ シ ョ ン を XZ_DEFAULTS 以 外 の と こ ろ で 用 い る の は 、 あ ま り 意 味 が あ り ま せ ん 。 な ぜ な ら xz が 圧 縮 と 伸 長 を 同 時 に 処 理 す る こ と は あ り え ず 、 ま た --memlimit= limit (あ る い は -M limit ) と 設 定 し て お く こ と の 方 が 、 コ マ ン ド ラ イ ン か ら 入 力 す る よ り も 短 く て 済 む か ら で す 。

伸 長 時 に 、 指 定 し た メ モ リ 利 用 制 限 を 超 過 し た 場 合 、 xz は エ ラ ー を 表 示 し 伸 長 処 理 は 失 敗 し ま す 。 圧 縮 時 に そ の 制 限 が 超 過 し た 場 合 、 xz は そ の 制 限 値 を 引 き 下 げ て 、 制 限 を 超 過 し な い よ う に し ま す (た だ し --format=raw ま た は --no-adjust の 指 定 時 は 除 き ま す )。 こ の よ う な 処 理 方 法 に よ り 、 制 限 値 が 極 端 に 小 さ く な い 限 り 、 処 理 は 失 敗 し な い よ う に な り ま す 。 設 定 値 を 引 き 下 げ て い く 際 に は 、 圧 縮 レ ベ ル を 示 す プ リ セ ッ ト 値 ま で に は 至 ら な い 範 囲 で 、 徐 々 に 引 き 下 げ ら れ て い き ま す 。 た と え ば こ の 設 定 値 が xz -9 に 必 要 と な る 容 量 よ り も 少 し だ け 小 さ か っ た 場 合 、 設 定 値 の 引 き 下 げ は ほ ん の 少 し だ け 行 わ れ る も の で あ っ て 、 xz -8 に 必 要 と な る 容 量 ま で 一 気 に 引 き 下 げ ら れ る わ け で は あ り ま せ ん 。

.xz フ ァ イ ル の 連 結 と パ デ ィ ン グ

複 数 の .xz フ ァ イ ル は 、 そ の 状 態 の ま ま 連 結 (concatenate) す る こ と が で き ま す 。 連 結 さ れ た フ ァ イ ル を xz が 伸 長 す る 際 に は 、 あ た か も 1 つ の .xz フ ァ イ ル で あ る か の よ う に し て 処 理 し ま す 。

連 結 し た 間 の 部 分 や 連 結 の 最 後 に 、 パ デ ィ ン グ (padding) と い う 追 加 デ ー タ を 挿 入 す る こ と が で き ま す 。 パ デ ィ ン グ は ヌ ル バ イ ト に よ っ て 構 成 さ れ る も の で あ り 、 そ の サ イ ズ は 4 バ イ ト の 倍 数 で な け れ ば な り ま せ ん 。 こ れ が 有 用 と な る の は 、 た と え ば 512 バ イ ト 単 位 の ブ ロ ッ ク ご と に フ ァ イ ル サ イ ズ を 定 め る よ う な 媒 体 に .xz フ ァ イ ル を 保 存 す る 場 合 で す 。

連 結 と パ デ ィ ン グ は 、 .lzma フ ァ イ ル や 生 の (raw) ス ト リ ー ム に お い て 行 う こ と は で き ま せ ん 。

オ プ シ ョ ン

整 数 に 対 す る サ フ ィ ッ ク ス と 特 別 な 値

整 数 引 数 を 必 要 と す る 場 面 の 多 く に お い て は 、 サ フ ィ ッ ク ス を さ ら に つ け る こ と で 多 大 な 数 値 を 簡 単 に 表 現 で き る よ う に し て い ま す 。 整 数 値 と そ の サ フ ィ ッ ク ス の 間 に は 空 白 文 字 を 含 め な い で く だ さ い 。

KiB

1,024 (2ˆ10) の 倍 数 を 表 現 し ま す 。 KiB と 同 じ 意 味 を 表 す Ki , k , kB , K , KB が 利 用 で き ま す 。

MiB

1,048,576 (2ˆ20) の 倍 数 を 表 現 し ま す 。 MiB と 同 じ 意 味 を 表 す Mi , m , M , MB が 利 用 で き ま す 。

GiB

1,073,741,824 (2ˆ30) の 倍 数 を 表 現 し ま す 。 GiB と 同 じ 意 味 を 表 す Gi , g , G , GB が 利 用 で き ま す 。

特 別 な 数 値 指 定 max が 利 用 で き ま す 。 こ れ は そ の オ プ シ ョ ン に お い て サ ポ ー ト さ れ て い る 最 大 整 数 値 を 表 し ま す 。

オ ペ レ ー シ ョ ン モ ー ド

オ ペ レ ー シ ョ ン モ ー ド オ プ シ ョ ン が 複 数 指 定 さ れ た 場 合 は 、 最 後 の 指 定 が 有 効 と な り ま す 。
-z
, --compress

圧 縮 を 指 示 し ま す 。 こ れ は デ フ ォ ル ト の オ ペ レ ー シ ョ ン モ ー ド で す 。 オ ペ レ ー シ ョ ン モ ー ド オ プ シ ョ ン が 指 定 さ れ な か っ た 場 合 、 あ る い は コ マ ン ド ラ イ ン か ら の 指 定 に お い て 暗 に オ ペ レ ー シ ョ ン モ ー ド の 指 定 が 含 ま れ て い な い 場 合 に 採 用 さ れ ま す (た と え ば unxz に は --decompress が 暗 に 含 ま れ て い ま す )。

-d , --decompress , --uncompress

伸 長 を 指 示 し ま す 。

-t , --test

圧 縮 さ れ た files の 整 合 性 を テ ス ト し ま す 。 こ の オ プ シ ョ ン は --decompress --stdout と す る こ と と 同 じ で す 。 た だ し 伸 長 さ れ る デ ー タ が 、 標 準 出 力 へ は 書 き 込 ま れ ず に 捨 て ら れ て し ま う 場 合 を 除 き ま す 。 こ の オ プ シ ョ ン で は 、 フ ァ イ ル 生 成 や 削 除 は 発 生 し ま せ ん 。

-l , --list

圧 縮 さ れ た files に 関 す る 情 報 を 一 覧 表 示 し ま す 。 伸 長 処 理 が 行 わ れ る わ け で は な く 、 フ ァ イ ル 生 成 や 削 除 は 発 生 し ま せ ん 。 こ の リ ス ト モ ー ド で は 、 標 準 入 力 あ る い は 他 の シ ー ク で き な い 入 力 ソ ー ス か ら の 圧 縮 デ ー タ は 読 み 込 む こ と が で き ま せ ん 。

こ の オ プ シ ョ ン に よ る 一 覧 出 力 で は 、 files に 関 す る 基 本 的 な 情 報 が 、 1 つ に つ き 1 行 ず つ 表 示 さ れ ま す 。 さ ら に 詳 し い 情 報 を 得 る に は --verbose オ プ シ ョ ン も 併 用 し ま す 。 そ れ 以 上 に 細 か い 情 報 を 得 る に は --verbose を 2 回 指 定 し ま す 。 た だ し こ れ を 行 う と 処 理 が 遅 く な る か も し れ ま せ ん 。 細 か い 情 報 を 得 る た め に は 、 数 多 く の 検 索 処 理 が 必 要 と な る た め で す 。 詳 細 な 情 報 を 出 力 す る 際 の 出 力 幅 は 80 文 字 を 超 え ま す 。 し た が っ て less -S を 利 用 す る な ど し て 出 力 を パ イ プ す れ ば 、 横 幅 が 十 分 に 取 れ な い 端 末 で あ っ て も 問 題 な く 利 用 で き ま す 。

実 際 の 出 力 は xz の バ ー ジ ョ ン や ロ ケ ー ル 指 定 に よ り 変 わ り ま す 。 マ シ ン に と っ て 読 み 込 み 可 能 な 出 力 と す る に は 、 --robot --list を 利 用 し て く だ さ い 。

オ ペ レ ー シ ョ ン 修 飾 子 (operation modifiers)

-k , --keep

入 力 フ ァ イ ル を 削 除 し ま せ ん 。

-f , --force

こ の オ プ シ ョ ン に は 複 数 の 効 果 が あ り ま す 。

目 的 と す る フ ァ イ ル が す で に 存 在 し て い た 場 合 、 そ の フ ァ イ ル を 削 除 し て か ら 圧 縮 や 伸 長 を 行 い ま す 。

入 力 フ ァ イ ル が 通 常 フ ァ イ ル へ の シ ン ボ リ ッ ク リ ン ク で あ る 場 合 、 ハ ー ド リ ン ク を 複 数 持 つ 場 合 、 setuid, setgid, ス テ ィ ッ キ ー ビ ッ ト (sticky bit) セ ッ ト を 持 つ 場 合 で あ っ て も 、 圧 縮 ま た は 伸 長 を 行 い ま す 。 setuid, setgid, ス テ ィ ッ キ ー ビ ッ ト は 目 的 と な る フ ァ イ ル に は コ ピ ー さ れ ま せ ん 。

--decompress --stdout が 指 定 さ れ た 際 に xz が ソ ー ス フ ァ イ ル の 種 類 を 認 識 で き な か っ た 場 合 は 、 ソ ー ス フ ァ イ ル が そ の ま ま 標 準 出 力 へ コ ピ ー さ れ ま す 。 こ れ は xzcat --force を 利 用 し た 際 に 、 ソ ー ス フ ァ イ ル が xz に よ っ て 圧 縮 さ れ て い な い フ ァ イ ル で あ っ て も cat (1) と 同 じ よ う に 処 理 で き る こ と に な り ま す 。 将 来 的 に xz は 新 た な 圧 縮 フ ァ イ ル フ ォ ー マ ッ ト を サ ポ ー ト す る か も し れ な い の で 、 単 に 標 準 出 力 へ コ ピ ー す る の で は な く 、 多 く の フ ァ イ ル タ イ プ を 伸 長 で き る よ う に な る か も し れ ま せ ん 。 --format= format を 指 定 す れ ば 、 xz が 伸 長 を 行 う フ ァ イ ル フ ォ ー マ ッ ト を た だ 1 つ に 限 定 す る こ と が で き ま す 。

-c , --stdout , --to-stdout

圧 縮 ま た は 伸 長 す る 際 に 、 出 力 先 を フ ァ イ ル で は な く 標 準 出 力 と し ま す 。 こ の オ プ シ ョ ン に は --keep の 指 定 が 暗 に 含 ま れ ま す 。

--single-stream

.xz の 入 力 ス ト リ ー ム か ら 最 初 の 1 つ だ け を 伸 長 し ま す 。 そ し て そ の ス ト リ ー ム の 続 き と し て 入 力 デ ー タ が 残 っ て い て も 、 そ の こ と を 示 さ ず に 無 視 し ま す 。 た だ し 通 常 は 、 そ う い っ た ゴ ミ デ ー タ が 続 い て い る と xz は エ ラ ー を 出 力 し ま す 。

xz で は .lzma フ ァ イ ル や 生 の (raw) ス ト リ ー ム か ら の 複 数 ス ト リ ー ム は 伸 長 処 理 を 行 い ま せ ん 。 そ こ で こ の オ プ シ ョ ン を 利 用 し て お け ば 、 .lzma フ ァ イ ル や 生 の ス ト リ ー ム の 次 に く る ゴ ミ デ ー タ を 無 視 で き ま す 。

本 オ プ シ ョ ン は 、 オ ペ レ ー シ ョ ン モ ー ド が --decompress ま た は --test で あ る 場 合 に は 何 も 行 い ま せ ん 。

--no-sparse

ス パ ー ス (sparse) フ ァ イ ル を 生 成 し な い よ う に し ま す 。 伸 長 処 理 に よ っ て 通 常 フ ァ イ ル を 生 成 す る 際 に 、 伸 長 し た デ ー タ 内 に バ イ ナ リ 値 ゼ ロ の 並 び が 長 く 続 く 場 合 、 xz は デ フ ォ ル ト で ス パ ー ス フ ァ イ ル を 生 成 し よ う と し ま す 。 こ の よ う な 処 理 は 、 た と え 出 力 先 が 標 準 出 力 で あ っ て も 、 こ の 標 準 出 力 が 通 常 フ ァ イ ル に 結 び つ い て い て 、 か つ 所 定 の 条 件 を い く つ か 満 た す こ と で 安 全 に 処 理 が 進 め ら れ る の で あ れ ば 、 同 様 に 処 理 さ れ ま す 。 ス パ ー ス フ ァ イ ル を 生 成 す れ ば 、 デ ィ ス ク 容 量 を 節 約 で き ま す 。 ま た デ ィ ス ク I/O の 回 数 が 減 る の で 、 伸 長 処 理 時 間 が 短 縮 さ れ ま す 。

-S .suf , --suffix= .suf

圧 縮 処 理 に お い て は 、 目 的 と す る フ ァ イ ル の サ フ ィ ッ ク ス を .xz .lzma で は な く .suf と し ま す 。 標 準 出 力 へ の 書 き 出 し で は な く 、 ソ ー ス フ ァ イ ル が す で に サ フ ィ ッ ク ス .suf を 持 っ て い た 場 合 は 、 警 告 メ ッ セ ー ジ が 表 示 さ れ て 、 そ の フ ァ イ ル の 処 理 は ス キ ッ プ さ れ ま す 。

伸 長 処 理 に お い て は 、 フ ァ イ ル の サ フ ィ ッ ク ス を .xz , .txz , .lzma , .tlz に 加 え て .suf を 扱 う よ う に し ま す 。 ソ ー ス フ ァ イ ル の サ フ ィ ッ ク ス が .suf で あ る 場 合 、 こ の サ フ ィ ッ ク ス を 取 り 除 い た も の を 目 的 の フ ァ イ ル 名 と し ま す 。

生 の (raw) ス ト リ ー ム を 圧 縮 ま た は 伸 長 す る 場 合 ( --format=raw )、 標 準 出 力 に 書 き 込 む 場 合 を 除 き 、 サ フ ィ ッ ク ス は 必 ず つ け な け れ ば な り ま せ ん 。 生 の ス ト リ ー ム に 対 す る デ フ ォ ル ト の サ フ ィ ッ ク ス が な い た め で す 。

--files [ = file ]

処 理 対 象 と す る file の フ ァ イ ル 名 を 読 み 込 み ま す 。 file を 省 略 し た 場 合 、 フ ァ イ ル 名 は 標 準 入 力 か ら 読 み 込 ま れ ま す 。 フ ァ イ ル 名 は 改 行 文 字 に よ っ て 終 了 し て い な け れ ば な り ま せ ん 。 ダ ッ シ ュ ( - ) は 通 常 の フ ァ イ ル 名 と し て 扱 わ れ ま す 。 つ ま り 標 準 入 力 を 意 味 す る も の で は あ り ま せ ん 。 フ ァ イ ル 名 が コ マ ン ド ラ イ ン 引 数 か ら も 指 定 さ れ た 場 合 、 file か ら フ ァ イ ル 名 を 読 み 込 む 前 に そ の 指 定 が 処 理 さ れ ま す 。

--files0 [ = file ]

こ れ は --files [ = file ] と 同 等 で す 。 た だ し こ れ を 利 用 す る 場 合 、 各 フ ァ イ ル 名 は ヌ ル 文 字 で 区 切 ら れ て い な け れ ば な り ま せ ん 。

基 本 的 な フ ァ イ ル フ ォ ー マ ッ ト と 圧 縮 オ プ シ ョ ン

-F format , --format= format

圧 縮 ま た は 伸 長 を 行 う 際 の フ ァ イ ル フ ォ ー マ ッ ト を format に 指 定 し ま す 。

auto

こ れ が デ フ ォ ル ト の 設 定 で す 。 圧 縮 処 理 の 場 合 、 auto xz と 同 じ に な り ま す 。 伸 長 処 理 の 場 合 、 入 力 フ ァ イ ル の フ ォ ー マ ッ ト は 自 動 検 出 さ れ ま す 。 た だ し 生 の (raw) ス ト リ ー ム ( --format=raw に よ り 生 成 さ れ る ) は 自 動 検 出 さ れ ま せ ん 。

xz

フ ァ イ ル フ ォ ー マ ッ ト .xz と し て 圧 縮 し ま す 。 ま た 伸 長 時 に は .xz フ ァ イ ル の み を 受 け つ け ま す 。

lzma , alone

古 い フ ァ イ ル フ ォ ー マ ッ ト .lzma と し て 圧 縮 し ま す 。 ま た 伸 長 時 に は .lzma フ ァ イ ル の み を 受 け つ け ま す 。 別 名 alone は LZMA Utils と の 後 方 互 換 性 の た め に 提 供 さ れ て い ま す 。

raw

生 の (raw) ス ト リ ー ム を (ヘ ッ ダ ー は な し に し て ) 圧 縮 ま た は 伸 長 し ま す 。 こ れ は 上 級 者 向 け の 利 用 を 意 図 し て い ま す 。 生 の ス ト リ ー ム を デ コ ー ド す る た め に は 、 --format=raw の 指 定 、 お よ び 明 示 的 な フ ィ ル タ ー チ ェ ー ン (filter chain) の 指 定 が 必 要 で す 。 フ ィ ル タ ー チ ェ ー ン は 通 常 は コ ン テ ナ ー ヘ ッ ダ ー 内 に 保 存 さ れ ま す 。

-C check , --check= check

整 合 性 チ ェ ッ ク の タ イ プ を 指 定 し ま す 。 こ の チ ェ ッ ク は 伸 長 デ ー タ か ら 計 算 さ れ 、 .xz フ ァ イ ル 内 に 保 存 さ れ ま す 。 本 オ プ シ ョ ン は 、 .xz フ ォ ー マ ッ ト へ の 圧 縮 時 に の み 効 果 が あ り ま す 。 つ ま り .lzma フ ォ ー マ ッ ト で は 、 整 合 性 チ ェ ッ ク 機 能 は サ ポ ー ト さ れ て い ま せ ん 。 整 合 性 チ ェ ッ ク は (も し あ れ ば ) .xz フ ァ イ ル の 伸 長 時 に 検 証 さ れ ま す 。

サ ポ ー ト さ れ る check の タ イ プ は 以 下 で す :

none

整 合 性 チ ェ ッ ク を 一 切 行 い ま せ ん 。 通 常 は あ ま り よ く な い こ と で す 。 別 の 方 法 に よ っ て デ ー タ 整 合 性 が 検 証 さ れ る の で あ れ ば 、 こ の タ イ プ を 利 用 す る こ と が で き ま す 。

crc32

IEEE-802.3 (Ethernet) に よ る 多 項 式 を 利 用 し て CRC32 を 計 算 し ま す 。

crc64

ECMA-182 に よ る 多 項 式 を 用 い て CRC64 を 計 算 し ま す 。 こ れ が デ フ ォ ル ト で す 。 CRC32 に 比 べ る と 、 破 損 フ ァ イ ル の 検 出 に 若 干 有 利 で あ り 、 処 理 速 度 の 違 い は 気 に な ら な い 程 度 で あ る か ら で す 。

sha256

SHA-256 を 計 算 し ま す 。 CRC32 や CRC64 に 比 べ る と 、 処 理 速 度 が や や 劣 り ま す 。

.xz ヘ ッ ダ ー の 整 合 性 を 、 常 に CRC32 に よ っ て 検 証 し ま す 。 こ れ を 変 更 し た り 無 効 化 す る こ と は で き ま せ ん 。

--ignore-check

伸 長 時 に 圧 縮 デ ー タ の 整 合 性 チ ェ ッ ク を 検 証 し ま せ ん 。 .xz ヘ ッ ダ ー 内 に あ る CRC32 値 は 、 そ れ で も 普 通 に 検 証 さ れ ま す 。

こ の オ プ シ ョ ン が 何 を 行 う の か を 理 解 し て い な い 場 合 は 利 用 し な い で く だ さ い 。 本 オ プ シ ョ ン を 利 用 す る 状 況 は 以 下 の と お り で す :

壊 れ た .xz フ ァ イ ル か ら デ ー タ 回 復 を 試 み る 場 合 。

伸 長 処 理 の 速 度 改 善 を 図 る 場 合 。 こ の オ プ シ ョ ン が 効 果 が あ る の は 、 た い て い は 、 SHA-256 を 利 用 す る 場 合 、 ま た は 極 め て 効 率 よ く 圧 縮 さ れ た フ ァ イ ル の 場 合 で す 。 た だ し こ の 目 的 で あ っ て も 、 外 部 の 別 手 段 を 利 用 し て フ ァ イ ル 整 合 性 の 検 証 を 完 全 に 行 う 場 合 を 除 き 、 推 奨 さ れ ま せ ん 。

-0 ... -9

圧 縮 プ リ セ ッ ト レ ベ ル (preset level) を 選 択 し ま す 。 デ フ ォ ル ト は -6 で す 。 複 数 の プ リ セ ッ ト レ ベ ル が 指 定 さ れ た 場 合 、 最 後 に 指 定 さ れ た も の が 採 用 さ れ ま す 。 カ ス タ ム フ ィ ル タ ー チ ェ ー ン (custom filter chain) が す で に 指 定 さ れ て い る 場 合 、 圧 縮 プ リ セ ッ ト レ ベ ル の 指 定 に よ り 、 そ の カ ス タ ム フ ィ ル タ ー チ ェ ー ン の 指 定 は 解 除 さ れ ま す 。

プ リ セ ッ ト の 違 い は 、 gzip (1) や bzip2 (1) に は な い 重 要 な 意 味 が あ り ま す 。 圧 縮 処 理 に 対 す る プ リ セ ッ ト 指 定 は 、 伸 長 時 に お け る メ モ リ 容 量 を 決 定 づ け ま す 。 し た が っ て よ り 高 度 な プ リ セ ッ ト レ ベ ル を 用 い る と 、 小 容 量 の RAM し か な い 旧 来 の シ ス テ ム で は 、 伸 長 時 に 相 当 な 負 荷 が か か る か も し れ ま せ ん 。 特 に gzip (1) や bzip2 (1) で は -9 を よ く 指 定 し ま す が 、 xz で は 何 も 考 え ず 常 に -9 を 用 い る の は 得 策 で は あ り ま せ ん

-0 ... -3

比 較 的 速 い プ リ セ ッ ト で す 。 -0 gzip -9 よ り も 圧 縮 性 能 が よ く 、 高 速 に 処 理 さ れ ま す 。 よ り 高 い プ リ セ ッ ト 値 で は 、 bzip2 (1) と 同 等 ま た は そ れ 以 上 の 圧 縮 率 が 得 ら れ 、 よ り 高 速 に 処 理 さ れ ま す 。 た だ し こ の 結 果 は 、 圧 縮 を 行 う デ ー タ タ イ プ に 大 き く 依 存 し ま す 。

-4 ... -6

古 い シ ス テ ム で の 利 用 時 で も 伸 長 処 理 に お け る メ モ リ 利 用 は 妥 当 な も の で 、 圧 縮 処 理 も 良 好 に 行 わ れ ま す 。 -6 が デ フ ォ ル ト で す 。 た と え ば 、 た っ た 16 MiB の RAM し か な い シ ス テ ム 上 に お い て 伸 長 処 理 を 行 う こ と に な っ て も 、 こ れ を 選 ん で お け ば 間 違 い は な く 、 配 布 を 問 題 な く 行 う こ と が で き ま す 。 ( -5e -6e を 選 ぶ こ と も 有 効 か も し れ ま せ ん 。 --extreme 参 照 の こ と 。 )

-7 ... -9

こ れ ら は -6 と 同 様 で す が 、 よ り 高 圧 縮 に な る と と も に 、 伸 長 時 は よ り 多 く の メ モ リ を 必 要 と し ま す 。 こ れ が 有 効 に な る の は 、 圧 縮 フ ァ イ ル が そ れ ぞ れ 8 MiB, 16 MiB, 32 MiB を 超 え る 場 合 で す 。

同 一 の ハ ー ド ウ ェ ア 上 で あ れ ば 、 伸 長 に か か る 処 理 速 度 は 毎 秒 、 デ ー タ 圧 縮 に 要 し た バ イ ト 数 の 倍 数 に ほ ぼ 一 致 し ま す 。 言 い 換 え る と 、 通 常 は 圧 縮 率 が 高 け れ ば 伸 長 処 理 は 速 く な り ま す 。 と い う こ と は つ ま り 、 単 位 時 間 内 に 生 成 さ れ る 伸 長 処 理 の 出 力 デ ー タ 量 は 、 状 況 に よ り さ ま ざ ま で あ る と い う こ と で す 。

以 下 の 表 は プ リ セ ッ ト の 特 徴 を ま と め た も の で す 。

Image grohtml-53446-1.png

各 カ ラ ム は 以 下 の と お り で す 。

DictSize と は LZMA2 辞 書 サ イ ズ で す 。 辞 書 を 利 用 す る と 、 伸 長 す る フ ァ イ ル サ イ ズ 以 上 に メ モ リ を 消 費 し ま す 。 つ ま り -7 ... -9 は 、 本 当 に 利 用 す る 必 要 が な い の で あ れ ば 、 用 い る べ き で な い 理 由 が こ こ に あ り ま す 。 -6 ま た は こ れ 未 満 に お い て 、 消 費 さ れ る メ モ リ 容 量 は 通 常 は 十 分 に 少 な く 、 問 題 に な ら な い 程 度 で す 。

CompCPU と は LZMA2 設 定 に お け る 簡 易 表 現 で あ り 、 圧 縮 速 度 に 影 響 を 及 ぼ す も の で す 。 辞 書 サ イ ズ も も ち ろ ん 速 度 に 影 響 し ま す 。 し た が っ て CompCPU が 同 一 で あ る -6 ... -9 に 対 し て は 、 プ リ セ ッ ト 値 が 高 く な る ほ ど 、 処 理 速 度 が 低 下 す る 傾 向 に あ り ま す 。 処 理 が 低 下 す る と い う こ と は 、 そ の 分 、 圧 縮 率 が 向 上 す る 可 能 性 が あ り ま す 。 --extreme を 参 照 し て く だ さ い 。

CompMem は シ ン グ ル ス レ ッ ド モ ー ド に お い て 、 圧 縮 処 理 時 の メ モ リ 消 費 量 を 表 し ま す 。 こ れ は xz バ ー ジ ョ ン が 異 な る こ と で 変 化 す る 場 合 が あ り ま す 。 メ モ リ 消 費 量 は 、 マ ル チ ス レ ッ ド モ ー ド で の 機 能 に よ っ て は 、 シ ン グ ル ス レ ッ ド モ ー ド よ り も 急 激 に 高 ま る 場 合 が あ り ま す 。

DecMem は 伸 長 処 理 時 に お け る メ モ リ 消 費 量 を 表 し ま す 。 つ ま り 圧 縮 時 の 設 定 が 、 伸 長 処 理 時 の メ モ リ 消 費 量 を 決 定 づ け る も の で す 。 実 際 に 伸 長 処 理 に お け る メ モ リ 消 費 量 は 、 LZMA2 辞 書 サ イ ズ よ り 若 干 大 き く な り ま す 。 た だ し 上 の 表 に 示 し た 値 は 、 き れ い な MiB 値 に な る よ う に 切 り 上 げ て い ま す 。

-e , --extreme

指 定 さ れ て い る プ リ セ ッ ト レ ベ ル ( -0 ... -9 ) に 比 較 し て 、 よ り 遅 い 処 理 方 式 (variant) を 用 い ま す 。 こ れ に よ り 少 し で も 高 圧 縮 率 が 得 ら れ る よ う に し ま す 。 た だ し 場 合 に よ っ て は 、 期 待 に 沿 わ な い 結 果 と な る こ と も あ り ま す 。 伸 長 処 理 時 に お け る メ モ リ 利 用 量 に は 影 響 し ま せ ん 。 た だ し 圧 縮 処 理 時 の メ モ リ 利 用 量 は 、 そ の と き の レ ベ ル が -0 ... -3 で あ る 場 合 に は 若 干 増 加 し ま す 。

辞 書 サ イ ズ を 4 MiB、 8 MiB と す る プ リ セ ッ ト が 2 つ ず つ あ り 、 プ リ セ ッ ト -3e -5e は そ れ ぞ れ -4e -6e に 比 べ て 若 干 高 速 に な る (CompCPU は 低 く な る ) 設 定 で す 。 こ の よ う に し て 2 つ の プ リ セ ッ ト が 異 な る こ と に な り ま す 。

Image grohtml-53446-2.png

た と え ば 8 MiB の 辞 書 サ イ ズ と な る プ リ セ ッ ト は 、 全 部 で 4 つ あ り ま す 。 こ れ ら に お い て 処 理 が 高 速 と な る 順 は -5 , -6 , -5e , -6e で す 。

--fast

--best

こ れ ら は そ れ ぞ れ -0 -9 に 対 す る エ イ リ ア ス で す が 、 や や 誤 解 を 招 き や す い も の で す 。 こ れ は LZMA Utils と の 後 方 互 換 性 の た め に 提 供 さ れ て い ま す 。 こ の オ プ シ ョ ン を 利 用 す る こ と は 避 け て く だ さ い 。

--block-size= size

.xz フ ォ ー マ ッ ト に 圧 縮 す る 場 合 に 、 入 力 デ ー タ を size バ イ ト ご と の ブ ロ ッ ク に 分 割 し ま す 。 こ の ブ ロ ッ ク は 互 い に 独 立 し て 圧 縮 さ れ ま す 。 こ れ は マ ル チ ス レ ッ ド 対 応 の た め で あ り 、 限 定 さ れ た ラ ン ダ ム ア ク セ ス 伸 張 を 可 能 に し ま す 。 こ の オ プ シ ョ ン に よ っ て 、 通 常 は マ ル チ ス レ ッ ド モ ー ド で の デ フ ォ ル ト ブ ロ ッ ク サ イ ズ を オ ー バ ー ラ イ ド し ま す 。 た だ し こ の オ プ シ ョ ン は 、 シ ン グ ル ス レ ッ ド モ ー ド で も 利 用 す る こ と が で き ま す 。

マ ル チ ス レ ッ ド モ ー ド に お い て は 、 size バ イ ト の お よ そ 3 倍 分 が 、 各 ス レ ッ ド の 入 出 力 バ ッ フ ァ と し て 割 り 当 て ら れ ま す 。 デ フ ォ ル ト の size は LZMA2 辞 書 サ イ ズ の 3 倍 か 、 1 MiB の い ず れ か 大 き い 方 に な り ま す 。 通 常 な ら 、 LZMA2 辞 書 サ イ ズ の 2 ~ 4 倍 か 、 最 低 1 MiB が 適 正 な 値 で す 。 size に LZMA2 辞 書 サ イ ズ よ り も 小 さ な 値 を 用 い る と 、 RAM を 無 駄 に 消 費 し ま す 。 LZMA2 辞 書 の バ ッ フ ァ は す べ て が 十 分 に 利 用 さ れ る こ と は な い た め で す 。 ブ ロ ッ ク サ イ ズ は ブ ロ ッ ク ヘ ッ ダ ー 内 に 保 存 さ れ ま す 。 こ れ は xz の 将 来 版 に お い て 、 マ ル チ ス レ ッ ド で の 伸 長 処 理 に 利 用 さ れ る 予 定 で す 。

シ ン グ ル ス レ ッ ド モ ー ド で は 、 デ フ ォ ル ト で は ブ ロ ッ ク 分 割 処 理 は 行 わ れ ま せ ん 。 本 オ プ シ ョ ン を 設 定 し て も 、 メ モ リ 利 用 量 に は 影 響 し ま せ ん 。 サ イ ズ 情 報 は ブ ロ ッ ク ヘ ッ ダ ー に 保 存 さ れ な い た め 、 シ ン グ ル モ ー ド に お い て 生 成 さ れ た フ ァ イ ル は 、 マ ル チ ス レ ッ ド で 生 成 さ れ た フ ァ イ ル と 同 一 に は な ら な く な り ま す 。 サ イ ズ 情 報 を 含 ん で い な い と い う こ と は 、 つ ま り xz の 将 来 版 に お い て 、 マ ル チ ス レ ッ ド モ ー ド に お け る 伸 長 処 理 が 不 能 と な る 場 合 が あ る こ と を 意 味 し ま す 。

--block-list= sizes

.xz フ ォ ー マ ッ ト に 圧 縮 す る 場 合 に 、 非 圧 縮 デ ー タ か ら 指 定 さ れ た 間 隔 分 を あ け て 、 新 た な ブ ロ ッ ク を 開 始 し ま す 。

非 圧 縮 ブ ロ ッ ク の sizes は 、 カ ン マ 区 切 り リ ス ト と し て 指 定 し ま す 。 サ イ ズ を 省 略 す る (2 つ 以 上 の 連 続 し た カ ン マ の み を 記 述 す る ) と 、 そ れ は 省 略 表 記 と し て 前 ブ ロ ッ ク の サ イ ズ を 利 用 す る 指 定 と な り ま す 。

入 力 フ ァ イ ル が size の 合 計 よ り も 大 き か っ た 場 合 、 sizes の 最 後 に 指 定 さ れ た 値 を 用 い て 、 入 力 フ ァ イ ル を 繰 り 返 し 処 理 し ま す 。 特 別 な 設 定 値 と し て 0 を 用 い る と 、 こ れ が 最 終 の 値 と し て 用 い ら れ 、 フ ァ イ ル の 残 り の デ ー タ を 単 一 の ブ ロ ッ ク と し て エ ン コ ー ド 処 理 を 行 う こ と を 指 示 し ま す 。

sizes に 設 定 し た 値 が 、 エ ン コ ー ド 処 理 す る ブ ロ ッ ク サ イ ズ (ス レ ッ ド モ ー ド に お け る デ フ ォ ル ト 値 、 あ る い は --block-size= size に 指 定 さ れ た 値 ) を 超 え る 場 合 、 sizes に 指 定 さ れ た ブ ロ ッ ク 範 囲 を 超 え た と こ ろ で 追 加 の ブ ロ ッ ク を 生 成 し ま す 。 た と え ば --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB と 指 定 し 、 入 力 フ ァ イ ル が 80 MiB で あ っ た 場 合 、 合 計 で 11 ブ ロ ッ ク 、 つ ま り 順 番 に 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, 1 MiB の ブ ロ ッ ク と な り ま す 。

マ ル チ ス レ ッ ド モ ー ド の 場 合 、 ブ ロ ッ ク サ イ ズ は ブ ロ ッ ク ヘ ッ ダ ー 内 に 保 存 さ れ ま す 。 こ れ は シ ン グ ル ス レ ッ ド モ ー ド で は 行 わ れ ま せ ん 。 し た が っ て エ ン コ ー ド 処 理 結 果 は 、 マ ル チ ス レ ッ ド モ ー ド に よ る も の と は 同 一 に な り ま せ ん 。

--flush-timeout= timeout

圧 縮 時 に 、 前 回 の フ ラ ッ シ ュ 処 理 か ら timeout ミ リ 秒 (正 の 整 数 )以 上 経 過 し 、 そ れ 以 上 の 入 力 を 読 み 取 る と ブ ロ ッ ク さ れ る よ う な 場 合 、 処 理 中 断 し て い た 入 力 デ ー タ が エ ン コ ー ド 処 理 か ら フ ラ ッ シ ュ さ れ て 、 出 力 ス ト リ ー ム で の 利 用 が 可 能 に な り ま す 。 こ う い っ た 処 理 は 、 xz が ネ ッ ト ワ ー ク 越 し に ス ト リ ー ム さ れ た デ ー タ を 圧 縮 す る 際 に 活 用 さ れ ま す 。 timeout に 小 さ な 値 を 設 定 し て お く と 、 受 信 し た デ ー タ の 最 終 分 を 利 用 す る 際 に 、 わ ず か な 遅 延 を 起 こ す も の と な り ま す 。 も っ と も こ の timeout に 大 き な 値 を 設 定 し て お け ば 、 高 圧 縮 率 が 得 ら れ ま す 。

こ の 機 能 は デ フ ォ ル ト で は 無 効 化 さ れ て い ま す 。 本 オ プ シ ョ ン が 複 数 回 指 定 さ れ る と 、 最 後 の 指 定 が 適 用 さ れ ま す 。 特 別 な 値 と し て timeout 0 を 設 定 す る と 、 本 機 能 を 明 示 的 に 無 効 に す る も の と な り ま す 。

本 機 能 は 非 POSIX シ ス テ ム 上 で は 利 用 で き ま せ ん 。

な お 本 機 能 は ま だ 実 験 段 階 の も の で す 。 今 の と こ ろ xz の バ ッ フ ァ リ ン グ 方 法 に 問 題 が あ る た め 、 ス ト リ ー ム を リ ア ル タ イ ム で 伸 長 す る 処 理 に は 適 し て い ま せ ん 。

--memlimit-compress= limit

圧 縮 時 の メ モ リ 利 用 制 限 を 設 定 し ま す 。 本 オ プ シ ョ ン が 複 数 回 指 定 さ れ た 場 合 、 最 後 の 指 定 が 適 用 さ れ ま す 。

圧 縮 設 定 が limit を 超 え た 場 合 、 xz は そ の 設 定 を 引 き 下 げ て 、 制 限 を 超 え な い よ う に し ま す 。 そ し て 自 動 調 整 が な さ れ た こ と を 出 力 表 示 し ま す 。 こ の よ う な 調 整 処 理 は 、 圧 縮 処 理 に あ た っ て --format=raw --no-adjust が 指 定 さ れ た 場 合 に は 行 わ れ ま せ ん 。 こ の 場 合 xz は エ ラ ー を 表 示 し て 、 終 了 ス テ ー タ ス 1 を 返 し て 終 了 し ま す 。

limit を 指 定 す る 方 法 は い く つ か あ り ま す 。

limit に バ イ ト 数 の 絶 対 値 を 指 定 し ま す 。 こ の 際 に は MiB の よ う な 整 数 サ フ ィ ッ ク ス を 利 用 す る の が 便 利 で す 。 た と え ば --memlimit-compress=80MiB と し ま す 。

limit に 物 理 メ モ リ (RAM) の 総 容 量 に 対 す る パ ー セ ン ト を 指 定 す る こ と が で き ま す 。 環 境 変 数 XZ_DEFAULTS を 用 い て さ ま ざ ま な コ ン ピ ュ ー タ ー 間 に お い て 、 シ ェ ル 初 期 化 ス ク リ プ ト を 利 用 す る よ う な 場 合 に 特 に 活 用 す る こ と が で き ま す 。 こ の 方 法 を 用 い る と 、 よ り メ モ リ 容 量 の 多 い シ ス テ ム で は 、 自 動 的 に 制 限 値 が 大 き く な り ま す 。 た と え ば --memlimit-compress=70% と し ま す 。

limit 0 に 指 定 す れ ば 、 デ フ ォ ル ト 設 定 に 戻 す こ と が で き ま す 。 現 時 点 で は limit max (メ モ リ 利 用 制 限 な し ) と 指 定 す る こ と と 同 じ で す 。 た だ し 、 マ ル チ ス レ ッ ド 対 応 が 実 装 さ れ た ら 、 マ ル チ ス レ ッ ド 処 理 時 の 0 max の 意 味 が 変 わ る か も し れ ま せ ん 。 し た が っ て 詳 細 が 決 定 す る ま で の 間 は 、 max で は な く 0 を 用 い て お く こ と を お 勧 め し ま す 。

32 ビ ッ ト 版 xz に は 特 別 な ケ ー ス が あ り ま す 。 limit の 設 定 が 4020 MiB を 超 え る 場 合 、 limit 4020 MiB に 設 定 さ れ ま す 。 (そ う な っ た と し て も 0 max に は 影 響 し ま せ ん 。 な お 伸 長 処 理 に こ の よ う な 機 能 は あ り ま せ ん 。 ) こ の 機 能 が 他 に 支 障 を 引 き 起 こ さ な い 限 り は 、 32 ビ ッ ト 実 行 モ ジ ュ ー ル が 4 GiB ア ド レ ス 空 間 に ア ク セ ス す る も の と し て 有 用 で す 。

メ モ リ 利 用 の セ ク シ ョ ン も 参 照 し て く だ さ い 。

--memlimit-decompress= limit

伸 長 時 の メ モ リ 利 用 制 限 を 設 定 し ま す 。 こ れ は --list モ ー ド に 影 響 し ま す 。 limit を 超 え な け れ ば 処 理 で き な く な っ た 場 合 、 xz は エ ラ ー を 表 示 し て 伸 長 処 理 は 失 敗 し ま す 。 limit の 設 定 す る 別 の 方 法 に つ い て は --memlimit-compress= limit を 参 照 し て く だ さ い 。

-M limit , --memlimit= limit , --memory= limit

こ れ は --memlimit-compress= limit --memlimit-decompress= limit と 指 定 す る こ と と 同 じ で す 。

--no-adjust

圧 縮 設 定 が メ モ リ 利 用 制 限 を 超 え た 場 合 、 xz は エ ラ ー を 表 示 し て 終 了 し ま す 。 デ フ ォ ル ト で は 、 設 定 内 容 は 引 き 下 げ ら れ る 方 向 に 調 整 さ れ ま す 。 そ の よ う に し て メ モ リ 利 用 制 限 を 超 え な い よ う に し ま す 。 こ の 自 動 調 整 機 能 は 、 生 の (raw) ス ト リ ー ム 生 成 時 ( --format=raw 指 定 時 ) は 常 に 無 効 で す 。

-T threads , --threads= threads

ワ ー カ ー ス レ ッ ド 数 を 指 定 し ま す 。 threads に 対 し て 特 別 な 値 0 を 指 定 す る と 、 xz は シ ス テ ム 上 の CPU コ ア 分 の ス レ ッ ド を 利 用 し ま す 。 実 際 の ス レ ッ ド 数 は threads の 指 定 値 よ り 小 さ く な る こ と が あ り ま す 。 そ れ は 入 力 フ ァ イ ル の サ イ ズ が 、 指 定 さ れ た ス レ ッ ド を 必 要 と す る ほ ど に は 大 き く な い 場 合 や 、 ス レ ッ ド を 多 く 利 用 し す ぎ る こ と に よ っ て メ モ リ 利 用 制 限 を 超 え る 場 合 な ど で す 。

現 在 行 わ れ て い る ス レ ッ ド 処 理 方 法 は 1 つ だ け で す 。 入 力 デ ー タ を ブ ロ ッ ク 分 け し て 、 互 い に 独 立 し て 圧 縮 を 行 う と い う 方 法 で す 。 デ フ ォ ル ト の ブ ロ ッ ク サ イ ズ は 、 圧 縮 レ ベ ル に 依 存 し ま す 。 こ れ は --block-size= size オ プ シ ョ ン に よ っ て オ ー バ ー ラ イ ド す る こ と が で き ま す 。

伸 長 処 理 時 の ス レ ッ ド 化 は ま だ 実 装 さ れ て い ま せ ん 。 ス レ ッ ド 化 に 対 応 し て い る の は 、 入 力 フ ァ イ ル に 複 数 ブ ロ ッ ク が 含 ま れ て い て 、 そ の サ イ ズ 情 報 が ブ ロ ッ ク ヘ ッ ダ ー に 存 在 し て い る フ ァ イ ル の み で す 。 マ ル チ ス レ ッ ド モ ー ド に お い て 圧 縮 さ れ た フ ァ イ ル は 、 こ の 条 件 を す べ て 満 た し ま す 。 し か し シ ン グ ル ス レ ッ ド モ ー ド に お い て 圧 縮 さ れ た フ ァ イ ル で は 、 --block-size= size を 指 定 し て い た と し て も 、 こ の 条 件 を 満 た し ま せ ん 。

カ ス タ ム 圧 縮 フ ィ ル タ ー チ ェ ー ン

カ ス タ ム フ ィ ル タ ー チ ェ ー ン (custom filter chain) を 用 い る と 、 圧 縮 設 定 を 細 か く 設 定 す る こ と が で き 、 プ リ セ ッ ト 値 に 関 連 づ い た 設 定 に 頼 る 必 要 が な く な り ま す 。 カ ス タ ム フ ィ ル タ ー チ ェ ー ン が 指 定 さ れ る と 、 コ マ ン ド ラ イ ン 上 で プ リ セ ッ ト オ プ シ ョ ン ( -0 ... -9 お よ び --extreme ) が 初 め に 指 定 さ れ て い て も 無 視 さ れ ま す 。 ま た 複 数 の カ ス タ ム フ ィ ル タ ー 指 定 の 後 ろ に プ リ セ ッ ト オ プ シ ョ ン が 指 定 さ れ た 場 合 は 、 新 た な 意 味 に な る プ リ セ ッ ト 指 定 が 採 用 さ れ て 、 そ れ よ り も 前 に 指 定 さ れ て い た カ ス タ ム フ ィ ル タ ー チ ェ ー ン は 無 視 さ れ ま す 。

フ ィ ル タ ー チ ェ ー ン と い う も の は 、 コ マ ン ド ラ イ ン 上 の パ イ プ 処 理 と 同 じ よ う に 動 作 し ま す 。 圧 縮 時 に は 、 伸 長 さ れ て い る 入 力 デ ー タ が 1 つ め の フ ィ ル タ ー に 受 け 渡 さ れ ま す 。 そ し て そ の 出 力 は 、 次 の フ ィ ル タ ー が あ れ ば そ こ に 受 け 渡 さ れ ま す 。 最 終 の フ ィ ル タ ー か ら 出 力 さ れ る 結 果 が 、 圧 縮 フ ァ イ ル と し て 書 き 出 さ れ ま す 。 指 定 で き る フ ィ ル タ ー チ ェ ー ン は 最 大 4 つ ま で で す 。 通 常 、 フ ィ ル タ ー チ ェ ー ン を 利 用 す る の は 、 せ い ぜ い 1 つ か 2 つ ま で で す 。

フ ィ ル タ ー の 多 く は 、 ど こ に 記 述 す る か と い う 制 限 が あ り ま す 。 た と え ば フ ィ ル タ ー の 中 に は チ ェ ー ン 内 の 最 終 フ ィ ル タ ー と し て し か 動 作 し な い も の が あ り ま す 。 逆 に 最 終 フ ィ ル タ ー と し て は 動 作 し な い も の も あ り ま す 。 も ち ろ ん ど の 場 所 に 置 い て も 動 作 す る も の も 存 在 し ま す 。 フ ィ ル タ ー に も よ り ま す が 、 こ う い っ た 制 約 は フ ィ ル タ ー 設 計 に よ っ て 発 生 し て い る 場 合 や 、 セ キ ュ リ テ ィ 問 題 を 回 避 す る た め に 存 在 し て い る 場 合 も あ り ま す 。

カ ス タ ム フ ィ ル タ ー チ ェ ー ン は 、 フ ィ ル タ ー オ プ シ ョ ン を 必 要 な 分 だ け 、 ま た フ ィ ル タ ー チ ェ ー ン の 中 で 実 行 さ せ た い 順 番 で 指 定 し ま す 。 つ ま り フ ィ ル タ ー オ プ シ ョ ン と し て 指 定 す る 順 番 が 極 め て 重 要 で す 。 生 の (raw) ス ト リ ー ム ( --format=raw 指 定 ) を デ コ ー ド す る 際 に は 、 そ れ が 圧 縮 さ れ た 際 に 指 定 さ れ た 順 番 ど お り の フ ィ ル タ ー チ ェ ー ン を 指 定 し ま す 。

フ ィ ル タ ー に は 、 フ ィ ル タ ー 固 有 の options が あ り 、 カ ン マ で 区 切 っ た リ ス ト に よ り 指 定 し ま す 。 options に 余 計 な カ ン マ が あ る と 無 視 さ れ ま す 。 す べ て の オ プ シ ョ ン に は デ フ ォ ル ト 値 が 設 定 さ れ て い ま す 。 し た が っ て オ プ シ ョ ン は 、 変 更 し た い も の の み 指 定 す る だ け で 十 分 で す 。

フ ィ ル タ ー チ ェ ー ン と options を す べ て 見 る に は xz -vv を 入 力 し ま す (つ ま り --verbose を 2 回 指 定 し ま す )。 こ れ に よ り 、 プ リ セ ッ ト が 利 用 す る フ ィ ル タ ー チ ェ ー ン オ プ シ ョ ン も 参 照 す る こ と が で き ま す 。
--lzma1
[ = options ]
--lzma2
[ = options ]

フ ィ ル タ ー LZMA1 お よ び LZMA2 を フ ィ ル タ ー チ ェ ー ン に 追 加 し ま す 。 こ れ ら の フ ィ ル タ ー は 、 チ ェ ー ン 内 の 最 終 フ ィ ル タ ー と し て の み 利 用 で き ま す 。

LZMA1 は 古 い フ ィ ル タ ー で す 。 古 い .lzma フ ァ イ ル フ ォ ー マ ッ ト は LZMA1 の み に 対 応 し て い て 、 つ ま り こ の フ ィ ル タ ー は .lzma 向 け だ け に サ ポ ー ト さ れ て い ま す 。 LZMA2 は LZMA1 の 更 新 版 で あ り 、 LZMA1 が 抱 え て い る 具 体 的 な 問 題 を 修 正 し て い ま す 。 .xz フ ォ ー マ ッ ト は LZMA2 を 利 用 し て い て 、 LZMA1 に は 一 切 対 応 し て い ま せ ん 。 圧 縮 速 度 お よ び 圧 縮 率 は 、 LZMA1 と LZMA2 に お い て 実 質 変 わ り ま せ ん 。

LZMA1 と LXMA2 に お け る options は 共 通 し て い ま す 。

preset= preset

LZMA1 お よ び LZMA2 の options を す べ て preset に リ セ ッ ト し ま す 。 preset は 整 数 に よ り 構 成 さ れ 、 英 字 1 文 字 か ら な る プ リ セ ッ ト 修 飾 子 を つ け る 場 合 が あ り ま す 。 整 数 と は 0 か ら 9 ま で の 値 で あ り 、 コ マ ン ド ラ イ ン オ プ シ ョ ン -0 ... -9 に 対 応 し ま す 。 プ リ セ ッ ト 修 飾 子 と は 、 今 の と こ ろ e と い う も の の み が サ ポ ー ト さ れ て い ま す 。 こ れ は --extreme に 対 応 し ま す 。 preset の 指 定 が な か っ た 場 合 、 LZMA1 お よ び LZMA2 の options は と も に プ リ セ ッ ト 6 に 対 応 す る 値 が デ フ ォ ル ト し て 採 用 さ れ ま す 。

dict= size

辞 書 の (履 歴 バ ッ フ ァ の ) size は 、 直 近 に メ モ リ 上 で 処 理 さ れ 保 持 さ れ て い る 伸 長 デ ー タ の バ イ ト 量 を 表 し ま す 。 そ の ア ル ゴ リ ズ ム で は 、 伸 長 デ ー タ の 中 か ら バ イ ト シ ー ケ ン ス の 繰 り 返 し (合 致 す る も の ) を 探 し 出 そ う と し ま す 。 そ し て そ の 時 点 で の 辞 書 内 デ ー タ へ の 参 照 に 置 き 換 え ま す 。 辞 書 が 大 き く な れ ば 、 そ れ だ け 合 致 す る 機 会 は 増 え る こ と に な り ま す 。 つ ま り 辞 書 の size を 増 や し て お け ば 、 普 通 は 圧 縮 率 が 向 上 し ま す 。 た だ し 伸 長 フ ァ イ ル 以 上 に 辞 書 サ イ ズ が 大 き い と 、 メ モ リ を 無 駄 に 消 費 し ま す 。

辞 書 の size は 通 常 は 64 KiB か ら 64 MiB で す 。 最 小 で も 4 KiB で す 。 圧 縮 用 の 最 大 値 は 、 今 の と こ ろ 1.5 GiB (1536 MiB) で す 。 伸 長 処 理 に お い て は 4 GiB 未 満 、 1 バ イ ト ま で の 辞 書 が す で に サ ポ ー ト さ れ て い ま す 。 4 GiB は LZMA1 お よ び LZMA2 の ス ト リ ー ム フ ォ ー マ ッ ト に お け る 最 大 値 で す 。

辞 書 の size と マ ッ チ 検 索 処 理 (match finder; mf ) は と も に 、 LZMA1 ま た は LZMA2 の エ ン コ ー ド 処 理 に お け る メ モ リ 利 用 量 を 決 定 づ け ま す 。 伸 長 処 理 に お い て は 、 圧 縮 時 に 用 い ら れ た 辞 書 size と 同 じ (あ る い は そ れ よ り も 大 き い ) サ イ ズ が 必 要 に な り ま す 。 つ ま り 伸 長 処 理 時 の メ モ リ 利 用 量 は 、 圧 縮 時 に 用 い ら れ た 辞 書 サ イ ズ に よ っ て 決 定 し ま す 。 .xz ヘ ッ ダ ー に は 辞 書 の size が 、 2ˆ n ま た は 2ˆ n + 2ˆ( n -1) の い ず れ か と し て 保 存 さ れ ま す 。 し た が っ て こ の sizes は ど ち ら か と 言 う と 、 圧 縮 時 に 適 し た も の で す 。 こ れ 以 外 の sizes .xz ヘ ッ ダ ー に 保 存 さ れ る 際 に 切 り 上 げ ら れ ま す 。

lc= lc

リ テ ラ ル コ ン テ キ ス ト (literal context) の ビ ッ ト 数 を 指 定 し ま す 。 最 小 値 は 0、 最 大 値 は 4、 デ フ ォ ル ト は 3 で す 。 ま た lc lp を 合 計 し た 値 は 4 を 超 え て は な り ま せ ん 。

エ ン コ ー ド 処 理 に 際 し て 合 致 し な か っ た バ イ ト は 、 す べ て リ テ ラ ル と し て エ ン コ ー ド さ れ ま す 。 つ ま り リ テ ラ ル と は 、 1 回 に 1 つ ず つ エ ン コ ー ド さ れ る 、 単 純 な 8 ビ ッ ト の バ イ ト 列 で す 。

リ テ ラ ル の 処 理 で は 、 直 前 に 伸 長 し た バ イ ト の 上 位 lc ビ ッ ト は 、 次 の バ イ ト と 相 関 関 係 に あ る こ と を 前 提 に し て い ま す 。 た と え ば 通 常 の 英 文 の 場 合 、 英 大 文 字 の 次 に た い て い は 小 文 字 が 続 き ま す 。 そ し て そ の 小 文 字 の 次 に は 、 た い て い は 別 の 小 文 字 が 続 き ま す 。 ま た US-ASCII キ ャ ラ ク タ ー セ ッ ト の 場 合 、 大 文 字 の 上 位 3 ビ ッ ト は 010 で あ り 、 小 文 字 の 場 合 は 011 で す 。 lc が 最 低 3 と し て 設 定 さ れ て い れ ば 、 リ テ ラ ル 処 理 は 伸 長 デ ー タ 内 の こ の 特 性 を 利 用 す る こ と が で き ま す 。

デ フ ォ ル ト 値 (3) は 通 常 は う ま く 動 作 し ま す 。 圧 縮 率 を 最 大 に し た い 場 合 は lc=4 を 試 し て み て く だ さ い 。 こ れ に よ っ て 多 少 は う ま く い く こ と が あ り ま す が 、 場 合 に よ っ て は 圧 縮 率 が 悪 く な る こ と も あ り ま す 。 も し 悪 く な っ た 場 合 に は lc=2 と い っ た 指 定 も 試 し て み て く だ さ い 。

lp= lp

リ テ ラ ル ポ ジ シ ョ ン (literal position) の ビ ッ ト 数 を 指 定 し ま す 。 最 小 値 は 0、 最 大 値 は 4、 デ フ ォ ル ト は 0 で す 。

lp は リ テ ラ ル を エ ン コ ー ド す る 際 に 、 伸 長 デ ー タ 内 に お い て ど の よ う な バ イ ト の 並 び (alignment) を 前 提 に す る の か と い う 点 に 影 響 し ま す 。 バ イ ト の 並 び に 関 す る 詳 細 は 、 以 下 の pb を 参 照 し て く だ さ い 。

pb= pb

ポ ジ シ ョ ン の ビ ッ ト 数 を 指 定 し ま す 。 最 小 値 は 0、 最 大 値 は 4、 デ フ ォ ル ト は 2 で す 。

pb は 全 般 に 、 伸 長 デ ー タ 内 に お い て ど の よ う な バ イ ト の 並 び (alignment) を 前 提 に す る の か と い う 点 に 影 響 し ま す 。 デ フ ォ ル ト 値 は 4 バ イ ト の 並 び を 意 味 し ま す (2ˆ pb =2ˆ2=4)。 他 に 類 推 す る 手 段 が な い 場 合 に は 、 こ れ が う ま く 動 作 し ま す 。

バ イ ト の 並 び 方 が わ か っ て い る 場 合 、 そ れ に 応 じ て pb を 設 定 し て お け ば 、 フ ァ イ ル サ イ ズ を や や 小 さ く で き る 場 合 が あ り ま す 。 た と え ば 1 バ イ ト 並 び の テ キ ス ト フ ァ イ ル (US-ASCII, ISO-8859-*, UTF-8) の 場 合 、 pb=0 に 設 定 し て お く と 、 圧 縮 率 が や や 向 上 し ま す 。 UTF-16 テ キ ス ト で あ れ ば pb=1 と す る の が 最 適 で す 。 バ イ ト の 並 び が 3 バ イ ト な ど の よ う な 奇 数 で あ る 場 合 、 pb=0 と す る の が 最 良 か も し れ ま せ ん 。

前 提 と な っ た バ イ ト の 並 び は pb lp を 使 っ て 調 整 が で き ま す が 、 そ れ で も LZMA1 や LZMA2 は 16 バ イ ト の 並 び の 方 が ふ さ わ し い も の で す 。 し た が っ て LZMA1 や LZMA2 を 使 っ て 圧 縮 す る こ と が 多 い フ ァ イ ル 形 式 を 設 計 す る 場 合 に は 、 こ の こ と に 配 慮 し て お く 価 値 が あ る か も し れ ま せ ん 。

mf= mf

マ ッ チ 検 索 処 理 (match finder) は 、 エ ン コ ー ド 処 理 速 度 、 メ モ リ 利 用 量 、 圧 縮 率 に 大 き な 影 響 を 与 え ま す 。 通 常 は バ イ ナ リ ツ リ ー に よ る マ ッ チ 検 索 処 理 よ り も 、 ハ ッ シ ュ チ ェ ー ン に よ る マ ッ チ 検 索 処 理 の 方 が 早 く な り ま す 。 デ フ ォ ル ト 値 は preset の 値 に よ り 変 わ り ま す 。 0 の と き は hc3 、 1-3 の と き は hc4 、 そ れ 以 外 は bt4 が デ フ ォ ル ト に な り ま す 。

マ ッ チ 検 索 処 理 は 以 下 に 示 す も の が サ ポ ー ト さ れ ま す 。 以 下 に 示 す メ モ リ 利 用 計 算 式 (memory usage formulas) は か な り の 概 算 で あ り 、 dict が 2 の べ き 乗 で あ る 場 合 に 、 実 際 の 値 に 最 も 近 く な り ま す 。

hc3

2 バ イ ト ま た は 3 バ イ ト ハ ッ シ ン グ (hashing) を 用 い た ハ ッ シ ュ チ ェ ー ン (hash chain)。

nice の 最 小 値 は 3 で す 。
メ モ リ 利 用 量 :
dict
* 7.5 ( dict <= 16 MiB で あ る 場 合 );
dict
* 5.5 + 64 MiB ( dict > 16 MiB で あ る 場 合 )

hc4

2 バ イ ト 、 3 バ イ ト 、 4 バ イ ト ハ ッ シ ン グ を 用 い た ハ ッ シ ュ チ ェ ー ン 。

nice の 最 小 値 は 4 で す 。
メ モ リ 利 用 量 :
dict
* 7.5 ( dict <= 32 MiB で あ る 場 合 );
dict
* 6.5 ( dict > 32 MiB で あ る 場 合 )

bt2

2 バ イ ト ハ ッ シ ン グ を 用 い た バ イ ナ リ ツ リ ー (binary tree)。

nice の 最 小 値 は 2 で す 。
メ モ リ 利 用 量 : dict * 9.5

bt3

2 バ イ ト と 3 バ イ ト ハ ッ シ ン グ を 用 い た バ イ ナ リ ツ リ ー 。

nice の 最 小 値 は 3 で す 。
メ モ リ 利 用 量 :
dict
* 11.5 ( dict <= 16 MiB で あ る 場 合 );
dict
* 9.5 + 64 MiB ( dict > 16 MiB で あ る 場 合 )

bt4

2 バ イ ト 、 3 バ イ ト 、 4 バ イ ト ハ ッ シ ン グ を 用 い た バ イ ナ リ ツ リ ー 。

nice の 最 小 値 は 4 で す 。
メ モ リ 利 用 量 :
dict
* 11.5 ( dict <= 32 MiB で あ る 場 合 );
dict
* 10.5 ( dict > 32 MiB で あ る 場 合 )

mode= mode

圧 縮 の mode は 、 マ ッ チ 検 索 処 理 に よ っ て 生 成 さ れ る デ ー タ の 分 析 手 法 を 指 定 し ま す 。 サ ポ ー ト さ れ る modes fast normal で す 。 デ フ ォ ル ト は presets が 0-3 の と き fast presets が 4-9 の と き normal で す 。

一 般 的 に fast が 用 い ら れ る の は ハ ッ シ ュ チ ェ ー ン に よ る マ ッ チ 検 索 処 理 の 場 合 で あ り 、 normal は バ イ ナ リ ツ リ ー に よ る マ ッ チ 検 索 処 理 の 場 合 で す 。 こ れ は presets が 用 い る も の と 同 じ で す 。

nice= nice

マ ッ チ 処 理 に 対 し て 適 切 な バ イ ト 数 と 思 わ れ る 値 を 指 定 し ま す 。 最 低 nice バ イ ト 分 に マ ッ チ し た と き 、 ア ル ゴ リ ズ ム は そ れ 以 上 、 マ ッ チ す る 可 能 性 を あ き ら め て 探 さ な い よ う に し ま す 。

Nice は 2 ~ 273 バ イ ト の 範 囲 と し ま す 。 値 を 大 き く す れ ば 処 理 速 度 は 低 下 し ま す が 、 よ り 高 い 圧 縮 率 が 得 ら れ る 傾 向 に あ り ま す 。 デ フ ォ ル ト 値 は preset の 値 に よ っ て 変 わ り ま す 。

depth= depth

マ ッ チ 検 索 処 理 に お い て 、 検 索 す る 最 大 深 さ を 指 定 し ま す 。 デ フ ォ ル ト は 特 別 な 値 0 で す 。 こ の 値 は 、 圧 縮 処 理 に お い て mf nice の 値 か ら 妥 当 な 値 depth が 決 定 さ れ る こ と を 意 味 し ま す 。

ハ ッ シ ュ チ ェ ー ン に 対 し て の 妥 当 な depth の 値 は 4 ~ 100 で す 。 バ イ ナ リ ツ リ ー で は 16 ~ 1000 で す 。 depth に 対 し て 非 常 に 大 き な 値 を 設 定 す る と 、 フ ァ イ ル 内 容 に よ っ て は エ ン コ ー ド 処 理 が 極 端 に 遅 く な る 場 合 が あ り ま す 。 時 間 が 無 用 に 長 く な り す ぎ た 際 に 圧 縮 を 取 り や め る 段 取 り が 整 っ て い な い の で あ れ ば 、 depth に 1000 以 上 の 値 を 設 定 す る こ と は 避 け て く だ さ い 。

生 の (raw) ス ト リ ー ム ( --format=raw 指 定 ) に 対 す る デ コ ー ド 処 理 の 際 に は 、 LZMA2 は 辞 書 サ イ ズ size だ け が 必 要 で す 。 LZMA1 の 場 合 は lc , lp , pb だ け あ れ ば 十 分 で す 。

--x86 [ = options ]
--powerpc
[ = options ]
--ia64
[ = options ]
--arm
[ = options ]
--armthumb
[ = options ]
--sparc
[ = options ]

branch/call/jump (BCJ) フ ィ ル タ ー を フ ィ ル タ ー チ ェ ー ン に 追 加 し ま す 。 こ の フ ィ ル タ ー は 、 フ ィ ル タ ー チ ェ ー ン 内 の 最 終 フ ィ ル タ ー と し て 利 用 す る こ と は で き ま せ ん 。

BCJ フ ィ ル タ ー は 、 マ シ ン コ ー ド 内 の 相 対 ア ド レ ス を 絶 対 ア ド レ ス に 変 換 し ま す 。 こ れ に よ り デ ー タ サ イ ズ は 変 わ り ま せ ん 。 た だ し 冗 長 性 は 増 し ま す 。 LZMA2 か ら は 0 ~ 15 % 小 さ な .xz フ ァ イ ル が 生 成 さ れ る こ と に な り ま す 。 BCJ フ ィ ル タ ー は い つ で も 元 に 戻 す こ と が で き ま す 。 つ ま り 誤 っ た デ ー タ タ イ プ に 対 し て BCJ フ ィ ル タ ー を 用 い て も 、 デ ー タ を 失 う こ と は あ り ま せ ん 。 た だ し 圧 縮 率 が や や 低 下 す る こ と が あ り ま す 。

BCJ フ ィ ル タ ー を 実 行 フ ァ イ ル 全 体 に 適 用 し て も 、 問 題 は あ り ま せ ん 。 そ し て こ の フ ィ ル タ ー を 実 行 フ ァ イ ル の 実 行 セ ク シ ョ ン (executable section) に の み 適 用 す る 必 要 は あ り ま せ ん 。 実 行 モ ジ ュ ー ル と 実 行 不 可 フ ァ イ ル を 両 方 含 む ア ー カ イ ブ に 対 し て こ の フ ィ ル タ ー を 適 用 す る と 、 良 い 結 果 が 得 ら れ る 場 合 も あ り 、 そ う で な い 場 合 も あ り ま す 。 し た が っ て 一 般 的 に は 、 バ イ ナ リ パ ッ ケ ー ジ を 配 布 向 け に 圧 縮 す る 際 に ま で 、 BCJ フ ィ ル タ ー を 用 い る の は 適 切 で は あ り ま せ ん 。

こ の BCJ フ ィ ル タ ー は 非 常 に 高 速 で あ り 、 目 立 っ た メ モ リ 消 費 は 発 生 し ま せ ん 。 BCJ フ ィ ル タ ー に よ っ て フ ァ イ ル 圧 縮 率 が 向 上 し た と す れ ば 、 伸 長 処 理 の 速 度 が 向 上 し ま す 。 な ぜ な ら 同 一 の ハ ー ド ウ ェ ア 上 で あ れ ば 、 伸 長 に か か る 処 理 速 度 は 毎 秒 、 デ ー タ 圧 縮 に 要 し た バ イ ト 数 の 倍 数 に ほ ぼ 一 致 す る か ら で す 。

こ の BCJ フ ィ ル タ ー に は 、 圧 縮 率 に 関 し て 以 下 の よ う な 問 題 が あ り ま す 。

実 行 コ ー ド を 含 ん だ フ ァ イ ル (た と え ば オ ブ ジ ェ ク ト フ ァ イ ル 、 ス タ テ ィ ッ ク ラ イ ブ ラ リ 、 Linux カ ー ネ ル モ ジ ュ ー ル な ど ) の 中 に は 、 命 令 内 の ア ド レ ス に フ ィ ル タ ー 値 が 埋 め 込 ま れ る こ と に な り ま す 。 こ の BCJ フ ィ ル タ ー は 、 そ れ で も ア ド レ ス 変 換 を 続 行 し ま す が 、 そ う い っ た フ ァ イ ル に お い て は 圧 縮 率 が 悪 く な る 場 合 が あ り ま す 。

似 通 っ た 実 行 フ ァ イ ル が 複 数 含 ま れ る ア ー カ イ ブ に 対 し て BCJ フ ィ ル タ ー を 適 用 す る と 、 BCJ フ ィ ル タ ー を 使 わ な か っ た 場 合 に 比 べ て 圧 縮 率 が 悪 く な り ま す 。 こ れ は BCJ フ ィ ル タ ー が 実 行 フ ァ イ ル 間 の 境 界 を 検 出 し な い た め で あ り 、 各 実 行 フ ァ イ ル に 対 し て ア ド レ ス 変 換 の カ ウ ン タ ー を リ セ ッ ト し な い こ と か ら 発 生 し ま す 。

将 来 的 に は 新 た な フ ィ ル タ ー を 通 じ て 、 上 記 の 2 つ の 問 題 は 解 消 さ れ る 予 定 で す 。 従 来 の BCJ フ ィ ル タ ー は 、 埋 め 込 み シ ス テ ム に お い て は 引 き 続 き 有 用 と な る は ず で す 。 と い う の も 、 新 た な フ ィ ル タ ー は よ り 大 き く な り 、 メ モ リ 消 費 も 増 加 す る は ず だ か ら で す 。

命 令 セ ッ ト が 異 な る と バ イ ト の 並 び も 異 な り ま す :

Image grohtml-53446-3.png

BCJ フ ィ ル タ ー に よ っ て 処 理 し た デ ー タ は 、 通 常 は LZMA2 に よ っ て 圧 縮 さ れ る の で 、 利 用 さ れ た BCJ フ ィ ル タ ー の バ イ ト 並 び に マ ッ チ す る よ う に LZMA2 オ プ シ ョ ン が 設 定 さ れ て い れ ば 、 圧 縮 率 は わ ず か な が ら 改 善 さ れ ま す 。 た と え ば IA-64 フ ィ ル タ ー を 用 い た 場 合 、 LZMA2 に 対 し て は pb=4 (2ˆ4=16) と す る の が 適 切 で す 。 た だ し 、 x86 フ ィ ル タ ー の 場 合 は 例 外 と 考 え て く だ さ い 。 x86 実 行 フ ァ イ ル を 圧 縮 す る 場 合 に は 、 LZMA2 の デ フ ォ ル ト で あ る 4 バ イ ト 並 び を 必 ず 用 い る よ う に す る の が 適 切 で す 。

BCJ フ ィ ル タ ー は す べ て 同 一 の options を サ ポ ー ト し ま す 。

start= offset

相 対 お よ び 絶 対 ア ド レ ス 間 の 変 換 の 際 に 用 い ら れ る 、 オ フ セ ッ ト 値 offset の 開 始 位 置 を 指 定 し ま す 。 offset は フ ィ ル タ ー の バ イ ト 並 び の 倍 数 で な け れ ば な り ま せ ん (上 表 参 照 )。 デ フ ォ ル ト は ゼ ロ で す 。 現 実 に は デ フ ォ ル ト 値 で 十 分 で す 。 つ ま り offset を 独 自 に 設 定 し て も 、 た い て い は 役 に 立 ち ま せ ん 。

--delta [ = options ]

フ ィ ル タ ー チ ェ ー ン に デ ル タ (delta) フ ィ ル タ ー を 追 加 し ま す 。 デ ル タ フ ィ ル タ ー は 、 フ ィ ル タ ー チ ェ ー ン 内 の 最 終 フ ィ ル タ ー と し て 利 用 す る こ と は で き ま せ ん 。

現 時 点 で は 、 単 純 に バ イ ト 単 位 に よ る デ ル タ 計 算 の み が サ ポ ー ト さ れ て い ま す 。 こ れ は た と え ば ビ ッ ト マ ッ プ イ メ ー ジ あ る い は PCM オ ー デ ィ オ を 圧 縮 す る 際 に 利 用 で き ま す 。 た だ し 特 別 に 用 意 さ れ た ア ル ゴ リ ズ ム を 使 え ば Delta + LZMA2 よ り も 優 れ た 結 果 が 得 ら れ る か も し れ ま せ ん 。 こ れ は オ ー デ ィ オ デ ー タ に 対 し て は 明 ら か な こ と で 、 flac (1) な ど を 用 い れ ば 、 圧 縮 は よ り 速 く 適 切 な も の に な り ま す 。

サ ポ ー ト さ れ て い る options

dist= distance

デ ル タ 計 算 の distance を バ イ ト 単 位 で 指 定 し ま す 。 distance は 1 ~ 256 で あ る こ と が 必 要 で す 。 デ フ ォ ル ト は 1 で す 。

た と え ば dist=2 を 指 定 し 、 入 力 が 8 バ イ ト A1 B1 A2 B3 A3 B5 A4 B7 で あ っ た と す る と 、 出 力 は A1 B1 01 02 01 02 01 02 と な り ま す 。

そ の 他 の オ プ シ ョ ン

-q , --quiet

警 告 メ ッ セ ー ジ や 通 知 メ ッ セ ー ジ を 省 略 し ま す 。 こ の 指 定 を 2 つ 重 ね る と 、 エ ラ ー メ ッ セ ー ジ も 省 略 し ま す 。 本 オ プ シ ョ ン は 終 了 ス テ ー タ ス に は 影 響 し ま せ ん 。 警 告 メ ッ セ ー ジ が た と え 省 略 さ れ て い て も 変 わ ら な い こ と な の で 、 終 了 ス テ ー タ ス に は 警 告 を 示 す 値 が 返 さ れ ま す 。

-v , --verbose

詳 細 な 出 力 と し ま す 。 標 準 エ ラ ー 出 力 が 端 末 に 接 続 さ れ て い る 場 合 、 xz は 進 捗 イ ン ジ ケ ー タ ー を 表 示 し ま す 。 --verbose を 2 つ 重 ね て 指 定 す る と 、 さ ら に 詳 細 な 出 力 が 行 わ れ ま す 。

進 捗 イ ン ジ ケ ー タ ー に は 以 下 の 情 報 が 表 示 さ れ ま す 。

入 力 フ ァ イ ル の サ イ ズ が わ か っ て い る 場 合 は 、 完 了 率 が 表 示 さ れ ま す 。 こ れ は パ イ プ 処 理 の 場 合 に は 表 示 さ れ ま せ ん 。

生 成 さ れ た 圧 縮 デ ー タ 量 (圧 縮 時 ) ま た は 消 費 さ れ た 圧 縮 デ ー タ 量 (伸 長 時 ) が 表 示 さ れ ま す 。

消 費 さ れ た 伸 長 デ ー タ 量 (圧 縮 時 ) ま た は 生 成 さ れ た 伸 長 デ ー タ 量 (伸 長 時 ) が 表 示 さ れ ま す 。

圧 縮 率 が 表 示 さ れ ま す 。 こ れ は そ の 時 点 ま で に 圧 縮 さ れ た デ ー タ 量 を 、 未 圧 縮 の デ ー タ 量 で 割 っ た 値 と し て 算 出 さ れ ま す 。

圧 縮 ま た は 伸 長 の 処 理 速 度 が 表 示 さ れ ま す 。 こ れ は 消 費 さ れ た 伸 長 デ ー タ (圧 縮 時 ) ま た は 生 成 さ れ た 伸 長 デ ー タ (伸 長 時 ) の 秒 ご と の 処 理 量 で す 。 処 理 量 の 表 示 は xz が フ ァ イ ル 処 理 を 開 始 し た 後 、 し ば ら く た っ て か ら 表 示 さ れ ま す 。

経 過 時 間 を M:SS ま た は H:MM:SS の 書 式 に よ り 表 示 し ま す 。

入 力 フ ァ イ ル の サ イ ズ が わ か っ て い る 場 合 だ け 、 残 り 時 間 の 見 積 も り が 表 示 さ れ ま す 。 そ の 場 合 、 xz が フ ァ イ ル 処 理 を 開 始 し て か ら 、 数 秒 が 経 過 し た 後 に 表 示 が 始 ま り ま す 。 時 刻 表 記 は 精 度 を 落 と し て 、 小 数 点 表 記 を 行 い ま せ ん 。 た と え ば 2 min 30 s と し ま す 。

標 準 エ ラ ー 出 力 先 が 端 末 で は な い 場 合 、 --verbose に よ っ て 出 力 さ れ る 内 容 は 、 フ ァ イ ル 名 、 圧 縮 サ イ ズ 、 伸 長 サ イ ズ 、 圧 縮 率 で す 。 ま た 圧 縮 あ る い は 伸 長 が 始 ま る と 、 表 示 可 能 で あ れ ば 処 理 速 度 や 経 過 時 間 を 1 行 に ま と め て 標 準 エ ラ ー 出 力 に 書 き 出 し ま す 。 処 理 速 度 や 経 過 時 間 が 表 示 さ れ る の は 、 あ く ま で 処 理 時 間 が 一 定 秒 数 以 上 か か る 場 合 の み で す 。 ユ ー ザ ー に よ る 処 理 中 断 の よ う に 処 理 が 完 了 し な か っ た 場 合 で も 、 入 力 フ ァ イ ル サ イ ズ が わ か っ て い れ ば 、 完 了 率 は 表 示 さ れ ま す 。

-Q , --no-warn

警 告 に 相 当 す る 状 況 が 発 生 し た と し て も 、 終 了 ス テ ー タ ス は 2 に 設 定 し な い で く だ さ い 。 本 オ プ シ ョ ン は 詳 細 表 示 の レ ベ ル に は 影 響 し ま せ ん 。 し た が っ て --quiet --no-warn の 2 つ は 、 警 告 を 非 表 示 と す る た め に 利 用 す る も の で あ っ て 、 終 了 ス テ ー タ ス を 変 更 す る 目 的 で 用 い て は な り ま せ ん 。

--robot

マ シ ン 解 析 が 可 能 な 書 式 で メ ッ セ ー ジ 出 力 を 行 い ま す 。 こ れ は liblzma で な く xz を 利 用 し た フ ロ ン ト エ ン ド を 容 易 に 構 築 で き る よ う に 意 図 し た も の で す 。 さ ま ざ ま な ス ク リ プ ト を 用 い る こ と が 想 定 さ れ る で し ょ う 。 本 オ プ シ ョ ン を 使 っ て 出 力 し た 結 果 は 、 xz の 将 来 の リ リ ー ス に 向 け て 安 定 し て 提 供 し て い く つ も り で す 。 詳 し く は ロ ボ ッ ト モ ー ド セ ク シ ョ ン を 参 照 し て く だ さ い 。

--info-memory

読 み や す い 書 式 で 以 下 の 出 力 を 行 い ま す 。 xz が 識 別 し て い る 、 シ ス テ ム 搭 載 の 物 理 メ モ リ (RAM) 量 。 圧 縮 お よ び 伸 長 に お け る メ モ リ 利 用 制 限 。 こ れ を 表 示 し て 正 常 終 了 し ま す 。

-h , --help

よ く 利 用 さ れ る オ プ シ ョ ン に 対 す る ヘ ル プ メ ッ セ ー ジ を 表 示 し て 、 正 常 終 了 し ま す 。

-H , --long-help

xz の 全 機 能 を 説 明 す る ヘ ル プ メ ッ セ ー ジ を 表 示 し て 、 正 常 終 了 し ま す 。

-V , --version

xz と liblzma の バ ー ジ ョ ン 番 号 を 読 み や す い 書 式 で 表 示 し ま す 。 マ シ ン が 解 析 し や す い 出 力 と す る に は 、 --version の 前 に --robot を 指 定 し ま す 。

ロ ボ ッ ト モ ー ド

ロ ボ ッ ト モ ー ド は --robot オ プ シ ョ ン を 指 定 す る こ と で 有 効 に な り ま す 。 こ れ を 指 定 す る と 、 別 プ ロ グ ラ ム が xz の 出 力 を 解 析 し や す く な り ま す 。 今 の と こ ろ --robot は 、 --version , --info-memory , --list を と も に 指 定 し た と き の み 機 能 す る よ う に な っ て い ま す 。 将 来 は 圧 縮 時 、 伸 長 時 に も 対 応 す る 予 定 で す 。

バ ー ジ ョ ン

xz --robot --version を 実 行 す る と 、 xz と liblzma の バ ー ジ ョ ン を 以 下 の 書 式 に よ り 出 力 し ま す :

XZ_VERSION= XYYYZZZS
LIBLZMA_VERSION=
XYYYZZZS

X

メ ジ ャ ー バ ー ジ ョ ン 。

YYY

マ イ ナ ー バ ー ジ ョ ン 。 偶 数 が 安 定 版 を 意 味 し ま す 。 奇 数 は ア ル フ ァ 版 か ベ ー タ 版 を 表 し ま す 。

ZZZ

安 定 版 に 対 す る パ ッ チ レ ベ ル 。 ま た は 単 に 開 発 版 の 割 り 振 り 番 号 。

S

安 定 度 。 0 は ア ル フ ァ 版 、 1 は ベ ー タ 版 、 2 は 安 定 版 を そ れ ぞ れ 表 し ま す 。 YYY が 偶 数 の と き S は 必 ず 2 と な り ま す 。

xz と liblzma が 同 一 XZ Utils リ リ ー ス の も の で あ る 限 り 、 2 行 に 表 示 さ れ て い る XYYYZZZS の 表 記 は 同 一 に な り ま す 。

例 : 4.999.9beta は 49990091 、 5.0.0 は 50000002 と 表 記 さ れ ま す 。

メ モ リ 制 限 に 関 す る 情 報

xz --robot --info-memory を 指 定 す る と 、 タ ブ で 区 切 っ た 3 つ の 情 報 を 1 行 で 出 力 し ま す :

1.

物 理 メ モ リ (RAM) の 総 容 量 。 バ イ ト 単 位 。

2.

圧 縮 時 の メ モ リ 利 用 制 限 。 バ イ ト 単 位 。 特 別 な 値 と し て ゼ ロ が あ り ま す 。 こ れ は シ ン グ ル ス レ ッ ド モ ー ド で の デ フ ォ ル ト 値 で あ り 、 無 制 限 を 意 味 し ま す 。

3.

伸 長 時 の メ モ リ 利 用 制 限 。 バ イ ト 単 位 。 特 別 な 値 と し て ゼ ロ が あ り ま す 。 こ れ は シ ン グ ル ス レ ッ ド モ ー ド で の デ フ ォ ル ト 値 で あ り 、 無 制 限 を 意 味 し ま す 。

xz --robot --info-memory の 出 力 項 目 は 、 今 後 追 加 さ れ る 可 能 性 が あ り ま す 。 た だ し 複 数 行 に わ た っ て 出 力 す る よ う な 変 更 は 行 い ま せ ん 。

リ ス ト モ ー ド

xz --robot --list は タ ブ 区 切 り に よ る 出 力 を 行 い ま す 。 各 行 に お け る 先 頭 カ ラ ム は 、 そ れ ぞ れ の 行 に 示 さ れ る 情 報 の 種 類 を 表 し ま す 。

name

フ ァ イ ル の 一 覧 を 示 す 際 に は こ れ が 必 ず 第 1 行 目 に 置 か れ ま す 。 そ の 行 の 第 2 カ ラ ム に は フ ァ イ ル 名 が 出 力 さ れ ま す 。

file

こ の 行 に は .xz フ ァ イ ル に 関 す る 全 体 的 な 情 報 が 示 さ れ ま す 。 こ の 行 は 必 ず name 行 の 次 に 表 示 さ れ ま す 。

stream

こ の 行 タ イ プ は --verbose が 指 定 さ れ た 場 合 に の み 表 示 さ れ ま す 。 .xz フ ァ イ ル 内 に 存 在 す る ス ト リ ー ム 分 だ け stream 行 が 出 力 さ れ ま す 。

block

こ の 行 タ イ プ は --verbose が 指 定 さ れ た 場 合 に の み 表 示 さ れ ま す 。 .xz フ ァ イ ル 内 に 存 在 す る ブ ロ ッ ク 分 だ け block 行 が 出 力 さ れ ま す 。 block 行 は stream 行 の 出 力 が す べ て 行 わ れ た 後 に 出 力 さ れ ま す 。 つ ま り タ イ プ の 異 な る 両 者 が 混 在 し て 出 力 さ れ る こ と は あ り ま せ ん 。

summary

こ の 行 タ イ プ は --verbose が 2 重 に 指 定 さ れ た 場 合 に の み 表 示 さ れ ま す 。 こ の 行 は block 行 の 次 に 出 力 さ れ ま す 。 file 行 と 同 様 に summary 行 に は .xz フ ァ イ ル に 関 す る 全 体 的 な 情 報 が 示 さ れ ま す 。

totals

本 行 は 必 ず 出 力 結 果 の 最 終 行 に 位 置 し ま す 。 こ こ に は 総 数 、 総 サ イ ズ が 示 さ れ ま す 。

file 行 の カ ラ ム :

2.

フ ァ イ ル 内 の ス ト リ ー ム 数 。

3.

ス ト リ ー ム 内 の ブ ロ ッ ク 総 数 。

4.

フ ァ イ ル の 圧 縮 サ イ ズ 。

5.

フ ァ イ ル の 伸 長 サ イ ズ 。

6.

圧 縮 率 。 た と え ば 0.123 な ど 。 圧 縮 率 が 9.999 を 超 え る 場 合 は 、 圧 縮 率 は 表 示 せ ず 3 つ の ダ ッ シ ュ ( --- ) が 表 示 さ れ ま す 。

7.

整 合 性 チ ェ ッ ク の 名 称 を カ ン マ 区 切 り で 指 定 し た リ ス ト 。 既 知 の 整 合 性 チ ェ ッ ク 名 と し て 、 以 下 の 表 記 が 用 い ら れ ま す 。 None , CRC32 , CRC64 , SHA-256 。 未 知 の チ ェ ッ ク タ イ プ に は Unknown- N が 用 い ら れ ま す 。 こ こ で N は 10 進 数 (1 桁 ま た は 2 桁 ) で 表 さ れ る チ ェ ッ ク ID で す 。

8.

フ ァ イ ル 内 ス ト リ ー ム の パ デ ィ ン グ (padding) デ ー タ の 総 量 。

stream 行 の カ ラ ム :

2.

ス ト リ ー ム 番 号 (先 頭 を 1 と し ま す )。

3.

ス ト リ ー ム 内 の ブ ロ ッ ク 数 。

4.

圧 縮 デ ー タ の 開 始 オ フ セ ッ ト 。

5.

伸 長 デ ー タ の 開 始 オ フ セ ッ ト 。

6.

圧 縮 サ イ ズ (ス ト リ ー ム パ デ ィ ン グ を 含 み ま せ ん )。

7.

伸 長 サ イ ズ 。

8.

圧 縮 率 。

9.

整 合 性 チ ェ ッ ク 名 。

10.

ス ト リ ー ム パ デ ィ ン グ の サ イ ズ 。

block 行 の カ ラ ム :

2.

当 ブ ロ ッ ク に 含 ま れ る ス ト リ ー ム 数 。

3.

ス ト リ ー ム 先 頭 か ら の 相 対 的 な ブ ロ ッ ク 数 (先 頭 ブ ロ ッ ク を 1 と し ま す )。

4.

フ ァ イ ル 先 頭 か ら の 相 対 的 な ブ ロ ッ ク 数 。

5.

フ ァ イ ル 先 頭 か ら の 相 対 的 な 圧 縮 開 始 オ フ セ ッ ト 。

6.

フ ァ イ ル 先 頭 か ら の 相 対 的 な 伸 長 開 始 オ フ セ ッ ト 。

7.

ブ ロ ッ ク の 総 圧 縮 サ イ ズ (ヘ ッ ダ ー を 含 み ま す )。

8.

伸 長 サ イ ズ 。

9.

圧 縮 率 。

10.

整 合 性 チ ェ ッ ク 名 。

--verbose が 2 重 に 指 定 さ れ た 場 合 、 block 行 に は さ ら に 以 下 の カ ラ ム が 出 力 さ れ ま す 。 こ れ は --verbose が 1 つ だ け 指 定 さ れ た 際 に は 表 示 さ れ ま せ ん 。 こ の 情 報 取 得 に あ た っ て は さ ら に シ ー ク を 必 要 と す る た め 、 そ の 分 だ け 処 理 が 遅 く な り ま す 。

11.

16 進 数 表 記 に よ る 整 合 性 チ ェ ッ ク 値 。

12.

ブ ロ ッ ク ヘ ッ ダ ー サ イ ズ 。

13.

ブ ロ ッ ク フ ラ グ 。 c は 圧 縮 サ イ ズ が 存 在 す る こ と を 示 し ま す 。 u は 伸 長 サ イ ズ が 存 在 す る こ と を 示 し ま す 。 こ の フ ラ グ が 設 定 さ れ て い な い 場 合 、 固 定 幅 の 文 字 出 力 は 行 わ ず に ダ ッ シ ュ ( - ) だ け を 表 示 し ま す 。 将 来 の 版 に お い て は 、 新 し い フ ラ グ が こ の 文 字 列 の 後 ろ に 追 加 さ れ る か も し れ ま せ ん 。

14.

ブ ロ ッ ク 内 の 実 際 の 圧 縮 デ ー タ サ イ ズ (ブ ロ ッ ク ヘ ッ ダ ー 、 ブ ロ ッ ク パ デ ィ ン グ 、 チ ェ ッ ク 項 目 は 除 き ま す )。

15.

xz の 現 バ ー ジ ョ ン を 使 っ て 、 こ の ブ ロ ッ ク の 伸 長 を 行 う た め に 必 要 と な る メ モ リ 利 用 量 。 バ イ ト 単 位 。

16.

フ ィ ル タ ー チ ェ ー ン 。 圧 縮 時 に 利 用 さ れ た オ プ シ ョ ン は 、 ほ と ん ど 知 る こ と が で き ま せ ん 。 .xz ヘ ッ ダ ー に オ プ シ ョ ン が 保 存 さ れ ま す が 、 そ れ は 伸 長 時 に 必 要 と な る オ プ シ ョ ン だ け だ か ら で す 。

summary 行 の カ ラ ム :

2.

xz の 現 バ ー ジ ョ ン を 使 っ て 、 こ の フ ァ イ ル の 伸 長 を 行 う た め に 必 要 と な る メ モ リ 利 用 量 。 バ イ ト 単 位 。

3.

yes ま た は no 。 全 ブ ロ ッ ク ヘ ッ ダ ー 内 に 、 圧 縮 サ イ ズ と 伸 長 サ イ ズ が と も に 保 存 さ れ て い る か ど う か を 表 し ま す 。

xz 5.1.2alpha 以 降

4.

フ ァ イ ル 伸 長 に 必 要 と な る xz の 最 低 バ ー ジ ョ ン 。

totals 行 の カ ラ ム :

2.

ス ト リ ー ム 数 。

3.

ブ ロ ッ ク 数 。

4.

圧 縮 サ イ ズ 。

5.

伸 長 サ イ ズ 。

6.

圧 縮 率 の 平 均 。

7.

フ ァ イ ル 内 に 存 在 し て い る 整 合 性 チ ェ ッ ク 名 を カ ン マ で 区 切 っ た リ ス ト 。

8.

ス ト リ ー ム パ デ ィ ン グ の サ イ ズ 。

9.

フ ァ イ ル 数 。 こ こ に こ の カ ラ ム を 設 け る こ と で 、 こ れ 以 前 の カ ラ ム の 並 び が file 行 と 同 じ に な る よ う に し ま す 。

--verbose が 2 重 に 指 定 さ れ totals 行 に カ ラ ム が 追 加 さ れ た 場 合 :

10.

xz の 現 バ ー ジ ョ ン を 使 っ て 、 こ の フ ァ イ ル の 伸 長 を 行 う た め に 必 要 と な る 最 大 メ モ リ 利 用 量 。 バ イ ト 単 位 。

11.

yes ま た は no 。 全 ブ ロ ッ ク ヘ ッ ダ ー 内 に 、 圧 縮 サ イ ズ と 伸 長 サ イ ズ が と も に 保 存 さ れ て い る か ど う か を 表 し ま す 。

xz 5.1.2alpha 以 降

12.

フ ァ イ ル 伸 長 に 必 要 と な る xz の 最 低 バ ー ジ ョ ン 。

将 来 の 版 に お い て 、 新 た な 行 タ イ プ の 追 加 、 あ る い は 既 存 の 行 タ イ プ へ の カ ラ ム 追 加 が あ る か も し れ ま せ ん 。 た だ し 既 存 の カ ラ ム が 変 更 さ れ る こ と は あ り ま せ ん 。

終 了 ス テ ー タ ス

0

正 常 終 了 。

1

エ ラ ー 発 生 。

2

警 告 に 相 当 す る 何 か が 発 生 。 た だ し 実 際 の エ ラ ー が 発 生 し た わ け で は な い 。

通 知 (警 告 や エ ラ ー で は な い ) が 標 準 エ ラ ー 出 力 に 表 示 さ れ て も 、 終 了 ス テ ー タ ス に は 影 響 し ま せ ん 。

環 境 変 数

xz で は 環 境 変 数 XZ_DEFAULTS お よ び XZ_OPT か ら こ の 順 で 、 設 定 さ れ た 空 白 区 切 り の オ プ シ ョ ン を 読 み 込 み ま す 。 こ れ は 、 コ マ ン ド ラ イ ン か ら 指 定 さ れ た オ プ シ ョ ン よ り も 前 に 処 理 さ れ ま す 。 環 境 変 数 か ら 読 み 取 ら れ る の は オ プ シ ョ ン だ け で す 。 オ プ シ ョ ン 以 外 の 情 報 は す べ て 無 視 さ れ ま す 。 オ プ シ ョ ン の 読 み 込 み は getopt_long (3) を 使 っ て 行 わ れ ま す が 、 コ マ ン ド ラ イ ン 引 数 の 読 み 込 み に も 用 い ら れ て い ま す 。
XZ_DEFAULTS

ユ ー ザ ー 定 義 あ る い は シ ス テ ム ワ イ ド な デ フ ォ ル ト オ プ シ ョ ン を 指 定 し ま す 。 通 常 は シ ェ ル 初 期 化 ス ク リ プ ト 内 に お い て 設 定 さ れ 、 デ フ ォ ル ト で 利 用 す る xz の メ モ リ 利 用 制 限 処 理 を 有 効 に し ま す 。 シ ェ ル 初 期 化 ス ク リ プ ト あ る い は こ れ に 相 当 す る 特 別 な ケ ー ス を 除 く と 、 ス ク リ プ ト に お い て XZ_DEFAULTS を 設 定 し た り 未 設 定 に し た り し て は な り ま せ ん 。

XZ_OPT

xz コ マ ン ド ラ イ ン か ら オ プ シ ョ ン 指 定 が で き な い 場 合 に 、 B(xz) に オ プ シ ョ ン を 受 け 渡 す た め に 用 い ま す 。 こ れ を 利 用 す る の は 、 た と え ば ス ク リ プ ト か ら 、 あ る い は GNU tar (1) の よ う な ツ ー ル か ら xz を 実 行 す る 場 合 で す :

XZ_OPT=-2v tar caf foo.tar.xz foo

ス ク リ プ ト に お い て そ の ス ク リ プ ト 固 有 の デ フ ォ ル ト 圧 縮 オ プ シ ョ ン を 設 定 す る た め に XZ_OPT を 用 い る 場 合 が あ り ま す 。 そ の 場 合 で あ っ て も XZ_OPT の オ ー バ ー ラ イ ド が 認 め ら れ る の は 、 た と え ば 以 下 に 示 す よ う に sh (1) ス ク リ プ ト 内 に て 妥 当 な 利 用 の 仕 方 を す る 場 合 に 限 り ま す :

XZ_OPT=${XZ_OPT-"-7e"}
export XZ_OPT

LZMA Utils と の 互 換 性

xz の コ マ ン ド ラ イ ン の 文 法 は 、 実 質 的 に LZMA Utils 4.32.x に あ る lzma , unlzma , lzcat の ス ー パ ー セ ッ ト に な っ て い ま す 。 LZMA Utils を 用 い る 既 存 の ス ク リ プ ト は 、 た い て い は 特 に 変 更 す る こ と な く そ の ま ま XZ Utils に 置 き 換 え る こ と が で き ま す 。 た だ し 非 互 換 性 も 存 在 し て お り 、 中 に は 問 題 が 発 生 す る 場 合 も あ り ま す 。

圧 縮 プ リ セ ッ ト レ ベ ル

圧 縮 レ ベ ル の プ リ セ ッ ト 値 は xz と LZMA Utils に お い て 同 一 の 番 号 振 り に は な っ て い ま せ ん 。 も っ と も 重 要 な 違 い は 、 さ ま ざ ま な プ リ セ ッ ト に 対 す る 辞 書 サ イ ズ が ど の よ う に 割 り 振 ら れ て い る か 、 と い う 点 で す 。 辞 書 サ イ ズ は 、 お お ま か に 言 え ば 伸 長 処 理 時 の メ モ リ 利 用 量 に 等 し く な り ま す 。

Image grohtml-53446-4.png

辞 書 サ イ ズ の 違 い は 、 圧 縮 時 で の メ モ リ 利 用 量 に も 影 響 し ま す 。 た だ し LZMA Utils と XZ Utils の 違 い は 他 に あ っ て 、 そ の 違 い の 方 が よ り 大 き な も の で す 。

Image grohtml-53446-5.png

デ フ ォ ル ト の プ リ セ ッ ト レ ベ ル は LZMA Utils で は -7 で す が 、 XZ Utils で は -6 で す 。 と も に デ フ ォ ル ト で 8 MiB の 辞 書 を 利 用 し ま す 。

ス ト リ ー ム 化 さ れ て い る /さ れ て い な い .lzma フ ァ イ ル

フ ァ イ ル の 伸 長 サ イ ズ は .lzma ヘ ッ ダ ー に 保 存 さ れ ま す 。 LZMA Utils は 、 通 常 の フ ァ イ ル を 圧 縮 す る 際 に は こ れ を 保 存 し ま す 。 代 替 策 と し て 、 伸 長 サ イ ズ が 不 明 で あ る と マ ー ク し て お き 、 ペ イ ロ ー ド 終 了 マ ー カ ー (end-of-payload marker) を 使 っ て 伸 長 処 理 の 終 了 位 置 を 示 す こ と も あ り ま す 。 LZMA Utils は こ の 方 法 を 、 伸 長 サ イ ズ が 不 明 な と き に 利 用 し ま す 。 た と え ば パ イ プ を 使 っ た 場 合 が こ の 利 用 に あ た り ま す 。

xz で は .lzma フ ァ イ ル を 伸 長 す る 際 に 、 ペ イ ロ ー ド 終 了 マ ー カ ー を 利 用 す る こ と も 利 用 し な い こ と も で き ま す 。 し か し xz か ら 生 成 さ れ た す べ て の .lzma に 対 し て は 、 ペ イ ロ ー ド 終 了 マ ー カ ー を 利 用 し て 、 .lzma ヘ ッ ダ ー 内 に 伸 長 サ イ ズ が 不 明 で あ る も の と し て マ ー ク し ま す 。 こ れ は 特 殊 な ケ ー ス で 問 題 と な る 場 合 が あ り ま す 。 た と え ば 埋 め 込 み デ バ イ ス 上 で の .lzma 伸 長 処 理 は 、 伸 長 サ イ ズ が わ か っ て い な い フ ァ イ ル で は 動 作 し な い か も し れ ま せ ん 。 こ の よ う な 問 題 に 遭 遇 し た 場 合 は 、 LZMA Utils ま た は LZMA SDK を 利 用 し て 、 伸 長 サ イ ズ が 明 確 と な っ て い る .lzma フ ァ イ ル を 生 成 し て く だ さ い 。

サ ポ ー ト さ れ な い .lzma フ ァ イ ル

.lzma フ ォ ー マ ッ ト が 用 い る lc 値 は 8 ま で 、 lp 値 は 4 ま で で す 。 LZMA Utils が フ ァ イ ル 伸 長 す る 際 に は lc lp の 値 は ど の よ う な 値 で あ っ て も か ま い ま せ ん が 、 た だ し lc=3 か つ lp=0 の フ ァ イ ル が 常 に 生 成 さ れ ま す 。 こ れ 以 外 の lc lp を 生 成 す る に は xz か LZMA SDK を 利 用 し て く だ さ い 。

liblzma 内 の LZMA1 フ ィ ル タ ー の 実 装 で は 、 lc lp の 合 計 が 4 を 超 え て は な ら な い も の と な っ て い ま す 。 し た が っ て こ の 制 限 を 超 え た .lzma フ ァ イ ル は xz を 使 っ て 伸 長 す る こ と は で き ま せ ん 。

LZMA Utils が 生 成 す る .lzma フ ァ イ ル は 、 辞 書 サ イ ズ が 2ˆ n (2 の べ き 乗 ) の も の だ け で す 。 た だ し ど の よ う な サ イ ズ の フ ァ イ ル で も 受 け る こ と は で き ま す 。 一 方 liblzma が 受 け 付 け ら れ る の は 、 辞 書 サ イ ズ が 2ˆ n ま た は 2ˆ n + 2ˆ( n -1) で あ る よ う な .lzma フ ァ イ ル の み で す 。 こ れ は .lzma フ ァ イ ル を 検 出 す る 際 に 、 誤 っ た 検 出 を 回 避 す る た め で す 。

上 の よ う な 制 約 は 現 実 に 問 題 と な る こ と は あ り ま せ ん 。 事 実 上 .lzma フ ァ イ ル は liblzma が 受 け 入 れ る 設 定 す べ て を 使 っ て 圧 縮 さ れ る も の と な っ て い る か ら で す 。

ゴ ミ デ ー タ

LZMA Utils は 伸 長 時 に 、 最 初 の .lzma ス ト リ ー ム 以 降 の デ ー タ は 完 全 に 無 視 し ま す 。 ほ と ん ど の 場 合 、 こ れ は バ グ に な り ま す 。 こ れ は ま た LZMA Utils が 、 連 結 さ れ た .lzma フ ァ イ ル を 伸 長 で き な い こ と を 表 し て い ま す 。

.lzma の 最 初 の ス ト リ ー ム 以 降 に デ ー タ が 残 っ て い る 場 合 、 xz --single-stream が 指 定 さ れ て い な い 限 り は 、 そ の フ ァ イ ル が 壊 れ て い る と み な し ま す 。 し た が っ て 、 ゴ ミ デ ー タ は 無 視 さ れ る と い う 前 提 で 作 ら れ て い る ス ク リ プ ト は 、 動 作 し な く な る か も し れ ま せ ん 。

情 報

圧 縮 結 果 は さ ま ざ ま

同 一 の 圧 縮 前 フ ァ イ ル を 使 っ て 圧 縮 フ ァ イ ル を 生 成 し た と し て も 、 XZ Utils の バ ー ジ ョ ン が 異 な る と 、 そ の 生 成 結 果 は 異 な る こ と に な り ま す 。 そ れ は 圧 縮 オ プ シ ョ ン が 全 く 同 じ で あ っ て も 起 こ り ま す 。 フ ァ イ ル フ ォ ー マ ッ ト に 影 響 を 与 え る こ と な く 、 エ ン コ ー ド 処 理 は 常 に (よ り 高 速 に 、 よ り 高 圧 縮 に ) 改 善 さ れ て い る た め で す 。 XZ Utils の バ ー ジ ョ ン が 同 一 で あ っ て も 、 ビ ル ド 時 の オ プ シ ョ ン が 違 っ て い る と 、 生 成 結 果 が 異 な る 場 合 が あ り ま す 。

こ の こ と は --rsyncable が 実 装 さ れ た 際 に は 問 題 と な り ま す 。 rsync の 機 能 を 用 い る 際 に は 、 古 い フ ァ イ ル と 新 し い フ ァ イ ル を 同 一 の xz バ ー ジ ョ ン で 圧 縮 し て お か な い と 、 rsync 処 理 が で き な い と い う こ と に な り ま す 。 こ の 問 題 を 解 決 す る に は 、 ど ち ら か の エ ン コ ー ド 実 装 を 凍 結 し て 、 xz バ ー ジ ョ ン 間 に お い て 安 定 し て rsync 処 理 が で き る よ う な 出 力 と す る こ と が 必 要 に な り ま す 。

埋 め 込 み .xz の 伸 長 処 理

XZ Embedded の よ う な 埋 め 込 み .xz 伸 長 処 理 の 実 装 で は 、 整 合 性 チ ェ ッ ク の う ち none crc32 以 外 の も の を 使 っ た フ ァ イ ル 生 成 に は 対 応 す る 必 要 が あ り ま せ ん 。 デ フ ォ ル ト は --check=crc64 で す か ら 、 埋 め 込 み シ ス テ ム 上 で の フ ァ イ ル 生 成 時 は --check=none --check=crc32 を 指 定 し な け れ ば な り ま せ ん 。

埋 め 込 み シ ス テ ム を 除 く と 、 .xz フ ォ ー マ ッ ト に お け る 伸 長 処 理 で は 、 check タ イ プ す べ て に 対 応 し て い ま す 。 あ る い は 特 定 の check が サ ポ ー ト さ れ て い な か っ た と し て も 、 最 低 で も 整 合 性 チ ェ ッ ク の 検 証 を 行 わ ず に フ ァ イ ル 伸 長 処 理 が 可 能 と な っ て い ま す 。

XZ Embedded は BCJ フ ィ ル タ ー に 対 応 し て い ま す 。 た だ し デ フ ォ ル ト の 開 始 オ フ セ ッ ト し か 利 用 で き ま せ ん 。

利 用 例

基 本

フ ァ イ ル foo を 圧 縮 し て foo.xz を 生 成 し ま す 。 利 用 す る 圧 縮 レ ベ ル は デ フ ォ ル ト ( -6 ) で す 。 圧 縮 が 成 功 し た ら foo を 削 除 し ま す :

xz foo

bar.xz を 伸 長 し て bar を 得 ま す 。 伸 長 処 理 に 成 功 し て も bar.xz は 削 除 し ま せ ん :

xz -dk bar.xz

プ リ セ ッ ト -4e ( -4 --extreme ) を 用 い て baz.tar.xz を 生 成 し ま す 。 こ れ は た と え ば デ フ ォ ル ト の -6 に 比 べ て 処 理 速 度 は 低 下 し ま す が 、 圧 縮 時 や 伸 長 時 の メ モ リ 消 費 は 少 な く て 済 み ま す (そ れ ぞ れ 48 MiB と 5 MiB):

tar cf - baz | xz -4e > baz.tar.xz

圧 縮 さ れ た フ ァ イ ル や 未 圧 縮 の フ ァ イ ル を 混 在 さ せ 、 た だ 1 つ の コ マ ン ド を 使 っ て 標 準 出 力 を 行 う こ と が で き ま す :

xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt

複 数 フ ァ イ ル の 並 行 圧 縮 処 理

GNU お よ び *BSD の find (1) や xargs (1) で は 、 複 数 フ ァ イ ル を 並 行 処 理 に よ り 圧 縮 す る こ と が で き ま す :

find . -type f \! -name ’*.xz’ -print0 \
| xargs -0r -P4 -n16 xz -T1

xargs (1) に 対 す る -P オ プ シ ョ ン が 、 xz 処 理 に 対 す る 並 行 処 理 数 を 設 定 し て い ま す 。 -n オ プ シ ョ ン の 最 適 値 は 、 ど れ だ け の フ ァ イ ル を 圧 縮 す る か に よ っ て 変 わ り ま す 。 フ ァ イ ル 数 が ほ ん の 数 個 で あ る 場 合 、 お そ ら く こ の 値 は 1 が 適 切 で す 。 フ ァ イ ル 数 が 数 万 の レ ベ ル な ら 100 以 上 が 適 切 で あ り 、 こ れ に よ っ て xargs (1) が 最 終 的 に 作 り 出 す xz プ ロ セ ス を 抑 え ら れ ま す 。

xz に 対 し て オ プ シ ョ ン -T1 を 指 定 し て い ま す が 、 こ れ は 強 制 的 に シ ン グ ル ス レ ッ ド モ ー ド に す る た め で す 。 並 行 処 理 数 の 制 御 の た め に 、 既 に xargs (1) が 使 用 さ れ て い る か ら で す 。

ロ ボ ッ ト モ ー ド

複 数 フ ァ イ ル を 圧 縮 し た こ と に よ っ て 、 合 計 で 何 バ イ ト 分 が 保 存 さ れ た か を 計 算 し ま す :

xz --robot --list *.xz | awk ’/ˆtotals/{print $5-$4}’

ス ク リ プ ト 実 行 の 際 に は 、 利 用 し て い る xz が 最 新 版 で あ る か ど う か を 確 認 し た い 場 合 が あ り ま す 。 以 下 の sh (1) ス ク リ プ ト で は 、 xz ツ ー ル の バ ー ジ ョ ン 番 号 が 最 低 で も 5.0.0 で あ る か ど う か を 確 認 し て い ま す 。 こ の 方 法 は --robot オ プ シ ョ ン に 対 応 し て い な い 古 い ベ ー タ 版 に 対 し て も 利 用 で き ま す :

if ! eval "$(xz --robot --version 2> /dev/null)" ||
[ "$XZ_VERSION" -lt 50000002 ]; then
echo "Your xz is too old."
fi
unset XZ_VERSION LIBLZMA_VERSION

XZ_OPT を 利 用 し て 伸 長 時 の メ モ リ 利 用 制 限 を 設 定 し ま す 。 た だ し す で に 設 定 さ れ て い た 場 合 、 そ の 設 定 が 増 え る こ と は あ り ま せ ん :

NEWLIM=$((123 << 20)) # 123 MiB
OLDLIM=$(xz --robot --info-memory | cut -f3)
if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then
XZ_OPT="$XZ_OPT --memlimit-decompress=$NEWLIM"
export XZ_OPT
fi

カ ス タ ム 圧 縮 フ ィ ル タ ー チ ェ ー ン

カ ス タ ム フ ィ ル タ ー チ ェ ー ン を 利 用 す る 一 番 簡 単 な 方 法 は LZMA2 プ リ セ ッ ト を 用 い る こ と で す 。 プ リ セ ッ ト に は 、 圧 縮 設 定 の 中 か ら 有 用 な 設 定 を 組 み 合 わ せ て 、 そ の 一 部 を 割 り 当 て て い る た め 、 そ れ を 使 う の が 簡 単 で す 。

オ プ シ ョ ン -0 ... -9 , --extreme の と こ ろ で 説 明 し た 一 覧 表 内 の CompCPU カ ラ ム は 、 LZMA2 プ リ セ ッ ト 値 を カ ス タ マ イ ズ す る 際 に 活 用 で き ま す 。 上 で 説 明 済 の 2 つ の 表 か ら 、 関 連 す る と こ ろ を 抜 粋 し た も の が 以 下 で す :

Image grohtml-53446-6.png

効 率 よ く 圧 縮 す る た め に は 、 あ る 程 度 大 き な (た と え ば 32 MiB 程 度 の ) 辞 書 が 必 要 で あ る こ と が わ か っ て い る と し ま す 。 一 方 で xz -8 の 指 定 時 よ り も 速 く 処 理 が し た い と し ま す 。 そ の 場 合 は CompCPU 値 が 低 い (た と え ば 1 で あ る よ う な ) プ リ セ ッ ト を 使 え ば 、 よ り 大 き な 辞 書 を 利 用 す る よ う に 調 整 が で き ま す :

xz --lzma2=preset=1,dict=32MiB foo.tar

フ ァ イ ル に よ っ て は 、 上 の コ マ ン ド の 実 行 に よ り 、 圧 縮 効 率 が 著 し く 改 善 さ れ て xz -6 よ り も 高 速 処 理 さ れ る 場 合 が あ り ま す 。 た だ し CompCPU 値 を 低 く し た と し て も 、 大 き な 辞 書 を 使 っ た こ と が 効 果 を 発 揮 す る よ う な フ ァ イ ル は 限 ら れ る こ と は 強 調 し て お き ま す 。 大 き な 辞 書 を 用 い た 効 果 が 発 揮 さ れ る 状 況 は 、 お そ ら く 最 低 数 メ ガ バ イ ト の 総 量 で 、 似 通 っ た フ ァ イ ル を 含 む ア ー カ イ ブ で あ る 場 合 で す 。 辞 書 サ イ ズ は 、 個 々 の フ ァ イ ル に 比 べ れ ば 十 分 に 大 き な サ イ ズ に す る 必 要 が あ り ま す 。 そ う し て お け ば 、 LZMA2 が 並 ん だ フ ァ イ ル の 類 似 性 に 対 し て 効 果 を 発 揮 す る 処 理 を 行 っ て く れ ま す 。

仮 に 圧 縮 時 や 伸 長 時 の メ モ リ 利 用 を 大 き な 値 と す る の が 有 効 で あ り 、 ま た 圧 縮 す る フ ァ イ ル が 最 低 で も 数 100 メ ガ バ イ ト あ る な ら 、 xz -9 が 利 用 す る 辞 書 サ イ ズ 64 MiB よ り も さ ら に 大 き な サ イ ズ を 利 用 す る の が 効 果 的 か も し れ ま せ ん :

xz -vv --lzma2=dict=192MiB big_foo.tar

上 の 利 用 例 に 示 し て い る よ う に -vv ( --verbose --verbose ) を 用 い る と 、 圧 縮 お よ び 伸 長 に お け る メ モ リ 必 要 量 が 確 認 で き ま す 。 な お 伸 長 フ ァ イ ル サ イ ズ よ り も 大 き な 辞 書 を 利 用 す る と 、 メ モ リ を 無 駄 に 消 費 し ま す 。 し た が っ て 上 の コ マ ン ド は 、 容 量 が 少 な い フ ァ イ ル に 対 し て は 効 果 が 期 待 で き ま せ ん 。

圧 縮 時 間 は 問 題 に な ら な い こ と も あ り ま す 。 し か し 伸 長 時 の メ モ リ 利 用 量 は 低 く 抑 え る べ き で す 。 た と え ば 埋 め 込 み シ ス テ ム で は 、 フ ァ イ ル 伸 長 時 の メ モ リ 利 用 は 極 力 低 く 抑 え た い と こ ろ で す 。 以 下 の コ マ ン ド で は 、 基 本 と し て -6e ( -6 --extreme ) を 利 用 し 、 辞 書 サ イ ズ は 64 KiB と 小 さ く し て い ま す 。 XZ Embedded を 利 用 す る と (だ か ら こ そ --check=crc32 を 用 い る の で す が )、 伸 長 処 理 に よ る フ ァ イ ル 生 成 の 際 に は 100 KiB の メ モ リ 利 用 に 抑 え ら れ ま す 。

xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo

で き る だ け 多 く の バ イ ト を 圧 縮 し た い 場 合 は 、 リ テ ラ ル コ ン テ キ ス ト ( lc ) ビ ッ ト 値 と 、 ポ ジ シ ョ ン ビ ッ ト ( pb ) を 調 整 す る の が 有 効 に な る 場 合 が あ り ま す 。 リ テ ラ ル ポ ジ シ ョ ン ビ ッ ト ( lp ) の 調 整 も 有 効 か も し れ ま せ ん が 、 通 常 は lc pb の 方 が 重 要 で す 。 た と え ば ソ ー ス コ ー ド ア ー カ イ ブ と 言 え ば 、 ほ と ん ど が US-ASCII テ キ ス ト で あ る た め 、 以 下 に 示 す よ う に 処 理 す れ ば 、 xz -6e の 処 理 よ り も ほ ん の 少 し だ け (0.1 % 程 度 ) 小 さ く な り ま す ( lc=4 を 除 い た 処 理 も 試 し て く だ さ い ):

xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar

特 定 の フ ァ イ ル タ イ プ に 対 し て は 、 LZMA2 に 別 の フ ィ ル タ ー を 加 え る こ と で 、 圧 縮 処 理 が 改 善 す る こ と が あ り ま す 。 た と え ば x86-32 や x86-64 の 共 有 ラ イ ブ ラ リ に 対 し て は x86 BCJ フ ィ ル タ ー を 使 う こ と が こ れ に あ た り ま す :

xz --x86 --lzma2 libfoo.so

フ ィ ル タ ー オ プ シ ョ ン の 並 び は 重 要 で す 。 --x86 --lzma2 の 後 ろ に 指 定 さ れ る と xz は エ ラ ー を 表 示 し ま す 。 こ の 理 由 は LZMA2 の 後 ろ に フ ィ ル タ ー を 置 く こ と は で き な い た め で あ り 、 さ ら に x86 BCJ フ ィ ル タ ー は チ ェ ー ン 内 の 最 終 フ ィ ル タ ー に す る こ と も で き な い か ら で す 。

LZMA2 に デ ル タ フ ィ ル タ ー を 合 わ せ て 利 用 す る と 、 ビ ッ ト マ ッ プ イ メ ー ジ に 対 し て は 良 好 な 結 果 が 得 ら れ ま す 。 こ の 結 果 は 通 常 、 PNG を 上 回 る は ず で す 。 PNG に は 単 純 な デ ル タ よ り も 高 度 な フ ィ ル タ ー が い く つ か あ り ま す が 、 実 際 の 圧 縮 に あ た っ て は Deflate が 用 い ら れ て い ま す 。

イ メ ー ジ デ ー タ は 非 圧 縮 形 式 で 保 存 す る 必 要 が あ り ま す 。 た と え ば 非 圧 縮 の TIFF デ ー タ な ど で す 。 デ ル タ フ ィ ル タ ー の 距 離 パ ラ メ ー タ ー は 、 イ メ ー ジ 内 に お け る ピ ク セ ル あ た り の バ イ ト 数 に マ ッ チ す る よ う に 設 定 さ れ て い ま す 。 た と え ば 24 ビ ッ ト RGB ビ ッ ト マ ッ プ に は dist=3 が 必 要 で す 。 ま た LZMA2 に 対 し て は pb=0 を 指 定 し て 3 バ イ ト 並 び に 対 応 さ せ る の が 適 切 で す :

xz --delta=dist=3 --lzma2=pb=0 foo.tiff

複 数 の イ メ ー ジ が 1 つ の ア ー カ イ ブ (た と え ば .tar ) に ま と め ら れ て い る と き は 、 個 々 の イ メ ー ジ の ピ ク セ ル あ た り の バ イ ト 数 が 同 一 で あ る 場 合 に 限 っ て 、 デ ル タ フ ィ ル タ ー は 同 様 に 動 作 し ま す 。

関 連 項 目

xzdec (1), xzdiff (1), xzgrep (1), xzless (1), xzmore (1), gzip (1), bzip2 (1), 7z (1)

XZ Utils: <https://tukaani.org/xz/>
埋 め 込 み XZ: <https://tukaani.org/xz/embedded.html>
LZMA SDK: <http://7-zip.org/sdk.html>