cs 414 - spring 2011 cs 414 – multimedia systems design lecture 6 – basics of compression (part...

28
CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Upload: melinda-morgan

Post on 17-Jan-2016

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

CS 414 - Spring 2011

CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1)

Klara Nahrstedt

Spring 2011

Page 2: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

CS 414 - Spring 2011

Administrative

MP1 is posted Deadline: February 16, Wednesday Help Session: February 9, Wednesday,

Room 1111 SC, 7-8PM

Page 3: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Outline Need for compression and compression

algorithms classification Basic Coding Concepts

Fixed-length coding and variable-length codingCompression RatioEntropy

RLE Compression (Entropy Coding) Huffman Compression (Statistical Entropy Coding)

CS 414 - Spring 2011

Page 4: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Reading

Media Coding and Content Processing, Steinmetz, Nahrstedt, Prentice Hall, 2002Data Compression – chapter 7

Basic coding concepts – Sections 7.1-7.4 and lecture notes

CS 414 - Spring 2011

Page 5: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Need for Compression

Uncompressed audio 8 KHz, 8 bit

8K per second 30M per hour

44.1 KHz, 16 bit 88.2K per second 317.5M per hour

100 Gbyte disk holds 315 hours of CD quality music

Uncompressed video 640 x 480 resolution, 8 bit

color, 24 fps 7.37 Mbytes per second 26.5 Gbytes per hour

640 x 480 resolution, 24 bit (3 bytes) color, 30 fps 27.6 Mbytes per second 99.5 Gbytes per hour

100 Gbyte disk holds 1 hour of high quality video

CS 414 - Spring 2011

Page 6: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Broad Classification

Entropy Coding (statistical) lossless; independent of data characteristics e.g. RLE, Huffman, LZW, Arithmetic coding

Source Coding lossy; may consider semantics of the data depends on characteristics of the data e.g. DCT, DPCM, ADPCM, color model transform

Hybrid Coding (used by most multimedia systems) combine entropy with source encoding e.g., JPEG-2000, H.264, MPEG-2, MPEG-4, MPEG-7

CS 414 - Spring 2011

Page 7: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Data Compression

Branch of information theoryminimize amount of information to be

transmitted Transform a sequence of characters into a

new string of bits same information content length as short as possible

CS 414 - Spring 2011

Page 8: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Concepts

Coding (the code) maps source messages from alphabet (A) into code words (B)

Source message (symbol) is basic unit into which a string is partitioned can be a single letter or a string of letters

EXAMPLE: aa bbb cccc ddddd eeeeee fffffffgggggggg A = {a, b, c, d, e, f, g, space} B = {0, 1}

CS 414 - Spring 2011

Page 9: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Taxonomy of Codes

Block-block source msgs and code words of fixed length; e.g., ASCII

Block-variable source message fixed, code words variable; e.g.,

Huffman coding Variable-block

source variable, code word fixed; e.g., RLE Variable-variable

source variable, code words variable; e.g., Arithmetic

CS 414 - Spring 2011

Page 10: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Example of Block-Block

Coding “aa bbb cccc ddddd eeeeee fffffffgggggggg”

Requires 120 bits

Symbol Code word

a 000

b 001

c 010

d 011

e 100

f 101

g 110

space 111

Page 11: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Example of Variable-Variable

Coding “aa bbb cccc ddddd eeeeee fffffffgggggggg”

Requires 30 bits don’t forget the spaces

Symbol Code word

aa 0

bbb 1

cccc 10

ddddd 11

eeeeee 100

fffffff 101

gggggggg 110

space 111

Page 12: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Concepts (cont.)

A code is distinct if each code word can be distinguished from

every other (mapping is one-to-one) uniquely decodable if every code word is identifiable

when immersed in a sequence of code words e.g., with previous table, message 11 could be defined as

either ddddd or bbbbbb

CS 414 - Spring 2011

Page 13: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Static Codes

Mapping is fixed before transmissionmessage represented by same codeword

every time it appears in message (ensemble)Huffman coding is an example

Better for independent sequencesprobabilities of symbol occurrences must be

known in advance;

CS 414 - Spring 2011

Page 14: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Dynamic Codes

Mapping changes over timealso referred to as adaptive coding

Attempts to exploit locality of referenceperiodic, frequent occurrences of messagesdynamic Huffman is an example

Hybrids?build set of codes, select based on input

CS 414 - Spring 2011

Page 15: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Traditional Evaluation Criteria

Algorithm complexityrunning time

Amount of compressionredundancycompression ratio

How to measure?

CS 414 - Spring 2011

Page 16: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Measure of Information

Consider symbols si and the probability of occurrence of each symbol p(si)

