Phương pháp mã hóa độ dài loạtNguyên lý: - Tối ưu hoá mã bằng cách thay thế các chuỗi ký tự giống nhau liên tiếp.. • Ví dụ minh họa: -Cho chuỗi ABCCCCCCDDDEEEE Chuỗi kí tự sau khi được
Trang 1Nén dữ liệu
1
Trang 2Nén dữ liệu
Tổng quát
Phương pháp mã hóa độ dài loạt
Phương pháp mã hóa Huffman
Mã shannon- fanon
Mã vi phân
Phương pháp nén LZW
Trang 31.Tổng quát
Trong các lĩnh vực của công nghệ thông tin – viễn thông hiện nay, việc truyền tải tin tức đã là một công việc xảy ra thườn xuyên Tuy nhiên thông tin được truyền tải đi thường rất lớn, điều này gây khó khăn cho công tác truyền tin, gây tốn kém tài nguyên
mạng, tiêu phí khả năng của hệ thống… để giải quyết các vấn đề đó, các thuật toán nén dữ liệu đã được ra đời.
3
Nén dữ liệu là một quá trình giảm số lượng bit mà chúng ta biểu diễn
thông tin Mục đích là giảm lưu lượng thông tin truyền đi.
Trang 42 Phương pháp mã hóa độ dài loạt
Nguyên lý:
- Tối ưu hoá mã bằng cách thay thế các chuỗi ký tự giống nhau liên tiếp
Ứng dụng :
- Trong các loại ảnh BMP, TIFF Các điểm ảnh liên tiếp có giá trị như nhau sẽ được thay thế bằng một điểm ảnh và chỉ rõ số lượng điểm
Thuật toán:
- Tìm trong thông điệp những ký tự liên tiếp lặp lại
- Thay thế chuỗi ký tự đó bằng:
+ Một ký tự đặc biệt chỉ việc nén
+ Số lần lặp lại của ký tự
+ Ký tự lặp lại được nén
4
Trang 52 Phương pháp mã hóa độ dài loạt
Các đặc tính :
- Thuật toán đơn giản
- Tỷ lệ nén thấp
- Thích hợp với nén ảnh
• Ví dụ minh họa:
-Cho chuỗi ABCCCCCCDDDEEEE Chuỗi kí tự sau khi được mã hóa là :AB6C3D4E
- Nhận xét: Phương pháp mã hoá độ dài loạt thường được áp dụng cho các tập tin đồ hoạ bitmap vì ở đó thường có các mảng lớn cùng màu được biểu diễn dưới dạng bitmap là các chuỗi bit có đường chạy dài Trên thực tế, nó được dùng trong các tập tin PCX, RLE
5
Trang 63 Mã shannon- fanon
Nguyên lý:
- Các từ mã có độ dài biến thiên.
- Độ dài mã tỷ lệ nghịch với xác suất xuất hiện của ký tự.
- Từ mã được giải mã một cách duy nhất
Thuật toán:
6
- Xác định các tần suất, xác suất xuất hiện của các ký tự trong bản tin
Sắp xếp các ký tự theo trình tự tần suất xuất hiện giảm dần
Phân chia các ký tự thành hai nhóm có tổng xác suất xấp xỉ nhau (nếu dùng mã nhị phân thì phân
chia làm hai nhóm, nếu mã cơ số m thì chia làm m nhóm)
Trang 73 Mã shannon- fanon
7
Phần bên trái của danh sách được gán chữ số nhị phân 0, và phần bên phải được gán chữ số 1.
Tiếp tục phân chia cho tới khi trong các nhóm chỉ chứa một ký hiệu.
Từ mã cho ký hiệu là tổ hợp của các ký hiệu của các nhóm chứa ký hiệu tính theo thứ tự từ lần tạo
nhóm đầu tiên
Trang 83 Mã Shannon-fanon
8
Bảng xác suất của các ký tự
Kết quả mã hóa
Tỉ lệ nén
Trang 94 Phương pháp mã hóa Huffman
• Nguyên lý:
- Các từ mã có độ dài biến thiên.
- Độ dài mã tỷ lệ nghịch với xác suất xuất hiện của ký tự.
- Từ mã được giải mã một cách duy nhất
Thuật toán:
9
Xác định các tần suất, xác suất xuất hiện của các ký tự trong bản tin.
Sắp xếp các ký tự theo trình tự tần suất xuất hiện giảm dần.
- Các ký tự sẽ là các nút của cây Huffman
Trang 104 Phương pháp mã hóa Huffman
10
Mã hóa bắt đầu với hai ký tự có xác suất nhỏ nhất Hai ký tự được hợp lại , hai nhánh được gán ký
hiệu 0 hoặc 1
Nút của hai nhánh được coi là 1 ký hiệu mới có xác suất bằng tổng hai xác suất xuất hiện của hai ký
tự tạo ra nút
Tiếp tục quá trình trên với 2 nút có xác suất xuất hiện nhỏ nhất
Từ mã ứng với mỗi ký hiệu nguồn là tổ hợp của các ký hiệu mã ở các nhánh tính từ gốc
Trang 114 Phương pháp mã hóa Huffman
11
Xác suất theo thứ tự giảm dần
Kết quả
Tỉ lệ nén
Trang 125 Mã vi phân
• Trong nửa khoảng xác suất [0;1) ta chia ra các đoạn phân bố xác suất của các ký tự VD: ABCDEF$
12
Bảng phân bố xác suất
Trang 135 Mã vi phân
13
Trang 145 Mã vi phân
14
Quá trình mã hóa
Trang 156 Phương pháp nén LZW
• Từ Điển Mã Hóa LZW.
→Do kích thước bộ nhớ không phải vô hạn và để đảm bảo tốc độ tìm kiếm, từ điển chỉ giới hạn 4096 ở phần tử dùng để lưu lớn nhất là 4096 giá trị của các từ mã.
→ Cấu trúc từ điển như sau:
15
256 từ mã đầu tiên theo thứ tự từ 0…255 chứa các số nguyên từ 0…255 Đây là mã của 256 ký tự
cơ bản trong bảng mã ASCII.
Từ mã thứ 256 chứa một mã đặc biệt là “mã xoá” (CC- Clear Code).
Từ mã thứ 257 chứa mã kết thúc thông tin (EOI – End of information) Mã này có giá trị là 257.
Các từ mã còn lại (từ 258 đến 4095) chứa các mẫu thường lặp lại trong ảnh
Trang 166 Phương pháp nén LZW
Giá Trị Của Các Chuỗi Trong Từ Điển.
→Các từ mã từ 512 đến 1023 biểu diễn bởi 10 bit.
→Từ 1024 đến 2047 biểu diễn bởi 11 bit.
→Từ 2048 đến 4095 biểu diễn bởi 12 bit.
• Nguyên Tắc Mã Hóa LZW.
Một xâu kí tự là một tập hợp từ hai kí tự trở lên.
Nhớ tất cả các xâu kí tự đã gặp và gán cho nó một dấu hiệu (token) riêng.
Nếu lần sau gặp lại xâu kí tự đó, xâu kí tự sẽ được thay thế bằng dấu hiệu của nó.
16
Trang 176 Phương pháp nén LZW
Các bước thực hiện thuật toán.
17
LZW bắt đầu bởi 1 từ điển 256 kí tự (trong trường hợp sử dụng bảng mã 8 bits) và sử dụng chúng như tập kí tự chuẩn Sau đó mỗi lần đọc nó đọc 8 bits (ví dụ 't', 'r', ) và mã hóa thành con số
tương ứng với chỉ mục của kí tự đó trong từ điển
Mỗi khi LZW đi qua 1 chuỗi con mới (giả sử "tr") thì nó thêm chuỗi con đó vào từ điển
Mỗi khi nó đi qua 1 chuỗi con mà nó đã thấy trước đó, nó chỉ đọc thêm 1 kí tự mới nữa và cộng với chuỗi con đã biết để tạo ra 1 chuỗi con mới Lần tiếp theo LZW bắt gặp một chuỗi con đã có, nó chỉ
có việc sử dụng số chỉ mục tương ứng trong từ điển
Trang 186 Phương pháp nén LZW
Ví dụ: mã hóa chuỗi kí tự: !ABC!BAB!BCAB
18
Trang 19So sánh các phương pháp mã hóa
Loại dữ liệu ứng dụng.
Tỉ lệ nén.
Cách thức thực hiện mã hóa.
19