JARKKO PEKKARINEN PNG-KUVAFORMAATTI JA SEN TULEVAISUUS

Koko: px
Aloita esitys sivulta:

Download "JARKKO PEKKARINEN PNG-KUVAFORMAATTI JA SEN TULEVAISUUS"

Transkriptio

1 I JARKKO PEKKARINEN PNG-KUVAFORMAATTI JA SEN TULEVAISUUS Kandidaatintyö Tarkastaja: Lehtori Heikki Huttunen Työ jätetty tarkastettavaksi 10. toukokuuta 2009

2 TIIVISTELMÄ II TAMPEREEN TEKNILLINEN YLIOPISTO Tietoliikenne-elektroniikan koulutusohjelma PEKKARINEN, JARKKO: PNG-kuvaformaatti ja sen tulevaisuus Kandidaatintyö, 27 sivua, 3 liitesivua Toukokuu 2009 Pääaine: Signaalinkäsittely ja multimedia Tarkastaja: Lehtori Heikki Huttunen Avainsanat: PNG-kuvaformaatti, kuvaformaatti, häviötön pakkaus Kuvatiedostojen häviötön tallentaminen on tärkeää täsmällisyyttä vaativissa käyttötilanteissa, kuten lääketieteellisten kuvien tallentamisessa ja ammattimaisessa kuvankäsittelyssä. Toinen tyypillinen käyttötilanne kuvien häviöttömään tallentamiseen on internetissä yleinen tietokonegrafiikka, jonka häviölliseen muotoon tallentamisen seurauksena syntyisi kuviin helposti havaittavia häiriöitä. Tämän työn tavoitteena on perehdyttää lukija juuri internet-käytössä suositun, häviöttömän PNG-kuvaformaatin (Portable Network Graphics) toimintaan ja ominaisuuksiin sekä pohtia PNG:n tulevaisuutta sekä sen kehitysmahdollisuuksien että sen asemaa uhkaavien muiden kuvaformaattien näkökulmasta. Työ jakaantuu kahteen osaan. Kirjallisuusselvitysosassa perehdytään PNG:n käyttämiin pakkausmenetelmiin ja kuvaominaisuuksiin, kuten läpinäkyvyyteen, ja arvioidaan näiden riittävyyttä vastaamaan nykypäivän vaatimuksiin. Työn toisessa osassa PNG:n suorituskykyä vertaillaan muihin kuvaformaatteihin pakkaustehokkuuden, pakkausnopeuden ja purkunopeuden osalta, jotta saataisiin kattava kuva formaattien soveltuvuudesta eri käyttötilanteisiin. Kuvaformaattien välisten vertailujen tuloksista lopuksi päätellään, että PNG:n tämänhetkinen asema suosittuna web-grafiikan kuvaformaattina on perusteltu sekä sen suorituskyvyn että ominaisuuksien puolesta. Työssä esitetään myös PNG:n määritelmästä tehtyihin havaintoihin perustuen nykyisen PNG:n standardin kanssa yhteensopivia kehitysehdotuksia, jotka toteuttamalla olisi mahdollista jopa merkittävästi parantaa PNG:n pakkausnopeutta.

3 ALKUSANAT III Tämä kandidaatintyö kirjoitettiin osana Tampereen teknillisen yliopiston signaalinkäsittelyn laitoksen kandidaatintyöseminaaria keväällä Työn aiheen valinnassa auttoi henkilökohtainen kiinnostukseni digitaalisiin kuvaformaatteihin ja valokuvaukseen. Koen myös, että työn myötä karttuneesta häviöttömien pakkausmenetelmien tuntemuksesta tulee varmasti olemaan hyötyä vielä työn kirjoittamisen jälkeenkin. Haluaisin kiittää työni ohjaajaa, lehtori Heikki Huttusta hyvistä ideoista ja kehitysehdotuksista sekä kannustavasta asenteesta kandidaatintyöseminaarin yhteydessä. Suuri kiitos kuuluu myös avovaimolleni Saralle ja ystävilleni, jotka kannustivat minua työn tekemisessä ja toisaalta tarjosivat tarvittaessa myös mahdollisuuden siirtää ajatukset työn tekemisestä toisaalle. 10. toukokuuta 2009 Jarkko Pekkarinen

4 SISÄLLYS IV Tiivistelmä...II Alkusanat...III Termit ja niiden määritelmät...v 1. Johdanto Häviötön kuvan pakkaaminen PNG-kuvaformaatti Pakkausominaisuudet Pakkaussuotimet DEFLATE-algoritmi Kuvaominaisuudet Läpinäkyvyys Lomitus Gamma- ja värikorjaus Kehitysmahdollisuudet Kuvaformaattien vertailu Vertailtavat kuvaformaatit GIF TIFF Häviötön JPEG JPEG-LS Testikuvamateriaali Pakkaustehokkuusvertailu Pakkausnopeusvertailu Purkunopeusvertailu Johtopäätökset...24 Lähteet...25 Liite

5 TERMIT JA NIIDEN MÄÄRITELMÄT V Alfa-arvo Ilmaisee kyseisen pikselin läpinäkyvyysasteen PNGkuvassa. DEFLATE Häviötön pakkausalgoritmi, joka koostuu LZ77-algoritmista ja Huffman-koodauksesta. GIF Häviötön kuvaformaatti. Lyhenne muodostuu sanoista Graphics Interchange Format. JPEG-LS Sekä häviöttömän että häviöllisen tallennusmahdollisuuden tarjoava kuvaformaatti. Kuvaformaatti Säännöstö digitaalisen kuvan ja mahdollisesti siihen kuuluvien ominaisuuksien esittämiseen ja tulkitsemiseen binäärimuodossa. Kuvatyyppi Kuvadatan esitysmuoto. Joko harmaasävy-, RGB-, tai väripalettikuva. L-JPEG Häviötön pakkausmenetelmä JPEG-kuvaformaatissa. Lohko PNG-tiedoston datarakenteen alkeisosa, joka voi sisältää joko pakatun kuvadatan tai kuvaformaatin tunnistamiseen tai kuvaominaisuuksien toteuttamiseen tarvittavaa dataa. LZ77 Häviötön pakkausalgoritmi, joka hyödyntää identtisiä tavusekvenssejä datassa ja tallentaa näihin osoittimia. LZW Häviötön pakkausalgoritmi, joka hyödyntää identtisiä tavusekvenssejä datassa ja muodostaa näistä sanakirjan. Palikka LZ77:n muodostama osa pakattua dataa, jonka koko määrittyy sen perusteella, että Huffman-koodauksesta saadaan suurin hyöty. PNG Häviötön kuvaformaatti. Lyhenne muodostuu sanoista Portable Network Graphics. RLE Häviötön pakkausalgoritmi, joka hyödyntää peräkkäin esiintyviä identtisiä arvoja. Lyhenne muodostuu sanoista Run-Length Encoding. TIFF Häviötön kuvaformaatti. Lyhenne muodostuu sanoista Tagged Image File Format. Värisyvyys Bittimäärä, jota käytetään yksittäisen pikselin harmaasävyarvon, väripalettiarvon tai R-, G- tai B-arvon esittämiseen.

6 6 1.JOHDANTO Häviöllisessä tiedon pakkaamisessa sallitaan poikkeamia alkuperäiseen dataan ja on päätettävä siitä kuinka paljon poikkeamia datassa sallitaan verrattuna saavutettavaan pakkaushyötyyn. Tästä hyvänä esimerkkinä on JPEG-kuvaformaatti ja sen tarjoama mahdollisuus valita haluttu kuvanlaatu pakkaustehokkuuden kustannuksella. Häviöttömät tiedon pakkaamismenetelmät sen sijaan säilyttävät datan alkuperäisen informaatiosisällön täydellisesti, mikä voikin olla vaatimuksena esimerkiksi lääketieteellisiä kuvia tallennettaessa. Häviöttömässä pakkaamisessa pakkaamisen hyötysuhteeseen vaikuttaa pakattavan datasisällön lisäksi ainoastaan pakkausmenetelmän tehokkuus. Häviöttömät kuvaformaatit soveltuvat häviöllisiä paremmin etenkin tietokonegrafiikan, kuten web-sivustojen painikkeiden tai logokuvien pakkaamisen, sillä paljon tasaisia värialueita sisältäviin kuviin muodostuu häviöllisesti kuvia pakattaessa erityisen helposti havaittavia häiriöitä jopa värivirheitä. Häviötön pakkaaminen on hyvin hyödyllistä myös kuvankäsittelyssä, vaikka haluttaisiinkin tallentaa lopullinen työ häviölliseen muotoon, sillä kuvan laatu kärsii joka kerta kun kuvaa käsitellessä tehdään muutoksia ja kuva tallennetaan. Tämän työn luvussa 2 kerrotaan tarkemmin kuvien häviöttömästä pakkaamisesta, jonka jälkeen luvussa 3 esitellään häviötön PNG-kuvaformaatti ja sen ominaisuudet ja kehitysmahdollisuudet pakkausmenetelmiä painottaen. Muihin kuvaformaatteihin nähden luvussa 4 suoritettujen vertailujen pohjalta pohditaan lopuksi luvussa 5 onko PNG:n tämänhetkinen asema suosittuna yleiskäyttöisenä kuvaformaattina uhattuna. Jo heti alkuun voidaan todeta, että tälläkin hetkellä on olemassa ainakin yksi pakkaustehokkuudeltaan PNG:tä tehokkaampi yleiskäyttöinen häviötön kuvaformaatti, JPEG-LS, joka on myös tämän työn pakkaustehokkuusvertailussa mukana. JPEG-LS ei kuitenkaan ole ainakaan vielä saavuttanut merkittävää suosiota. Vielä tätäkin suurempia pakkaustehokkuuksia PNG:hen verrattuna on saavutettu rajattua tarkoitusta varten suunnitelluilla kuvaformaateilla, esimerkiksi lääketieteellisten ja satelliittikuvien häviöttömässä tallennuksessa, joissa voidaan hyödyntää kuvien erityispiirteitä paremman pakkaustehokkuuden saavuttamiseksi. [1; 2]

7 7 2.HÄVIÖTÖN KUVAN PAKKAAMINEN Ennen kuin aletaan käsittelemään pakkaamista on hyvä tiedostaa pakattavan datan erityispiirteet. Digitaalisen kuvan tapauksessa pakattavana datana on binäärijono, joka on tulkittavissa matriisiksi diskreettejä lukuarvoja. Data-alkioilla, eli tässä tapauksessa pikseleillä, on siis toisaalta ulottuvuutena lukuarvo ja toisaalta myös spatiaalinen ulottuvuus pikselin sijainti. Yksi tällainen matriisi tarvitaan harmaasävykuvan esittämiseen ja sen yksittäisen alkion arvo ilmaisee kyseisessä kohdassa sijaitsevan pikselin harmaasävyasteen. RGB-kuvissa matriiseja sen sijaan on kolme kappaletta ja näiden alkioiden arvot edustavat punaisen, vihreän, ja sinisen sävyn määrää kussakin pikselin sijainnissa. Niin kutsutulla väripalettikuvalla tarkoitetaan kuvaa, joka esitetään aina yhden matriisin avulla ja kuvan ohessa tallennetaan tieto siitä miten matriisin arvot tulkitaan. Väripalettikuva on hyödyllinen tallennusmuoto, kun esimerkiksi halutaan tallentaa värikuva, jossa on hyvin vähän eri sävyjä. Tällöin kuvan tallentaminen RGBmuodossa saattaisi turhaan kasvattaa kuvadatan määrää. Kuinka edellä esitellyn kuvadatan pakkaamisongelmaa tulee sitten lähestyä? Mikäli unohdetaan spatiaalinen ulottuvuus niin kuvalle ja mille tahansa muullekin datalle voidaan laskea teoreettinen alaraja kuinka pieneksi se on mahdollista pakata luomalla datan arvoille uudet, edullisemmat (todennäköisemmille arvoille lyhyemmät) esitysmuodot näiden esiintymistodennäköisyyksiä hyödyntäen. Tätä teoreettista rajaa kutsutaan arvojen kokonaisentropiaksi ja se on esitetty kaavassa (1), (1) jossa p(x) on arvon x esiintymistodennäköisyys kuvassa. Arvojen kokonaisentropia, H, saadaan laskemalla yksittäisten arvojen entropioiden odotusarvo ja sen yksiköksi saadaan bittiä per pikseliarvo [3]. Arvojen entropiaa hyödyntäviä pakkausmenetelmiä ovat mm. aritmeettinen koodaus ja Huffman-koodaus johon tutustutaan lyhyesti aliluvussa Tehokas pakkausmenetelmä digitaaliselle kuvalle kuitenkin käyttää arvoulottuvuuden lisäksi myös spatiaalista ulottuvuutta hyväkseen. On hyvä huomata, että kaikella datalla on mahdollista hyödyntää yksiulotteista spatiaalista korrelaatiota, sillä binääriesitys on aina tallennettuna tiettyyn järjestykseen. Kuvissa tätä korrelaatiota kuitenkin esiintyy kahdessa ulottuvuudessa. Spatiaaliselle entropialle, toisin kuin arvojen entropialle, ei ole yksiselitteistä laskennallista menetelmää. Tästä on

