Entropiakoodaus, Entropy Coding - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Entropiakoodaus, Entropy Coding

Description:

Entropiakoodaus, Entropy Coding Tiedon tiivist minen muodostaa laajan asiakokonaisuuden tietoliikennetekniikassa. Tiedon tiivist misen malleihin liittyy k site ... – PowerPoint PPT presentation

Number of Views:95
Avg rating:3.0/5.0
Slides: 25
Provided by: MAMK9
Category:

less

Transcript and Presenter's Notes

Title: Entropiakoodaus, Entropy Coding


1
Entropiakoodaus, Entropy Coding
  • Tiedon tiivistäminen muodostaa laajan
    asiakokonaisuuden tietoliikennetekniikassa.
  • Tiedon tiivistämisen malleihin liittyy käsite
    entropia (entropy).
  • Tietoliikenteessä entropian tunnus on H, ja se
    antaa alarajan koodatun tiedon keskimääräiselle
    sanapituudelle.
  • Jokaiselle mallille voidaan osoittaa, ettei
    entropiaa parempaan tiivistykseen keskimäärin
    voida päästä.

2
  • Tarve tiedon tiivistämiseen on suuri, koska
    siirrettävän tiedon määrä on kasvanut
    moninkertaisesti nopeammin kuin mitä
    siirtotekniikka sallii.
  • Valitun tiivistysmenetelmän (algoritmin) nopeus
    on tärkeä kriteeri, koska sekä tiedon
    tiivistäminen että sen purku pääsääntöisesti
    tapahtuvat siirron aikana.
  • Näin ollen algoritmin on selviydyttävä
    tehtävästään siten, ettei se vaikuta liikaa
    hidastavasti tiedon siirtoon.

3
  • Koodaustapaa mietittäessä tulee ottaa huomioon
    mahdollisuus yksiselitteiseen tulkintaan (unique
    decipherability).
  • Esim. olkoot lähetettävänä 4 sanomaa, sanomat
    M1-M4. Koodataan sanomat binaariseen muotoon
    seuraavasti M11, M210, M301 ja M4101. Jos
    nyt vastaanotetaan bittijono 101, niin ei voida
    yksiselitteisesti tulkita vastaanotettiinko
    sanoma M4, M2M1 vaiko M1M3.
  • Tilanne paranee, jos koodataan kukin sanoma
    siten, että niillä on yksiselitteinen etuliite.
    Siis esim. M11, M201, M3001 ja M40001.

4
  • Otetaan vielä esimerkki koodaustavasta M11,
    M210, M3100 ja M41000. Kyseessä on kylläkin
    yksikäsitteisesti tulkittava koodaustapa, mutta
    tämä ei ole välittömästi (instantaneous)
    tulkittavissa. Esim. Kuvitellaan, että ollaan
    vastaanotettu bitit 10. Tässä vaiheessa ei voida
    olla varma siitä, tuliko vastaanotettua sanoma
    M2, M3 vaiko M4.

5
  • Informaatio ja entropia
  • Määritellään sanoman x informaatiosisältö
    kaavalla
  • .
  • Kaavassa on sanoman x esiintymis-todennäköisy
    ys.
  • Valitaan informaatiosisällön kaavassa logaritmin
    kantaluvuksi 2. Esim. Olkoot ravintolassa yksi
    ruokalista. Ruokalistassa on kaksi vaihtoehtoista
    valintaa, joita kumpaakin valitaan yhtä usein.
    Siispä todennäköisyys sille, että jompaa kumpaa
    ruokalajia tilataan, on 1/2.

6
  • Nyt kaavaan sijoitettuna sanoman
    informaatiosisällöksi saadaan
    . Tulkinta tarvitaan
    yksi bitti kertomaan kumpaa ruokalajia tilataan.
  • Monipuolistetaan ruokalistaa olkoot siellä nyt
    neljä vaihtoehtoa, ja ajatellaan, että kutakin
    lajia tilataan yhtä paljon. Todennäköisyys, että
    tilataan tiettyä lajia on siis 1/4. Sanoman
    informaatiosisällöksi saadaan

  • Tulkinta Jos sanoma
    lähetetään binaarisena, tarvitaan 2
    bittiä/sanoma, esim. 00, 01, 10 ja 11.

7
  • Määritellään entropia sanoman keskimääräiseksi
    informaatiosisällöksi. Olkoot sanomia n
    kappaletta,
  • Määritellään entropia H seuraavasti

