text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 chapter...

72
1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text Compression Huffman coding Arithmetic coding Lempel-Ziv/LZW coding 3.4 Images Compression GIF/TIFF/run-length coding JPEG Contents

Upload: others

Post on 02-Aug-2020

25 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

1

Chapter 3 Text and Image Compression

� 3.1 Introduction

� 3.2 Compression Principles

� 3.3 Text Compression� Huffman coding

� Arithmetic coding

� Lempel-Ziv/LZW coding

� 3.4 Images Compression� GIF/TIFF/run-length coding

� JPEG

Contents

Page 2: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

2

3.1 Introduction

� Compression is used to reduce the volume

of information to be stored into storages

or to reduce the communication bandwidth

required for its transmission over the

networks

How to put an Elephant into your freezer ? … !

Page 3: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

3

3.2 Compression Principles

MultimediaSource Files

CompressedFiles

Copies of Source Files

Compression

Algorithm

Decompression Algorithm

lossless

or lossy

compression

Page 4: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

4

3.2 Compression Principles(2)

� Entropy Encoding� Run-length encoding

� Lossless & Independent of the type of source information

� Used when the source information comprises long substrings of the same character or binary digit

(string or bit pattern, # of occurrences), as FAX

e.g) 000000011111111110000011……

⇒ 0,7 1, 10, 0,5 1,2…… ⇒ 7,10,5,2……

� Statistical encoding� Based on the probability of occurrence of a pattern

� The more probable, the shorter codeword

� “Prefix property”: a shorter codeword must not form the start of a longer codeword

Page 5: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

5

3.2 Compression Principles(3)

� Huffman Encoding� Entropy, H: theoretical min. avg. # of bits that are required to transmit a particular stream

H = -Σ i=1n Pi log2Pi

where n: # of symbols, Pi: probability of symbol i

� Efficiency, E = H/H’where, H’ = avr. # of bits per codeword = Σ i=1

n Ni Pi

Ni: # of bits of symbol i

� E.g) symbols M(10), F(11), Y(010), N(011), 0(000), 1(001) with probabilities 0.25, 0.25, 0.125, 0.125, 0.125, 0.125� H’ = Σ i=1

6 Ni Pi = (2(2×0.25) + 4(3×0.125)) = 2.5 bits/codeword� H = -Σ i=1

6 Pi log2Pi = - (2(0.25log20.25) + 4(0.125log20.125)) = 2.5� E = H/H’ =100 % � 3-bit/codeword if we use fixed-length codewords for six symbols

Page 6: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

6

3.2 Compression Principles(4)

� Source Encoding� Differential encoding

� Small codewords are used each of which indicates only the difference in amplitude between the current value/signal being encoded and the immediately preceding value/signal

� Delta PCM and ADPCM for Audio

� Transform encoding (see pp.123 in Textbook) � Transforming the source information from one form into another which is more readily compressible� Spatial Frequency: changes in (x,y) space� Eyes are more sensitive to the lower frequency than higher

� JPEG for Image (DCT-Discrete Cosine Transform)

Not too many changes occur within a few pixels.

Page 7: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

7

3.3 Text Compression

� Text must be lossless ‘cause loss of some characters may change the meaning

� Character-based frequency counting

� Huffman Encoding, Arithmetic Encoding

� Word-based frequency counting

� Lempel-Ziv-Welch (LZW) algorithm

� Static coding: optimum set of variable-length codewords is derived, provided that relative frequencies of character occurrence is given in priori

� Dynamic or Adaptive Coding: the codewords for a source information are derived as the transfer of it takes place. This is done by building up knowledge of both the characters that are present in the text and their relative frequency of occurrence dynamically as the characters are being transmitted

Page 8: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

8

Static Huffman Coding

� Huffman (Code) Tree� Given : a number of symbols (or characters) and their relative probabilities in prior

� Must hold “prefix property” among codes

Symbol OccurrenceA 4/8B 2/8C 1/8D 1/1

A(4) → A(4) → A(4)[1]B(2) → B(2)[1] → ▪ (4)[0]C(1)[1] → ▪ (2)[0]D(1)[0] code

occurrence

0 10 1

0 1A

BCD

Symbol CodeA 1 B 01C 001D 000

4×1 + 2×2 + 1×3 + 1×3 = 14 bits are

required to transmit“AAAABBCD”

8

4

2

sorting in ascending order

Leaf node

Root node

Branch node

Prefix Property !

Page 9: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

9

Dynamic Huffman Coding(1)� Huffman (Code) Tree is built dynamically as the characters are

being transmitted/received� “This□is…..” is encoded/decoded as it follows

symbol output (code) tree list

T T e0 T1 e0 T1

h 0h

e0 h1 1 T1 1 T1

e0 h1

i 00i

e0 i1 1 h1 2 T1

e0 i1 1 h1 T1 2

2 T11 h1

e0 i1

2T11 h1

e0 i1

s 100s e0 s1 1 i1 2 h1 T1 3

e0 s1 1 i1 T1 h1 2 2

3T12 h1

1 i1e0 s1

22T11 i1

e0 s1h1

weight

e00 Initial tree

If the character is its first occurrence, the character is

transmitted in its uncompressed form. Otherwise its codeword is

determined from the tree

Say, “T” for T“i” for 1st i &“01” for 2nd i

Page 10: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

10

Dynamic Huffman Coding(2)

symbol output tree list

□ 000□

e0 □1 1 s1 2 i1 T1 h1 3 2

e0 □1 1 s1 h1 i1 T1 2 2 3

23T12 i1

1 s1h1

e0 □1

32T1h1 i1

1 s12

e0 □1

i 01 e0 □1 1 s1 h1 i2 T1 2 3 3

e0 □1 1 s1 h1 T1 i2 2 2 4

33T1h1 i2

1 s1

2

e0 □1

42T1h1 i2

1

2

e0 □1s1

Page 11: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

11

Dynamic Huffman Coding(3)

symbol output tree list

s 111

e0 □1 1 s2 h1 T1 i2 3 2 5

e0 □1 1 T1 h1 s2 i2 2 3 4

