Image and video compression - Polytech...

49
1 Image and video compression University of the Philippines - Diliman August 2006 Diane Lingrand [email protected] http://www.polytech.unice.fr/~lingrand

Transcript of Image and video compression - Polytech...

Page 1: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

1

Image and video compression

University of the Philippines - DilimanAugust 2006

Diane [email protected]

http://www.polytech.unice.fr/~lingrand

Page 2: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

2

Today's menu

• Ideas for image compression

• Huffman coding

• LZW coding

• Discrete transforms: Fourier, cosinus

• Well known formats :– GIF, PNG, JPEG

Page 3: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

3

Why do we need to compress an image ?

• Storage :– hard drive

– digital camera, PDA, …

• Transmission– Internet

– Radio waves

Page 4: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

4

Objectives

• Rapidity of compression / decompression• Robustness of decompression• Compression ratio • Quantity of informations :

– with or without loss of data

• Quality : – the best, according to our visual abilities– sufficient for detection of informations

Page 5: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

5

Error measurement

• Difficult and complex problem

• MSE = Mean Square Error

• PSNR = Peak Signal Noise Ratio

MSE

MSE

Page 6: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

6

Huffman coding: descending phase

0.030.050.090.100.100.150.180.3probabilities

n8n7n6n5n4n3n2n1values ni

1st step : from m=8 to m=7

n7 and n8 have the smallest probabilities : we group them in one element n7,8 of probability 0.08

...

last step : there is only one element left of probability 1

Page 7: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

7

Huffman coding: ascending phase

0.030.050.090.100.100.150.180.3probabilities

n8n7n6n5n4n3n2n1values ni

0.08

0.170.20

0.32

0.38

0.62

1

0

1

1

0

1

1

0

0

1

1

1

0

0 0

00011

order ofreading

01 11 001 100 101 0000 00010

Page 8: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

8

Huffman coding

• without Huffman coding– sum of : p(ni) * 3 bits

• with Huffman coding– sum of : p(ni) * li

• In our example :3 bits versus 2.79 bits

image (640*480) : 64512 bits=8kB

Page 9: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

9

LZW or Lempel-Ziv Welch

• Used by :– gif format (color images using 8 bits)

– tiff (not always)

– .Z files (compress)

– .gzip or .gz files (gnu zip)

• copyrighted by Compuserve and Unisys

Page 10: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

10

LZW

• Compression without loss• Good for images with large uniform

areas• Algorithm: splits the set of pixels into

words and gives a code to each word• Consider pixels as a 1D array (no

vertical redundancy)

Page 11: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

11

LZW : algorithm

• Splitting the string of pixels into the longest strings

• Construction of a table :– we begin with pixels alone

– then, we consider strings of pixels, longer and longer

• The code for a string does not depend on the string's length

Page 12: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

12

Example of LZW coding

w <- empty string

while (read a char k)if wk is already in the dictionnary

w <- wkelse

add wk in the dictionnaryreturn code of ww <- k

ABRACADABRACADA...

w k wk existe ? retour adresseA B AB non @(A) AB 100B R BR non @(B) BR 101R A RA non @(R) RA 102A C AC non @(A) AC 103C A CA non @(C) CA 104A D AD non @(A) AD 105D A DA non @(D) DA 106A B AB oui

R ABR non @(AB)=100 ABR 107R A RA oui

C RAC non @(RA)=102 RAC 108C A CA oui

D CAD non @(CA)=104 CAD 109

entrée

...

exists ? inputreturn @

Page 13: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

13

Example of LZW decoding

previous string <- empty stringwhile (read a code k)

current string <- *k

return current string

c <- 1st char of current string

@free <- previous string + c

previous string <- current string

ABRACADABRACADA...

...

sortie C @ chaineA A A AB B B B AB 100 BR R R R BR 101 RA A A A RA 102 AC C C C AC 103 CA A A A CA 104 AD D D D AD 105 D

100 AB AB A DA 106 AB102 RA RA R ABR 107 RA104 CA CA C RAC 108 CA

code reçuchaîne

courante entréeinput code

current string output input string

Page 14: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

14

Discrete transforms

• Discrete Fourier transform• Discrete cosin transform

– smaller coefficients– real coefficients

with and

