Professional Documents
Culture Documents
Shannon-Fano Code
Shannon-Fano-Elias Code
Data Compression
Besma Smida
ES250: Lecture 7
Fall 2008-09
B. Smida (ES250)
Data Compression
Fall 2008-09
1 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Todays outline
B. Smida (ES250)
Data Compression
Fall 2008-09
2 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Kraft Inequality
Conversely, given a set of codeword lengths that satisfy this inequality, there exists
an instantaneous (prefix) code with these word lengths.
B. Smida (ES250)
Data Compression
Fall 2008-09
3 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Optimal Codes
Problem: We wish to find a prefix code which has the shortest average code
length L = E[l(x)].
This is equivalent to solve the constrained minimization problem:
( m
)
m
X
X
pk l k :
D lk 1, lk N, k = 1, . . . , m
min
k=1
B. Smida (ES250)
k=1
Data Compression
Fall 2008-09
4 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Solution
Pm
k=1
pk lk = HD (x).
B. Smida (ES250)
Data Compression
Fall 2008-09
5 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Lower Bound
B. Smida (ES250)
Data Compression
Fall 2008-09
6 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Upper Bound
B. Smida (ES250)
Data Compression
Fall 2008-09
7 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Proof
Let x be the smallest integer which is greater than or equal to x, and
choose
1
lk = logD
pk
This choice of code lengths satisfies Kraft inequality
X
X log 1 X log 1
pk
pk
D
D
=
pk = 1,
and since
logD
1
1
lk < logD
+ 1,
pk
pk
B. Smida (ES250)
Data Compression
Fall 2008-09
8 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Shannon Code
1
pk
This choice of code lengths satisfies Kraft inequality, hence prefix code exists.
Put lk into ascending order and set
ck =
k1
X
D li
or ck =
i =1
k1
X
p(xi )
i =1
B. Smida (ES250)
Data Compression
Fall 2008-09
9 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
B. Smida (ES250)
P
ck = k1
i =1 p(xi )
0.0 = 0.002
0.5 = 0.102
0.75 = 0.1102
0.875 = 0.1112
Data Compression
Code
0
10
110
111
Fall 2008-09
10 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Example 2:
p(x)
log2 p(x)
lx = log2 p(x)
Lc
= [0.99 0.01]
= [0.0145 6.64]
= [1 7]
= 1.06 bits, H(X ) = 0.08 bits
B. Smida (ES250)
Data Compression
Fall 2008-09
11 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Shannon-Fano Code
Put probabilities in decreasing order.
Split as close to 50-50 as possible; repeat with each half.
H(X ) = 2.81 bits and LSF = 2.89 bits. Always H(X ) LSF < H(X ) + 1.
Intuitively natural but not optimal.
B. Smida (ES250)
Data Compression
Fall 2008-09
12 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
(L = pi li ). Then
HD (x) L < HD (x) + 1.
B. Smida (ES250)
Data Compression
Fall 2008-09
13 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Block coding
Consider sending a sequence of n symbols drawn iid according to p(x) in a
block, so that we have a supersymbol from X n .
Let Ln be the expected codeword length per input symbol:
Ln :=
1
E [l(X1 , X2 , . . . , Xn )].
n
H(X1 , X2 , . . . , Xn )
n
Ln <
H(X )
Ln <
H(X1 , X2 , . . . , Xn ) + 1
n
1
H(X ) +
n
B. Smida (ES250)
Data Compression
Fall 2008-09
14 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
B. Smida (ES250)
Data Compression
Fall 2008-09
15 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Wrong distribution
If we design a code for the wrong input distribution, then the increase in
expected description length is given exactly by the relative entropy:
Theorem: Wrong code
1
The expected length under p(x) of the code assignment l(x) = log q(x)
satisfies
B. Smida (ES250)
Data Compression
Fall 2008-09
16 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Proof
We have
Ep [l(X )] =
p(x)log
xX
<
=
q(x)
1
p(x) log
+1
q(x)
xX
X
p(x)
1
p(x) log
+ log
+1
q(x)
p(x)
X
xX
D(p k q) + H(p) + 1
B. Smida (ES250)
Data Compression
Fall 2008-09
17 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
1
2c1
Proof:
Pr(l(x) l (x) + c) = Pr( log p(x) l (x) + c)
Pr( log p(x) l (x) + c 1) = Pr(p(x) 2l
X
p(x)
=
(x)c+1
xA
2l
(x)c+1
= 2c+1
2l
(x)
2c+1
No other code can do much better than Shannon code most of the time.
B. Smida (ES250)
Data Compression
Fall 2008-09
18 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
p(x)sgn(l(x) l (x))
p(x)2l(x)l
(x)
2l(x) 2l(x)l
(x)
11=0
B. Smida (ES250)
Data Compression
Fall 2008-09
19 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Shannon-Fano-Elias Code
B. Smida (ES250)
Data Compression
Fall 2008-09
20 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
Shannon-Fano-Elias Code
By definition F (x) F (x)l(x) < 2l(x) .
We also have that
1
p(x)
p(x)
F (x) F (x)l(x) <
2
2
L=
xX
B. Smida (ES250)
p(x)l(x) =
p(x)log
xX
Data Compression
1
+ 1 < H(X ) + 2.
p(x)
Fall 2008-09
21 / 22
Review
Shannon-Fano Code
Shannon-Fano-Elias Code
B. Smida (ES250)
Data Compression
Fall 2008-09
22 / 22