LZX — это алгоритм сжатия семейства LZ77 , слегка улучшенная версия DEFLATE . [1] Это также название архиватора файлов с таким же названием. Оба были изобретены Джонатаном Форбсом и Томи Поутаненом в 1990-х годах.
LZX был публично выпущен как архиватор файлов Amiga в 1995 году, когда авторы учились в Университете Ватерлоо в Канаде . Программное обеспечение было условно-бесплатным , что было обычным явлением для программного обеспечения для сжатия в то время. Зарегистрированная версия содержала исправления и улучшения, которые не были доступны в ознакомительной версии. В 1997 году авторы раздали бесплатный ключевой файл, который позволял любому человеку использовать зарегистрированную версию, поскольку они прекратили работу над архиватором и прекратили принимать регистрации.
В 1996 году Форбс перешел на работу в Microsoft [ 2] , и архиватор кабинетов Microsoft был улучшен, включив метод сжатия LZX. Улучшения включали переменный размер окна поиска; Amiga LZX был зафиксирован на уровне 64 КБ, а Microsoft LZX мог варьироваться в диапазоне от 32 до 2048 килобайт (от 32 768 до 2 097 152 байт). Был добавлен специальный препроцессор для обнаружения инструкций Intel 80x86 "CALL", преобразуя их операнды из относительной адресации в абсолютную, таким образом, вызовы в одно и то же место приводили к повторяющимся строкам, которые мог сопоставить компрессор, улучшая сжатие двоичного кода 80x86. (Эта техника позже была обобщена как фильтрация Branch-Call-Jump [BCJ]).
Когда Microsoft представила Microsoft Compressed HTML Help , замену их классическому формату файла Help, они решили сжимать все данные HTML с помощью алгоритма LZX. Однако для повышения скорости произвольного доступа компрессор был изменен так, чтобы он сбрасывался после каждого интервала в 64 килобайта (65 536 байт) и повторно выравнивался по 16-битной границе после каждого интервала в 32 килобайта. Таким образом, программное обеспечение HTMLHelp могло немедленно искать ближайший интервал в 64 килобайта и начинать декодирование оттуда, а не декодировать с начала сжатого потока данных в любое время.
Файлы Microsoft LIT для Microsoft Reader являются просто расширением формата файлов CHM и поэтому также используют сжатие LZX.
Формат Windows Imaging , формат файла образа установки/диска Windows Vista и Windows 7 , использует LZX в качестве одного из методов сжатия. [3]
В Windows 10 для нового сжатия файлов CompactOS NTFS используется сжатие LZX из формата Windows Imaging .
Microsoft использует сжатие LZX на аватарах Xbox Live , чтобы снизить требования к дисковому пространству и пропускной способности. [4]
Программа unlzx и XAD могут распаковывать архивы Amiga LZX. Программа cabextract может распаковывать файлы Microsoft Cabinet с помощью метода LZX. [5] Существует множество кроссплатформенных инструментов для декомпиляции или просмотра файлов CHM, как указано в статье CHM . Файлы LIT можно распаковать с помощью программного обеспечения Convert LIT. [6]