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



Samankaltaiset tiedostot
INFORMAATIOTEORIA & KOODAUS TÄRKEIMPIEN ASIOIDEN KERTAUS A Tietoliikennetekniikka II Osa 28 Kari Kärkkäinen Syksy 2015

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

JATKUVAN AWGN-KANAVAN KAPASITEETTI SHANNON-HARTLEY -LAKI

Shannonin ensimmäinen lause

T Privacy amplification

Koodausteoria, Kesä 2014

Koodausteoria, Kesä 2014

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Algoritmit 2. Luento 9 Ti Timo Männikkö

Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM

Algoritmit 2. Luento 13 Ti Timo Männikkö

Informaatioteoria. Lasse Holmström Matemaattisten tieteiden laitos Oulun yliopisto. Kevät f f. f f

esimerkkejä erilaisista lohkokoodeista

Kertaus. x x x. K1. a) b) x 5 x 6 = x 5 6 = x 1 = 1 x, x 0. K2. a) a a a a, a > 0

MAB3 - Harjoitustehtävien ratkaisut:

3 = Lisäksi z(4, 9) = = 21, joten kysytty lineaarinen approksimaatio on. L(x,y) =

Sovellettu todennäköisyyslaskenta B

2.3 Juurien laatu. Juurien ja kertoimien väliset yhtälöt. Jako tekijöihin. b b 4ac = 2

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

2.2 Neliöjuuri ja sitä koskevat laskusäännöt

Algoritmit 1. Luento 8 Ke Timo Männikkö

Johdatus graafiteoriaan

Pikalajittelu: valitaan ns. pivot-alkio esim. pivot = oikeanpuoleisin

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a)

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

4.3. Matemaattinen induktio

Harmaasävykuvien häviöttömästä tiivistyksestä

jakokulmassa x 4 x 8 x 3x

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

y 2 h 2), (a) Näytä, että virtauksessa olevan fluidialkion tilavuus ei muutu.

Koodausteoria, Kesä 2014

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Matematiikan tukikurssi

MS-A0003/A Matriisilaskenta Laskuharjoitus 6

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Juuri 6 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

Yhden muuttujan funktion minimointi

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

MAB3 - Harjoitustehtävien ratkaisut:

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

Matias Sumanen Mittaussignaalin häviötön pakkaaminen. Kandidaatintyö

30A02000 Tilastotieteen perusteet

ELEC-C7230 Tietoliikenteen siirtomenetelmät

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe klo Ratkaisut ja pisteytysohjeet

1. Esitä rekursiivinen määritelmä lukujonolle

Merkitse yhtä puuta kirjaimella x ja kirjoita yhtälöksi. Mikä tulee vastaukseksi? 3x + 2x = 5x + =

Ei-yhteydettömät kielet [Sipser luku 2.3]

Anna jokaisen kohdan vastaus kolmen merkitsevän numeron tarkkuudella muodossa

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

Mat Sovellettu todennäköisyyslasku A

1. Yksiulotteisen harmonisen oskillaattorin energiatilat saadaan lausekkeesta

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Markov-kustannusmallit ja kulkuajat

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

A-osa. Ratkaise kaikki tämän osan tehtävät. Tehtävät arvostellaan pistein 0-6. Taulukkokirjaa saa käyttää apuna, laskinta ei.

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

4 Yleinen potenssifunktio ja polynomifunktio

1 Bayesin teoreeman käyttö luokittelijana

Vastaus: 10. Kertausharjoituksia. 1. Lukujonot lim = lim n + = = n n. Vastaus: suppenee raja-arvona Vastaus:

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

2. laskuharjoituskierros, vko 5, ratkaisut

Helsingin, Itä-Suomen, Jyväskylän, Oulun, Tampereen ja Turun yliopisto Matematiikan valintakoe klo 10-13

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

Koodausteoria, Kesä 2014

Tilaston esittäminen frekvenssitaulukossa ja graafisesti. Keskiluvut luokittelemattomalle ja luokitellulle aineistolle: moodi, mediaani, keskiarvo.

Ratkaisuehdotukset LH 7 / vko 47

SYMBOLIVIRHETODENNÄKÖISYYDESTÄ BITTIVIRHETODENNÄKÖISYYTEEN

Kertaus. Integraalifunktio ja integrointi. 2( x 1) 1 2x. 3( x 1) 1 (3x 1) KERTAUSTEHTÄVIÄ. K1. a)

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Digitaalitekniikan matematiikka Luku 6 Sivu 1 (20) Kombinaatiopiirit & & A B A + B

