7. Ý nghĩa khoa học của đề tài
3.2. Cài đặt thử nghiệm
Trong phần này, chúng ta sẽ cài đặt chương trình trên ngôn ngữ DevC++ xây dựng chương trình thử nghiệm áp dụng thuật toán nén số học kết hợp với BWT và MTF.
Chương trình bao gồm một số modul chính sau đây: - Đọc một xâu đầu vào.
- Nén số học - Giải nén số học.
- Chuyển đổi BWT thuận - Chuyển đổi BWT nghịch - Chuyển đổi MTF thuận - Chuyển đổi MTF nghịch - Đo kích thước file
- So sánh file (nén và giải nén, nén theo số học và nén theo MTF, BWT kết hợp với số học)...
3.3. Nhận xét
Thuật toán nén Burrows Wheeler kết hợp với chuyển đổi Move To Front và nén số học cho tỉ lệ nén là rất cao. Trong lĩnh vực này, giai đoạn BWT đóng một vai trò quan trọng trong thuật toán nén nhằm đạt được những kết quả tốt nhất có thể . Chuyển đổi Burrows Wheeler làm cho nhiều ký tự trong văn bản được chuyển đổi xuất hiện trong các run (xâu gồm các biểu tượng giống nhau), hoặc rất gần với sự xuất hiện trước đó. Bước tiếp theo là sử dụng chuyển đổi Move To Front để chuyển đổi các ký tự thứ 2 và liên tiếp trong bất kỳ run nào được chuyển đổi thành 0. Như vậy, giai đoạn MTF sau BWT có xu hướng tăng dần tần số các biểu tượng giá trị thấp trong một khối. Điều này rất hữu ích để cải thiện việc nén dữ liệu bằng mã số học hoặc Huffman. Thấy rằng, kích thước file càng lớn thì tỉ lệ nén file càng cao bởi BWT không giống như các phương pháp nén dữ liệu khác là xử lí văn bản theo từng kí tự một. Ở đây, BWT thường đọc một khối văn bản (thường là hàng chục KB) và sau đó chuyển đổi nó để nén.
Tuy nhiên, dễ thấy rằng việc quay vòng và sắp xếp xâu được quay vòng trong chuyển đổi BWT là rất mất thời gian (mặc dù đã dùng một thuật toán sắp xếp hiệu quả như QuickSort) vì trong thực tế các file văn bản chứa cả triệu kí tự.
Chính vì vậy, kết quả của việc nén dữ liệu sử dụng BWT cho tỉ lệ nén cực kỳ cao nhưng thời gian nén và giải nén file sau khi nén lại chậm (tốn thời gian) so với kỹ thuật nén dữ liệu thông thường theo phương pháp nén số học hoặc Huffman.
KẾT LUẬN VÀ DỰ KIẾN
Kết quả của đề tài đã làm được là: Tìm hiểu thuật thuật toán nén dữ liệu Burrows Wheeler và các cải tiến của dữ liệu Burrows Wheeler. Từ đó cài đặt thử nghiệm chương trình nén dữ liệu dựa trên chuyển đổi BWT kết hợp với MTF và nén số học, sử dụng Quicksort để thực hiện việc chuyển đổi BWT.
Tác giả rút ra một nhận xét rằng: Không có giải pháp nào phù hợp cho tất cả các vấn đề nén dữ liệu. Theo các nghiên cứu về nén dữ liệu, ta chú ý phải phân tích các đặc tính của dữ liệu đã được nén và hy vọng đưa ra một số mô hình để đạt được sự biểu diễn ngắn gọn hơn. Điều này làm gia tăng sự đa dạng của mô hình dữ liệu và những kỹ thuật biểu diễn, đó là điểm quan trọng của kỹ thuật nén.
Đề tài dự kiến sẽ nghiên cứu tiếp về các kỹ thuật nén dữ liệu không tổn hao trên các dữ liệu audio, video...vv.
Do hạn chế về thời gian, cũng như kinh nghiệm thực tiễn của bản thân chưa nhiều về lĩnh vực nén dữ liệu nên không tránh khỏi những thiếu sót. Sự chỉ bảo, đóng góp ý kiến của quý thầy cô cùng các bạn đồng môn là vô cùng quý báu giúp em có bản luận văn thêm hoàn thiện và nhất là trang bị cho em một kiến thức vững vàng hơn trong nghiên cứu và công tác chuyên môn sau này.
TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt
[1] Thanh Bình. ”Cơ bản về nén dữ liệu”.
[2] Đặng Văn Chuyết, Nguyễn Tuấn Anh, “Cơ sở lý thuyết truyền tin” – Tập 1 và 2, Nhà xuât bản Giáo dục, 1998.
[3] Vũ Vinh Quang, Nguyễn Đình Dũng, Nguyễn Hiền Trinh, Dương Thị Mai , ”Giáo trình lý thuyết thông tin”, Thái Nguyên, 2010.
Tài liệu Tiếng Anh
[4] M. Burrows and David Wheeler. A block sorting lossless data compression alogrithm. Technical Report 124, Digital Equipment Corporation, 1994.
[5] S. Deorowicz. Second step alogrithm. Software Practice and Experience, 32(2):99 – 111, 2002.
[6] P. Fenwick. The Burrows – Wheeler transform for block sorting text compression: Principles and improvement. The Computer Journal, 39(9) – 740, 1996.
[7] Gmanzini. An analysis of the Burrows Wheeler transform. Journal of the ACM, 48 (3) :407-430, 2001.
[8] A. Wirth and A. Mo®at. Can we do without ranks in Burrows-Wheeler transform compression? In Proc.IEEE Data Compression Conference, pages 419-428, 2001 [9] Bernhard Balkenhol and Stefan Kurtz. Universal Data Compression Based on the
Burrows and Wheeler-Transformation: Theory and Practice. Sonderforschungs- bereich: Diskrete Strukturen in der Mathematik 98-069, Universitat Bielefeld, 1998. To appear in IEEE Transactions on Computers.
http://www.mathematik.uni-bielefeld.de/~bernhard/.
[10] Bernhard Balkenhol, Stefan Kurtz, and Yuri M. Shtarkov. Modifications of the Burrows and Wheeler Data Compression Algorithm. Proc. Data Compression Conf., pages 188–197, 1999.
http://www.mathematik.uni-bielefeld.de/~bernhard/
[11] M. Burrows and D. J. Wheeler. A Block–sorting Lossless Data Compression Algorithm. SRC Research Report 124, Digital Systems Research Center, Palo Alto, CA, May 1994. http://gatekeeper.dec.com/pub/DEC/SRC/research- reports/abstracts/src-rr-124.html.
[12] Brenton Chapin and Stephen R. Tate. Higher Compression from the Burrows- Wheeler Transform by Modified Sorting. Proc. Data Compression Conf., page551, 1998
[13] Michelle Effros. PPM Performance with BWT Complexity: A new method for lossless data compression. Proc. Data Compression Conf., pages 203–212, 2000 [14] Giovanni Manzini. An Analysis of the Burrows-Wheeler Transform. Proc. 10th
ACM-SIAM Symposium on Discrete Algorithms, pages 669–677, 1999. http://www.acm.org/pubs/citations/proceedings/ soda/314500/p669-manzini/ also www.mfn.unipmn.it/~manzini/math/manzini0.htm