Chapter 3 Lossless Data Compression

77
Chapter 3 Lossless Data Compression Po-Ning Chen, Professor Department of Communications Engineering National Chiao Tung University Hsin Chu, Taiwan 300, R.O.C.

Transcript of Chapter 3 Lossless Data Compression

Page 1: Chapter 3 Lossless Data Compression

Chapter 3

Lossless Data Compression

Po-Ning Chen, Professor

Department of Communications Engineering

National Chiao Tung University

Hsin Chu, Taiwan 300, R.O.C.

Page 2: Chapter 3 Lossless Data Compression

Principle of Data Compression I: 3-1

• Average codeword length

E.g.

PX(x = outcomeA) = 0.5;

PX(x = outcomeB) = 0.25;

PX(x = outcomeC) = 0.25.

and

code(outcomeA) = 0;

code(outcomeB) = 10;

code(outcomeC) = 11.

Then the average codeword length is

len(0) · PX(A) + len(10) · PX(B) + len(11) · PX(C)

= 1 · 0.5 + 2 · 0.25 + 2 · 0.25

= 1.5 bits.

• Categories of codes

– Variable-length codes

– Fixed-length codes (often treated as a subclass of variable-length codes)

∗ Segmentation is normally considered an implicit part of the codewords.

Page 3: Chapter 3 Lossless Data Compression

Principle of Data Compression I: 3-2

Example of segmentation of fixed-length codes.

E.g. To encode the final grades of a class with 100 students.

There are three grade levels: A, B and C.

• Without segmentation⌈log2 3100

⌉= 159 bits.

• With segmentation length of 10 students

10 ×⌈log2 310

⌉= 160 bits.

Page 4: Chapter 3 Lossless Data Compression

Principle of Data Compression I: 3-3

• Fixed-length codes

– Block codes

∗ Encoding of the next segment is independent of the previous segments

– Fixed-length tree codes

∗ Encoding of the next segment, somehow, retains and uses some knowl-

edge of earlier segments

• Block diagram of a data compression system

Source(a pseudofacility)

-sourcewords

(source symbols)

Sourceencoder

--codewords

Sourcedecoder

-sourcewords

Block diagram of a data compression system.

Page 5: Chapter 3 Lossless Data Compression

Key Difference in Data Compress Schemes I: 3-4

• Block codes for asymptotic lossless data compression

– Asymptotic in blocklength n

• Variable-length codes for completely lossless data compression

Block Codes for DMS

Definition 3.1 (discrete memoryless source) A discrete memoryless source

(DMS) consists of a sequence of independent and identically distributed (i.i.d.) ran-

dom variables, X1, X2, X3, . . ., etc. In particular, if PX(·) is the common distribu-

tion of Xi’s, then

PXn(x1, x2, . . . , xn) =

n∏

i=1

PX(xi).

Page 6: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-5

Definition 3.2 An (n, M) block code for lossless data compression of blocklength

n and size M is a set {c1, c2, . . . , cM} consisting of M codewords, each codeword

represents a group of source symbols of length n.

• One can binary-index the codewords in {c1, c2, . . . , cM} by r4= dlog2 Me bits.

• Since the behavior of block codes is investigated as n and M large (or more

precisely, tend to infinity), it is legitimate to replace dlog2 Me by log2 M .

• With this convention, the data compression rate or code rate for data com-

pression is

bits required per source symbol =r

n≈

1

nlog2 M.

• For analytical convenience, nats (natural logarithm) is often used instead of

bits; and hence, the code rate becomes:

nats required per source symbol =1

nlog M.

Page 7: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-6

• Encoding of a block code

· · · (x3n, . . . , x31)(x2n, . . . , x21)(x1n, . . . , x11) → · · · |cm3|cm2

|cm1

• AEP or entropy stability property

Theorem 3.3 (asymptotic equipartition property or AEP) If X1,

X2, . . ., Xn, . . . are i.i.d., then

−1

nlog PXn(X1, . . . , Xn) → H(X) in probability.

Proof: This theorem follows by the observation that for i.i.d. sequence,

−1

nlog PXn(X1, . . . , Xn) = −

1

n

n∑

i=1

log PX(Xi),

and the weak law of large numbers.

Page 8: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-7

• (Weakly) δ-typical set

Fn(δ)4=

{

xn ∈ X n :

∣∣∣∣∣−

1

n

n∑

i=1

log PX(xi) − H(X)

∣∣∣∣∣< δ

}

.

E.g. n = 2 and δ = 0.3 and X = {A, B, C, D}.

The source distribution is

PX(A) = 0.4

PX(B) = 0.3

PX(C) = 0.2

PX(D) = 0.1

The entropy equals:

0.4 log1

0.4+ 0.3 log

1

0.3+ 0.2 log

1

0.2+ 0.1 log

1

0.1= 1.27985 nats

Then for x21 = (A, A),

∣∣∣∣∣−

1

2

2∑

i=1

log PX(xi) − H(X)

∣∣∣∣∣

=

∣∣∣∣−

1

2(log PX(A) + log PX(A)) − 1.27985

∣∣∣∣

=

∣∣∣∣−

1

2(log 0.4 + log 0.4) − 1.27985

∣∣∣∣

= 0.364

Page 9: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-8

Source

∣∣∣∣∣−

1

2

2∑

i=1

log PX(xi) − H(X)

∣∣∣∣∣

AA 0.364 nats 6∈ F2(0.3)

AB 0.220 nats ∈ F2(0.3)

AC 0.017 nats ∈ F2(0.3)

AD 0.330 nats 6∈ F2(0.3)

BA 0.220 nats ∈ F2(0.3)

BB 0.076 nats ∈ F2(0.3)

BC 0.127 nats ∈ F2(0.3)

BD 0.473 nats 6∈ F2(0.3)

CA 0.017 nats ∈ F2(0.3)

CB 0.127 nats ∈ F2(0.3)

CC 0.330 nats 6∈ F2(0.3)

CD 0.676 nats 6∈ F2(0.3)

DA 0.330 nats 6∈ F2(0.3)

DB 0.473 nats 6∈ F2(0.3)

DC 0.676 nats 6∈ F2(0.3)

DD 1.023 nats 6∈ F2(0.3)

⇒ F2(0.3) = {AB, AC, BA, BB, BC, CA, CB}.

Page 10: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-9

Source

∣∣∣∣∣−

1

2

2∑

i=1

log PX(xi) − H(X)

∣∣∣∣∣

codeword

AA 0.364 nats 6∈ F2(0.3) 000

AB 0.220 nats ∈ F2(0.3) 001

AC 0.017 nats ∈ F2(0.3) 010

AD 0.330 nats 6∈ F2(0.3) 000

BA 0.220 nats ∈ F2(0.3) 011

BB 0.076 nats ∈ F2(0.3) 100

