LHAのlh7形式

LHAの圧縮ファイル形式に「lh7」というのがあると聞いたのですが,これはその前の形式とはどう違うのでしょうか。


「lh7」は,これまでの形式と圧縮アルゴリズムに大きな違いはありませんが,圧縮/展開に用いるテーブルのサイズを大きくすることで,高い圧縮率を実現した形式です。lh7形式のテーブルサイズは64KBで,サイズの大きなファイルの圧縮ではより高い圧縮率が期待できますが,テーブルが大きくなるぶん圧縮/展開時のオーバーヘッドが大きくなり,以前の形式に比べて時間がかかることがあるようです。
 LHA Ver.2.13でサポートされているのがlh5形式で,これが現在でもLHAでの圧縮形式の標準になっています。現在β版のLHA Ver.2.67やLHA32.EXEではlh6形式の圧縮/展開,lh7形式の展開がサポートされていますが,lh6/7形式で圧縮されたファイルはLHA Ver.2.13などでは展開できないため,一般にはあまり利用されていないようです。
 下の表はlh5/6/7それぞれで同じファイルを圧縮してみた結果です。やはりlh6/7のほうが圧縮率は高いのですが,JPEGのようにもともと圧縮されているものは,lh7形式でもそれほど圧縮できません。
 なお,lh7形式での圧縮はUNLHA32.DLL(Micco氏作)でもサポートされています。同氏のLHMELTと併用することでWindows 95/NT上で圧縮が可能となっています。なお,UNLHA32.DLL Ver.0.81とLHMELT Ver.0.68(画面下)はともに本誌付録CD-ROMに収録されています。
(坪山博貴)

ファイル@(JPEG) ファイルA(テキスト) ファイルB(TIFF)
圧縮前 196608バイト 68862バイト 1234888バイト
圧縮後
(圧縮率)
lh5 176238バイト(89.6%) 19188バイト(27.9%) 218468バイト(17.7%)
lh6 176158バイト(89.6%) 12651バイト(18.4%) 199144バイト(16.1%)
lh7 176197バイト(89.6%) 11840バイト(17.2%) 192347バイト(15.6%)
表 lh5/6/7での圧縮率比較


UNLHA32.DLLとLHMELT Ver.0.68を組み合わせればlh7形式の圧縮も可能