Page 15: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

15

Zig-zag scanning

• The highest coefficients are located in the top left part of the image transform

6463595850493736

6260575148383522

6156524739342321

5553464033242011

5445413225191210

44423126181394

4330271714853

292816157621

Page 16: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

16

Run length coding

• A lot of coefficients are null: – we count the zeros between two non zeros

values

– Example:

• 200 0 80 0 0 4 0 0 0 0 1 …• is replaced by: • 0 200 1 80 2 4 4 1 …

Page 17: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

17

JPEG

• 8x8 blocks encoding

• Several steps :– DCT

– Quantification

– Zig-zag scanning

– Run-length coding

– Huffman coding

Page 18: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

18

JPEG : original ; 88 kB

Page 19: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

19

GIF : 232 kB

Page 20: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

20

JPEG : 50 % ; 68 kB

Page 21: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

21

JPEG : 25 % ; 36 kB

Page 22: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

22

JPEG : 12 % ; 20 kB

Page 23: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

23

JPEG : 5 % ; 12 kB

Page 24: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

24

JPEG : 1 % ; 8 kB

Page 25: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

25

About wavelets (1)

• Replace DCT in JPEG 2000

• Principle :– Decomposition of the signal on a wavelet basis

• Wavelet basis : – generated by scaling and translation of a

“mother” wavelet

(a,b)∈ℜ2

a≠0

Page 26: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

26

About wavelets (2)

• Orthogonal basis :

• Wavelet coefficients :

• Haar's basis :

Page 27: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

27

JPEG 2000

• progressive binary stream

• efficient compression with or without loss of data

• regions of interest can be selected for different compression rates

• includes a mechanism for error robustness

Page 28: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

28

Examples using JPEG 2000

http://jpeg2000.epfl.ch

80 kB 40 kB

Page 29: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

29

JPEG 2000 --- JPEG

20 kB

Page 30: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

30

Video formats and video compression

Page 31: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

31

Analog formats

• Composit formats :– separation luminance / chrominance

– PAL, SECAM, NTSC

– primary colors for NTSC in 1954 :

• red = 612 nm, green = 530 nm and blue = 472 nm– luminance : EY = 0.30 ER + 0.59 EG+ 0.11 EB

– chrominance : Dr = ER - EY and Db = EB – EY

– UER (Union Européenne de Radiodiffusion) decided to use the same equations for PAL et SECAM (but different λ)

to allow the compatibility of black and with TV with color TV and reciprocally

Page 32: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

32

Digital formats

• Componants:– analog : Y Dr Db– digital : Y Cr Cb

• Allows copies without loss• Images dimensions :

– 525 lines, 60 frames / s – 625 lines (576 actives), 50 frames / s

• Format 4:2:2• Format 4:2:0 (DVD)

Page 33: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

33

Luminance / Chrominance coding: format 4:2:2 ....

Historically, 4 represents the sample frequency of luminance at 13.5 Mhz

4:4:4 4:2:2 4:2:0 4:1:1

: luminance and chrominance sample

: luminance sample

Page 34: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

34

Digitalization

• As for fixed images– Sampling

– Quantification

• Maximal frequencies :– audio : 20kHz

– video : 6 MHz

– Nyquist's theorem : Fe(Y) = 13.5MHz

– Fe(Cr) = 6.75 MHz = Fe(Cb)

Page 35: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

35

Video compression

• Properties : – 25 à 30 images / second– video rate– speed of coding/decoding

• Size of the data : – 1 image format 4:2:2, 8 bits : 810 kB

• 720+360+360 = 1440 bytes / line * 576 lines

– 1 second of video : 21 MB– 1 CD of 650 MB = 34 s of video– 1 minute needs 1.2 GB, 1 hour 75 GB

Y Cr Cb

52 µs

64 µs

625 

lign

esau

 to

tal

576 

lign

esac

tive

s

Page 36: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

36

Ideas pour video compression

• compression of frames (= image)

• motion estimation

• if frame (n+1) is almost the same as frame (n), only encode the differences

Page 37: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

37

Compression ratio

• Fixed images

– without loss : 3:1

– with loss : 10:1 (still good quality)

• Video :

– diffusion applications: 15:1 < σ < 40:1