BC 0.127 nats ∈ F2(0.3) 101

BD 0.473 nats 6∈ F2(0.3) 000

CA 0.017 nats ∈ F2(0.3) 110

CB 0.127 nats ∈ F2(0.3) 111

CC 0.330 nats 6∈ F2(0.3) 000

CD 0.676 nats 6∈ F2(0.3) 000

DA 0.330 nats 6∈ F2(0.3) 000

DB 0.473 nats 6∈ F2(0.3) 000

DC 0.676 nats 6∈ F2(0.3) 000

DD 1.023 nats 6∈ F2(0.3) 000

We can therefore encode the

seven outcomes in F2(0.3) by

seven distinct codewords, and

encode all the remaining nine

outcomes outside F2(0.3) by a

single codeword.

Page 11: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-10

• Almost all the source sequences in Fn(δ) are nearly equiprobable or equally

surprising (cf. Property 3 of Theorem 3.4); Hence, Theorem 3.3 is named

AEP.

E.g. The probabilities of the elements in

F2(0.3) = {AB, AC, BA, BB, BC, CA, CB}

are respectively 0.12, 0.08, 0.12, 0.09, 0.06, 0.08 and 0.06.

The sum of these seven probability masses are 0.61.

Page 12: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-11

Source

∣∣∣∣∣−

1

2

2∑

i=1

log PX(xi) − H(X)

∣∣∣∣∣

codewordreconstructed

sequence

AA 0.364 nats 6∈ F2(0.3) 000 ambiguous

AB 0.220 nats ∈ F2(0.3) 001 AB

AC 0.017 nats ∈ F2(0.3) 010 AC

AD 0.330 nats 6∈ F2(0.3) 000 ambiguous

BA 0.220 nats ∈ F2(0.3) 011 BA

BB 0.076 nats ∈ F2(0.3) 100 BB

BC 0.127 nats ∈ F2(0.3) 101 BC

BD 0.473 nats 6∈ F2(0.3) 000 ambiguous

CA 0.017 nats ∈ F2(0.3) 110 CA

CB 0.127 nats ∈ F2(0.3) 111 CB

CC 0.330 nats 6∈ F2(0.3) 000 ambiguous

CD 0.676 nats 6∈ F2(0.3) 000 ambiguous

DA 0.330 nats 6∈ F2(0.3) 000 ambiguous

DB 0.473 nats 6∈ F2(0.3) 000 ambiguous

DC 0.676 nats 6∈ F2(0.3) 000 ambiguous

DD 1.023 nats 6∈ F2(0.3) 000 ambiguous

Page 13: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-12

Theorem 3.4 (Shannon-McMillan theorem) Given a DMS and any δ > 0,

Fn(δ) satisfies

1. PXn (F cn(δ)) < δ for sufficiently large n.

2. |Fn(δ)| > (1 − δ)en(H(X)−δ) for sufficiently large n, and |Fn(δ)| < en(H(X)+δ)

for every n.

3. If xn ∈ Fn(δ), then

e−n(H(X)+δ) < PXn(xn) < e−n(H(X)−δ).

Proof: Property 3 is an immediate consequence of the definition of Fn(δ). I.e.,

Fn(δ)4=

{

xn ∈ X n :

∣∣∣∣∣−

1

n

n∑

i=1

log PX(xi) − H(X)

∣∣∣∣∣< δ

}

.

Thus,∣∣∣∣∣−

1

n

n∑

i=1

log PX(xi) − H(X)

∣∣∣∣∣< δ ⇔

∣∣∣∣−

1

nlog PXn(xn) − H(X)

∣∣∣∣< δ

⇔ H(X) − δ < −1

nlog PXn(xn) < H(X) + δ.

Page 14: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-13

For Property 1, we observe that by Chebyshev’s inequality,

PXn(F cn(δ)) = PXn

{

xn ∈ X n :

∣∣∣∣−

1

nlog PXn(xn) − H(X)

∣∣∣∣≥ δ

}

≤σ2

nδ2< δ,

for n > σ2/δ3, where

σ24=∑

x∈X

PX(x) (log PX(x))2 − H(X)2

is a constant independent of n.

To prove Property 2, we have

1 ≥∑

xn∈Fn(δ)

PXn(xn) >∑

xn∈Fn(δ)

e−n(H(X)+δ) = |Fn(δ)|e−n(H(X)+δ),

and, using Property 1,

1 − δ ≤ 1 −σ2

nδ2≤

xn∈Fn(δ)

PXn(xn) <∑

xn∈Fn(δ)

e−n(H(X)−δ) = |Fn(δ)|e−n(H(X)−δ),

for n ≥ σ2/δ3.

Page 15: Chapter 3 Lossless Data Compression

Block Codes for DMS I: 3-14

• In the proof, we assume that σ2 = Var[− log PX(X)] < ∞. This is true for

finite alphabet:

Var[− log PX(X)] ≤ E[(log PX(X))2] =∑

x∈X

PX(x)(log PX(x))2

≤∑

x∈X

0.5414 = 0.5414 × |X | < ∞.

Page 16: Chapter 3 Lossless Data Compression

Shannon’s Source Coding Theorem I: 3-15

Theorem 3.5 (Shannon’s source coding theorem) Fix a DMS

X = {Xn = (X1, X2, . . . , Xn)}∞n=1

with marginal entropy H(Xi) = H(X), and ε > 0 arbitrarily small. There exists

δ with 0 < δ < ε, and a sequence of block codes { C∼n = (n, Mn)}∞n=1 with

1

nlog Mn < H(X) + δ (3.2.1)

such that

Pe( C∼n) < ε for all sufficiently large n,

where Pe( C∼n) denotes the probability of decoding error for block code C∼n.

Keys of the proof

• Only need to prove the existence of such block code.

• The code chosen is indeed the weakly δ-typical set.

Page 17: Chapter 3 Lossless Data Compression

Shannon’s Source Coding Theorem I: 3-16

Proof: Fix δ satisfying 0 < δ < ε. Binary-index the source symbols in Fn(δ/2)

starting from one.

For n ≤ 2 log(2)/δ, pick any C∼n = (n, Mn) block code satisfying

1

nlog Mn < H(X) + δ.

