Tr ờng Đại Học Thông Tin Liên Lạc Khoa Công Ngh Thông Tin BÁO CÁO TH C HÀNH TRUY N THƠNG ĐA PH ƠNG TI N (6405) Nhóm GVHD: Đại úy, Ths Nguy n Trung Hi u Kh hàHòa,à g yà 5àth gà ă Tr ờng Đại Học Thông Tin Liên Lạc Khoa Công Ngh Thông Tin BÁO CÁO TH C HÀNH TRUY N THÔNG ĐA PH ƠNG TI N (6405) Nhóm (Nhóm tr ởng) Nguyễn Hồng Phú Lê Trịnh Thiên Thạch Trần Minh Hoàng Trần Minh C ờng Nguyễn Lê Phú C ờng Huỳnh Quốc C ơng Trần Minh Thời GVHD: Đại úy, Ths Nguy n Trung Hi u Kh hàHòa,à g yà 5àth gà ă I Giới thi u mã hóa HUFFMAN Mã hóa Huffman (David A Huffman)là thuật tốn mư hóa dùng để nén liệu Nén Huffman ph ơng pháp nén phổ biến Việc mã hoá dựa ph ơng thức mư hoá theo độ dài thay đổi bit cho ký tự Công nghệ nén có đ ợc dựa sở gán mã ngắn cho ký tự có tần suất xuất lớn Mư Để đảm bảo cho kết giải khơng có mã tiền tố mã khác Các ký tự đ ợc l u d ới dạng tần xuất xuất chúng Số l ợng Bit ký tự đ ợc mã hoá khác Ký tự có tần xuất xuất lớn đ ợc mã hoá số bit ngắn Để xác định đ ợc bảng mư Huffman, xây dựng nhị phân II Giới thi u nhị phân HUFFMAN Là nhị phân, nút chứa ký tự trọng số (tần suất ký tự đó) Mỗi ký tự đ ợc biểu diễn nút (tính tiền tố) Nút cha có tổng ký tự, tổng trọng số nút Các nút có trọng số, ký tự tăng dần từ trái sang phải Các nút có trọng số lớn nằm gần nút gốc Các nút có trọng số nhỏ nằm xa nút gốc Nén với mã HUFFMAN Mã Huffman Là chuỗi nhị phân đ ợc sinh dựa Huffman Mã Huffman ký tự đ ờng dẫn từ nút gốc đến nút Sang trái ta đ ợc bit Sang phải ta đ ợc bit Có độ dài biến đổi (tối u bảng mã) Các ký tự có tần suất lớn có độ dài ngắn Các ký tự có tần suất nhỏ có độ dài dài Nén huffman khơng thông tin Nén không thông tin Dựa thống kê tần số: ký tự xuất nhiều lần, sử dụng ký mã bit Thuật toán hiệu sử dụng: nén jpg, … Ý t ởng: Xây dựng mã huffman Đọc ký tự, chuyển sang dãy bit Gửi đến nơi nhận.q Đọc dãy bit, nhận dạng ký tự chuyển ký tự cũ Xây d ng mã HUFFMAN Ý t ởng: Xây dựng bảng thống kê tần số xuất ký tự cần mã hóa Mỗi phần tử đ ợc xem nh đỉnh Lặp lúc Chọn có trọng số bé ghép thành Từ đỉnh duyệt Nếu bên trái chọn bit Về phải chọn bit Đến dưy bit đư duyệt mã ký tự Xây d ng nhị phân HUFFMAN B1: Tạo N cây, có nút gốc, nút gốc chứa kí tự trọng số (tần suất ký tự đó) (N = số ký tự) B2: Lặp lại thao tác sau nhất: Ghép có trọng số gốc nhỏ thành nút cha, có tổng ký tự, tổng trọng số trọng số nút Xóa đư duyệt Điều chỉnh lại vi phạm tính chất Ví dụ: u điểm nh ợc điểm u điểm: Hệ số nén t ơng đối cao Ph ơng pháp thực t ơng đối đơn giản Địi hỏi nhớ Nh ợc điểm: Mất lần duyệt file nén Phải l u trữ thông tin giải mã vào file nén Phải xây dựng lại Huffman giải nén III Bài tập th c hành Đề: Vẽ nhị phân phân Huffman cho tập ký tự sau Ký tự Tuần suất A B C D E F G H F B E G A Lập bảng thông kê tần suất xuất Ký tự Tuần suất C H D Sau xếp theo thứ tự bắt đầu vẽ HUFFMAN Bên trái Bên phải Từ nhị phân ta có bảng mư HUFFMAN đếm từ gốc xuống Ký tự A B C D E F G H Mã Huffman 01 101 11110 1110 110 100 00 11111 Sau làm xong ta rút hệ là: Ký tự xuất chuỗi bit dài nh ký tự A xuất lần số bit có ký tự H xuất lần chuỗi bit có ký tự Đó u điểm Huffman, biến ký tự có số lần xuất nhiều chuỗi bit ngắn ký tự xuất với tần số chuỗi bit nhiều Do ta nén xuống giảm đ ợc độ chiếm không gian, nhiên với Huffman số tr ờng hợp sau nén xong khơng gian lại nhiều Ngồi cịn l u ý Cây nhị phân có 15 node đếm từ gốc xuống, nhị phân có ký tự Vậy ta có cơng thức: Số node = 2n-1 (với n số ký tự) ... phải ta đ ? ?c bit C? ? độ dài biến đổi (tối u bảng mã) C? ?c ký tự c? ? tần suất lớn c? ? độ dài ngắn C? ?c ký tự c? ? tần suất nhỏ c? ? độ dài dài Nén huffman không thông tin Nén không thông tin Dựa... nút chứa ký tự trọng số (tần suất ký tự đó) Mỗi ký tự đ ? ?c biểu di? ??n nút (tính tiền tố) Nút cha c? ? tổng ký tự, tổng trọng số nút C? ?c nút c? ? trọng số, ký tự tăng dần từ trái sang phải C? ?c nút c? ?... Vi? ?c mã hoá dựa ph ơng th? ?c mư hoá theo độ dài thay đổi bit cho ký tự C? ?ng nghệ nén c? ? đ ? ?c dựa sở gán mã ngắn cho ký tự c? ? tần suất xuất lớn Mư Để đảm bảo cho kết giải mã tiền tố mã kh? ?c Các