8 seurauksena se, ettei tietylle kuvadatalle ole mahdollista tarkasti määrittää teoreettista rajaa kuinka pieneksi se on mahdollista pakata [4]. Spatiaalisen entropian hyödyntämiseksi on kehitetty lukuisia eri menetelmiä, joten tässä luvussa ei tutustuta tarkemmin yksittäisiin menetelmiin, vaan tyydytään toteamaan, että tämän työn aliluvuissa ja on kuvattuna kaksi tällaista menetelmää: PNG-kuvaformaatin pakkaussuodatus ja LZ77-algoritmin identtisten tavusekvenssien etsintä. Spatiaalisen ulottuvuuden hyödyntämisen tärkeyttä kuvan pakkaamisessa voidaan kuitenkin havainnollistaa esimerkiksi seuraavasti: Olkoon kuvadatan pakkausmenetelmä spatiaalisesti riippumaton, mutta arvojen entropiaa hyödyntävä. Kuvapikselien arvot korvataan uusilla arvoilla sillä perusteella mitkä arvot ovat todennäköisimpiä esiintymään kuvadatassa. Mikäli kaikki arvot on alunperin esitetty 8- bittisessä muodossa niin pakatussa muodossa voitaisiin esittää kaikista yleisin arvo vain yhdellä bitillä, mutta harvinaisimmat arvot olisi esitettävä yli kahdeksalla bitillä. Jos käy niin, että kaikkia arvoja esiintyy kuvassa yhtä paljon (arvojen kokonaisentropia saa maksimiarvonsa), niin kuvadataa ei voida pakata ollenkaan, vaan lyhin esitysmuoto on alkuperäinen 8-bittinen esitystapa. On kuitenkin mahdollista, että tällainen arvojen entropiaa hyödyntävälle menetelmälle pakkautumaton data on spatiaalisen entropian näkökulmasta hyvinkin pakkautuvaa. Tästä hyvänä esimerkkinä on kuva, jonka jokainen rivi koostuu yhdestä vakiosävystä, jota ei esiinny muilla riveillä. Tällainen kuva olisi mahdollista pakata pseudokoodilla esimerkiksi seuraavaan muotoon: 256 pikseliä joiden arvo on X ja siirry uuden rivin alkuun. Toista edellinen 256 kertaa ja kasvata X:n arvoa joka toistolla yhdellä. X:n alkuarvo on 0.. On vaikeaa kehittää yhtä tehokasta algoritmia, joka hyödyntäisi tehokkaasti sekä arvojen entropiaa, että spatiaalista entropiaa. Tämän seurauksena häviöttömille kuvaformaateille onkin hyvin tyypillistä, että niiden pakkausmenetelmä koostuu vähintään kahdesta erillisestä algoritmista, kuten kaikissa tässä työssä mainituissa kuvaformaateissa. Lopuksi huomautettakoot, että kuvasarjojen tapauksessa on mahdollista hyödyntää kuvien pakkaamisen tehostamisessa myös temporaalista entropiaa, eli peräkkäisten kuvien sisältöjen välisiä yhtäläisyyksiä. Tällaista menetelmää on hyödynnetty mm. satelliittikuvien pakkaamisessa [2]. Tällaiset menetelmät muistuttavat hyvin läheisesti digitaalisen videokuvan pakkaamista, eikä niitä siten käsitellä tässä työssä. 8

9 9 3.PNG-KUVAFORMAATTI PNG-kuvaformaatin syntyyn johti se seikka, että yllättäen vuoden 1994 lopussa siihen aikaan internetissä laajimmalti käytössä olleesta häviöttömästä kuvaformaatista, aliluvussa esiteltävästä GIF:stä, alettiin periä lisenssimaksuja sitä tukevilta ohjelmistoilta. Taustalla tässä muutoksessa oli se, että GIF:n käyttämä LZW-algoritmi oli patentoitu. Verkkoyhteisö reagoi tilanteeseen nopeasti ja alettiin suunnitella webgrafiikan ja vähäväristen kuvien pakkaamisessa menestyvälle GIF:lle seuraajaa, PNG:tä. Suunnittelulähtökohtina oli, että uuden kuvaformaatin oli oltava vapaa patenteista ja edeltäjäänsä sekä pakkaustehokkuudeltaan että ominaisuuksiltaan parempi. Ei kuitenkaan tyydytty vain tähän, vaan PNG:n ominaisuuksia laajennettiin myös siten, että sitä oli mahdollista käyttää myös korvaamaan aliluvussa esiteltävä TIFF-kuvaformaatti tosivärikuvien (engl. truecolor) häviöttömässä tallentamisessa. PNG:n määritelmä valmistui vuoden 1995 ensimmäisellä puoliskolla, mutta sen nouseminen erittäin suosituksi häviöttömäksi kuvaformaatiksi tapahtui vasta 2000-luvun alkupuolella mm. pitkään kestäneen huonon internet-selainten ohjelmistotuen seurauksena. [5, s ] Tässä luvussa esitellään tarkemmin häviöttömästi kuvadataa pakkaavan PNGkuvaformaatin tärkeimmät ominaisuudet ja luvun lopussa pohditaan PNG:n kehitysmahdollisuuksia. Tässä työssä ei perehdytä PNG-tiedostojen datarakenteeseen. Lyhyesti voidaan kuitenkin todeta, että datarakenne on modulaarinen ja koostuu vaihtelevasta määrästä lohkoja (engl. chunk), joista yksi sisältää pakatun kuvadatan ja muut esimerkiksi kuvaformaatin tunnistamiseen tai kuvaominaisuuksien toteuttamiseen tarvittavaa dataa. Myöskin virheentarkasteluominaisuudet on rajattu työn ulkopuolelle, mutta näistäkin lyhyesti mainittakoot, että virheentarkastelua varten on PNG:ssä kolme erilaista menetelmää, joista yksi mahdollistaa vahingoittuneen tiedoston havaitsemisen jo kesken tiedonsiirron. [6] 3.1.Pakkausominaisuudet PNG-kuvaformaatin pakkausmenetelmänä on tässä luvussa esiteltävien pakkaussuotimien ja DEFLATE-algoritmin yhdistelmä. Nämä kaksi kokonaisuutta suoritetaan peräkkäin siten, että pakkaussuodatus tapahtuu ensin, jonka jälkeen suodatettu data pakataan DEFLATE:lla. Kumpikin näistä kokonaisuuksista on riippumaton kuvatyypistä (harmaasävy/väripaletti/rgb) ja värisyvyydestä. Värisyvyydellä tarkoitetaan bittimäärää, jota käytetään yksittäisen pikselin harmaasävyarvon, väripalettiarvon tai R-, G- tai B-arvon esittämiseen.

10 3.1.1.Pakkaussuotimet 10 Pakkaussuotimien tarkoituksena on pienentää kuvan arvojen kokonaisentropiaa arvojen kaksiulotteista spatiaalista korrelaatiota hyödyntämällä, jotta data saataisiin paremmin DEFLATE-algoritmilla pakkautuvaan muotoon. Pakkaussuotimien toimintaperiaatteena on se, että pakattavaa kuvadataa tarkastellaan riveittäin, valitaan jokaiselle riville parhaiten sille soveltuva suodin viiden vaihtoehdon joukosta ja lopputulokseksi saadaan suodatettu rivi ja tälle riville käytetyn suotimen tunniste. Tällainen adaptiivinen suodinten valinta mahdollistaa monipuolisen spatiaalisen entropian hyödyntämisen yksinkertaisia, lineaarisia yksittäissuotimia käyttäen. [6] Pakkaussuotimien toteutus vaatii muutaman säännön noudattamista. Ensinnäkin suotimet operoivat aina vertaistasoissa eli esimerkiksi RGB-kuvassa arvojen erotus lasketaan vähentämällä vierekkäisten pikseleiden punaisen sävyn arvot toisistaan, sen sijaan että erotus laskettaisiin tietyn pikselin kohdalla olevien puna-, viher-, ja sinisävyarvojen erotuksena. Toiseksi suotimet operoivat tavutasolla eivätkä pikselitasolla. Tämä tarkoittaa, että esimerkiksi 2:n bitin harmaasävykuvaa suodatettaessa neljän eri pikselin arvot mielletään yhdeksi tavun kokoiseksi arvoksi. Kolmantena sääntönä on, että lomitetuissa kuvissa suotimet operoivat kunkin lomitustason erikseen aivan kuin ne olisivat erillisiä kuvia omine korkeuksine ja leveyksineen. Lomituksesta kerrotaan tarkemmin aliluvussa Viimeisenä sääntönä on, että suodatuksen lopputulos saadaan tekemällä välitulokselle modulo-256-operaatio, jotta lopputuloksen esittämiseen riittäisi 8 bittiä. [5, s. 379] Taulukossa 3.1. on lueteltu PNG:n kaikki viisi pakkaussuodinta ja näiden toiminta kuvadataa sekä pakattaessa (suodinfunktio) että purettaessa (palautusfunktio). Taulukon lyhenne Suod(x) tarkoittaa suodatettavana olevan tavun x suodatuksen jälkeistä arvoa ja Alkup(x) alkuperäistä arvoa. Floor tarkoittaa pyöristämistä alaspäin lähimpään kokonaislukuun ja Paeth tarkoittaa Alan W. Paethin kehittämää Paeth-estimaattia, joka lasketaan seuraavasti kuvan 3.1. tavuarvojen sijaintimerkintöjä käyttäen: Vähennetään c:n arvo a:n ja b:n summasta ja valitaan estimaatiksi a,b tai c riippuen siitä mikä näistä on edellä saatua arvoa lähimpänä. [6] Kuva 3.1. Tavuarvojen sijainnit.

11 11 Taulukko 3.1. Pakkaussuotimet. Suodin Suodinfunktio Palautusfunktio None Suod(x) = Alkup(x) Alkup(x) = Suod(x) Sub Suod(x) = Alkup(x) - Alkup(a) Alkup(x) = Suod(x) + Alkup(a) Up Suod(x) = Alkup(x) - Alkup(b) Alkup(x) = Suod(x) + Alkup(b) Average Suod(x) = Alkup(x) - floor((alkup(a) + Alkup(b)) / 2) Alkup(x) = Suod(x) + floor((alkup(a) + Alkup(b)) / 2) Paeth Suod(x) = Alkup(x) - Paeth(Alkup(a), Alkup(b), Alkup(c)) Alkup(x) = Suod(x) + Paeth(Alkup(a), Alkup(b), Alkup(c)) Ennen kuin perehdytään siihen kuinka suotimet valitaan jokaista riviä varten, on hyvä käydä läpi millaisiin tilanteisiin eri suotimet tyypillisesti sopivat. None-suodin, joka jättää kuvadatan arvot ennalleen, on havaittu keskimäärin parhaaksi, kun käsiteltävänä on kuva, jonka väriavaruus on alle 8 bittiä, sillä suodatettavien tavuarvojen välinen korrelaatio on tällöin yleensä hyvin heikko. Viereisten arvojen erotuksiin perustuvat Sub- ja Up-suotimet muuttavat vaaka- ja pystygradientteja, eli tasaisesti muuttuvia sävyalueita kuvassa, jonoksi vakioita tavuarvoja. Tällaiset tilanteet ovat yleisiä etenkin tietokonegrafiikassa. Paeth-suotimen, joka hyödyntää varsin onnistuneesti sekä vaaka-, pysty- että poikkigradientteja, taas on havaittu tuottavan keskimäärin parhaimman tuloksen, mikäli sopivimman suotimen estimointi on laskennallisesti mahdotonta ja koko kuvadataa varten on valittava vain yksi suodin, esimerkiksi sulautetuissa järjestelmissä. [5 s ] Parhaimman suodinyhdistelmän valinta koko kuvadatalle ei ole aivan yksinkertainen ongelma. Kun rivejä on n kappaletta ja suotimia 5 erilaista niin koko kuvalle on mahdollista valita 5ⁿ erilaista suodinyhdistelmää ja lisäksi suodatuksen täsmällinen vaikutus lopulliseen pakkauskokoon on lisäksi nähtävissä vasta DEFLATE-algoritmin suorittamisen jälkeen. Optimaalisten suodinvalintojen laskemisen ollessa laskennallisesti liian vaativaa joudutaan suotimien valinta toteuttamaan estimoimalla. PNG:n spesifikaatio jättää estimoinnin toteutuksen täysin sovelluskehittäjien vastuulle, mutta epävirallisesti PNG:n kehittäjät suosittelevat toteuttamaan sen suodatustulosten absoluuttisten arvojen summan perusteella. Kuvan rivit suodatetaan jokaisella suotimella ja pienimmän tällaisen summan aikaansaanut suodin ja sen ulostulo valitaan yksittäisen rivin ulostuloksi. Tällä menetelmällä tehtyjen suodinvalintojen on havaittu olevan lähellä optimaalisia valintoja. [5, s ; 6] Pakkaussuodatuksen vaikutusta arvojen kokonaisentropiaan tutkittiin tässä työssä toteuttamalla pakkaussuotimet PNG:n spesifikaation mukaisesti ja näiden valinnan estimointi suositusten mukaisesti. Toteutukseen käytettiin Matlab-ohjelmistoa. Kuvassa 3.2 on nähtävissä suodatuksen vaikutus 512x512 pikselin ja 8:n bitin harmaasävyisen testikuvan pikseliarvoihin sekä arvojen kokonaisentropia ennen suodatusta ja suodatuksen jälkeen. Kuvan 3.2 testikuvalle suotimien valinnan estimointi päätyi siihen, että Sub-suodin valittiin yhdelle riville (ylin rivi), Up-suodin 98:lle riville, Averagesuodin 209:lle riville ja Paeth-suodin 204:lle riville. Suodatetusta kuvasta voidaan huomata, että rivit 2-5 ja ja alin rivi ovat täysin mustia (pikseliarvo 0). Selityksenä tälle on se, että alkuperäisessä kuvassa viisi ylintä ja kaksi alinta riviä ovat identtisiä ja näiden suodatuksessa on hyödynnetty Up-suodinta.

