I>Mã thống kê tối ưu- Là phép mã hóa mà kết quả là một bộ mã có chiều dai trung bình là nhỏ nhất trong tất cả các phép mã hóa có thể có trong nguồn.. Ta xét phép mã hóa sau đối với các
Trang 1Bài thảo luận
Môn: Lý thuyết thông tin
Nhóm thảo luận:
1.
2.
3.
4.
5.
Trang 2Câu hỏi thảo luận: Phương pháp mã hóa Shannon – Fano và
phương pháp Huffman.
Mục lục
I> Mã thống kê tối ưu………
3
II> hương pháp mã hóa Shannon – Fano
1 Phương pháp Shannon……… 4
2 Phương pháp Fano……… 5
Trang 3III> Phương pháp Huffman………
7
IV> Ứng dụng……….
9
Trang 4I>Mã thống kê tối ưu
- Là phép mã hóa mà kết quả là một bộ mã có chiều dai
trung bình là nhỏ nhất trong tất cả các phép mã hóa có thể
có trong nguồn
- Bộ mã của phép mã hóa tối ưu cho nguồn được gọi là mã
hóa 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
Trang 5Ta xét phép mã hóa sau đối với các tin của nguồn rời rạc A:
f: a I → α I ni
Mỗi tin ai được mã hóa bằng một tổ hợp mã (từ mã) αIni
(αini là một tổ hợp
mã gồm ni dấu mã)
Ta xét trường hợp mã nhị phân tức là mỗi dấu mã chỉ nhận một trong hai
giá trị 0 và 1
Độ dài của trung bình của một tổ hợp mã được xác định bởi công thức:
=∑
i=1
s
ni p(a i )
Một phép mã hóa được gọi là tối ưu nếu nó làm cực tiểu giá trị
Trang 6II> Phương pháp mã hóa Shannon – Fano
1 Phương pháp Shannon
Các bước thực hiện mã hóa theo phương pháp Shannon:
B1: Sắp xếp các xác suất theo thứ tự giảm dần Không mất tính tổng quát giả sử P1> P2 > … > Pk
B2: Định nghĩa q1=0, qi=∑
j=1
i−1
Pj với mọi i= 1,2,…,k
B3: Đổi qi sang cơ số 2 (biểu diễn qi trong cơ số 2) sẽ được một chuỗi nhị phân
B4: Từ mã được gán cho ai và 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=[-log2pi]
Trang 7Ví dụ: Mã hóa 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,25; 0.125; 0.0625; 0.0625; 0.25; 0.125; 0.0625; 0.0625
Tin ai Xác suất
pi
qi=∑
j=1
i−1
Pj Biểu diễn
nhị phân
li =[-log2pi]
Từ mã
wi
0
0
0
a6 0.125 0.625 0.101000
0
a3 0.0625 0.75 0.110000
0
a4 0.0625 0.8125 0.110100
0
Trang 8a8 0.0625 0.9375 0.111100
0
Độ dài trung bình của từ mã:
= 0.25*2 + 0.25*2 + 0.125*3 + 0.125*3 + 0.0625*4 + 0.0625*4 + 0.0625*4 + 0.0625*4 = 2.75
Entropie của nguồn tin:
H(s) = - [0.25*log20.25 + 0.25*log20.25 + 0.125*log20.125 + 0.125*log20.125 + 0.0625*log20.0625 + 0.0625*log20.0625 + 0.0625*log20.0625 + 0.0625*log20.0625] = 2.75
Hiệu suất lập mã:
h = H (s )❑ = 2.752.75 = 1
Trang 9Các bước thực hiện mã hóa theo phương pháp Fano:
B1: Sắp xếp các xác suất theo thứ tự giảm dần Không mất tính tổng quát giả sử P1>P2>…>Pk
B2: Phân các xác suất thành hai nhóm có tổng xác suất gần bằng nhau
B3: Gán cho hai nhóm lần lượt các ký hiệu 0 và 1
B4: Lặp lại B2 cho các nhóm con cho tới 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 10Ví dụ: Mã hóa 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.25; 0.125; 0.0625; 0.0625; 0.25; 0.125; 0.0625; 0.0625
Tin ai P(ai) Lần 1 Lần 2 Lần 3 Lần 4 Từ mã
Độ dài trung bình của từ mã:
Trang 11= 0.25*2 + 0.25*2 + 0.125*3 + 0.125*3 + 0.0625*4 + 0.0625*4 + 0.0625*4 + 0.0625*4 = 2.75
Entropie của nguồn tin:
H(s)= - [0.25*log20.25 + 0.25*log20.25 + 0.125*log20.125 + 0.125*log20.125 + 0.0625*log20.0625 + 0.0625*log20.0625 + 0.0625*log20.0625 + 0.0625*log20.0625] = 2.75
Hiệu suất lập mã:
h = H (s )❑ = 2.752.75 = 1
Nhận xét:
Trang 12- Hai phương pháp Shannon và Fano thực chất là một, đều
xây dựng trên cùng một cơ sở độ dài từ mã tỉ lệ nghịch với xác suất xuất hiện, không cho phép lập mã một cách duy nhất vì sự chia nhóm trên cơ sở đồng đều và tổng xác suất nên có thể có nhiều cách chia
- Sự lập mã theo cách chia nhóm trên cơ sở đồng xác suất
tạo cho bộ mã có tính Prefix
- Phương pháp mã hóa từng tin của nguồn tin chỉ có hiệu
quả khi entropie của nguồn lớn hơn 1 ( H(u) > 1) Trường hợp H(u) < 1 thì phương pháp mã hóa từng tin riêng biệt không đưa đến cải tiến tốt tính tối ưu của mã Trong
trường hợp này dùng phương pháp mã hóa từng khối tin
Trang 13Các bước thực hiện phương pháp Huffman:
B1: Khởi động một danh sách các cây nhị phân một nút chứa các trọng lượng p1, p2, …, pn cho các tin a1, a2, …, an
B2: Thực hiện các bước sau n-1 lần:
1) Tìm hai cây T’ và T’’ trong danh sách với các nút gốc có trọng lượng tối thiểu p’ và p’’
2) Thay thế hai cây này bằng cây nhị phân với nút gốc có
trọng lượng p’ + p’’ và có các cây con là T’ và T”
Đánh dấu các mũi tên chỉ đến các cây con 0 và 1
p’+p’’
T’’
T’
Trang 14B3: Mã số của tin ai là dãy các bit được đánh dấu trên đường từ gốc của cây nhị phân cuối cùng tới nút ai
Ví dụ: Xét các ký tự A, B, C, D có các xác suất xuất hiện tương ứng là 0.25, 0.125, 0.125, 0.5
B1:
B C A D
B2:
0.125 0.125
1
Trang 15B C A D
B3:
0.5
0.25
0.5 0.25
0.125 0.125
Trang 16Nhận xét:
Ưu điểm
- Xử lý khá tốt độ dư thừa phân bố kí tự
- Quá trình mã hóa và giải mã tương đối đơn giản.
- Cho mã có độ dài tối ưu.
Hạn chế
- Giải quyết kém hiệu quả đối với các loại độ dư thừa khác
(chẳng hạn như độ dư thừa vị trí)
Trang 17- Cấu trúc của cây mã hoặc bộ từ mã đã dùng để mã hóa
phải được gởi đi cùng với số liệu đã được mã hóa
Điều này làm giảm hiệu suất nén
IV> Ứng dụng
- Lưu trữ
- Truyền dữ liệu.
- Dùng trong các chương trình nén như: compress, pack
trong Unit và winzip, winrar trong Windowns