{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

# compress4 - Compression Outline 15-853:Algorithms in the...

This preview shows pages 1–3. Sign up to view the full content.

1 15-853 Page 1 15-853:Algorithms in the Real World Data Compression III 15-853 Page 2 Compression Outline Introduction : Lossy vs. Lossless, Benchmarks, … Information Theory : Entropy, etc. Probability Coding : Huffman + Arithmetic Coding Applications of Probability Coding : PPM + others Lempel-Ziv Algorithms : LZ77, gzip, LZ78, compress (Not covered in class) Other Lossless Algorithms: Burrows-Wheeler Lossy algorithms for images: JPEG, MPEG, ... Compressing graphs and meshes: BBK 15-853 Page 3 Lempel-Ziv Algorithms LZ77 (Sliding Window) Variants : LZSS (Lempel-Ziv-Storer-Szymanski) Applications : gzip , Squeeze, LHA, PKZIP, ZOO LZ78 (Dictionary Based) Variants : LZW (Lempel-Ziv-Welch), LZC Applications : compress , GIF, CCITT (modems), ARC, PAK Traditionally LZ77 was better but slower, but the gzip version is almost as fast as any LZ78. 15-853 Page 4 LZ77: Sliding Window Lempel-Ziv Dictionary and buffer “windows” are fixed length and slide with the cursor Repeat : Output ( p , l , c) where p = position of the longest match that starts in the dictionary (relative to the cursor) l = length of longest match c = next char in buffer beyond longest match Advance window by l + 1 a a c a a c a b c a b a b a c Dictionary (previously coded) Lookahead Buffer Cursor

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
2 15-853 Page 5 LZ77: Example a a c a a c a b c a b a a a c (_,0,a) a a c a a c a b c a b a a a c (1,1,c) a a c a a c a b c a b a a a c (3,4,b) a a c a a c a b c a b a a a c (3,3,a) a a c a a c a b c a b a a a c (1,2,c) Dictionary (size = 6) Longest match Next character Buffer (size = 4) 15-853 Page 6 LZ77 Decoding Decoder keeps same dictionary window as encoder. For each message it looks it up in the dictionary and inserts a copy at the end of the string What if l > p? (only part of the message is in the dictionary.) E.g. dict = abcd
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}