52T1h1 i2

1 s2

3

e0 □1

43

T1

h1 i2

1

s2 2

e0 □1

TTTT ⇒ 111hhhh ⇒ 00i i i i ⇒ 10ssss ⇒ 01□□□□ ⇒ 1101Other XOther XOther XOther X ⇒ X

Repeat “Sort the weights &

Reconstruct the Tree”until end of a source file

If the next

character is

The compression result : This01111

Page 12: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

12

Arithmetic Coding

� Also applicable to the symbols with the probabilities of the non power of 0.5 ⇒ always achievable of the Shannon value (theoretically optimal)

� A single codeword is given for each string of characters

low = 0 ; high = 1.0 ; range =1.0

while (get a next symbol s and s != end-of-file) {

low = low + range * range_low(s);

high = low + range * range_high(s); range = high – low;

}

output a code so that low≤≤≤≤ code < high;

Encoding Algorithm

Page 13: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

13

Arithmetic Coding (2)

Symbol low high range

0.3

0

0.6

0.8

0.91

e

n

t

.

0 1.0 1.0

w 0.8 0.9 0.1

e 0.8 0.83 0.03

n 0.809 0.818 0.009

t 0.8144 0.8162 0.0018

. 0.81602 0.8162 0.00018

0 + 1.0 * 0.8 = 0.8

w

0 + 1.0 * 0.9 = 0.9

0.8 + 0.1 * 0 = 0.8 0.8 + 0.1 * 0.3 = 0.83

0.8 + 0.03 * 0.3 = 0.809 0.8 + 0.03 * 0.6 = 0.818

0.809 + 0.009 * 0.6 = 0.8144 0.809 + 0.009 * 0.8 = 0.8162

0.8144 + 0.0018 * 0.9 = 0.81602 0.8144 + 0.0018 * 1 = 0.8162

e=0.3 n=0.3 t=0.2 w=0.1 .=0.1(in alphabet order)Encode the word “went.”.

Given characters & their probabilities

0.1*0.3*0.3*0.2*0.1

Page 14: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

14

Arithmetic Coding (3)

0.3

0

0.6

0.8

0.91

e

n

t

w=0.1.

0.83

0.8

0.86

0.88

0.890.9

e=0.3

n

t

w.

0.8

0.818

0.824

0.8270.83

e=0.3

n=0.3

t

w.

0.8117

0.809

0.8144

0.8162

0.81720.818

e=0.3

n

t=0.2

w.

0.81494

0.8144

0.81548

0.81584

0.816020.8162

e=0.3

n

t

w.

0.809

Page 15: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

15

Arithmetic Coding (4)As low=0.81602, high=0.8162, the codeword for the “went.” is given as follows:

(0.1)10=0.5 and 0.5 < high � 0.1(0.01)10=0.25 and 0.5+0.25(=0.8) < high � 0.01(0.001)10=0.125 and 0.8+0.125(=0.925) > high � 0.000

…………. (0.000001)10=0.015625 and 0.8+0.015625(=0.815625) < high � 0.000001(0.0000001)10=0.0078125 and 0.815625+0.015625(=0.8234375) > high � 0.0000000

…………. (0.000000000001)10=0.00024406 and 0.815625+0.00024406 (=0.81586906) < high

� 0.000000000001

(0.0000000000001)10=0.00012203 and 0.81586906+0.00012203 (=0.81599163) < high� 0.0000000000001

(0.0000000000001)10=0.000061015 and 0.81599163+0.000061015 (=0.81605264) < high

� 0.0000000000001

We now have the code “11000100000111” that denotes the bit string “0.11000100000111” (=0.81605264). � cr = [7-bit * 5 symbols ] / [14-bit] = 2.5

Page 16: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

16

Arithmetic Coding (5)

Decoding Algorithm

get a binary code and convert to decimal value v;

while s is not end-of-file

{

find a symbol s so that

range_low(s)≤≤≤≤ v < range_high(s);

output s;

low = range_low(s); high = range_high(s);

range = high – low;

v = [v - low] / range;

}

Page 17: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

17

Arithmetic Coding (6)

Value Symbol low high range

0.3

0

0.6

0.8

0.91

e

n

t

.0.816 w 0.8 0.9 0.1

0.16 e 0.0 0.3 0.3

0.533 n 0.3 0.6 0.3

0.777 t 0.6 0.8 0.2

0.9 . 0.9 1.0 0.1

[0.816-0.8]/0.1 = 0.16

w

[0.16-0]/0.3 = 0.533

[0.533-0.3]/0.3 = 0.777 [0.777-0.6]/0.2 = 0.889 ≈0.9

Note that (0.11000100000111)2 is converted into (0.81605264)10.

Page 18: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

18

Lempel-Ziv-Welch(LZW) Coding

� Adaptive (word) dictionary-based compression algorithm

� Send only the index of where the word is stored in the dictionary as each word in a source file encounters� Say, a 15-bit suffices for 25,000 words in a typical word-processor

� A 15-bit index (codeword) for “multimedia” which is represented by 70-bit ASCII codes, and this results in 4.7:1 compression ratio

� A copy of the dictionary must be held by both the sender and the receiver before the coding/decoding. Hence, the dictionary must be built up dynamically as the compressed text is being transmitted

� Unix compress, GIF for images and 56Kbps V.42 modems.

Assume 1) the average number of characters per word is 6, and 2) the dictionary used contains 4096(212) words. Find the average compression ratio that is achieved relative to using 7-bit ASCII codewords.

The index of the dictionary is given by 12 bits since 4096=212. A word of average 6 characters is represented by 6×7(=42) bits using ASCII codewords. It follows that 42/12 = 3.5:1(350% compression ratio, cr)

Page 19: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

19

Lempel-Ziv-Welch Coding(1)

� A dynamic version of a (word) Dictionary-based compression algorithm� Initially, the dictionary held by both the encoder and decoder contains only the character set, say, ASCII code table that has been used to create the text

� The remaining entries in the dictionary are built up dynamicallyby both the encoder and decoder and contains the words that occur in the text

