Tải bản đầy đủ (.pdf) (8 trang)

Trng di hc thong tin lien lc khoa c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (610.37 KB, 8 trang )

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 2
GVHD: Đại úy, Ths. Nguyễn Trung Hiếu

Khánh Hòa, ngày 25 tháng 12 năm 2017


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 2
(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ánh Hòa, ngày 25 tháng 12 năm 2017



I.

Giới thiệu mã hóa HUFFMAN

 Mã hóa Huffman (David A. Huffman)là một thuật toán mã hóa dùng để nén
dữ liệu.
 Nén Huffman là một trong những phương pháp nén phổ biến. Việc mã hoá
này dựa trên phương thức mã hoá theo độ dài thay đổi của các bit cho từng
ký tự.
 Công nghệ nén này có được là dựa trên cơ sở gán các mã ngắn hơn cho các
ký tự có tần suất xuất hiện lớn hơn.
 Mã là Để đảm bảo cho kết quả giải duy nhất nếu không có mã nào là tiền tố
của mã khác. Các ký tự được lưu dưới dạng tần xuất xuất hiện của chúng.
 Số lượng các Bit của các ký tự được mã hoá là khác nhau. Ký tự có tần xuất
xuất hiện lớn nhất được mã hoá bằng số bit ngắn nhất.
Để xác định được bảng mã Huffman, chúng ta đi xây dựng cây nhị phân.

II.






Giới thiệu cây nhị phân HUFFMAN.
Là cây nhị phân, mỗi nút chứa ký tự và trọng số (tần suất của ký tự đó).
Mỗi ký tự được biểu diễn bằng 1 nút lá (tính tiền tố).
Nút cha có tổng ký tự, tổng trọng số của 2 nút con.
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 hơn.

1. Nén với mã HUFFMAN
 Mã Huffman
 Là chuỗi nhị phân được sinh ra dựa trên cây Huffman.
 Mã Huffman của ký tự là đường dẫn từ nút gốc đến nút lá đó.
 Sang trái ta được bit 0
 Sang phải ta được bit 1
 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 hơn.
 Nén huffman không mất thông tin


 Nén không mất thông tin.
 Dựa trên thống kê tần số: những ký tự xuất hiện nhiều lần, sử dụng ký
mã mới ít bit hơn.
 Thuật toán hiệu quả sử dụng: nén jpg, …
 Ý tưởng:
 Xây dựng bộ mã huffman.
 Đọc ký tự, chuyển sang dãy bit mới.
 Gửi đến nơi nhận.q
 Đọc dãy bit, nhận dạng ký tự chuyển về ký tự cũ.

2. Xây dựng mã HUFFMAN
 Ý tưởng:
 Xây dựng bảng thống kê tần số xuất hiện của các ký tự cần mã hóa .
 Mỗi phần tử được xem như là đỉnh của một cây.
 Lặp cho đến lúc chỉ còn một cây
 Chọn 2 cây có trọng số bé nhất ghép thành một cây mới

 Từ đỉnh duyệt cây
 Nếu về bên trái chọn bit 0
 Về phải chọn bit 1
 Đến lá thì dãy bit đã duyệt chính là mã mới của ký tự

3. Xây dựng cây nhị phân HUFFMAN.
B1: Tạo N cây, mỗi cây chỉ có một nút gốc, mỗi nút gốc chỉ chứa một kí tự và
trọng số (tần suất của ký tự đó). (N = số ký tự)
B2: Lặp lại thao tác sau cho đến khi chỉ còn 1 cây duy nhất:
 Ghép 2 cây con có trọng số gốc nhỏ nhất thành 1 nút cha, có tổng ký tự,
tổng trọng số trọng số của 2 nút con.
 Xóa các cây đã duyệt.
 Điều chỉnh lại cây nếu vi phạm tính chất.


Ví dụ:


4. Ưu điểm và nhược điểm.
 Ưu điểm:
 Hệ số nén tương đối cao.
 Phương pháp thực hiện tương đối đơn giản.
 Đòi hỏi ít bộ nhớ.
 Nhược điểm:
 Mất 2 lần duyệt file khi 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 cây Huffman khi giải nén.

III. Bài tập thực hành
Đề: Vẽ cây nhị phân phân Huffman cho tập ký tự sau

Ký tự
Tuần suất

A
8

B
5

C
1

D
3

E
5

F
4

G
7

H
2

F
4


B
5

E
5

G
7

A
8

Lập bảng thông kê tần suất xuất hiện
Ký tự
Tuần suất

C
1

H
2

D
3


Sau khi sắp xếp theo thứ tự thì bắt đầu vẽ cây HUFFMAN
Bên trái 0
Bên phải 1


Từ cây 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 khi làm xong ta có thể rút ra một hệ quả là:
 Ký tự nào xuất hiện càng ít thì chuỗi bit càng dài như ký tự A xuất hiện 8 lần
thì số bit chỉ có 2 và ký tự H xuất hiện 2 lần thì chuỗi bit có 5 ký tự.
 Đó chính là ưu điểm của Huffman, nó sẽ biến 1 ký tự có số lần xuất hiện
nhiều nhất bằng 1 chuỗi bit ngắn nhất và ký tự nào xuất hiện với tần số ít
nhất bằng chuỗi bit nhiều nhất.
 Do đó khi ta nén xuống thì sẽ giảm được độ chiếm không gian, tuy nhiên với
Huffman một số trường hợp sau khi nén xong thì không gian lại nhiều hơn.

Ngoài ra còn lưu ý.
Cây nhị phân này có 15 node đếm từ gốc xuống, và cây nhị phân này có 8 ký tự.
Vậy ta có công thức:
Số node = 2n-1 (với n là số ký tự).



×