12 12 Kuva 3.2. Pakkaussuodatuksen vaikutus kuvadataan ja arvojen kokonaisentropiaan DEFLATE-algoritmi DEFLATE on häviötön algoritmi, jota käytetään myös esimerkiksi suositussa gzippakkausohjelmassa. DEFLATE nähtiin PNG:tä suunnitellessa hyvänä kompromissiratkaisuna pakkaustehokkuutensa ja laskennallisuuden vaativuutensa suhteen verrattuna muihin vaihtoehtoihin, joiden määrää rajoitti vaatimus patentittomuudesta. DEFLATE on yleiskäyttöinen pakkausalgoritmi, eli sillä voidaan pakata mitä tahansa binäärimuotoista dataa sisällöstä riippumatta. DEFLATE on oikeastaan kahden menetelmän yhdistelmä se koostuu LZ77-algoritmista, jota seuraa Huffman-koodaus. [7] Häviötön LZ77-algoritmi käyttää hyväkseen pakattavan tavujonon yksiulotteista spatiaalista entropiaa ja perustuu siihen, että tavuille, joita ollaan seuraavaksi pakkaamassa etsitään jo aiemmin pakatusta sisääntulodatasta mahdollisimman pitkä identtinen tavusekvenssi, ja tallennetaan tähän osoitin [8]. Tällaista enintään 32:n kilotavun pituista etsintäaluetta kutsutaan liukuvaksi ikkunaksi ja sen maksimipituus on määritelty perustuen siihen, että sen kasvattamisesta tämän suuremmaksi on tavallisesti vain prosentin murto-osan verran hyötyä [5, s. 375]. Osoitin tallennetaan lukuparina, joista ensimmäinen kertoo löydetyn sekvenssin pituuden tavuina (3 256) ja toinen etäisyyden tavuina (1-32k) taaksepäin, mistä alkaen tavusekvenssi löytyy. Kuvassa 3.3. on havainnollistettu osoitinparin muodostamista. Samalla menetelmällä toteutetaan myös jakson pituuden koodaus eli RLE (Run-length encoding). Tässä tapauksessa osoitinpari on esimerkiksi muotoa: etäisyys 1 ja pituus 10, josta seuraa, että viimeisin käsitelty tavu toistetaan 10 kertaa. Nyt oltaisiin näennäisesti osoittamassa alkioihin, joita ei vielä ole ikkunan sisällä, mutta tämä ei tuota ongelmaa, sillä dataa purettaessa ikkuna siirtyy tavun verran jokaisen yksittäisen kopioidun tavun jälkeen ja riittää, että ikkunan sisältä löytyy yksi toistuva tavu tai tavusarja [7].

13 13 Kuva 3.3. Osoitinparin muodostaminen LZ77:ssa. Kaikkea pakattavaa dataa ei luonnollisesti voida esittää osoitinparin avulla, sillä kaikille tavusekvensseille ei löydy identtistä paria ikkunan sisältä eikä LZ77 salli kolmea tavua lyhyempiä tavusekvenssejä esitettävän osoitinparin avulla. Tällaiset tavut on tallennettava pakattuun dataan sellaisenaan eli literaaleina. Kaikki pakattu data on siis joko literaalimuodossa tai osoitinparien pituuksina tai etäisyyksinä ja näiden kolmen datatyypin esittämiseen käytetään kahta erillistä aakkostoa, jotka käytännössä ovat bittijonoja, joiden jokaiselle arvolle on määritelty tietty tulkinta. Ensimmäisen aakkoston avulla esitetään sekä literaalit että pituudet siten, että niillä on molemmilla omat arvoalueensa ja toisen aakkoston avulla esitetään etäisyydet. Näiden kahden aakkoston arvoja ei ole mahdollista sekoittaa toisiinsa, sillä etäisyyttä esittävän aakkoston arvo esiintyy aina vain heti pituutta esittävän aakkoston arvon perässä. Tällainen aakkostojako on havaittu tehokkaaksi muodostettaessa LZ77-pakatun datan esittämistä varten Huffman-puita. [5, s. 375] Huffman-koodaus on häviötön pakkausmenetelmä, jonka perustana on se, että pakattavan datan arvoille luodaan uusi vaihtelevan mittainen esitysmuoto perustuen niiden esiintymistodennäköisyyksiin. Useimmin esiintyvät arvot saavat lyhyimmät esitysmuodot, kun taas harvemmin esiintyvät arvot saavat pisimmät. Esitysmuotojen on kuitenkin vaihtelevan pituuden vuoksi oltava sellaisia, että niiden tulkitseminen bittivirrasta on yksiselitteistä. Uusien esitysmuotojen määrittäminen kaikille arvoille toteutetaan puumaisesti haarautuvan algoritmin avulla, ja sen lopputulosta kutsutaan Huffman-puuksi. Esiintymistodennäköisyyksiin pohjautuvana menetelmänä Huffmankoodaus luokitellaan entropiakoodauksen menetelmäksi. [7] DEFLATE:ssa Huffman-koodaus toteutetaan LZ77:n jo pakkaaman datan aakkostoille joko ennalta määrättyjen Huffman-puiden avulla tai ne muodostetaan saadun datan pohjalta dynaamisesti. DEFLATE jaotteleekin LZ77:n pakkaaman datan sen kokoisiin osiin eli palikoihin (engl. block), että Huffman-koodaus saadaan toteutettua mahdollisimman optimaalisesti. Jokaisen palikan otsikossa (engl. header) on vain määriteltävä käytetäänkö ennalta määrättyjä vai dynaamisia Huffman-puita, ja jälkimmäisessä tapauksessa muodostettujen puiden kuvaus sisällytetään palikan dataan. [7]

14 3.2.Kuvaominaisuudet 14 Tässä kappaleessa esitellään PNG-kuvaformaatin tärkeimmät kuvaominaisuudet. Kuvaominaisuuksilla tarkoitetaan kaikkia kuvassa käytettäviä tai kuvaan vaikuttavia ominaisuuksia, jotka eivät kuulu varsinaiseen kuvadatan RGB-, väripaletti- tai harmaasävyesitysmuotoon Läpinäkyvyys Läpinäkyvyys-ominaisuutta voidaan käyttää kuvan pikseleiden esittämiseen joko täysin tai osittain läpinäkyvinä. Tätä ominaisuutta voidaan hyödyntää esimerkiksi internetsivustoilla käytettävissä kuvissa, jolloin samaa logo- tai painikekuvaa on mahdollista käyttää minkä tahansa eri taustan päällä, kuten kuvassa 3.4. on havainnollistettu. Mikäli taustaa halutaan joskus vaihtaa niin kuvatiedostoon ei tarvitse tehdä muutoksia. Läpinäkyvyyden ansiosta säästetään myös tiedonsiirtomäärissä verrattuna siihen tilanteeseen, että jokaista taustaa varten olisi oma kuvatiedostonsa. Kuva 3.4. Usean eri läpinäkyvyystason käyttäminen PNG-kuvassa. Noppakuvan tausta on muokattu täysin läpinäkyväksi ja nopan sivut eriasteisen läpinäkyviksi. PNG:ssä läpinäkyvyyttä voidaan käyttää kaikissa kuvatyypeissä ja toteutustasolla läpinäkyvyys esitetään yhtä poikkeustilannetta lukuunottamatta niin kutsutun alfakanavan avulla. Alfa-kanava toteutetaan RGB-kuvissa neljäntenä matriisina yksittäisten värimatriisien ohella ja harmaasävykuvissa toisena matriisina sävymatriisin ohella. Alfa-kanavan yksittäinen arvo kuvastaa läpinäkyvyysastetta kyseisen pikselin kohdalla kuvassa. Väripalettikuvissa alfa-kanavaa ei toteuteta matriisina vaan läpinäkyvyys joudutaan ilmaisemaan liittämällä yksittäisiin paletti-indekseihin sävytiedon lisäksi alfaarvo. Tästä seuraa se, että mikäli saman sävyn kohdalla halutaan käyttää eri kohdissa kuvaa eri läpinäkyvyysasteita, niin tälle sävylle joudutaan varaamaan paletti-indekseistä useampi alkio jokaista eri läpinäkyvyysastetta varten. [9]

15 Ainoana poikkeustilanteena missä alfa-kanavaa tai -arvoa ei käytetä läpinäkyvyyden esittämiseen on tilanne, jossa RGB- tai harmaasävykuvassa halutaan käyttää yhtä tiettyä sävyä täyden läpinäkyvyysasteen esittämiseen, kun muita läpinäkyvyysasteita ei käytetä. Tällaisessa tapauksessa niin kutsuttuun trns -lohkoon tallennetaan kyseisen sävyn arvo, jotta kuvaa luettaessa se osattaisiin tulkita täysin läpinäkyväksi [9]. On hyvä huomata, että läpinäkyvyyden käyttäminen kasvattaa kuvatiedoston kokoa. Väripalettikuvien ja edellä mainitun poikkeustilanteen tapauksessa tämä kasvu on luonnollisesti hyvin pieni, mutta alfa-kanava matriisimuodossaan saattaa kasvattaa pakatun kuvatiedon kokoa jopa kymmeniä prosentteja Lomitus Lomitus (engl. interlacing) mahdollistaa tallennetun kuvan progressiivisen ruudulle tuonnin siten, että alkuperäinen kuva jaetaan useampaan lomitustasoon, joista ensimmäisen avulla luodaan karkea versio alkuperäiskuvasta siten ja tätä seuraavat tasot täydentävät kuvaa kunnes viimeisen täydennyksen jälkeen kuva vastaa täysin alkuperäistä kuvaa [6]. Tällainen menettely mahdollistaa koko kuvasisällön nopeamman hahmottamisen kuvan latautuessa verrattuna tavalliseen kuvan latautumiseen, jossa kuva tuodaan ruudulle täydessä tarkkuudessaan muutama rivi kerrallaan järjestyksessä ylhäältä alaspäin sitä mukaa, kun sitä on saatu luettua [9]. PNG-kuvaformaatissa lomitus on toteutettu siten, että alkuperäisen kuvan pikseleitä tarkastellaan 8x8 pikselin ikkunoissa alkaen vasemmasta yläkulmasta ja nämä jaetaan Adam7-menetelmän (kuva 3.5.) mukaisesti numerojärjestyksessä seitsemään lomitustasoon, jotka tallennetaan pakattavaksi siirtyvään datavirtaan peräkkäin [6]. Kun kuvadataa luetaan niin lomitettuja kuvia tukevat ohjelmistot osaavat täydentää puuttuvat pikselit monistamalla niitä, jotka on jo saatu luettua. Kun esimerkiksi kuvadataa ollaan luettu kolmannen lomitustason loppuun asti, niin koko kuvadatasta on luettuna yksi kuudestoistaosa (4/64) ja koko kuvasta voidaan esittää karkea versio joka rakentuu 4x4 pikselin tasasävyisistä alueista Kuva 3.5. Adam7-menetelmän lomitustasojako. Lomitettujen kuvien haittapuolena PNG:ssä on se, että kutakin lomitustasoa erikseen pakkaussuotimilla käsiteltäessä pikseliarvojen välinen spatiaalinen korrelaatio on huomattavasti tavallista tilannetta heikompi johtuen siitä, että arvot ovat kauempana

