LHA
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]
Történet
[szerkesztés]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]
Adatformátum
[szerkesztés]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]
Tömörítési módszerek
[szerkesztés]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]
- LArc-módszerek:
-lzs-
,-lz2-
,-lz3-
,-lz4-
,-lz5-
,-lz7-
,-lz8-
; - LHa (Joe Jared kiterjesztések):
-lh8-
,-lh9-
,-lha-
,-lhb-
,-lhc-
,-lhe-
,-lhx-
; - PMarc-módszerek:
-pm0-
,-pm1-
,-pm2-
,-pms-
Felhasználásai
[szerkesztés]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]
Jegyzetek
[szerkesztés]- ↑ a b c d e f g Haruyasu Yoshizaki (angol nyelven). solvusoft.com . (Hozzáférés: 2023. január 16.)
- ↑ a b c d Japanese *N*X LHA (angol nyelven). aminet.net , 2010. július 2. (Hozzáférés: 2023. január 24.)
- ↑ a b LhA archiver 2.55 for MS-DOS (angol nyelven). aminet.net , 1996. október 25. (Hozzáférés: 2023. január 24.)
- ↑ Latest version of Amiga LhA (angol nyelven). aminet.net , 2011. január 3. (Hozzáférés: 2023. január 24.)
- ↑ a b c JapCompHist
- ↑ LHA32 (japán nyelven). vector.co.jp . (Hozzáférés: 2023. január 29.)
- ↑ LHa for UNIX (angol nyelven). solvusoft.com . (Hozzáférés: 2023. január 29.)
- ↑ a b c d LZH format (angol nyelven). (Hozzáférés: 2023. február 1.)
- ↑ 吉澤, 亨史: 「LZH」の開発中止--企業などは使用しないよう作者が注意喚起 (japán nyelven). CNET Japan , 2010. június 7. (Hozzáférés: 2023. január 29.)
- ↑ What is a LZH file? Learn about LZH files here (angol nyelven). bitzipper.com . (Hozzáférés: 2023. január 29.)
- ↑ Pinczakko's Guide to AMI BIOS Reverse Engineering (angol nyelven). [2023. február 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2023. február 2.)
- ↑ Microsoft Compressed (LZH) Folder Add-on. microsoft.com . [2007. augusztus 19-i dátummal az eredetiből archiválva]. (Hozzáférés: 2007. október 5.)
- ↑ How to Open, Edit, and Convert LZH Files (angol nyelven). lifewire.com . (Hozzáférés: 2023. január 29.)
Források
[szerkesztés]- ↑ JapCompHist: Haruhiko Okumura: History of Data Compression in Japan (angol nyelven). oku.edu.mie-u.ac.jp , 1998. március 17. [2006. június 22-i dátummal az eredetiből archiválva]. (Hozzáférés: 2023. január 17.)
- jLHA front-end (angol nyelven). SourceForge , 2014. július 13. (Hozzáférés: 2023. január 23.)
- LHa for UNIX with Autoconf (angol nyelven). GitHub . (Hozzáférés: 2023. január 23.)
- lhasa (angol nyelven). GitHub . (Hozzáférés: 2023. január 23.) nyílt forráskódú LHA kitömörítő (+UNLHA32, PMArc, LArc kiterjesztések)
- The LZH Archive File Format (angol nyelven). fileformat.info . (Hozzáférés: 2023. január 23.) az LZH-fájl fejléc formátuma.