LZX
LZX — название алгоритма сжатия данных из семейства LZ77, а также одноимённого файлового архиватора. Оба они были созданы Джонатаном Форбсом и Томи Поутаненом.
Примеры использования алгоритма LZX
[править | править код]Amiga 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]
Примечания
[править | править код]- ↑ The Search Engine that Does at InfoWeb.net Архивировано 19 августа 2006 года.
- ↑ Исходные коды unlzx . Дата обращения: 15 февраля 2010. Архивировано 22 мая 2006 года.
- ↑ cabextract (включая исходные коды) . Дата обращения: 15 февраля 2010. Архивировано 31 августа 2009 года.
- ↑ Convert LIT (включая исходные коды) . Дата обращения: 15 февраля 2010. Архивировано 1 декабря 2020 года.