16 toisistaan alkuperäisessä kuvassa. Tästä luonnollisesti seuraa se, että lopullisen pakatun tiedoston koko kasvaa. Suurissa kuvatiedostoissa, esimerkiksi valokuvissa, 8x8 pikselin ikkunan sisäiset arvot muistuttavat paljon toisiaan eikä pakkaustehokkuus siten kärsi yhtä paljon kuin hyvin pienissä kuvatiedostoissa, kuten internet-sivustoilla käytetyissä nappuloissa, joissa lomituksen käyttäminen saattaa sotkea pikseliarvojen järjestyksen erittäin epäsoveliaaksi pakkaamisen näkökulmasta [9]. Kun lisäksi pienet kuvatiedostot latautuvat huomattavasti isoja nopeammin, niin voidaan todeta ettei näissä kannata käyttää lomitusta. On huomion arvoista mainita, että lomituksesta saatava hyöty internet-sivustojen latautuessa ja kuvia massamuistista selattaessa on vuosien myötä vähentynyt internetyhteyksien nopeuduttua ja massamuistien lukunopeuksien parannuttua Gamma- ja värikorjaus Gamma- (engl. gamma correction) ja värikorjauksen (engl. chromaticity correction) tavoitteena on saada kuvat näyttämään valoisuudeltaan ja väreiltään samanlaisilta kuvien katselemiseen ja luomiseen käytettävästä laitteistosta riippumatta. Ilman gammakorjausta esimerkiksi PC-järjestelmällä luodut kuvat näyttävät Macintoshjärjestelmällä tarkasteltuina liian vaaleasävyisiltä johtuen järjestelmien eriävistä tavoista ohjelmistotasolla tehdä korjauksia näytölle vietävän kuvasignaalin kirkkauteen ennen sen siirtymistä laitteistotasolla esitettäväksi [9]. Näiden korjauksien taustalla on se, että näyttölaite aiheuttaa kuvasignaalin kirkkauteen epälineaarisia vääristymiä, joiden vaikutus pyritään kumoamaan. Tällaisia vääristymiä voidaan approksimoida varsin hyvin yksinkertaisella siirtofunktiolla (2), 16 ulostulo = sisäänmeno^eksponentti (2) jossa eksponentti kuvaa näyttölaitteen signaaliin aiheuttamaa vääristymää, joka on laitevalmistajien ansiosta vakio ja harmaasävy- tai RGB-väriarvoja kuvaavat ulostulo ja sisäänmeno on skaalattu välille Tällä samalla siirtofunktiolla mallinnetaan myös edellä mainittuja järjestelmien ohjelmistotason korjauksia, joiden erojen vaikutuksen kumotakseen joudutaan PNGtiedostoihin lisäämään erillinen gamma-arvo (γ), joka lasketaan kaavalla (3) ja joka riippuu järjestelmästä, jolla kuvatiedosto on luotu. γ = 1.0 / (järjestelmän eksponentti * näytön eksponentti) (3) Kun kuvatiedosto taas luetaan toisella järjestelmällä niin gamma-arvon avulla voidaan säätää tehtävää korjausta, jotta järjestelmien kokonaissiirtofunktio olisi identtinen. [6] Värikorjauksen taustalla on samankaltainen periaate. PNG-tiedostoon liitetään tieto kuvatiedoston luomiseen käytetyn järjestelmän näyttölaitteen värintoistoominaisuuksista ja luettaessa tiedostoa toisella järjestelmällä lasketaan ja toteutetaan

17 näiden ja uuden järjestelmän värintoisto-ominaisuuksien erotuksen pohjalta korjaukset, jotta myös väritoisto vastaisi mahdollisimman hyvin alkuperäistä. [9] 3.3.Kehitysmahdollisuudet 17 PNG:n pakkausnopeuden on usein kritisoitu olevan huono muihin häviöttömän pakkauksen kuvaformaatteihin verrattuna [2;10] ja myös tämän työn luvun 4.4 pakkausnopeusvertailussa päädytään samaan tulokseen. Pakkaussuotimien määritelmästä havaitaan, että pakkaussuotimille on mahdollista kirjoittaa rinnakkaista laskentaa hyödyntävä toteutus, jossa olisi mahdollista jakaa kuvadatan rivien suodatus useammalle säikeelle näiden laskennan ollessa riippumattomia toisistaan. Ääritapauksessa laskenta olisi mahdollista jakaa niin, että jokaista kuvariviä kohti olisi neljä säiettä, joista jokainen laskee yhdelle suotimelle (poislukien None-suodin) estimaatin suotimen valintaa varten. Käänteissuodatuksessa kuvan purkamisen yhteydessä ei ole mahdollista hyödyntää rinnakkaisuutta yhtä laajalti, sillä osa suotimista vaatii, että käsiteltävän rivin yläpuolisen rivin tulee jo olla purettu alkuperäiseen muotoonsa. Purkunopeuden osalta PNG tosin pärjää jo ilman parannuksiakin hyvin kilpaileviin kuvaformaatteihin verrattuna, kuten luvun 4.5 purkunopeusvertailussa selviää. DEFLATE:a käyttävästä gzip:stä on vuodesta 2007 ollut olemassa pakkausvaiheessa rinnakkaisuutta hyödyntävä toteutus, Pigz [11], joka jakaa LZ77:lla pakattavan datan osittain lomittain oleviin osiin, joista jokainen on mahdollista pakata omalla säikeellään. Vastaavanlainen parannus olisi mahdollista toteuttaa myös PNG:n DEFLATEalgoritmiin. PNG:n virallisen referenssikirjaston libpng:n [12] tämänhetkisen version versiolokista eikä dokumentaatiosta löydy viitettä minkäänlaisten rinnakkaisuutta hyödyntävien ratkaisujen olemassaoloon pakkaussuotimia tai DEFLATE:a varten, joten edellä esitetyt kehitysehdotukset ovat hyvin varteenotettavia. Käytettävissä olevien suoritinytimien määrästä riippuen nämä toteuttamalla voitaisiin jopa moninkertaistaa PNG:n pakkausnopeus ja hieman parantaa purkunopeutta. Moniytimiset suorittimet ovat tämän hetken uusissa tietokoneissa jo yleisempiä kuin yksiytimiset, joten toteutukselle olisi jo olemassa laaja laitteistotuki. Pakkaustehokkuutta ei ole pakkaus- ja purkunopeuden kaltaisesti mahdollista juurikaan parantaa nykyisen PNG:n standardin rajoissa. Vain pieniä hyötyjä voidaan saavuttaa optimoimalla pakkaussuotimien valitsemisesta ja LZ77:n liikkuvaa ikkunaa kasvattamalla. Sen sijaan PNG:n standardi varaa oikeuden uusien pakkausmenetelmien lisäämiseksi vanhojen rinnalle mahdollisissa tulevaisuuden versioissa. Tämä koskee sekä pakkaussuotimia että DEFLATE-algoritmia. [6]

18 18 4.KUVAFORMAATTIEN VERTAILU Tässä luvussa esitellään aluksi lyhyesti yleisimmät PNG:n kanssa kilpailevat kuvaformaatit ja näiden ominaisuudet, jonka jälkeen esitellään testikuvamateriaali ja lopuksi tarkastellaan formaattien välillä suoritettujen pakkaustehokkuus-, pakkausnopeus- ja purkunopeusvertailujen tuloksia. Nämä vertailut valittiin työhön, jotta saataisiin kattava kuva vertailtavien kuvaformaattien soveltuvuudesta eri tarkoituksiin. Pakkaustehokkuus on tärkeintä kuvia varastoitaessa tai internet-käytössä, pakkausnopeus korostuu kuvankäsittelyssä, jossa käsiteltävä kuva tallennetaan usein ja purkunopeus on merkityksekäs, kun halutaan selata suurikokoisia kuvia. 4.1.Vertailtavat kuvaformaatit GIF GIF (Graphic Interchange Format) on häviötön kuvaformaatti, joka sai nykyisen muotonsa jo vuonna GIF:n kenties suurin rajoite on sen täysin puuttuva tuki RGB-kuvatyypille. Lisäksi GIF tukee enintään 8:n bitin harmaasävy- ja väripalettikuvia, ja siten rajoittaa käytettävän sävymäärän 256:een, mikä tekee siitä epäsoveliaan formaatin esimerkiksi valokuvien tallentamiseen. Web-grafiikan esittämiseen tämä värimäärä riittää tavallisesti hyvin ja GIF onkin ollut internetin alkuajoista asti hyvin suosittu ja yleisesti ohjelmistojen tukema kuvaformaatti tähän tarkoitukseen. [13] GIF mahdollistaa vain yhden täydellisen läpinäkyvyystason, joka toteutetaan varaamalla yksi värisävyistä läpinäkyvyyden esittämistä varten. GIF:n tarjoama lomitusominaisuus on havaittu toiminnaltaan heikommaksi kuin PNG:n vastaava, eikä GIF myöskään sisällä mahdollisuutta gamma- tai värikorjaukseen. PNG:stä puuttuvana ominaisuutena GIF tarjoaa mahdollisuuden animaatioon, joka toteutetaan tallentamalla useampi kuva yhteen GIF-tiedostoon, jolloin tiedosto esitetään luettaessa toistuvasti kuvia peräkkäin näyttäen. [13] Pakkausmenetelmänään GIF käyttää häviötöntä LZW-algoritmia, joka on LZ77:n johdannainen. Pakkausvaiheessa LZ77:sta poiketen LZW puskuroi tulevaa dataa jo pakatun datan sijasta ja vertailee tätä erilliseen merkkijonotaulukkoon, jota tarvittaessa täydennetään ja johon tallennetaan osoittimia datan pakkaamiseksi [14]. LZW-algoritmi on yhden säikeen toteutukseltaan erittäin nopea LZ77:n verrattuna ja myös sitä on mahdollista edelleen nopeuttaa useamman säikeen toteutuksella [15].

19 4.1.2.TIFF 19 Ensimmäinen versio TIFF-kuvaformaatin (Tagged Image File Format) määritelmästä valmistui jo vuonna 1986 sillä tarkoituksella, että siitä muodostuisi yleisesti tuettu ja yhteensopivuusongelmia vähentävä formaatti toimistolaitteita kuten fakseja, skannereita ja tulostimia varten. TIFF tukeekin käytännössä kaikkia värisävyjä ja -paletteja ja mahdollistaa sisältämänsä kuvadatan tallentamisen joko häviöttömässä tai häviöllisessä muodossa. Häviöttöminä pakkausmenetelminä TIFF tarjoaa joko RLE-, LZW tai DEFLATE-algoritmin sekä lisäksi useamman muun vaihtoehdon yhden bitin värisyvyyden kuville. [13] PNG:n tapaan TIFF sisältää gamma- ja värikorjauksen ja mahdollistaa useita läpinäkyvyystasoja kuviin, mutta tarjoaa lomitusmahdollisuuden vain häviöllisessä JPEG-pakkausvaihtoehdossa. Kenties merkittävin etu TIFF:ssä PNG:hen nähden on sen tuki kuvakerroksille (engl. layer). Kuvakerrokset ovat hyvin käytännöllisiä kuvankäsittelyssä esimerkiksi haluttaessa toteuttaa jokin muokkausoperaatio vain tietylle alueelle kuvassa. [16] Häviötön JPEG Häviötön JPEG eli L-JPEG (Lossless JPEG) on häviötön pakkausmenetelmä, joka lisättiin jälkikäteen siihen asti vain häviöllistä pakkausta tukeneeseen JPEGkuvaformaattiin vuonna L-JPEG käyttää häviöllisestä JPEG:stä täysin erillistä kaksiosaista pakkausmenetelmää, jossa koko kuvadata suodatetaan ensin yhdellä seitsemästä, PNG:n vastaavia muistuttavista pakkaussuotimista ja tämän jälkeen pakataan Huffman-koodauksella. [17] L-JPEG ei JPEG:hen kuuluvana tue läpinäkyvyyttä, mutta sisältää gamma- ja värikorjauksen. Lomitusmahdollisuus tarjotaan vain häviöllisesti pakatuille JPEGkuville. [18] Myös JPEG kuvaformaatissa on häviötön tallennusmenetelmä, mutta sitä ei käsitellä tässä työssä. Voidaan kuitenkin mainita, että se on havaittu pakkaustehokkuudeltaan valokuvissa suunnilleen yhtä hyväksi ja tietokonegrafiikkakuvissa huonommaksi kuin PNG [17] JPEG-LS JPEG-LS on alunperin vuonna 1999 esitelty häviöttömän ja lähes häviöttömän pakkauksen kuvaformaatti ja on täysin erillään JPEG- ja JPEG kuvaformaateista. JPEG-LS käyttää sekä häviöttömän että lähes häviöttömän pakkaamisen toteuttamiseksi Hewlett-Packardin patentoimaa LOCO-I algoritmia, josta on luvattu olla perimättä lisenssimaksuja. JPEG-LS tukee kaikkia kuvatyyppejä, mutta ei sisällä mahdollisuutta läpinäkyvyyteen eikä lomitukseen. [19; 20] LOCO-I algoritmin toiminta koostuu yksinkertaistettuna kolmesta vaiheesta: ennustuksen laskennasta, kontekstimallin muodostamisesta ja ennustevirheiden

