LÄHTEENKOODAUS Mikä on lähteenkoodauksen perusidea? A Tietoliikennetekniikka II Osa 20 Kari KärkkäinenSyksy 2015.

Slides:



Advertisements
Samankaltaiset esitykset
makramee-tekniikalla
Advertisements

Komponenttien rakenteellinen tärkeys
Osaamisen ja sivistyksen parhaaksi Tilatiedot ja niiden muutokset
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
ASK - Amplitude Shift Keying Timo Mynttinen1 ASK-Amplitude Shift Keying •Otetaan erikoistapauksena tilanne, jossa informaatiosignaalina s(t) on kantataajuinen.
JavaScript (c) Irja & Reino Aarinen, 2007
Virheen havaitseminen ja korjaus
ERILAISIA LOHKOKOODAUSMENETELMIÄ
Ohjelman perusrakenteet
Entropiakoodaus, Entropy Coding
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
NAND I-SOP NOR KOMBINAATIOPIIRIT & 1 & A B A B
Kuvan pakkaaminentMyn1 Kuvan pakkaaminen •Bittikarttakuva muodostuu kuvapisteistä, ja jokaisessa kuvassa on tietty määrä kuvapisteitä pysty- ja vaakasuunnassa.
Sisältö: Johdanto kryptografiaan Salakirjoitus
JATKUVAN AWGN-KANAVAN KAPASITEETTI — SHANNON-HARTLEY -LAKI
LÄHTEENKOODAUS.
M-ary Phase Shift Keying Timo Mynttinen1 M-ary Phase Shift Keying M-ary FSK:ssa huomattiin, että on mahdollista lähettää kaksi tai useampi symbolitila.
INFORMAATIOTEORIA & KOODAUS TÄRKEIMPIEN ASIOIDEN KERTAUS
Tietoliikennetekniikka II AKari KärkkäinenOsa 24 1 (10) LOHKOKOODATUN JA KOODAMATTOMAN JÄRJESTELMÄN SUORITUSKYKYJEN VERTAILU.
KANTATAAJUINEN BINÄÄRINEN SIIRTOJÄRJESTELMÄ AWGN-KANAVASSA
Prosenttilaskua, tiivistelmä
FSK-Frequency Shift Keying
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
Lineaarinen lohkokoodaus, Block Coding
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Ohjelman perusrakenteet
Syksy 2001Johdatus bioinformatiikkaan / T. Pasanen 1 7. Monirinnastus Geeni perhe: ryhmä läheisiä toisilleen sukua olevia geenejä, jotka koodaavat samankaltaisia.
2. Vuokaaviot.
m0 M7 Maksimitermi Minimitermi Boole A = A A · 0 = 0 SOP De Morgan POS
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Johtokoodaus Historia, toiminnalliset syyt ja toteutustapojen hintaerot ovat johtaneet eri johtokoodaustapojen kehittämiseen. Hyvälle johtokoodaukselle.
Tiedostomuodot Jussi Talaskivi atk-suunnittelija Jyväskylän yliopisto.
PARAABELI (2. ASTEEN FUNKTION KUVAAJIA)
Muuttujien riippuvuus
5. Lineaarinen optimointi
Kontrollirakenteet laajemmin
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä 2 - Jirka Poropudas Optimointiopin seminaari - Kevät 2005 / 1 Bayes-verkoista s
INFORMAATIOTEORIAN JA KOODAUSMENETELMIEN PERUSTEET
Funktio.
Todennäköisyyslaskentaa
S ysteemianalyysin Laboratorio Aalto-yliopiston teknillinen korkeakoulu Ohjaamaton oppiminen– Heikki Vesterinen Optimointiopin seminaari - Syksy 2010 Ohjaamaton.
5. Fourier’n sarjat T
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Esitelmä # - Esitelmöijän nimi Optimointiopin seminaari - Syksy 2000 / 1 Potentiaalien kertaus ja.
Kiikuista jatkoa.
13. Nopeus kuvaa liikettä Nopeus on suure, joka kertoo kuinka kappaleen paikka muuttuu ajan suhteen. Nopeus on vektorisuure. Vektorisuureen arvoon liittyy.
TURBOKOODAUS Miten turbokoodaus eroaa konvoluutiokoodauksesta? A Tietoliikennetekniikka II Osa 26 Kari KärkkäinenSyksy 2015.
SYMBOLIVIRHETODENNÄKÖISYYDESTÄ BITTIVIRHETODENNÄKÖISYYTEEN
Matematiikkaa 3a, Kertausjakso Lukuja © Varga–Neményi ry 2016
Amplitudimodulaatio Amplitudimodulaatiossa moduloiva signaali muuttaa kantoaallon voimakkuutta eli amplitudia. Kantoaallon taajuus pysyy koko ajan samana.
Tiedonsiirtotekniikka 2
INFORMAATIOTEORIA & KOODAUS TÄRKEIMPIEN ASIOIDEN KERTAUS
BINÄÄRISET TIEDONSIIRTOMENETELMÄT TÄRKEIMPIEN ASIOIDEN KERTAUS
Syventävä matematiikka 2. kurssi
Y56 Luku 21 Yrityksen teoria: kustannuskäyrät