8
  • Esim. Järjestelmä koostuu kuudesta sanomasta.
    Vastaavat todennäköisyydet ovat 1/4, 1/4, 1/8,
    1/8, 1/8 ja 1/8. Laske entropia. Entropiaksi
    saadaan
  • bittiä/sanoma.

9
  • Miten kehittää koodaustapa, jossa koodattavat
    sanat olisi koodattu keskimäärin pienimmällä
    mahdollisella bittimäärällä? Koodatut sanat
    tulisi olla yksiselitteisesti tulkittavissa.
  • Määritellään koodatun sanan keskimääräinen pituus
  • Kaavassa on innen koodisanan pituus ja
    on innen koodisanan esiintymistodennäköisyys.
  • Kaavasta nähdään, että mitä useammin sana
    esiintyy, sitä lyhyemmäksi se kannattaa koodata.

10
  • Koodauksen teorioista tiedetään, että
    binaarimuotoisessa koodauksessa keskimääräinen
    koodatun sanan pituus on yhtä suuri tai suurempi
    kuin entropia, siis
  • Jos lähetettävien symbolien lähetystodennäköisyys
    ei ole kaikilla sama, niin silloin lyhin
    keskimääräinen koodatun sanan pituus saavutetaan
    koodaamalla symbolit eri pituisiksi.

11
  • Esim. Oletetaan, että lähetettäviä symboleja on
    neljä eri laista, ja vastaavat lähetystodennäköisy
    ydet ovat 1/8, 1/8, 1/4 ja 1/2. Mielikuvitukseton
    tapa koodata symbolit olisi antaa seuraavat
    binaarivastineet 00, 01, 10 ja 11. Nyt siis
    koodatun sanan keskimääräinen pituus olisi 2
    bittiä/sana.

12
  • Jos sitä vastoin koodattaisiin symbolit
    seuraavasti 111, 110, 10 ja 0, saataisiin
    keskimääräiseksi koodatun sanan pituudeksi

  • 1,75
  • bittiä/koodattu sana.
  • Miten keksitään kullekin mahdolliselle symbolille
    koodaus, joka tuottaa lähetyksessä keskimäärin
    minimipituuden siirrettävälle aineistolle?
  • Tiivistysmenetelmä voi keskittyä käytetyn
    koodiston optimointiin, tai se voi käyttää
    sanakirjaa.

13
  • Koodistoon keskittyvät menetelmät pyrkivät
    optimoimaan merkkien binaarimuotoista koodausta,
    ja sanakirjaa käyttävät menetelmät muistavat
    esiintyneitä sanoja ja niiden osia, eivätkä
    toista niitä uudelleen.
  • Tavallisessa tekstissä käytetty aakkosto
    muodostuu symboleista 0, 1, a, b, å, ä, ö
    sekä joukosta erikoismerkkejä.
  • Tietoliikenteessä aakkosto esitetään jollakin
    sopivalla binaarikoodilla, jonka pituus on joko
    kiinteä tai vaihteleva.

14
  • Sellaiset menetelmät, joilla on olemassa jokin
    tiivistettävästä aineistosta riippumaton malli,
    kutsutaan staattisiksi.
  • Staattisessa menetelmässä sekä lähettäjä että
    vastaanottaja tuntevat etukäteen niin käytettävän
    mallin kuin mahdollisen hakemiston tai aakkoston
    rakenteen.
  • Menetelmä on yksinkertainen, mutta esim.
    englannin kielen merkkijakaumalle laadittu
    menetelmä ei kelpaa käytettäväksi muilla
    kielillä.
  • Malli voidaan määritellä myös siten, että käydään
    läpi siirrettävä aineisto, ja lasketaan aineiston
    merkkien todellinen esiintymisjakauma.

15
  • Kun jakauma on valmis, se siirretään
    vastaanottajalle, ja vasta sen jälkeen ryhdytään
    varsinaiseen tiedonsiirtoon.
  • Tällöin puhutaan puoliadaptiivisesta
    menetelmästä.
  • Heikkoutena on se, että siirrettävä aineisto on
    käsiteltävä kertaalleen ennen lähettämistä. Tämä
    voi olla joskus hankala toteuttaa!
  • Kolmantena vaihtoehtona on mukautuva eli
    adaptiivinen menetelmä, jossa mallia korjataan
    siirron aikana tiedon rakenteen mukaisesti.