20 koodauksesta. Ensimmäisessä vaiheessa data suodatetaan suotimella, joka pyrkii ennustamaan käsiteltävän pikselin arvon naapuripikseleiden arvoja hyödyntäen. Toisen vaiheen ideana on hyödyntää käsiteltävän pikselin lähipikseleissä esiintyviä muotoja tai kuvioita, jotta ennustusvirheille voitaisiin luoda malli. Kolmannessa vaiheessa aiempien vaiheiden muotoilema data pakataan Golomb-Rice-koodauksella. [21] JPEG-LS:n ohjelmistotuki on tällä hetkellä niin huono, että käytännössä mikään kuvankäsittelyohjelmisto ei tue sitä, vaan sen käyttämiseksi on saatavilla vain joitain yksittäisiä pienohjelmia, joilla on mahdollista muuntaa kuvia JPEG-LS-formaattiin. 4.2.Testikuvamateriaali Kuvaformaattien vertailua varten luotiin testikuvamateriaali, joka koostuu kuudesta valokuvasta ja viidestä tietokonegrafiikkaa edustavasta kuvasta. Materiaali pyrittiin luomaan siten, että se edustaisi mahdollisimman hyvin tyypillisiä tilanteita, joissa käytetään häviötöntä pakkausta. Materiaalin valokuvat, poislukien v_plejadit, on otettu Canon 350D -järjestelmäkameralla ja pienimmällä kennon herkkyydellä (ISO 100) kohinan minimoimiseksi. Valokuvat pyrkivät vastaamaan ammattilaisvalokuvaajien kuvaamaa materiaalia, joka tavallisesti halutaan tallentaa häviöttömästi. Myös tietokonegrafiikkakuvat pyrittiin luomaan siten, että ne vastaavat useita eri tilanteita, joissa kuvatiedostot tavallisesti pakataan häviöttömästi. Testikuvamateriaalin tarkempi kuvaus ja itse kuvat pienennetyssä koossa löytyvät liitteestä 1. Työn kirjoittajalla on tekijänoikeudet kaikkiin testikuvamateriaalin kuviin Pakkaustehokkuusvertailu Pakkaustehokkuusvertailu toteutettiin kaikkien muiden kuvaformaattien paitsi JPEG- LS:n osalta Matlab(R2008b)-ohjelmiston [22] imwrite-funktiolla oletusasetuksia käyttäen. Oletusasetusten mukaisesti TIFF käytti pakkausmenetelmänään PackBits:iä, joka perustuu RLE:hen. JPEG-LS:ää varten käytettiin Hewlett-Packardin toteuttamaa pluginia [20] Photoshop-ohjelmistolle [23]. Myös JPEG-LS-formaattiin kuvia pakattaessa käytettiin oletusasetuksia. Pakattujen kuvien tiedostokokoja verrattiin täysin pakkaamattoman kuvadatan tiedostokokoihin ja vertailun tulokset koottiin taulukkoon 4.1. Vertailun tuloksista havaitaan, että JPEG-LS suoriutui testikuvamateriaalin pakkaamisessa keskimääräisesti parhaiten ollen myös PNG:n ohella ainoa kuvaformaatti, joka suoriutui sekä valokuvien että tietokonegrafiikan pakkaamisessa tasaisen hyvin. On huomion arvoista, että suurelta osin JPEG-LS:n keskiarvotuloksen suurta eroa PNG:hen selittää PNG:n huono suoriutuminen v_plejadit-kuvassa, joka on 16 bitin värisyvyyden harmaasävykuva. Huonoa suoriutumista selittänee osaltaan pakkaussuotimien heikentynyt toiminta, sillä ne operoivat tavutasolla, ja toisaalta se, että LZ77-algoritmin ikkuna ulottui pikselitasolla vain puoleen siitä etäisyydestä, mihin se ulottuu 8:n bitin värisyvyyden kuvissa.

21 Kaikkien kuvaformaattien huonohko pakkaussuhde w_painike-kuvalle selittyy kuvan hyvin pienellä koolla (31x31 pikseliä). Tämän seurauksena kuvaformaattien kehyksen, eli kaiken muun kuin pakatun kuvadatan, osuus tiedostokoosta on hyvin suuri verrattuna isompikokoisiin kuviin. TIFF oli vertailussa vaikeuksissa valokuvien kanssa, sillä RLE hyödyntää peräkkäisiä identtisiä arvoja ja tällaiset tilanteet ovat luonnollisissa kuvissa harvinaisia. L-JPEG:n huonoa menestystä tietokonegrafiikkakuvissa taas selittää juuri se, että sen pakkausmenetelmästä puuttuu mahdollisuus peräkkäisten identtisten arvojen tai toistuvien sekvenssien hyödyntämiseen. PNG:n paremmuus GIF:n verrattuna johtuu PNG:n pakkaussuodatuksesta ja LZ77:n jälkeisestä Huffman-koodauksesta. GIF:n käyttämä LZW ja PNG:n LZ77 ovat itsessään pakkaustehokkuudeltaan hyvin samantasoisia, mutta LZW on huomattavasti nopeampi, kuten seuraavassa luvussa havaitaan. Taulukko 4.1. tiedostokokoon. Testikuvien pakatun tiedostokokoon suhde pakkaamattomaan PNG GIF TIFF L-JPEG JPEG-LS v_kasvi 0,36-1,01 0,42 0,25 v_kirjahylly 0,42-1,01 0,53 0,30 v_maisema 0,34-1,01 0,39 0,23 v_muotokuva 0,37-1,01 0,43 0,26 v_plejadit 0,89-1, v_pylvas 0,66 1,04 1,00 0,76 0,61 w_liekki 0,22 0,40 0,48 0,65 0,17 w_logo 0,20 0,24 0,36 0,69 0,21 w_noppa 0,05 0,05 0,08 0,45 0,04 w_otsake 0,10 0,11 0,20 0,86 0,08 w_painike 1,06 1,03 1,96 1,26 0,78 keskiarvo 0,42 0,48 0,83 0,64 0, Pakkausnopeusvertailu Myös pakkausnopeusvertailun toteuttamiseen käytettiin Matlab-ohjelmistoa ja imwritefunktiota oletusasetuksia käyttäen, mutta tällä kertaa jokainen pakkaaminen toteutettiin kymmenen kertaa silmukan avulla ja samalla laskettiin yhteen pakkaamiseen kulunut keskimääräinen aika. Edellä esitetyllä tavalla saadut tulokset koostettiin taulukkoon 4.2. JPEG-LS jätettiin pakkausnopeusvertailun ulkopuolelle, sillä pakkaamiseen kulunutta aikaa ei onnistuttu mittaamaan Photoshop-ohjelmiston avulla. Pakkausnopeusvertailun tuloksista havaitaan, että PNG-kuvaformaatti on kilpaileviin kuvaformaatteihin verrattuna huomattavan hidas kuvien pakkaamisessa. Tätä havaintoa selittää LZ77-algoritmin laskennallinen raskaus identtisiä tavusekvenssejä etsittäessä. Vertailun tuloksista nähdään myös, että L-JPEG:n

22 pakkausnopeus on yllättävän huono tietokonegrafiikkakuvissa. Tämän vertailun ulkopuolelle jääneen JPEG-LS:n pakkausnopeuden on muissa tutkimuksissa havaittu olevan sekä L-JPEG:tä, että PNG:tä parempi [10]. TIFF-kuvaformaatin hyvä pakkausnopeus selittänee osittain sen suosiota ammattimaisen kuvankäsittelyn kuvaformaattina. 22 Taulukko 4.2. Testikuvien pakkaamiseen kulunut aika suhteessa PNG:llä kuluneeseen aikaan ja yhteen PNG-pakkaamiseen kulunut absoluuttinen aika sekunteina. PNG GIF TIFF L-JPEG PNG (abs) v_kasvi 1,00-0,09 0,19 2,149s v_kirjahylly 1,00-0,09 0,22 1,971s v_maisema 1,00-0,24 0,26 1,907s v_muotokuva 1,00-0,22 0,25 2,073s v_plejadit 1,00-0,17-0,035s v_pylvas 1,00 0,26 0,15 0,40 0,410s w_liekki 1,00 0,50 0,41 4,37 0,023s w_logo 1,00 0,56 0,49 4,00 0,013s w_noppa 1,00 0,80 0,71 7,82 0,010s w_otsake 1,00 0,78 0,76 4,76 0,006s w_painike 1,00 0,70 0,92 1,09 0,004s keskiarvo 1,00 0,60 0,39 2, Purkunopeusvertailu Purkunopeusvertailussa käytettiin Matlab-ohjelmiston imread-funktiota, jonka avulla eri kuvaformaatteihin pakattu testikuvamateriaali luettiin kymmenen kertaa silmukan avulla ja jokaiselle kuvalle laskettiin keskimäärin yhteen lukemiseen kulunut aika. JPEG-LS jäi myös tämän vertailun ulkopuolelle, mutta sen purkunopeuden on tavallisesti havaittu olevan keskimäärin hieman PNG:tä parempi [17]. Purkunopeusvertailun tulokset koostettiin taulukkoon 4.3. Taulukkoon 4.3. koostetuista tuloksista havaitaan, että PNG-kuvaformaatti pärjää purkunopeudessa muihin formaatteihin verrattuna huomattavasti paremmin kuin pakkausnopeutta vertailtaessa. L-JPEG on tässäkin vertailussa vaikeuksissa tietokonegrafiikkakuvien kanssa, mutta ei aivan yhtä pahasti kuin GIF. TIFF on jälleen joukon nopein yksinkertaisen RLE-algoritmin ansiosta. Yleisesti voidaan todeta, että pieni- ja keskikokoisilla kuvilla hitaimmillakin kuvaformaateilla purkuajat jäävät huomaamattoman pieniksi, mutta esimerkiksi suuria valokuvia nopeasti selattaessa purkuaika on hidastavana tekijänä vielä tämänkin hetken keskitehokkaalla kotitietokoneella.

23 Taulukko 4.3. Testikuvien purkamiseen kulunut aika suhteessa PNG:llä kuluneeseen aikaan ja yhteen PNG-purkamiseen kulunut absoluuttinen aika sekunteina. 23 PNG GIF TIFF L-JPEG PNG (abs) v_kasvi 1,00-0,32 0,95 0,2481s v_kirjahylly 1,00-0,28 0,95 0,2532s v_maisema 1,00-0,86 1,68 0,2418s v_muotokuva 1,00-0,87 1,71 0,2396s v_plejadit 1,00-0,75-0,0059s v_pylvas 1,00 3,95 0,34 1,57 0,0508s w_liekki 1,00 5,63 0,98 4,99 0,0039s w_logo 1,00 3,68 0,72 3,39 0,0031s w_noppa 1,00 4,41 0,67 4,76 0,0035s w_otsake 1,00 3,22 0,82 3,22 0,0019s w_painike 1,00 1,91 1,04 1,00 0,0011s keskiarvo 1,00 3,80 0,70 2,42 -

