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 LZ1 and LZ2 respectively. These two algorithms form the basis for many variations including ...
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 c ...
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
Jonathan Forbes (born 4 December 1976 in Dublin) is an Irish actor.
Early life
Forbes was born in Dublin, Ireland on 4 December 1976. He attended Gonzaga College where he was in the same class as fellow actor Andrew Scott, before studying En ...
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
In computer science, a preprocessor (or precompiler) is a 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 is often used by s ...
was added to detect Intel 80x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
"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
Microsoft Compiled HTML Help 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, for Comp ...
, 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
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 a ...
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, as well as Windows Fundamentals for Legacy PCs.
Design ...
, 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 pa ...
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
This is a list of file formats used by archivers and compressors used to create archive files.
Archiving only
Compression only
Archiving and compression
Data recovery
Comparison Containers and compression
Notes
While the original ...
* Comparison of file archivers
The following tables compare general and technical information for a number of file archivers. Please see the individual products' articles for further information. They are neither all-inclusive nor are some entries necessarily up to date. Unless ...
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