- LHA (file format)
Infobox file format
name = LHA
extension = .lzh, .lha
mime =application/x-lzh-compressed
owner = Haruyasu Yoshizaki ("Yoshi")
creatorcode =
genre =Data compression
containerfor =
containedby =
extendedfrom =
extendedto =LHA is a
freeware compression utility and associated file format. It was created in1988 by nihongo|Haruyasu Yoshizaki |吉崎栄泰|Yoshizaki Haruyasu, and originally named LHarc. A complete rewrite of LHarc, tentatively named "LHx", was eventually released as "LH". It was then renamed to "LHA" to avoid conflicting with the then-newMS-DOS 5.0 LH ("load high") command. According to early documentation, LHA is pronounced like "La".Although no longer much used in the West, LHA remains popular in
Japan . It was used byid Software to compress installation files for their earlier games, including "Doom" and "Quake ". LHA has been ported to many operating systems and is the main archiving format on theCommodore Amiga computer. This is due toAminet , the world's largest archive of Amiga related software and files, standardising onStefan Boberg 's implementation of LHA for the Amiga. Microsoft has released a Windows XP add-on, Microsoft Compressed (LZH) Folder Add-on, designed for the Japanese version of the operating system [http://support.microsoft.com/kb/896132/JA/] [http://www.microsoft.com/globaldev/outreach/dnloads/LZH_add-on.mspx] .Compression methods
In an LZH archive, the compression method is stored as a 5-byte text string.
Canonical LZH
LHarc compresses files using algorithm from Yoshizaki's earlier LZHUF product, which was modified from LZARI developed by
Haruhiko Okumura , but usesHuffman coding instead ofarithmetic coding . LZARI usesLempel-Ziv-Storer-Szymanski with arithmetic coding.-lh0-
No compression method is applied to the source data.
-lh1-
This method is introduced in LHarc version 1.
It supports 4KiByte
sliding window , with support of maximum 60 bytes of matching length. Dynamic Huffman encoding is used.-lh4-, -lh5-, -lh6, -lh7-
Methods 4, 5, 6, 7 support 4, 8, 32, 64 KiByte
sliding window respectively, with support of maximum 256 bytes of matching length. Static Huffman encoding is used. lh5 is first introduced in LHarc 2, followed by lh6 in LHA 2.66, lh7 in LHA 2.67 beta. LHA itself never compresses into lh4.-lhd-
Technically it is not a compression method, but it is used in .LZH archive to indicate the compressed object is an empty directory.
Joe Jared extensions
Joe Jared extended LZSS to use larger dictionaries.-lh8-, -lh9-, -lha-, -lhb-, -lhc-, -lhe-
Dictionary sizes are 64, 128, 256, 512, 1024, 2048 Ki bytes respectively.
UNLHA32 extensions
UNLHA32.DLL uses its own method for testing purposes.
-lhx-
It uses 128-256 Ki bytes dictionary.
PMarc extensions
These compression methods are created by PMarc, an
CP/M archiver created by Miyo. The archive usually has a .PMA extension.-pc1-
PopCom compressed executable archive.
-pm0-
No compression method is applied to the source data.
-pm1-
hoi
-pm2-
-pms-
Used to indicate PMarc self-extracting archive.
LArc extensions
LArc uses the same file format as .LZH, but was written by
Kazuhiko Miki , Haruhiko Okumura,Ken Masuyama , with extension name '.LZS'. [http://www.lzh-zip.com/extension/ext31.html]-lzs-
It supports 2KiByte
sliding window , with support of maximum 17 bytes of matching length.-lz2-
It is similar of -lzs-, except dictionary size and match length can be changed.
-lz3-
-lz4-
No compression method is applied to the source data.
-lz5-
It supports 4KiByte
sliding window , with support of maximum 17 bytes of matching length.-lz7-
-lz8-
LHICE/ICE
There are copies of LHICE marked as version 1.14. According to Okumura, LHICE is not written by Yoshi. [http://oku.edu.mie-u.ac.jp/~okumura/compression/history.html]
See also
*
List of archive formats
*LZX External links
* [http://oku.edu.mie-u.ac.jp/~okumura/compression/history.html A history of data compression in Japan]
* [http://homepage1.nifty.com/dangan/en/Content/Program/Java/jLHA/Notes/Notes.html LHA Notes] Document about LHA.
* [http://homepage1.nifty.com/dangan/en/Content/Program/Java/jLHA/jLHA.html jLHA] - LHA library for Java
** [http://sourceforge.net/projects/jlhafrontend/ jLHA front-end]
* [http://www2m.biglobe.ne.jp/~dolphin/lha/lha.htm LHA for Unix] (Japanese)
* [http://www.fadden.com/techmisc/hdc/lesson11.htm Hacking Data Compression Lesson 11 LZH, LZARI, and LZB]
* [http://www2.nsknet.or.jp/~micco/micindex.html Micco's page] home of UNLHA32.DLL
* [http://www.nsrl.nist.gov/perl/NSRLmagic NSRL Magic File] contains PMarc info.
Wikimedia Foundation. 2010.