LZX is an
LZ77 family
compression algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
, a slightly improved version of
DEFLATE.
[ imlib: the open source Windows Imaging (WIM) library - Compression algorit hmhttps://wimlib.net/compression.html/ref> It is also the name of a ]file archiver
A file archiver is a computer program that combines a number of files together into one archive file, or a series of archive files, for easier transportation or storage. File archivers may employ lossless data compression in their archive formats ...
with the same name. Both were invented by Jonathan Forbes and Tomi Poutanen
Tomi may refer to:
* Constanța
Constanța (, ; ; rup, Custantsa; bg, Кюстенджа, Kyustendzha, or bg, Констанца, Konstantsa, label=none; el, Κωνστάντζα, Kōnstántza, or el, Κωνστάντια, Kōnstántia, ...
in 1990s.
Instances of use of the LZX algorithm
Amiga LZX
LZX was publicly released as an Amiga
Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and sign ...
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 research university with a main campus in Waterloo, Ontario, Canada. The main campus is on of land adjacent to "Uptown" Waterloo and Waterloo Park. The university also operates ...
in Canada
Canada is a country in North America. Its ten provinces and three territories extend from the Atlantic Ocean to the Pacific Ocean and northward into the Arctic Ocean, covering over , making it the world's second-largest country by tota ...
. 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 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, multinational technology company, technology corporation producing Software, computer software, consumer electronics, personal computers, and related services headquartered at th ...
, and Microsoft's cabinet
Cabinet or The Cabinet may refer to:
Furniture
* Cabinetry, a box-shaped piece of furniture with doors and/or drawers
* Display cabinet, a piece of furniture with one or more transparent glass sheets or transparent polycarbonate sheets
* Filing ...
archiver was enhanced to include the LZX compression method. Improvements included a variable search window size; Amiga LZX was fixed to 64 KB, Microsoft LZX could range on powers of two between 32 and 2048 kilobyte
The kilobyte is a multiple of the unit byte for digital information.
The International System of Units (SI) defines the prefix '' kilo'' as 1000 (103); per this definition, one kilobyte is 1000 bytes.International Standard IEC 80000-13 Quanti ...
s (32,768 to 2,097,152 bytes). A special preprocessor 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.
Example
The following arithmetic expression shows an example of operators and operands:
:3 + 6 = 9
In the above exa ...
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, the replacement to 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 to 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 are simply an extension of the CHM file format, and thus also use LZX compression.
Windows Imaging Format (WIM) files
Windows Imaging Format, 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, which was released five years before, at the time being the longest time span between successive releases of ...
and Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearl ...
, uses LZX as one of the compression methods.
CompactOS NTFS file compression
In Windows 10
Windows 10 is a major release of Microsoft's Windows NT operating system. It is the direct successor to Windows 8.1, which was released nearly two years earlier. It was released to manufacturing on July 15, 2015, and later to retail on ...
, LZX compression from Windows Imaging Format is used for new CompactOS NTFS file compression.
Xbox Live Avatars
Microsoft uses LZX compression on Xbox Live Avatars
Xbox Avatars are avatars and characters that represent users of the Xbox Live service on the Xbox 360, Xbox One, and Xbox Series X and Series S video game consoles, Windows 10, and Windows 10 Mobile. Avatars originally debuted on the Xbox 360 as p ...
to reduce their disk and bandwidth requirements.
Decompressing LZX files
The unlzx program and 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 CHM CHM may refer to:
Biology and medicine
* CHM, abbreviation for Clearing House Mechanism under the Convention on Biological Diversity
* CHM, a human gene that encodes Rab escort protein 1
* Choroideremia, a retinal disease caused by mutations in the ...
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
{{Compression Methods
Amiga
Lossless compression algorithms