13. Loogiset operaatiot.
16. Ohjelmoinnin tekniikkaa
14. Hyvä ohjelmointitapa.
Tasaisen liikeen malli
TYNKÄSIVUKAISTAMODULAATIO (VSB)
KVANTISOINTIKOHINA JA AWGN-KOHINAN vaikutus PULSSIKOODIMODULAATIOSSA
Kontrollirakenteet laajemmin
LUKU 1 TIETOLIIKENNEJÄRJESTELMIEN ANALYYSI
KYNNYSILMIÖ kulmamodulaatioilla
KANTATAAJUINEN BINÄÄRINEN SIIRTOJÄRJESTELMÄ AWGN-KANAVASSA
LOHKOKOODATUN JA KOODAMATTOMAN JÄRJESTELMÄN SUORITUSKYKYJEN VERTAILU
MONITILAISET TIEDONSIIRTOMENETELMÄT TÄRKEIMPIEN ASIOIDEN KERTAUS
13. Loogiset operaatiot.
Ohjelman perusrakenteet
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

LÄHTEENKOODAUS Mikä on lähteenkoodauksen perusidea? A Tietoliikennetekniikka II Osa 20 Kari KärkkäinenSyksy 2015

LÄHTEENKOODAUKSEN IDEA Lähteen symbolien keskimääräinen informaatio (keskimääräinen epävarmuus) määritellään entropian H(X) avulla, ja se on symbolien esiintymistodennäköisyyksien funktio. Entropia on siis lähteen sisäinen ominaisuus, joka ei muutu millään tempulla. Lähteen tuottamien symbolien symbolinopeuteen voidaan sen sijaan vaikuttaa lähteenkoodauksella poistamalla symbolijonosta epäsystemaattista redundanssia. Pidentämällä symbolin tai bitin kestoa (T S,T B ) ̶ redundanssia poistamalla ̶ parametri z (E S /N 0, E b /N 0 ) kasvaa ja siten P E pienenee modulaatiolle, mistä siis motivaatio lähteenkoodaukselle. Matkapuhelimessa puhekooderi-dekooderi-pari suorittaa lähteen koodauksen ja alkuperäisten symbolien palautuksen. Esim. puolittamalla puheen bittinopeus, saadaan järjestelmän samanaikaista palvelukapasiteettia kasvatettua (esim. tukiasemasolun alueella) käytettävissä olevalla vakiokaistanleveydellä  toinen käyttäjä voi käyttää säästyneen osan solun välityskyvystä. Vrt. lankapuhelimen PCM-koodauksen nopeus on 64 kbs (vakiopituiset A/D-muunnetut sanat/näyte), kun älykkäällä matkapuhelimien koodereilla päästään alle 10 kbs puheen laadun kärsimättä. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 2

LÄHTEENKOODAUKSEN IDEA Puhekoodereissa puhe parametrisoidaan ja nuo parametrit lähetetään tavanomaisen suoran A/D-munnoksen sijaan. Dekooderissa puhe regeneroidaan eräänlaisella suodatinmallilla lähetettyjen parametriarvojen perusteella. Lähteenkoodauksen perusideaa valottaa parhaiten Morse-koodaus: annetaan eniten esiintyvälle lähteen tuottamalle tekstisymbolille (englannin kielessä e-kirjain) lyhin mahdollinen symbolikoodi ja harvemmin esiintyvälle pitempi. Näin lähteen tuottamaa ja kanavan näkemää keskimääräistä symbolinopeutta voidaan laskea, eikä tekstin informaatiosisältöä kuitenkaan menetetä. Kalle Päätalon Iijoki-sarja mahtuu Morse-koodattuna siis paljon pienempään tiedostokokoon kuin vakiolevyisesti ASCII-koodattuna. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 3