In case of fixed-length coding , smallest number of bits per symbol needed is L ≥ log2(N) bits per symbol

Example: Message with 5 symbols need 3 bits (L ≥ log25)

CS 414 - Spring 2011

Page 17: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Variable-Length Coding- Entropy What is the minimum number of bits per

symbol? Answer: Shannon’s result – theoretical

minimum average number of bits per code word is known as Entropy (H)

n

i

ii spsp1

)(log)( 2

CS 414 - Spring 2011

Page 18: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Entropy Example

Alphabet = {A, B}p(A) = 0.4; p(B) = 0.6

Compute Entropy (H)-0.4*log2 0.4 + -0.6*log2 0.6 = .97 bits

CS 414 - Spring 2011

Page 19: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Compression Ratio Compare the average message length and the average

codeword length e.g., average L(message) / average L(codeword)

Example: {aa, bbb, cccc, ddddd, eeeeee, fffffff, gggggggg} Average message length is 5 If we use code-words from slide 11, then

We have {0,1,10,11,100,101,110} Average codeword length is 2.14.. Bits

Compression ratio: 5/2.14 = 2.336

CS 414 - Spring 2011

Page 20: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Symmetry

Symmetric compression requires same time for encoding and decoding used for live mode applications (teleconference)

Asymmetric compression performed once when enough time is available decompression performed frequently, must be fast used for retrieval mode applications (e.g., an

interactive CD-ROM)

CS 414 - Spring 2011

Page 21: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Entropy Coding Algorithms (Content Dependent Coding) Run-length Encoding (RLE)

Replaces sequence of the same consecutive bytes with number of occurrences

Number of occurrences is indicated by a special flag (e.g., !)

Example: abcccccccccdeffffggg (20 Bytes) abc!9def!4ggg (13 bytes)

CS 414 - Spring 2011

Page 22: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Variations of RLE (Zero-suppression technique) Assumes that only one symbol appears often

(blank) Replace blank sequence by M-byte and a

byte with number of blanks in sequenceExample: M3, M4, M14,…

Some other definitions are possibleExample:

M4 = 8 blanks, M5 = 16 blanks, M4M5=24 blanks

CS 414 - Spring 2011

Page 23: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Huffman Encoding Statistical encoding To determine Huffman code, it is useful to construct a

binary tree Leaves are characters to be encoded Nodes carry occurrence probabilities of the characters

belonging to the subtree

Example: How does a Huffman code look like for symbols with statistical symbol occurrence probabilities:P(A) = 8/20, P(B) = 3/20, P(C ) = 7/20, P(D) = 2/20?

CS 414 - Spring 2011

Page 24: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Huffman Encoding (Example)

P(C) = 0.09 P(E) = 0.11 P(D) = 0.13 P(A)=0.16

P(B) = 0.51

Step 1 : Sort all Symbols according to their probabilities (left to right) from Smallest to largest these are the leaves of the Huffman tree

CS 414 - Spring 2011

Page 25: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Huffman Encoding (Example)

P(C) = 0.09 P(E) = 0.11 P(D) = 0.13 P(A)=0.16

P(B) = 0.51

P(CE) = 0.20 P(DA) = 0.29

P(CEDA) = 0.49

P(CEDAB) = 1Step 2: Build a binary tree from left toRight Policy: always connect two smaller nodes together (e.g., P(CE) and P(DA) had both Probabilities that were smaller than P(B),Hence those two did connect first

CS 414 - Spring 2011

Page 26: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Huffman Encoding (Example)

P(C) = 0.09 P(E) = 0.11 P(D) = 0.13 P(A)=0.16

P(B) = 0.51

P(CE) = 0.20 P(DA) = 0.29

P(CEDA) = 0.49

P(CEDAB) = 1

0 1

0 1

0 1

Step 3: label left branches of the treeWith 0 and right branches of the treeWith 1

0 1

CS 414 - Spring 2011

Page 27: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Huffman Encoding (Example)

P(C) = 0.09 P(E) = 0.11 P(D) = 0.13 P(A)=0.16

P(B) = 0.51

P(CE) = 0.20 P(DA) = 0.29

P(CEDA) = 0.49

P(CEDAB) = 1

0 1

0 1

0 1

Step 4: Create Huffman CodeSymbol A = 011Symbol B = 1Symbol C = 000Symbol D = 010Symbol E = 001

0 1

CS 414 - Spring 2011

Page 28: CS 414 - Spring 2011 CS 414 – Multimedia Systems Design Lecture 6 – Basics of Compression (Part 1) Klara Nahrstedt Spring 2011

Summary

Compression algorithms are of great importance when processing and transmitting Audio ImagesVideo

CS 414 - Spring 2011