Thuật toán RLE-EXP

Một phần của tài liệu Kỹ thuật nén dữ liệu burrow wheeler và các cải tiến (Trang 46 - 47)

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

2.3.7.3.Thuật toán RLE-EXP

Vì biểu tượng escape c khác với biểu tượng run s, c phá vỡ ngữ cảnh biểu tượng cục bộ. Vì vậy, cách sử dụng run ngưỡng thay cho biểu tượng escape thường làm cho cài đặt BWCA đạt được kết quả tốt hơn [Maniscalco, 2001]. Thuật toán RLE- EXP sau đây dựa trên một run ngưỡng. Run ngưỡng gồm hai phần: Một run chiều dài cố định có kích thước t và một run chiều dài thay đổi kích thước e. Cả hai run chứa các dãy của s. Kích thước e được định nghĩa bởi công thức sau:

e=log2(L-1).

Run chiều dài thay đổi chứa thông tin của logarithm gồm chiều dài L, run này giống hệt với chiều dài của biểu diễn nhị phân Ba. Ba sẽ phá vỡ ngữ cảnh biểu tượng cục bộ nếu đặt sau run ngưỡng. Vì vậy, Ba được đặt như dãy bit trong luồng dữ liệu riêng biệt được gọi là RLE Mantissa Buffer (RMB). Trong suốt quá trình giải mã, thuật toán đầu tiên giải mã e và sau đó đọc Ba từ RMB. Dữ liệu của RMB sẽ không được xử lý bởi giai đoạn GST nhưng được mã hóa trực tiếp trong giai đoạn EC. Vì vậy thuật toán RLE-EXP thay thế mỗi run chiều dài l bằng run chiều dài t+e và dãy bit Ba trong RMB, dãy này được xử lý riêng biệt. Đặc biệt là những run dài được mã

hóa rất hiệu quả bởi cấu trúc logarithmic. Vì vậy áp suất của các run được làm mất trước giai đoạn GST, có thể loại bỏ giai đoạn RLE0 trước giai đoạn EC. Toàn bộ thuật toán được trình bày trong Hình 2.15.

Hình 2.15: Thuật toán RLE-EXP

Bảng 2.7 biểu diễn một số ví dụ của các run ngưỡng với t=2. Thuật toán RLE- EXP làm việc đặc biệt tốt với thuật toán IF.

Bảng 2.7: Các run ngưỡng với t=2

Một phần của tài liệu Kỹ thuật nén dữ liệu burrow wheeler và các cải tiến (Trang 46 - 47)