MORSE-KOODAUS & MUITA KIRJAINKOODEJA Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 4

ASCII-KOODAUS Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 5

LÄHTEEN INFORMAATIONOPEUS Koska H(X):n yksikkö on [bittiä/symboli], lähteen informaationopeus R S [bittiä/sekunnissa] saadaan kertomalla lähteen entropia lähteen tuottamien symbolien symbolinopeudella r [symbolia/sekunnissa]: R S = r  H(x) [bit/s]. Lähteenkoodauksessa siis pyritään pienetämään r:n arvoa, koska lähteelle ominaista H(X):n arvoa ei pystytä pienentämään. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 6

SHANNONIN 1. TEOREEMA = LÄHTEENKOODAUS Lähde on liitetty diskreettiin kanavaan, jonka kapasiteetti on C [bittiä/symboli]. Lisäksi kanavan symbolinopeus ─ siis modulaatio- menetelmän siirtonopeus ─ on S [symbolia/sekunnissa]. Tällöin informaation välitysnopeus on S  C [bittiä/sekunnissa]. Näin kanavan kapasiteetti on ilmaistu ”insinöörimäisemmällä” yksiköllä verrattuna C-parametriin. Shannonin 1. teoreema (lähteenkoodausteoreema): Olkoon annettu kanava ja lähde, joka tuottaa informaatiota pienemmällä nopeudella kuin on kanavan kapasiteetti. Tällöin on mahdollista koodata lähde siten, että lähteen tuottama informaatio voidaan siirtää kanavassa. Se on olemassaoloteoreema, koska se ei kerro miten nuo lähteenkoo- dauskoodit löydetään. On kehitetty erilaisia lähteenkoodausmene- telmiä. Noita ns. zippaus-algoritmeja käytetään redundanssin poistamiseen/tiedon pakkaamiseen. Tässä tarkastellaan vain yksinkertaisia Shannon-Fano ja Huffman - koodauksia. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 7

LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON Olkoon symbolien A ja B esiintymistodennäköisyydet 0.9 ja 0.1. Lähteen symbolinopeus r = 3.5 symb/s ja H(X) = –0.1  log – 0.9  log = bit/symb. Symbolit voidaan kuvata BSC-kanavalle lukuina 0 ja 1. Olkoon järjestelmän siirtonopeus S = 2 symb/s ja olkoon BSC-kanavan kapasiteetti C = 1 bit/symb, jolloin kanavan kapasiteetti informaationopeudella mitattuna: S  C = 2 bit/s. Koska lähteen tuottama symbolinopeus 3.5 symb/s on suurempi kuin kanavan kapasiteetti 2 symb/s, ei lähdettä voida suoraan yhdistää kanavaan, mutta sopivalla lähteenkoodauksella se on mahdollista, sillä lähteen informaationopeus r  H(X) = 3.5  (0.469) = bit/s on pienempi kuin 2 bit/s (Shannon 1. –ehto toteutuu). Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 8

Ideana n-asteen laajennuksessa on ryhmitellä lähteen tuottamat symbolit n:n alkuperäisen peräkkäisen symbolin ryhmäksi, eli uudeksi symboliksi, jolle sitten annetaan uusi koodi siten, että todennäköisin uusi symboli saa lyhyimmän koodin ja epätodennäköisin pidemmän. Kanavan näkemää lähteen symbolinopeutta voidaan näin pienentää, koska koodisanan keskimääräinen pituus lyhenee. 1. asteen laajennus tarkoittaa lähtötilannetta (vielä koodaamatonta tapausta), 2. asteen laajennus 2 symbolin ryhmittelyä, jne.. Kuvan 11.8 esimerkissä 1. asteen laajennus ei siis vielä riitä, koska 3.5 symb/s > 2.0 symb/s ja keskimääräinen sanan pituus on 1.0 bitti. LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 9

LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON Lyhin koodisana annetaan todennäköisimmälle uudelle symbolille. Koodisanat saadaan mm. Shannon-Fano tai Huffman -koodauksella. 2. asteen laajennuksessa keskimääräinen sanan pituus on 1.29 bittiä. Koodattujen symbolien (bittien) keskimääräiseksi lukumääräksi yhtä alkuperäistä 2 symbolin ryhmää kohden muodostuu 2. asteen laajennuksessa 1.29/2 = kpl. Kooderin lähdössä näkyy informaationopeus r  L/n = 3.5  (0.645) = koodisymbolia/s, joka on edelleenkin suurempi kuin kanavan välityskyky 2 symb/s. 2. asteen laajennus ei siten vielä riitä. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 10

LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON 3. asteen laajennuksessa keskimääräinen sanan pituus on bittiä. Siten kolmea alkuperäistä symbolia kohden muodostuu keskimäärin L/n = 1.598/3 = kpl uusia symboleita. Tällöin symbolinopeudeksi kooderin lähdössä muodostuu r  L/n = 3.5(0.533) = koodattua symb/s, mikä on pienempi kuin kanavan välityskyky 2 symb/s. 3. asteen laajennus on siten riittävä. Kooderissa tarvitaan puskurointia, jotta kanavan bittinopeus olisi ”tasainen” (lähde tuottaa alkuperäisiä symboleita vakionopeudella). Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 11 Huom: jos lähteellä olisi ollut P(A) = P(B) = 0.5, niin silloin redundanssia ei olisi voitu poistaa, eikä lähdettä olisi siten voitu sovittaa kanavaan (lähteen entropia olisi ollut suurempi). Kuten näemme redundanssin poisto Perustuu symbolien esiintymistodennä- köisyyksien vinouman hyväksikäyttöön, kuten Morse-koodauksessa.

LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON Ennen koodausta on aina tarkistettava, että R S = r  H(X)  S  C. Parametri L/n lähestyy n:n funktiona lähteen entropian arvoa H(X), jonka alle ei millään n:n arvolla päästä. Se on siis lähteenkoodauksen peruslainalaisuus. Kun L/n = H(X), lähteenkoodauksen tehokkuus on 100%. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 12

MÄÄRITELMIÄ Edellä ei vielä tullut ilmi miten eripituiset koodit käytännössä muodostetaan. Lähdekoodeihin liittyy muutamia peruskäsitteitä. Aakkosto on symbolien joukko, jota käytetään kanavan yli tapahtuvassa siirrossa. Binäärinen sisältää symbolit {0} ja {1}. Sanan pituus on symbolien lukumäärä koodisanassa. Koodi voi olla lohkottainen (block) tai lohkoton (non-block). Lohkottaisessa koodissa lähdesymbolit ryhmitellään määrätyn pituiseksi jonoksi (esim. 8 bitin ASCII-koodi). Morse-koodi on lohkoton. Yksikäsitteisesti dekoodattavissa olevat koodit voidaan dekoodata ilman välimerkkejä (alku- ja loppukohdat voidaan päätellä muuten). Tuollaisia koodeja käytetään lähteenkoodauksessa, ja ne voidaan jaotella edelleen välittömästi tai ei-välittömästi dekoodattaviksi koodeiksi rippuen siitä tarvitseeko seuraavia symboleita ottaa huomioon tehtäessä dekooderissa päätöstä vastaanotetusta lähdekoodisanasta Jälkimmäisessä tapauksessa dekooderilla on maksimissaan pisimmän laillisen koodisanan mittainen dekoodausviive. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 13

MÄÄRITELMIÄ Välittömästi dekoodattavissa oleva koodi ei ole minkään muun käytetyn koodin etuliite, joten päätös voidaan tehdä prosessorilla heti, kun dekooderissa havaitaan laillinen koodisana. Lähteenkoodauksessa tarvitaan muistia (puskurointia) datanopeuksien sovittamiseen jollakin nopeudella toimivaan modulaattoriin ja viiveellisten dekoodausoperaatioiden tekemiseen prosessorilla. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 14