24 24 5.JOHTOPÄÄTÖKSET PNG havaittiin ominaisuuksiltaan monipuoliseksi ja suorituskyvyltään sekä pakkaustehokkuuden, että purkunopeuden osalta tasaisen hyvin menestyväksi kuvaformaatiksi. PNG:n heikkous muihin kuvaformaatteihin verrattuna oli sen hidas pakkausnopeus, jonka seurauksena esimerkiksi kymmenen megapikselin valokuvan tallentamisessa PNG-kuvaformaattiin kestää keskitehokkaalla kotitietokoneella lähestulkoon kymmenen sekuntia. Työssä esiteltiin PNG-kuvaformaatin tämänhetkisen standardin kanssa yhteensopivia kehitysehdotuksia pakkausnopeuden parantamiseksi rinnakkaista laskentaa hyödyntämällä. Ehdotukset toteuttamalla pakkausnopeus olisi mahdollista jopa moninkertaistaa, mikäli käytettävissä on useita suorittimia. Tämänhetkisen hitaan pakkausnopeuden seurauksena PNG ei sovellu nopeutta eniten arvostavan ammattimaisen kuvankäsittelyn kuvaformaatiksi yhtä hyvin kuin useamman eri pakkausmenetelmän tarjoava TIFF. Suosituin käyttökohde PNG-kuvaformaatilla on aina ollut internet-sivustoilla esiintyvien pienten ja keskisuurten kuvien tallennusmuotona, mikä olikin tarkoituksena kun se alunperin kehitettiin GIF:in syrjäyttäjäksi. PNG:n etuna vieläkin internetkäytössä suosittuun GIF:iin nähden on sen tuki usealle läpinäkyvyysasteelle, mikä mahdollistaa saman kuvatiedoston tyylikkään hyödyntämisen minkä tahansa taustan päällä. GIF:n etuna taas on PNG:stä puuttuva mahdollisuus animaation toteuttamiseen, jonka hyödyllisyyttä toisaalta nykyään on vähentänyt interaktiivisuuden mahdollistavien flash-animaatioiden käytön yleistyminen internet-sivustoilla. Sekä GIF:n että PNG:n vahvimpana etuna internet-käytössä kaikkiin tulevaisuudessa niitä haastaviin kuvaformaatteihin verrattuna on niiden ajan mittaan kasvattama, äärimmäisen laajamittainen ohjelmistotuki. Kaupallisille internet-sivustoille pienempien kuvatiedostojen ansiosta säästettyä levytilaa ja saavutettuja tiedonsiirtokustannuksien säästöjäkin tärkeämpää on se, että vanhojenkin internetselainten käyttäjät saavat sivuston näkyviin ilman virheitä. Pakkaustehokkuuden kannalta tässä työssä tehtyjen vertailujen pohjalta parhaimmaksi kuvaformaatiksi havaittiin JPEG-LS. Edellä esitettyjen näkökulmien pohjalta ja ottaen huomioon sen, että JPEG-LS:n käyttämän algoritmi on patentoitu, on syytä epäillä onko JPEG-LS:stä kuitenkaan suosittujen kuvaformaattien haastajaksi. Ottaen huomioon, että JPEG-LS esiteltiin jo vuonna 1999 ja sen suosio on pysynyt tähänkin asti hyvin vaisuna niin voidaan todeta, että se tuskin tulee pystymään tähän.

25 LÄHTEET 25 [1] J. Scharcanski, Lossless and Near-Lossless Compression for Mammographic Digital Images, Proc. IEEE International Conference on Image Processing, s , lokakuuta [2] D. Acevedo and A. Ruedin, Reduction of Interband Correlation for Landsat Image Compression, Proc. XVIII Brazilian Symposium on Computer Graphics and Image Processing (SIBGRAPI 05), s , lokakuuta [3] C.E. Shannon, A Mathematical Theory of Communication, Bell System Technical Journal, vol. 27, s heinäkuu, s lokakuu [4] F. Tupin, M. Sigelle and H. Maître, Definition of a spatial entropy and its use for texture discrimination, Proc International Conference on Image Processing, vol. 1, s , [5] K. Sayood, Lossless compression handbook, Illustrated edition, 455 s. Academic Press, [6] ISO/IEC 15948:2003. Portable Network Graphics (PNG): Functional specification [WWW]. [Viitattu ]. Saatavissa: org/pub/png/spec/iso/index-noobject.html. [7] P. Deutsch, DEFLATE Compressed Data Format Specification version 1.3 [WWW]. [Viitattu ]. Saatavissa: [8] J. Ziv and A. Lempel, A Universal Algorithm for Sequential Data Compression, IEEE Transactions on Information Theory, vol. 23, no. 3, s , [9] G. Roelofs, PNG: The Definitive Guide, Second Edition, 344 s. Greg Roelofs, internetjulkaisu 2003 [WWW]. [Viitattu ]. Saatavissa: [10] G. Schaefer, R. Starosolski and S. Zhu, An evaluation of lossless compression algorithms for medical infrared images, Proc IEEE Engineering in Medicine and Biology 27th Annual Conference, s , Kiina, syyskuuta 2005.

26 [11] M. Adler, Pigz homepage [WWW]. [Viitattu ]. Saatavissa: net/pigz/ [12] G. Roelofs, LibPNG homepage [WWW]. [Viitattu ]. Saatavissa: 26 [13] R.H.3rd Wiggins, H.C. Davidson, H.R. Harnsberger, J.R. Lauman and P.A. Goede, Image File Formats: Past, Present, and Future, RadioGraphics, vol. 21, no. 3, s , [14] T.A. Welch, A Technique for High-Performance Data Compression, Computer, vol. 17, no. 6, s. 8 19, [15] S.T. Klein and Y. Wiseman, Parallel Lempel Ziv Coding, Discrete Applied Mathematics, vol. 146, no. 2, s , [16] Adobe. Tagged Image File Format Developer Resources [WWW]. [Viitattu ]. Saatavissa: html. [17] D. Santa-Cruz, T. Ebrahimi, J. Askelöf, M. Larsson and C.A. Christopoulos, JPEG 2000 still image coding versus other standards, Proc. SPIE's 45th annual meeting, Applications of Digital Image Processing XXIII, vol. 4115, s , 30. heinäkuuta 4. elokuuta [18] Wikipedia. Comparison of graphics file formats [WWW]. [Viitattu ]. Saatavissa: [19] Joint Photographic Experts Group. JPEG-LS [WWW]. [Viitattu ]. Saatavissa: [20] Hewlett-Packard. HP Labs LOCO-I/JPEG-LS Home Page [WWW]. [Viitattu ]. Saatavissa: [21] M. Weinberger, G. Seroussi and G. Sapiro, The LOCO-I Lossless Image Compression Algorithm: Principles and Standardization into JPEG-LS, IEEE Transactions on Image Processing, vol. 9, no. 8, s , [22] The MathWorks. Matlab homepage [WWW]. [Viitattu ]. Saatavissa:

27 [23] Adobe. Adobe Photoshop family [WWW]. [Viitattu ]. Saatavissa: 27

28 LIITE 1: TESTIKUVAMATERIAALI 28 Kuvan nimi v_kasvi Kuvan nimi v_kirjahylly Tyyppi valokuva Tyyppi valokuva Koko 1152 x 1728 Koko 1152 x 1728 Kuvatyyppi RGB Kuvatyyppi RGB Värisyvyys 3 x 8 bittiä Värisyvyys 3 x 8 bittiä Kuvaus: Tyypillinen lähikuva järjestelmäkameralla. Kuvaus: Tyypillinen sisäkuva salamavalon kanssa. Kuvan nimi v_maisema Kuvan nimi v_muotokuva Tyyppi valokuva Tyyppi valokuva Koko 1728 x 1152 Koko 1728 x 1152 Kuvatyyppi RGB Kuvatyyppi RGB Värisyvyys 3 x 8 bittiä Värisyvyys 3 x 8 bittiä Kuvaus: Tyypillinen maisemakuva. Kuvaus: Tyypillinen henkilökuva salamavalon kanssa Kuva L1. Testikuvamateriaalin ensimmäiset neljä kuvaa.

29 29 Kuvan nimi v_plejadit Kuvan nimi v_pylvas Tyyppi valokuva Tyyppi valokuva Koko 320 x 240 Koko 1152 x 1728 Kuvatyyppi harmaasävy Kuvatyyppi harmaasävy Värisyvyys 16 bittiä Värisyvyys 8 bittiä Kuvaus: Osa Plejadeista. Kuvattu kaukoputkeen liitetyllä CCD-kameralla. Tyypillinen tähtitieteellinen kuva. Kuvaus: Lähikuva pylväästä. Simuloi tyypillistä mikroskooppikuvaa tai kuvaa planeetan pinnasta. Kuvan nimi w_liekki Kuvan nimi w_logo Tyyppi tietokonegrafiikka Tyyppi tietokonegrafiikka Koko 994 x 226 Koko 384 x 307 Kuvatyyppi väripaletti Kuvatyyppi väripaletti Värimäärä 256 Värimäärä 256 Kuvaus: Tyypillinen internet-sivuston nk. banneri. Kuvaus: Tyypillinen internet-sivuston logo. Kuva L2. Testikuvamateriaalin seuraavat neljä kuvaa.

30 30 Kuvan nimi w_noppa Kuvan nimi w_otsake Tyyppi tietokonegrafiikka Tyyppi tietokonegrafiikka Koko 439 x 467 Koko 384 x 179 Kuvatyyppi väripaletti Kuvatyyppi väripaletti Värimäärä 256 Värimäärä 22 Kuvaus: Tyypillinen tietokonegrafiikkakuvio. Kuvaus: Tyypillinen tyylitelty otsake web-sivustolla. Kuvan nimi w_painike Tyyppi tietokonegrafiikka Koko 31 x 31 Kuvatyyppi Väripaletti Värimäärä 105 Kuvaus: Tyypillinen internet-sivuston painike. Kuva L3. Testikuvamateriaalin viimeiset kolme kuvaa.

Häviötön kuvanpakkausalgoritmi lomituksella ja sen tehokkuuden vertailu PNG-formaattiin

Häviötön kuvanpakkausalgoritmi lomituksella ja sen tehokkuuden vertailu PNG-formaattiin Häviötön kuvanpakkausalgoritmi lomituksella ja sen tehokkuuden vertailu PNG-formaattiin Tietojenkäsittelytiede Topi Talvitie Helsingin matematiikkalukio 19.11.2009 Tiivistelmä Nykyisin PNG on yleisimmin

Lisätiedot

VÄRISPEKTRIKUVIEN TEHOKAS SIIRTO TIETOVERKOISSA

VÄRISPEKTRIKUVIEN TEHOKAS SIIRTO TIETOVERKOISSA VÄRISPEKTRIKUVIEN TEHOKAS SIIRTO TIETOVERKOISSA Juha Lehtonen 20.3.2002 Joensuun yliopisto Tietojenkäsittelytiede Kandidaatintutkielma ESIPUHE Olen kirjoittanut tämän kandidaatintutkielman Joensuun yliopistossa

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

Lisätiedot

Juha-Pekka Ruuska 17.01.03 BITTIKARTTAGRAFIIKKA, BITTIKARTTAKUVAT ELI RASTERIKUVAT...2

Juha-Pekka Ruuska 17.01.03 BITTIKARTTAGRAFIIKKA, BITTIKARTTAKUVAT ELI RASTERIKUVAT...2 BITTIKARTTAGRAFIIKKA, BITTIKARTTAKUVAT ELI RASTERIKUVAT...2 VEKTORIGRAFIIKKA...2 BITTIKARTTAKUVAT...2 BITTIKARTTAKUVAN PIKSELIKOKO...2 BITTIKARTTAKUVAN RESOLUUTIO...2 RGB-KOLMIVÄRIMALLI...3 BITTIKARTTAKUVANVÄRISYVYYS

Lisätiedot

8 Multimedian elementtejä: kuva

8 Multimedian elementtejä: kuva 8 Multimedian elementtejä: kuva Näyttävän hypermedian keskeinen elementti on kuva. Kuvankäsittelyyn liittyy sekä teknisiä (miten) että sisällöllisiä piirteitä (mitä ja kenelle). Seuraavassa käsitellään

Lisätiedot

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

Matias Sumanen Mittaussignaalin häviötön pakkaaminen. Kandidaatintyö Matias Sumanen Mittaussignaalin häviötön pakkaaminen Kandidaatintyö Tarkastaja: Yliopistonlehtori Heikki Huttunen Jätetty tarkastettavaksi: 17.5.2015 2 TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Signaalinkäsittelyn

Lisätiedot

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen TL553 DSK, laboraatiot (.5 op) Kuvasignaalit Jyrki Laitinen TL553 DSK, laboraatiot (.5 op), K25 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja VCDemo-ohjelmistoja käyttäen. Kokoa erilliseen mittauspöytäkirjaan

Lisätiedot

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

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? 2012-2013 Lasse Lensu 2 Ongelma 2: Voidaanko dataa tai informaatiota tallettaa tiiviimpään tilaan koodaamalla se uudelleen? 2012-2013 Lasse

Lisätiedot

Hajautetut käyttöliittymät. Kuvat www-sivulla

Hajautetut käyttöliittymät. Kuvat www-sivulla Hajautetut käyttöliittymät Kuvat www-sivulla Perusteita Pikselien väri näytöllä muodostuu punaisesta, sinisestä ja vihreästä valosta, jotka erilaisina yhdistelminä muodostavat kaikki muut värit ja yhdessä

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

Matematiikka ja teknologia, kevät 2011

