Adatábrázolás, tömörítés
Tény, hogy különféle számítógépek különböző adatábrázolási módokat használnak. Ez karakterek esetén lehet különböző kódrendszerek használata (az IBM nagy gépek EBCDIC-kódja vagy az ASCII kód), de lehetnek a számábrázolásban különbségek is. Ha két gép között ilyen eltérések vannak, akkor a hálózati kapcsolat során átvitt adatokat a megfelelő reprezentálás érdekében átalakítani, konvertálni kell. Strukturált adatok esetén pl. rekordok esetén a helyzet bonyolultabb, mivel egyes mezőket
kell konvertálni, míg másokat nem.
Adattömörítés
Mivel a hálózatok használatáért általában fizetni kell, egyáltalán nem mindegy hogy időegység alatt mennyi információt viszünk át rajta. Az adatok ábrázolása általában redundáns. A csatornán elküldött információt szimbólumsorozatként is felfoghatjuk, amelyek egy adott szimbólumkészletből származnak, pl. decimális számjegyek készlete, karakterek készlete, stb. Az adattömörítés elvét a 25. ábra mutatja.
A következőkben néhány tömörítési eljárást ismertetünk:
Darabszám-kódolás: Ha egy adathalmazban sok egymás után következő azonos szimbólum fordul elő, célszerű egy külön szimbólumot fenntartani az ismétlődés jelzésére, és utána következik az ismétlődő szimbólum, míg az azt követő számérték jelzi az ismétlődő szimbólumok számát:
Például a felkiáltó jel legyen az ismétlődés jelző: !
! (szimbólum) <x=számérték 0-255 között > a szimbólum <x>-szer ismétlődik
!A112 -> 112 A betű egymás után
!! - > maga a ! jel
Szimbólumsor-helyettesítés: gyakori azonos szimbólumsor helyett egy speciális szimbólum
Például ilyen a tabulátor (TAB) jel is! (8 betűközt ér)
Minta helyettesítés: gyakori szimbólumsorozat helyettesítése speciális szimbólummal
Például a BASIC nyelvben szereplő definiált alapszavak (INPUT, FOR, stb.) a program futtatása előtt úgy bájtokban tömörítik, hogy a változókat, adatokat leíró ASCII karakterrel ábrázolt részeket változatlanul hagyják, (legfelső bitAngol rövidítés, a BInary digiT szavakból. Az informatikában, információelméletben az információ legkisebb egységét jelöli. Hétköznapi példával élve ez nem más, mint egy eldöntendő kérdésre adott válasz: vagy igen, vagy nem. Az informatikában ezt az 1 és a 0 számjegyekkel jelölik. (A binary digit jelentése bináris számjegy). Amiért a számítógépek pontosan tudnak működni, az annak köszönhető, hogy egy bitnek a két állapota (0 és 1) elektronikailag élesen megkülönböztethető egymástól. Egy ilyen megkülönböztetés lehet az, hogy a magas szintű feszültség az 1, míg az alacsony szintű feszültség a 0 bitet jelentse. Annak a valószínűsége, hogy a két jelszint összekeveredjen, nagyon kicsi. összetettebb információ ábrázolására a bitekből nagyobb egységeket állítanak össze. Ilyen például a byte. (vesd össze: oktet) A számok ábrázolására a bitek nagyon kényelmesek, és gazdaságosak is egyben. A grafikák, hangok, animációk és egyéb (általában multimédiás) információk ábrázolásakor azonban rengeteg bitre (nagy tárolókapacitásra) van szükség. Egy átlagos kép például 250 Kbyte, illetve egy 3 perces hanganyag pedig 1,5 Mbyte méretűvé is nőhet. A kódoláshoz felhasznált bitek számának csökkentésével el lehet érni javulást, de ekkor a kódolt információ minősége romlik (vesd össze: GIF és JPEG). =0), míg az alapszavakhoz a maradék 128 kód valamelyikét rendelik hozzá (legfelső bit=1). Például: 80H->FOR, 81H->INPUT, stb. Ezzel az ún. tokenizálással a szöveges BASIC program mérete jelentősen csökkenthető.
Sorozathossz kódolásRLL (Run Length Encoding) (Run Lenght EncodingRun Lenght Encoding Sorozathossz kódolás. Sok nullát tartalmazó bináris sorozatokban a nullák számát bináris számként adjuk meg. Egy adattömörítési eljárás. = RLLRun Lenght Encoding Sorozathossz kódolás. Sok nullát tartalmazó bináris sorozatokban a nullák számát bináris számként adjuk meg. Egy adattömörítési eljárás.): Sok nullát tartalmazó bináris sorozatokban a nullák számát bináris számként adjuk meg.
Például:
000100100000100001 -> a nullák száma: 3 2 5 4 -> 3 bittel kódolva : 011 010 101 100
18 bit 12 bit
Statisztikai kódolásA kódhossz a kód előfordulási gyakoriságától függ. Ennek az a lényege hogy a információt leíró kódhalmazban a kódok hosszát azok gyakorisága alapján állapítjuk meg. Egy adattömörítési eljárás.: a kódhossz a kód előfordulási gyakoriságától függ. Ennek az a lényege hogy a információt leíró kódhalmazban a kódok hosszát azok gyakorisága alapján állapítjuk meg.
Jó példa erre a Morse ABC. Itt az angol szövegek leggyakoribb betűjének az “e”-nek a kódja a legrövidebb: a pont. A szintén gyakori “t” – nek pedig a vonás. Ilyen vonatkozásban, az ASCII kódrendszer, ahol minden szimbólum hossza egyformán 7 bitAngol rövidítés, a BInary digiT szavakból. Az informatikában, információelméletben az információ legkisebb egységét jelöli. Hétköznapi példával élve ez nem más, mint egy eldöntendő kérdésre adott válasz: vagy igen, vagy nem. Az informatikában ezt az 1 és a 0 számjegyekkel jelölik. (A binary digit jelentése bináris számjegy). Amiért a számítógépek pontosan tudnak működni, az annak köszönhető, hogy egy bitnek a két állapota (0 és 1) elektronikailag élesen megkülönböztethető egymástól. Egy ilyen megkülönböztetés lehet az, hogy a magas szintű feszültség az 1, míg az alacsony szintű feszültség a 0 bitet jelentse. Annak a valószínűsége, hogy a két jelszint összekeveredjen, nagyon kicsi. összetettebb információ ábrázolására a bitekből nagyobb egységeket állítanak össze. Ilyen például a byte. (vesd össze: oktet) A számok ábrázolására a bitek nagyon kényelmesek, és gazdaságosak is egyben. A grafikák, hangok, animációk és egyéb (általában multimédiás) információk ábrázolásakor azonban rengeteg bitre (nagy tárolókapacitásra) van szükség. Egy átlagos kép például 250 Kbyte, illetve egy 3 perces hanganyag pedig 1,5 Mbyte méretűvé is nőhet. A kódoláshoz felhasznált bitek számának csökkentésével el lehet érni javulást, de ekkor a kódolt információ minősége romlik (vesd össze: GIF és JPEG). nem jó megoldás.
Huffmann kódolásA kódolás olyan eljárás, amelynek során a kiindulási adatokat más formátumúvá alakítják át. Ehhez természetesen szükség van egy kódrendszerre, illetve a konkrét kódolási eljárás lépéseire. A kódolásra azért lehet szükség, mert a különböző informatikai rendszerek különbözőképpen értelmezik az információt. A kódolt információból aztán a dekódoló eljárások segítségével kapjuk meg az eredeti adatokat. Például a számítógép-hálózatokban az elektronikus levelek csak ASCII karaktereket tartalmazhatnak. Az olyan jeleket, amelyek nem szerepelnek az ASCII táblázatban, a vevő oldal hibásan értelmezné, ezért ezeket kódolás segítségével ASCII formátumúvá kell alakítani. Mivel az átalakítás során az üzenet mérete megnő, érdemes azt a kódolás előtt tömörítésnek alávetni.: egyes jelek, vagy bájtsorozatok előfordulási gyakoriságát figyeli, és generált kód hossz ettől függ
Aritmetikai kódolásA kódolás olyan eljárás, amelynek során a kiindulási adatokat más formátumúvá alakítják át. Ehhez természetesen szükség van egy kódrendszerre, illetve a konkrét kódolási eljárás lépéseire. A kódolásra azért lehet szükség, mert a különböző informatikai rendszerek különbözőképpen értelmezik az információt. A kódolt információból aztán a dekódoló eljárások segítségével kapjuk meg az eredeti adatokat. Például a számítógép-hálózatokban az elektronikus levelek csak ASCII karaktereket tartalmazhatnak. Az olyan jeleket, amelyek nem szerepelnek az ASCII táblázatban, a vevő oldal hibásan értelmezné, ezért ezeket kódolás segítségével ASCII formátumúvá kell alakítani. Mivel az átalakítás során az üzenet mérete megnő, érdemes azt a kódolás előtt tömörítésnek alávetni.: mint az előbbi, de a megelőző jeleket is figyeli
Transzformációs kódolásA kódolás olyan eljárás, amelynek során a kiindulási adatokat más formátumúvá alakítják át. Ehhez természetesen szükség van egy kódrendszerre, illetve a konkrét kódolási eljárás lépéseire. A kódolásra azért lehet szükség, mert a különböző informatikai rendszerek különbözőképpen értelmezik az információt. A kódolt információból aztán a dekódoló eljárások segítségével kapjuk meg az eredeti adatokat. Például a számítógép-hálózatokban az elektronikus levelek csak ASCII karaktereket tartalmazhatnak. Az olyan jeleket, amelyek nem szerepelnek az ASCII táblázatban, a vevő oldal hibásan értelmezné, ezért ezeket kódolás segítségével ASCII formátumúvá kell alakítani. Mivel az átalakítás során az üzenet mérete megnő, érdemes azt a kódolás előtt tömörítésnek alávetni.: Ilyen például a Fourier transzformáció: egy periodikus időfüggvényt adott amplitudójú és kezdeti fázisszögű szinusz-hullámok összegével írunk le. Általánosabban fogalmazva nagyon sok folytonos öszetett jelenség írható le vektorizációval: egy raszterpontokból álló kép leírható alapalakzatok (körök, vonalak, és koordinátáik) segítségével (vektorgrafika). Egy zeneszámot MIDI formátumban szintén alap hang és ritmusegységek írnak le, stb.
Subband kódolásCsak bizonyos frekvenciatartományba eső jeleket transzformáljuk (pl. telefon: 0-4 kHz). Egy adattömörítési eljárás.: csak bizonyos frekvenciatartományba eső jeleket transzformáljuk (pl. telefon: 0-4 kHz)
Predikció vagy relatív kódolásA kódolás olyan eljárás, amelynek során a kiindulási adatokat más formátumúvá alakítják át. Ehhez természetesen szükség van egy kódrendszerre, illetve a konkrét kódolási eljárás lépéseire. A kódolásra azért lehet szükség, mert a különböző informatikai rendszerek különbözőképpen értelmezik az információt. A kódolt információból aztán a dekódoló eljárások segítségével kapjuk meg az eredeti adatokat. Például a számítógép-hálózatokban az elektronikus levelek csak ASCII karaktereket tartalmazhatnak. Az olyan jeleket, amelyek nem szerepelnek az ASCII táblázatban, a vevő oldal hibásan értelmezné, ezért ezeket kódolás segítségével ASCII formátumúvá kell alakítani. Mivel az átalakítás során az üzenet mérete megnő, érdemes azt a kódolás előtt tömörítésnek alávetni.: ha az egymást követő jelek nem sokban térnek el egymástól, akkor elég a kis különbségeket kódolni.
Például a PCM Pulzus Kód Modulációnál a beszédet 8 kHz-el mintavételezve 8 bites felbontással (kvantálással) -> 64 kbit/s adatfolyam keletkezik. Kisebb sebességű adatfolyam adódik, ha csak a mintavételezett jelek változását kódoljuk. Ez a Delta PCM.
Ezek az előbbiekben felsorolt módszerek a gyakorlatban mind használhatók, a be- és kitömörítést programok, vagy jelenleg már egyre inkább hardwareAngol kifejezés, fizikai eszköz (hardver, vas) (egy chip) segítségével oldják meg.