� For instance, if the character set comprises 128 characters and the dictionary is limited to 4096(212) entries. � The first 128 entries of the dictionary contain the 128 single characters

� The remaining 3968(=4096-128) entries would contain various words that occur in the source

� The more frequently the word stored in the dictionary, the higher the level of compression

Page 20: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

20

Lempel-Ziv-Welch Coding(2)

s = next input character;

while (s is not end-of-file) {

c = next input character; // look ahead the next characterif s+c exits in the dictionary

s = s+c; // ready to make a new word next timeelse { // a new word found

output the code for s; // not s+c !!!add s+c to the dictionary with a new code;

s = c; }}

output the code for s;

Encoding Algorithm

Page 21: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

21

Lempel-Ziv-Welch Coding(3)1. Assume, initially, we have a very simple dictionary, i.e., string table

Code string

1 A

2 B

3 C

2. We are going to compress the string “ABABBABCABABBA”

s c output code string

A B 1 4 AB

B A 2 5 BA

A B

AB B 4 6 ABB

B A

BA B 5 7 BAB

B C 2 8 BC

C A 3 9 CA

A B

AB A 4 10 ABA

A B

AB B

ABB A 6 11 ABBA

A EOF 1

The output is 124523461 and cr = 14/9 = 1.56

Page 22: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

22

Lempel-Ziv-Welch Coding(4)

This □ is □ simple □ as □ it □ is NULLSOH

DELThis

issimple

asit

01

127128129130131132

255

Basic Character Set

Words That Appear First

Dictionary contents (index=8-bit)

“84-104-105-115-32” (ASCII codes for “T-h-i-s”) is sent & the index “128” is created

“129” is sent

NU

LL

SOH

DE

LT

his

issi

mpl

eas it

finis

hpo

nd

0

255

256

511

Initial index=8-bit for 128 words

Index increased to 9-bit

When the entries becomes insufficient, another 128 entries are created (i.e., double the size

of the dictionary)

������� ……

Page 23: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

23

Lempel-Ziv-Welch Coding(5)A typical LZW implementation for textual data uses a 12-bit codelength: its dictionary can contain up to 4,096 entries, with the first 256(0-255) entries being ASCII codes using 8-bit.

s = NIL;while s != end-of-file{

k = next input code;entry = dictionary entry for k;

if (entry == NULL) // exception handling for decodingentry = s+s[0]; // the anomaly case such as ch+st+ch

output entry; // a word match: restored (decoded) !

if (s != NIL)add s+entry[0] to dictionary with a new code;

s = entry;}

Decoding Algorithm

Page 24: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

24

Lempel-Ziv-Welch Coding(6)

Code string

1 A

2 B

3 C

Let’s decode for the string “ABABBABCABABBA”

s k entry/output code string

NIL 1 A

A 2 B 4 AB

B 4 AB 5 BA

AB 5 BA 6 ABB

BA 2 B 7 BAB

B 3 C 8 BC

C 4 AB 9 CA

AB 6 ABB 10 ABA

ABB 1 A 11 ABBA

A EOF

The output is ABABBABCABABBA.

Page 25: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

25

3.4 Image Compression� Images

� Computer-generated images say, GIF or TIFF files

� Digitized images say, FAX or MPEG files

� Basically images are represented (displayed) in 2-d matrix of pixels but, generated ones are stored differently in various file systems

Graphics Interchange Format (GIF)� Widely used in the Internet environments

� Developed by UNISYS and Compuserve

� 24-bit pixels are supported: 8-bit for each R, G & B

� Only 256 colors out of original 224 colors are chosen which match most closely those used in the source

� Instead of sending each pixel as a 24-bit value, only the 8-bit index to the color table entry that contains the closest match color to the original is sent ⇒ 3:1 compression ratio

Page 26: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

26

� The contents of the color table are sent across the network together with the compressed image data and other information such as the screen size and aspect ratio where, the color table is either

� Global color table relates to the whole image to be sent or

� Local color table relates to the portion of the whole image

� GIF also allows an image to be stored and subsequently transferred over the network in an interlaced mode, useful for low bit rate or packet networks. The compressed data is divided into four groups: the first contains 1/8 of the whole, the second a further 1/8, the third a further 1/4, and the last the remaining 1/2

Graphics Interchange Format (2)

XXXX …………XXXXX …………XXXXX …………XXXXX …………XYYYY …………YYYYY …………YYYYY …………YYYYY …………YZZZZ…………ZZZZZ…………ZZZZZ…………ZZZZZ…………ZAAAA………… AAAAA………… AAAAA………… AAAAA………… AXXXX …………XXXXX …………XXXXX …………XXXXX …………XYYYY YYYY YYYY YYYY ����YYYYZZZZZZZZZZZZZZZZ��....��ZZZZAAAAAAAAAAAAAAAA���� AAAA

. . . .

....

XXXX …………XXXXX …………XXXXX …………XXXXX …………XYYYY …………YYYYY …………YYYYY …………YYYYY …………YZZZZ…………ZZZZZ…………ZZZZZ…………ZZZZZ…………Z

XXXX …………XXXXX …………XXXXX …………XXXXX …………XYYYY YYYY YYYY YYYY ����YYYYZZZZZZZZZZZZZZZZ��....��ZZZZ

. . . .

....

XXXX …………XXXXX …………XXXXX …………XXXXX …………XYYYY …………YYYYY …………YYYYY …………YYYYY …………Y

XXXX …………XXXXX …………XXXXX …………XXXXX …………XYYYY YYYY YYYY YYYY ����YYYY

. . . .

....

XXXX …………XXXXX …………XXXXX …………XXXXX …………X

XXXX …………XXXXX …………XXXXX …………XXXXX …………X

. . . .

....

group 1 datagroup 2 data

group 3 data group 4 data

Page 27: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

27

Graphics Interchange Format (3)

Screen Descriptor

GIF Signature

Global Color Map

Image Descriptor

Local Color Map

Raster Area

GIF Terminator

GIF File Format

Red Intensity

Green Intensity

Blue Intensity

Red Intensity

Green Intensity

Blue Intensity

Bits

