LZW algoritmussal módszer, tömörítés - végrehajtás LZW tömörítési algoritmust használ lehetőségek
- első kiválasztott karaktert a bemeneti folyam;
- kiválasztott megfelelő bináris fa a szótárban;
- kiválasztja a következő karaktert a bemeneti folyam;
- Továbbá, minden csúcsa egy bináris fa, ha a szimbólum egybeesik a jel a tetején, hogy lépjen a következő vertex Communications <равно>; vegye ki a következő karaktert a bemeneti folyam;
különben menj a következő vertex Communications <не равно>, továbbra is ugyanaz a szimbólum;
A tömörítési folyamat igen egyszerű. A tömörítési algoritmus a következő:
· Inicializálása az asztal 256 ASCII karakter.
· Inicializálása az aktuális sor üres sor.
· Amíg a bemenet nem üres végezzük:
o olvasó a következő karaktert a bemeneti fájl.
· Ha a táblázat tartalmazza a kombináció a „jelenlegi vonal + jel (a” + „a szövegösszefűzés)” végezzük:
o ellenőrzése egy tábla egy nagyobb lánc, amely kezdődik, ez azonban tulajdonítanak a szimbólum sor.
· Egyébként (ha az aktuális sor + szimbólum nem szerepel a táblázatban, de az aktuális sort a táblázatban.)
· Szerezd meg a jelenlegi kódot sort a táblázatban.
· Nyomtatás a kódot a kimeneti fájl.
· Hozzáadása kombinációja az aktuális sor + szimbólum a táblázatban.
· A jelenlegi vonal most - az utolsó karakter olvasható a patak (összes felolvasott neki, már megjelenik a kimeneti fájl).
· Kilépés után a hurok aktuális sor nem üres, arra is szükség van, hogy kódot a kimeneti fájlt.
· Nyomtatás a kódot a kimeneti fájl.
Azt olvassuk soros bemeneti szimbólum áramot és ellenőrizze, hogy van egy szöveg tábla hoztuk létre ezt a vonalat. Ha a húr, akkor olvassa el a következő karaktert, és ha a vonal nincs jelen, mi számít egy patak kódot előző karakterlánc, Skid Row az asztalhoz, és indítsa újra a keresést. LZW végrehajtani GIF és TIFF formátumban.
LZW - ez adattömörítési eljárás, amely kinyeri a előnyöket ismétlődő láncok adatok. Mivel a raszteradatok jellemzően sok ismétlést, LZW egy jó módszer a tömörítés és bővítése.
Aritmetikai tömörítés ismereteket igényel a valószínűsége esemény a bemeneti adatfolyam bemeneti ábécé karaktereket. input ábécé karaktereit vannak elrendezve meghatározott sorrendben. Az intervallum 0-1 között oszlik szimbólumok időközönként kezdeti értékek szerint a valószínűségek. Az optimális szélessége a kezdeti intervallumban a szimbólum valószínűségét egy bemeneti folyam egyenlő p -log2 p.
Elméletileg, a kimenet az algoritmus bármilyen szám lehet, benne van az üzemi tartományban, miután az utolsó bemeneti karaktert. A gyakorlatban az egyes intervallumok csökkentése a kimeneti stream helyezik a megfelelő bitjei a felső és az alsó határ az üzemi tartományban. Nyilvánvaló, hogy ha egy karakter érkezik egy nagyobb előfordulási valószínűsége és szélesebb működési tartományban kezdeti intervallumban csökken kisebb és kisebb darabokra esik a kimeneti stream. Így karakterek nagyobb előfordulási valószínűsége kódolt kevesebb bit. A gyakorlatban gyakran használják a különböző dinamikus algoritmus, ha az elején munkáját a valószínűsége, hogy a bemeneti ábécé karaktereit ismeretlenek, és meghatároztuk és dinamikusan változik az algoritmus. Különböző stratégiákat lehet dinamikusan kiszámításának valószínűségek, azzal jellemezve, növelve a valószínűsége, hogy az értéket a bemeneti jel. Fel fogjuk hívni a modell, amelyben a valószínűsége jelentősen megnő, modellek nagy alkalmazkodóképességet és modell, amelyben enyhén növekszik - és modellek alacsony alkalmazkodóképesség. Nyilvánvaló, hogy minden esetben saját optimális értékét alkalmazkodóképesség.
LZW + aritmetikai tömörítés:
Csakúgy, mint az algoritmusok és LZH LZARI LZSS algoritmus kimeneti stream sűrített statisztikai módszerekkel, az ember megpróbál tenni a squeeze kimeneti stream LZW-aritmetikai kódolás algoritmus. Bemeneti ábécé aritmetikai kódolás ebben az esetben a változó, kimenete oszcillál a hálózati bemeneti ábécé LZW algoritmussal az algoritmus LZW-szókincs nagysága.

