Professional Documents
Culture Documents
Bài Báo Cáo Về Mã Hóa Huffman
Bài Báo Cáo Về Mã Hóa Huffman
Bài Báo Cáo Về Mã Hóa Huffman
Mã hòa Huffman
Mã Huffman là gì?
Mã Huffman là một loại mã tiền tố tối ưu cụ thể thường được sử dụng để nén dữ liệu không mất dữ
liệu.
Đầu ra từ thuật toán của Huffman có thể được xem như một bảng mã có độ dài thay đổi để mã hóa
một ký hiệu nguồn (chẳng hạn như một ký tự trong tệp). Thuật toán rút ra bảng này từ xác suất ước
tính hoặc tần suất xuất hiện ( trọng số ) cho mỗi giá trị có thể có của ký hiệu nguồn.
Đầu vào
Bảng chữ cái A=(a1,a2,…an), đó là bảng chữ cái biêu tượng về kích thước n.
Đầu ra
Mục tiêu
n
Cho phép L (C(W))=∑ wi length(c i) là độ dài đường dẫn có độ trọng số của mã C.
i=1
Kỹ thuật cơ bản
Nén
Kỹ thuật này hoạt động bằng cách tạo ra cây nhị phân gồm các nút. Chúng có thể được lưu trong một
mảng thông thường. Một nút có thể là nút là hoặc nút bên trong. Ban đầu, tất cả các nút dề là nút lá,
chứa bản thân ký hiệu, xác suất của biểu tượng và tùy chọn, liên kết đến nút cha giúp dẽ dàng đọc mã.
Các nút bên trong chứa một xác suất, các liên kết đến hai nút con và một liên kết tùy chọn đến một nút
cha. Theo quy ước chung, bit ‘0’ biểu thị thao sau con bên trái và bit ‘1’ biểu thị theo sau con bên phải.
Một cây thành phẩm có tới n nút lá và n-1 các nút bên trong. Cây huffman loại bỏ các ký hiệu không sử
dụng sẽ tạo ra độ dài mã tối ưu nhất.
Thuật toán xây dựng đơn giản nhất sư dụng hàng đợi ưu tiên trong đó nút có xác suất cao nhất:
1. Tạo một nút là cho mỗi biẻu tượng và thêm nó vào hàng đợi ưu tiên
- Xóa hai nút có mức độ ưu tiên cao nhất (xác suất thấp nhất) khỏi hàng đợi
- Tạo một nút bên trong mới với hai nút này là con và với xác suất bằng tổng xác suất của hai nút.
1. Bắt đầu với nút hiện tại được đặt thành gốc.
2. Nếu nút không phải là nút lá, hãy gắn nhãn cạnh con bên trái là 0 và cạnh cho con bên phải
là 1 . Lặp lại quy trình ở cả trẻ bên trái và trẻ bên phải.
Mã hóa cuối cùng của bất kỳ ký hiệu nào sau đó được đọc bằng cách ghép các nhãn trên các cạnh dọc
theo đường dẫn từ nút gốc đến ký hiệu.
Mã hóa Huffman động
Mã hóa Huffman thích ứng (còn gọi là mã hóa Huffman động ) là một kỹ thuật mã hóa thích ứng dựa trên mã
hóa Huffman . Nó cho phép xây dựng mã khi các ký hiệu đang được truyền đi, không có kiến thức ban đầu về
phân phối nguồn, cho phép mã hóa một lần và thích ứng với các điều kiện thay đổi trong dữ liệu. [1]
Lợi ích của thủ tục một lần là nguồn có thể được mã hóa trong thời gian thực, mặc dù nó trở nên nhạy cảm
hơn với các lỗi truyền dẫn, vì chỉ một mất mát duy nhất sẽ làm hỏng toàn bộ mã.