Chương 2. Mã Huffman

18 180 0
Chương 2. Mã Huffman

Đ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

Chương Mã Huffman ntnhut@hcmus.edu.vn Mã tối ưu • Trong đoạn văn bản, ký tự có tần suất xuất khác dùng mã tức thời để mã hố ký tự có tần suất cao thành từ mã có độ dài ngắn Bài tốn: cho trước tần suất xuất ký tự, tìm mã tối ưu ntnhut@hcmus.edu.vn Nguồn thơng tin Định nghĩa: guồn thông tin bao gồm bảng ký tự {a1, a2, …, an} với phân phối xác suất chúng P(a1), P(a2), …, P(an) thoả: • P(a1) + P(a2) + … + P(an) = • ≤ P(ai) ≤ Ví dụ: ntnhut@hcmus.edu.vn Độ dài mã tối ưu • Độ dài mã trung bình (average length) • Mã tối ưu mã có độ dài mã trung bình nhỏ (theo nghĩa chuỗi mã nén ngắn được) ntnhut@hcmus.edu.vn VD mã tối ưu Mã ASCII Mã Morse tối ưu hơn! ntnhut@hcmus.edu.vn Mã Huffman Định nghĩa: Cho trước nguồn thông tin S, mã Huffman mã tức thời có độ dài mã trung bình nhỏ Lmin(S) Ví dụ: mã Huffman cho nguồn thơng tin sau có ntnhut@hcmus.edu.vn Xây dựng mã Huffman nhị phân • ký tự nguồn {a1, a2}: – Từ mã tương ứng – Độ dài từ mã = • ký tự nguồn {a1, a2, a3} P(a1) cao nhất: – Rút trường hợp ký tự a1 a2,3 với P(a2,3) = P(a2) + P(a3) – Tách từ mã ‘1’ thành hai từ mã ‘10’ ‘11’ ntnhut@hcmus.edu.vn Tổng quát • S nguồn thông tin với bảng ký tự {a1, a2, …, an} phân phối xác suất P(a1) ≥ P(a2) ≥ … ≥ P(an) • Nguồn thơng tin S* gồm n – ký tự {a1, a2, …, an-2 ký tự an-1,n } với xác suất tương ứng P(a1), P(a2), …, P(an-2) P(an-1,n)=P(an-1) + P(an) Định lý: Giả sử K* mã Huffman cho S* Khi mã cho S có dạng Lưu ý: xếp ký tự an-1,n tương ứng thứ tự P(an-1,n) dãy xác suất đượcntnhut@hcmus.edu.vn xếp Ví dụ • Tìm mã Huffman cho nguồn thơng tin sau • Kết quả: • Độ dài mã trung bình: ntnhut@hcmus.edu.vn Các bước thực ntnhut@hcmus.edu.vn 10 Mã Huffman mở rộng • Bảng ký tự mã gồm k>2 ký tự (k>2) • Ví dụ: 00 01 02 20 21 ntnhut@hcmus.edu.vn 11 Tóm tắt • • • • Mã tối ưu Nguồn thông tin Độ dài mã tối ưu Mã Huffman ntnhut@hcmus.edu.vn 12 Đề tài nhóm • Mã tự sửa [1] : Reed-Muller code Cyclic code BCH code • Nén liệu [2] : Arithmetic code Lempel-Ziv code Jiri Adamek, Foundations of Coding David J C Mackay, Information Theory, Inference, and Learning Algorithms ntnhut@hcmus.edu.vn 13 Homework • Đọc lại chương [1] làm tập cuối chương • Đọc trước chương [1] ntnhut@hcmus.edu.vn 14 Bài tập • Tìm mã Huffman cho trường hợp sau ntnhut@hcmus.edu.vn 15 Bài tập • Tìm số ký tự mã nhỏ để mã tức thời cho nguồn thông tin tập cho độ dài mã trung bình khơng lớn 1.5 ntnhut@hcmus.edu.vn 16 Bài tập • Tìm tất mã Huffman nhị phân cho bảng ký tự {A, B, C, D}, biết A xuất nhiều gấp đơi B, B nhiều gấp đơi C D ntnhut@hcmus.edu.vn 17 Bài tập thực hành Viết chương trình C tính tần suất xuất ký tự file văn tiếng Anh Dùng Matlab viết hàm lập mã Huffman cho nguồn thông tin cho trước ntnhut@hcmus.edu.vn 18 ... Mã Huffman Định nghĩa: Cho trước nguồn thông tin S, mã Huffman mã tức thời có độ dài mã trung bình nhỏ Lmin(S) Ví dụ: mã Huffman cho nguồn thơng tin sau có ntnhut@hcmus.edu.vn Xây dựng mã Huffman. .. P(an) Định lý: Giả sử K* mã Huffman cho S* Khi mã cho S có dạng Lưu ý: xếp ký tự an-1,n tương ứng thứ tự P(an-1,n) dãy xác suất đượcntnhut@hcmus.edu.vn xếp Ví dụ • Tìm mã Huffman cho nguồn thơng... ntnhut@hcmus.edu.vn 10 Mã Huffman mở rộng • Bảng ký tự mã gồm k>2 ký tự (k>2) • Ví dụ: 00 01 02 20 21 ntnhut@hcmus.edu.vn 11 Tóm tắt • • • • Mã tối ưu Nguồn thông tin Độ dài mã tối ưu Mã Huffman ntnhut@hcmus.edu.vn

Ngày đăng: 20/12/2017, 08:49