LHA

読み:エルエイチエイ
読み:エルエッチエー
外語:LHA: LZ(LempelZiv)SS Huffman Archiver
品詞:さ変名詞,固有名詞,@道具

日本標準のファイルアーカイバアーカイブと同時にファイル圧縮も行なえるソフトの代表。作者は吉崎栄泰(よしざき・はるやす)。

読みづらいスペルのためか、読み方は諸派ある。標準的なエルエイチエーやエルエッチエーの他、"えるは""ら〜" 等と読む事もある。元々はLHという名前にするつもりだったが、その頃にDOS5が登場し、LOADHIGH(省略形LH)が追加されたため、衝突を避けるためにLHarcになり、その後更にLHAに改名されたという経緯がある。

圧縮方式は一般的な-lh5-でハッシュと二分木を用いた13ビットLZSS、その後開発された-lh6-でハッシュと線形リストを使った15ビットLZSSを初段に用い、後段は共通で静的ハフマン符号を組み合わせたもので、これはLZHUF法と命名されている。

初版はLHarcとして1988(昭和63)年末に公開され、反響を呼んだ。その後も改良を続けられ、後にLHAとなった。元々はMS-DOS用だったLHAも、ボランティアによりUNIXやMac OS、Windowsなどに移植され、またマニュアルの英訳版なども作られ英語版LHAも登場し、世界中で使われるようになった。MS-DOSやWindows環境では対抗にZIPがあったが、LHAはフリーソフトでありかつオープンソースだった点が高く評価され、1991(平成3)年に吉崎栄泰はアメリカのPC Magazine編集長賞受賞、翌1992(平成4)年には第一回フリーソフトウエア大賞の大賞を受賞した。

吉崎栄泰による純正版での最新バージョンはニフティサーブでテスト版として公開されたLHA v2.67(DOS版/NT Console版)である。Windows用はDLLとして提供されており、Micco作のUNLHA32.DLLが多く使われている。

LHarcと呼ばれていた頃の圧縮は-lh1-と呼ばれるタイプである。LHAは、この後段に使われるハフマン符号適応型ハフマン符号から静的ハフマン符号に変更したものである。メモリ内にバッファを用意し、LZSSの出力を一時的に貯め、バッファが満タンになるかファイル終了時点で静的Huffman符号で圧縮を行なう。ここで圧縮効率を上げるために、頻度テーブルの更新に0圧縮や連長圧縮などを組み合わせている。

コラム(LHarc/LHA の圧縮の種類)
┏━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 名前 ┃内容                                                  ┃
┠───╂───────────────────────────┨
┃-lh0- ┃無圧縮格納                                            ┃
┃-lh1- ┃4K スライド辞書(最大60) +適応型ハフマン符号 +固定符号位置  ┃
┃-lh2- ┃8K スライド辞書(最大256)+適応型ハフマン符号        (廃止)  ┃
┃-lh3- ┃8K スライド辞書(最大256)+静的Huffman          (廃止)  ┃
┃-lh4- ┃4K スライド辞書(最大256)+静的Huffman +ツリー符号化改善┃
┃-lh5- ┃8K スライド辞書(最大256)+静的Huffman +ツリー符号化改善┃
┃-lh6- ┃32Kスライド辞書(最大256)+静的Huffman +ツリー符号化改善┃
┃-lh7- ┃64Kスライド辞書(最大256)+静的Huffman                  ┃
┗━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

無圧縮の-lh0-と、-lh1-から-lh7-までが現在は存在する。但し、-lh2--lh3--lh4-はテスト段階で没になったため現存していない。また、-lh6--lh7-はテスト版のため、配布用には使用してはいけない。

-lh6-形式はLHA v2.50以上で解凍可能、LHA v2.60以上で作成可能。-lh7-形式はLHA v2.63以上で解凍可能であるが、作成可能な純正ソフトウェアはなく、WindowsのUNLHA32.DLL v0.62以上で作成できる。