Tömörítő algoritmusok Flashcards

1
Q

Huffmann algoritmus lépései

A
  • Kiválasszuk milyen karaktereket szeretnénk kódolni és megadjuk ezeknek a gyakoriságát és növekvő sorrendbe rendezzük ez alapján.
  • A két legkisebb elemet összeadjuk és helyettesítjük őket.
  • Ha két ugyanolyan érték van mindegy melyiket használjuk fel.
  • Felrajzolunk egy binfát úgy hogy a bal éle 0 a jobb pedig 1 lesz és a különböző betűkhöz tudunk kódot rendelni a gyökértől a csúcsig az érintett élek alapján.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Huffmann algoritmus tulajdonságai

A

Optimális prefix kódolást állít elő.
A Huffmann kód optimális.
A Huffmann kód egy offline kódolás, a beérkező jelek gyakoriságát kiszámolja határozzuk meg a valséget. Az online változata folyamatosan változó kódoló fával számol.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

LZ77 tulajdonságok

A

Abraham Lempel és Jacob Ziv fejlesztett ki. Az algoritmus lényege, hogy a bemeneti adatokban található ismétlődő szekvenciákat az előfordulásuk helyével és hosszával helyettesíti.
Online tömörítés, szótár alapú.
Hatékonz és veszteség mentes.
Bonyolult és az ablak megválasztása kulcs fontosságú.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

LZ77 menete

A

A kódolási folyamat menete:

A pozíció beállítása az adatfolyam elejére;
megkeresi a leghosszabb korábbi előfordulást;
kimenetre írja a (B, L) C formulát, ahol B a megtalált karakter távolsága az előretekintő puffertől, az L az egyező karakterek legnagyobb hosszúsága, a C pedig az első nem egyező karakter az előretekintő pufferben;
ha az előretekintő puffer nem üres, akkor eltolja a pozíciót (ablakot) az L+1-el, majd visszaugrik a 2. lépésre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

LZ78 tulajdonságai

A

A. Lempel, J. Ziv (1978.)
Online tömörítés; szótáras
A karakterekhez előtagokat (prefixeket) rendel, és új szekvenciákat hoz létre a már felfedezett minták alapján.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

LZ78 menete

A

Szótár létrehozása: Az LZ78 algoritmus folyamatosan bővíti a szótárát az eddig találkozott szekvenciák alapján.

Kódolás:

  • Minden új karakterhez, amely nem szerepel a szótárban, új bejegyzést adunk hozzá.
  • Ha a karakter már szerepel a szótárban, akkor a hozzá tartozó indexet használjuk, majd a következő karaktert adjuk hozzá a már meglévő szekvenciához.

Kódolt kimenet: A kódolt forma egy index (a szótárban található) és az új karakter (ha van) párja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

LZW tulajdonságai

A

Abraham Lempel, Jacob Ziv és Terry Welch fejlesztett ki 1984-ben. Az LZW a bemeneti adatok ismétlődő mintázatait kihasználva tömörít, és a LZ78 algoritmusra épít, de szótárt használ a már feldolgozott adatok tárolására.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

LZW menete

A

A szótárt inicializáljuk az összes 1 hosszú sztringgel
Kikeressük a szótárból a leghosszabb, jelenlegi inputtal összeillő W sztringet
W szótárindexét kiadjuk, és W-t eltávolítjuk az inputról
A W szó és az input következő szimbólumának konkatenációját felvesszük a szótárba
A 2. lépéstől ismételjük

How well did you know this?
1
Not at all
2
3
4
5
Perfectly