Bài giảng Lý thuyết thông tin - Chương 4: Lý thuyết mã mã hóa nguồn - Bùi Văn Thành

pdf 33 trang phuongnguyen 3420
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lý thuyết thông tin - Chương 4: Lý thuyết mã mã hóa nguồn - Bùi Văn Thành", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_ly_thuyet_thong_tin_chuong_4_ly_thuyet_ma_ma_hoa_n.pdf

Nội dung text: Bài giảng Lý thuyết thông tin - Chương 4: Lý thuyết mã mã hóa nguồn - Bùi Văn Thành

  1. Trường Đại Học Công Nghệ Thông Tin KHOA MẠNG & TRUYỀN THÔNG LÝ THUYẾT THÔNG TIN Bùi Văn Thành thanhbv@uit.edu.vn 1 Tháng 7 năm 2013
  2. CHƯƠNG 4 LÝ THUYẾT MÃ MÃ HÓA NGUỒN 2
  3. MÃ HÓA NGUồN TIN 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. Trương Hải Bằng-Lý Thuyết Thông tin- 3 bangth@uit.edu.vn
  4. GIớI THIệU . 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à Trương Hải Bằng-Lý Thuyết Thông tin- 4 cbab. bangth@uit.edu.vn
  5. 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
  6. CƠ BảN . 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). Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 6
  7. CƠ BảN n l p(x )l • Chiều dài trung bình của bộ mã ( l ):  i i i 1 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. .Phân loại mã: • Một bộ mã được gọi là mã đều nếu các từ mã của bộ mã có chiều dài bằng nhau. • Một bộ mã đều có cơ số mã m , chiều dài từ mã l và số lượng từ mã n bằng với ml thì được gọi là mã đầy, ngược lại thì gọi là mã vơi. • Ví dụ: Cho bảng ký hiệu mã A={0,1}, thì bộ mã X1 ={0,10,11} là mã không đều, bộ mã X2 ={00,10,11} là mã đều nhưng vơi, còn bộ mã X3 ={00,01,10,11} là mã Trươngđều v Hàả đi Bầằy.ng-Lý Thuyết Thông tin- bangth@uit.edu.vn 7
  8. ĐIềU KIệN PHÂN TÁCH MÃ 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. 8
  9. ĐIềU KIệN PHÂN TÁCH MÃ (TT) • 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ã. 9
  10. ĐIềU KIệN PHÂN TÁCH MÃ (TT) • 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ã. 10
  11. BảNG THử MÃ • 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ừ mã ngắn đi đầu. • Từ mã dài u1 có thể phân tích thành v11v12 v1kw11 trong đó v11, v1k là các từ mã ngắn, còn w11 là phần còn lại của u1. • Nếu w11 cũng là một từ mã thì bộ mã này là không phân tách được vì chuỗi v11v12 v1kw11 có ít nhất hai cách phân tách thành các từ mã, đó là đó là u1 và v11,v12, ,v1k,w11 . • Còn nếu ngược lại, w11 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 w11nà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à u2, thì từ mã này sẽ có dạng w11v21 v2lw22 trong đó v21 v2l là các từ mã ngắn (l có Trương Hải Bằng-Lý Thuyết Thông tin- 11 bangth@uit.edu.vn thể bằng 0) còn w22 là tiếp vị ngữ còn lại.
  12. BảNG THử MÃ (TT) • 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. • Cách 1: v11 | v12 | | v1k | w11v21 v2lw22 | | w(i-1)(i-1)vi1 vimwii | v(i+1)1 | | v(i+1)n • Cách 2: v11 v12 v1k w11 | v21 | | v2l | w22 w(i-1)(i-1) | vi1 | vim | wiiv(i+1)1 v(i+1)n Trương Hải Bằng-Lý Thuyết Thông tin- 12 bangth@uit.edu.vn
  13. CÁCH XÂY DựNG BảNG THử MÃ • 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ộtTrương mớ iH trải Bùằngng-Lý v Thuyới mết Thôngột t ừtin-mã. 13 bangth@uit.edu.vn
  14. BảNG THử MÃ (VÍ Dụ) • Lập bảng thử mã cho bộ mã A = {00, 01, 011, 1100, 00010} 1 2 3 4 5 Mã là không phân tách được 00 010 0 0 0 trên chuỗi 000101100 vì có 01 1 100 1 1 hai cách phân tách khác nhau 011 11 11 00 | 01 | 011 | 00 1100 0010 0010 00010 100 00010 | 1100 . 00 14
  15. BảNG THử MÃ (VÍ Dụ) Lập bảng thử mã cho bộ mã A = {010, 0001, 0110, 1100, 00011, 00110, 11110, 101011 } Gợi ý: Cột 2 ={1} Cột 3 ={100, 1110, 01011} Cột 4 ={11} Cột 5 ={00, 110} Cột 6 ={01, 0, 011, 110} Cột 7 ={0, 10, 001, 110, 0011, 0110} Cột 7 chứa từ mã 0110 nên bảng mã này không phải là bảng mã tách được. 15
  16. BảNG THử MÃ (VÍ Dụ) Lập bảng thử mã cho bộ mã A = {00, 01, 100, 1010, 1011} B = {10, 100, 01, 011} Đ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. 16
  17. ĐịNH LÝ SHANNON 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: H ( X ) l log m (trong đó H(X) là entropy của nguồn) Trương Hải Bằng-Lý Thuyết Thông tin- 17 bangth@uit.edu.vn
  18. ĐịNH LÝ MÃ HÓA NGUồN H ( X ) H ( X ) l 1 log m log m Đối với mã nhị phân: H (X ) l H (X ) 1 Bảng mã được gọi là tối ưu tuyệt đối khi: l H (X ) Trương Hải Bằng-Lý Thuyết Thông tin- 18 bangth@uit.edu.vn
  19. VÍ Dụ Xét biến ngẫu nhiên X={x1, x2, x3, x4} Có phân phối: P={1/2, 1/4, 1/8, 1/8} Có bảng mã W={w1= 0, w2=10, w3=110, w4=111} Ta tính được độ dài trung bình từ mã: l = 1/2 * 1 + 1/4 *2 + 1/8 * 3 + 1/8 * 3 = 1.75 Tính Entropy của X: H(X)= H(0.5, 0.25, 0.125, 0.125) = 0.5 +0.5 + 0.375 + 0.375 =1.75 l = H(X) nên bảng mã W được gọi là mã thống kê tối ưu. 19
  20. 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 • h càng tiến tới 1, tính kinh tế của mã càng cao. 20
  21. Mã hMãó ahó Shannoa Shanno • Cho nguồn tin X = {a1, ,ak} với các xác suất tương ứng p1, ,pk . • 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. i 1 • Định nghĩa q =0, i=1,2,3, ,k. Ở bước này 1 qi  p j ,  j 1 theo giả thiết p1 ≥ ≥ pk . • Đổi qi 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. • Trong đó li log2 pi 21
  22. Mã hóaV Shannoí dụ • Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6} với các xác suất tương ứng 0.3 ; 0.25 ; 0.2 ; 0.12 ; 0.08 ; 0.05. Xác suất i 1 Biểu diễn nhị Tin a Từ mã w i p q i  p j phân li log2 pi i i j 1 a1 0.3 0 0,00 2 00 a2 0.25 0.3 0,01001 2 01 a3 0.2 0.55 0,10001 3 100 a4 0.12 0.75 0,11000 4 1100 a5 0.08 0.87 0,11011 4 1101 a6 0.05 0.95 0,111100 5 11110 • H (S) = 2.36; l = 2.75; h = 2.36 / 2.75 = 85.82% Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 22
  23. Mã hóa Shanno Nhận xét • Việc sắp xếp các xác suất theo thứ tự giảm dần nhằm mục đích dẫn tới độ dài trung bình của bộ mã là nhỏ. • Phương pháp Shanno cho kết quả là một mã prefix (một bộ mã không có từ mã nào là phần đầu của từ mã khác). • Phương pháp Shanno có thể mở rộng cho trường hợp m>2. Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 23
  24. Mã hóVaí Shannodụ • Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6,a7} với các xác suất tương ứng 0.34 ; 0.23 ; 0.19 ; 0.10 ; 0.07 ; 0.06 ; 0.01. Xác suất i 1 Biểu diễn nhị Tin a q p Từ mã w i p i  j phân li log2 pi i i j 1 a1 0.34 0 0,00 2 00 a2 0.23 0.34 0,010 3 010 a3 0.19 0.57 0,100 3 100 a4 0.10 0.76 0,1100 4 1100 a5 0.07 0.86 0,1101 4 1101 a6 0.06 0.93 0,11101 5 11101 a7 0.01 0.99 0,1111110 7 1111110 • H (S) = 2.37; l = 2.99; h = 2.37 / 2.99 = 81% Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 24
  25. Mã hóa Fano Mã hóa Fano • Cho nguồn tin X = {a1, ,ak} với các xác suất tương ứng p1, ,pk . • 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 Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn tương ứng của tin. 25
  26. Mã hóa Fano Ví dụ • Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6} với các xác suất tương ứng 0.3 ; 0.25 ; 0.2 ; 0.12 ; 0.08 ; 0.05. Phân nhóm lần Tin Xác suất Từ mã 1 2 3 4 a1 0.3 0 0 00 a2 0.25 0 1 01 a3 0.2 1 0 10 a4 0.12 1 1 0 110 a5 0.08 1 1 1 0 1110 a6 0.05 1 1 1 1 1111 • H (S) = 2.36; l = 2.38; h = 2.36 / 2.38 = 99.17% Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 26
  27. Mã hóa Fano Ví dụ • Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6,a7,a8} với các xác suất tương ứng 0.23 ; 0.2 ; 0.14 ; 0.12 ; 0.1 ; 0.09 ; 0.06 ; 0.06. ai pi 1 2 3 4 wi ai pi 1 2 3 4 wi a1 0.23 0 0 00 a1 0.23 0 0 00 a2 0.2 0 1 01 a2 0.2 0 1 0 010 a 0.14 1 0 0 100 3 a3 0.14 0 1 1 011 a 0.12 1 0 1 101 4 a4 0.12 1 0 0 100 a5 0.1 1 1 0 0 1100 a5 0.1 1 0 1 101 a6 0.09 1 1 0 1 1101 a6 0.09 1 1 0 110 a7 0.06 1 1 1 0 1110 a7 0.06 1 1 1 0 1110 a 0.06 1 1 1 1 1111 8 a8 0.06 1 1 1 1 1111 • l = 2.88 l = 2.89 1 Trương Hải Bằng-Lý Thuy2ết Thông tin- bangth@uit.edu.vn 27
  28. Nhận xét • 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. • Nhận xét: Phương pháp Fano thường cho kết quả tốt hơn phương pháp Shanno. Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 28
  29. Phương pháp mã hóa tối ưu Huffman • Bổ đề: Cho nguồn tin S = {a1, ,ak} với các xác suất tương ứng 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. • Đị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 = 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-1) +”0” 1 29 wk = w’(k-1) +”1”
  30. Phương pháp mã hóa tối ưu Huffman l Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 30
  31. Giải thuật mã hóa tối ưu Huffman • 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, , pk-2, pk-1 + pk. • B4: Lặp lại các bước trên cho tập tin mới này. Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 31
  32. Ví dụ • Hãy mã hóa nguồn S = {a1,a2,a3,a4,a5,a6} với các xác suất tương ứng 0.3 ; 0.25 ; 0.2 ; 0.12 ; 0.08 ; 0.05. ai pi Lần 1 Lần 2 Lần 3 Lần 4 Wi 0 a1 0.3 0.3 0.3 0.45 0.55 00 0 1 a2 0.25 0.25 0.25 0.3 0.45 01 0 1 a3 0.2 0.2 0.25 0.25 11 1 0 a4 0.12 0.13 0.2 101 0 1 a5 0.08 0.12 1000 1 a6 0.05 1001 • H (S) = 2.36; l = 2.38; h = 2.36 / 2.38 = 99.17% 32
  33. Nhận xét • 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. Trương Hải Bằng-Lý Thuyết Thông tin- bangth@uit.edu.vn 33