Bài 7 Mã hóa t i u
ngu n r i r c không nh
7.1 Các đ nh lý v gi i h n trên và d i c a chi u dài trung
bình
7.2 Mã hoá theo Shannon và Fano
7.3 Ph ng pháp mã hoá t i u theo Huffman
Trang 97
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Các đ nh lý v gi i h n trên và d
chi u dài trung bình
nh lý 7.1
̈
̈
̈
ic a
Cho ngu n tin X = {a1, ..., aK} v i các xác su t t ng ng p1,
..., pK. M t b mã phân tách đ c b t k cho ngu n này v i c
s mã m, chi u dài trung bình t mã s thõa (trong đó H(X) là
entropy c a ngu n v i c s c a logarit là m).
H (X )
l≥
log m
Ch ng minh
m − li
H ( X ) − l ln m = −∑ pi ln pi − ∑ pi li ln m = ∑ pi ln
pi
i =1
i =1
i =1
K
K
K
⎛ m − li
⎞ ⎛ K − li ⎞
≤ ∑ pi ⎜⎜
− 1⎟⎟ = ⎜ ∑ m ⎟ − 1 ≤ 1 − 1 = 0
i =1
⎠
⎝ pi
⎠ ⎝ i =1
K
Trang 98
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Các đ nh lý v gi i h n trên và d
chi u dài trung bình (tt)
̈
m − li
= 1 , t c là pi = m − li
Chú ý d u “=” x y ra khi và ch khi
pi
nh lý 7.2
̈
̈
̈
ic a
Cho ngu n tin X = {a1, ..., aK} v i các xác su t t ng ng p1,
..., pK, có th xây d ng m t mã prefix v i c s m sao cho
H (X )
l<
+1
log m
Ch ng minh
̈
̈
⎡
Ch n chi u dài li c a t mã cho tin ai theo qui t c li = − log mi
Chúng ta có
li = ⎡− log mpi ⎤ ⇒ li ≥ − log mpi ⇒ m − li ≤ pi
K
K
i =1
i =1
⇒ ∑ m −li ≤ ∑ pi = 1
Trang 99
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
p
⎤
Ch ng minh đ nh lý (tt)
̈
̈
Vì các chi u dài đ c ch n này thoã b t đ ng th c Kraft nên
t n t i m t mã prefix t ng ng có các chi u dài này.
Ti p t c chúng ta có
li = ⎡− log mpi ⎤ ⇒ li < − log mpi + 1
K
K
K
i =1
i =1
i =1
pi
p
l
p
log
<
−
∑ i i ∑ i m + ∑ pi
̈
⎛ K pi log pi ⎞
H (X )
⎟⎟ + 1 =
= ⎜⎜ − ∑
+1
log m
⎝ i =1 log m ⎠
i u này hoàn t t ch ng minh c a chúng ta.
Trang 100
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
H qu
̈
̈
̈
̈
̈
Có th mã hoá m t ngu n mà có chi u dài trung bình ti p c n
H (X )
đ n
log m
v i sai s nh tu ý.
Chúng ta th c hi n đi u này b ng cách mã hoá các dãy N tin
c a ngu n X = {a1, ..., aK} theo nh lý 7.2.
Lúc này chúng ta có ngu n m i v i kích th c là KN, m i ph n
t là m t dãy c a N tin đ c l y đ c l p t ngu n X.
Entropy c a ngu n m i này là NH(X) và chi u dài trung bình
các t mã c a nó theo đ nh ngh a s là N l n chi u dài trung
bình các t mã c a ngu n ban đ u, l .
Áp d ng nh lý 7.1 và nh lý 7.2 đ i v i ngu n m i chúng ta
có
Trang 101
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
H qu (tt)
̈
Áp d ng
nh lý 7.1 và
nh lý 7.2 đ i v i ngu n m i ta có
NH (X )
NH (X )
H (X )
H (X ) 1
⇒
≤ Nl <
+1
≤l <
+
log m
log m
log m
log m N
̈ Vì N có th l n tu ý, nên l ti p c n đ n H(X) / log m v i t c
̈
̈
đ t ng đ ng v i 1/N ti n đ n 0 khi N ti n ra vô cùng.
đánh giá m t ph ng pháp mã hoá nào đó là t t hay không
ng i ta đ a ra khái ni m hi u su t l p mã.
Hi u su t l p mã
̈
Hi u su t l p mã h đ c đ nh ngh a b ng t s c a entropy c a
ngu n v i chi u dài trung bình c a b mã đ c l p
H (X )
h=
l
Trang 102
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Mã hóa t i u
̈
̈
̈
̈
Là phép mã hóa mà k t qu là m t b mã có chi u dài trung
bình là nh nh t trong t t c các phép mã hóa có th có cho
ngu n.
B mã c a phép mã hóa t i u cho ngu n đ c g i là b mã t i
u.
Ba phép mã hóa: Shannon, Fano, Huffman.
Trong m i phép mã hóa chúng ta s mã hóa v i c s mã m = 2
tr c (mã hóa nh phân), sau đó s m r ng cho tr ng h p m
> 2.
Trang 103
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ph
ng pháp mã hoá Shannon
B1. S p x p các xác su t theo th t gi m d n. Không m t t ng
quát gi s p1 ≥ ... ≥ pK.
i −1
B2.
B3.
nh ngh a q1 = 0, qi =
∑p
j =1
j
, ∀ i = 1, 2, ..., K.
i qi sang c s 2, (bi u di n qi trong c s 2) s đ
chu i nh phân
cm t
B4. T mã đ c gán cho ai là li kí hi u l y t v trí sau d u ph y
c a chu i nh phân t ng ng v i qi, trong đó li = ⎡ − log pi ⎤
2 ⎥
⎢
Trang 104
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ví d
̈
Hãy mã hoá ngu n S = {a1, a2, a3, a4, a5, a6} v i các xác su t
l n l t là 0,3; 0,25; 0,2; 0,12; 0,08; 0,05.
i −1
Tin Xác su t q = q Bi u di n
∑
i
j
pi
nh phân
ai
j =1
li = ⎡− log2 pi ⎤
T mã
wi
a1
a2
a3
a4
a5
a6
2
2
3
4
4
5
00
01
100
1100
1101
11110
̈
0,3
0,25
0,2
0,12
0,08
0,05
0
0,3
0,55
0,75
0,87
0,95
0,00
0,01001...
0,10001...
0,11000...
0,11011...
0,111100...
H = 2.36, l = 2,75, h = 2,36/2,75 = 85,82%
Trang 105
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Nh n xét - Bài t p
̈
̈
̈
Ph
Ph
ng pháp Shannon cho k t qu là m t mã prefix.
ng pháp Shannon có th m r ng cho tr ng h p m > 2
Bài t p
̈
̈
̈
̈
Hãy mã hoá các ngu n sau b ng ph ng pháp Shannon. Tính
entropy c a ngu n, chi u dài trung bình và hi u su t c a phép
mã hóa.
S1 = {a1, a2, a3, a4, a5, a6} v i các xác su t l n l t là 0,25;
0,21; 0,19; 0,16; 0,14; 0,05.
S2 = {a1, a2, a3, a4, a5, a6 , a7, a8} v i các xác su t l n l t là
0,21; 0,18; 0,15; 0,14; 0,12; 0,01; 0,06 ; 0,04.
S3 = {a1, a2, a3, a4, a5, a6 , a7, a8 , a9} v i các xác su t l n l t
là 0,25; 0,19; 0,15; 0,11; 0,09; 0,07; 0,06; 0,04; 0,04.
Trang 106
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ph
ng pháp mã hoá Fano
B1. S p x p các xác su t theo th t gi m d n. Không m t t ng
quát gi s p1 ≥ ... ≥ pK.
B2. Phân các xác su t thành 2 nhóm có t ng xác su t g n b ng
nhau nh t.
B3. Gán cho hai nhóm l n l t các kí hi u 0 và 1 (ho c ng c
l i).
B4. L p l i b c 2 cho các nhóm con cho đ n khi không th ti p
t c đ c n a.
B5. T mã ng v i m i tin là chu i bao g m các kí hi u theo th
t l n l t đ c gán cho các nhóm có ch a xác su t t ng
ng c a tin.
Trang 107
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ví d
̈
Hãy mã hoá ngu n S = {a1, a2, a3, a4, a5, a6} v i các xác su t
l n l t là 0,3; 0,25; 0,2; 0,12; 0,08; 0,05.
Phân nhóm l n
Tin Xác su t
1 2 3 4
a1 0,3
0 0
a2 0,25
0 1
a3 0,2
1 0
a4 0,12
1 1 0
a5 0,08
1 1 1 0
a6 0,05
1 1 1 1
̈
T mã
00
01
10
110
1110
1111
H = 2.36, l = 2,38, h = 2,36/2,38 = 99,17%
Trang 108
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Chú ý
̈
̈
Chú ý, trong nhi u tr ng h p có nhi u h n m t cách chia
thành các nhóm có t ng xác su t g n b ng nhau, ng v i m i
cách chia có th s cho ra các b mã có chi u dài trung bình
khác nhau.
Ví d
̈
Hãy mã hoá ngu n S = {a1, a2, a3, a4, a5, a6, a7, a8} v i các xác
su t l n l t là 0,23; 0,2; 0,14; 0,12; 0,1; 0,09; 0,06; 0,06.
Trang 109
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ví d
ai
a1
a2
a3
a4
a5
a6
a7
a8
̈
pi
0,23
0,2
0,14
0,12
0,1
0,09
0,06
0,06
1
0
0
1
1
1
1
1
1
l 1 = 2,88,
2
0
1
0
0
1
1
1
1
3 4
0
1
0
0
1
1
0
1
0
1
wi
00
01
100
101
1100
1101
1110
1111
ai
a1
a2
a3
a4
a5
a6
a7
a8
pi
0,23
0,2
0,14
0,12
0,1
0,09
0,06
0,06
1
0
0
0
1
1
1
1
1
l 2 = 2,89
Trang 110
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
2
0
1
1
0
0
1
1
1
3 4
wi
00
0
010
1
011
0
100
1
101
0
110
1 0 1110
1 1 1111
Nh n xét - Bài t p
̈
Nh n xét
̈
̈
Ph ng pháp Fano th
Shannon.
ng cho k t qu t t h n ph
ng pháp
Bài t p
̈
̈
̈
̈
Hãy mã hoá các ngu n sau b ng ph ng pháp Fano. Tính hi u
su t c a phép mã hóa.
S1 = {a1, a2, a3, a4, a5, a6} v i các xác su t l n l t là 0,25;
0,21; 0,19; 0,16; 0,14; 0,05.
S2 = {a1, a2, a3, a4, a5, a6 , a7, a8} v i các xác su t l n l t là
0,21; 0,18; 0,15; 0,14; 0,12; 0,1; 0,06 ; 0,04.
S3 = {a1, a2, a3, a4, a5, a6 , a7, a8 , a9} v i các xác su t l n l t
là 0,25; 0,19; 0,15; 0,11; 0,09; 0,07; 0,06; 0,04; 0,04.
Trang 111
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ph
̈
̈
Tr c h t xét c s mã m = 2. Tr ng h p m > 2, chúng ta s
có m t s chú ý v s khác bi t so v i tr ng h p m = 2.
B đ
̈
̈
ng pháp mã hoá t i u Huffman
Cho ngu n S = {a1, ..., aK} có các xác su t l n l t là p1, ..., pK.
G i l1, ..., lK là chi u dài các t mã t ng ng v i b mã t i u
cho S. N u pi > pj thì li ≤ lj.
Ch ng minh
̈
V i pi > pj, gi s li > lj. Xét b mã m i b ng cách hoán đ i hai
t mã có chi u dài li và lj cho nhau. Xét hi u chi u dài trung
bình c a b mã m i so v i b mã c
∆l = pilj + pjli – pili – pjlj = (pj – pi)(li – lj) < 0
i u này mâu thu n v i đ nh ngh a c a b mã t i u.
Trang 112
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Hai đ nh lý c a Huffman
̈
nh lý 7.3 ( nh lý s 1 c a Huffman)
̈
̈
̈
B đ này th t s phát bi u m t đi u r ng, đ mã hoá t i u cho
m t ngu n tin thì tin có xác su càng l n ph i đ c mã hoá
thành t mã có chi u dài càng nh .
Trong b mã t i u (m = 2) cho m t ngu n tin, thì hai t mã
t ng ng v i hai tin có xác su t nh nh t ph i có chi u dài
b ng nhau (lK–1 = lK) và có th làm cho chúng ch khác nhau
duy nh t bit cu i (bit t n cùng bên ph i).
Ch ng minh
̈
N u lK–1 < lK thì lo i b bit cu i cùng c a t mã wK chúng ta
đ c m t b mã m i v n có tính prefix nh ng có chi u dài
trung bình nh h n b mã c .
Trang 113
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Hai đ nh lý c a Huffman (tt)
̈
̈
̈
Gi s wK–1 và wK không thõa đi u ki n là khác nhau ch bit
cu i.
N u có m t t mã wi khác có chi u dài b ng lK đ ng th i khác
t mã wK ch bit cu i thì chúng ta có th hoán đ i wK–1 và wi
cho nhau, vì v y đ nh lý c ng đ c ch ng minh.
N u không t n t i m t t mã wi nh v y thì chúng ta có th t o
ra m t b mã m i b ng cách b đi bit cu i c a t mã wK. B mã
m i này không vi ph m đi u ki n prefix và có chi u dài trung
bình nh h n b mã c . Vì v y đ nh lý đ c ch ng minh.
Trang 114
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Hai đ nh lý c a Huffman (tt)
nh lý 7.4 ( nh lý s 2 c a Huffman)
̈
̈
̈
Xét m t ngu n m i S’ = {a’1, ..., a’K–1} v i s phân b xác su t
là p’1, ... , p’K–1 trong đó p’i = pi v i 1 ≤ i ≤ K – 2 còn p’K–1 =
pK–1 + pK. N u {w’1, ..., w’K–1} làm m t mã t i u cho S’ thì mã
nh n đ c theo qui t c sau là mã t i u cho S.
wi = w’i,
1≤i≤K–2
wK–1 = w’K–10
wK = w’K–11
Ch ng minh
̈
Vì lK = lK–1 = 1 + l’K–1, nên
l = p1l1 + ... + pKlK = p1l’1 + ... + (pK–1 + pK)(1 + l’K–1)
= l ' + (pK–1 + pK)
Trang 115
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Hai đ nh lý c a Huffman (tt)
̈
̈
̈
̈
S khác bi t gi a l và l ' là m t h ng s .
Nên n u mã t i u cho ngu n S là t t h n mã theo qui t c đã
phát bi u thì mã đ c d n xu t t mã t i u này b ng cách b
đi hai t mã wK và wK–1 và thay vào t mã mà b đi bit cu i c a
wK thì s đ c m t mã t i u t t h n cho ngu n S’, đi u này
mâu thu n.
V y mã nh n đ c cho S theo qui t c trên là t i u.
nh lý nh lý 7.3 và 7.4 cho phép qui bài toán tìm mã t i u
cho ngu n có K tin v bài toán tìm mã t i u cho ngu n có K–1
tin. Và quá trình này có th đ c l p l i cho đ n khi ch còn hai
tin. Lúc đó thì mã t i u là d th y.
Trang 116
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Gi i thu t mã hóa Huffman
B1. S p x p các xác su t theo th t gi m d n ch ng h n p1 ≥ ...
≥ pK
B2. Gán 0 t i bit cu i c a wK–1 và 1 đ n bit cu i c a wK ho c
ng c l i. Tuy nhiên chúng ta s qui c th c hi n theo chi u
th nh t.
B3. K t h p pK và pK–1 đ t o thành m t t p xác su t m i p1, ... ,
pK–2, pK–1 + pK
B4. L p l i các b c trên cho t p m i này.
̈
Ví d
̈
Hãy mã hoá ngu n S = {a1, a2, a3, a4, a5, a6} v i các xác su t
l n l t là 0,3; 0,25; 0,2; 0,12; 0,08; 0,05.
Trang 117
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ví d
ai
pi
a1
0,3
0,25
a2
a3
a4
a5
a6
̈
L n1
0,3
0,25
L n2
L n3
L n4
wi
0,55 0 00
0,3 0 0,45 1 01
0,2
0,2
0,25 0 0,25 1
11
0,13 0 0,2 1
0,12
101
0,08 0 0,12 1
1000
0,05 1
1001
0,3
0,25
0,45
H = 2.36, l = 2,38, h = 2,36/2,38 = 99,17%
Trang 118
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Nh n xét
̈
Nh n xét
̈
̈
̈
So sánh v i ph ng pháp Fano ta th y trong tr ng h p trên thì
c hai ph ng pháp cho hi u su t b ng nhau.
Tuy nhiên trong tr ng h p t ng quát ph ng pháp Fano
không ph i là ph ng pháp mã hóa t i u.
Chú ý
̈
Trong tr ng h p n u xác su t pK–1 + pK b ng v i m t xác su t
pi nào đó thì chúng ta có th đ t pK–1 + pK n m d i ho c n m
trên xác su t pi thì k t qu chi u dài t mã trung bình v n
không thay đ i cho dù các t mã k t qu có th khác nhau.
Trang 119
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
M r ng cho c s m > 2
N u K ≤ m thì vi c mã hoá t i u là quá t m th ng
̈
Gi s K > m, t n t i n sao cho: m + (n – 1)(m – 1) < K ≤ m +
n(m – 1). Chúng ta s b sung vào m t s tin “ph ” có xác su t
b ng 0 sao cho t ng s tin c a ngu n b ng v i m + n(m – 1).
Sau đó th t c mã hoá trên đ c đi u ch nh nh sau
B1. S p x p các xác su t theo th t gi m d n ch ng h n p1 ≥ ...
≥ pK
B2. Gán l n l t các kí hi u 0, 1, ..., m – 1 t i các bit cu i c a m
t mã có xác su t nh nh t
B3. K t h p m xác su t nh nh t l i thành m t và t o v i K – m
xác su t còn l i thành m t t p m i.
B4. L p l i các b c trên cho t p m i này.
̈
Trang 120
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin
Ví d
̈
Hãy mã hoá ngu n S = {a1, a2, a3, a4, a5, a6} v i các xác su t
l n l t là 0,3; 0,25; 0,2; 0,12; 0,08; 0,05 v i m = 3.
ai
pi
L n1 L n2
wi
0,3
a1 0,3
0,45 0 1
0,25
0,3 1 2
a2 0,25
0,2 0 0,25 2 00
a 0,2
3
a4
a5
a6
a7
̈
0,13 1
0,08 0 0,12 2
0,05 1
0,0 2
0,12
02
010
011
H = 1.49, l = 1,58, h = 1,49/1,58 = 94,24%
Trang 121
Lý thuy t Thông tin - Khoa Công Ngh Thông Tin