7 6 5 4 3 2 1 0 Byte #

1 Red value for color index 0

2 Red value for color index 0

3 Red value for color index 0

4 Red value for color index 1

5 Red value for color index 1

6 Red value for color index 1

GIF Color Map

Actual raster data is compressed using the LZW scheme

Page 28: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

28

Tagged Image File Format (TIFF)

� 48-bit pixels, i.e., three 16-bits for each R, G and B are used

� Applicable for both images and digitized documents

� code number 1: uncompressed formats

� code number 2, 3 & 4: digitized documents as in FAX

� code number 5: LZW-compressed formats

Digitized Documents (FAX)� ITU-T series for FAX documents: modified Huffman coding

� Group 3(G3) is for an analog PSTN: no error correcting function

� G4 is a digitalized PSTN like ISDN: error correction

� Usually 10:1 compression is attainable

� Two tables of codewords are given in advance� Termination-codes table: white or black runlengths from 0 to 63 pixels in step of 1 pixel

� Make-up codes table: white or black runlengths that are multiple of 64 pixels

Page 29: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

29

G3(T4) Code Tables

Termination-code Table Makeup-code Table

White run-length

Code-word

Blackrun-length

Code-word

White run-length

Code-word

Blackrun-length

Code-word

01

00110101000111

01

0000110111010

64128

1101110010

64128

0000001111000011001000

1112

01000001000

1112

00001010000111

640704

01100111011001100

640704

00000010010100000001001011

5152

0101010001010101

5152

000001010011000000100100

16641728

011000010011011

16641728

00000011001000000001100101

6263

0011001100110100

6263

000001100110000001100111

2560EOL

00000001111100000000001

2560EOL

00000001111100000000001

Page 30: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

30

Digitized Documents(2): G3

� The overscanning technique is used in G3(T4)

� All lines start with a minimum of one white pixel

� The receiver knows the first codeword always relates to white pixels and then alternates between black and white

� Some coding examples: a runlength of 12 white pixels is coded directly as 001000 and a runlength of 12 black pixels is as 0000111. Thus, a 140 black pixels is encoded 128+12 = 0000110010000000111

� Runlengths exceeding 2560 pixels are encoded using more than one make-up code plus one termination code

Page 31: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

31

Digitized Documents(3): G3

� G3 uses EOL (end-of-line) code in order to enable the receiver to regain synchronism (synchronization), if some bits are corrupted during scanning the line. If further it fails to search the EOL code, the receiver aborts the decoding and informs the sending machine

� A single EOL precedes the codewords for each scanned page and string of six consecutive EOLsindicates the end of each page

� Line-by-line each scanning is encoded independently, the method is hence, known as an one-dimensionalcoding scheme

� Good for scanned images containing significant areas of white or black pixels, say, documents of letters and drawings. But, documents comprising photo images results in negative compression ratio

Page 32: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

32

Digitized Documents(3): G4

� MMR (Modified-Modified READ) Coding, also known as 2-D Runlength Coding� Optional in G3 but compulsory in G4 where, runlengths are identified by comparing adjacent scan lines.

� READ stands for Relative Element Address Designate, and it is “modified” since it is a modified version of an earlier (modified) coding scheme

� Coding Idea: Most scanned lines differ from the previous lines by only a few pixels

� Coding Line (CL): scanned line under encoding for compression

� Reference Line (RL): previously encoded line

� Assumption: the first RL per page is always all-white line

Page 33: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

33

Digitized Documents(4): G4

� MMR (Modified-Modified READ) Coding

� Pass Mode

� Vertical Mode

� Horizontal Mode

� Notations� a0: 1st pixel of a new codeword, which is white (W) or black (B)

� a1: 1st pixel to the right of a0 with different color

� a2: 1st pixel to the right of a1 with different color

� b1: 1st pixel on the RL to the right of a0 with a different color

� b2: 1st pixel on the RL to the right of b1 with a different color

a0 a1

CLRL

b0 b1

a0 a1

b0 b1

a0 a1

b0 b1

Page 34: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

34

Digitized Documents(5): G4

a0 a1

CLRL

b1 b2

a2

Pass ModePass Mode

1) run-length b1b2 coded

2) new a0 becomes old b2

}

b1b2

Vertical ModeVertical Mode

a0 a1

CLRL

b1 b2

a2}

a1b1

a2 is the 1st pixel to the right

of a1 with different

color

a0 a1

b1 b2

a2

}

b1a1

1) run-length a1b1(b1a1) coded

2) new a0 becomes old b2

|a1b1| ≤ ± 3

|a1b1| = 2

|b1a1| = 2

|a1b1| = -2

|a0a1|: no. of pixels from a0

before (to) a1

When b2 lies to the left of a1

When a1 is within 3 pixels to the left or right of b1

Page 35: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

35

Digitized Documents(6): G4

Horizontal ModeHorizontal Mode

a0 a1

CLRL

b1 b2

a2

a0a1

a0 a1

b1 b2

a2

a0a1

1) run-length a0a1 coded white

2) run-length a1a2 coded black

3) new a0 becomes old b2

a1a2

a1a2

|a1b1| > ± 3

|a1b1| = 4

|b1a1| = -4

|a1b1| = 4

Page 36: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

36

Digitized Documents(7): G4

ModeRun-length to be encoded

Abbreviation Codeword

Pass b1b2 P 0001+b1b2

Horizontal a0a1, a1a2 H 0001+ a0a1 +a1a2

Vertical a1b1 = 0

a1b1 = -1

a1b1 = -2

a1b1 = -3

a1b1 = 1

a1b1 = 2

a1b1 = 3

V(0)

VR(1)

VR(2)

VR(3)

VL(1)

VL(2)

VL(3)

2-D Code Table

Extension 0000001000

1

011

000011

0000011

010

000010

0000010

Encode using the G3 termination-code table

Page 37: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

37

Lossy Compression Algorithms: Transform Coding (1), DCT

� The rationale behind transform coding is that if YY is the result of a linear transform TT of the input vector XX is such a way that the components of YY are much less correlated, then YY can be coded more efficiently than XX