For n > 2 log(2)/δ, choose C∼n = (n, Mn) block encoder as{

xn → binary index of xn, if xn ∈ Fn(δ/2);

xn → all-zero codeword, if xn 6∈ Fn(δ/2).

Then by Shannon-McMillan theorem, we obtain

Mn = |Fn(δ/2)| + 1 < en(H(x)+δ/2) + 1 < 2en(H(X)+δ/2) < en(H(X)+δ),

for n > 2 log(2)/δ. Hence, a sequence of (n, Mn) block code satisfying

1

nlog Mn < H(X) + δ.

is established. It remains to show that the error probability for this sequence of

(n, Mn) block code can be made smaller than ε for all sufficiently large n.

Page 18: Chapter 3 Lossless Data Compression

Shannon’s Source Coding Theorem I: 3-17

By Shannon-McMillan theorem,

PXn(F cn(δ/2)) <

δ

2for all sufficiently large n.

Consequently, for those n satisfying the above inequality, and being bigger than

2 log(2)/δ,

Pe( C∼n) ≤ PXn(F cn(δ/2)) < δ ≤ ε.

Page 19: Chapter 3 Lossless Data Compression

Code Rates for Data Compression I: 3-18

• Ultimate data compression rate

R4= lim sup

n→∞

1

nlog Mn nats per source symbol.

• Shannon’s source coding theorem

– Arbitrary good performance can be achieved by extending the block-

length.

(∀ ε > 0 and 0 < δ < ε

)(∃ C∼n)such that

1

nlog Mn < H(X)+δ and Pe( C∼n) < ε.

So R = lim supn→∞

1

nlog Mn can be made smaller than H(X) + δ for arbitrarily

small δ.

In other words, at rate R < H(X) + δ for arbitrarily small δ > 0, the error

probability can be made arbitrarily zero (< ε).

• How about further making R < H(X)? Answer:(

∀ { C∼n}n≥1 with lim supn→∞

1

nlog | C∼n| < H(X)

)

Pe( C∼n) → 1.

Page 20: Chapter 3 Lossless Data Compression

Strong Converse Theorem I: 3-19

Theorem 3.6 (strong converse theorem) Fix a DMS

X = {Xn = (X1, X2, . . . , Xn)}∞n=1

with marginal entropy H(Xi) = H(X), and ε > 0 arbitrarily small. For any block

code sequence of rate R < H(X) and sufficiently large blocklength n,

Pe > 1 − ε.

Proof: Fix any sequence of block codes { C∼n}∞n=1 with

R = lim supn→∞

1

nlog | C∼n| < H(X).

Let Sn = Sn( C∼n) be the set of source symbols that can be correctly decoded through

C∼n-coding system (cf. slide I: 3-21). Then |Sn| = | C∼n|.

By choosing δ small enough with ε/2 > δ > 0, and also by definition of limsup

operation, we have

(∃ N0)(∀ n > N0)1

nlog |Sn| =

1

nlog | C∼n| < H(X) − 2δ,

which implies

|Sn| < en(H(X)−2δ).

Furthermore, from Property 1 of Shannon-McMillan Theorem, we obtain

(∃ N1)(∀ n > N1) PXn(F cn(δ)) < δ.

Page 21: Chapter 3 Lossless Data Compression

Strong Converse Theorem I: 3-20

Consequently, for n > N4= max{N0, N1, log(2/ε)/δ}, the probability of correctly

block decoding satisfies

1 − Pe( C∼n) =∑

xn∈Sn

PXn(xn)

=∑

xn∈Sn∩Fcn(δ)

PXn(xn) +∑

xn∈Sn∩Fn(δ)

PXn(xn)

≤ PXn(F cn(δ)) + |Sn ∩ Fn(δ)| · max

xn∈Fn(δ)PXn(xn)

< δ + |Sn| · maxxn∈Fn(δ)

PXn(xn)

2+ en(H(X)−2δ) · e−n(H(X)−δ)

2+ e−nδ

< ε,

which is equivalent to Pe( C∼n) > 1 − ε for n > N .

Page 22: Chapter 3 Lossless Data Compression

Strong Converse Theorem I: 3-21

• Possible codebook C∼n and its corresponding Sn. The solid box indicates the

decoding mapping from C∼n back to Sn.

Example of Sn

Source Symbols

Snu u u u u u u u u u u u u u u u u u u u

e e e e e e e e e e e e e e e e? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? e?

CCCCCCCCCCCW e?

CCCCCCCCCCCW

Codeword Set C∼n

Page 23: Chapter 3 Lossless Data Compression

Summary of Shannon’s Source Coding Theorem I: 3-22

• Behavior of error probability as blocklength n → ∞ for a DMS

-

H(X)

Pen→∞−→ 1

for all block codesPe

n→∞−→ 0

for the best data compression block code

R

• Key to the achievability proof

Existence of a typical-like set An = {xn1 , x

n2 , . . . , x

nM} with

M ≈ enH(X) and PXn(Acn) → 0 (or PXn(An) → 1.)

In words,

Existence of a typical-like set An whose size is prohibitively

small, and whose probability mass is large.

– This is the basic idea for the generalization of Shannon’s source coding

theorem to a more general (than i.i.d.) source.

Page 24: Chapter 3 Lossless Data Compression

Summary of Shannon’s Source Coding Theorem I: 3-23

• Notes to the strong converse theorem

– It is named the strong converse theorem because the result is very strong.

∗ All code sequences with R < H(X) have error probability approaching

1!

– The strong converse theorem applies to all stationary-ergodic sources.

• A weak converse statement (than the strong converse) is:

– For general sources, such as non-stationary non-ergodic sources, we can find

some code sequence with R < H(X) whose error probability is bounded

away from zero, and does not approach 1 at all.

∗ Of course, you can always design a lousy code with error probability

approaching 1. Here, what the theorem truly claims is that all designs

are lousy.

Page 25: Chapter 3 Lossless Data Compression

Block Codes for Stationary Ergodic Sources I: 3-24

• Recall that the merit of the stationary ergodic assumption is on its validity of

law of large numbers.

• However, in order to extend the Shannon’s source coding theorem to stationary

ergodic sources, we need to generalize the information measure for such sources.

Definition 3.7 (entropy rate) The entropy rate for a source X is defined

by

limn→∞

1

nH(Xn),

provided the limit exists.

– Comment: The limit of limn→∞1nH(Xn) exists for all stationary sources.

Page 26: Chapter 3 Lossless Data Compression

Block Codes for Stationary Ergodic Sources I: 3-25

Lemma 3.8 For a stationary source, the conditional entropy

H(Xn|Xn−1, . . . , X1)

is non-increasing in n and also bounded from below by zero. Hence by Lemma A.25

(i.e., convergence of monotone sequence), the limit

limn→∞

H(Xn|Xn−1, . . . , X1)

exists.

Proof:

H(Xn|Xn−1, . . . , X1) ≤ H(Xn|Xn−1, . . . , X2) (3.2.2)

= H(Xn−1|Xn−2, . . . , X1), (3.2.3)

where (3.2.2) follows since conditioning never increases entropy, and (3.2.3) holds

because of the stationarity assumption.

Page 27: Chapter 3 Lossless Data Compression

Block Codes for Stationary Ergodic Sources I: 3-26

Lemma 3.9 (Cesaro-mean theorem) If an → a and bn = (1/n)∑n

i=1 ai,

then bn → a as n → ∞.

Proof: an → a implies that for any ε > 0, there exists N such that for all n > N ,

|an − a| < ε. Then

|bn − a| =

∣∣∣∣∣

1

n

n∑

i=1

(ai − a)

∣∣∣∣∣

≤1

n

n∑

i=1

|ai − a|

=1

n

N∑

i=1

|ai − a| +1

n

n∑

i=N+1

|ai − a|

≤1

n

N∑

i=1

|ai − a| +n − N

nε.

Hence, limn→∞ |bn − a| ≤ ε. Since ε can be made arbitrarily small, the lemma

holds.

Page 28: Chapter 3 Lossless Data Compression

Block Codes for Stationary Ergodic Sources I: 3-27

Theorem 3.10 For a stationary source, its entropy rate always exists and is equal

to

limn→∞

1

nH(Xn) = lim

n→∞H(Xn|Xn−1, . . . , X1).

Proof: This theorem can be proved by writing1

nH(Xn) =

1

n

n∑

i=1

H(Xi|Xi−1, . . . , X1) (chain-rule for entropy)

and applying Cesaro-Mean theorem.

Exercise 3.11 (1/n)H(Xn) is non-increasing in n for a stationary source.

Page 29: Chapter 3 Lossless Data Compression

Practices of Finding the Entropy Rate I: 3-28

• I.i.d. source

limn→∞

1

nH(Xn) = H(X)

since H(Xn) = n × H(X) for every n.

• First-order stationary Markov source

limn→∞

1

nH(Xn) = lim

n→∞H(Xn|Xn−1, . . . , X1) = H(X2|X1),

where

H(X2|X1)4= −

x1∈X

x2∈X

π(x1)PX2|X1(x2|x1) · log PX2|X1

(x2|x1),

and π(·) is the stationary distribution for the Markov source.

– In addition, if the Markov source is also binary,

limn→∞

1

nH(Xn) =

β

α + βHb(α) +

α

α + βHb(β),

where Hb(α)4=−α log α− (1−α) log(1−α) is the binary entropy function,

and PX2|X1(0|1) = α and PX2|X1

(1|0) = β

Page 30: Chapter 3 Lossless Data Compression

Shannon’s Source Coding Theorem Revisited I: 3-29

Theorem 3.12 (generalized AEP or Shannon-McMillan-Breiman

Theorem) If X1, X2, . . ., Xn, . . . are stationary-ergodic, then

−1

nlog PXn(X1, . . . , Xn)

a.s.−→ lim

n→∞

1

nH(Xn).

Theorem 3.13 (Shannon’s source coding theorem for stationary-er-

godic sources) Fix a stationary-ergodic source

X = {Xn = (X1, X2, . . . , Xn)}∞n=1

with entropy rate

H4= lim

n→∞

1

nH(Xn),

and ε > 0 arbitrarily small. There exists δ with 0 < δ < ε and a sequence of block

codes { C∼n = (n, Mn)}∞n=1 with

1

nlog Mn < H + δ,

such that

Pe( C∼n) < ε for all sufficiently large n,

where Pe( C∼n) denotes the probability of decoding error for block code C∼n.

Page 31: Chapter 3 Lossless Data Compression

Shannon’s Source Coding Theorem Revisited I: 3-30

Theorem 3.14 (strong converse theorem) Fix a stationary-ergodic source

X = {Xn = (X1, X2, . . . , Xn)}∞n=1

with entropy rate H , and ε > 0 arbitrarily small. For any block code of rate

R < H(X) and sufficiently large blocklength n, the probability of block decoding

failure Pe satisfies

Pe > 1 − ε.

Page 32: Chapter 3 Lossless Data Compression

Problems of Ergodicity Assumption I: 3-31

• In general, it is hard to check whether a process is ergodic or not.

• A specific case that ergodicity can be verified is that of the Markov sources.

Observation 3.15

1. An irreducible finite-state Markov source is ergodic.

– Note that irreducibility can be verified in terms of the transition pro-

bability matrix. For example, all the entries in transition probability

matrix are non-zero.

2. The generalized AEP theorem holds for irreducible stationary Markov

sources. For example, if the Markov source is of the first-order, then

−1

nlog PXn(Xn)

a.s.−→ lim

n→∞

1

nH(Xn) = H(X2|X1).

Page 33: Chapter 3 Lossless Data Compression

Redundancy for Lossless Data Compression I: 3-32

• A source can be compressed only when it has redundancy.

– A very important concept is that the output of a perfect lossless

data compressor should be i.i.d. with completely uniform

marginal distribution. Because if it were not so, there would be redun-

dancy in the output and hence the compressor cannot be claimed perfect.

• This arises the need to define the redundancy of a source.

• Categories of redundancy

– intra-sourceword redundancy

∗ due to non-uniform marginal distribution

– inter-sourceword redundancy

∗ due to the source memory

Page 34: Chapter 3 Lossless Data Compression

Redundancy for Lossless Data Compression I: 3-33

Definition 3.16 (redundancy)

1. The redundancy of a stationary source due to non-uniform marginals is

ρD4= log |X | − H(X1).

2. The redundancy of a stationary source due to source memory is

ρM4=H(X1) − lim

n→∞

1

nH(Xn).

3. The total redundancy of a stationary source is

ρT4=ρD + ρM = log |X | − lim

n→∞

1

nH(Xn).

Page 35: Chapter 3 Lossless Data Compression

Redundancy for Lossless Data Compression I: 3-34

E.g.

Source ρD ρM ρT

i.i.d. uniform 0 0 0

i.i.d. non-uniform log |X | − H(X1) 0 ρD

stationary first-order

symmetric Markov 0 H(X1) − H(X2|X1) ρM

stationary first-order

non-symmetric Markov log |X | − H(X1) H(X1) − H(X2|X1) ρD + ρM

• Note that a first-order Markov process is symmetric if for any x1 and x1

{a : a = PX2|X1(y|x1) for some y} = {a : a = PX2|X1

(y|x1) for some y}.

Page 36: Chapter 3 Lossless Data Compression

Variable-Length Code for Lossless Data Compression I: 3-35

• Non-singular codes

– To encode all sourcewords with distinct variable-length codewords

• Uniquely decodable codes

– Concatenation of codewords (without punctuation mechanism) can be

uniquely decodable.

E.g., a non-singular but non-uniquely decodable code

code of A = 0,

code of B = 1,

code of C = 00,

code of D = 01,

code of E = 10,

code of F = 11.

The code is not uniquely decodable because the codeword sequence, 01, can

be reconstructed as either AB or D.

Page 37: Chapter 3 Lossless Data Compression

Variable-Length Code for Lossless Data Compression I: 3-36

Theorem 3.17 (Kraft inequality) A uniquely decodable code C with binary

code alphabet {0, 1} and with M codewords having lengths `0, `1, `2, . . . , `M−1

must satisfy the following inequalityM−1∑

m=0

2−`m ≤ 1.

Proof: Suppose we use the codebook C to encode N source symbols (arriving in

sequence); this yields a concatenated codeword sequence

c1c2c3 . . . cN .

Let the lengths of the codewords be respectively denoted by

`(c1), `(c2), . . . , `(cN).

Consider the identity:

c1∈C

c2∈C

· · ·∑

cN∈C

2−(`(c1)+`(c2)+···+`(cN ))

.

It is obvious that the above identity is equal to(∑

c∈C

2−`(c)

)N

=

(M−1∑

m=0

2−`m

)N

.

Page 38: Chapter 3 Lossless Data Compression

Variable-Length Code for Lossless Data Compression I: 3-37

(Note that |C| = M .) On the other hand, all the code sequences with length

i = `(c1) + `(c2) + · · · + `(cN)

contribute equally to the sum of the identity, which is 2−i. Let Ai denote the number

of code sequences that have length i. Then the above identity can be re-written as

(M−1∑

m=0

2−`m

)N

=

LN∑

i=1

Ai2−i,

where

L4= max

c∈C`(c).

(Here, we implicitly and reasonably assume that the smallest length of the code

sequence is 1.)

Since C is by assumption a uniquely decodable code, the codeword sequence must

be unambiguously decodable. Observe that a code sequence with length i has at

most 2i unambiguous combinations. Therefore, Ai ≤ 2i, and

(M−1∑

m=0

2−`m

)N

=

LN∑

i=1

Ai2−i ≤

LN∑

i=1

2i2−i = LN,

Page 39: Chapter 3 Lossless Data Compression

Variable-Length Code for Lossless Data Compression I: 3-38

which implies thatM−1∑

m=0

2−`m ≤ (LN)1/N .

The proof is completed by noting that the above inequality holds for every N , and

the upper bound (LN)1/N goes to 1 as N goes to infinity.

Page 40: Chapter 3 Lossless Data Compression

Source Coding Theorem for Variable-Length Code I: 3-39

Theorem 3.18 The average binary codeword length of every uniquely decodable

code of a source is lower bounded by the source entropy (measured in bits.)

Proof: Let the source be modelled as a random variable X , and denote the asso-

ciated source symbol by x. The codeword for source symbol x and its length are

respectively denoted as cx and `(cx). Hence,∑

x∈X

PX(x)`(cx) − H(X) =∑

x∈X

PX(x)`(cx) −∑

x∈X

(−PX(x) log2 PX(x))

=1

log(2)

x∈X

PX(x) logPX(x)

2−`(cx)

≥1

log(2)

[∑

x∈X

PX(x)

]

log

[∑

x∈X PX(x)]

[∑

x∈X 2−`(cx)]

(log-sum inequality)

= −1

log(2)log

[∑

x∈X

2−`(cx)

]

≥ 0.

Page 41: Chapter 3 Lossless Data Compression

Summaries for Uniquely Decodability I: 3-40

1. Uniquely decodability ⇒ the Kraft inequality.

2. Uniquely decodability ⇒

average codeword length of variable-length codes ≥ H(X).

Exercise 3.19

1. Find a non-singular and also non-uniquely decodable code that violates the

Kraft inequality. (Hint: Slide I: 3-35.)

2. Find a non-singular and also non-uniquely decodable code that beats the en-

tropy lower bound. (Hint: Same as the previous one.)

Page 42: Chapter 3 Lossless Data Compression

A Special Case of Uniquely Decodable Codes I: 3-41

• Prefix codes or instantaneous codes

– Note that a uniquely decodable code may not necessarily be decoded in-

stantaneously.

Definition 3.20 A code is called a prefix code or an instantaneous code if

no codeword is a prefix of any other codeword.

Page 43: Chapter 3 Lossless Data Compression

Tree Representation of Prefix Codes I: 3-42

u��������

AAAAAAAU

u

u

��

���

@@

@@R

��

���

@@

@@R

u

u

u

u�����

@@

@@R

u

u����*

HHHHj

uu

(0)

(1)

00

01

10

(11)110

(111) 1110

1111

The codewords are those residing on the leaves,

which in this case are 00, 01, 10, 110, 1110 and 1111.

Page 44: Chapter 3 Lossless Data Compression

Classification of Variable-Length Codes I: 3-43

'

&

$

%

'

&

$

%

'

&

$

%Prefixcodes

Uniquelydecodable codes

Non-singularcodes

Page 45: Chapter 3 Lossless Data Compression

Prefix Code to Kraft Inequality I: 3-44

Observation 3.21 (prefix code to Kraft inequality) There exists a binary

prefix code with M codewords of length `m for m = 0, . . . , M − 1 if, and only if,

the Kraft inequality holds.

Proof:

1. [The forward part] Prefix codes satisfy the Kraft inequality.

The codewords of a prefix code can always be put on a tree. Pick up a length

`max4= max

0≤m≤M−1`m.

• A tree has originally 2`max nodes on level `max.

• Each codeword of length `m obstructs 2`max−`m nodes on level `max.

– In other words, when any node is chosen as a codeword, all its children will

be excluded from being codewords.

– There are exactly 2`max−`m excluded nodes on level `max of the tree. We

therefore say that each codeword of length `m obstructs 2`max−`m nodes on

level `max.

• Note that no two codewords obstruct the same node on level `max. Hence the

number of totally obstructed codewords on level `max should be less than 2`max,

Page 46: Chapter 3 Lossless Data Compression

Prefix Code to Kraft Inequality I: 3-45

i.e.,M−1∑

m=0

2`max−`m ≤ 2`max,

which immediately implies the Kraft inequality:

M−1∑

m=0

2−`m ≤ 1.

This part can also be proven by stating the fact that a prefix code is a uniquely

decodable code. The objective of adding this proof is to illustrate the characteristics

of a tree-like prefix code.

Page 47: Chapter 3 Lossless Data Compression

Prefix Code to Kraft Inequality I: 3-46

2. [The converse part] Kraft inequality implies the existence of a prefix code.

Suppose that `0, `1, . . . , `M−1 satisfy the Kraft inequality. We will show that

there exists a binary tree with M selected nodes, where the ith node resides on level

`i.

• Let ni be the number of nodes (among the M nodes) residing on level i

(i.e., ni is the number of codewords with length i or ni = |{m : `m = i}|),

and let

`max4= max

0≤m≤M−1`m.

• Then from the Kraft inequality, we have

n12−1 + n22

−2 + · · · + n`max2−`max ≤ 1.

Page 48: Chapter 3 Lossless Data Compression

Prefix Code to Kraft Inequality I: 3-47

• The above inequality can be re-written in a form that is more suitable for this

proof as:

n12−1 ≤ 1

n12−1 + n22

−2 ≤ 1

· · ·

n12−1 + n22

−2 + · · · + n`max2−`max ≤ 1.

Hence,

n1 ≤ 2

n2 ≤ 22 − n121

· · ·

n`max≤ 2`max − n12

`max−1 − · · · − n`max−121,

which can be interpreted in terms of a tree model as:

Page 49: Chapter 3 Lossless Data Compression

Prefix Code to Kraft Inequality I: 3-48

– the 1st inequality says that the number of codewords of length 1 is less than

the available number of nodes on the 1st level, which is 2.

– The 2nd inequality says that the number of codewords of length 2 is less than

the total number of nodes on the 2nd level, which is 22, minus the number

of nodes obstructed by the 1st level nodes already occupied by codewords.

– The succeeding inequalities demonstrate the availability of a sufficient num-

ber of nodes at each level after the nodes blocked by shorter length code-

words have been removed.

– Because this is true at every codeword length up to the maximum codeword

length, the assertion of the theorem is proved.

Page 50: Chapter 3 Lossless Data Compression

Source Coding Theorem for Variable-Length Codes I: 3-49

Theorem 3.22

1. For any prefix code, the average codeword length is no less than entropy.

2. There must exist a prefix code whose average codeword length is no greater

than (entropy +1) bits, namely,

¯ 4=∑

x∈X

PX(x)`(cx) ≤ H(X) + 1, (3.3.1)

where cx is the codeword for source symbol x, and `(cx) is the length of

codeword cx.

Proof: A prefix code is uniquely decodable, and hence its average codeword length

is no less than entropy (measured in bits.)

To prove the second part, we can design a prefix code satisfying both ¯≤ H(X)+

1 and the Kraft inequality, which immediately implies the existence of the desired

code by Observation 3.21 (the observation that is just proved).

Page 51: Chapter 3 Lossless Data Compression

Source Coding Theorem for Variable-Length Codes I: 3-50

• Choose the codeword length for source symbol x as

`(cx) = b− log2 PX(x)c + 1. (3.3.2)

Then

2−`(cx) ≤ PX(x).

• Summing both sides over all source symbols, we obtain∑

x∈X

2−`(cx) ≤ 1,

which is exactly the Kraft inequality.

• On the other hand, (3.3.2) implies

`(cx) ≤ − log2 PX(x) + 1,

which in turn implies∑

x∈X

PX(x)`(cx) ≤∑

x∈X

[−PX(x) log2 PX(x)] +∑

x∈X

PX(x)

= H(X) + 1.

Page 52: Chapter 3 Lossless Data Compression

Prefix Codes for Block Sourcewords I: 3-51

E.g. A source with source alphabet {A, B, C} and probability

PX(A) = 0.8, PX(B) = PX(C) = 0.1

has entropy −0.8 · log2 0.8 − 0.1 · log2 0.1 − 0.1 · log2 0.1 = 0.92 bits.

• One of the best prefix codes for single-letter encoding of the above source is

c(A) = 0, c(B) = 10, c(C) = 11.

Then the resultant average codeword length is

0.8 × 1 + 0.2 × 2 = 1.2 bits ≥ 0.92 bits.

The optimal variable-length code for a specific source X has average codeword

length strictly larger than the source entropy.

• Now if we consider to prefix-encode two consecutive source symbols at a time,

the new source alphabet becomes

{AA, AB, AC, BA, BB, BC, CA, CB, CC},

and the resultant probability is calculated by

(∀ x1, x2 ∈ {A, B, C}), PX2(x1, x2) = PX(x1)PX(x2)

under the assumption that the source is memoryless.

Page 53: Chapter 3 Lossless Data Compression

Prefix Codes for Block Sourcewords I: 3-52

• Then one of the best prefix codes for the new source symbol pair is

c(AA) = 0

c(AB) = 100

c(AC) = 101

c(BA) = 110

c(BB) = 111100

c(BC) = 111101

c(CA) = 1110

c(CB) = 111110

c(CC) = 111111.

The average codeword length per source symbol now becomes

0.64(1 × 1) + 0.08(3 × 3 + 4 × 1) + 0.01(6 × 4)

2= 0.96 bits

which is closer to the per-source-symbol entropy 0.92 bits.

Page 54: Chapter 3 Lossless Data Compression

Prefix Codes for Block Sourcewords I: 3-53

Corollary 3.23 Fix ε > 0, and a memoryless source X with marginal distribu-

tion PX . A prefix code can always be found with

¯≤ H(X) + ε,

where ¯ is the average per-source-symbol codeword length, and H(X) is the per-

source-symbol entropy.

Proof: Choose n large enough such that 1/n < ε. Find a prefix code for n

concatenated source symbols Xn. Then there exists a prefix code satisfying∑

xn∈Xn

PXn(xn)`xn ≤ H(Xn) + 1,

where `xn denotes the resultant codeword length of the concatenated source symbol

xn. By dividing both sides by n, and observing that H(Xn) = nH(X) for a

memoryless source, we obtain

¯≤ H(X) +1

n≤ H(X) + ε.

Page 55: Chapter 3 Lossless Data Compression

Final Note on Prefix Codes I: 3-54

Corollary 3.24 A uniquely decodable code can always be replaced by a prefix

code with the same average codeword length.

Page 56: Chapter 3 Lossless Data Compression

Huffman Codes I: 3-55

Observation 3.25 Give a source with source alphabet {1, . . . , K} and probabi-

lity {p1, . . . , pK}. Let `i be the binary codeword length of symbol i. Then there

exists an optimal uniquely-decodable variable-length code satisfying:

1. pi > pj implies `i ≤ `j.

2. The two longest codewords have the same length.

3. The two longest codewords differ only in the last bit, and correspond to the

two least-frequent symbols.

Proof:

• First, we note that any optimal code that is uniquely decodable must satisfy

the Kraft inequality.

• In addition, for any set of codeword lengths that satisfy the Kraft inequality,

there exists a prefix code who takes the same set as its set of codeword lengths.

• Therefore, it suffices to show that there exists an optimal prefix code satis-

fying the above three properties.

Page 57: Chapter 3 Lossless Data Compression

Huffman Codes I: 3-56

1. Suppose there is an optimal prefix code violating the observation. Then we

can interchange the codeword for symbol i with that for symbol j, and yield a

better code.

2. Without loss of generality, let the probability of the source symbols satisfy

p1 ≤ p2 ≤ p3 ≤ · · · ≤ pK.

Then by the first property, there exists an optimal prefix code with codeword

lengths

`1 ≥ `2 ≥ `3 ≥ · · · ≥ `K.

Suppose the codeword length for the two least-frequent source symbols satisfy

`1 > `2. Then we can discard `1 − `2 code bits from the first codewords, and

yield a better code. (From the definition of prefix codes, it is obviously that

the new code is still a prefix code.)

3. Since all the codewords of a prefix code reside in the leaves (if we figure the

code as a binary tree), we can interchange the siblings of two branches with-

out changing the average codeword length. Property 2 implies that the two

least-frequent codewords has the same codeword length. Hence, by repeatedly

interchanging the siblings of a tree, we can result in a prefix code which meets

the requirement.

Page 58: Chapter 3 Lossless Data Compression

Huffman Codes I: 3-57

• With this observation, the optimality of the Huffman coding in average codeword

length is confirmed.

Huffman encoding algorithm:

1. Combine the two least probable source symbols into a new single symbol, whose

probability is equal to the sum of the probabilities of the original two.

• Thus we have to encode a new source alphabet of one less symbol.

Repeat this step until we get down to the problem of encoding just two symbols

in a source alphabet, which can be encoded merely using 0 and 1.

2. Go backward by splitting one of the two (combined) symbols into two original

symbols, and the codewords of the two split symbols is formed by appending

0 for one of them and 1 for the other from the codeword of their combined

symbol.

Repeat this step until all the original symbols have been recovered and obtained

a codeword.

Page 59: Chapter 3 Lossless Data Compression

Huffman Codes I: 3-58

Example 3.26 Consider a source with alphabet {1, 2, 3, 4, 5, 6} with probability

0.25, 0.25, 0.25, 0.1, 0.1, 0.05, respectively.

• Step 1:

0.05

0.1

0.1

0.25

0.25

0.25

0.15

0.1

0.25

0.25

0.25

0.25

0.25

0.25

0.25

0.5

0.25

0.25

0.5

0.5 1.0

Page 60: Chapter 3 Lossless Data Compression

Huffman Codes I: 3-59

• Step 2:

0.05

0.1

0.1

0.25

0.25

0.25

(1111)

(1110)

(110)

(10)

(01)

(00)

0.15

0.1

0.25

0.25

0.25

111

110

10

01

00

0.25

0.25

0.25

0.25

11

10

01

00

0.5

0.25

0.25

1

01

00

0.5

0.5

1

01.0

By following the Huffman encoding procedure as shown in above figure, we obtain

the Huffman code as

00, 01, 10, 110, 1110, 1111.

Page 61: Chapter 3 Lossless Data Compression

Shannon-Fano-Elias Codes I: 3-60

Assume X = {0, 1, . . . , L − 1}, and PX(x) > 0 for all x ∈ X . Define

F (x)4=∑

a≤x

PX(a),

and

F (x)4=∑

a<x

PX(a) +1

2PX(x).

Encoder: For any x ∈ X , express F (x) in binary decimal, say

F (x) = .c1c2 . . . ck . . . ,

and take the first k bits as the codeword of source symbol x, i.e.,

(c1, c2, . . . , ck),

where k4=dlog2(1/PX(x))e + 1.

Page 62: Chapter 3 Lossless Data Compression

Shannon-Fano-Elias Codes I: 3-61

Decoder: Given codeword (c1, . . . , ck), compute the cumulative sum of F (·) start-

ing from the smallest element in {0, 1, . . . , L − 1} until the first x satisfying

F (x) ≥ .c1 . . . ck.

Then this x should be the original source symbol.

Page 63: Chapter 3 Lossless Data Compression

Shannon-Fano-Elias Codes I: 3-62

Proof of decodability: For any number a ∈ [0, 1], let back denote the operation

that chops the binary representation of a after k bits (i.e., remove (k + 1)th bit,

(k + 2)th bit, etc). Then

F (x) − bF (x)ck <1

2k.

Since k = dlog2(1/PX(x))e + 1 ≥ log2(1/PX(x)) + 1(⇒ 2k−1 ≥ 1/PX(x)

),

1

2k≤

1

2PX(x) =

[∑

a<x

PX(a) +PX(x)

2

]

−∑

a≤x−1

PX(a) = F (x) − F (x − 1).

Hence,

F (x − 1) =

[

F (x − 1) +1

2k

]

−1

2k≤ F (x) −

1

2k< bF (x)ck.

In addition,

F (x) > F (x) ≥ bF (x)ck.

Consequently, x is the first element satisfying

F (x) ≥ .c1c2 . . . ck.

Page 64: Chapter 3 Lossless Data Compression

Shannon-Fano-Elias Codes I: 3-63

Average codeword length:

¯ =∑

x∈X

PX(x)

log2

1

PX(x)

+ 1

<∑

x∈X

PX(x) log2

1

PX(x)+ 2

= (H(X) + 2) bits.

• We can again apply the same “concatenation” procedure to obtain:

¯2 <

(H(X2) + 2

)bits, where ¯

2 is the average codeword length for paired source.¯3 <

(H(X3) + 2

)bits, where ¯

3 is the average codeword length for three-symbol source....

As a result, the average per-letter average codeword length can be made arbitrarily

close to source entropy for i.i.d. source.

¯=1

n¯n <

1

nH(Xn) +

2

n= H(X) +

2

n.

Page 65: Chapter 3 Lossless Data Compression

Universal Lossless Variable-Length Codes I: 3-64

• The Huffman codes and Shannon-Fano-Elias codes can be constructed only

when the source statistics is known.

• If the source statistics is unknown, is it possible to find a code whose average

codeword length is arbitrary close to entropy? Yes, if “asymptotic achievability”

is allowed.

Page 66: Chapter 3 Lossless Data Compression

Adaptive Huffman Codes I: 3-65

• Let the source alphabet be X4={a1, . . . , aJ}.

• Define

N(ai|xn)

4=number of ai appearances in x1, x2, . . . , xn.

• Then the (current) relative frequency of ai is

N(ai|xn)

n.

• Let cn(ai) denote the Huffman codeword of source symbol ai w.r.t. distribution{

N(a1|xn)

n,N(a2|x

n)

n, · · · ,

N(aJ |xn)

n

}

.

Page 67: Chapter 3 Lossless Data Compression

Adaptive Huffman Codes I: 3-66

Now suppose that xn+1 = aj.

1. The codeword cn(aj) is outputted.

2. Update the relative frequency for each source outcome according to:

N(aj|xn+1)

n + 1=

n × [N(aj|xn)/n] + 1

n + 1

andN(ai|x

n+1)

n + 1=

n × [N(ai|xn)/n]

n + 1for i 6= j.

Page 68: Chapter 3 Lossless Data Compression

Adaptive Huffman Codes I: 3-67

Definition 3.27 (sibling property) A prefix code is said to have the sibling

property if its codetree satisfies:

1. every node in the code tree (except for the root node) lies a sibling (i.e., tree is

saturated), and

2. the node can be listed in non-decreasing order of probabilities with each node

being adjacent to its sibling.

Observation 3.28 A prefix code is a Huffman code if, and only if, it satisfies the

sibling property.

Page 69: Chapter 3 Lossless Data Compression

Adaptive Huffman Codes I: 3-68

E.g.a1(00, 3/8)

a2(01, 1/4)

a3(100, 1/8)

a4(101, 1/8)

a5(110, 1/16)

a6(111, 1/16)

b11(1/8)

b10(1/4)

b0(5/8)

b1(3/8)

8/8

b0

(5

8

)

≥ b1

(3

8

)

︸ ︷︷ ︸sibling pair

≥ a1

(3

8

)

≥ a2

(1

4

)

︸ ︷︷ ︸sibling pair

≥ b10

(1

4

)

≥ b11

(1

8

)

︸ ︷︷ ︸sibling pair

≥ a3

(1

8

)

≥ a4

(1

8

)

︸ ︷︷ ︸sibling pair

≥ a5

(1

16

)

≥ a6

(1

16

)

︸ ︷︷ ︸sibling pair

Page 70: Chapter 3 Lossless Data Compression

Adaptive Huffman Codes I: 3-69

E.g. (cont.)

• If the next observation (n = 17) is a3, then its codeword 100 is outputted.

• The estimated distribution is updated as

P(17)

X(a1) =

16 × (3/8)

17=

6

17, P

(17)

X(a2) =

16 × (1/4)

17=

4

17

P(17)

X(a3) =

16 × (1/8) + 1

17=

3

17, P

(17)

X(a4) =

16 × (1/8)

17=

2

17

P(17)

X(a5) =

16 × [1/(16)]

17=

1

17, P

(17)

X(a6) =

16 × [1/(16)]

17=

1

17.

The sibling property is no longer true; hence, the Huffman codetree needs to

be updated.

Page 71: Chapter 3 Lossless Data Compression

Adaptive Huffman Codes I: 3-70

a1(00, 6/17)

a2(01, 4/17)

a3(100, 3/17)

a4(101, 2/17)

a5(110, 1/17)

a6(111, 1/17)

b11(2/17)

b10(5/17)

b0(10/17)

b1(7/17)

17/17

b0

(10

17

)

≥ b1

(7

17

)

︸ ︷︷ ︸sibling pair

≥ a1

(6

17

)

≥ b10

(5

17

)

≥ a2

(4

17

)

≥ a3

(3

17

)

≥ a4

(2

17

)

︸ ︷︷ ︸sibling pair

≥ b11

(2

17

)

≥ a5

(1

17

)

≥ a6

(1

17

)

︸ ︷︷ ︸sibling pair

a1 is not adjacent to its sibling a2.

Page 72: Chapter 3 Lossless Data Compression

Adaptive Huffman Codes I: 3-71

E.g. (cont.) The updated Huffman codetree.

a1(10, 6/17)

a2(00, 4/17)

a3(01, 3/17)

a4(110, 2/17)

a5(1110, 1/17)

a6(1111, 1/17)

b111(2/17)

b11(4/17)

b0(7/17)b1(10/17)

17/17

b1

(10

17

)

≥ b0

(7

17

)

︸ ︷︷ ︸sibling pair

≥ a1

(6

17

)

≥ b11

(4

17

)

︸ ︷︷ ︸sibling pair

≥ a2

(4

17

)

≥ a3

(3

17

)

︸ ︷︷ ︸sibling pair

≥ a4

(2

17

)

≥ b111

(2

17

)

︸ ︷︷ ︸sibling pair

≥ a5

(1

17

)

≥ a6

(1

17

)

︸ ︷︷ ︸sibling pair

Page 73: Chapter 3 Lossless Data Compression

Lempel-Ziv Codes I: 3-72

Encoder:

1. Parse the input sequence into strings that have never appeared before.

2. Let L be the number of distinct strings of the parsed source. Then we need

log2 L bits to index these strings (starting from one). The codeword of each

string is the index of its prefix concatenated with the last bit in its source string.

E.g.

• The input sequence is 1011010100010;

• Step 1:

– The algorithm first eats the first letter 1 and finds that it never appears

before. So 1 is the first string.

– Then the algorithm eats the second letter 0 and finds that it never appears

before, and hence, put it to be the next string.

– The algorithm eats the next letter 1, and finds that this string has appeared.

Hence, it eats another letter 1 and yields a new string 11.

– By repeating these procedures, the source sequence is parsed into strings

as

1, 0, 11, 01, 010, 00, 10.

Page 74: Chapter 3 Lossless Data Compression

Lempel-Ziv Codes I: 3-73

• Step 2:

– L = 8. So the indices will be:

parsed source : 1 0 11 01 010 00 10

index : 001 010 011 100 101 110 111.

– E.g., the codeword of source string 010 will be the index of 01, i.e. 100,

concatenated with the last bit of the source string, i.e. 0.

• The resultant codeword string is:

(000, 1)(000, 0)(001, 1)(010, 1)(100, 0)(010, 0)(001, 0)

or equivalently,

0001000000110101100001000010.

Theorem 3.29 The Lempel-Ziv algorithm asymptotically achieves the entropy

rate of any (unknown) stationary source.

• The “compress” Unix command is a variation of the Lempel-Ziv algorithm.

Page 75: Chapter 3 Lossless Data Compression

Notes on Lempel-Ziv Codes I: 3-74

• The conventional Lempel-Ziv encoder requires two passes: the first pass to

decide L, and the second pass to generate real codewords.

• The algorithm can be modified so that it requires only one pass over the source

string.

• Also note that the above algorithm uses an equal number of bits—log2 L—to

all the location index, which can also be relaxed by proper modifications.

Page 76: Chapter 3 Lossless Data Compression

Key Notes I: 3-75

• Average per-source-symbol codeword length versus per-source-symbol entropy

– Average per-source-symbol codeword length is exactly the code rate for

fixed-length codes.

• Categories of codes

– Fixed-length codes (relation with segmentation or blocking)

∗ Block codes

∗ Fixed-length tree codes

– Variable-length codes

∗ Non-singular codes

∗ Uniquely decodable codes

∗ Prefix codes

• AEP theorem

• Weakly δ-typical set and Shannon-McMillan theorem

• Shannon’s source coding theorem and its converse theorem for DMS

Page 77: Chapter 3 Lossless Data Compression

Key Notes I: 3-76

• Entropy rate and the proof of its existence for stationary sources

• Generalized AEP

• Shannon’s source coding theorem and its converse theorem for stationary-

ergodic sources

• Redundancy of sources

• Kraft inequality and its relation to uniquely decodable codes, as well as prefix

codes

• Source coding theorem for variable-length codes

• Huffman codes and adaptive Huffman codes

• Shannon-Fano-Elias codes

• Lempel-Ziv codes