Matematiikka ja teknologia, kevät 2011 Matematiikka ja teknologia, kevät 2011 Peter Hästö 3. helmikuuta 2011 Matemaattisten tieteiden laitos Sisältö Kurssi koostuu kuudesta (seitsemästä) toisistaan riippumattomasta luennosta. Aihepiirit ovat:

Lisätiedot

Digitaalinen signaalinkäsittely Kuvankäsittely

Digitaalinen signaalinkäsittely Kuvankäsittely Digitaalinen signaalinkäsittely Kuvankäsittely Teemu Saarelainen, teemu.saarelainen@kyamk.fi Lähteet: Ifeachor, Jervis, Digital Signal Processing: A Practical Approach H.Huttunen, Signaalinkäsittelyn menetelmät,

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

Kuvankäsittely. DigiReWork Annamari Mäenhovi Kati Nieminen

Kuvankäsittely. DigiReWork Annamari Mäenhovi Kati Nieminen Kuvankäsittely DigiReWork 14.11.2017 Annamari Mäenhovi Kati Nieminen Työpajan sisältö Valokuvaamisen karkeat perusteet Kuvien ottamisen ja käyttämisen laillisuus Digitaalinen kuva Erityisvaatimukset alustoille

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut

Lisätiedot

Signaalien generointi

Signaalien generointi Signaalinkäsittelyssä joudutaan usein generoimaan erilaisia signaaleja keinotekoisesti. Tyypillisimpiä generoitavia aaltomuotoja ovat eritaajuiset sinimuotoiset signaalit (modulointi) sekä normaalijakautunut

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

Kuvan pakkaus JPEG (Joint Photographic Experts Group)

Kuvan pakkaus JPEG (Joint Photographic Experts Group) Kuvan pakkaus JPEG (Joint Photographic Experts Group) Arne Broman Mikko Toivonen Syksy 2003 Historia 1840 1895 1920-luku 1930-luku Fotografinen filmi Louis J. M. Daguerre, Ranska Ensimmäinen julkinen elokuva

Lisätiedot

Gimp JA MUUT KUVANKÄSITTELYOHJELMAT

Gimp JA MUUT KUVANKÄSITTELYOHJELMAT Gimp JA MUUT KUVANKÄSITTELYOHJELMAT Daniela Lund Ti07 A241227 Linux-järjstelmät 01.12.2009 MIKÄ ON KUVANKÄSITTELYOHJELMA? Kuvankäsittelyohjelma on tietokoneohjelma, jolla muokataan digitaalisessa muodossa

Lisätiedot

Valokuvien matematiikkaa

Valokuvien matematiikkaa Valokuvien matematiikkaa Avainsanat: valokuva, pikseli, päättely Luokkataso: 3.-5. luokka, 6.-9. luokka, lukio, yliopisto Välineet: Kynä, tehtävämonisteet (liitteenä), mahdollisiin jatkotutkimuksiin tietokone

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.381 Laskennallinen Neurotiede Projektityö 30.1.007 Heikki Hyyti 60451P Tehtävä 1: Virityskäyrästön laskeminen Luokitellaan neuroni ensin sen mukaan, miten se vastaa sinimuotoisiin syötteisiin. Syöte

Lisätiedot

Kuvankäsi*ely 1. Digitaaliset kuvat ja niiden peruskäsi3eet. Kimmo Koskinen

Kuvankäsi*ely 1. Digitaaliset kuvat ja niiden peruskäsi3eet. Kimmo Koskinen Kuvankäsi*ely 1 Digitaaliset kuvat ja niiden peruskäsi3eet Kimmo Koskinen Mitä kuvankäsi3ely on? Digitaalisten kuvien monipuolista muokkausta: - korjailua: roskien poisto, punaiset silmät jne - muuntelua:

Lisätiedot

Haviollisten kuvanpakkausmenetelmien vertailu

Haviollisten kuvanpakkausmenetelmien vertailu Haviollisten kuvanpakkausmenetelmien vertailu Viksu-tutkielma Olli Etuaho 20.11.2003 1 Sisalto 1 Johdanto 3 2 Tutkimuksen tarkoitus 4 3 Teoriaa 5 3.1 Perustietoja kaytettavista tiedostomuodoista.........

Lisätiedot

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

AV-muotojen migraatiotyöpaja - video. KDK-pitkäaikaissäilytys seminaari / Juha Lehtonen AV-muotojen migraatiotyöpaja - video KDK-pitkäaikaissäilytys 2013 -seminaari 6.5.2013 / Juha Lehtonen Elävän kuvan muodot Videoon vaikuttavia asioita Kuvamuotojen ominaisuudet Audiomuotojen ominaisuudet

Lisätiedot

TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen

TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op), K2005 1 Suorita oheisten ohjeiden mukaiset tehtävät Matlab-ohjelmistoa käyttäen. Kokoa erilliseen

Lisätiedot

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10) Tehtävä 40. Kirjoita ohjelma, jossa luetaan 20 lukua, joiden arvot ovat välillä 10 100. Kun taulukko on täytetty, ohjelma tulostaa vain ne taulukon arvot, jotka esiintyvät taulukossa vain kerran. Tehtävä

Lisätiedot

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin Mediaanisuodattimet Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että niiden ominaisuudet tunnetaan hyvin niiden analysointiin on olemassa vakiintuneita menetelmiä

Lisätiedot

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager Missio: 1. Asentaminen 2. Valokuvien tarkastelu, tallennus/formaatit, koko, tarkkuus, korjaukset/suotimet, rajaus 3. Kuvan luonti/työkalut (grafiikka kuvat) 4. Tekstin/grafiikan lisääminen kuviin, kuvien/grafiikan

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

LIITE 1 VIRHEEN ARVIOINNISTA

LIITE 1 VIRHEEN ARVIOINNISTA Oulun yliopisto Fysiikan opetuslaboratorio Fysiikan laboratoriotyöt 1 1 LIITE 1 VIRHEEN RVIOINNIST Mihin tarvitset virheen arviointia? Mittaustuloksiin sisältyy aina virhettä, vaikka mittauslaite olisi

Lisätiedot

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

AV-muotojen migraatiotyöpaja - ääni. KDK-pitkäaikaissäilytys 2013 -seminaari 6.5.2013 / Juha Lehtonen AV-muotojen migraatiotyöpaja - ääni KDK-pitkäaikaissäilytys 2013 -seminaari 6.5.2013 / Juha Lehtonen Äänimuodot Ääneen vaikuttavia asioita Taajuudet Äänen voimakkuus Kanavien määrä Näytteistys Bittisyvyys

Lisätiedot

Bluetooth-yksikkö BU-20 Tulostusopas. Sisällys Ennen käyttöä...2 Varotoimet...3 Tulostaminen...4

Bluetooth-yksikkö BU-20 Tulostusopas. Sisällys Ennen käyttöä...2 Varotoimet...3 Tulostaminen...4 Bluetooth-yksikkö BU-20 Tulostusopas Sisällys Ennen käyttöä......................................2 Varotoimet.........................................3 Tulostaminen.......................................4

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen harjoitustyö. ASCII-grafiikkaa Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita

Lisätiedot

LIITE 1 VIRHEEN ARVIOINNISTA

LIITE 1 VIRHEEN ARVIOINNISTA 1 LIITE 1 VIRHEEN ARVIOINNISTA Mihin tarvitset virheen arviointia? Mittaustulokset ovat aina todellisten luonnonvakioiden ja tutkimuskohdetta kuvaavien suureiden likiarvoja, vaikka mittauslaite olisi miten

Lisätiedot

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy Algoritmi III Vierekkäisten kuvioiden käsittely Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy Algoritmi III vierekkäisten kuvioiden käsittely Lähtötietoina algoritmista

Lisätiedot

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA Ohjeistuksessa käydään läpi kuvan koon ja kuvan kankaan koon muuntaminen esimerkin avulla. Ohjeistus on laadittu auttamaan kuvien muokkaamista kuvakommunikaatiota

Lisätiedot

KUVANKÄSITTELYN TEORIAA

KUVANKÄSITTELYN TEORIAA KUVANKÄSITTELYN TEORIAA BITTIKARTTAKUVA Pikseli Resoluutio Bittisyys Värimallit RGB ja CMYK Kuvan tallennusmuotoja VEKTORIGRAFIIKKA Pikseli Bittikarttakuva muodostuu pienistä vierekkäisistä neliöistä eli

Lisätiedot

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Muistio. Att:Videokerho Monitori ry:n jäsenet SUB: ÄÄNI-KUVA- JA VIDEOTIEDOSTOFORMAATIT. 1 Tiedostojärjestelmistä

Muistio. Att:Videokerho Monitori ry:n jäsenet SUB: ÄÄNI-KUVA- JA VIDEOTIEDOSTOFORMAATIT. 1 Tiedostojärjestelmistä Pvm:01.03.2011 Att:Videokerho Monitori ry:n jäsenet SUB: ÄÄNI-KUVA- JA VIDEOTIEDOSTOFORMAATIT 1 Tiedostojärjestelmistä Tietokoneiden sisäisessä tietojenkäsittelyssä ja tietojen hallinnassa on käytössä

Lisätiedot

7 Multimedian elementtejä: kuva

7 Multimedian elementtejä: kuva 7 Multimedian elementtejä: kuva Näyttävän hypermedian keskeinen elementti on kuva. Kuvankäsittelyyn liittyy sekä teknisiä (miten) että sisällöllisiä piirteitä (mitä ja kenelle). Seuraavassa käsitellään

Lisätiedot

ARVO - verkkomateriaalien arviointiin

ARVO - verkkomateriaalien arviointiin ARVO - verkkomateriaalien arviointiin Arvioitava kohde: Jenni Rikala: Aloittavan yrityksen suunnittelu, Arvioija: Heli Viinikainen, Arviointipäivämäärä: 12.3.2010 Osa-alue 5/8: Mediaelementit Edellinen

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 2 4.12.2006 Heikki Hyyti 60451P Tehtävä 1 Tehtävässä 1 piti tehdä lineaarista suodatusta kuvalle. Lähtötietoina käytettiin kuvassa 1 näkyvää harmaasävyistä

Lisätiedot

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Mitä on konvoluutio? Tutustu kuvankäsittelyyn Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa

Lisätiedot

7 Multimedian elementtejä: kuva

