Kommunikációs Rendszerek A kommunikáció Forrás kódolás Feladat: -az információ tömörítése Kommunikációs Rendszerek
Kommunikációs Rendszerek Tömörítés Feladat: az információ redundanciájának csökkentése (megszüntetése). Az adott céltól függő releváns részek leválasztása. Kommunikációs Rendszerek
tömörítési technikák (adó-vevő függés) Szimmetrikus A kompresszió és a dekompresszió nagyjából azonos idő és erőforrás igényű. Az adatátviteli feladatoknál szokásos, ahol a tömörítés-kitömörítés menet közben történik. Aszimmetrikus Leggyakoribb olyan esetekben, mikor a kódolás többszörösen időigényesebb, mint a dekódolás Kommunikációs Rendszerek
tömörítési technikák (tartalom függés) Nem adaptív Statikus, előre megadott kódtáblát alkalmaz. Adaptív A kódtábla építés menet közben történik. Szemi-adaptív Az első menetben felépít egy optimális kódtáblát, Az második menetben történik meg a tömörítés. Kommunikációs Rendszerek
Kommunikációs Rendszerek Redundancia tipusok Mintán belül entrópia Minták között Térbeli redundancia a szomszédos pixelek közötti korreláció következtében Spektrális redundancia a különböző szín-síkok, vagy spektrum sávok közötti korreláció következtében Időbeni redundancia az egymást követő minták vagy frame-ek közötti korreláció következtében Kommunikációs Rendszerek
Kommunikációs Rendszerek Tömörítő kódolások Veszteségmentes (entrópia) kódolás Sorozathossz kódolás (Run Lengh Encoding , RLE). Statisztikai kódolás (szótár alapú) Huffman LZW Aritmetikai Prediktív kódolás (veszteség mentes verzió) Veszteséges transzformációs Kommunikációs Rendszerek
Kommunikációs Rendszerek Entrópia kódolások (a mintán belüli redundancia alapján) Kommunikációs Rendszerek
Sorozathossz kódolás (Run Lengh Encoding , RLE). Ismétlődő jelsorozatokat helyettesít (jel, szám) formátumú számkettősökkel (tuple) pl. aaaaazz kódolva (a,5) (z,2) U.n. „horizontális” jelsorozatok esetén kedvező Kommunikációs Rendszerek
Kommunikációs Rendszerek Huffman kódolás A jelek előfordulási gyakoriságán alapszik A gyakrabban előforduló információ kódolásához kevesebb bitet használ A kódokat épített „kód-könyvben” tárolja Kód-könyv minden adathalmazra (képre) újra létrehozza Átvitelre kerül a kódolt adathalmazzal együtt a vevő oldalra Kommunikációs Rendszerek
Kommunikációs Rendszerek Huffman kódolás Szimbólum a b c d e gyakoriság 19 10 8 5 A szimbólumok lesznek a bináris fa levelei a b c d e Csökkenő gyakoriság szerint rendezve Kapcsold a kisebb gyakoriságú az ágakat d e 8 5 13 Kommunikációs Rendszerek
Kommunikációs Rendszerek Huffman kódolás 50 1 Szimbolum Huffman kód a b 111 c 110 d 101 e 100 = 31 1 13 18 1 1 a e d c b Kommunikációs Rendszerek
Huffman kódolás lépései 1.- Rendezzük az elemeket az előfordulásuk valószínűségének (gyakoriságaik) sorrendjében. 2.- A két legvalószínűtlenebb szimbólumból együttes (szülő) szimbólumot képezünk és ezt beírjuk az eredeti szimbólumok közé a valószínűségi sorba. Az új (szülő) szimbólum valószínűsége egyenlő a két (gyermek) szimbólum valószínűségeinek összegével. 3.- A 2-es eljárást addig ismételjük míg két elemű nem lesz a forrás. Ekkor az egyik elemhez 1-et a másikhoz 0-t rendeljük. 4.- Visszatérünk az előző, összevont szimbólumhoz. A nagyobb valószínűségűhöz 1-et, a kisebb valószínűségű szimbólumhoz 0-t rendelünk. 5- Az eljárást addig ismételjük, amíg vissza nem jutunk az eredeti legkisebb valószínűségű szimbólumig. Kommunikációs Rendszerek
Kommunikációs Rendszerek Huffman kód A tömörítési arány mindig nagyobb mint 1.0 A kód sokszor előre tervezett (pl. nyelv függő gyakoriság) Ilyenkor kötött kódtábla Ha a tényleges valószínűségek a tervezés során felvettektől eltérnek, akkor adat kiterjedés is felléphet. Gyakorlati megvalósítások: kétmenetes implementáció Blokk adaptív (kódtábla adat blokkonként) Rekurziv Huffman (a kódtábla folyamatosan változik) Kommunikációs Rendszerek
Lempel-Ziv-Welch (LZW) szótár alapú kódolás a kódtábla építés az algoritmus része, a kódtáblát a tömörítés közben állítja elő. minden új bitsorozatot felvesz a kódtáblába A dekódoláshoz nem szükséges a kódtábla megléte Használja: GIF, TIFF, V.42bis modem tömörítési szabvány, PostScript Level 2, stb. Kommunikációs Rendszerek
Lempel-Ziv kódolás (algoritmus) 1.-Inicializálás: a szótár fel van töltve az összes alap szimbólummal, W üres. 2.- K a kódolandó üzenet következő karaktere. 3.- A W+K jelsorozat megvan már a szótárban ? - igen, W := W+K (W –t egészíts ki K -val); - nem Add a kimenő üzenethez a W - hez rendelt kódot; vedd fel a szótárba a W+K jelsorozat; W := K (W most csak a K karaktert tartalmazza); 4. van még kódolandó karakter ? Ha igen, kezeld le (lásd 2. Pont); Ha nincs több: Add a kimenő üzenethez a W- hez rendelt kódot ; Kommunikációs Rendszerek
Lempel-Ziv kódolás (példa) A jelkészlet :{A,B,C} Az üzenet:[ABABAAA] A következő karakter Az ABLAK tartalma Ismert ? Szótár Kimenet Új ABLAK tartalom Inicializálás [] #1 = ’A’ #2 = ‘B’ #3 = ‘C’ Iteráció A [A] Igen (#1) B [AB] nem #4 = ‘AB’ #1 [B] [BA] #5 = ‘BA’ #2 igen (#4) [ABA] #6 = ‘ABA’ #4 [AA] #7 = ‘AA’ igen (#7) Vége üres #7 Kommunikációs Rendszerek
Veszteséges kódolási technikák Transzformációs kódolás DFT DCT Wavelet (Haar Hadamard) Kommunikációs Rendszerek