� The transform TT itself does not compress any data. The compression comes from the processing and quantization of the components of YY

� DCT (Discrete Cosine Transformation) is a tool to decorrelated the input signal in a data-independent manner.

Unlike 1D audio signal, a digital image f(i,j) is not defined over the time domain. It is defined over a spatial domain, i.e.,an image is a function of the 2D i and j (or x and y). For instance,The 2D DCT is used as one step in JPEG to yield a frequencyresponse that is a function F(u,v) in the spatial frequency domainindexed by two integers u and v.

Page 38: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

38

Lossy Compression Algorithms: Transform Coding (5), DCT

� An electrical signal with constant magnitude is known as a DC (Direct Current), for instance, a battery that carries 1.5 or 9 volts DC. An electrical signal that changes its magnitude periodically at a certain frequency is known as an AC(Alternating Current) signal, say, 110 volts AC and 60 Hz (or 220 volts and 50 Hz)

� Most real signals are more complex, any signal can be expressed as sum of multiple signals that are sine or cosine waveforms at various amplitudes and frequencies

� If a cosine function is used, the process of determining the amplitude of the AC and DC components of the signal is called a Cosine Transform, and the integers indices make it a Discrete Cosine Transform.

� When u=0, Eq. (5) yields the DC coefficient; when u=1 or 2 or ... up to 7, it yields the first or second … 7th AC coefficient.

Why DCT

Page 39: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

39

Lossy Compression Algorithms: Transform Coding (6), DCT

� The DCT is to decompose the original signal into its DC and AC components while the IDCT is to reconstruct the signal

� Eq.(6) shows the IDCT. This uses a sum of the products of the DC or AC coefficients and the cosine functions to reconstruct (recompose) the function f(i).

� Since the DCT and IDCT involves some loss, f(i) is denoted by f(i)� The DCT and IDCT use the same set of cosine functions known as basis functions

� The function f(i,j) is in the time domain while the function F(u,v) is in the space domain

� The coefficients F(u,v) are known as the frequency response and form the frequency spectrum of f(i)

Why DCT

Page 40: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

40

Lossy Compression Algorithms: Transform Coding (2), DCT

� The definition of DCT� Given a function f(i,j) over two integer variables i and j, a piece of an image, the 2D DCT transforms it into a new function F(u,v), with integers u and v running over the same range as i and j.

� F(u,v) =2C(u)C(v)√MN

∑∑M-1 N-1

i=0 j=0

cos (2i+1)uπ

2Mcos (2j+1)vπ

2Nf(i,j)

where i, u = 0,1, …, M-1, and j, v = 0,1, …, N-1. The C(u) and C(v) are determined by

