44
Lecture 11: Context Coding Thinh Nguyen Oregon State University

Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Lecture 11:Context Coding

Thinh NguyenOregon State University

Page 2: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Outline

PPMJBIGBurrows-Wheeler Transform (bzip2)Move-To-Front

Page 3: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Context Coding

H(X) H(Y)H(X|Y)

H(X|Y) <= H(X) H(X|Y) takes fewer bits to code than H(X)

Page 4: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Context CodingThe distribution of the next symbol based on the current context (past symbols) is skewed.

Next symbol is likely to be a certain alphabet the than others.Less informationEasier to code.

1

0 0.5 1 p

H

Page 5: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Context Coding

Page 6: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Review of Entropy

Page 7: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Problem with Context CodingContext explosion!

Suppose we want to use 5-letter context to predict the next letter in an English paragraph.

Number of contexts = 245.

No storage for contexts.

Speed

Page 8: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Which Context to Use?Using previous table, which context for italicized letter?

“We pulled a heavy wagon.”“The theatre was fun.”“’Twas theere haus!”

Page 9: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

PPM- Prediction with Partial MatchingCleary and Witten (1984)

Uses only current contexts (not all possible contexts)

Uses arithmetic coding to code the context

Page 10: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

JBIG

Page 11: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

JBIG Example

Page 12: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Issues with ContextContext dilution

If there are too many contexts then too few symbols are coded in each context, making them in effective because of the zero-frequency problem.

Context saturationIf there are too few contexts then the contexts might not be as good as having more contexts.

Wrong contextpoor predictors.

Page 13: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Burrows-Wheeler TransformBurrows-Wheeler (1994)

BW Transform creates a representation of the data which has a small working set.

The transformed data is compressed with move to front compression.

The decoder is quite different from the encoder.

The algorithm requires processing the entire string at once (it is not on-line).

It is a remarkably good compression method.

Page 14: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Encoding Example

Page 15: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Encoding Example

Page 16: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Encoding Example

Page 17: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Encoding Example

Page 18: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Why Does BW Work?Ignore decoding for the moment.

The prefix of each shifted string is a context for the last symbol.

The last symbol appears just before the prefix in the original.

By sorting, similar contexts are adjacent.This means that the predicted last symbols are similar.

Page 19: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 20: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 21: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 22: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 23: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 24: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 25: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 26: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 27: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 28: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 29: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 30: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 31: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Decoding Example

Page 32: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Notes on BWAlphabetic sorting does not need the entire cyclic shifted inputs. You just have to look at long enough prefixes.

A bucket sort will work here.

Requires entire input. In practice, that’s impossible.

Break input into blocks.

There are high quality practical implementations:BzipBzip2 (public domain)

Page 33: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Move To Front AlgorithmMTF is part of Burrows-Wheeler, basis for bzip2!

Non-numerical data.

The data have a relatively small working set that changes over the sequence.

Example: a b a b a a b c c b b c c c c b d b c c

Move to Front algorithm:Symbols are kept in a list indexed 0 to m-1.To code a symbol output its index and move the symbol to the front of the list.

Page 34: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 35: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 36: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 37: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 38: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 39: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 40: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 41: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 42: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 43: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Example

Page 44: Lecture 11: Context Coding - Oregon State Universityweb.engr.oregonstate.edu/~thinhq/teaching/ece499/... · Burrows-Wheeler Transform Burrows-Wheeler (1994) BW Transform creates a

Extreme Example