7. Kuvantiivistys 7.1. Perusteet

Samankaltaiset tiedostot
7. Kuvantiivistys 7.1. Perusteet

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

Algoritmit 2. Luento 9 Ti Timo Männikkö

Kuvan- ja videontiivistys. Mikko Nuutinen

Kuvan pakkaus JPEG (Joint Photographic Experts Group)

Signaalien datamuunnokset. Digitaalitekniikan edut

Signaalien datamuunnokset

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

LIITE 1 VIRHEEN ARVIOINNISTA

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

Matematiikka ja teknologia, kevät 2011

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

811120P Diskreetit rakenteet

10. Esitys ja kuvaus

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

esimerkkejä erilaisista lohkokoodeista

Koodausteoria, Kesä 2014

1 Aritmeettiset ja geometriset jonot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

ELEC-C5070 Elektroniikkapaja (5 op)

Shannonin ensimmäinen lause

LIITE 1 VIRHEEN ARVIOINNISTA

6.6. Tasoitus ja terävöinti

Harmaasävykuvien häviötön tiivistäminen

LIITE 1 VIRHEEN ARVIOINNISTA

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

Mallin arviointi ja valinta. Ennustevirhe otoksen sisällä, parametrimäärän valinta, AIC, BIC ja MDL

Luku- ja merkkikoodit. Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15)

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

Jatkuvat satunnaismuuttujat

Harjoitus 2: Matlab - Statistical Toolbox

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

3.7 Todennäköisyysjakaumia

Reaalilukuvälit, leikkaus ja unioni (1/2)

AV-muotojen migraatiotyöpaja - video. KDK-pitkäaikaissäilytys seminaari / Juha Lehtonen

ABHELSINKI UNIVERSITY OF TECHNOLOGY

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

Digitaalinen signaalinkäsittely Kuvankäsittely

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

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

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

Sovellettu todennäköisyyslaskenta B

puheen laatu kärsii koodauksesta mahdollisimman vähän. puhe pakkautuu mahdollisimman pieneen määrään bittejä.

4 LUKUJONOT JA SUMMAT

Digitaalinen audio & video I

Algoritmit 1. Luento 11 Ti Timo Männikkö

S Laskennallinen Neurotiede

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

Sovellettu todennäköisyyslaskenta B

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

7.4 Sormenjälkitekniikka

Tenttiin valmentavia harjoituksia

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

Tietorakenteet ja algoritmit - syksy

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

4. Funktion arvioimisesta eli approksimoimisesta

Digitaalinen audio & video, osa I

4.0.2 Kuinka hyvä ennuste on?

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Algoritmit 1. Luento 10 Ke Timo Männikkö

Osa 2: Otokset, otosjakaumat ja estimointi

1 Määrittelyjä ja aputuloksia

Signaalien generointi

Ongelma(t): Miten digitaalista tietoa voidaan toisintaa ja visualisoida? Miten monimutkaista tietoa voidaan toisintaa ja visualisoida?

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.

Matematiikan tukikurssi

Ilkka Mellin Todennäköisyyslaskenta. Osa 2: Satunnaismuuttujat ja todennäköisyysjakaumat. Kertymäfunktio. TKK (c) Ilkka Mellin (2007) 1

4.1. Olkoon X mielivaltainen positiivinen satunnaismuuttuja, jonka odotusarvo on

Algoritmit 2. Luento 3 Ti Timo Männikkö

T Luonnollisten kielten tilastollinen käsittely

Alla olevassa kuvassa on millisekunnin verran äänitaajuisen signaalin aaltomuotoa. Pystyakselilla on jännite voltteina.

Algoritmit 2. Luento 3 Ti Timo Männikkö

2. TILASTOLLINEN TESTAAMINEN...

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

Digitaalinen audio & video, osa I. Johdanto. Digitaalisen audion sovellusalueet. Johdanto. Taajuusalue. Psykoakustiikka. Johdanto Digitaalinen audio

Tilastotieteen kertaus. Vilkkumaa / Kuusinen 1

(b) Tarkista integroimalla, että kyseessä on todella tiheysfunktio.

Successive approximation AD-muunnin

Tietorakenteet, laskuharjoitus 7, ratkaisuja

isomeerejä yhteensä yhdeksän kappaletta.

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

JATKUVAN AWGN-KANAVAN KAPASITEETTI SHANNON-HARTLEY -LAKI

Dynamiikan hallinta Lähde: Zölzer. Digital audio signal processing. Wiley & Sons, Zölzer (ed.) DAFX Digital Audio Effects. Wiley & Sons, 2002.

Todennäköisyyslaskun kertaus. Vilkkumaa / Kuusinen 1

Johdatus todennäköisyyslaskentaan Kertymäfunktio. TKK (c) Ilkka Mellin (2005) 1

Sovellettu todennäköisyyslaskenta B

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

MS-A0004/A0006 Matriisilaskenta

Laskuharjoitus 2 ( ): Tehtävien vastauksia

AV-muotojen migraatiotyöpaja - ääni. KDK-pitkäaikaissäilytys seminaari / Juha Lehtonen

Johdatus matematiikkaan

Määrätty integraali. Markus Helén. Mäntän lukio

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Monikanavaäänen perusteet. Tero Koski

