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

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

View Full Document Right Arrow Icon
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 = 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
Background image of page 1

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

View Full DocumentRight Arrow Icon
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 , codeword = (2,9,e) • Simply copy from left to right for (i = 0; i < length; i++) out[cursor+i] = out[cursor-offset+i] •O u t =
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 6

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

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online