7 Multimedian elementtejä: kuva 7 Multimedian elementtejä: kuva 7 Multimedian elementtejä: kuva Näyttävän hypermedian keskeinen elementti on kuva. Kuvan käsittelyyn liittyy sekä teknisiä (miten) että sisällöllisiä piirteitä (mitä ja

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2 TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa

Lisätiedot

LIITE 1 VIRHEEN ARVIOINNISTA

LIITE 1 VIRHEEN ARVIOINNISTA 1 Mihin tarvitset virheen arviointia? Mittaustuloksiin sisältyy aina virhettä, vaikka mittauslaite olisi miten uudenaikainen tai kallis tahansa ja mittaaja olisi alansa huippututkija Tästä johtuen mittaustuloksista

Lisätiedot

Kuvat. 1. Selaimien tunnistamat kuvatyypit

Kuvat. 1. Selaimien tunnistamat kuvatyypit Kuvat Kuvia voi liittää xhtml-sivulle -elementillä -elementillä -elementillä lomakkeiden yhteydessä lähinnä painikenappeja taustakuvina -elementin background-attribuutilla tai

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 11.4.2019 Timo Männikkö Luento 10 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutusmenetelmä Osajoukon summa Algoritmit 2 Kevät 2019 Luento 10 To

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS TERMINATOR SIGNAALINKÄSITTELY KUVA VOIDAAN TULKITA KOORDINAATTIEN (X,Y) FUNKTIONA. LÄHDE: S. SEITZ VÄRIKUVA KOOSTUU KOLMESTA KOMPONENTISTA (R,G,B). ÄÄNI VASTAAVASTI MUUTTUJAN

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 2 Lisää osamurtoja Tutkitaan jälleen rationaalifunktion P(x)/Q(x) integrointia. Aiemmin käsittelimme tapauksen, jossa nimittäjä voidaan esittää muodossa Q(x) = a(x x

Lisätiedot

Algoritmit lyhyiden sekvenssien rinnastamiseen referenssigenomia vasten. Krista Longi

Algoritmit lyhyiden sekvenssien rinnastamiseen referenssigenomia vasten. Krista Longi Algoritmit lyhyiden sekvenssien rinnastamiseen referenssigenomia vasten. Krista Longi 19.05.2014 DNA:n sekvensointi DNA:n pilkotaan lyhyiksi mallipalasiksi, templaateiksi, joiden emäsjärjestys selvitetään.

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Oppilaan opas. Visuaaliviestinnän Instituutti VVI Oy. Versio 0.2 (2008-01-21)

Oppilaan opas. Visuaaliviestinnän Instituutti VVI Oy. Versio 0.2 (2008-01-21) Oppilaan opas Visuaaliviestinnän Instituutti VVI Oy Versio 0.2 (2008-01-21) Versio Päivämäärä Kuvaus 0.1 2005-01-16 Ensimmäinen versio. 0.2 2008-01-21 Korjattu kuvatiedostojen maksimiresoluutio ja muutamia

Lisätiedot

Jatkuvat satunnaismuuttujat

Jatkuvat satunnaismuuttujat Jatkuvat satunnaismuuttujat Satunnaismuuttuja on jatkuva jos se voi ainakin periaatteessa saada kaikkia mahdollisia reaalilukuarvoja ainakin tietyltä väliltä. Täytyy ymmärtää, että tällä ei ole mitään

Lisätiedot

T Luonnollisten kielten tilastollinen käsittely

T Luonnollisten kielten tilastollinen käsittely T-61.281 Luonnollisten kielten tilastollinen käsittely Vastaukset 3, ti 11.2.2003, 16:15-18:00 Kollokaatiot, Versio 1.1 1. Lasketaan ensin tulokset sanaparille valkoinen, talo käsin: Frekvenssimenetelmä:

Lisätiedot

Seurantalaskimen simulointi- ja suorituskykymallien vertailu (valmiin työn esittely) Joona Karjalainen

Seurantalaskimen simulointi- ja suorituskykymallien vertailu (valmiin työn esittely) Joona Karjalainen Seurantalaskimen simulointi- ja suorituskykymallien vertailu (valmiin työn esittely) Joona Karjalainen 08.09.2014 Ohjaaja: DI Mikko Harju Valvoja: Prof. Kai Virtanen Työn saa tallentaa ja julkistaa Aalto-yliopiston

Lisätiedot

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa

Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa Algebralliset menetelmät virheenkorjauskoodin tunnistamisessa Jyrki Lahtonen, Anni Hakanen, Taneli Lehtilä, Toni Hotanen, Teemu Pirttimäki, Antti Peltola Turun yliopisto MATINE-tutkimusseminaari, 16.11.2017

Lisätiedot

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.

Kuvaruudun striimaus tai nauhoitus. Open Broadcaster Software V.20. Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2. Kuvaruudun striimaus tai nauhoitus Open Broadcaster Software V.20 Tero Keso, Atso Arat, Niina Järvinen & Valtteri Virtanen (muokattu 20.2.2019) Sivu 1 / 14 Sisällysluettelo Mikä on OBS... 2 Ohjelman perusasetukset...

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

Successive approximation AD-muunnin

Successive approximation AD-muunnin AD-muunnin Koostuu neljästä osasta: näytteenotto- ja pitopiiristä, (sample and hold S/H) komparaattorista, digitaali-analogiamuuntimesta (DAC) ja siirtorekisteristä. (successive approximation register

Lisätiedot

Vasteaika. Vasteaikaa koskeva ohje ei ole juuri muuttunut Robert B. Millerin vuonna 1968 pitämästä esityksestä:

Vasteaika. Vasteaikaa koskeva ohje ei ole juuri muuttunut Robert B. Millerin vuonna 1968 pitämästä esityksestä: Nielsen: "Olen tutkinut Webin käytettävyyttä vuodesta 1994, ja jokaisessa tutkimuksessa esiin on noussut sama asia: käyttäjät haluaisivat sivujen latautuvan nopeammin. Aluksi olin sitä mieltä, että käyttäjät

Lisätiedot

TTS kannattavuuslaskentaohjelma

TTS kannattavuuslaskentaohjelma TTS kannattavuuslaskentaohjelma Käyttöönotto TTS kannattavuuslaskentaohjelma on suunniteltu yrittäjän apuvälineeksi yrityksen keskeisten kannattavuuden, maksuvalmiuden ja vakavaraisuuden tunnuslukujen

Lisätiedot

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla: 11 Determinantti Neliömatriisille voidaan laskea luku, joka kertoo muun muassa, onko matriisi kääntyvä vai ei Tätä lukua kutsutaan matriisin determinantiksi Determinantilla on muitakin sovelluksia, mutta

Lisätiedot

Avainsanat ja sanonnat: Tiedonpakkaus, algoritmit, Huffmanin koodaus, aritmeettinen koodaus, sanakirjat, informaatioteoria. CR luokat: E.

Avainsanat ja sanonnat: Tiedonpakkaus, algoritmit, Huffmanin koodaus, aritmeettinen koodaus, sanakirjat, informaatioteoria. CR luokat: E. Häviöttömät tiedonpakkausalgoritmit Jukka Pollari Tiivistelmä. Tässä tutkielmassa käsitellään häviöttömiä pakkausalgoritmeja, tarkemmin määriteltynä sellaisia, joilla voidaan pakata kaikenlaista dataa.

Lisätiedot

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

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1 T-61.281 Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti 10.2.2004, 8:30-10:00 Kollokaatiot, Versio 1.1 1. Lasketaan ensin tulokset sanaparille valkoinen, talo käsin: Frekvenssimenetelmä:

Lisätiedot

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

Lisätiedot

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma AS-0.3200 Automaatio- ja systeemitekniikan projektityöt S11-04 Kompaktikamerat stereokamerajärjestelmässä Projektisuunnitelma Ari-Matti Reinsalo Anssi Niemi 28.1.2011 Projektityön tavoite Projektityössä

Lisätiedot

Latuviitan Landsat-mosaiikki Itämeren alueelta

Latuviitan Landsat-mosaiikki Itämeren alueelta Latuviitan Landsat-mosaiikki Itämeren alueelta Summary: A public domain 7 band thematic Landsat mosaic which covers the whole Baltic Sea area. Combined from 159 full Landsat 7 ETM+ scenes from year 1999-2002.

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

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

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Digitaalitekniikan matematiikka Luku 13 Sivu 2 (10) Johdanto Tässä luvussa esitetään virheen havaitsevien ja korjaavien koodaustapojen perusteet ja käyttösovelluksia

Lisätiedot

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

Moottorin kierrosnopeus Tämän harjoituksen jälkeen: Moottorin kierrosnopeus Tämän harjoituksen jälkeen: osaat määrittää moottorin kierrosnopeuden pulssianturin ja Counter-sisääntulon avulla, osaat siirtää manuaalisesti mittaustiedoston LabVIEW:sta MATLABiin,

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

FOTONETTI BOOK CREATOR

FOTONETTI BOOK CREATOR F O T O N E T T I O Y FOTONETTI BOOK CREATOR 6 2012 Kemintie 6 95420 Tornio puhelin: 050-555 6500 pro/kirja: 050-555 6580 www.fotonetti.fi Ohjelman asentaminen 1 Hae ohjelma koneellesi osoitteesta http://www.fotonetti.fi/kuvakirjatilaa

Lisätiedot

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014 Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan

Lisätiedot

Viimeistely Ajourien huomiointi puutiedoissa ja lopullinen kuviointi. Metsätehon tuloskalvosarja 5/2018 LIITE 4 Timo Melkas Kirsi Riekki Metsäteho Oy

Viimeistely Ajourien huomiointi puutiedoissa ja lopullinen kuviointi. Metsätehon tuloskalvosarja 5/2018 LIITE 4 Timo Melkas Kirsi Riekki Metsäteho Oy Viimeistely Ajourien huomiointi puutiedoissa ja lopullinen kuviointi Metsätehon tuloskalvosarja 5/2018 LIITE 4 Timo Melkas Kirsi Riekki Metsäteho Oy Viimeistely ajourien huomiointi ja lopullinen kuviointi

Lisätiedot

Johdatus verkkoteoriaan 4. luento

Johdatus verkkoteoriaan 4. luento Johdatus verkkoteoriaan 4. luento 28.11.17 Viikolla 46 läpikäydyt käsitteet Viikolla 47 läpikäydyt käsitteet Verkko eli graafi, tasoverkko, solmut, välit, alueet, suunnatut verkot, isomorfiset verkot,

Lisätiedot

6.6. Tasoitus ja terävöinti

6.6. Tasoitus ja terävöinti 6.6. Tasoitus ja terävöinti Seuraavassa muutetaan pikselin arvoa perustuen mpäristön pikselien ominaisuuksiin. Kuvan 6.18.a nojalla ja Lukujen 3.4. ja 3.5. harmaasävjen käsittelssä esitellillä menetelmillä

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

4 LUKUJONOT JA SUMMAT

4 LUKUJONOT JA SUMMAT Huippu Kertaus Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 0.7.08 4 LUKUJONOT JA SUMMAT ALOITA PERUSTEISTA 45A. Määritetään lukujonon (a n ) kolme ensimmäistä jäsentä ja sadas jäsen a 00 sijoittamalla

Lisätiedot

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja. IsoInt Tietokoneiden muisti koostuu yksittäisistä muistisanoista, jotka nykyaikaisissa koneissa ovat 64 bitin pituisia. Muistisanan koko asettaa teknisen rajoituksen sille, kuinka suuria lukuja tietokone

Lisätiedot

LUENTO 6 KUVANKÄSITTELY

LUENTO 6 KUVANKÄSITTELY LUENTO 6 KUVANKÄSITTELY TIEY4 TIETOTEKNIIKKATAIDOT SYKSY 2017 JUHANI LINNA ANTTI SAND 17.10.2017 LUENTO 6 17.10.2017 Tällä luennolla Taustaa harjoitukseen YH3b Miksi? Digitaalinen kuva Kuvankäsittelyohjelmat

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

FRAM. Prepress Guide

FRAM. Prepress Guide 1 FRAM Prepress Guide 2 Tämän oppaan tarkoitus on opastaa painokelpoisen aineiston toteuttamisessa ja sen toimittamisessa meille. Osa ohjeistuksista perustuu siihen oletukseen, että dokumenteissä käytetyt

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

WebP-kuvaformaatin käyttö ja hyödyllisyys

WebP-kuvaformaatin käyttö ja hyödyllisyys Silja Karesto WebP-kuvaformaatin käyttö ja hyödyllisyys Metropolia Ammattikorkeakoulu Insinööri (AMK) Mediatekniikan koulutusohjelma Insinöörityö 6.5.2017 Tiivistelmä Tekijä Otsikko Sivumäärä Aika Silja

Lisätiedot

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Timi Suominen, Riia Ohtamaa ja Pessi Moilanen Helsinki..01 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Äärellisten automaattien

Lisätiedot

Taulukkolaskennan edistyneempiä piirteitä, Kuvakäsittelystä

Taulukkolaskennan edistyneempiä piirteitä, Kuvakäsittelystä Taulukkolaskennan edistyneempiä piirteitä, Kuvakäsittelystä Taulukkolaskennasta käsitellään edistyneempiä piirteitä harjoituksen H7 pohjalta Kuvankäsittelystä pikselit, väriresoluutio ja kuvan koko resoluutio,

Lisätiedot

Ksenos Prime Käyttäjän opas

Ksenos Prime Käyttäjän opas Ksenos Prime Käyttäjän opas Versio 11.301 Turun Turvatekniikka Oy 2011 Selaa tallenteita. Tallenteiden selaaminen tapahtuu samassa tilassa kuin livekuvan katselu. Voit raahata hiirellä aikajanaa tai käyttää

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Hyvät ja huonot tiedostomuodot paikkatietokuville, ja miksi png ja jpeg kuuluvat niihin huonoihin

Hyvät ja huonot tiedostomuodot paikkatietokuville, ja miksi png ja jpeg kuuluvat niihin huonoihin Hyvät ja huonot tiedostomuodot paikkatietokuville, ja miksi png ja jpeg kuuluvat niihin huonoihin Jukka Rahkonen, http://latuviitta.org Viimeksi muutettu 25. elokuuta 2012 Lyhennelmä eli lue edes tämä

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Kompleksiluvut signaalin taajuusjakauman arvioinnissa

Kompleksiluvut signaalin taajuusjakauman arvioinnissa Kompleksiluvut signaalin taajuusjakauman arvioinnissa Vierailuluento IMA-kurssilla Heikki Huttunen Lehtori, TkT Signaalinkäsittely, TTY heikki.huttunen@tut.fi Department of Signal Processing Fourier-muunnos

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 9 1 Implisiittinen derivointi Tarkastellaan nyt yhtälöä F(x, y) = c, jossa x ja y ovat muuttujia ja c on vakio Esimerkki tällaisesta yhtälöstä on x 2 y 5 + 5xy = 14

Lisätiedot

Rinnakkaistietokoneet luento S

Rinnakkaistietokoneet luento S Rinnakkaistietokoneet luento 3 521475S Rinnakkaiset Numeeriset Algoritmit Silmukattomat algoritmit Eivät sisällä silmukka lauseita kuten DO,FOR tai WHILE Nopea suorittaa Yleisimmässä muodossa koostuu peräkkäisistä

Lisätiedot