1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu lý thuyết mã nén văn bản dựa theo mô hình markov

90 542 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu lý thuyết mã nén văn bản dựa theo mô hình Markov
Tác giả Lê Hùng Bách
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án tốt nghiệp
Định dạng
Số trang 90
Dung lượng 13,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Dynanic Markov Coding... 1 Để cho đơn giản ta gọi tắt nửa đoạn dạng [x,y là khoảng.. 2 Nh- vậy điều quan trọng là làm thế nào để luôn có thể xác định đ-ợc xác suất xuất hiện của chữ tiếp

Trang 2

tin

c

Trang 3

-

-

, c

Trang 4

2/1

3/1

a

b

5/3

7/1

7/6

5/2

a

b

5/2

5/2

3/2

5/3

c

5/1

5/2

3/1

Trang 5

t

Trang 7

A

) ( ) (

( ) - x

ha

Trang 9

n

m 1

1 log

1

1 log p k

Trang 10

19 101

26 log 101

26 101

26 log 101

26 101

30 log 101

30

Markov A Markov (1856-1922) đưa ra

Trang 11

ij 1

m

1 j ij p

Trang 12

) p

(

} i

| j { P

p(ijk) k 0

k.

j ) k ( i )

l k (

n n

Markov ergodic

1.1.

Trang 13

i 1

5 4 3 2 1

5 4 3 2 1

0 0 75 0 0

25

.

0

25 0 0 0 75

.

0

0

0 25 0 0 0

75

.

0

75 0 0 25 0 0

0

0 75 0 0 25

4 1

1/4

1/4

1/4 3/4

H×nh 1.1

Trang 14

1 log w E

m 1 i

i E =

ij 2 m

1 i m

1 j ij i

w

1 log w

A

ij 2 m

1 i m

1 j ij i

w

1 log w

c

2 i

c

3 i

c

4 i

c

H×nh 1.2

Trang 15

146)

n

) ( p log

19 101

26 log 101

26 101

26 log 101

26 101

30 log 101

30

, b, c, d” Tuy nhiên

Trang 16

12 7 30

; p12 =

75

26 26 ) 12 7 30 (

21 11

p p

p p

=

49

75 126

75 0

2

1 2

1

0 75

26

1 75

H×nh 1.3

Nguån 2 Entropy=1.55

Trang 17

1

E1 =

30

26 12 7 30 log 26 12 7 30

19

7

7 19 log 7 19

Trang 18

n

var a, b, Ea, Eb, Pa, Pb: extended;

Trang 20

H×nh 1.4a

Trang 21

(Dynanic Markov Coding.)

Trang 23

1.5

1 = 2/3, p2 = 1/3

= 2/3 log2(3/2)+ 1/3 log2(3) 0.918 11%

da:=da+1;

end else

begin write(f,b);

db:=db+1;

Trang 24

end end;

close(f);

clrscr;

E:=(da/640000*ln(640000/da)+ db/640000*ln(640000/db))/ln(2); writeln(' ty le nen con = ',round(E/8*100), '%');

2/13/1

b

a b

a

p

pp

p2/13/2

2/13/1

n pa pb 1

7/3

3/2

2/1

2/1

3/1

H×nh 1.7

Trang 25

var f:file of byte;

'a':begin if random<1/3 then

begin write(f,a);M:='a'; end

else

begin write(f,b);M:='b'; end;

end;

'b':begin if random<1/2 then

begin write(f,a);M:='a'; end

else

begin write(f,b);M:='b'; end;

end;

end;

Trang 26

a

b

5/3

7/1

7/6

5/2

H×nh 1.8

Trang 27

a b

a

p

pp

p7/15/3

7/65/2

pa pb 1

51/30

'a':begin if random<2/5 then

begin write(f,a);M:='a';Na:=Na+1; end

Trang 28

else

begin write(f,b);M:='b';Nb:=Nb+1; end;

end;

'b':begin if random<6/7 then

begin write(f,a);M:='a';Na:=Na+1; end

Trang 29

3/15/25/2

3/25/15/3

c b a

c b a

ppp

ppp

05/20

3/15/25/2

3/25/15/3

n pa pb pc 1

77/35

pa , pb 30/77, pc 12/77var

5/2

3/2

5/3

c

5/1

5/2

3/1

H×nh 1.9

Trang 30

else if R<3/5 then begin write(f,b);M:='b';Nb:=Nb+1;end

else begin write(f,c);M:='c';Nc:=Nc+1;end

Trang 31

i i

1

) (

) (

Trang 32

) ( L ) ( p n

1

) (

Trang 34

3 2 2 1

k k

i

0, i 2 3 k

1 2

1 2

3 4 2

Trang 35

S:=S*2;

if S>1 then begin S:=S-1;

code[i]:=code[i]+'1' end

else code[i]:=code[i]+'0' end;

end;

Trang 37

i i

i

i 2 i

i

2

p

1 log 1 r p

1 log

m

1 i

i

i r p r

m

1

2 i m

1 log

Trang 39

tư (e,0 3) (a,0.2) (o,0.2) (i

{a,o}

Trang 40

end;

} y:=a[m-1].prob;inc(a[m-1].prob,a[m].prob);

} k:=m-1;

