LZH formátum | |
Fájlkiterjesztés | .lzh, .lha |
MIME-típus | application/x-lzh-compressed |
Fejlesztő | Haruyasu Yoshizaki (Yoshi)[1] |
Kiadás dátuma | 1988[1] |
Formátum típusa | archív, tömörített |
Kiterjesztése ennek | LHarc |
Uniform | public.archive.lha |
LHA tömörítő | |
Fejlesztő | Haruyasu Yoshizaki (Yoshi)[1] |
Első kiadás | 1988[1] |
Legfrissebb stabil kiadás | 1.14i (Unix)[2] 2.55e (MS-DOS)[3] 2.15 (AmigaOS)[4] |
Operációs rendszer | AmigaOS,[1][2] MorphOS, AROS, MS-DOS,[3] OS/2, Windows, Unix[1][2] |
Kategória | fájl tömörítő |
Licenc | Freeware |
A LHA weboldala |
Az LHA vagy más néven LZH egy freeware tömörítő alkalmazás, illetve a hozzá tartozó fájlformátum, melyet eredetileg LHarc néven fejlesztett ki a japán Haruyasu Yoshizaki (吉崎栄泰; Hepburn: Yoshizaki Haruyasu ) 1988-ban.[1] A LHarc hamar de facto "szabvánnyá" vált a japán BBS felhasználók körében.[5]
1987-88 táján már létezett Japánban LZSS tömörítési algoritmust megvalósító program "LArc", majd "LZARI" címen, LZW algoritmust megvalósító pedig az "ARC", illetve a "PKARC" volt. Az orvosként dolgozó Yoshizaki hobby programozóként azon igyekezett, hogy a Haruhiko Okumura által kifejlesztett LZARI eljárást gyorsabbá tegye. Az LZARI algebrai tömörítési eljárását lecserélte Huffman-kódolásra ("LZHUF"), mely a tömörítési arányon alig változtatott, viszont jelentősen gyorsabbá tette a kódot. Az LZHUF-nak egy assemblyben, illetve C-ben teljesen újraírt változata először LHx, majd végül LH címen jelent meg 1991 januárjában, ez azonban megegyezett az ugyanez év júniusában kiadott MS-DOS 5.0 új LH ("LoadHigh") belső parancsával, így a tömörítőprogramot átnevezték LHA-ra elkerülendő a felesleges név-ütközéseket.[5]
1992-től kezdődően, mind Okumura, mind pedig Yoshizaki egyre elfoglaltak lettek orvosi hivatásukban, így az LHA, illetve általában is tömörítési eljárások, algoritmusok fejlesztésével felhagytak.[5] Az LHA32 nevű 32-bites Windows-átirat és a hozzá tartozó kitömörítő programkönyvtár, az UNLHA32.DLL próbaverzió szintjén maradt.[6] Ugyanígy az MS-DOS (LHx for MSDOS) és a Unix változat (LHA for Unix) fejlesztése is megszakadt, a forráskód azonban szabadon felhasználható.[2][7]
Az LZH-formátumok bájtsorrendje little-endian (a legkisebb helyiérték legelől). Tömörítési módszerként a Lempel-Ziv-Storer-Szymanski (LZSS) algoritmust és a Huffman-kódolást alkalmazzák. Az LZH tömörítvényekben minden belefoglalt állományt (fájlt) egy fejléc előz meg, mely az adott fájlra mutató információkat tartalmaz. A fejlécek háromfélék lehetnek: level-0., level-1. és level-2. szintű. A 0. szinten a fejlécet rögtön a tömörített adatok követnek, míg az 1. és 2. szinten kiterjesztett fejlécek is vannak (pl. Unix felhasználói jogosultsági/fájlhozzáférési adatok).[8]
A fejléc "-lhx-" karaktersorozata jelzi az alkalmazott tömörítési algoritmus-változatot a következők szerint:[8]
-lh0- |
-lh1- |
-lh2- |
-lh3- |
-lh4- |
-lh5- |
-lh6- |
-lh7- |
-lhd-
| |
---|---|---|---|---|---|---|---|---|---|
csúszó keresőablak hossza | tömörítetlen | 4 KiB | 8 KiB | 8 KiB | 4 KiB | 8 KiB | 32 KiB | 64 KiB | üres mappa/ könyvtár |
max. szóhossz | 60 byte | 256 byte | 256 byte | 256 byte | 256 byte | 256 byte | 256 byte | ||
Huffman-kódolás | dinamikus | dinamikus | statikus | statikus | statikus | statikus | statikus |
Hagyományos, illetve nem-kanonikus módszerek:[8]
-lzs-
, -lz2-
, -lz3-
, -lz4-
, -lz5-
, -lz7-
, -lz8-
;-lh8-
, -lh9-
, -lha-
, -lhb-
, -lhc-
, -lhe-
, -lhx-
;-pm0-
, -pm1-
, -pm2-
, -pms-
Az LHA népszerű maradt Japánban a 2000-es évekig, azonban nyugaton nem használták tömegesen.[9] Az id Software korai játékaiban, mint amilyen a Doom vagy a Quake alkalmazta az LHA tömörítési eljárást. Az Aminet máig de facto szabványként alkalmazza az LHA Stefan Boberg által megírt Amiga-portjának továbbfejlesztett változatát, habár az 1990-es évek közepén komoly kihívója volt az LZX tömörítő.[10]
A nagy BIOS gyártók, mint például az AMI vagy az Award a BIOS firmware fájljainak tömörítésére LHA-algoritmust használnak módosított fejléccel, annak érdekében, hogy az EEPROM szűkös tárterületét a lehető legjobban kihasználják.[11]
A Microsoft kiadta a Windows XP japán verziójához Microsoft Compressed (LZH) Folder Add-ont.[12] A Windows 7 japán verziójában az LZH addont a Windows Update-ről lehetett beszerezni a japán nyelvi csomag részeként, azonban csak Windows 7 Enterprise vagy Ultimate felhasználók számára.[13]