Tải bản đầy đủ (.pdf) (45 trang)

BÀI 7 MÃ HÓA TỐI ƯU NGUỒN RỜI RẠC KHÔNG NHỚ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (263.39 KB, 45 trang )

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


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


×