Bài giảng Cấu trúc dữ liệu và giải thuật: Các thuật toán nén dữ liệu - Bùi Tiến Lên
lượt xem 6
download
Bài giảng Cấu trúc dữ liệu và giải thuật: Các thuật toán nén dữ liệu cung cấp cho người học các kiến thức cơ bản về nén dữ liệu, thuật toán nén RLE, đánh giá thuật toán RLE, minh họa thuật toán nén dữ liệu,... Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Các thuật toán nén dữ liệu - Bùi Tiến Lên
- CÁC THUẬT TOÁN NÉN DỮ LIỆU Bùi Tiến Lên 01/01/2017 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Giới thiệu Mục đích của nén dữ liệu: I Giảm kích thước dữ liệu I Tăng tính bảo mật Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 2
- Giới thiệu (cont.) Có hai dạng thuật nén I Nén bảo toàn thông tin (lossless compression) I Thuật toán nén RLE I Thuật toán nén LZW I Thuật toán nén Huffman I Nén không bảo toàn thông tin (lossy compression) I Thuật toán nén sử dụng biến đổi DFT I Thuật toán nén sử dụng biến đổi wavelet Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 3
- Giới thiệu (cont.) Định nghĩa 1 Hiệu suất nén: tỉ lệ kích thước giảm được sau khi áp dụng thuật toán nén N −M D= 100 (1) N I D: hiệu suất nén I N: kích thước dữ liệu trước khi nén I M: kích thước dữ liệu sau khi nén Hiệu suất nén tùy thuộc vào: I Phương pháp nén I Đặc trưng của dữ liệu Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 4
- Thuật toán nén RLE I Thuật toán nén Run Length Encoding (RLE) mã hóa dữ liệu dựa trên sự lặp lại I Một dãy các ký tự lặp lại liên tiếp được gọi là đường chạy (run) I Đường chạy sẽ được nén bằng công thức sau [số ký tự][ký tự] I Khi độ dài đường chạy lớn thì tỉ lệ nén sẽ tăng lên Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 5
- Thuật toán nén RLE (cont.) Ví dụ 1 Hãy nén chuỗi sau bằng RLE AAABBCCAAADE Sẽ được mã hóa thành 3A2B2C3A1D1E Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 6
- Đánh giá thuật toán RLE I Đơn giản, dễ cài đặt I Dùng để nén các dữ liệu có nhiều đoạn lặp lại I Thích hợp cho dữ liệu ảnh I Hiệu suất nén không cao Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 7
- Thuật toán nén LZW Giới thiệu I Được đề xuất bởi Ziv and Lempel và cải tiến bởi Welch [Lempel, 1978] I Đây là một thuật toán nén dựa trên tần suất xuất hiện trong từ điển. Do đó nó còn được gọi là thuật toán nén từ điển I Ảnh định dạng GIF sử dụng thuật toán nén này Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 8
- Thuật toán nén dữ liệu w ← null while ( ĐỌC ký tự k ) if ( wk có trong TỪ ĐIỂN ) w = wk; else XUẤT mã c ← Code(w) THÊM wk vào TỪ ĐIỂN w ← k XUẤT mã c ← Code(w) Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 9
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 4 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 4 0 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 4 0 2 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 4 0 2 0 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 4 0 2 0 3 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 4 0 2 0 3 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
- Minh họa thuật toán nén dữ liệu Xét một chuỗi ký tự “abracadabarabra” → 0 1 4 0 2 0 3 5 k w =∅ output c word a a 0 a b b 0 1 b r r 1 2 c a a 4 3 d c c 0 4 r a a 2 5 ab d d 0 6 br a a 3 7 ra b ab 8 ac a a 5 9 ca r r 0 10 ad a ra 11 da b b 7 12 aba r br 13 ar a a 6 14 rab 0 15 bra Spring 2017 CuuDuongThanCong.com Data structure & Algorithm https://fb.com/tailieudientucntt 10
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 175 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 81 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 58 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 159 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 106 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
38 p | 47 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn