Mô phỏng thuật toán

Một phần của tài liệu DA3 data compression (text compression) vo quoc hung (Trang 32)

III. Kết quả và chương trình mô phỏng một số thuật toán nén

3.2. Mô phỏng thuật toán

3.2.1. Thuật toán Huffman

3.2.1.1. Lưu đồ thuật toán Huffman

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 33

3.2.1.2. Kết quả chương trình

Ví dụ: Thực hiện nén đoạn văn bản đầu vào:

“Thuat toan nen Huffman”.

(1)

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 34 (3)

Hình 3.2: Kết quả nén Huffman với đoạn văn bản

Nhìn vào kết quả ta thấy:

- Đoạn văn bản có độ dài: 22 x 5 = 110 bits.

- Sau khi mã hóa, độ dài đoạn văn bản còn: 76 bits.  Tỷ lệ nén = 76/110 x 100 % = 69 %.

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 35

3.2.2. Thuật toán LZW

3.2.2.1. Lưu đồ thuật toán LZW

Hình 3.3: Lưu đồ thuật toán LZW 3.2.2.2. Kết quả chương trình

Đầu vào là đoạn văn bản: “TOBEORNOTTOBEORTOBEORNOT”.

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 36 (2)

(3)

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 37  Mã hóa:

Hình 3.5: Thuật toán LZW - Quá trình mã hóa

Kết quả cho thấy:

- Đoạn văn bản có độ dài: 25 x 5 bits = 125 bits.

- Sau khi mã hóa, đoạn mã chỉ còn: 6 x 5 bits + 11 x 6 bits = 96 bits.  Tỷ lệ nén = (96/125) x 100% = 76.8%.

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 38  Giải mã:

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 39

KẾT LUẬN

Với phạm vi tìm hiểu về nén dữ liệu, đặc biệt là nén văn bản, cùng với việc chạy mô phỏng một vài thuật toán (Huffman, LZW…) em đã phần nào nắm được nội dung các thuật toán, chứng tỏ được các ưu nhược điểm đã nêu ở trên là khá đúng đắn. Trong quá trình làm, có những mặt em đã làm được và chưa làm được:

 Đã làm được:

 Tìm hiểu được một cách tổng quan các kiến thức, khái niệm liên quan đến nén dữ liệu.

 Mô phỏng thành công hai thuật toán nén Huffman và LZW bằng chương trình sử dụng ngôn ngữ C#.

 Đưa ra tỉ lệ nén của từng loại, chứng tỏ tính đúng đắn của các kết luận mà phần lý thuyết đã nêu.

 Hạn chế:

 Chưa thực hiện được việc với các file text lớn hơn hoặc mã tiếng Việt (có dấu), cũng như các ký tự đặc biệt.

 Chưa thực hiện được việc so sánh một cách trực quan tất cả các loại mã nén hiện nay.

 Chưa thực hiện được nén folder (1 folder chứa nhiều file).  Hướng phát triển đề tài:

Trong thời gian thực hiện Đồ án III theo quy định, em đã thực hiện được các công việc nêu trên và vẫn còn nhiều hạn chế. Tuy nhiên, em sẽ cố gắng hoàn thành trong thời gian tới như xây dựng được một chương trình mô phỏng có giao diện đơn giản, nén dữ liệu với file dầ vào là một file text (*.txt), nén dữ liệu với folder…

Sinh viên thực hiện: Võ Quốc Hưng - 20102679 40

TÀI LIỆU THAM KHẢO

1. http://en.wikipedia.org/wiki/Lempel-Ziv-Welch 2. http://snipd.net/huffman-coding-in-c 3. http://diendan.congdongcviet.com/threads/t2381::thuat-toan-nen-du-lieu-ly- thuyet-nen-du-lieu-huffman-phan-1-y-tuong.cpp 4. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.6585&rep=rep1 &type=pdf 5. http://doc.edu.vn/tai-lieu/de-tai-ma-hoa-lzwlempel-ziv-wech-4550/

Một phần của tài liệu DA3 data compression (text compression) vo quoc hung (Trang 32)

Tải bản đầy đủ (PDF)

(40 trang)