Attól függően, hogy a kompresszió mértéke a szint alkalmazkodóképesség.
Az algoritmus lehet változtatni, mint a valószínűsége rendelt az új elemeket a szótárba, és a növekmény kód valószínűleg megfelelnek a kimeneti stream LZW algoritmussal. Az eredmény nagyjából ugyanaz a különböző bemeneti adatokat és csak abban különbözik az általános tömörítés mértékét.
Abban a pillanatban, úgy véljük, a normál kódolási és dekódolási segítségével LZW algoritmussal. A GIF egy változatát használja ezt az algoritmust.
Az első dolog, amit az LZW-tömörítés inicializálni a jelcsoporttal. Ehhez ki kell választani a méret a kódot (a bitek száma), és tudni, hogy hány lehetséges értékeket vehet a karaktereket. Tegyük a kód mérete 12 bit, ami azt jelenti, a lehetőséget, tárolására 0FFF, vagy 4096, elemek asztalunkra lánc. Tegyük fel továbbá, hogy van egy lehetséges 32 különböző szimbólumokat. (Ez megfelel, például egy képet 32 lehetséges szín minden egyes pixel.) Inicializálása a táblázat, mi egy olyan levelezést kódszimbólum # 0 # 0, # 1 kódjelet # 1, stb akár Code # 31 és # 31. Sőt, azt mondta, hogy minden kód 0-31, a gyökér. Több a táblázatban nem lesz más kódok, amelyek rendelkeznek ezzel a tulajdonsággal.
LZW tulajdonsága, hogy a dekompressziós nem kell tárolni a táblázat sorai a fájl kicsomagolása után. Az algoritmus van kialakítva oly módon, hogy képesek vagyunk visszaállítani a szöveg tábla kizárólag az áramlás a kódot.
Tudjuk, hogy minden kódot kell adni, hogy az asztalon egy sor már jelen vannak vonalak és a karakterek, ahonnan a következő sort a patak kezdődik.
Meg kell jegyezni, hogy annak érdekében, hogy mentse a számítógép memóriájában szöveg tábla hatékonyan lehet jelen, mivel a következő jellemző: ha például ASDFK string string táblázatban a asdf is szerepel benne. Ez a tény arra utal, hogy tárolása helyett az egész láncot a táblázatban, csak emlékezni a kódot ASDF, majd egy záró szimbólum K.
Ahhoz, hogy ez fokozza a kép tömörítési e módszert gyakran használják a „trükk” végrehajtása ezen algoritmus. Néhány kép tömörített LZW, van egy közös lánc azonos értékek, mint például a 12 12 12, vagy 32 32 ... 32 ... és így tovább. P. közvetlen kompressziós generál egy kimeneti kódot 258 és December 12, stb
Kódolás az ilyen láncok fogják a következőképpen végezzük el. Az első színes 12 rekordokat saját kódját a 12. táblázatban a következő szín is 12, majd adjunk hozzá egy sort a táblázat 12, 12 kóddal 258 és a kimeneti adatfolyam azonnal sodródik ez a kód, azaz 258. Nézd a bemeneti adatfolyam. Ha az input a szín jön vissza 12, ez a táblázat, nézd meg a következő - 12, 12, 12-szekvencia is van egy asztal, látszó on - 12 12 12 12 szekvencia hozzárendelő kód 259, és tolja be a kimeneti stream. Ennek eredményeként, a kimenet a sorozat 12258259 ..., ami sokkal rövidebb, mint a közvetlen kódoló eljárás szabványos LZW.
Meg lehet mutatni, hogy egy ilyen sorozat lesz helyesen helyreáll. Decoder először elolvassa az első kód - 12, ami megfelel a színét 12. Majd olvasni a kódot 258, de ez a kód nem saját asztalra. Ez csak akkor lehetséges, abban az esetben, ha a hozzáadott karakter az első karakter az újonnan olvasni szekvenciát, azaz, 12. Ezért, akkor hozzá a szöveg tábla 12 és 12 kóddal 258, és a kimeneti áramot fog alakítani 12 12. És így lehet dekódolni a teljes lánc kódokat.
Coding fentiekben leírt szabály általánosan alkalmazható nemcsak az egymást követő azonos színű pontokat, hanem a szekvenciák, amelyek a következő karakter hozzáadódik az első karakterlánc.

Work LZW dekódolást.
Jellemzők LZW algoritmus:
Sűrítés: Körülbelül 1000 4 5/7 (legjobb, átlag, legrosszabb arány). A tömörítés 1000 alkalommal csak úgy érhető el egyetlen színes kép mérete többszöröse mintegy 7 MB.
A fényképek Osztály: Összpontosít LZW 8 bites képek, melyek a számítógépen. Tömörítése miatt azonos al-láncait áramban.
Szimmetria: majdnem szimmetrikus, azzal a megkötéssel, optimális végrehajtásának karakterlánc keresési művelet a táblázatban.
Különleges jellemzők: olyan helyzet, amelyben az algoritmus nagyítja a képet, rendkívül ritka. LZW univerzális - ez annak változatai, amelyeket hagyományos adatgyűjtő.