– processing : σ ≃5:1

• How to compute the compression ratio :

– it is necessary to know the original format (4:2:2 8 bits, …)

Page 38: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

38

Compression standards

• 1989 : JPEG (Joint Photographics Experts Group)

• M-JPEG = Motion JPEG– compression / decompression in real time 25 or 30

images / s

– problem : synchronisation with sound and transformation of JPEG into M-JPEG not normalized: several methods, incompatibilities

Page 39: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

39

DV

• similar to M-JPEG, but :– normalized

– efficient quantification tables

• 4:1:1 or 4:2:0

• open market video products or professional (with few differences)

Page 40: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

40

MPEG1, MPEG2Motion Picture Experts Group

• 1992: MPEG 1– norm for animated images with low resolution, for

multimedia applications– JPEG + temporal redondancies– rate : 1.5 Mbits/s for video and sound– quality VHS, compatible CDRom, CDVideo– 1 CD = 650 MB = 74 minutes (video and sound)

• 1994 : MPEG 2 (DVD's norm)– come from MPEG 1 with highest quality

• standard video (3 to 10 Mbits/s)• high definition ( 300 Mbits / s)

– MPEG3 was initialy build for high definition but is now included in MPEG2

Page 41: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

41

The last « MPEG 4 »

• MPEG 4 AVC or H.264– better compression rate

– blocks 4x4

– prediction using several images

• ex: blinking• Windows Media 9 (WM9)

– similar quality

– is not a norm - proprietary

Page 42: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

42

SIF

• SIF (Source Intermediate Format)– half spatial resolution and half temporal

resolution ( 1 frame / 2)

– 360 pixels by 288 lines at 25 Hz

Y

Cr,Cb

4:2:2

4:2:2

odd frames

360

360 180 180360

720 720

144288

288288

288576

576

horizontalunder sampling

vertical under sampling

SIF

TV 4/3 625 linesTVHD 16/9 1250 lines

Page 43: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

43

GOP (Group Of Pictures)

• composed by 3 types of images– I (intra) : coded using JPEG– P (predicted) :

• predicted from a previous I or P• coded using only motion vectors • can propagate errors

– B (bidirectionnal) : • computed using bidirectional interpolation from past or

future I or P using motion vectors• the smallest• don't propagate errors

3 times smallerthan I

6 times smallerthan I

Page 44: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

44

GOP

• a GOP begins with a I and ends just before the next I

• Typical organization : GOP 12 images– M = 3 (distance between 2 P)

– N = 12 (distance between 2 I)

I B B B B B B B BP P P

prediction

interpolation

Page 45: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

45

GOP

• with a long GOP, the compression ratio is higher

• for a given compression rate, a long GOP gives a better image quality

• access to an image : – not possible to cut a GOP– GOP = random access unit

• decompression : – GOP = latency

Page 46: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

46

Motion estimation

• Block = 8x8 (cf JPEG)• Macroblock : build from 4 blocks of luminance

and 2 or 4 blocks of chrominance• Motion estimation on macroblocks :

– Search for similar macroblocks between an image and the previous one

– Computation of motion vectors (translation)– Computation of the predicted image using motion

vectors– Comparaison between the predicted image and the

image => errors of prediction– Coding and transmission of motion vectors and

errors data

Page 47: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

47

MPEG 4 and 7

• for multimedia applications – hybrid coding of both natural and synthetic video

– interactive modes allowing an user to interact with the contents

– compatibility with low BP canals

– robustness to noise

– copyright protection

– possibility to search for informations in the video

Page 48: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

48

MPEG 4 and 7 (suite)

• MPEG 4 : – object oriented coding => we need

segmentation

• MPEG 7 :– normalization of the way to describe the content

of a video (text criterions, visuals, sounds, …)– does not normalized the extraction of information

or the search engine

Page 49: Image and video compression - Polytech Niceusers.polytech.unice.fr/~lingrand/Ens/up/Lesson10-compressionAnd... · Image and video compression ... complex problem • MSE = Mean ...

49

Bibliography

• http://www.data-compression.com

• http://jpeg2000.epfl.ch/.

• Digital Video and HDTV (algorithms and interfaces), Charles Poynton. Morgan Kaufmann Publishers, Elsevier, 2003.