Trang 41

while (k>1)and (a[k].prob>a[k-1].prob) do begin

x:=a[k-1]; a[k-1]:=a[k]; a[k]:=x; k:=k-1;

Trang 42

1 log

m

i i i

p

1 log

Trang 45

End

sau

Trang 47

2.3

Trang 50

:

: Sx:=a[k];

Trang 52

for i:=1 to n do a[i].code:='';

if a[i].prob>a[i-1].prob then begin x:=a[i];a[i]:=a[i-1];a[i-1]:=x;end;

Trang 53

end;

end

aaaaaabcdefghaahhaaaaagabghabaecdcaaadaecccccccccghaacbgbchaecbdhabdehahcghghaebcd

101110011000111001000110100011000100011010

c

Trang 54

Trang 55

1 Để cho đơn giản ta gọi tắt nửa đoạn dạng [x,y) là khoảng

2 Nh- vậy điều quan trọng là làm thế nào để luôn có thể xác định đ-ợc xác suất xuất hiện của chữ tiếp theo?

Trang 56

Trang 57

1 i i

p ) a b (

j

) , [ j 1 j

Trang 58

m 2

1 0

[0, 1)

Trang 59

-

Trang 60

a

0.100 0.101 0.102 0.103 0.104 0.105 0.106 0.107 0.108 0.109 0.110

c

0.1020 0.1021 0.1022 0.1023 0.1024 0.1025 0.1026 0.1027 0.1028 0.1029 0.1030

g

H×nh 3.3

Trang 61

- : 0.10, 0.11, 0.12, , 0.19, 0.20 0.10

a

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

a

0.100 0.101 0.102 0.103 0.104 0.105 0.106 0.107 0.108 0.109 0.110

c

0.1020 0.1021 0.1022 0.1023 0.1024 0.1025 0.1026 0.1027 0.1028 0.1029 0.1030

g

H×nh 3.4

Trang 62

[ i, i+1

ơhơn

0.10260 0.10261 0.10262 0.10263 0.10264 0.10265 0.10266 0.10267 0.10268 0.10269 0.10270

b

0.160 0.168 0.176 0.184 0.192 0.200 0.208 0.216 0.224 0.232 0.240

a

0.1600 0.1021 0.1022 0.1023 0.1024 0.1025 0.1026 0.1027 0.1028 0.1029 0.1920

c

H×nh 3.5

Trang 64

end

Trang 66

L:=0;rank:=1;state:=1;T1:='';

} S:=random;

Trang 67

if S<4/26 then

begin T1:=T1+'d';State:=4;Rank:=Rank*4/26;

end else begin T1:=T1+'a';

Trang 68

begin T1:=T1+'d';

State:=4;L:=L+4/20*Rank;Rank:=Rank*1/20;

end else if S<12/20 then

begin T1:=T1+'b'; State:=2;L:=L+5/20*Rank;Rank:=Rank*7/20; end

else

begin T1:=T1+'a';State:=3;L:=L+12/20*Rank;Rank:=Rank*8/20; end;

Str(L:22:19,V1);Str(L+Rank:22:19,V2);V:='['+V1+V2+')';

Str(L+Rank/2:22:19,VL);Val(VL,L,m);

} State:=1;S:=0;Rank:=1;T2:='';

