Tải bản đầy đủ (.pdf) (16 trang)

Bài Thuyết Trình Mã Lempel - Ziv

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (375.51 KB, 16 trang )

Giáo viên hướng dẫn
Thầy Nguyễn Thành Nhựt
Cô Mai Trăng Thanh

Mã Lempel – Ziv
Nhóm 3
Võ Thị Ngọc Giàu
Hà Minh Hoàng
Ngô Đình Quang Huy
Phan Thị Trà My

0511089
0511100
0511107
0511158

1


Giới thiệu sơ lược
Kết hợp giữa 2 thuật toán của
Abraham Lempel và Jacob Ziv từ
năm 1977-1978.
Là một thuật toán nén dữ liệu
không mất thông tin.
Ứng dụng nhiều trong các tiện ích
như: zip, gzip, nén ảnh GIF và
chuẩn modem V.42, ...

Abraham Lempel


Jacob Ziv

2


Giới thiệu sơ lược(tt)
Hai thuật toán nguyên bản là LZ77 và
LZ78.

3


LZ78
Phương pháp nén: thay thế một phần của
chuỗi bởi “con trỏ” tới chuỗi tiền tố.
Thứ tự từ điển của chuỗi con: chuỗi con xuất
hiện sau phải khác với chuỗi con trước đó. Có
nghĩa là chuỗi sau sẽ khác hẳn với chuỗi trước
hoặc sai khác với chuỗi trước ít nhất 1 bit.
Chuỗi con trước sẽ là “tiền tố” của 1 hoặc
nhiều chuỗi con sau.
4


LZ78 – Ví dụ
Cho chuỗi 1011010100010
Tách thành các chuỗi con theo
thứ tự từ điển:
1, 0, 11, 01, 010, 00, 10.


5


LZ78 – Mã hóa
9Chia chuỗi cần mã hóa thành nhiều chuỗi
con theo thứ tự từ điển của chuỗi con;
9Đánh số thứ tự các chuỗi con;
9Thay thế một chuỗi con bởi hai phần:

Phần “con trỏ” đến chuỗi tiền tố: số thứ tự (nhị
phân) của chuỗi tiền tố;
¾ Phần bit sai khác với chuỗi tiền tố: 1 bit.
¾

9Ghép các chuỗi con lại ta được chuỗi mã
hóa.

6


LZ78 – Lưu ý
Với chuỗi con thứ n, ta sẽ cần
[log2n] bit cho phần “con trỏ” .
VD: chuỗi thứ 2 cần 1 bit cho
phần “con trỏ”, chuỗi thứ 3 thì
cần 2 bit, ...
7


LZ78 – Ví dụ mã hóa

VD: mã hóa chuỗi 1011010100010.
Bảng mã hóa:
Chuỗi con
λ
1
0
11
01
010
00
10
n
0
1
2
3
4
5
6
7
n (nhị phân) 000 001 010
011
100
101
110
111
(con trỏ , bit)
( , 1) (0 , 0) (01 , 1) (10 , 1) (100 , 0) (010 , 0) (001 , 0)

=> Chuỗi mã hóa:


100011101100001000010

8


LZ78 – Giải mã
9Từ chuỗi mã hóa, ta tách thành các

chuỗi con. Mỗi chuỗi con n gồm 2
phần:
™Phần “con trỏ” đến chuỗi tiền tố: [log2n] bit;
™Phần bit khác với chuỗi tiền tố: 1 bit.

9Thay phần “con trỏ” bằng giá trị của
chuỗi con tiền tố.
9Ghép các chuỗi con lại ta được chuỗi
gốc.

9


LZ78 – Ví dụ giải mã
Giãi mã chuỗi 100011101100001000010
Bảng giải mã:
n

(con trỏ , bit)

Chuỗi con


1
2
3
4
5
6
7

( , 1)
(0 , 0)
(01 , 1)
(10 , 1)
(100 , 0)
(010 , 0)
(001 , 0)

1
0
11
01
010
00
10

=> Chuỗi gốc: 1011010100010
10


LZ78 – Ví dụ

VD1: Mã hóa chuỗi
000000000000100000000000
sử dụng thuật toán Lempel – Ziv.
VD2: Giải mã chuỗi
00101011101100100100011010101000011
được mã hóa bằng thuật toán Lempel – Ziv.
11


LZ78 – Giải ví dụ 1
Mã hóa chuỗi
000000000000100000000000
Bảng mã hóa:
Chuỗi con
λ
0
00
000
0000
001
00000 000000
n
0
1
2
3
4
5
6
7

n (nhị phân) 000 001 010
011
100
101
110
111
(con trỏ , bit)
( , 0) (1 , 0) (10 , 0) (11 , 0) (010 , 1) (100 , 0) (110 , 0)

=> Chuỗi mã hóa:
010100110010110001100
12


LZ78 – Giải ví dụ 2
Giải mã chuỗi

00101011101100100100011010101000011
Bảng giải mã:
n

(con trỏ , bit)

Chuỗi con

1
2
3
4
5

6
7
8
9
10

( , 0)
(0 , 1)
(01 , 0)
(11 , 1)
(011 , 0)
(010 , 0)
(100 , 0)
(110 , 1)
(0101 , 0)
(0001 , 1)

0
1
00
001
000
10
0010
101
0000
01

=> Chuỗi gốc: 0100001000100010101000001


13


LZ78 – Nhận xét
Ưu điểm:
9Không cần phải lưu trữ “từ điển”, có
thể xây dựng lại từ quá trình giải mã.

Nhược điểm:
9“Từ điển” tăng lên không giới hạn;
9Các chuỗi con dài xuất hiện khá trễ
trong quá trình xây dựng “từ điển”.
14


Tài liệu tham khảo
Christina Zeeh - Seminar “Famous Algorithms”.
David J.C. MacKay - Information Theory, Inference, and
Learning Algorithms.
- ziv.

15


Thanks 4 ur attention!!!☺

16




×