圧縮法識別子はその名のとおり、そのヘッダに続く圧縮データの
圧縮法を識別するために使用する。
また、lha ver 2.55 以降では 特別な圧縮法識別子を使用して
空のディレクトリエントリを書庫に格納できるようになった。
それ以外にLHAではZIPのように、ヘッダ開始を意味する識別子を持たないため、
圧縮法識別子の両端の '-' はヘッダ位置を特定するための役割も持っている。
圧縮法識別子 | 閾値 | 最長 一致長 |
辞書サイズ | 解説 |
-lzs- | 2 | 17 | 2048 | LArcの圧縮法識別子。パソコン通信の古いログ等で使われている事がある。 |
-lz4- | - | - | - | 無圧縮を示す LArcの圧縮法識別子。 |
-lz5- | 3 | 17 | 4096 | LArcの圧縮法識別子。現在配布されているLArcでの標準の圧縮形式である。 ここにリストアップされた形式の中で唯一ビットストリームを構築せずに入出力できる。 |
-lh0- | - | - | - | LHAの無圧縮を示す圧縮法識別子。一部の実装系を除いて LHAで圧縮が失敗した(圧縮後のサイズが圧縮前のサイズを上回った) 場合、この圧縮法識別子を使用して無圧縮でファイルを書庫に格納する。 |
-lh1- | 3 | 60 | 4096 | LHAの圧縮法識別子。LHAがLHarcという名称で公開されていた頃の標準の圧縮形式である。 LZSS圧縮後、非圧縮1バイト/一致長 を動的ハフマンで、 一致位置の上位6bitを静的ハフマンで圧縮する。 |
-lh2- | 3 | 256 | 8192 | LHAの圧縮法識別子。"-lh1-"の圧縮率改善のテストに使用された。 立花えりりん氏の資料によればLHA内でヘルプスクリーンや SFXを圧縮するのに、この形式が使用されているらしい。 非圧縮1byte/一致長 を動的ハフマンで、 一致位置の上位7bitを動的ハフマンで圧縮する。 |
-lh3- | 3 | 256 | 8192 | LHAの圧縮法識別子。"-lh1-"の圧縮速度改善のテストに使用された。 非圧縮1byte/一致長 を静的ハフマンで、 一致位置の上位7bitを静的ハフマンで圧縮する。 |
-lh4- | 3 | 256 | 4096 | LHA の圧縮法識別子。"-lh5-" での圧縮の際に 空きメモリ量が足りずに辞書サイズが 4096バイト以下になる場合に使用された。 非圧縮1byte/一致長 を静的ハフマンで、 一致位置のビット長を静的ハフマンで圧縮する。 |
-lh5- | 3 | 256 | 8192 |
LHA の圧縮法識別子。現在標準の圧縮形式である。
非圧縮1byte/一致長 を静的ハフマンで、
一致位置のビット長を静的ハフマンで圧縮する。
静的ハフマン用のハフマン符号長のテーブルの長さが -lh3- と
比べて短くなるように改良されている。 |
-lh6- | 3 | 256 | 32768 |
LHA の圧縮法識別子。
この形式で圧縮されたデータを含む書庫は公開しない事が推奨されている。
2、3年前であれば、この形式を扱える実装系が少ない、という理由だと
推測されるが、MacLHA や Unix版 LHa が対応した現在ではどのような理由で
公開しない事が推奨されているのかは不明である。
非圧縮1byte/一致長 を静的ハフマンで、
一致位置のビット長を静的ハフマンで圧縮する。 |
-lh7- | 3 | 256 | 65536 |
LHA の圧縮法識別子。
この形式で圧縮されたデータを含む書庫は公開しない事が推奨されている。
2、3年前であれば、この形式を扱える実装系が少ない、という理由だと
推測されるが、MacLHA や Unix版 LHa が対応した現在ではどのような理由で
公開しない事が推奨されているのかは不明である。
非圧縮1byte/一致長 を静的ハフマンで、
一致位置のビット長を静的ハフマンで圧縮する。 |
-lhd- | - | - | - | 無圧縮を示す LHA の圧縮法識別子。 空のディレクトリを書庫に格納する際に使用される。 |