Platformă de e-learning și curriculă e-contentpentru învățământul superior tehnic
Transmisia datelor multimedia in retele de calculatoare
17. LZ78
2
LZ78
• LZ77 presupune localitatea grupurilor de simboluri
• LZ78:
▫ Nu exista un buffer de cautare – dictionarul este
explicit
▫ Codificatorul/decodificatorul construiesc dictionarul
intr-un mod sincronizat
▫ Codificare: <i, c>
i = indexul din dictionar
c = codul urmatorului simbol
• Example:
▫ wabbawabbawabbawabbawoowoowoo
5
Exemplu LZ78
Index Intr.
1 w
2 a
Dictionar:
Input: -abbawabbawabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
6
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
Dictionar:
Input: --bbawabbawabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
7
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
Dictionar:
Input: ---bawabbawabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
8
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
5
Dictionar:
Input: -----wabbawabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
9
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
Dictionar:
Input: ------wabbawabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
10
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
Dictionar:
Input: --------bbawabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
11
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
Dictionar:
Input: ----------awabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
12
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
Dictionar:
Input: ------------wabbawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
13
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
Dictionar:
Input: ---------------bawabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
14
Exemplu LZ78
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
Dictionar:
Input: ------------------wabbawoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
<9, C(b)>
11 wabb
15
Exemplu LZ78
Dictionar:
Input: ----------------------awoowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
<9, C(b)>
<8, C(w)>
11 wabb
12 a w
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
16
Exemplu LZ78
Dictionar:
Input: -------------------------oowoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
<9, C(b)>
<8, C(w)>
<0, C(o)>
11 wabb
12 a w
13 o
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
17
Exemplu LZ78
Dictionar:
Input: --------------------------owoowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
<9, C(b)>
<8, C(w)>
<0, C(o)>
<13, C( )>
11 wabb
12 a w
13 o
14 o
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
18
Exemplu LZ78
Dictionar:
Input: ----------------------------woowoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
<9, C(b)>
<8, C(w)>
<0, C(o)>
<13, C( )>
<1, C(o)>
11 wabb
12 a w
13 o
14 o
15 wo
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
19
Exemplu LZ78
Dictionar:
Input: ------------------------------owoo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
<9, C(b)>
<8, C(w)>
<0, C(o)>
<13, C( )>
<1, C(o)>
<14, C(w)>
11 wabb
12 a w
13 o
14 o
15 wo
16 o w
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
20
Exemplu LZ78
Dictionar:
Input: ---------------------------------oo
Output:
<0, C(w)>
<0, C(a)>
<0, C(b)>
<3, C(a)>
<0, C( )>
<1, C(a)>
<3, C(b)>
<2, C( )>
<6, C(b)>
<4, C( )>
<9, C(b)>
<8, C(w)>
<0, C(o)>
<13, C( )>
<1, C(o)>
<14, C(w)>
<13, C(o)>
11 wabb
12 a w
13 o
14 o
15 wo
16 o w
17 oo
Index Intr.
1 w
2 a
3 b
4 ba
5
6 wa
7 bb
8 a
9 wab
10 ba
21
LZ78
• Observatie▫ Daca continuam sa codificam, dictionarul continua sa
creasca
• Solutii practice▫ Oprirea cresterii dictionarului
efectiv, considerarea dictionarului ca unul static
▫ Micsorarea dictionarului
Ex. Pe baza statisticilor de utilizare
▫ Resetarea dictionarului
▫ Fara a cunoaste informatii specifice referitoare la sursa, tehnicile de mai sus nu garanteaza succesul