Phương pháp mã hóa Huffman

6 1.2K 17
Phương pháp mã hóa Huffman

Đang tải... (xem toàn văn)

Thông tin tài liệu

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ TRỌNG BÀI TIỂU LUẬN: MÃ NÉN DỮ LIỆU ( GIÁO TRÌNH TRUYỀN DỮ LIỆU ) LỚP: 12CĐ-ĐT3 NHÓM 10: Chí Ngọc Sơn Nguyễn Văn Phụng Thành phố HCM - Năm học 2014 I Mã vi phân ( Differential encoding) Còn gọi mã tương đối (Relative encoding) Trong nhiều trường hợp, liệu liên tiếp thay đổi Thí dụ trường hợp mã tín hiệu hình ảnh kỹ thuật video, phải xử lý 30 bán ảnh ( khung) giây để tạo ảnh động, tiết ảnh không khác bao nhiêu, thay phải nén tín hiệu khung người ta nghĩ tới việc xác định khác cac khung liên tiếp, mã thông tin gửi Nguyên tắc mã vi phân sau: khung thứ phát đồng thời lửu đệm máy phat1va2 thu Máy phát so sánh khung thứ hai với khung thứ , mã khác biệt phát dạng khung Máy thu nhận khung thứ hai, nhờ mã khác biệt mà so sánh với khung thứ (đã lưu trước đó) để tái tạo khung thứ hai, đồng thời lưu khung thứ hai retrong đệm trình tiếp tục với khung Ví dụ: 5762866356 657556 3247 84 68564885 5129865566 5529968951 Khung thứ 5762866356 657656 3237 84 68564885 5139865576 5529968951 Khung thứ nhì 0000000000 0 0 0 -1 0000000000 0010000010 0000000000 Khung phát sai biệt khung thứ nhì khung thứ 5762866356 658556 3337 84 68564885 5129765586 5529968951 Khung thứ ba 0000000000 0010000100 0000000000 0 0 -1 0 0000000000 Khung phát sai biệt khung thứ ba khung thứ nhì Dữ liệu gồm số nguyên biểu diễn khung chiều, chúng không mang ý nghĩa cụ thể Mục đích thí dụ để hiểu cách tạo mã Khung thứ chứa tập hợp số nguyên khung thứ hai chứa tập hợp số nguyên khác khung thứ nhật Trong hình, khung nằm khung thứ hai khung ba khung chứa mã vi phân, số khác biệt liệu khung, số liệu khung sau lớn khung trước đơn vị số -1 liệu khung sau bé khung trước Dĩ nhiên sử dụng số khác -1 Thí dụ cho ta thấy xuất chuỗi dài bit nén nhờ phương pháp Run length.2 Phương pháp mã hoá độ dài loạt (Run-Length Encoding) 2.1 Nguyên lý: Loại dư thừa đơn giản tập tin đường chạy dài gồm kí tự lặp lại, điều thường thấy tập tin đồ hoạ bitmap, vùng liệu tập tin chương trình, số tập tin văn 2.2 Ví dụ, xét chuỗi sau: AAAABBBAABBBBBCCCCCCCCDABCBAAABBBBCCCD (Chuỗi mã hoá cách cô đọng cách thay chuỗi kí tự lặp lại thể kí tự lặp lại với biến đếm số lần kí tự lặp lại Ta muốn nói chuỗi gồm bốn chữ A theo sau ba chữ B lại theo sau hai chữ A, lại theo sau năm chữ B Việc nén chuỗi theo phương pháp gọi mã hoá độ dài loạt Khi có loạt dài, việc tiết kiệm đáng kể Có nhiều cách để thực ý tưởng này, tuỳ thuộc vào đặc trưng ứng dụng Nếu ta biết chuỗi chứa chữ cái, ta mã hoá biến đếm cách đơn giản cách xen kẻ số với chữ Vì chuỗi kí tự mã hoá lại sau: 4A3BAA5B8CDABCB3A4B3CD (Ở "4A" có nghĩa "bốn chữ A" Chú ý không đáng để mã hoá loạt chạy có độ dài cần đến hai kí tự để mã hoá.) Ðối với tập tin nhị phân phiên tinh chế phương pháp dùng để thu tiết kiệm đáng kể Ý tưởng lưu lại độ dài loạt, tận dụng kiện loạt chạy thay đổi để tránh phải lưu số Ðiều giả định có vài loạt chạy ngắn (Ta tiết kiệm bit loạt chạy độ dài đường chạy lớn số bit cần để biễu diễn dạng nhị phân), khó có phương pháp mã hoá độ dài loạt hoạt động thật tốt hầu hết loạt chạy dài Việc mã hoá độ dài loạt cần đến biễu diễn riêng biệt cho tập tin cho mã hoá nó, dùng cho tập tin, điều hoàn toàn bất lợi, ví dụ, phương pháp nén tập tin kí tự đề nghị không dùng chuỗi kí tự có chứa số Nếu kí tự khác sử dụng để mã hoá số đếm, không làm việc với chuỗi chứa kí tự Giả sử ta phải mã hoá kí tự từ bảng chữ cố định cách dùng kí tự từ bảng chữ Ðể minh hoạ, giả sử ta phải mã hoá chuỗi từ chữ đó, ta giả định ta có 26 chữ bảng chữ (và khoảng trống) để làm việc Ðể dùng vài chữ để biểu diễn số kí tự khác biểu diễn phần tử chuỗi mã hoá, ta phải chọn kí tự gọi kí tự "Escape" Mỗi xuất kí tự báo hiệu hai chữ tạo thành cặp (số đếm, kí tự) với số đếm biểu diễn cách dùng kí tự thứ i bảng chữ để biểu diễn số i Vì vậy, chuỗi ví dụ biểu diễn sau với Q xem kí tự "Escape" QDABBBAABQHCDABCBAAAQDBCCCD Tổ hợp kí tự "Escape", số đếm kí tự lặp lại gọi dãy Escape Chú ý không đáng để mã hoá đường chạy có chiều dài bốn kí tự, cần đến ba kí tự để mã hoá loạt chạy Trong trường hợp thân kí tự "Escape" xuất dãy kí tự cần mã hoá ta sử dụng dãy "Escape" với số đếm (kí tự space) để biểu diễn kí tự "Escape" Như trường hợp kí tự "Escape" xuất nhiều làm cho tập tin nén phình to trước Các loạt chạy dài cắt để mã hoá nhiều dãy Escape, ví dụ, loạt chạy gồm 51 chữ A mã hoá QZAQYA cách dùng Phương pháp mã hoá độ dài loạt thường áp dụng cho tập tin đồ hoạ bitmap thường có mảng lớn màu biểu diễn dạng bitmap chuỗi bit có đường chạy dài Trên thực tế, dùng tập tin PCX, RLE Phương pháp mã hóa Huffman 3.1 Nguyên lý: Nguyên lý phương pháp Huffman mã hóa bytes tệp liệu nguồn biến nhị phân Nó tạo mã độ dài biến thiên tập hợp bits Đây phương pháp nén kiểu thống kê, ký tự xuất nhiều có mã ngắn 3.2 Thuật toán: Thuật toán nén: Bước 1: Tìm hai ký tự có trọng số nhỏ ghép lại thành một, trọng số ký tự tổng trọng số hai ký tự đem ghép Bước 2: Trong số lượng ký tự danh sách lớn thực bước một, không thực bước ba Bước 3: Tách ký tự cuối tạo nhị phân với quy ước bên trái mã 0, bên phải mã Thuật toán giải nén: Bước 1: Đọc bit tập tin nén duyệt nhị phân xác định hết Lấy ký tự ghi tệp giải nén Bước 2: Trong chưa hết tập tin nén thực bước một, ngược lại thực bước Bước 3: Kết thúc thuật toán Một số hạn chế mã Hufman: • • • • • Mã Huffman thực biết tần suất xuất ký tự Mã Huffman giải độ dư thừa phân bố ký tự Huffman tĩnh đòi hỏi phải xây dựng nhị phân sẵn chứa khả Điều đòi hỏi thời gian không ta trước kiểu liệu thực nén Quá trình giải nén phức tạp chiều dài mã trước ký tự tìm

Ngày đăng: 13/06/2016, 17:05

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan