Formátumok adattömörítés

A cikk foglalkozik szórt spektrumú és hozzáférési típusú tömítés. Ez leírja az alapvető jellemzők és előnyök minden megközelítés.

elvei és jellemzői működésének demoduiáiásához logaritmikus erősítők tartják be részletesen. A funkciók a népszerű az AD8307 erősítő fejlesztők. Ez határozza meg a hatálya használata logaritmikus erősítők.

Táblázat. 1. Osztályozás módszerek tömörítési: veszteségmentes és veszteséges

Képek az interneten továbbítják egy jó példa arra, hogy miért van szükség tömörítés. Tegyük fel, hogy azt szeretnénk, hogy az internetről letöltött digitális színes fénykép segítségével 33,6 Kbit / s modem. Ha a kép nem tömörített (például ez TIFF-fájl), akkor összege körülbelül 600 KB. Ha tömöríteni képek elvesztése nélkül (GIF-fájl) csökken a mérete körülbelül 300 KB. tömörítési eljárás veszteséges (JPEG-formátum) csökkenti a fájl méretét legfeljebb 50 KB. A terhelés a három fájlt 142, 72, illetve 12. Ez egy nagy különbség. JPEG ideális digitális fényképek, míg a GIF képekhez használt csak levonni.

A második út besorolásának tömörítési módszerek 2. táblázat mutatja a legtöbb tömörítő programok működnek ezek a csoportok, amelyek a felvétel a forrás fájl tömörítve és bekerül a kimeneti fájlba. Például az egyik ilyen módszer a CSQ (durvább mintavételezés és kvantálás - pontatlan mintavétel és digitalizálás). Tegyük fel, hogy tömörített digitális jelet, például egy audiojel, amely digitalizált, hogy 12 bites. Lehet olvasni a két szomszédos minta a forrás fájl (24 bit) megválni egy minta teljesen megválni a legkevésbé szignifikáns 4 bit a másik mintát, majd írja be a maradék 8 bit a kimeneti fájl. Amikor a 24 bemeneti bitek és 8 kimeneti képarány veszteséges algoritmus 3: 1. Ez a módszer rendkívül hatékony, ha használják kompressziós transzformáció. az alapja a JPEG algoritmus.

Táblázat. 2. Besorolás tömörítési módszerek: állandó és változó csoport mérete

A módszer CSQ rögzített számú bitet kiolvassuk a bemeneti fájl, és egy kisebb fix szám írva, hogy a kimeneti fájl. Más tömörítési technikák lehetővé teszik, hogy a változó számú bitet olvasni vagy írni. Az ok, amiért a táblázatban nincs bejelentkezve JPEG és MPEG, hogy az alkatrész algoritmusok, amely egyesíti a különböző egyéb módszerekkel.

Adatállományok tartalmazzák az azonos karakterek sokszor ismétlődik a sorban. Például a szöveges fájlokat elválasztására használt terek javaslatok behúzás, táblázat, stb A digitális jelek is tartalmazhat azonos értékeket, jelezve, hogy a jel változatlan marad. Például az éjszakai égbolt kép tartalmazhat egy hosszú sorozat karakter a sötét háttér és a digitális zene lehet egy hosszú sor nullákkal zeneszámok között. RLE-kódolás (Run-length encoding - run-hosszúságú kódolás) egy módszer a tömörítés ilyen típusú fájlokat.
1. ábra Az elv a kódoló az adatok sorrendje a gyakori ismétlés egy sor nullákkal. Amikor nulla felmerült a bemenet, a kimenet meg van írva a két érték: nulla, jelezve az elején a kódolás és a nullák száma a sorozatban. Ha az átlagos futási hossza nagyobb, mint a két, tömörítés nem történik. Másrészt, sok egyszeri nullák adatokat vezethet az a tény, hogy a kódolt fájl nagyobb lesz, mint az eredeti.

Ábra. 1. példa RLE-kódolás

Bemeneti adatok lehet tekinteni, mint egyedi bájt, illetve csoportok, mint a lebegőpontos számok. RLE-kódolás csak akkor lehet használni abban az esetben azonos előjelű (abban az esetben nulla a fenti példában), több karakter vagy az összes karaktert.

Ezt a módszert fejlesztette ki Huffman az 1950. A módszer alapja az a relatív előfordulási gyakorisága az egyes elemek. Közös elemek által kódolt rövidebb bitsorozatot. A 2. ábra egy hisztogram az értékek nagy byte ASCII fájlt. Több, mint 96% -a fájl áll 31 karakter, kisbetűk, szóköz, vessző, pont, és egy kocsi vissza.

Az algoritmus hozzárendeli mind az öt-bites szabványos bináris kódjelek program 00000 = a, 00001 = b, 00010 = c, stb Ez lehetővé teszi a 96% -át a fájlt, hogy csökkentse a hangerőt, hogy 5/8. Az utóbbi kombináció 11111 azt jelzi, hogy az átvitt jel nem szerepel az a csoport, 31 szabványos karaktert. A következő nyolc bit fájl azt mutatják, hogy egy karakter ASCII sootovetstvii standard feladat. Így, 4% a szimbólumok a bemeneti fájl bemutatási igényelnek 5 + 8 = 13 bit.

