Tool to apply LZW compression. Lempel-Ziv-Welch (LZW) is a lossless data compression algorithm created by Abraham Lempel, Jacob Ziv, et Terry Welch.

LZW Compression - dCode

Tag(s) : Compression

dCode is free and its tools are a valuable help in games, puzzles and problems to solve every day!

You have a problem, an idea for a project, a specific need and dCode can not (yet) help you? You need custom development? *Contact-me*!

This page is using the new English version of dCode, *please make comments* !

Sponsored ads

This script has been updated, please report any problems.

Tool to apply LZW compression. Lempel-Ziv-Welch (LZW) is a lossless data compression algorithm created by Abraham Lempel, Jacob Ziv, et Terry Welch.

Encryption uses a predefined dictionary, such as 128 ASCII values, and encodes characters with their entry number in the dictionary.

Let the dictionary be 0:A,1:B,2:C,...,25:Z and the plain texte be DECODED which can be written 3,4,2,14,3,4,3 (made of 7 items) in the dictionary.

At each step, one look for a substring in the dictionary, if it does not exists, the dictionary evolves and stores a new entry constituted of the last two entries found.

Step 1 one looks for DE, which is not in the dictionary. One stores DE (position 26) and saves the position of D (position 3) as output.

Step 2 one looks for EC, which is not in the dictionary. One stores EC (position 27) and saves the position of E (position 4) as output. And so on with other steps.

Step 5 one looks for DE again, this time DE exists in the dictionary, one goes to step 6.

Step 6 one looks for DED, which is not in the dictionary. One stores DED (position 30) and saves the position of DE (position 26).

Dictionary has become 0:A,1:B,...,25:Z,26:DE,27:EC,28:CO,29:OD,DED:30

The ciphertext is made up of numbers saved for output.

The ciphertext is 3,4,2,14,26,3 (made of 6 items, the message have been compressed)

Decryption requires to know the dictionary used and the sequence of values from the compression.

Let the cipher text be 3,4,2,14,26,3 and the dictionary be 0:A,1:B,2:C,...,25:Z

For each value, one checks for the corresponding character in the dictionnary.

At each step, the dictionary evolves like in the compression part (see above).

Step 1: 3 corresponds to D

Step 2: 4 corresponds to E, one adds DE in the dictionary in position 26,

Step 3: 2 corresponds to C, one adds EC in the dictionary in position 27, the same for step 4

Step 5: 26 corresponds to DE, etc.

The decompressed plain text is DECODED.

Many variants exist for LZW improving the compression such as LZ77 and LZ78, LZMA, LZSS, or the algorithm Deflate. It is also interesting to combine this compression with Burrows-Wheeler or Huffman.

In 1987 by Abraham Lempel, Jacob Ziv, and Terry Welch

dCode retains ownership of the source code of the script LZW Compression. Except explicit open source licence (free / freeware), any algorithm, applet, software (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, translator), or any snippet or function (convert, solve, decrypt, encrypt, decipher, cipher, decode, code, translate) written in PHP (or Java, C#, Python, Javascript, etc.) which dCode owns rights can be transferred after sales quote. So if you need to download the LZW Compression script for offline use, for you, your company or association, see you on contact page !

lzw,compression,algorithm,string,encoding,lempel,ziv,welch,gif,tiff,mod

Source : http://www.dcode.fr/lzw-compression

© 2016 dCode — The ultimate 'toolkit' website to solve every problem. dCode