Algoritmit 2. Luento 6 To Timo Männikkö

Preliminäärikoe Tehtävät Pitkä matematiikka / 3

Nämä ovat siis minimivaatimukset, enemmänkin saa ja suositellaan

Diskreetin satunnaismuuttujan odotusarvo, keskihajonta ja varianssi

Koodausteoria, Kesä 2014

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Algoritmit 2. Luento 10 To Timo Männikkö

Nopea kertolasku, Karatsuban algoritmi

Algoritmit 2. Luento 6 Ke Timo Männikkö

x 7 3 4x x 7 4x 3 ( 7 4)x 3 : ( 7 4), 7 4 1,35 < ln x + 1 = ln ln u 2 3u 4 = 0 (u 4)(u + 1) = 0 ei ratkaisua

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta

Laskuharjoitus 5. Mitkä ovat kuvan 1 kanavien kapasiteetit? Kuva 1: Kaksi kanavaa. p/(1 p) ) bittiä lähetystä kohti. Voidaan

TEHTÄVIEN RATKAISUT. Tehtäväsarja A. 2. a) a + b = = 1 b) (a + b) = ( 1) = 1 c) a + ( b) = 13 + ( 12) = = 1.

4 LUKUJONOT JA SUMMAT

Jatkuvat satunnaismuuttujat

Tehtävien ratkaisut

Matematiikan tukikurssi

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 1, Kevät 2018

Automaatit. Muodolliset kielet

1 Aritmeettiset ja geometriset jonot

Integrointi ja sovellukset

Transkriptio:

1 LÄHTEENKOODAUS Mikä on lähteenkoodauksen perusidea?

LÄHTEENKOODAUKSEN IDEA 2 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ä.

LÄHTEENKOODAUKSEN IDEA 3 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.

MORSE-KOODAUS & MUITA KIRJAINKOODEJA 4

ASCII-KOODAUS 5

LÄHTEEN INFORMAATIONOPEUS 6 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.

SHANNONIN 1. TEOREEMA = LÄHTEENKOODAUS Lähde on liitetty diskreettiin kanavaan, jonka kapasiteetti on C [bittiä/symboli]. Lisäksi kanavan symbolinopeus siis modulaatiomenetelmä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ähteenkoodauskoodit löydetään. On kehitetty erilaisia lähteenkoodausmenetelmiä. Noita ns. zippaus-algoritmeja käytetään redundanssin poistamiseen/tiedon pakkaamiseen. Tässä tarkastellaan vain yksinkertaisia Shannon-Fano ja Huffman - koodauksia. 7

LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON 8 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 2 0.1 0.9 log 20.9 = 0.469 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) = 1.642 bit/s on pienempi kuin 2 bit/s (Shannon 1. ehto toteutuu).

LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON 9 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 10 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 = 0.645 kpl. Kooderin lähdössä näkyy informaationopeus r L/n = 3.5 (0.645) = 2.258 koodisymbolia/s, joka on edelleenkin suurempi kuin kanavan välityskyky 2 symb/s. 2. asteen laajennus ei siten vielä riitä.

LAAJENNUSTEN KÄYTTÖ REDUNDANSSIN POISTOON 3. asteen laajennuksessa keskimääräinen sanan pituus on 1.598 bittiä. Siten kolmea alkuperäistä symbolia kohden muodostuu keskimäärin L/n = 1.598/3 = 0.533 kpl uusia symboleita. Tällöin symbolinopeudeksi kooderin lähdössä muodostuu r L/n = 3.5(0.533) = 1.864 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). 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%. 12

MÄÄRITELMIÄ 13 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.

MÄÄRITELMIÄ 14 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.

LÄHTEENKOODAUKSEN TEHOKKUUS 15 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). Tehokkuus Tehokkuus Tehokkuus L L H ( X ) L log D D 2 min 2 L min n i 1 p( x H ( X ) L i ) l i, L min H ( X ) log D 2

SHANNON-FANO-KOODAUS 16 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.

SHANNON-FANO-KOODAUS 17 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.

HUFFMAN-KOODAUS 18 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.

HUFFMAN-KOODAUS 19 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-Fanokoodaus.

ESIMERKKI 1 20

ESIMERKKI 2 21

ESIMERKKI 3 22

ESIMERKKI 4 23