LHA
出典: フリー百科事典『ウィキペディア(Wikipedia)』
拡張子: | .lzh / .lha |
---|---|
MIME Type: |
|
開発者: | 吉崎栄泰 |
種別: | データ圧縮 |
LHA(エルエイチエー)とは、ファイルの圧縮とアーカイブを行うソフトウェアのひとつ。また、圧縮ファイルの形式はその拡張子からLZHと呼ばれる。ここではLZH形式についても述べる。
目次 |
[編集] LHAプログラム
LHAは、奥村晴彦が開発したアルゴリズムをもとに、吉崎栄泰がMS-DOS向けに開発したもので、1988年にパソコン通信で初公開された。
登場当時はLHarc(エルエイチアーク)というプログラムであったが、1990年頃に全面的に作り直され、LHAに改称された(当初はLHに改称の予定であったが、MS-DOSの内部コマンド("loadhigh"の略記)と同一のためにLHAとなった経緯がある。ごく初期にはLHx/LHaという名称・表記であった)。また、初期バージョンではLHAを「ラー」と発音すると作者による説明があったが、後期バージョンではその説明はない。また、RARと混同することからも、「エルエイチエー」「ルハー」「エルハ」等と発音するユーザーが大勢である。
[編集] LZH形式
LZH形式の圧縮アルゴリズムは、LZSS法で圧縮したデータをさらにハフマン法を用いて圧縮するLZHUFアルゴリズムを用いる(拡張子が“.lzh”であるためよくLZHアルゴリズムと混同されるがまったくの別物である。LZHアルゴリズムはLZSSのポインタのみをハフマンで圧縮するもので、Brentが考案した)。LZHUFは奥村晴彦のLZARI(LZSS + 算術符号)の効率を向上するために吉崎栄泰が考案したものである。
LZSS法ではスライド窓や最大一致長を大きく取るほどに圧縮率の向上が見込めるが、一方でむやみに大きくすると最長一致列の探索に時間がかかり、また多くのメモリも必要になる。このため初期の版ではスライド窓や最大一致長の大きさは小さくとられていたが、探索アルゴリズムの改良やコンピュータの性能向上などにより、次第に大きな値が採用されるようになった。
LZH圧縮形式は大きくlh0、lh1、lh4/5/6/7に分けられる。 圧縮率を高めたlh6/7方式が公開されているが、開発途中ということで同形式を使ったファイルの配布は推奨されていない。
[編集] lh0形式
lh0形式は一切の圧縮を行わない。可逆圧縮では圧縮前よりも圧縮後のデータの方がサイズが大きくなる場合があり、lh0形式はそれを避けるために使用される。ユーザーが意図してこの形式を使う場合は、ファイルの破損のチェックに使ったり、複数のファイルをまとめるだけのアーカイバとして利用される。
[編集] lh1形式
lh1形式のスライド窓の大きさは4Kバイト、最大一致長は60バイト。文字と一致長は動的ハフマン法で符号化されるが、一致位置はハフマン法を用いずに符号化される。
[編集] lh4/5/6/7形式
各形式はスライド窓の大きさのみが異なり、それぞれ4K/8K/32K/64Kバイトである。最大一致長は256バイト。
圧縮データの展開速度の向上を目的として、符号化がlh1形式の動的ハフマン法から静的ハフマン法に変更されている。また、一致位置も(文字、一致長とは別に)ハフマン法で符号化される。
[編集] MacLHA形式
「MacLHA」はMacintoshのファイルシステム上のファイルを、LHA形式で圧縮するフリーソフトとして、石崎一明によって開発され配布されたフリーウェア。基本圧縮アルゴリズムはMS-DOS用のLHAと同じだが、Macintoshのファイルシステムで使用されるリソースフォークを含んだ状態で圧縮する為にMacBinary形式にエンコードするという機能が加えられている。この為、MacLHAの圧縮ファイルはMS-DOS(Microsoft Windowsを含む)上のLHA及び互換ソフトでは正常に展開する事ができない。また、ソフトウェア次第ではMacで解凍してもMacBinary形式のファイルが出てくるという事態も起こる。実際、StuffIt Expanderで解凍を行った場合はMacBinaryをデコードしないため混乱したユーザは多い。この場合、出てきたファイルを再度StuffIt Expanderに通せばMacBinaryがデコードされる。
この回避策としてMacBinaryに変換せずに圧縮するオプションが付随しているが、この方法で圧縮した場合、逆に解凍時にMac OS(Classic MacOS)ではファイル識別が出来ない状態になる。それが実行ファイルであった場合、正常に起動できなくなる場合もある。
MacLHAはMac OS Xにネイティブ対応していないことと、Finderがzip圧縮に対応したため、ユーザは他のソフトウェアに移行している。Mac OS Xで万一このファイルに出会った場合はMacBinaryデコーダを用意するかHappyLHAというソフトウェアを使用すると良い。
[編集] 経緯
LHAとLZH形式は、1988年の登場以来、パソコン通信やフロッピーディスクでのデータやり取りが主流の時代に重宝されて、MS-DOSのみならず各種のOSに移植されて発展を続けた。ZIP形式を扱うPKZIPが有料のシェアウェアだったこともあり、日本国内はもとより海外でも広く使われるようになった。1990年代にハードディスクやインターネットが広く普及する時代となっても、日本国内では事実上のデータ圧縮の標準的な形式として浸透していた。
しかし、21世紀に入った頃からは、他の形式の方が圧縮率で上回ることが多くなった他、ファイル名にUnicodeが利用できないこと、暗号化機能がないなど不便さが目立ちつつある。またZIP形式の圧縮復元機能がMac OS XやWindows XPに内蔵されたことにより、特に理由がない限り圧縮形式としてはZIPが使われることが多くなっている。
ただし、かつて作成されたLZHのアーカイブを展開する需要は非常に多いことが確認された。それを受けてマイクロソフト社はLZH展開アドオンを正式に配布している。
また、作者の吉崎栄泰のウェブページがかつて存在していたが現在では無くなっている。
日本においては圧縮データを展開(伸張)することを「解凍」と呼ぶことが多いが、これはLHAのマニュアルで使われていた用語が一般化したものである。また、LZHのアーカイブは「書庫」と呼ばれる。
[編集] 拡張子
.lzh / .lha
日本においては.lzhのみが用いられるが、日本国外では.lhaなどが用いられることもある。
[編集] MIME-Type
application/x-lzh-compressed
[編集] 関連項目
[編集] 参考文献
- 奥村晴彦・吉崎栄泰「圧縮アルゴリズム入門」『C MAGAZINE』1991年1月号、ソフトバンク、44-68頁、1991年。
[編集] 外部リンク
- データ圧縮の昔話(奥村晴彦のページでLHA開発の経緯や当時のパソコン通信におけるやりとりを読むことができる)
- 統合アーカイバプロジェクト
- Micco's HomePage(UNLHA32.DLL作者 "Micco" のウェブページ)
- Windows XP用 LZH形式圧縮フォルダ
- LHa for UNIX (SourceForge.JP プロジェクトページ)