Trang 69

if State=4 then

if (L-S)/Rank<4/20 then

begin T2:=T2+'c';State:=1;Rank:=Rank*4/20;

end else

if (L-S)/Rank<5/20 then

Trang 70

begin T2:=T2+'d';State:=4;S:=S+4/20*Rank;Rank:=Rank*1/20; end

else

if (L-S)/Rank<12/20 then begin

T2:=T2+'b';State:=2;S:=S+5/20*Rank;Rank:=Rank*7/20; end

else begin T2:=T2+'a';

[0.058907264212235128, 0.058907264212235135)

bacdcbacbacbacddbdcdcbacbacdbdcdcbacbacdcbacbacbacbacbacdcbac

[0.553712632942476848, 0.553712632942476853)

dcbacbacbacdcbacbacbacbacbacbacbacdcdcddbdcdcbacbacbacbacbacbacdcbac [0.048585947986781746, 0.048585947986781755)

Trang 71

bacbacbacdcbacbacbacbacbacbacdcbacbacdcbacbacbacbacbacbacbacbacbacbacbacbacbacbacbacdbdcdcbacbacbac

[0.902281543958376885, 0.902281543958376893)

Trang 72

LZW )

:

Nh©n v©t cña c©u truyÖn

Néi dung c©u chuyÖn

tõ ch÷ c¸i

Trang 74

z z

z1 k k 1

n 3 2

1 s s s s

z z

z1 k k 1

n 1

L m 2 m 1 m L n 2 n 1

n z z s s s z

L n 1 n

n z z

Thay n n+L

Trang 75

n 3 2

1 s s s

s (m1, L1) (m2, L2)(m3, L3) (mr, Lr

z z

n z z z z z

L n 1 n n

1 z z

z (m1,L1) (m2,L2)(m3,L3) (mr,Lr

(Huffman, Fano, )

Khôn k

ro

Trang 78

Output 0+a 1+a 0+b 3+a 4+a 5+a 4+b

4.1 (0,a)(1,a)(0,b)(3,a)(4,a)(5,a)(4,b)

Trang 79

(empty)

T

Trang 82

aabababaaababb aabababaaababb aabababaaababb aabababaaababb aabababaaababb aabababaaababb

0+a 0+b 1+a 3+a 5+a 2+b 4+b 1+b

Trang 86

Var

Trang 87

S :array[255 15000] of word;C :array[255 15000] of byte;

for m:=256 to H do write(g,S[m]);x:=a;write(g,x); close(g);

assign(g,'C.nen'); reset(g); assign(f,'D.txt'); rewrite(f);

read(g,S[256]); write(f,byte(S[256]));

m:=256;

Trang 88

while not eof(g) do

Trang 90

1

3 Donald Samuel Ornstein and Benjamin Weiss (1993), Entropy and Data

Compression Schemes, IEEE Transactions on Information

Theory, Vol.39, No.1, January , pages 78-83

4 Gyula O H Katona, Tibor O H Nemetz (1976), Huffman Codes and

Self-Information, IEEE Transactions on Information Theory,

Vol.22, No.3, May , pages 337-339

5 Ian H Witten, Radford M Neal (1987), and John G Cleary, Arithmetic

coding for data compression, Communicatio ns of the ACM,

June , Volume 30, Number 6, pages 520-540

6 I E Witten, R M Neal, J G Cleary (1990), Text Compression,

Prentice Hall

7 Nelson Mark (1991), The Data Compression Book, M&T Books,

8 Obert J McEliece (1993), The Theory of Information and Coding,

Cambridge University Press

Ngày đăng: 10/12/2013, 14:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm