LZX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

LZX — название алгоритма сжатия данных из семейства LZ77, а также одноимённого файлового архиватора. Оба они были созданы Джонатаном Форбсом и Томи Поутаненом.

Примеры использования алгоритма LZX

[править | править код]

LZX был публично представлен в качестве файлового архиватора для Amiga в 1995 году, пока авторы обучались в Университете Ватерлоо в Канаде. Как и большинство архиваторов того времени, программное обеспечение было условно-бесплатным. Зарегистрированная версия содержала исправления и улучшения, недоступные в пробных версиях. В 1997 году авторы опубликовали бесплатный ключевой файл и прекратили работу над проектом. Архиватор LZX стал стандартом де-факто на платформе Amiga (наравне с LHA), именно этим архиватором заархивировано большинство пакетов ПО в репозиториях.

Cabinet-файлы Microsoft

[править | править код]

В 1997 году Форбс пришел работать в Microsoft, после чего архиватор Cabinet (.cab) был улучшен путём добавления поддержки метода сжатия LZX. Улучшения включали в себя переменный размер скользящего окна (в Amiga LZX он был ограничен 64 килобайтами, в Microsoft LZX варьировался от 32 до 2048 КБ – по степеням числа 2). Также был добавлен специальный препроцессор для определения CALL-инструкций процессоров Intel 80x86, преобразующий их операнды из относительной адресации в абсолютную, таким образом, архиватор мог выявить обращения к одинаковым позициям в повторяющихся строках, тем самым улучшая сжатие бинарного кода 80x86.

CHM-файлы Microsoft

[править | править код]

Когда Microsoft выпустила в 1997 году формат сжатых HTML-файлов контекстной справки в качестве замены классического формата WinHelp, она решила сжимать все данные в HTML с помощью алгоритма LZX. Тем не менее, для повышения скорости доступа к случайным участкам архиватор был изменён таким образом, чтобы сбрасывать себя через каждый 64-килобайтный интервал и повторно выравнивать к 16-битной границе после каждого 32-килобайтного интервала. Поэтому HTMLHelp может мгновенно выполнять поиск и декодирование в ближайшем 64-килобайтном интервале, что лучше, чем декодирование от начала потока данных.

Файлы Microsoft Reader (LIT)

[править | править код]

LIT-файлы Microsoft для Microsoft Reader — это просто надстройка CHM-формата, в них также используется LZX-сжатие.

Файлы Windows Imaging (WIM)

[править | править код]

Windows Imaging Format — файл-ориентированный формат образа диска, разработанный компанией Microsoft для развертывания последних релизов операционных систем семейства Windows — Windows Vista и Windows Server 2008, LZX в нём используется в качестве одного из методов сжатия.[1]

Распаковка файлов с LZX-сжатием

[править | править код]

Программа unlzx служит для распаковки архивов Amiga LZX.[2]

Для распаковки CAB-файлов с LZX-сжатием применяется cabextract.[3]

Также существует множество кросс-платформенных инструментов для распаковки CHM-файлов (см. HTMLHelp, en:Microsoft Compiled HTML Help, en:xCHM).

LIT-файлы можно распаковать программой Convert LIT.[4]

Примечания

[править | править код]
  1. The Search Engine that Does at InfoWeb.net Архивировано 19 августа 2006 года.
  2. Исходные коды unlzx. Дата обращения: 15 февраля 2010. Архивировано 22 мая 2006 года.
  3. cabextract (включая исходные коды). Дата обращения: 15 февраля 2010. Архивировано 31 августа 2009 года.
  4. Convert LIT (включая исходные коды). Дата обращения: 15 февраля 2010. Архивировано 1 декабря 2020 года.