LZX (algorithm)
   HOME

TheInfoList



OR:

LZX is an
LZ77 LZ77 and LZ78 are the two lossless data compression algorithms published in papers by Abraham Lempel and Jacob Ziv in 1977 and 1978. They are also known as Lempel-Ziv 1 (LZ1) and Lempel-Ziv 2 (LZ2) respectively. These two algorithms form the basis ...
family
compression Compression may refer to: Physical science *Compression (physics), size reduction due to forces *Compression member, a structural element such as a column *Compressibility, susceptibility to compression * Gas compression *Compression ratio, of a ...
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
, a slightly improved version of DEFLATE. imlib: the open source Windows Imaging (WIM) library - Compression algorithm https://wimlib.net/compression.html/ref> It is also the name of a
file archiver In computing, a file archiver is utility software that combines computer file, files into a single archive file or in less common cases, multiple files. A minimally designed archiver might concatenate the content of files along with file file n ...
with the same name. Both were invented by Jonathan Forbes and Tomi Poutanen in the 1990s.


Instances of use of the LZX algorithm


Amiga LZX

LZX was publicly released as an
Amiga Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
file archiver in 1995, while the authors were studying at the
University of Waterloo The University of Waterloo (UWaterloo, UW, or Waterloo) is a Public university, public research university located in Waterloo, Ontario, Canada. The main campus is on of land adjacent to uptown Waterloo and Waterloo Park. The university also op ...
in
Canada Canada is a country in North America. Its Provinces and territories of Canada, ten provinces and three territories extend from the Atlantic Ocean to the Pacific Ocean and northward into the Arctic Ocean, making it the world's List of coun ...
. The software was
shareware Shareware is a type of proprietary software that is initially shared by the owner for trial use at little or no cost. Often the software has limited functionality or incomplete documentation until the user sends payment to the software developer. ...
, which was common for compression software at the time. The registered version contained fixes and improvements that were not available in the evaluation version. In 1997, the authors gave away a free keyfile, which allowed anyone to use the registered version, as they had stopped work on the archiver and stopped accepting registrations.


Microsoft Cabinet files

In 1996, Forbes went to work for
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
, and Microsoft's cabinet archiver was enhanced to include the LZX compression method. Improvements included a variable search window size; Amiga LZX was fixed to 64 KB, and Microsoft LZX could range on powers of two between 32 and 2048
kilobyte The kilobyte is a multiple of the unit byte for Computer data storage, digital information. The International System of Units (SI) defines the prefix ''kilo-, kilo'' as a multiplication factor of 1000 (103); therefore, one kilobyte is 1000&nbs ...
s (32,768 to 2,097,152 bytes). A special
preprocessor In computer science, a preprocessor (or precompiler) is a Computer program, program that processes its input data to produce output that is used as input in another program. The output is said to be a preprocessed form of the input data, which i ...
was added to detect Intel 80x86 "CALL" instructions, converting their
operand In mathematics, an operand is the object of a mathematical operation, i.e., it is the object or quantity that is operated on. Unknown operands in equalities of expressions can be found by equation solving. Example The following arithmetic expres ...
s from relative addressing to absolute addressing, thus calls to the same location resulted in repeated strings that the compressor could match, improving compression of 80x86 binary code. (This technique is later generalized as Branch-Call-Jump CJfiltering.)


Microsoft Compressed HTML Help (CHM) files

When Microsoft introduced
Microsoft Compressed HTML Help Microsoft Compiled HTML Help (CHM) is a Microsoft proprietary online help format, consisting of a collection of HTML pages, an index and other navigation tools. The files are compressed and deployed in a binary format with the extension .CHM. Th ...
, the replacement for their classic Help file format, they chose to compress all of the HTML data with the LZX algorithm. However, in order to improve random access speed, the compressor was altered to reset itself after every 64 kilobyte (65,536 bytes) interval and re-align to a 16-bit boundary after every 32 kilobyte interval. Thus, the HTMLHelp software could immediately seek the nearest 64 kilobyte interval and start decoding from there, rather than decoding from the beginning of the compressed datastream at all times.


Microsoft Reader (LIT) files

Microsoft LIT files for
Microsoft Reader Microsoft Reader is a discontinued Microsoft application for reading e-books, first released in August 2000, that used its own .LIT format. It was available for Windows computers and Pocket PC PDAs. The name was also used later for an unrelated ...
are simply an extension of the CHM file format, and thus also use LZX compression.


Windows Imaging Format (WIM) files

Windows Imaging Format The Windows Imaging Format (WIM) is a file-based disk image format. It was developed by Microsoft to help deploy Windows Vista and subsequent versions of the Windows operating system family. Design Like other disk image formats, a WIM file c ...
, the installation/drive image file format of
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
and
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
, uses LZX as one of the compression methods.


CompactOS NTFS file compression

In Windows 10, LZX compression from Windows Imaging Format is used for the new NTFS#CompactOS algorithms, CompactOS NTFS file compression.


Xbox Live Avatars

Microsoft uses LZX compression on Xbox Live Avatars to reduce their disk and bandwidth requirements.


Decompressing LZX files

The unlzx program and XAD (software), XAD can unpack Amiga LZX archives. The cabextract program can unpack Microsoft cabinet files using the LZX method. There are a multitude of cross-platform tools for decompiling or viewing CHM files, as stated in the Microsoft Compressed HTML Help, CHM article. LIT files can be unpacked using the Convert LIT software.


See also

* List of archive formats * Comparison of file archivers


References


External links


The LZX page, including many versions of the Amiga LZX archiver

unlzx source code

cabextract (includes source code)

wimlib (included source code)

Convert LIT (includes source code)

Microsoft's LZX DELTA specification
{{Archive formats Amiga Lossless compression algorithms Data compression