Mỗi thuật toán có ưu nhược điểm khác nhau. Vì vậy, đối với các loại dữ liệu khác nhau cần phải có sự lựa chọn giải thuật nén phù hợp để đạt hiểu quả cao nhất. Trong bài viết này, tôi sẽ giới thiệu về thuật toán nén dữ liệu lossless RLE (RunLength Encoding).
Trang 1Tìm Hiều Về Phương Pháp Nén Bản Mã Độ Dài Chạy
Giảng Viên : Nguyễn Thùy Dương
Nhóm SV Nghiên Cứu :
Phan Tuấn Đạt
Nguyễn Doãn Dần
Nguyễn Tiến Hoàng
Hy Vinh Quang
Đỗ Đình Quỳnh
Trang 2Tìm Hiểu Phương Pháp Nén Bản Mã Độ Dài Chạy
(Run-Length Encoding )
I. Tổng Quan Về Nén Dữ Liệu
a. Nén dữ liệu là gì ?
b. Phân loại
c. Ứng dụng
II. Phương Pháp Nén Bản Mã Độ Dài Chung
a. Định Nghĩa
b. Ý Tưởng Thuật Toán
c. Gỉai Nén
d. Ưu , Nhược Điểm
Trang 3Tổng Quan Về Nén Dữ Liệu
Trang 4Tổng Quan Về Nén Dữ Liệu
b Phân loại
Trong xử lí dữ liệu, nén dữ liệu là việc mã hoá thông tn sử dụng ít bit hơn cách thể hiện ở dữ liệu gốc.Dựa vào sự thay đổi dữ liệu trước và sau khi nén, người ta chia thành 2 loại: không mất dữ liệu (lossless) và bị mất dữ liệu (lossy).
Lossless Compression: Đây là phương pháp nén mà sau khi giải nén ta thu được thông tn nguyên thuỷ Tuy nhiên hiệu suất nén không cao, chỉ đạt khoảng 10% - 60%.
Một số giải thuật nén têu biểu như: RLE, Huffman, LZ77…
Lossy Compression: Dây là phương pháp nén mà sau khi giải nén thông tn nguyên thuỷ bị mất mát Hiệu suất nén cao từ 40% - 90
Một số thuật toán nén têu biểu như: JPEG, MP3, MP4,
Trang 5Tổng Quan Về Nén Dữ Liệu
c Ứng dụng
Trang 6Tổng Quan Về Nén Dữ Liệu
khác nhau Vì vậy, đối với các loại dữ liệu khác nhau cần phải có sự lựa chọn giải thuật nén phù
lossless RLE (Run-Length Encoding).
Trang 7Phương Pháp Nén Bản Mã Độ Đài Chạy
I. Định Nghĩa
là một hình thức nén không mất dữ liệu (lossless) rất đơn giản trong đó chạy dữ liệu (nghĩa là các chuỗi trong đó cùng một giá trị dữ liệu xảy ra trong nhiều thành phần dữ liệu liên tếp) được lưu trữ dưới dạng một giá trị và số liệu dữ liệu đơn lẻ hơn là chạy ban đầu Điều này hữu ích nhất trên dữ liệu có chứa nhiều lần chạy như vậy.
Ví dụ, hãy xem xét các hình ảnh đồ họa đơn giản như biểu tượng, hình ve đường thẳng, trò chơi và hoạt hình Nó không hữu ích với các tệp không có nhiều lần chạy vì nó có thể làm tăng đáng kể kích thước tệp.
Trang 8Phương Pháp Nén Bản Mã Độ Đài Chạy
Là dãy các ký tự giống nhau liên tếp
VD:
Chuỗi: AAAbbbbbCdddEbbbb
Các đường chạy:
AAA
bbbbb
C
ddd
E
bbbb
Trang 9Phương Pháp Nén Bản Mã Độ Đài Chạy
ll Ý tưởng
Run-Length-Encoding: mã hóa (nén) dựa trên chiều dài của đường chạy
Đường chạy được biểu diễn lại: Đường chạy được biểu diễn lại:
< Số lượng ký tự><ký tự>
Ví dụ: Chuỗi đầu vào: AAAbbbbbCdddEbbbb (#17 bytes)
Kết quả nén: 3A5b1C3d1E4b (#12 bytes)
Trong thực tế, có khả năng gây „hiệu ứng ngược‟:
Dữ liệu nén: ABCDEFGH (8 bytes)
Kết quả nén: 1A1B1C1D1E1F1G1H (16 bytes)
Cần phải có những hiệu chỉnh cho phù hợp.
Khắc phục trường hợp „hiệu ứng ngược‟:
Byte xác định số lượng (nhiều hơn 1): 2 bit 6,7 được bật
Trang 10Ví dụ: Chuỗi gồm 5 ký tự A, 0x41, (AAAAA) được mã hóa
Trang 11Phương Pháp Nén Bản Mã Độ Đài Chạy
lll Giải nén
Giải nén RLE bao gồm duyệt thông điệp được hình thành từ các cặp (ký tự, số lần lặp lại) và viết văn bản tương đương bằng cách viết ký tự số lần tương ứng
Ví dụ: D5C4O3D2E1 phân hủy thành D5 , C4 , O3 , D2 , C1 và lặp lại các ký tự đúng số
lần: D5 => DDDDD > CCCC , v.v Để có DDDDDCCCCOOODDE
Trang 12Phương Pháp Nén Bản Mã Độ Đài Chạy
lll Ưu ,Nhược điểm
1. Ưu điểm
. Đối với các dữ liệu có sự lặp đi lặp lại liên tục của một kí tự thì thuật toán này cực kì phù hợp
.giảm được đáng kể dung lượng của dữ liệu
2 Nhược điểm
.Với những loại dữ liệu mà thông tn ít lặp thì việc sử dụng RLE không thật sự hiệu quả Nó tạo ra dữ liệu sau khi nén có dung lượng lớn ơn cả dữ liệu "nguyên thuỷ" Đây được gọi là hiệu ứng ngược
Trang 13Thank You