16
  • Tietoliikenteessä esitetään yleisesti siirrettävä
    tieto kiinteämittaisilla binaarikoodeilla
    käyttäen esim. 8 bitin ASCII-koodia.
  • Kiinteämittainen koodaus yksinkertaistaa tiedon
    käsittelyä vastaanotossa, koska riittää, että
    tunnetaan merkin pituus ja synkronointimenetelmä.
  • Tiivistys perustuu kuitenkin usein myös merkkien
    vaihtuvamittaiseen koodaukseen.
  • Miten voidaan erottaa koodatut sanat toisistaan,
    jos käytettyjen symbolien koodatut muodot ovat
    erimittaisia?
  • Yhtenä ratkaisuna on etuliitekoodin käyttäminen.

17
  • Etuliitekoodauksen tarkoituksena on koodata
    aakkosto siten, että kunkin symbolin arvo voidaan
    määritellä heti, kun sen viimeinen bitti on
    luettu, ts. koodin alkuosa ei ole minkään toisen
    koodin alkuosa.

18
  • Aritmeettinen koodaus on merkkipohjaisista
    menetelmistä tehokkaimpia, mutta sen
    haittapuolena on tiivistämisen hitaus.
  • Koodaus perustuu tiivistettävien yksiköiden
    (merkkien tai sanojen) todennäköisyysjakaumaan,
    ja tässä kukin yksikkö varaa todennäköisyyttään
    vastaavan välin asteikolla 0,0 - 1,0.
  • Merkkikohtaisten todennäköisyyksien käyttäminen
    aritmeettisessa koodauksessa ei yleensä tuota
    riittävän hyvää tiivistystä.

19
  • Parempaan tulokseen päästään, jos otetaan
    huomioon merkkien keskinäiset riippuvuussuhteet.
    Esim. suomen kielessä kirjaimen k jälkeen ei tule
    koskaan kirjainta b, c, d, f, g, h, j, q, x tai
    z. Se minkälaisia seuraajia klla on, voidaan
    edelleen rajata tarkastelemalla kn edeltäjiä
  • Tunnettuja algoritmeja ovat DMC (Dynamic Marcov
    Coding) ja PPM (Prediction by Partial Matching).

20
  • Kaksi tunnettua etuliitekoodaukseen perustuvaa
    tiivistysmenetelmää ovat Shannon Fano -koodaus ja
    Huffman-koodaus. Menetelmät muistuttavat
    toisiaan, mutta Huffman-koodaus on tehokkaampi.
  • Molemmat perustuvat siihen, että käytetylle
    aakkostolle on olemassa todennäköisyysjakauma,
    jonka perusteella voidaan määritellä tuotettavan
    koodin pituus.
  • Useimmin esiintyvät merkit koodataan pienemmällä
    bittimäärällä kuin harvemmin esiintyvät merkit.
  • Käydään seuraavaksi Huffman-koodauksen perusidea
    läpi.

21
  • Olkoot lähetettävät symbolit
    ja .
  • Vastaavat lähetystodennäköisyydet ovat
  • ja .
  • 1. Listataan 1. sarakkeeseen symbolit laskevassa
    todennäköisyysjärjestyksessä. Lähteen symbolit
    muodostavat puun lehdet.

22
  • 2. Yhdistellään symboleita otetaan kaksi alinta
    todennäköisyyttä ja yhdistetään ne. Tämän
    seurauksena syntyi kaksi oksaa merkitään ylempää
    0 ja alempaa 1 (tai sitten päinvastoin,
    kunhan pysytään koko prosessi loogisesti samassa
    käytännössä!).
  • 3. Toistetaan askel 2 niin kauan kunnes saadaan
    yhdistelmäsymbolin todennäköisyydeksi 1.
  • 4. Koodisanat saadaan lukemalla oikealta
    vasemmalle oksia myöten, katso kuva 1.

23
Tod.näk.
Symboli
Koodisana
0
0
10
0
1
110
0
1
0
1110
1
1
1111
Kuva 1. Esimerkki Huffman-koodauksesta.
24
  • Lempel-Ziv -tiivistys
  • Lempel-Ziv -tiivistysmenetelmät käyttävät
    hyväkseen hakemistoja.
  • Hakemiston avulla vältetään toistamasta aiemmin
    esiintyneitä merkkiyhdistelmiä tai fraaseja.
  • Koodattu tieto muodostuu viitteestä sanakirjaan,
    jonka lähettäjä ja vastaanottaja ovat
    muodostaneet siirron aikana.
Write a Comment
User Comments (0)
About PowerShow.com