GIỚI THIỆUTrương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 4 Trong các hệ thống truyền tin, nguồn nhận thường tập hợp các tin mà bên phát dùng để lập nên các bản tin.. MÃ HIỆU VÀ
Trang 1LÝ THUYẾT THÔNG TIN
Bùi Văn Thành
thanhbv@uit.edu.vn
Tháng 7 năm 2013
1
Trường Đại Học Công Nghệ Thông Tin
KHOA MẠNG & TRUYỀN THÔNG
Trang 2CHƯƠNG 4
LÝ THUYẾT MÃ
MÃ HÓA NGUỒN
2
Trang 3MÃ HÓA NGUỒN TIN
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 3
1 Khái niệm mã và điệu kiện thiết lập mã.
2 Điều kiện để mã phân tách được.
3 Mã thống kê tối ưu.
Trang 4GIỚI THIỆU
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 4
Trong các hệ thống truyền tin, nguồn nhận thường tập hợp các tin
mà bên phát dùng để lập nên các bản tin.
• Các tin thường sẽ được ánh xạ (mã hóa) thành một dạng biểu diễn khác thuận tiện hơn để phát đi.
• Ví dụ: Xét một nguồn tin A={a,b,c,d} chúng ta có thể thiết lặp các
cặp ánh xạ như sau từ A vào tập các chuỗi {0,1}
a → 00 c → 10
b → 01 d → 11 Vậy để phát đi bản tin cbab, ta phải phát đi tập tin 10010001 Khi nguồn nhận nhận được chuỗi này, thì sẽ xác định được bản tin là cbab.
Trang 5MÃ HIỆU VÀ NHỮNG THÔNG SỐ CƠ BẢN
Mã hiệu (code): Mã hiệu là tập hợp hữu hạn các ký hiệu và phép ánh xạ
các tin/bản tin của nguồn tin thành các dãy ký hiệu tương ứng Tập các ký hiệu và phép ánh xạ này thường sẽ đáp ứng các yêu cầu mà hệ thống truyền tin đặt ra
• Cơ số mã: Tập các ký hiệu mã dùng để biểu diễn gọi là bảng ký hiệu mã,
còn số các ký hiệu thì gọi là cơ số mã (m) Mã nhị phân m=2, mã tam
phân m=3…
Mã hóa (Encoding): Mã hóa là quá trình dùng các ký hiệu mã để biểu
diễn các tin của nguồn
• Biến đổi nguồi tin thành mã hiệu, biến đổi tập tin này thành tập tin khác có đặc tính thống kê theo yêu cầu
• Quá trình ngược lại của mã hóa được gọi là giải mã (Decoding). 5
Trang 6MÃ HIỆU VÀ NHỮNG THÔNG SỐ CƠ BẢN
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn
Từ mã (code wod), bộ mã: Từ mã là chuỗi kí hiệu mã biểu diễn
cho tin của nguồn Tập tất cả các từ mã tương ứng với các tin
của nguồn được gọi là bộ mã.
• Vì vậy có thể nói mã hóa là một phép biến đổi một – một
giữa một tin của nguồn và một từ mã của bộ mã.
• Trong một số trường hợp người ta không mã hóa mỗi tin của nguồn mà mã hóa một bản tin hay khối tin Lúc này chúng ta
có khái niệm mã khối.
• Các từ mã thường được ký hiệu: u,v,w.
Chiều dài từ mã là số ký hiệu trong một từ mã (l)
6
Trang 7MÃ HIỆU VÀ NHỮNG THÔNG SỐ CƠ BẢN
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn
• Chiều dài trung bình của bộ mã ( ):
p(xi): xác suất xuất hiện tin xi của nguồn U được mã hóa
n : số từ mã tương ứng số tin của nguồn
li : chiều dài từ mã tương ứng với tin xi của nguồn
i l x p
Trang 8ĐIỀU KIỆN PHÂN TÁCH MÃ
8
Ví dụ:
• Xét bộ mã X1= {0,10,11} mã hóa cho nguồn A = {a,b,c}.
• Giả sử bên phát phát đi bản tin x = abaac, lúc đó chuỗi từ mã tương ứng được phát đi là y = 0100011.
• Vấn đề: bên nhận nhận được y, làm sao tìm x?
• Để làm được quá trình này, bên nhận phải thực hiện một quá
trình gọi là tách mã Với chuỗi ký hiệu y trên, bên nhận chỉ
có 1 khả năng tách mã: 0 | 10 | 0 | 0 | 11.
Trang 9ĐIỀU KIỆN PHÂN TÁCH MÃ (TT)
9
• Xét bộ mã X2= {0,10,01} mã hóa cho nguồn A trên.
• Giả sử bên nhận nhận được chuỗi y = 01010.
• Với chuỗi ký hiệu y trên, bên nhận có thể có 3 khả năng tách mã:
0 | 10 | 10; 01 | 0 | 10; 01 | 01 | 0 Vì vậy, bên nhận không biết
chính xác bên phát đã phát mẫu tin abb, hay cab, hay cca.
• Một mã như vậy không phù hợp cho việc tách mã và được gọi là
mã không tách được (uniquely undecodable code).
• Vì vậy, điều kiện để một mã được gọi là mã phân tách được
(uniquely decodable code) là không tồn tại dãy từ mã này trùng với
dãy từ mã khác của cùng bộ mã.
Trang 10ĐIỀU KIỆN PHÂN TÁCH MÃ (TT)
10
• Xét bộ mã X3= {010,0101,10100} mã hóa cho nguồn A trên.
• Giả sử bên nhận nhận được chuỗi y = 01010100101.
• Với chuỗi ký hiệu y trên, bên nhận chỉ có 1 khả năng tách
mã: 0101 | 010 | 0101 Nhưng việc giải khó khăn hơn so với
bộ mã X1.
• Để nhận biết một bộ mã có phân tích được không, người
thường dùng một công cụ được gọi là bảng thử mã.
Trang 11BẢNG THỬ MÃ
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 11
• Bản chất của bảng thử mã là phân tích những từ mã dài thành những từ
• Còn nếu ngược lại, w 11 không là từ mã thì chúng ta dùng nó để xét tiếp
Trong lần xét tiếp chúng ta xét xem mỗi w 11này có là tiếp đầu ngữ của các
từ mã hay không, nếu đúng với một từ mã nào đó, giả sử là u 2, thì từ mã
này sẽ có dạng w 11 v 21 …v 2l w 22 trong đó v 21 …v 2l là các từ mã ngắn (l có thể
bằng 0) còn w 22 là tiếp vị ngữ còn lại
Trang 12BẢNG THỬ MÃ (TT)
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 12
• Lúc đó tồn tại dãy kí hiệu sau:
v11v12 v1kw11v21 v2lw22 w(i-1)(i-1)vi1 vimwiiv(i+1)1 v(i+1)n
Và có thể phân tách thành hai dãy từ mã khác nhau.
Trang 13CÁCH XÂY DỰNG BẢNG THỬ MÃ
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 13
• B1 Sắp xếp các từ mã vào cột đầu tiên của bảng (cột 1).
• B2 So sánh các từ mã ngắn với các từ mã dài hơn trong cột 1, nếu từ
mã ngắn giống phần đầu từ mã dài thì ghi phần còn lại trong từ mã dài sang cột 2.
• B3 Đối chiếu các tổ hợp mã trong cột 2 với các từ mã trong cột 1 lấy
phần còn lại ghi vào cột tiếp theo (cột 3).
• B4 Đối chiếu các tổ hợp mã trong cột 3 với các từ mã trong cột 1…
Thực hiện giống như trên cho đến khi không thể điền thêm, hoặc cột mới thêm vào trùng với một cột trước đó, hoặc có một chuỗi trong cột mới trùng với một từ mã.
Trang 1400 | 01 | 011 | 00
00010 | 1100
Trang 16Điều kiện cần và đủ để một bộ mã phân tách được
là không có phần tử nào trong các cột khác cột 1 trùng với một phần tử trong cột 1.
Trang 17ĐỊNH LÝ SHANNON
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 17
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:
m
X
H l
log
) (
Trang 18ĐỊNH LÝ MÃ HÓA NGUỒN
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn 18
Đối với mã nhị phân:
Bảng mã được gọi là tối ưu tuyệt đối khi:
1 log
)
( log
m
X H
1 )
( )
Trang 20HIỆU SUẤT LẬP MÃ
20
của entropy của nguồn với chiều dài trung bình của bộ mã được lập.
• h càng tiến tới 1, tính kinh tế của mã càng cao.
l
X H
Trang 21Mã hóa Shanno
Mã hóa Shanno
21
• Thuật toán mã hóa theo Shanno như sau:
• Sắp xếp các xác suất theo thứ tự giảm dần.
• Định nghĩa q 1 =0 , i=1,2,3, ,k Ở bước này theo giả thiết p1 ≥… ≥ pk
• Đổi q i sang cơ số 2, sẽ được một chuỗi nhị phân.
• 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
i
j
j
i p q
i
Trang 23Nhận xét
Mã hóa Shanno
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn
23
nhằm mục đích dẫn tới độ dài trung bình của bộ
mã là nhỏ.
prefix (một bộ mã không có từ mã nào là phần đầu của từ mã khác).
hợp m>2.
Trang 25• Thuật toán mã hóa theo Fano như sau:
• Sắp xếp các xác suất theo thứ tự giảm dần.
• Chia các tin làm hai nhóm có xác suất xấp xỉ bằng nhau.
• Nhóm đầu lấy trị 0, nhóm sau lấy trị 1.
• Lặp lại bước 2 cho đến khi tất cả các nhóm chỉ còn lại một tin thì kết thúc.
• 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 28mã có chiều dài trung bình khác nhau.
• Nhận xét: Phương pháp Fano thường cho kết quả tốt
hơn phương pháp Shanno
Trang 29Phương pháp mã hóa tối ưu Huffman
29
• Bổ đề: Cho nguồn tin S = {a1 ,…,a k } với các xác suất tương ứng p 1 ,
…,p k Gọi l 1 ,…,l k là chiều dài các từ mã tương ứng với bộ mã tối ưu
cho S Nếu p i > p j thì l i ≤ l j
• Định lý 1: Trong một 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 và có thể làm cho chúng chỉ khác nhau duy nhất ở bit cuối
• Định lý 2: Xét nguồn mới S’ = {a’ 1 ,…,a’ k-1 } với các xác suất tương ứng p’ 1 ,…,p’ k-1 Trong đó p’ i = p i với 1 ≤ i ≤ k-2 còn p’ k-1 = p k-1 + p k 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.
w i = w’ i 1 ≤ i ≤ k-2
w k-1 = w’ (k-1) +”0”
wk = w’ (k-1) 1 +”1”
Trang 30Phương pháp mã hóa tối ưu Huffman
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn
Trang 31Giải thuật mã hóa tối ưu Huffman
Trương Hải Bằng-Lý Thuyết Thông tin-bangth@uit.edu.vn
31
• B1: Sắp xếp các xác suất theo thứ tự giảm dần p1 ≥…≥ pk.
• B2: Gán 0 tới bit cuối của wk -1và 1 tới bit cuối của wk hoặc ngược lại Quy ước 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,
• B4: Lặp lại các bước trên cho tập tin mới này.
Trang 320 1
0 1
0 1 0
1
Trang 33Nhận xét
Trương Hải Bằng-Lý Thuyết Thông
• 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 trung bình vẫn không thay đổi cho dù các từ mã kết quả có thể khác nhau.
• 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 như 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