Phương pháp mã hóa độ dài loạt -Cho chuỗi ABBBBBBCCCCCCDDDEEEE Chuỗi kí tự sau khi được mã hóa là :1A6B6C3D4E... - Độ dài mã tỷ lệ nghịch với xác suất xuất hiện của ký tự.. - Từ mã được
Trang 1Trường ĐH Điện Lực
Khoa : ĐTVT
Bài thuyết trình môn: Kĩ thuật truyền số liệu
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 Tổng kết
Trang 31.Tổng quát
Trang 4Định nghĩa nén dữ liệu
Nén là quá trình làm giảm số lượng bit cần biểu diễn thông tin truyền đi ở mức
độ chấp nhận được.
Mục đích của việc nén dữ liệu
Lưu trữ dữ liệu được nhiều hơn.
Tiết kiệm được vùng nhớ
Giảm chi phí lưu trữ
Mang lại hiệu quả cho việc truyền dữ liệu trên mạng
Trang 52 Phương pháp mã hóa độ dài loạt
Trang 6Phương pháp mã hóa độ dài loạt
-Cho chuỗi ABBBBBBCCCCCCDDDEEEE
Chuỗi kí tự sau khi được mã hóa là :1A6B6C3D4E
Trang 73 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:
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 8Phương pháp mã hóa Huffman
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 9Phương pháp mã hóa Huffman
Xác suất của các kí tự
Kí tự sau khi mã hóa
Tỉ lệ nén:
Trang 104 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:
- 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 11Mã shannon- fanon
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 12Mã shannon- fanon
Xác suất của mỗi kí tự
Kí tự sau khi mã hóa
Tỉ lệ nén
Trang 135 Mã vi phân
Nguyên tắc của mã vi phân như sau:
Khung thứ nhất được phát đi đồng thời ở bộ đệm của máy thu Máy thu sẽ so sánh khung thứ 2 với khung thứ nhất, mã sự khác biệt và phát đi dưới dạng một khung Máy thu khi nhân khung thứ 2, nhờ các mã chỉ sự khác biệt mà so sánh với khung thứ nhất( đã lưu trước đó) để tạo khung thứ 2, đồng thời nó lưu khung thứ 2 này
trong bộ đệm và quá trình tiếp tục với các khung mới.
Ứng dụng:
Tạo ra các hình ảnh động
Trang 14Mã vi phân
5762866356 6575563247 8468564885 5129865566 552968951
56728662356 6576563237 8468564885 5139865576 5529968951
56728662356 6585563347 8468564885 5129765586 552968951
Khung thứ 1 Khung thứ 2 Khung thứ 3
0000000000 00010000-10 0000000000 0000000010 0000000000
0000000000 0010000100 0000000000 0000-100010 0000000000
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:
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.
Trang 16Phươ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ó.
Trang 17Phương pháp nén LZW
Các bước thực hiện thuật toán.
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 18Phương pháp nén LZW
Trang 19Phương pháp nén LZW
Trang 20• Đối với Huffman
Có tỉ lệ nén cao hơn Shan-non
Từ mã nào có tần số xuất hiện nhiều nhất thì sẽ được mã hóa bằng số bít thấp nhât.
Trang 21Tổng kết
Những hạn chế của 2 ma shan-non và Huffman
• Trong quá trình nén cần đến 2 lần duyệt file dẫn đến chi phí nén cao
• Cần phải lưu trữ thông tin để giải nén dẫn đến là việc tăng kích thước
dữ liệu nén
• Dữ liệu nén cần phải có sẵn.