Lựa chọn giai đoạn GST

Một phần của tài liệu 27860 (Trang 55)

7. Ý nghĩa khoa học của đề tài

2.3.10.1. Lựa chọn giai đoạn GST

Do cấu trúc dãy đầu ra của giai đoạn AWFC và SIF rất khác nhau, nên không dễ để dự đoán giai đoạn GST nào là tốt hơn phù hợp với một file tương ứng để đạt được tỉ lệ nén tốt nhất . Có một đặc tính của giai đoạn SIF mà có thể được sử dụng trong ngữ cảnh này. Số lượng thông tin thêm vào cung với những dãy thành phần mà giai đoạn SIF cần để giải mã , như các tần số biểu tượng và các biểu tượng kết thúc tỉ lệ với |Ain| của dãy đầu vào. Vì |Ain| được giới hạn với 256, nên

n A

r | in| nhỏ hơn kích thước đầu vào n, có nghĩa là các file lớn hơn cần một tỉ lệ thông tin thêm vào nhỏ hơn các file nhỏ hơn. Như một kết quả, lược đồ SIF thường cho những kết quả tốt hơn trên các file lớn hơn.

Các kết quả của lược đồ SIF và lược đồ AWFC được cho thấy trong Bảng 2.12.

Bảng 2.12: Tỉ lệ nén theo bpc với lược đồ SIF và AWFC. Tỉ lệ nén tốt nhất với mỗi hàng được in đậm.

Các file book1, book2pic là các file lớn nhất, nên có được tỉ lệ nén tốt hơn khi được xử lý bởi lược đồ SIF , trong khi tất cả các file khác nén tốt hơn với lược đồ AWFC. Lý do khác tại sao lược đồ SIF là phù hợp hơn với các file lớn hơn là nó có tốc độ cao hơn so với lược đồ AWFC. Để đạt được tỉ lệ nén tốt nhất có thể, cài đặt cuối cùng sử dụng thuật toán GST hỗn hợp. Với các file nhỏ hơn, giai đoạn GST gồm có giai đoạn AWFC và được kết hợp với các giai đoạn RLE-BIT-0/1 và giai đoạn EC thích nghi đã được mô t ả ở trên. Các file lớn hơn sử dụng giai đoạn SIF cùng với giai đoạn RLE-EXP và giai đoạn EC như được mô tả ở trên. Mặc dù file news lớn hơn 256 KB, có được nén với AWFC tốt hơn SIF và các thực nghiệm trên corpora khác cho thấy rằng một ngưỡng TSIF=265 KB thông thường đạt được những kết quả tốt nhất. Tất cả các file nhỏ hơn TSIF được xử lý với lược đồ AWFC và các file lớn hơn hoặc bằng TSIF được xử lý với lược đồ SIF.

Hình 2.17. BWCA với giai đoạn GST hỗn hợp 2.3.10.2. So sánh tỉ lệ nén và thời gian nén

Trong bảng 2.13, các kết quả về tỉ lệ nén với Calgary Corpus được so sánh giữa các thuật toán đã được biết từ tài liệu và BWCA hỗn hợp đã được trình bày.

Bảng 2.13: Tỷ lệ nén với Calgary Corpus theo bpc

Các kết quả cho thấy rằng A 03 cung cấp tỉ lệ nén trung bình tốt nhất với tất cả các thuật toán dựa trên BWT . Một sự so sánh phải đưa vào tính toán như hầu hết các

phương pháp PPM và CTW cơ bản cần những tài nguyên tính toán c ao hơn. A03 cần thời gian nén nhiều gấp đôi so với GZIP 93 và gấp khoảng 5 thời gian giải nén so với GZIP93, nhưng ít hơn đáng kể so với các phương pháp PPM và CTW.

Thời gian thực hiện của các giai đoạn BWT, RLE, SIF, AWFC và EC rất khác nhau từ file đến file. Trong suốt quá trình nén , giai đoạn BWT và EC của A 03 cần thời gian trung bình như nhau . Giai đoạn IF của A 03 cần khoảng 50% thời gian của giai đoạn BWT/EC và giai đoạn WFC mất khoảng 100% nhiều thời gian trung bình hơn BWT/EC trong suốt quá trình nén. Trong quá trình giải nén giai đoạn BWT của A 03 trung bình nhanh hơn khoảng 10 lần giai đoạn EC. Tất cả quá trình kiểm tra được thực hiện trên một PC Windows 2000 với một bộ xử lý Pentium III 700 MHz.