LÄHTEENKOODAUKSEN TEHOKKUUS Lähteenkoodauksen hyvyyttä kuvaa käsite tehokkuus (efficiency), joka määritellään keskimääräisen koodisanan pituuden pienimmän mahdollisen arvon ja koodauksella saadun keskimääräisen sananpituuden suhteena. Se ilmaistaan yleensä prosentteina. Minimiarvolle voidaan todistaa aakkoston koosta D riippuva lauseke. Kun D = 2, muuttuu kaava helposti muistettavaan muotoon. Kun tehokkuus on 100%, keskimääräinen sananpituus on saavuttanut entropian H(X) arvon (kts. kuva 11.9). Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 15

SHANNON-FANO-KOODAUS Tarkastellaan kahta lähteenkoodausmenetelmää, joilla aiemmin esitetty laajennustekniikka voidaan käytännössä toteuttaa. Shannon-Fano -menetelmä tuottaa välittömästi dekoodattavissa olevan koodin (koodisanat eivät ole toistensa jatkeita). Koodausproseduuri: Lajittele lähdesymbolit 1. sarakkeeseen pienenevän todennäköisyyden mukaiseen järjestykseen. Jaa järjestetty joukko kahteen todennäköisyyksiltään mahdollisimman tasasuureen osajoukkoon (kyseessä osajoukon symbolien todennäköisyyksien summa) ja merkitse jakokohta viivalla A–A’. Muodostetaan sanan 1. bitti siten, että jakoviivan A–A’ yläpuolelle tulee 0 ja alapuolelle 1 (voisi olla myös toisinkin päin, koska valinnalla ei merkitystä koodin pituuden kannalta, sillä kyseessä on sopimusasia). Jatka proseduuria kunnes kaikki jäljelle jääneet alijoukot on käsitelty samalla tavalla uusiksi alijoukoiksi todennäköisyyksien perusteella jakaen (kannattaa merkitä aina uudet jakoviivat). Lopulta kussakin alijoukossa on vain 2 jäsentä, joista ylempi tuottaa luokkaa vastaavaan koodisanan viimeiseksi ”häntäbitiksi” nollan ja alempi ykkösen. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 16

SHANNON-FANO-KOODAUS Koodin tehokkuudeksi saadaan H(X)/L = 2.75/2.75 = 100%, koska alijoukkoihin jako todennäköisyyksien summan perusteella meni aina sopivasti tasan. Jos jako ei olisi mennyt tasan, tehokkuus olisi jäänyt alle 100%:n. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 17

HUFFMAN-KOODAUS Huffman-koodaus tuottaa lyhimmän mahdollisen koodisanan pituuden kullekkin lähde-entropian arvolle. Koodausproseduuri: Järjestä M kpl lähteen tuottamia symboleita pienenevän todennäköisyyden mukaiseen järjestykseen. Yhdistä kaksi viimeisintä (epätodennäköisintä) symbolia X M–1 ja X M uudeksi ekvivalenttiseksi symboliksi, jonka todennäköisyys on yhdistettävien todennäköisyyksien summa p M–1 + p M. Sijoita yhdistetty symboli sellaiseen paikkaan symbolien sarakkeessa, että se on todennäköisyyden mukaisessa järjestyksessä. Jos samat todennäköisyydet omaavia symboleita on useita, on aivan sama mihin kohtaa niiden symbolien joukossa yhdistetyn uuden symbolin sijoitat. Toista edelliset askeleet niin kauan kuin on jäljellä enää vain kaksi yhdistettävää symbolia. Näin olet saanut aikaan ns. koodipuun, jonka juuresta (siis kahdesta viimeksi yhdistetystä symbolista) lähtien luet kunkin koodisanapolun bitit kulkien koodipuuta latvaan saakka ja vielä siten siten, että haarauduttaessa ylöspäin otetaan koodisanaan mukaan nolla ja alaspäin mentäessä ykkönen. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 18

HUFFMAN-KOODAUS Koodin tehokkuus 100%, kuten Shannon-Fano-koodauksellakin samoilla lähdesymbolitodennäköisyyksillä (johtuu X i - tn. sopivasta tasavalinnasta). Saadut sanat ovat tosin erilaiset. Huffman-koodaus on yleensä tehokkaampi kuin Shannon-Fano- koodaus. Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 19

ESIMERKKI 1 Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 20

ESIMERKKI 2 Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 21

ESIMERKKI 3 Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 22

ESIMERKKI 4 Syksy A Tietoliikennetekniikka II Osa 20 Kari Kärkkäinen 23