LHA — бесплатный архиватор и соответствующий формат архивирования файлов (имеющих расширение имени .LZH). Как и прародитель, разрабатывался для архивирования текстовых файлов. Является основным архиватором для операционных систем семейства AmigaOS и популярного архива бесплатного программного обеспечения AmiNET.
История
правитьLHA был создан в 1988 году Харуясу Ёсидзаки (яп. 吉崎栄泰 Yoshizaki Haruyasu) и изначально назывался LHarc. Полная переделка LHarc, названная LHx, была анонсирована как LH, но переименована в LHA во избежание конфликтов с появившейся в это время командой LH
(«load high») из MS-DOS 5.0.
Хотя на Западе LHA в настоящее время практически не используется, он остаётся популярным в Японии. Использовался id Software для сжатия установочных файлов ранних компьютерных игр, таких как Doom и Quake.
LHA портировался под многие операционные системы и является основным форматом сжатия для компьютеров Amiga. Aminet — крупнейший мировой архив программ и файлов для Amiga, использует реализацию LHA для Amiga, созданную Стефаном Бобергом.
Корпорация Microsoft выпустила дополнение для Windows XP и Windows Server 2003 для работы с файлами, сжатыми с помощью LHA. В результате можно работать с LHA-архивами прямо из Проводника Windows.[1] Были выпущены соответствующие расширения для японской версии Windows.[2]
Методы компрессии
правитьВ архиве LHA информация о методе сжатия представлена в виде 5-байтовой текстовой строки, что является редкостью для архиваторов.
Канонический LZH
правитьLHarc сжимает файлы, используя алгоритм LZHUF — раннего продукта Ёсидзаки, который был модифицирован из LZARI, разработанного Харухико Окумуро (англ. Haruhiko Okumura), но использует алгоритм Хаффмана вместо арифметического кодирования. LZARI использует алгоритм сжатия LZSS с арифметическим кодированием.
-lh0-
правитьИсходные данные не сжимаются.
-lh1-
правитьЭтот метод представлен в первой версии LHarc.
Поддерживает 4 КБ скользящее окно, с поддержкой длины совпадения до 60 байтов. Используется алгоритм Хаффмана.
-lh4-, -lh5-, -lh6, -lh7-
правитьМетоды 4, 5, 6, 7 поддерживают скользящее окно, соответственно размером 4, 8, 32, 64 КБ, с поддержкой длины совпадения до 256 байтов. Используется статический алгоритм Хаффмана. lh5 был впервые представлен в LHarc 2; за ним последовал lh6 в LHA 2.66 и lh7 в LHA 2.67 beta. Сам LHA никогда не сжимает в lh4.
-lhd-
правитьТехнически не является методом сжатия, но используется в архивах .LZH для индикации того, что объект архива является пустым каталогом.
Расширения Joe Jared
правитьJoe Jared расширил LZSS для работы с более крупными словарями.
-lh8-, -lh9-, -lha-, -lhb-, -lhc-, -lhe-
правитьРазмеры словарей составляют соответственно 64, 128, 256, 512, 1024, 2048 КБ.
Расширения UNLHA32
правитьUNLHA32.DLL использует собственные методы для тестирования.
-lhx-
правитьИспользует 128—256 КБ словарь.
Расширение PMarc
правитьМетод разработан PMarc, архиватором для CP/M, созданным Miyo. обычно используется расширение .PMA
.
-pm0-
править-pm2-
правитьLArc
правитьLArc использует те же форматы файлов, что и в .LZH, но был написан Kazuhiko Miki, Haruhiko Okumura и Ken Masuyama. Расширение файлов — .LZS
.[3]
-lzs-
правитьПоддерживает 2 КБ скользящее окно, с поддержкой длины совпадения до 17 байтов.
-lz2-
правитьТо же, что -lzs-, но могут меняться размер словаря и максимальная длина совпадения.
Примечания
править- ↑ Microsoft Compressed (LZH) Folder Add-on Архивная копия от 19 августа 2007 на Wayback Machine.
- ↑ FAQ на японском Архивная копия от 15 марта 2008 на Wayback Machine.
- ↑ 圧縮データの拡張子 «.LZS» | 圧縮・解凍ソフトのガイド Архивная копия от 6 мая 2008 на Wayback Machine.
Ссылки
править- Краткое описание LZH (рус.)
- История компрессии данных в Японии (англ.)
- LHA Notes (англ.) — документация по LHA.
- jLHA (англ.) — библиотека LHA для Java
- Графический интерфейс для jLHA (англ.)
- LHA for Unix (яп.)
- Hacking Data Compression Lesson 11 LZH, LZARI, and LZB (англ.)