ЛЗХ

Алгоритм сжатия

LZX — это алгоритм сжатия семейства LZ77 , слегка улучшенная версия DEFLATE . [1] Это также название архиватора файлов с таким же названием. Оба были изобретены Джонатаном Форбсом и Томи Поутаненом в 1990-х годах.

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

Амига LZX

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

Файлы Microsoft Cabinet

В 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 Compressed HTML (CHM)

Когда Microsoft представила Microsoft Compressed HTML Help , замену их классическому формату файла Help, они решили сжимать все данные HTML с помощью алгоритма LZX. Однако для повышения скорости произвольного доступа компрессор был изменен так, чтобы он сбрасывался после каждого интервала в 64 килобайта (65 536 байт) и повторно выравнивался по 16-битной границе после каждого интервала в 32 килобайта. Таким образом, программное обеспечение HTMLHelp могло немедленно искать ближайший интервал в 64 килобайта и начинать декодирование оттуда, а не декодировать с начала сжатого потока данных в любое время.

Файлы Microsoft Reader (LIT)

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

Файлы формата образа Windows (WIM)

Формат Windows Imaging , формат файла образа установки/диска Windows Vista и Windows 7 , использует LZX в качестве одного из методов сжатия. [3]

Сжатие файлов CompactOS NTFS

В Windows 10 для нового сжатия файлов CompactOS NTFS используется сжатие LZX из формата Windows Imaging .

Аватары Xbox Live

Microsoft использует сжатие LZX на аватарах Xbox Live , чтобы снизить требования к дисковому пространству и пропускной способности. [4]

Распаковка файлов LZX

Программа unlzx и XAD могут распаковывать архивы Amiga LZX. Программа cabextract может распаковывать файлы Microsoft Cabinet с помощью метода LZX. [5] Существует множество кроссплатформенных инструментов для декомпиляции или просмотра файлов CHM, как указано в статье CHM . Файлы LIT можно распаковать с помощью программного обеспечения Convert LIT. [6]

Смотрите также

Ссылки

  1. ^ [wimlib: библиотека Windows Imaging (WIM) с открытым исходным кодом — алгоритм сжатия https://wimlib.net/compression.html]
  2. ^ "Джонатан Форбс - LinkedIn". Архивировано из оригинала 2010-03-23.
  3. ^ "APC Magazine » Создайте свой собственный установочный DVD Vista". Архивировано из оригинала 2006-08-19 . Получено 2006-08-19 .
  4. ^ "Xbox.com | Инженерный блог - Инженерный блог Xbox: Технология Аватара". Архивировано из оригинала 2010-04-11.
  5. ^ "cabextract: Бесплатное программное обеспечение для извлечения файлов Microsoft CAB" . Получено 17 марта 2020 г. .
  6. ^ «Конвертация файлов .LIT для развлечения и выгоды». www.kyzer.me.uk .
  • Страница LZX, включая множество версий архиватора Amiga LZX
  • исходный код unlzx
  • cabextract (включая исходный код)
  • wimlib (исходный код включен)
  • Конвертировать LIT (включая исходный код)
  • Спецификация LZX DELTA от Microsoft
Взято с "https://en.wikipedia.org/w/index.php?title=LZX&oldid=1251536305"