Az elv a algoritmus rendelni a gyakran használt szimbólumok kevesebb bittel és ritkán előforduló karakterek - a nagyobb számú bit. Ebben a példában, az átlagos száma szükséges bitek forrás szimbólum, egyenlő 0,96. 5 + 0,04. 13 = 5,32. Más szavakkal, a teljes tömörítési arány 8 bit / 5,32 biteket, vagy a 1.5. 1.

Ábra. 2. hisztogram ASCII szöveges rész értékei ezt a cikket

A 3. ábra egy egyszerűsített diagramját a Huffman. A kódkönyv tartalmazza valószínűsége szimbólumokat használható egy G, elérhető az eredeti adatok szekvenciát, és megfelelnek. Változó hosszúságú kódok vannak sorolva nyolcas csoportokban bites szabvány. Kicsomagoláskor az adatokat az összes csoportok vannak elhelyezve egy szekvencia nullák, amely lehetővé teszi, hogy elválasszuk a adatfolyam segítsége nélkül markerek. Feldolgozás adatfolyam, a kivonat a program létrehoz egy érvényes kódot, majd továbbmegy a következő karaktert. Egy ilyen módszer alkotó kódot ad egyértelmű az adatok olvasását.

A „delta-kódoló” kifejezés megőrzése több módszer vagy adat formájában a különbség az egymást követő minták (vagy szimbólumok), de nem megőrizni minták magukat. A 4. ábra egy példát mutat a mechanizmus működésének. Az első érték a kódolt fájl ugyanaz, mint az eredeti. Az összes alábbi értékeket a kódolt fájl megegyezik a különbség a megfelelő és az előző értékeket a bemeneti fájl.

Ábra. 4. példa delta kódoló

Delta kódolását az adattömörítés, az eredeti fájl, ha az értékek nagyon simán. azaz a különbség a következő értékeket egymást kicsi. Ez nem így van, az ASCII szöveg, végrehajtható kódot, de ez egy gyakori eset, amikor az információ formájában érkezik a jel. Például, ábra az 5a ábra egy audio-fragmenst digitalizált 8 bit, és az összes mintát értékei egy tartományban -127-127. Ábra 5b tartalmazza a kódolt változata a jel, a fő különbség az eredeti jel, amely a kisebb amplitúdójú. Más szóval, a delta kódolás megnöveli annak valószínűségét, hogy minden minta értéke közel nulla, és annak a valószínűsége, hogy ez jóval nagyobb, mint ez az érték kicsi. Az egyenetlen eloszlása ​​a valószínűsége dolgozó Huffman. Ha az eredeti jel nem változik, vagy változik lineárisan, így a delta-kódolás lesz minta a sorozat ugyanazokat az értékeket, működik RLE-algoritmus. Így a szabványos fájl tömörítési módszert használ, delta kódolás, majd alkalmazása egy módszer vagy Huffman RLE-kódolás.

Ábra. 5. példa delta kódoló

Mechanizmusa delta kódolás lehet terjeszteni egy teljesebb módon, az ún lineáris prediktív kódolási (Linear Predictive Coding, LPC).
Ahhoz, hogy megértsük ezt a módszert, azt képzeljük lett kódolva az első 99 mintát a bemeneti jel, és szükséges, hogy a kiválasztás szám 100. Kíváncsiak vagyunk, mit valószínűleg a jelentősége? A delta-kódolás a válasz erre a kérdésre az a feltételezés, hogy az érték az előző, a 99. minta. Ez várható értéket alkalmazzuk referenciaérték a kódolás a minta 100. Így, a különbség a minta érték és a várakozás kerül a kódolt képet. LPC módszer meghatározza a legvalószínűbb érték alapján az elmúlt néhány mintát. A felhasznált algoritmusok ez érvényes Z-transzformáció és egyéb matematikai módszerek.

példa kódkönyv

Ábra. 6. példa kompressziós szerinti kódolási táblázat

LZW eljárással tömöríti adatok segítségével 256-4095 képviselő kódok bájtok sorozata. Például, a kód 523 jelenthet szekvenciát három bájt: 231 124 234. Amennyiben a szekvenciáját tömörítési algoritmus érzékeli a bemeneti fájl, a fájl kerül a kódolt kód 523. A kicsomagolása a kód 523 alakítjuk át egy táblázatot az eredeti szekvenciája három bájt. Minél hosszabb a szekvencia azonosságát hozzárendelhető kódot, és minél gyakrabban ismételjük, annál nagyobb a tömörítési arány.
Két fő akadálya a módszer alkalmazásáról rugók: 1) hogyan kell meghatározni, amelyek szekvenciáját meg kell határozni a kód táblázat, és 2) annak biztosítása, hogy a program tömörítse ugyanannál az asztalnál, amely egy tömörítő program. LZW algoritmus képes megoldani ezeket a problémákat.

