Mã hóa MTF với các biểu tượng là tập hợp các số nguyên

Một phần của tài liệu 27864 (Trang 56 - 58)

Sau khi đã xem xét mã hóa cho một tập hợp các biểu tượng trong bảng chữ cái. Chúng ta xem xét các trường hợp cụ thể mà bảng chữ cái là một tập hợp các số nguyên.

Giả sử ta cho một chuỗi các biểu tượng, với mỗi biểu tượng đến từ một bảng chữ cái {A1, . . . , AN}. Thuật toán MTF duy trì một danh sách những biểu tượng của N trong bảng chữ cái. Đối với mỗi biểu tượng trong trình tự, mã hóa vị trí của biểu tượng này trong danh sách và sau đó thay đổi danh sách bằng cách di chuyển các biểu tượng mặt trước của danh sách.

Ví dụ: Giả sử N = 6. Khởi tạo danh sách các biểu tượng là [A1, A2, A3, A4, A5, A6].

Giả sử ví dụ chuỗi dữ liệu được mã hóa bắt đầu giảm A3A4A1A2A2A6A2 . . . Thuật toán MTF thực hiện như sau:

Encode C(3) C(4) C(3) C(4) C(1) C(6) C(2) :

updated list of symbols [A1, A2, A3, A4, A5, A6] [A3, A1, A2, A4, A5, A6] [A4, A3, A1, A2, A5, A6] [A1, A4, A3, A2, A5, A6] [A2, A1, A4, A3, A5, A6] [A2, A1, A4, A3, A5, A6] [A6, A2, A1, A4, A3, A5] [A2, A6, A1, A4, A3, A5] :

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

51

Như vậy, bộ mã hóa viết xuống hoặc gửi chuỗi các codewords: C(3) C(4) C(3) C(4) C(1) C(6) C(2) . . .

Để có một bộ giải mã có thể phục hồi dữ liệu ban đầu từ chuỗi các codewords ta thực hiện việc giải mã các bộ mã hóa. Bằng cách duy trì một danh sách những biểu tượng của N, khởi tạo danh sách theo thứ tự như bộ mã hóa khởi tạo danh sách của nó. Sau đó, với mỗi từ mã C(i) nó sẽ đọc, nhìn vào biểu tượng tại vị trí i trong danh sách hiện tại của biểu tượng N. Đây là biểu tượng đã được mã hóa. Để tiếp tục, nó di chuyển các biểu tượng mặt trước của danh sách.

Bằng cách sử dụng codewords C(i) ngắn hơn cho vị trí i gần mặt trước của danh sách, tức là λ1≤ λ2≤ λ3≤. . .

Chúng ta sử dụng codewords ngắn hơn cho các biểu tượng xảy ra thường xuyên.

MTF thực hiện tốt nhất khi chúng ta có một biểu tượng được lặp đi lặp lại. Ví dụ như: . . . A3A3A3A3A3A3 . . .

Lần đầu tiên A3 xảy ra theo thứ tự này, chúng ta cần để mã hóa vị trí của nó trong danh sách, nhưng mỗi lần tiếp theo, nó đã được ở mặt trước của danh sách và do đó, nó không có giá trị để mã hóa. Ít nhất, nó không có giá trị để mã hóa nếu C(1) là ngắn.

Trong thực tế, ta không mong đợi có trình tự đạt được tốt nhất như vậy. Tuy nhiên, ví dụ tổng quát cho thấy MTF nén tốt trong những trường hợp như vậy. Nếu chuỗi có một số vùng, trong đó biểu tượng đặc biệt xảy ra thường xuyên hơn, thuật toán lợi dụng điều này: nó sử dụng codewords ngắn hơn kể từ khi biểu tượng thường xuyên xảy ra hơn có xu hướng gần mặt trước của danh sách.

Biến số như vậy trong tần số cục bộ, tức là phân nhóm, không phát sinh dữ liệu thực.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

52

Một phần của tài liệu 27864 (Trang 56 - 58)

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

(77 trang)