Mã hoá Run Length

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 43 - 44)

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

2.3.6.Mã hoá Run Length

RLE là một thuật toán nén dữ liệu đơn giản và phổ biến. Dãy có chiều dài l của biểu tượng lặp đi lặp lại s được thay thế bởi một dãy ngắn hơn, thường chứa một hay nhiều hơn những biểu tượng s, thông tin chiều dài và đôi khi một biểu tượng escape c. RLE hiệu quả hơn khi dãy chứa nhiều dữ liệu lặp lại. Ý tưởng chính của RLE là để tính các run được lặp lại trong dữ liệu đầu vào và thay thế các biểu tượng với số lần lặp khác nhau. Ví dụ, dãy các biểu tượng của dữ liệu đầu vào L = NNNNBBBBAAA, biểu tượng “N” được lặp lại bốn lần, biểu tượng “B” lặp lại bốn lần, biểu tượng “A” được lặp lại ba lần. Các giá trị có thể được biểu diễn như (N,4), (B,4),(A,3)

Khi đó bộ mã hóa được là: N4B4A3

Giải mã run-length, biểu tượng đầu tiên của bảng mã hóa được biết bởi giá trị của biểu tượng, biểu tượng thứ hai là lần lặp của một giá trị.

Bộ giải mã: NNNNXXXXXXX

Trong khi giải mã đến hết giá trị, đầu ra của bộ mã hóa là: Dữ liệu đầu ra: NNNNBBBBAAA

Mã hóa RLE sẽ nén các biểu tượng của dãy hiệu quả với các run chứa các biểu tượng lớn hơn hoặc bằng 3. Nhưng nếu các lần lặp của các run là nhỏ hơn 2, điều đó không giảm tỉ lệ nén của dãy.

Dữ liệu đầu vào: NNBAAA Bộ mã hóa: N2B1A3

Trong một số cách tiếp cận B WCA, giai đoạn RLE được sử dụng trước BWT hoặc trước giai đoạn EC . Hầu hết những cài đặt BWT sử dụng RLE trước giai đoạn EC vì đầu ra GST chứa nhiều run dài những số 0, Balkenhol và Shtarkov đặt tên cho hiện tượng này là “áp suất của run” . Giai đoạn RLE làm giảm áp suất này . Một kiểu RLE phổ biến cho máy nén dựa trên BWT là chuyển đổi run_0 (RLE0) từ Wheeler [Fenwick, 1996] được thể hiện trong hình 2.13.

Hình 2.13: Thuật toán nén Burrows-Wheeler sử dụng giai đoạn RLE0

Để giải thích các mô hình hoạt động của các giai đoạn khác nhau, hình 2.14(a)- 2.14(e) cho thấy dữ liệu được chuyển đổi của xâu đầu vào

abracadabraabracadabra” trong hệ 16. Dữ liệu đầu vào của giai đoạn BWT được hiển thị trong hình 2.14(a). Như có thể thấy trong hình 2.14(b) dữ liệu đầu ra của BWT chứa nhiều dãy những biểu tượng lặp lại và có cấu trúc cục bộ , tức là những biểu tượng với cùng ngữ cảnh tạo thành các đoạn nhỏ. Trong ví này giai đoạn GST là MTF được sử dụng để chuyển đổi cấu trúc cục bộ của đầu vào BWT sang cấu trúc tổng thể bằng cách sử dụng lược đồ xếp hạng theo những biểu tượng vừa mới xảy ra sau cùng và đưa ra dãy những số 0 liên tiếp như được hiển thị trong hình 2.14(c). Giai đoạn RLE0 loại bỏ các run_0 trong hình 2.14(d) và giai đoạn EC cuối cùng đưa ra đầu ra bit bằng cách sử dụng lược đồ mã hóa số học trong hình 2.14(e).

Hình 2.14: Dữ liệu được chuyển đổi của xâu đầu vào ”abracadabraabracadabra” với các giai đoạn khác nhau

2.3.7. Các cải tiến với mã hóa RLE

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 43 - 44)