Amikor a program elindul LZW kódolni a fájlt, a táblázat csak az első 256 bejegyzés - a többi üres. Ez azt jelenti, hogy az első kód kapott a tömörített fájl egyetlen byte a forrás fájlt kell alakítani 12 bites csoportok. A folytatása a kódoló algoritmus a LZW ismétlődő adatsorok és hozzáteszi, hogy a kód táblázat. Compression akkor kezdődik, amikor a sorozat ismét megtalálható. A módszer lényege az, hogy a szekvencia a bemeneti fájl nem adódik hozzá a kód táblázat, ha már került egy tömörített fájl, mint egyetlen karakter (kódok 0-255). Ez egy fontos feltétel, mert lehetővé teszi, hogy a program visszaállítja a kicsomagolás kód táblázat közvetlenül a tömörített adatokat, anélkül, hogy szükség van a különböző átviteli.

A több tömörítési algoritmusok veszteséges transzformációs kódolás volt a legnépszerűbb. A legjobb példa erre a módszer - a népszerű JPEG szabvány (Joint Fotósok Experts Group - közös szakértői csoport a gépi feldolgozás fotografikus kép). Vegyük példának a munkát a JPEG tömörítési algoritmus veszteséges.

Már tárgyalt egyszerű módszer a tömörítés a veszteségek CSQ, amely csökkenti a bitek számát a minta, vagy teljesen dobni néhány minta. Mindkét vétel lehet elérni a kívánt eredményt - a fájl kisebbé válik jel minőségromlás. Nyilvánvaló, hogy ezek az egyszerű módszerek nem működnek a legjobban.

Compression átalakulás alapján egyszerű feltétel: az átalakított jelet (például a Fourier-transzformáció) kapott adatok értékei nem hordozza ugyanazt a forgalmi terhelés. Különösen az alacsony frekvenciájú jelet alkatrészek kezdik játszik fontosabb szerepet, mint a nagyfrekvenciás komponenseket. Eltávolítása 50% a bitek a nagyfrekvenciás komponensek, például az eltávolítását csak 5%, a kódolt információ.

7. ábrából látható, hogy a JPEG-tömörítés kezdődik elosztjuk a képet a csoport mérete 8 × 8 pixel. Teljes JPEG algoritmus még nem dolgozott a legkülönbözőbb bit per pixel, beleértve a szín információt. Ebben a példában, minden egyes pixel egy egyetlen bájtos, egy szürke skála a tartományban 0-255. Ezek a csoportok a 8 × 8 pixel kerülnek feldolgozásra, amikor összenyomott függetlenül. Ez azt jelenti, hogy minden csoport első 64 bájt képviselte. A transzformációt követően és eltávolítását az egyes csoportok az adatok képviseli, például a 2-20 byte. Kicsomagoláskor a tömörített fájlt igényel azonos számú byte az közelítése az eredeti csoport a 8 × 8. Ezeket a csoportokat azután közelíteni egymáshoz, újra a tömörítetlen kép. Miért érdemes a csoport mérete 8 × 8, × 16, és nem 16? Ez a csoportosítás ben alakult alapján a lehető legnagyobb méretet, ami működött a chip idején fejlesztés a szabvány.

Ábra. 7. példa a JPEG-tömörítési eljárás. Három csoport 8? Látható 8 nagyított nézetben értékeket képviselik az egyes pixelek

Sok különböző transzformációk vizsgálták végrehajtásához tömörítési eljárások. Például Karhunen-Loeve átalakítani a legmagasabb tömörítési arány, de ez nagyon nehéz végrehajtani. Fourier transzformációs módszer végrehajtása sokkal könnyebb, de ez nem ad elég jó tömörítés. A végén, a választás készült javára a különböző Fourier módszer - DCT (diszkrét koszinusz transzformációt - DCT).

A JPEG algoritmus a példa mutatja, hogy több tömörítési egyesítjük, így nagyobb hatékonyságot. Minden JPEG tömörítési eljárás során az alábbi lépéseket:
- a kép van osztva csoportok 8 × 8;
- mindegyik csoport átalakul egy transzformáció DCT;
- minden egyes spektrális elem 8 × 8 csökkentésével tömörítik a bitek száma és törlése egyes alkotórészei a kvantálási táblázat;
- egy módosított spektrumot átalakul egy sor 8 × 8 lineáris szekvenciát, az összes nagyfrekvenciás komponenseket, amelyek vannak elhelyezve a végén;
- egy sor nullákkal tömörítéshez RLE módszerrel;
- szekvenciát kódolt vagy Huffman vagy aritmetikai módszerekkel, hogy készítsen egy tömörített fájl.

1. Steven W. Smith, adattömörítés bemutató 1. rész, 2. rész, 3. rész.