LHA

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 с арифметическим кодированием.

Исходные данные не сжимаются.

Этот метод представлен в первой версии 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.

Технически не является методом сжатия, но используется в архивах .LZH для индикации того, что объект архива является пустым каталогом.

Расширения Joe Jared

править

Joe Jared расширил LZSS для работы с более крупными словарями.

-lh8-, -lh9-, -lha-, -lhb-, -lhc-, -lhe-

править

Размеры словарей составляют соответственно 64, 128, 256, 512, 1024, 2048 КБ.

Расширения UNLHA32

править

UNLHA32.DLL использует собственные методы для тестирования.

Использует 128—256 КБ словарь.

Расширение PMarc

править

Метод разработан PMarc, архиватором для CP/M, созданным Miyo. обычно используется расширение .PMA.

LArc использует те же форматы файлов, что и в .LZH, но был написан Kazuhiko Miki, Haruhiko Okumura и Ken Masuyama. Расширение файлов — .LZS.[3]

Поддерживает 2 КБ скользящее окно, с поддержкой длины совпадения до 17 байтов.

То же, что -lzs-, но могут меняться размер словаря и максимальная длина совпадения.

Примечания

править

Ссылки

править