Diskreetin satunnaismuuttujan odotusarvo, keskihajonta ja varianssi

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi

Transkriptio:

7. Kuvantiivistys 7.1. Perusteet Kuvan tai laajemmin tiedontiivistys (tai pakkaus käsittää tärkeän algoritmien alueen informaation muokkaamiseksi muotoon, joka käyttää vähemmän muistitilaa kuin alkuperäinen tiedosto, ja palauttamisen tarvittaessa alkuperäiseen muotoonsa. Digitaalisten kameroiden, tietoverkkojen kuvat tai DVD elokuvat (digital video disk hyödyntävät tiivistysalgoritmeja. Lasketaan esimerkkinä, paljonko kahden tunnin mittainen digitaalinen televisioelokuva vaatii muistitilaa. Yhden 24 bittisen värikuvan tilavaatimus on 720 480 24 bittiä. Digitaalinen videoelokuva esitetään 30 kuvan taajuudella sekunnissa. Tällöin saadaan seuraava muistitavujen määrä yhtä sekuntia kohti. 30 kuvaa/s (720 480 pikseliä/kuva 3 tavua/pikseli = 31 104 000 tavua/s Kuvantiivistys 368 Kahden tunnin elokuva käsittää täten 31 104 000 tavua/s (60 2 s/h 2 h 2.24 10 11 tavua eli 224 gigatavua (GB. Tiivistämättömänä datana tätä varten tarvittaisiin 27 8.5 GB:n DVD levyä. Jotta kahden tunnin elokuva mahtuisi yhdelle levylle, jokainen kuva on tiivistettävä keskimäärin kertoimella 26.3. Teräväpiirtotelevisio (HDTV, high density television asettaa vielä suuremmat vaatimukset, koska siinä värikuvan resoluutio on 1920 1080 24 bittiä. Muistitila ei ole ainoa tiivistystä vaativa tekijä. Toinen on luonnollisesti tiedonsiirto. Esim. esitetään siirtoaika asuntojen puhelinkaapelien siirtonopeuksille hitaasta 56 Kbps (kilobittiä per sekunti laajakaistalle 12 Mbps, kun siirretään yksi pieniresoluutioinen kuva, 128 128 24 bittiä. Aika on näille kahdelle 7.0 ja 0.03 s. Kuvantiivistys 369 Termi tiedontiivistys viittaa datan määrän vähentämiseen, joka data tarvitaan esittämään annettu määrä informaatiota. Data ja informaatio eivät ole sama asia. Data on keino, jolla informaatiota siirretään. Koska eri määrät dataa voivat vastata samaa määrää informaatiota, epärelevanttia tai toistettua informaatiota sisältävää esitystä sanotaan sisältävän redundanttia dataa. Jos b ja b viittaavat saman informaation kahden esityksen bittien (informaatiota välittävän yksikön määrää, b bitin esityksen suhteellinen datan redundanssi on 1 R = 1, C jossa tiivistyssuhde C määritellään seuraavasti. b C = b' Kuvantiivistys 370 Jos C=10 (tai 10:1, laajemmassa esitysmuodossa on 10 bittiä jokaista suppeamman 1 bittiä kohti. Laajemman esitysmuodon suhteellinen datan redundanssi on 0.9, mikä tarkoittaa 90 %:ia sen datasta olevan redundanttia. Kaksiulotteinen kuvadata sisältää kolmea tyyppiä datan redundanssia, joka voidaan tunnistaa ja hyödyntää. 1. Koodausredundanssi. Koodi on symbolien (kirjaimet, numerot, bitit tms. järjestelmä, jota käytetään esittämään informaatiota tai tapahtumien jonoa. Jokainen informaation pala tai tapahtuma esitetään koodisymbolien jonona. Symbolien määrä kussakin koodisanassa on tämän pituus. 8 bittiset koodit, joita käytetään esittämään intensiteettejä kaksiulotteisissa taulukoissa, käsittävät enemmän bittejä, kuin tarvittaisiin edustamaan yksittäisen kuvan intensiteettejä (siinä ei käytetä kaikkia mahdollisia. Kuvantiivistys 371

2. Spatiaalinen ja ajallinen redundanssi. Koska yleensä kaksiulotteisten intensiteettitaulukoiden pikselit ovat spatiaalisesti korreloivia, ts. jokainen pikseli on samanlainen kuin tai riippuu naapuripikselistä, informaatio on tarpeettoman toisteista keskenään korreloivilla pikseleillä. Videosekvensseissä ajallisesti korreloivat pikselit (samanlaiset tai riippuvat pikselit peräkkäisissä kuvissa toistavat informaatiota. 3. Epärelevantti informaatio. Useimmat kaksiulotteiset intensiteettitaulukot sisältävät informaatiota, jonka ihmisen näköjärjestelmä jättää huomioon ottamatta tai joka on tarpeetonta kuvan tarkoitetun käytön mielessä. Tällainen on redundanttia, sillä sitä ei käytetä. Kuva 7.1. esittää kuvattuja redundanssityyppejä. (a (b (c Kuva 7.1. 256 256 8 bittisiä (tietokoneella tehtyjä kuvia, joissa on (a koodausredundanssia, (b spatiaalista redundanssia ja (c epärelevanttia informaatiota. Kuvantiivistys 372 Kuvantiivistys 373 Tarkastellaan kolmea em. redundanssityyppiä. Olkoon r k satunnaismuuttuja väliltä [0,L 1] esittäen M N kuvan intensiteettejä. Luvun 3. tapaan r k esiintyy todennäköisyydellä nk pr ( rk =, k = 0,1,2,..., L 1, MN jossa L on intensiteettitasojen määrä ja n k on k:nnen intensiteetin esiintymismäärä. Jos arvon r k esittämiseen käytettyjen bittien määrä on l(r k, niin pikselin esittämiseen tarvittu keskimääräinen bittien lukumäärä on seuraava. L = 1 Lavg l( rk pr ( rk (1 k= 0 Koko kuvan esittämiseen tarvitaan MNL avg bittiä. Luonnollisessa binäärikoodissa jokainen informaation osa (esim. intensiteettiarvo koodataan yhdellä 2 m koodiarvosta, jolloin jokaisen koodiarvon pituus on m bittiä. Kun intensiteetit esitetään luonnollisella m bittisellä vakiomittaisella koodilla, kaavan (1 oikea puoli suppenee m bittiin. Näet korvattaessa jokainen l(r k pituudella m tämä voidaan siirtää (1:n summan kertoimeksi ja todennäköisyyksien summan ollessa yhtä kuin 1 jää jäljelle L avg =m. Esitetään kuvan 7.1.(a intensiteettijakauma taulukossa 7.1. Jos luonnollista 8 bittistä koodia (taulukon 7.1. koodi 1 käytetään esittämään 4 mahdollista intensiteettiä, L avg eli keskimääräinen bittien määrä on tietysti 8, kun l 1 (r k = 8 kaikille r k. Kuvantiivistys 374 Kuvantiivistys 375

Taulukko 7.1. Vaihtelevanmittaisen koodauksen esimerkki. r k p(r k koodi 1 l 1 (r k koodi 2 l 2 (r k r 87 = 87 0.25 01010111 8 01 2 r 128 =128 0.47 10000000 8 1 1 r 186 =186 0.25 11000100 8 000 3 r 255 =255 0.03 11111111 8 001 3 r k kun 0 8 0 k 87, 128, 186, 255 Toisaalta, jos käytetään vaihtelevanmittaista koodia 2, tarvittu bittien keskimäärä on pienempi. L avg = 0.25(2 + 0.47(1 + 0.25(3 + 0.03(3 = 1.81 bittiä Kuvantiivistys 376 Kuvaa (M=N=256 varten tarvittu kokonaismäärä on 256 256 1.81=118621 bittiä. Tällöin tiivistyssuhde on 256 256 8 8 C = = 4.42 118621 1.81 ja suhteellinen redundanssi. 1 R = 1 = 0.774 4.42 Kuvasta oli näin 77.4 % redundanttia. Koodin 2 bittijonot oli määrätty optimaalisesti asettamalla lyhin koodi kaikkein todennäköisimmälle ja kasvattaen koodin pituutta todennäköisyyden pienentyessä. Lyhin kiinteänpituinen koodi neljälle eri tapaukselle olisi kahdenmittainen koodi: {00,01,10,11}. Tiivistyssuhde olisi 8/2=4, joka on 10 % huonompi kuin yo. Kuvantiivistys 377 Koodausredundanssia esiintyy, kun koodit eivät käytä hyväkseen tietoa eri tapausten esiintymistodennäköisyydestä, kuten on yleensä aina käytettäessä luonnollista binäärikoodia. Kun kuvissa useimmiten on säännöllisenmuotoisia kohteita, joilla on paljon joitakin samoja intensiteettiarvoja, toiset intensiteettiarvot ovat paljon todennäköisempiä kuin toiset, ts. kuvan histogrammijakauma ei ole tasainen. Luonnollinen binäärikoodi kuitenkin tukeutuu tasanjakautuneeseen antaessaan yhtä pitkän koodin jokaiselle intensiteettiarvolle. Kuva 7.1.(b havainnollistaa spatiaalista redundanssia. Vastaavasti ajallinen redundanssi voitaisiin kuvitella, jos pidettäisiin kuvan vaaka akselia aikana. Tässä vallitsee oheiset piirteet. 1. Kaikki 256 intensiteettiarvoa ovat yhtä todennäköisiä. Kuva 7.2. esittää kuvan 7.1.(b:n tasajakautuneen histogrammin. 2. Kun jokaisen suoran intensiteetti oli satunnaisesti määrätty, sen pikselit ovat riippumattomia muiden pikselien intensiteeteistä pystysuorassa suunnassa. 3. Koska vaakasuorien suorien pikselit ovat identtisiä, ne ovat maksimaalisesti korreloituneita keskenään (täydellisesti toisistaan riippuvia. Kuvantiivistys 378 Kuvantiivistys 379

Ensimmäinen ominaisuus osoittaa, että kuva 7.1.(b 8 bittisenä taulukkona ei ole tiivistettävissä vaihtelevanmittaisella koodauksella. Tässä on nimittäin, toisin kuin kuvassa 7.1.(a, tasanjakautunut intensiteettijakauma, joka minimoi keskimääräisen bittien määrän (1 s. 374. Kuva 7.2. Intensiteettihistogrammi kuvan 7.1.(b sisällöstä. 5 Toinen ja kolmas ominaisuus paljastavat huomattavan spatiaalisen redundanssin, jota voidaan vähentää esittämällä kuva 7.1.(b koodauksen toistonpituuspareilla (run length pair. Tässä parin ensimmäinen alkio määrittää, missä alkaa uusi intensiteettiarvo esiintyä, ja toinen, kuinka monta tällaista arvoa eli toistoa on peräkkäin. Esimerkkikuva, jossa on 8 bittisiä intensiteettejä, saa tiivistyssuhteen (256 256 8/[(256+256 8]=128 eli 128:1. Jokainen pikselisuora korvataan yhdellä 8 bittisellä arvolla ja 256 on toistojen lukumäärä. Kuvantiivistys 380 Kuvantiivistys 381 Useimmat kuvat ovat spatiaalisesti korreloivia (sekä vaaka että pystysuunnassa. Useimmiten (erilaisia reunoja lukuun ottamatta pikselien intensiteetit pystytään ennustamaan naapuripikselien perusteella. Yksittäisen pikselin sisältämä informaatio on täten pieni. Visuaalisesta informaatiosta suuri osa on redundanttia, helposti tiivistettävää. Käytettäessä tietoa vierekkäisten pikselien eroista tai toiston pituuksista (run length arvoja voidaan kuvaa tiivistää tehokkaasti. Tällaisia muunnoksia kutsutaan kuvauksiksi. Tämä on palautettava (reversible, jos alkuperäinen kuva on mahdollista täysin rekonstruoida. Muuten muunnos on palautumaton (irreversible. Kuvantiivistys 382 Yksinkertainen tapa tiivistää on poistaa liika data. Ihmisen näköjärjestelmä jättää käyttämättä osan visuaalisesta informaatiosta tai osa tästä on tarpeetonta ajatellen kuvan käyttötarkoitusta. Täten tietokoneella tuotettu kuva 7.1.(c voidaan tiivistää hyvin tehokkaasti, sillä se sisältää (lähes homogeenisen harmaan neliön. Se voidaan esittää yhdellä 8 bittisellä arvolla! Alkuperäinen 256 256 8 bittinen taulukko pienenee yhdeksi tavuksi, 8 bittiä, jolloin tiivistyssuhde on peräti 65536:1. Aluksi pitää kuitenkin selvittää kuvan 7.1.(c intensiteettijakauma, joka nähdään kuvassa 7.3.(a. Vaikka ei havaittu itse kuvasta, siinä ei kuitenkaan ollut täysin yhtä harmaata väriä (yhden arvon jakauma, vaan intensiteettejä väliltä [125,131]. Täten tiivistys yhdeksi tavuksi hukkaisi hivenen kuvan sisältämää informaatiota, ei tosin visuaalisessa mielessä merkittävää. Kuvassa 7.3.(b jakauma on tasattu. Tällöin kuva muokkautuu muotoon, joka on kuvassa 7.3.(b sisältäen kaksi vakiointensiteettistä, toisiinsa nähden kohtisuoraa aluetta. Olisiko tämä informaatio tärkeää, riippuisi sovelluksesta. Esim. lääketieteellisessä röntgenkuvassa se voisi olla. Kuvantiivistys 383

Kuinka vähällä bittien määrällä kuva voidaan esittää? Informaatioteoria antaa matemaattisen viitekehyksen vastauksena kysymykseen. Satunnainen tapahtuma E, jonka todennäköisyys on P(E, sisältää 1 I ( E = log = log P( E P( E (2 yksikköä informaatiota. Jos P(E=1 eli tapahtuma aina sattuu, I(E=0 ja siihen ei liitetä mitään informaatiota. Kuva 7.3. Kuvan 7.1.(c histogrammi ja (b tämän tasauksen jälkeen muokattu kuva. Kuvantiivistys 384 Logaritmiesityksen (2 kantaluku 2 määrää informaatiomitan yksikön. Tämän ollessa 2 informaatioyksikkö on bitti. Jos P(E=1/2, I(E= log 2 1/2 eli 1 bitti. Kun toinen kahdesta yhtä todennäköisestä tapahtumasta esiintyy, siirretyn informaation määrä on 1 bitti. Esimerkkinä olkoon rahan heitto. Kuvantiivistys 385 Kuvan intensiteettien histogrammijakaumaa käytetään estimoitaessa tapahtumien (symbolien, merkkien tai intensiteettiarvojen r k todennäköisyyttä. Saadaan entropia H (merkinnät määritelty edellä s.374 L 1 H = pr ( rk log2 pr ( rk k = 0 (3 joka kuvaa keskimääräistä tapahtumiin liittyvää informaatiota. Koska logaritmin kantaluku on 2, (3 on keskimääräinen informaatio intensiteettiarvoa kohti esitettynä bitteinä. Täten entropia antaa koodauksen bittien minimimäärän. Kuvan 7.1.(a entropiaksi saadaan taulukon 7.1. todennäköisyyksillä seuraava. H = = [ 0.25log2 0.25+ 0.47log2 0.47 + 0.25log2 0.25+ 0.03log2 0.03] [ 0.25( 2 + 0.47( 1.09 + 0.25( 2 + 0.03( 5.06 ] 16614. bittiä/pikseli Kuvantiivistys 386 Kuvan 7.1.(b ja (c entropiaksi saadaan puolestaan 8 bittiä/pikseli ja 1.566 bittiä/pikseli. Kuvan 7.1.(a sisältää eniten visuaalista informaatiota, mutta sillä on melkein yhtä pieni entropia kuin kuvalla 7.1.(c, jossa on tuskin mitään visuaalista informaatiota. Kuvan 7.1.(b entropia on suuri, vaikka visuaaliset erot kuvan 7.1.(a ja (b välillä ovat vähäiset. Ei entropian suuruus eikä siis informaatio ole mitenkään intuitiivinen mitta. Tarkkuuskriteereillä on käytännöllinen merkitys mitattaessa kuvan muutosten vaikutusta. Kun epärelevanttia visuaalista informaatiota hävitetään kuvasta, kahdentyyppisiä kriteerejä käytetään arvioitaessa informaation vähentämisen vaikutusta: (1 objektiiviset ja (2 subjektiiviset kriteerit. Kuvantiivistys 387

Esitettäessä tiivistyksessä tapahtuva informaation häviö matemaattisena funktiona on kyseessä objektiivinen arvio. Yksi tällainen on keskineliövirheen neliöjuuri (root mean square error, RMS kahden kuvan välillä laskettuna. Seuraavassa on esitetty kuvan f(x,y ja sen approksimaation (tiivistetyn kuvan erotus mille tahansa arvoille x ja y. e( x, y = f ( x, y f ( x, y Koko kuvalle virhe saadaan summana M 1N 1 f ( x, y f( x, y [ ] x= 0 y= 0 kuvan ollessa kooltaan M N. RMS virhe on tällöin seuraava. RMS 1 MN M 1N 1 = x= 0 y= 0 [ f( x, y f( x, y ] 1/ 2 2 Kuvantiivistys 388 Ajateltaessa kuvan approksimaatio alkuperäisen kuvan ja kohinan e(x,y summana voidaan määritellä keskineliöllinen signaali kohinasuhde (mean square signal to noise ratio. M 1N 1 2 f ( x, y SNR ms = 1 M N 1 [ f ( x, y f ( x, y ] x= 0 y= 0 x= 0 y= 0 Subjektiivinen arviointi tehdään vertaamalla alkuperäistä kuvaa ja toisaalta tiivistettyä, sitten koodauksen purkamisen jälkeen saatua kuvaa keskenään. Tarkkuudelle voidaan antaa hyvyysarvo, esim. joukosta {paljon huonompi, huonompi, vähän huonompi, samanlainen, vähän parempi, parempi, paljon parempi}. 2 Kuvantiivistys 389 kuva 7.4. esittää kolme erilaista kuvan 7.1.(a approksimaatiota. Kuvan 7.1.(a ja approksimaatioiden välillä laskettiin RMS virhe. Kuvan 7.4.(a tapauksessa se oli 5.17, tapauksessa (b 15.67 ja (c 14.17. Näin objektiivisen virhearvon mielessä paremmuusjärjestys on 7.4.(a, (c ja (b. Kuva 7.4.(b ja (c ovat kuitenkin RMSarvoltaan lähellä toisiaan. Silti visuaalisessa mielessä jälkimmäisessä on selviä virheitä, kuten katkeilleet suorat ja pienet tummat neliöt (artefaktoja tähdessä, joten (b näyttäisi paremmalta. RMS arvojen ero on kuitenkin pieni. Kuvan 7.4.(c silmiinpistävät virheelliset pikselit eivät kuitenkaan vaikuta RMS arvoon sen enempää kuin kuvan 7.4.(b virheelliset, vaikka nämä eivät visuaalisesti erotu kovin hyvin. Sekä (b:ssä että (c:ssä on erityisesti kohteiden reunoissa epätarkkuutta. Kuva 7.4. Kuvan 7.1.(a kolme erilaista approksimaatiota. Kuvantiivistys 390 Kuvantiivistys 391

Tarkastellaan seuraavaksi tiivistysjärjestelmää (kuva 7.5., joka käsittää kaksi pääosaa, koodaaja ja koodin purkaja (encoder, decoder. Edellinen tiivistää, ja jälkimmäinen purkaa tiivistyksen datan palauttamiseksi visuaalisesti nähtäväksi kuvaksi. Molemmat ovat tietokoneen yhteydessä yleensä ohjelmatoteutuksia, kuten verkkoselaimissa tai kuvankäsittelyohjelmissa. Myös laitteiston ja ohjelmiston yhdistelmiä on olemassa, esim. DVD laitteet. Koodekki on laite tai ohjelma, joka tekee molemmat. Koodaajan tiivistämä kuva talletetaan muistiin tai siirretään verkossa toisaalle. Koodin purkaja rekonstruoi eli palauttaa kuvan. Tiivistys voi olla häviöllinen (lossy tai häviötön (lossless, jolloin alkuperäinen kuva saadaan täydellisesti palautettua. Häviöllisessä pyritään luonnollisesti rajoittumaan vähäiseen (lähinnä redundantin informaation häviöön eli kuvan muuttumiseen. Taulukossa 7.3. on käytettyjä tiivistysstandardeja ja tiedostomuotoja. f ( x, y tai f ( x, y, t koodaaja kuvaus kvantisointi symbolien dekoodaus symbolien koodaus käänteiskuvaus koodin purkaja f ( x, y tai f ( x, y, t Kuva 7.5. Tiivistysjärjestelmän lohkokaavio. Muuttuja t tarkoittaa aikaa (videokuvissa. Kuvauksessa tehdään muunnos (ei yleensä visuaalinen spatiaalisen ja ajallisen redundanssin vähentämiseksi. Kvantisoinnissa kuvauksen tarkkuutta vähennetään annetun kriteerin puitteissa. Symbolien koodauksessa luodaan kiinnitetyn tai vaihtelevanpituiset koodit kvantisoidulle datalle. Symbolien dekoodauksessa ja käänteiskuvauksessa on edellisille vastakkaiset toiminnat. Kuvantiivistys 392 Kuvantiivistys 393 Taulukko 7.3. Kuvan tiivistysstandardeja. Taulukko 7.3. (jatkoa Kuvan tiivistysstandardeja. Kuvantiivistys 394 Kuvantiivistys 395

7.2. Tiivistysmenetelmistä Taulukko 7.3. (jatkoa Kuvan tiivistysstandardeja ja tiedostomuotoja. Tiivistysmenetelmiä on useita. Käydään suppeasti läpi vain muutama. Yksi ensimmäisistä koodin redundanssin poistoon käytetyistä menetelmistä oli Huffmanin koodaus (käytetään seuraavissa: CCITT, JBIG2, JPEG, MPEG 1,2,4 ja H.261 264. Koodattaessa informaatiolähteen symboleja yksittäin Huffmanin algoritmi antaa (eräin edellytyksin pienimmän määrän koodaussymboleja lähdesymbolia kohti. Lähdesymbolit voivat olla joko pikselien intensiteettejä tai intensiteettikuvauksen (kuva 7.5. tuloksia, kuten pikselien erotuksia tai toiston pituuksia. Aluksi lasketaan eri lähdesymbolien määrät kuvassa. Lajitellaan nämä vähenevään järjestykseen. Korvataan sitten todennäköisimmin esiintyvät lyhyillä koodeilla ja harvemmin esiintyvät hieman pitemmillä koodeilla. Kuvantiivistys 396 Kuvantiivistys 397 Kuva 7.6. esittää binäärikoodauksen esimerkin. alkuperäinen lähde redusointi Ensimmäisessä vaiheessa hypoteettinen lähdesymbolijoukko on vasemmassa sarakkeessa ja seuraavassa symbolien esiintymistodennäköisyydet, jotka on jo lajiteltu. Redusoidaan ensimmäinen symbolipari laskemalla yhteen kaksi pienintä todennäköisyyttä. Jos on yhtä suuria, voidaan niistä valita mikä tahansa. Tässä tapauksessa lasketaan 0.04+0.06=0.1. Muodostetaan kahdesta valitusta symbolista yhdistetty symboli. Näin jatketaan, kunnes tullaan viimeiseen yhdistämiseen oikeanpuolisessa sarakkeessa. Prosessi voidaan esittää myös binääripuuna. symboli todennäköisyys 1 2 3 4 a 2 0.4 0.4 0.4 0.4 0.6 a 6 0.3 0.3 0.3 0.3 0.4 a 1 0.1 0.1 0.2 0.3 a 4 0.1 0.1 0.1 a 3 0.06 0.1 a 5 0.04 Kuva 7.6. Huffmanin redusoinnit. Kuvantiivistys 398 Kuvantiivistys 399

Huffmanin algoritmin toisessa vaiheessa koodataan jokainen redusoitu, yhdistetty symboli aloittaen lopusta (sarake 4 ja palaten takaisin alkuperäisiin symboleihin. Symbolit 0 ja 1 ovat kahden symbolin minimaalisenpituinen binäärikoodi. Kuvan 7.7. mukaan koodit määrätään symboleille (kunkin sarakkeen oikea binäärilukujono on koodi ylemmälle 0 ja alemmalle 1 (tai kääntäen. Näin aluksi kaksi koodia ovat 0 ja 1. Sitten todennäköisyyden 0.6 yhdistelmän osat saavat koodit 00 ja 01 jne. aina sarakkeeseen 1 asti. Kaikkien koodien keskimääräinen pituus on L avg = ( 0.41 + (0.32 + (0.13 + (0.14 + (0.065 + (0.045 = 2.2 bittiä/pikseli, ja lähteen entropia on 2.14 bittiä/symboli. alkuperäinen lähde redusointi symboli toden koodi 1 2 3 4 näköisyys a 2 0.4 1 0.4 1 0.4 1 0.4 1 0.6 0 a 6 0.3 00 0.3 00 0.3 00 0.3 00 0.4 1 a 1 0.1 011 0.1 011 0.2 010 0.3 01 a 4 0.1 0100 0.1 0100 0.1 011 a 3 0.06 01010 0.1 0101 a 5 0.04 01011 Kuvantiivistys 400 Kuva 7.7. Huffman koodien laskeminen. Kuvantiivistys 401 Huffmanin algoritmi luo optimaalisen koodin, kunhan symbolien frekvenssit tunnetaan etukäteen ja symbolien esiintymät ovat toisistaan riippumattomia. Edellinen on kuvasta monesti tiedossa, mutta jälkimmäinen kovin harvoin, joten optimaalisuus näyttäytyy tässä teoreettisena. Koodeille on olennaista etuliiteominaisuus, ts. mikään niistä ei ole toisensa etuliite eli ole jonkin toisen koodin alkuosan kanssa sama. Muuten eivät koodit olisi erotettavissa toisistaan niiden pituuksien vaihdellessa. Generoidut koodit talletetaan hakutaulukkoon, josta niitä haetaan koodattaessa alkuperäisiä symboleja. Purettaessa koodi toimitaan vastakkaiseen suuntaan. Tällöin havaitaan etuliiteominaisuus välttämättömäksi, koska jos olisi esim. kaksi koodia 01 ja 011, ei kohdattaessa 01, tiedettäisi, valitako 01 vai edetä yksi merkki eteenpäin. Kuva 7.8. esittää esimerkkikuvan kokoa 512 512 8 bittiä. Kuvantiivistys 402 a Kuva 7.8.(a Kuva ja (b sen histogrammi, joka ei ole tasanjakautunut, ts. on periaatteessa lupaava Huffman koodaukselle. Tämä tuotti koodauksen 7.428 bittiä/pikseli, jossa on laskettu mukaan kooditaulukon koko (taulukko tarvitaan oheistietona koodin purkamista varten. Tällöin tiivistyssuhteeksi tuli melko vaatimaton 1.077 ja suhteelliseksi redundanssiksi 1.0715 eli 7.15 % informaatiosta oli redundanttia. Tavallisesti (esim. JPEG ja MPEG käytetään esilaskettua Huffman taulukkoa, joka on laskettu kokeellisesta oletusdatasta etukäteen. Kuvantiivistys 403 b

Aritmeettinen koodaus ei käytä vaihtelevanmittaisia koodeja, kuten Huffman, Golomb tai Golomb Rice koodaukset, vaan generoi eilohko koodeja. Siinä ei ole yksi yhteen vastaavuutta lähdesymbolien ja koodisanojen välillä, vaan kokonainen lähdesymbolien jono koodataan aritmeettisella koodisanalla. Koodisana itse määrittää reaalilukuvälin 0:n ja 1:n väliltä. Symbolien määrän kasvaessa sitä varten määrätty lukuväli pienenee ja vaadittujen informaatioyksikköjen (bitti määrä kasvaa. Jokainen datan symboli vähentää välin pituutta esiintymistodennäköisyytensä mukaan. Kun menetelmä ei edellytä, toisin kuin Huffman, että lähdesymbolit koodataan kokonaislukumäärällä koodisymboleja, saatetaan päästä lähemmäksi teoreettista (Shannonin teoreeman minimiä. Kuvantiivistys 404 Kuva 7.9. esittää esimerkin koodattaessa viiden symbolin data (viesti a 1 a 2 a 3 a 3 a 4 nelisymbolisesta lähteestä. Aloitetaan puoliavoimesta välistä [0,1. Taulukko 7.4. esittää, kuinka lukuväli jaetaan ensiksi neljään osaan riippuen lähdesymbolien todennäköisyyksistä. Esim. symboli a 1 liittyy väliin [0,0.2. Koska se on datan ensimmäinen symboli, supistetaan väli aluksi tähän [0,0.2 (kuva 7.9.. Tämä väli jaetaan alkuperäisten lähdesymbolien todennäköisyyksien mukaan, ja prosessi jatkuu seuraavan symbolin käsittelyllä. Symboli a 2 väliin [0.04,0.08, a 3 edelleen väliin [0.056,0.072 jne. Viimeinen symboli, joka on täytynyt varata viestin erityiseksi päätössymboliksi, supistaa väliin [0.06752,0.0688. Luonnollisesti mitä tahansa lukua osaväliltä, esim. 0.068, voidaan käyttää koodauksessa edustamaan viestiä. Kuvantiivistys 405 Kuvan 7.9. esimerkissä kolmea desimaalia käytettiin koodaamaan viittä symbolia. Tämä vastaa 0.6 desimaalinumeroa lähdesymbolia kohti, kun taas sen entropia on 0.58. Ero on pieni. Esimerkkisymbolijono oli luonnollisesti luonnottoman lyhyt ajatellen todellisia tiivistettäviä kuvia, joissa aritmeettinen koodaus voi antaa hyvän tiivistyssuhteen ollen lähellä optimaalista. Kuva 7.9. Aritmeettisen koodauksen esimerkki. lähdesymboli todennäköisyys alkuperäinen osaväli a 1 0.2 [0.0,0.2 a 2 0.2 [0.2,0.4 a 3 0.4 [0.4,0.8 a 4 0.2 [0.8,1.0 Käytännössä kaksi tekijää vaikuttavat heikentävästi tiivistystulokseen. (1 Tarvitaan lopetussymboli kunkin viestin loppuun. (2 Tietokoneen lukujen äärellinen esitystarkkuus vaikuttaa. Jälkimmäinen rajoittaa selvästi jakojen jatkamista. Aritmeettisen koodauksen toteutuksissa tähän vastataan kahdella keinolla, skaalaus ja pyöristys. Skaalaus normalisoi jokaisen osavälin uudelleen väliin [0,1 ennen uutta jakoa. Pyöristyksellä hoidetaan tarkkuuden säilyminen huolimatta äärellisestä lukujen esitystarkkuudesta. Taulukko 7.4. Aritmeettisen koodauksen esimerkki. Kuvantiivistys 406 Kuvantiivistys 407

Muita tiivistysmenetelmiä ovat LZW koodaus (integroitu formaatteihin GIF, TIFF, PDF ja PNG, toistojen koodaus (run length encoding, RLE (Fax laitteet sopii hyvin binäärikuville, symboliperusteinen (usein esiintyviä kuvan osia koodaus, bittitason koodaus sekä lohkojen muunnoskoodaus (JPEG, M JPEG, MPEG 1,2,4, H.261 264, DV ja HDV sekä VC 1. Yleensä käytetään muunnoksia: diskreetti nopea Fourier (DFT, Walsh Hadamar (WHT, diskreetti kosini (DCT ja parhaimpana pidetty Karhunen Loève (KLT informaation tiivistyksen mielessä. Aallokkeet (wavelets ovat tulleet tehokkaiksi myös tiivistyksessä. Tarkastellaan lopuksi prediktiivistä (ennustavaa koodausta (JBIG2, JPEG, JPEG LS, MPEG 1,2,4, H.261 264, HDV ja VC 1. Tätä on sekä häviöttömänä että häviöllisenä. Silmäillään vain häviötöntä. Jälkimmäisellä voidaan tietysti saada parempia tiivistyssuhteita, mutta toisinaan tarvitaan mahdollisuutta purkaa eli palauttaa täysin alkuperäinen data koodauksesta. Prediktiivinen koodaus perustuu ajatukseen eliminoida lähekkäisten, spatiaalisesti tai ajallisesti (videoissa, pikselien redundanssia. Pikselin uusi informaatio määrätään pikselin todellisen ja ennustetun arvon erona. Ennakoidaan kunkin näytteen (pikselin arvo edellisen (tai edellisten näytteiden avulla. Kuvantiivistys 408 Kuvantiivistys 409 Ennustettu arvo pyöristetään lähimmäksi kokonaisluvuksi, ja tätä käytetään laskettaessa erotus eli ennusteen virhe e( n = f ( n f ( n, joka koodataan vaihtelevanmittaisella koodilla tiivistetyn datan seuraavan alkion generoimiseksi. Koodia purettaessa, kun se on ensin purettu takaisin vaihtelevanmittaisesta koodauksesta, rekonstruoidaan virhe e(n ja suoritetaan käänteisoperaatio. f ( n = e( n + f ( n Yleensä ennuste lasketaan lineaarisesti. m f ( n = round αi f ( n i i= 1 Kaavassa i :t ovat kertoimia. Jos m=1, tämä oli ensimmäisen kertaluvun ennustaja. Korkeammissa kertaluvuissa erotus lasketaan pitemmällä kuin yhdellä välillä eli vierekkäisillä näytteillä. Häviöllisessä ennustamisessa käytetään vaihtelevia lokaaleja, globaaleja tai adaptiivisia tapoja. Kuvassa 7.10. esitetään ennusteen virheen laskentaa esimerkkikuvalle, kun m=1 ja 1 =1. Kuvantiivistys 410 Kuvantiivistys 411

a b c d Pohditaan vielä suppeasti peräkkäisten videokuvien tiivistämistä ajallisessa mielessä kuvan 7.11. avulla. Tämä esittää esimerkin, jossa lasketaan kahden peräkkäisen kuvan välisen ennusteen virhe edeltävien ideoiden pohjalta. Tällaista käytetään luonnollisesti lähtökohtana videoiden tiivistämisessä, jota ei tässä tarkemmin esitetä. Kun kuvassa 7.11.(d virheen jakauma on sangen kapea (keskihajonta pieni, ts. virhettä on vähän eli perättäiset kuvat ovat jokseenkin samanlaisia, tämä antaa hyvän lähtökohdan tiivistykselle aikamuuttujan suhteen. Kuva 7.10.(a Avaruussukkulasta otettu kuva Maasta (NASA, (b kuvan intensiteettihistogrammi, (c ennusteen virhe ja (d virheen histogrammi, jonka jakauma on kapea (keskihajonta paljon pienempi kuin alkuperäisessä kuvassa eli hyvä tarkoitukseensa. Vaiheen (d jälkeen koodattaisiin jollakin vaihtelevanmittaisella tavalla. Kuvantiivistys 412 Kuvantiivistys 413 Kuva 7.11. (a ja (b ovat kuvia Maasta (NASA, (c kuvien välisen ennusteen virhe ja (d tämä jakauma histogrammina. Kuvantiivistys 414