C(u) = {√221

if u=0

otherwise

(1)

(2)

Page 41: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

41

Lossy Compression Algorithms: Transform Coding (3), DCT

� In the JPEG image compression standard a image block is defined to have dimension M=N=8, the 2D DCT is as follows

� F(u,v) =

where i, u = 0,1, …, 7, and j, v = 0,1, …, 7. The C(u) and C(v) are determined by

C(u) = {√221

if u=0

otherwise

C(u)C(v)4

∑∑7 7

i=0 j=0

cos (2i+1)uπ

16cos (2j+1)vπ

16f(i,j) (3)

(2)

Page 42: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

42

Lossy Compression Algorithms: Transform Coding (4), DCT

� 2D IDCT (Inverse DCT)

f(i,j) =

where i, j, u, v = 0,1, …, 7

(4)∼

F(u,v)∑∑7 7

u=0 v=0 4C(u)C(v)

16(2i+1)uπcos 16

(2j+1)vπcos

� 1D DCTF(u) =

� 1D IDCT

f(i) =∼

F(u)∑7

u=0 2

C(u)

16(2i+1)uπcos

C(u)2

∑7

i=0cos (2i+1)uπ

16

(6)

f(i) (5)

Page 43: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

43

Lossy Compression Algorithms: Transform Coding (7), DCT

Some Examples

050100150

200

i0 1 2 3 4 5 6 7

Signal f1(i) that does not change

0100200300

400

u0 1 2 3 4 5 6 7

DCT output F1(u)

The left figure shows a DC signal with a magnitude of 100, i.e., f1(i)=100. When u=0, regardless of i, al the cosine terms in Eq.(5) become cos 0, which equal 1. Taking into account that C(0)=√2/2, F1(0) is given by

F1(0) = √2/(2.2) (1.100 + 1.100 + 1.100 + 1.100 + 1.100 + 1.100 + 1.100) ≈ 283

Similarly, it can be shown that F1(1)= F1(2) = F1(3) = … F1(7) = 0

Page 44: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

44

Lossy Compression Algorithms: Transform Coding (8), DCT

Some Examples

-100-50

0

50100

i0 1 2 3 4 5 6 7

A changing signal f2(i) that has an AC component

0100200

300400

u0 1 2 3 4 5 6 7

DCT output F2(u)

The left figure shows an AC signal with a magnitude of 100, i.e., f1(i)=100. It can be easily shown that

F1(1)= F1(3) = … F1(7) = 0 but F1(2) =200.

Page 45: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

45

Lossy Compression Algorithms: Transform Coding (9), DCT

Some Examples

050

100

150200

i0 1 2 3 4 5 6 7

Signal f3(i) = f1(i)+f2(i)

0100200

300400

u0 1 2 3 4 5 6 7

DCT output F3(u)

The input signal to the DCT is now the sum of the previous two signals, f3(i) = f1(i) + f2(i).

The output F(u) values are F3(0) = 238, F3(2) = 200, and F3(1) = F3(3) = F3(4) = … = F3(7) = 0.

Again we discover that F3(u) = F1(u) + F2(u).

Page 46: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

46

Lossy Compression Algorithms: Transform Coding (10), DCT

Some Examples

-100-50

050

100

i0 1 2 3 4 5 6 7

An arbitrary signal f(i)

u0 1 2 3 4 5 6 7

DCT output F(u)

f(i)(i=0,1,…,7): 85 -65 15 30 -56 35 90 60F(u)(u=0,1,…,7): 69 -49 74 11 16 117 44 -5

-200-100

0100200

Page 47: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

47

Lossy Compression Algorithms: Transform Coding (11), DCT

� The DCT produces the frequency spectrum F(u)corresponding to the spatial signal f(i)� The 0th DCT coefficient F(0) is the DC component of f(i). Up to a constant factor((1/2)(√2/2)(8)=2√2 in the 1D DCT and (1/4)(√2/2)(√2/2)(64)=8 in the 2D DCT), F(0) equals the average magnitude of the signal

� The other seven DCT coefficients reflect the various changing (i.e., AC) components of the signal f(i) at different frequencies.

� The cosine basis functions, say eight 1D DCT or IDCT functions for u=0,…,7, are orthogonal so as to have the least redundancy amongst them for a better decomposition.

Characteristic of the DCT

Page 48: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

48

Lossy Compression Algorithms: Transform Coding (12), Wavelet-Based Coding

� Another method decomposing the input signal into its constitutes is the wavelet transform. It seeks to represent a signal with good resolution in both timeand frequency domain, by using a set of basic functions called wavelets.

� The approach provides us a multiresolution analysis: Mentally stacking the full-size image, the quarter-size image, the sixteen-size image, and so on, creates a pyramid.

Page 49: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

49

Lossy Compression Algorithms: Transform Coding (13), Wavelet-Based Coding

Some Examples

� Suppose we are give the input signal sequence{xn,i} = {10, 13, 25, 26, 29, 21, 7, 15} where, i∈[0,7] indexes “pixels”, and n stands for the level of a pyramid we are on, in this case, at the top, n=3.

� Consider the transformation that replaces the original sequence with its pairwise average xn-1,i and difference dn-1,i defined as follows:

xn-1,i =

dn-1,i =

xn,2i + xn,2i+1

2

xn,2i - xn,2i+1

2

Page 50: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

50

Lossy Compression Algorithms: Transform Coding (14), Wavelet-Based Coding

Some Examples

� {xn-1,i, dn-1,i}= {11.5, 25.5, 25, 11, -1.5, -0.5, 4, -4}, i=0,1, ..., 7.� The original sequence can be reconstructed from the transformed sequence

using the relations

� {xn-2,i, dn-2,i, dn-1,i} = {18.5, 18, -7, 7, -1.5, -0.5, 4, -4} � {xn-3,i, dn-3,i, dn-2,i, dn-1,i} = {18.25, 0.25, -7, 7, -1.5, -0.5, 4, -4}

xn,2i =

dn,2i+1 =

xn-1,i + dn-1,i

xn-1,i - xn-1,i

{xn,i} = {10, 13, 25, 26, 29, 21, 7, 15}

Average of elements in the original sequence

xn-2,i = [xn-1,2i + xn-1,2i+1]/2 = [11.5+25.5]/2 = 18.5

Page 51: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

51

Lossy Compression Algorithms: Transform Coding (15), Wavelet-Based Coding

Some Examples

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 63 127 127 63 0 0

0 0 127 255 255 127 0 0

0 0 127 255 255 127 0 0

0 0 63 127 127 63 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Pixel Value Corresponding 8×8 image

Page 52: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

52

Lossy Compression Algorithms: Transform Coding (16), Wavelet-Based Coding

Some Examples

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 95 95 0 0 -32 32 0

0 191 191 0 0 -64 64 0

0 191 191 0 0 -64 64 0

0 95 95 0 0 -32 32 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Intermediate Output of 2D Haar Wavelet Transform

0 0 0 0 0 0 0 0

0 48 48 0 0 -16 16 0

0 -48 -48 0 0 16 -16 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 143 143 0 0 -48 48 0

0 143 143 0 0 -48 48 0

0 0 0 0 0 0 0 0

Output of the 1st Level of 2D Haar Wavelet Transform

Page 53: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

53

Lossy Compression Algorithms: Transform Coding (17), Wavelet-Based Coding

Some Examples

0 0 0 0 0 0 0 0

0 48 48 0 0 -16 16 0

0 -48 -48 0 0 16 -16 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 143 143 0 0 -48 48 0

0 143 143 0 0 -48 48 0

0 0 0 0 0 0 0 0

Output of the 1st Level of 2D Haar Wavelet Transform

Corresponding Image

Page 54: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

54

1. Unlike 1D audio signal, a digital image f(i,j) is not defined over the time domain. It is defined over a spatial domain, i.e., an image is a function of the 2D i and j (or x and y). For instance, the 2D DCT is used as one step in JPEG to yield a frequency response that is a function F(u,v) in the spatial frequency domain indexed by two integers u and v.

2. Spatial frequency indicates how many times pixel values change across an image block. In the DCT this notion means how much the image contents change in relation to the number cycles of a cosine wave per block

Digitized Pictures (Still Image): JPEG

Page 55: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

55

Digitized Pictures (Still Image): JPEG

Effectiveness of the DCT transform coding in JPEGrelies on three observations as follows.

1. Useful image contents change relatively slowly across the image2. Psychophysical experiments suggest that humans are much less

likely to notice the loss of very high-spatial-frequency componentsthan lower-frequency components

- JPEG’s approach to the use of DCT is basically to reduce

high-frequency contents and then efficiently code the result- Spatial redundancy means how much of the information in

an image is repeated: if a pixel is red, then its neighbor is likely red also. As frequency gets higher, it becomes less important to represent the DCT coefficient accurately.

3. Visual accuracy in distinguishing closely spaced lines is much greater for gray (“black-white”) than for color.

Page 56: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

56

Digitized Pictures (Still Image): JPEG

� JPEG: Joint Photographic Experts Group� “Lossy Sequential Mode”, also known as “Baseline Mode”� IS 10918 by ISO (in cooperation with ITU & IEC)

Source images

Imagepreparation

Blockpreparation

ForwardDCT

Quantizer

Tables

Vectoring

Differentialencoding

Run-lengthencoding

Huffmanencoding

Tables

Framebuilder

Encoded Bit Stream

Image/block preparation

JPEG Encoder

Quantization

Entropyencoding

Page 57: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

57

Digitized Pictures: JPEG(2)

� Image/Block Preparation

monochrome

CLUT(Color-Look-Up Table)

RGB

YCb

Cr

Image Preparation

Source images

block1 block2 blocki

BlockN

2-D matrix is divided into N 8x8 blocks

Block Preparation

block1block2blockiBlockN

Forward DCT

Tx order

Page 58: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

58

Digitized Pictures: JPEG(3)

� DCT (Discrete Cosine Transformation)

P[x,y]

DCT (see pp.152)

increasing fV, vertical spatial

frequency coefficient

increasing fH, horizontal spatial frequency coefficient

increasing fH and fVAC coefficient

DC coefficient: mean of all 64 values averaging

color/luminance/chrominance associated with an 8×8 block

Image는 낮은 주파수 성분이 많고 높은 주파수 성분은 상대적으로적은 특성을 갖기에, DCT를 이용하여 원래의 Image를 주파수 영역으로 변환 한 후(교과서 152쪽의 식을 이용), 낮은 주파수 성분은 많은 bit 수로 quantization하고, 높은 주파수 성분은 적은 비트수로quantization 하여, image의 질을 저하시키지 않으면서 효과적인compression을 할 수 있다

R/G/B or Y : [0, 255] levels

Cb/Cr: [-128, 127] levels

F[i,j]

i

j

x

y 8×8 block

Page 59: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

59

Digitized Pictures: JPEG

� DCT (Discrete Cosine Transformation) Example

Consider a typical image frame comprising 640×480 pixels. Assuming a block of 8×8 pixels, the image will comprise 80×60(4800) blocks each of which, for a screen width of, say, 16 inches(400mm), will occupy a square of only 0.2×0.2 inches(5×5mm).

640

480

640×480 pixels/frame

400

300

400mm×300mm screen

An 8×8 block occupiesa 5mm×5mm region

Those regions of a picture frame that contain a single (or similar) color (s) will generate a set of transformed blocks of all of which will have the same (or very similar) DC coefficient (s) and only a few (or little bit) different AC coefficient(s). The blocks of quite different AC (s) and DC (s) will generate very different colors.

Page 60: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

60

Digitized Pictures: JPEG(4)� Quantization

� The human eyes respond primarily to the DC coefficient and the lower spatial coefficient. Hence, a higher spatial frequency coefficient which is below a certain threshold, that the eyes will not detect it, is dropped(quantizing error inevitable)

� Instead of comparing each coefficient with the coefficient threshold, a division operation with quantization tables is used for the reduction of the size of the DC & AC coefficients

120 60 40 30 4 3 0 0

70 48 32 3 4 1 0 0

50 36 4 4 2 0 0 0

40 4 5 1 1 0 0 0

5 4 0 0 0 0 0 0

3 2 0 0 0 0 0 0

1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0

12 6 3 2 0 0 0 0

7 3 2 0 0 0 0 0

3 2 0 0 0 0 0 0

2 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

10 10 15 20 25 30 35 40

10 15 20 25 30 35 40 50

15 20 25 30 35 40 50 60

20 25 30 35 40 50 60 70

25 30 35 40 50 60 70 80

30 35 40 50 60 70 80 90

35 40 50 60 70 80 90 100

40 50 60 70 80 90 100 110

quantizer

÷÷÷÷

DCT Coefficients Quantization Table Quantized Coefficients

Most are zero (high spatial coefficients)DC coefficient

is the largestrounded to the nearest integer

Two default tables: one for luminance coefficients &

the other for two chrominance coefficients

Page 61: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

61

Digitized Pictures: JPEG(5)

� Consider a quantization threshold value of 16. Derive the resulting quantization error for each of the following DCT coefficients:

127, 72, 64, 56, -56, -64, -72, -128

Coefficient Quantized Value

Rounded Value

Dequantized Value

Error

127

72

64

56

-56

-64

-72

-128

127/16 = 7.9375

4.5

4

3.5

-3.5

-4

-4.5

-8

8

5

4

4

-4(-3)

-4

-5(-4)

-8

8×16 = 128

80

64

64

-64(-48)

-64

-80(-64)

-128

+1

+8

0

+8

-8(+8)

0

-8(+8)

0

Max error/threshold = 8/16 ⇒ max error is within 50% of the threshold

Example 3.4

Page 62: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

62

Digitized Pictures: JPEG(6)� Entropy Encoding: Vectoring

� Entropy Encoding Step : vectoring → differential encoding (DC coefficients) → run-length encoding (AC coefficients) → Huffman encoding

0 1 2 3 4 5 6 701234567

0163

DC coefficient

AC coefficients in increasing order of frequency

Linearized vector(1-D vectorization)

Zig-zag Scanning

12 6 3 2 0 0 0 0

7 3 2 0 0 0 0 0

3 2 0 0 0 0 0 0

2 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

126733320

0163 234567

22

8

2

9

0

10

Page 63: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

63

Digitized Pictures: JPEG(7)

� Entropy Encoding: Differential Encoding for a DC coefficient� A DC coefficient is a measure of the average color, luminance, and chrominance associated with the corresponding 8×8 block of pixels

� Say, the sequence of DC coefficients 12, 13, 11, 11, 10, …. will generate the corresponding difference values 12, 1, -2, 0, 1, …. .(di=DCi-Ci+1, i=1,2,...)

� Then, only the difference in magnitude of the DC coefficient in a quantized block relative to the value in the preceding block is encoded in the form of <SSS, value> where SSS indicates the number of bits needed to encode the value.

Difference value SSS Encoded value

0

-1, 1

-3, -2, 2, 3

-7…-4, 4…7

0

1

2

3

0

-1=0, 1=1

-3=00, -2=01

2=10, 3=11

-7=000…-4=011

4=100…7=111

1’s complement of each other

No of Coefficients

1

2

4

8

Page 64: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

64

Digitized Pictures: JPEG(8)

� Entropy Encoding: Differential Encoding for a DC coefficient

Assume the sequence of DC coefficients is 12, 13, 11, 11, 10. Find the difference values and the encoding values

SSSValue Encoded value12121212

1111

----2222

0000

----1111

4444

1111

2222

0000

1111

1100110011001100

1111

01010101

0000

The difference values are 12, 1, -2, 0, -1 and theirs encoded values are as follows

The final encoded code is 1100 1 01 0. This is a DPCM (differential PCM-Pulse Code Modulation) coding (also, see example 3.7 for detail)

10(2)10(2)10(2)10(2)

1(1)1(1)1(1)1(1)

1’s complement

Example 3.5

Page 65: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

65

Digitized Pictures: JPEG(9)� Entropy Encoding: Run-length Encoding for AC Coefficients

� The 63 remaining 8×8 blocks of pixels, AC coefficients, containusually long strings of zeros within them

� To exploit this feature each AC coefficient is encoded in form of a string of pairs of value (skip, value) where skip is the number of zeros in the run and value is the next non-zero coefficient

6 7 3 3 3 2 0

1 632 3 4 5 6 7

2 2

8

2

9

0

10

Linearized vector

Run-length encoding

(0,6)(0,7)(0,3)(0,3)(0,3)(0,2)(0,2)(0,2)(0,2)(0,0)

end of string

Page 66: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

66

Digitized Pictures: JPEG(10)

� Entropy Encoding: Run-length Encoding for AC Coefficients

Derive the binary form of the following run-length encoded AC coefficients: (0,6)(0,7)(3,3)(0,-1)(0,0)

SkipAC coefficients SSS / Value0,60,60,60,6

0,70,70,70,7

3,33,33,33,3

0,0,0,0,----1111

0,00,00,00,0

0000

0000

3333

0000

0000

3333

3 3 3 3

2222

1111

0000

110110110110

111111111111

11111111

0000

The sequence of AC coefficients:

Example 3.6

6 7 0 0 0 3 -1

1(+1)1(+1)1(+1)1(+1)

1’s complement

Page 67: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

67

Digitized Pictures: JPEG(11)

� Entropy Encoding: Huffman Encoding� The DC coefficients encoding

SSS Huffman encoded SSS Determine the Huffman-encoded version of the following difference values which relates to the encoded DC coefficients from consecutive DCT blocks: 12, 1, -2, 0, -1

Difference values

Encoded value

12

1

-2

0

-1

4

1

2

0

1

1100

1

01

0

SSSHuffman-

encoded SSS101

011

100

010

011

Default Huffman codeword for DC coefficients (Fig.3-19)

0

1

2

3

4

5

6

7

11

010

011

100

00

101

110

1110

11110

111111110

Encoded bitstream sent

1011110

0111

10001

010

0110

Example 3.7

Page 68: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

68

Digitized Pictures: JPEG(12)� Entropy Encoding: Huffman Encoding

� The AC coefficient encoding: skip & value fields are treated as a single symbol, and this is encoded using either the default Huffman code table or some table sent with the encoded bitstream

Skip/SSSHuffman

encoded SSS

0/3

3/2

0/1

0/0

100

111110111

00

1010(=EOB)

Derive the composite binary symbols for the following set of runlength encoded AC coefficients: (0,6)(0,7)(3,3)(0,-1)(0,0)

AC coefficients

Runlength value

(0,6)

(0,7)

(3,3)

(0,-1)

(0,0)

3

3

2

1

0

6=110

7=111

3=11

-1=0

SSSHuffman

codewords100

100

111110111

00

1010

0

0

3

0

0

skip

Default Huffman codeword for AC

coefficients (Table 3.7)

Bitstream sent: 100110100111111110111110001010

Example 3.8

Page 69: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

69

Digitized Pictures: JPEG(13)

� Frame Building: Hierarchical structure

Start-of-frame Frame header Frame contents End-of-frame

Scan header Scan

Segment header Segment

Block

DC End-of-block

Level 1

Level 2

Level 3

Scan

Block

Skip, value

Segment

. width × height in pixels (e.g., 1024 × 768)

. Digitization format (e.g., 4:2:2)

. No & type of components to represent images (e.g., CLUT, R/G/B, Y/Cr/Cb) Skip, value

. Identity of the components to represent images (e.g., CLUT, R/G/B, Y/Cr/Cb)

. No of bits to digitize each component

. Quantization table of values to decode components

Segment header

Default Huffman table of values used to encode blocks in the segment or the indication not used

Page 70: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

70

Digitized Pictures:JPEG(14)� JPEG: Decoding

� Progressive mode: DC and low-frequency coefficients first, then high-frequency coefficients (in zig-zag scan mode as Fig. 3-18)

� Hierarchical mode: total image with low resolution say, 320×240 first, then at a higher resolution say, 640×480

Memory or Video RAM

Framedecoder

Huffmandecoding

Dequantizer

Tables

InverseDCT

Differentialdecoding

Run-lengthdecoding

ImageBuilder

Tables

Encoded Bit Stream

Page 71: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

71

Digitized Pictures:JPEG(15)� JPEG Mode

� Sequential mode (Baseline mode)� Progressive mode

� Spectral selectionScan 1: Encode DC and first few AC components, e.g., AC1, AC2.Scan 2: Encode a few more AC components, e.g., AC3, AC4, AC5.……………………Scan k: Encode the last few ACs, e.g., AC61, AC62, AC63.

� Successive approximationScan 1: Encode the first few MSBs, e.g., Bits 7, 6, and 5.Scan 2: Encode a few more less-significant bits, e.g., Bit 3.…………………….Scan m: Encode the least significant bit (LSB), bit 0.

� Hierarchical mode: total image with low resolutionsay, 320×240 first, then at a higher resolution say, 640×480

Page 72: text and image compression presentation2libvolume3.xyz/electronics/btech/semester8/... · 1 Chapter 3 Text and Image Compression 3.1 Introduction 3.2 Compression Principles 3.3 Text

72

Digitized Pictures:JPEG(16)

� JPEG2000 Standard

� Low-bit rate compression

� Transmission in nosy environments

� Progressive Transmission

� Region-of-interest coding

� Computer-generated imagery

� Supporting 256 channels

� Wavelet-based transformation