Bảng 2.14 cho thấy thời gian nén và giải nén từ một chương trình nén phổ biến cung cấp miễn phí GZIP và từ phương pháp hỗn hợp đã được trình bày. Vì thế tốc độ có thể được so sánh gián tiếp với các chương trình nén trên các hệ thống hoạt động khác nhau, vì GZIP khả dụng trên hầu hết các hệ thống hoạt động.

Kết luận

Thuật toán nén Burrows-Wheeler với giai đoạn GST hỗn hợp đạt được tỉ lệ nén tốt kết hợp với tốc độ cao. Trong lĩnh vực này, các giai đoạn sau BWT đóng một vai trò quan trọng nhằm đạt được những kết quả tốt nhất có thể.

Ở đây đã trình bày một vị trí mới cho giai đoạn RLE cùng với các kỹ thuật RLE thích nghi. Kỹ thuật thứ nhất, được gọi là RLE-EXP dựa trên mã hóa chiều dài thay đổi của Maniscalco, sử dụng một run ngưỡng với chiều dài logarithmic và nén thông tin phần định trị (logarit) chiều dài run bên ngoài bộ đệm biểu tượng chuẩn trực tiếp với một bộ mã hóa entropy thích nghi. Kỹ thuật thứ hai được gọi là RLE-BIT là thuật toán RLE mới và loại bỏ tất cả các run từ bộ đệm biểu tượng trước giai đoạn GST và các mã thông tin chiều dài run trở lại bộ đệm sau giai đoạn GST bằng cách sử dụng hai biểu tượng escape.

Một phiên bản được cải tiến của thuật toán IF gọi là SIF. SIF thực hiện việc sắp xếp hoán vị của bảng chữ cái đầu vào theo thứ tự tăng dần hoặc theo thứ tự giảm dần phụ thuộc vào phân phối biểu tượng. Hoán vị này cùng với mô hình EC thích nghi giúp nâng cấp tỉ lệ nén và gia tăng khả năng thực hiện.

Một biến thể của thuật toán WFC được gọi là AWFC, cải tiến nén bằng cách sử dụng nhiều mức logarithmic hơn cài đặt gốc và bằng cách sử dụng một lược đồ tính toán với các trọng số phụ thuộc vào phân phối biểu tượng. Cùng với một hình EC đặc biệt đã đạt được tỷ lệ nén tốt hơn so với cài đặt gốc.

Các giai đoạn SIF và AWFC được kết hợp trong một lược đồ hỗn hợp , giai đoạn SIF với giai đoạn RLE -EXP và giai đoạn AWFC với các giai đoạn RLE -BIT. Các file nhỏ hơn 256 KB được xử lý bởi lược đồ AWFC và các file lớn hơn hoặc bằng 256 KB được xử lý bởi lược đồ SIF.

Lược đồ hỗn hợp này đạt được tỉ lệ nén với Calgary Corpus là 2.238 bps. Tốc độ nén đạt được bằng khoảng 45% tốc độ của GZIP và tốc độ giải nén đạt được bằng khoảng 20% tốc độ của GZIP.

Input data Data Compression Data Compression Data DeCompression

CHƢƠNG 3: CÀI ĐẶT THỬ NGHIỆM

Trong chương 3 này, luận văn sẽ tìm hiểu về kỹ thuật nén số học kết hợp với BWT và MTF. 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. So sánh kết quả nén của thuật toán nén số học kết hợp với BWT và MTF với thuật toán nén số học thông thường.

3.1. Sơ đồ nén số học kết hợp với BWT và MTF

3.1.1. Thuật toán nén

- Giai đoạn BWT: Cho một văn bản bình thường, biến nó thành một file văn bản khác mà chứa nhiều các xâu gồm các biểu tượng giống nhau hoặc gần kề nhau. Đầu ra là BWT đã chuyển đổi. Đó cũng là dữ liệu vào của giai đoạn MTF

- Giai đoạn MTF: Biến đầu ra BWT thành một file khác mà ở đó các ký tự thứ hai và liên tiếp trong bất kỳ các run nào cũng được chuyển đổi thành 0.

- Giai đoạn EC: Sử dụng một trong hai mã: Mã Huffman hoặc mã số học để nén chuỗi đầu ra MTF thành một chuỗi gọn hơn.

3.1.2. Thuật toán giải nén

- Giải nén theo số học hoặc theo Huffman thành thành xâu trước khi nén, đó chính là xâu MTF thuận

- Chuyển đổi xâu đã được chuyển đổi nhờ MTF thành xâu được chuyển đổi thành nhờ BWT .

Move To – Front Transform

(MTFT)

BWT thuận MTF thuận EndCoding

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

Một phần của tài liệu 27860 (Trang 55)

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

(65 trang)