1 / 14

Adattömörítés Huffmann-kód

Készítette : Mester Tamás METRABI.ELTE. Adattömörítés Huffmann-kód. A tömörítés célja általában. Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal.

madison
Download Presentation

Adattömörítés Huffmann-kód

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Készítette: MesterTamás METRABI.ELTE AdattömörítésHuffmann-kód

  2. A tömörítés célja általában • Egy bemeneten kapott szöveg(karakter sorozat) méretét csökkenteni, minél kisebb méretűre minél hatékonyabb algoritmussal. • Különböző tömörítési eljárások ugyanazon bemeneten különböző méreteket eredményezhetnek.

  3. A Huffmann-kód alapelve • Adott egy ábécé és egy ezen ábécé feletti szöveg. • Példa input KAKUKKMADARAMNAKábécé: {K, A, U, M, D, R, N} • Az algoritmus alapelve: Karakterek változó kódhossza, a szövegbeli gyakoriságuknak megfelelően. Pl.: ‚e’ vs. ‚w’ ; ebben az esetben az ‚e’ betű egy gyakori betű, míg a ‚w’ ritka. Ennek megfelelően az ‚e’ betűnek egy rövid kódhosszat kell választani, míg a ‚w’ kódja lehet hosszabb.

  4. Cél • Egy olyan algoritmus a kód előállítására, hogy az eredmény optimális legyen, azaz optimális legrövidebb kódolást alkotó algoritmust adjunk. • A példában 7 karakter szerepel, uniform módon (3 biten ) kódoljuk őket. • 16 karakter * 3 bit = 48 bit, ezen kellene javítani • Alapvető nehézség lenne a kódolt szöveg visszafejtésében a következő. Tfh.: K 10, A 101 és a kódolt szöveg 1010. Ebben az esetben nem lenne visszakódolható a szöveg, ezért ne engedjük meg azt,hogy egyik betű kódja a másik valódi prefixuma legyen!

  5. Követelmény • Egy prefixmentes-kód • Ha minden karaktert ábrázolunk, akkor megkapjuk a kódfát. Ebben a fában minden belső pontnak 2 gyereke van. • A betűk a leveleken jelentkeznek, kódjuk a gyökér -> levél útvonal 0/1 szelektorainak sorozata.

  6. Az algoritmus ADS szinten • Az algoritmus inputja: betűk és gyakoriságaik (tehát először kell egy végigolvasás a statisztika elkészítéséhez) • Az algoritmus egy fát épít fel alulról-felfelé, kezdve a ritka betűkkel (karakterekkel) fokozatosan bekapcsolva a gyakoribbakat. • Minden lépésben két csúcsot „fogunk össze”, a két gyakoriság összegével. • Miután végeztük a Huffmann-kód tábláját is átkell adni a dekódoló félnek!

  7. Szemléletesen 1. input: K-5, A-5, U-1, M-2, D-1, R-1, N-1 5 1 5 1 1 1 2 A N K U D R M

  8. Szemléletesen 2. 2 1 0 5 1 5 1 1 1 2 A N K U D R M

  9. Szemléletesen 3. 2 2 1 1 0 0 5 1 5 1 1 2 1 A N K D R M U

  10. Szemléletesen 4. 4 1 0 2 2 1 1 0 0 5 1 5 1 1 2 1 A N K D R M U

  11. Szemléletesen 5. 6 1 4 1 0 0 2 2 10 1 1 0 1 0 0 1 1 1 5 2 1 5 N D R K M U A

  12. Szemléletesen 6. 16 1 6 1 0 4 1 0 0 2 2 10 1 1 0 1 0 0 1 1 1 5 2 1 5 N D R K M U A

  13. Az algoritmus eredménye • Karakterek kódtáblája: • Kódolt karaktersorozat hossza:5*2+5*2+2*2+4*4 = 40 bit, ami jobb, mint az eredeti 48 bit!

  14. Köszönöm a figyelmet!

More Related