JANI URAMA LIIKKEENESTIMOINTI VIDEONPAKKAUKSESSA. Kandidaatintyö

Koko: px
Aloita esitys sivulta:

Download "JANI URAMA LIIKKEENESTIMOINTI VIDEONPAKKAUKSESSA. Kandidaatintyö"

Transkriptio

1 JANI URAMA LIIKKEENESTIMOINTI VIDEONPAKKAUKSESSA Kandidaatintyö Tarkastaja: yliopistonlehtori Heikki Huttunen Jätetty tarkastettavaksi 14. joulukuuta 2012

2 ii TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Signaalinkäsittelyn ja tietoliikenteen koulutusohjelma URAMA, JANI: Liikkeenestimointi videonpakkauksessa Kandidaatintyö, 24 sivua Joulukuu 2012 Pääaine: Signaalinkäsittely ja multimedia Tarkastaja: yliopistonlehtori Heikki Huttunen Avainsanat: video, videonpakkaus, koodekki, tiedon pakkaus, kompressio, liikkeenestimointi, liikkeenkompensointi Liikkeenestimointi on yksi videonpakkauksen vaativimmista osa-alueista niin algoritmien kuin laskentatehovaatimusten osalta. Oikean algoritmin valinta sovellukseen on tasapainoilua nopeuden ja tehokkuuden välillä. Tässä työssä tutkitaan ja vertaillaan liikkeenestimoinnin algoritmeja pääasiassa niiden pakkaustehokkuuden ja -nopeuden kannalta. Algoritmien vertailua varten toteutettiin yksinkertainen videokoodekki käyttäen Matlab-ohjelmistoa. Työn tavoitteina on selvittää, kuinka liikkeenestimointi vaikuttaa videoiden pakkaukseen ja kuinka käytännöllisiä vaihtoehtoja nopeat liikkeenestimointialgoritmit ovat.

3 iii ALKUSANAT Tämä kandidaatintyö on kirjoitettu vaihto-opiskeluvuoteni aikana Japanin Sendaissa, Tohokun yliopistossa. Opiskelin vajaan vuoden ajan Kawamatan signaalinkäsittelyn laboratoriossa huhtikuusta 2012 maaliskuuhun Viikoittaiset tapaamiset ja säännölliset seminaariesitykset koskien työstämääni videokoodekkia, asiantunteva ympäristö sekä kattava kokoelma alan kirjallisuutta loivat ihanteelliset puitteet kandidaatintyön kirjoittamiselle. Kiitokset Tohokun yliopiston apulaisprofessori Abe Masahidelle arvokkaista neuvoista sekä Matlab-ohjelmistoa koskevasta tietämyksestä. Lisäksi haluan kiittää työn ohjaajana ja tarkastajana Suomesta käsin toiminutta yliopistonlehtori Heikki Huttusta rakentavista kommenteista työn eri vaiheissa. Sendaissa, 14. joulukuuta 2012 Jani Urama

4 iv SISÄLLYS 1 Johdanto Videonpakkauksen perusteet Miksi videonpakkausta tarvitaan? Videokoodekin rakenne ja toimintaperiaate Liikkeenestimointi Yleistä liikkeenestimoinnista Toteutetut liikkeenestimointialgoritmit Full Search Decimated Full Search Two-Dimensional Logarithmic Search Three Step Search Diamond Search Koodekin toteutus ja algoritmien vertailu Toteutettu koodekki Vertailukriteerit Testimateriaali Tulokset Yhteenveto...24

5 v LYHENTEET, TERMIT JA NIIDEN MÄÄRITELMÄT 2DLS BD DCT DVD dekooderi desimointi DS DFS enkooderi entropia FS inter-kehys intra-kehys koodekki MAE MSE pikseli PSNR RGB RLE Logaritminen haku. Yksinkertainen ja nopea liikkeenestimointialgoritmi (two-dimensional logarithmic search) Blu-ray Disc Diskreetti kosinimuunnos. Muunnos, jonka tulos kuvaa syötteen eri taajuisten kosiniaaltojen summana. (discrete cosine transform) digital versatile disc Koodekin purkava osa (decoder) Desimointi. Jätetään osa pikseleistä kokonaan huomiotta etsittäessä parasta liikevektoria. (decimation) Timanttihakumenetelmä. Liikkeenestimointialgoritmi, joka etsii parasta liikevektoria timantin muotoisen hakualueen avulla. (diamond search) Desimoitu täydellinen haku. Liikkeenestimointialgoritmi, joka käy järjestelmällisesti koko hakualueen läpi, mutta jättää osan vaihtoehdoista huomiotta. (decimated full search) Koodekin pakkaava osa (encoder) Informaatioteorian kontekstissa suure, joka mittaa informaatiosisällön määrää. Ilmoitetaan yleensä bitteinä. (entropy) Täydellinen haku. Liikkeenestimointialgoritmi, joka käy kaikki mahdolliset vaihtoehdot läpi. (full search) Videokehys, joka on kuvattu kokonaan tai osittain muiden kehysten avulla käyttäen liikkeenestimointia. (inter frame) Videokehys, joka ei viittaa mihinkään muuhun kehykseen, eli on pakattu ilman liikkeenestimointia käyttäen ainoastaan kuvankäsittelyn menetelmiä. (intra frame) Kuva- tai äänisignaalia pakkaavasta ja purkavasta osasta koostuva ohjelmisto. (codec) Absoluuttinen keskivirhe (mean absolute error) Keskineliövirhe (mean square error) Kuvapiste. Bittikarttakuvan pienin jakamaton yksikkö (pixel) Signaali-kohinasuhde. Signaalin maksimiarvon ja häiriön välinen suhde. Ilmoitetaan desibeleinä. (peak signal-tonoise ratio) Punaisesta, vihreästä ja sinisestä komponentista koostuva väriavaruus. Jakson pituuden koodaus. Entropiakoodausmenetelmä (runlength encoding)

6 vi resoluutio Kuvapisteiden lukumäärä vaaka- ja pystysuunnassa (pixel resolution) teräväpiirto 1280x720 tai 1920x1080 pikselin resoluutio (high-definition) TSS Kolmen askeleen haku. Yksinkertainen ja nopea liikkeenestimointialgoritmi (three step search) YC b C r Kirkkausarvosta (luminance), sinisestä erotuskomponentista (blue chrominance) ja punaisesta erotuskomponentista (red chrominance) koostuva väriavaruus.

7 1 1 JOHDANTO Analoginen tekniikka videoihin ja liikkuvaan kuvaan liittyen on väistynyt uuden digitaalisen tekniikan tieltä. Muun muassa videonauhurit ovat korvautuneet kotitalouksissa DVD-soittimilla ja tallentavilla digitaalisovittimilla, digitaaliset elokuvaprojektorit yleistyvät elokuvateattereissa ja Suomessa on siirrytty analogisista televisiolähetyksistä digitaalisiin. Kehitys digitaalisen tekniikan alueella jatkuu edelleen, esimerkkeinä sukupolvenvaihdos DVD-levyistä (engl. digital versatile disc) BD-levyihin (engl. Blu-ray Disc) ja teräväpiirtotelevisioiden yleistyminen. Kehitys mahdollistaa yhä parempilaatuisten videoiden luomiseen yhä suurempien tallennuskapasiteettivaatimusten kustannuksella. Näitä vaatimuksia voidaan madaltaa kehittämällä tehokkaampia videonpakkausmenetelmiä tai vaihtoehtoisesti saadaan parannettua laatua nykyisten kapasiteettien puitteissa. Fyysinen media ei ole ainoa motivaation lähde videonpakkausmenetelmien kehittämiselle, sillä suurin osa Internet-liikenteestä on videoliikennettä ja ennusteiden mukaan sen osuus kasvaa edelleen [1]. Internetin siirtokapasiteetti on rajallinen aikayksikköä kohden, joten tehokkaammille pakkausmenetelmille on selkeä tarve Internetin ruuhkautuessa. Yksi keskeisimpiä videonpakkauksen osa-alueita nykyisissä standardeissa on liikkeenestimointi. Sen avulla voidaan mallintaa tulevia kehyksiä edellisten pohjalta, ja näin välttää jokaisen kehyksen tallentaminen erillisenä kuvana. Liikkeenestimointi on laskentatehollisesti erittäin vaativaa, joten on kehitetty useita eri algoritmeja nopeuttamaan prosessia. Haittapuolena nopeilla algoritmeilla on se, etteivät ne välttämättä tuota parasta mahdollista tulosta. Työssä tarkastellaan liikkeenestimoinnin menetelmiä ja sen rakenne on seuraava. Aluksi luodaan katsaus videonpakkauksen perusteisiin, mutta tämän kandidaatintyön pääpaino on liikkeenestimoinnissa ja sen algoritmeissa. Algoritmien vertailua varten toteutettiin yksinkertainen videokoodekki Matlab-ohjelmistolla. Työn loppupuolella vertaillaan toteutetun koodekin avulla liikkeenestimoinnin algoritmeja pääasiassa niiden pakkaustehokkuuden ja -nopeuden kannalta.

8 2 2 VIDEONPAKKAUKSEN PERUSTEET 2.1 Miksi videonpakkausta tarvitaan? Ilman tehokkaita videonpakkausmenetelmiä olisi digitaalisten videoiden käyttö epäkäytännöllistä nykyisillä tallennusmedioilla ja siirtokapasiteeteilla. Taulukossa 2.1 on esitetty kahden tunnin kestoisen teräväpiirtoelokuvan videodatan vaatima tallennuskapasiteetti pakkaamattomana. Taulukko 2.1. Pakkaamattoman teräväpiirtoelokuvan videodatan vaatima tallennuskapasiteetti. Videon ominaisuudet Resoluutio Väriavaruus Kehysnopeus Kesto Yhteensä Arvo 1920*1080 pikseliä/kehys 3 väriä/pikseli ja 8 bittiä/väri 24 kehystä/sekunti 7200 sekuntia 8, bittiä Yksikerroksiselle BD-levylle voidaan tallettaa 25 gigatavua eli 2, bittiä dataa, toisin sanoen levylle mahtuu vajaat kolme minuuttia pakkaamatonta videota, eikä esimerkissä ole otettu huomioon äänidataa ollenkaan. Videonpakkausmenetelmillä kyseinen elokuva saadaan kuitenkin tallennettua yhdelle BD-levylle. 2.2 Videokoodekin rakenne ja toimintaperiaate Videokoodekki koostuu kahdesta erillisestä osasta pakkaavasta ja purkavasta. Videokoodekin purkavaa osaa ei tässä työssä käsitellä tarkemmin. On tyypillistä, että videokoodekin pakkaava osa, eli enkooderi, pakkaa videon häviöllisesti, eli sitä ei voida palauttaa täysin entiselleen pakkauksen purkamisen jälkeen. Pakkauksen aikana jätetään vähemmälle tarkkuudelle tai kokonaan pois epäolennaista dataa, jota ihminen ei havaitse niin herkästi. Tiedetään esimerkiksi, että ihmissilmä on herkempi kirkkauden kuin värien muutoksille [2; 3, s. 259], joten voidaan käyttää RGB-väriavaruuden sijaan YC b C r -väriavaruutta. Tällöin väri-informaation koodaamiseen tarvittavien bittien määrää voidaan oleellisesti vähentää alinäytteistämällä [4, s. 87].

9 3 Seuraavat kappaleet selostavat yleisellä tasolla lohkopohjaiseen liikkeenestimointiin perustuvan enkooderin toimintaperiaatteen käyttäen esimerkkinä kuvassa 2.1 esitetyn enkooderin lohkokaaviota. Syötteenä ovat videokehykset ja ulostulona pakattu videodata bittivirtana. Kehykset kiertävät yksitellen enkooderin lohkojen läpi, joista muunnos-, kvantisointi- ja entropiakoodauslohkot ovat oleellisimmat pakkauksen kannalta. Ne toimivat lähes identtisesti kuvanpakkauksessa käytettyjen vastaavien menetelmien kanssa. Liikkeenestimointi- ja liikkeenkompensointilohkojen tarkoituksena on tehostaa pakkausta pakkausnopeuden ja kuvanlaadun heikkenemisen kustannuksella. Käänteisen muunnoksen ja kvantisoinnin lohko sekä puskuri ovat välttämättömiä liikkeenestimoinnin toiminnalle, jotta voidaan käyttää samaa kehystä, kuin mikä dekooderilla on käytössään. erotuskuva (K n K n 1 ) kehykset K Muunnos (DCT) ja kvantisointi Entropiakoodaus bittivirta Liikkeenkompensointi liikekompensoitu kehys K n 1 Käänteinen muunnos ja kvantisointi dekoodattu erotuskuva tai intra kehys liikevektorit Liikkeenestimointi K n K n 1 Puskuri liikevektorit Kuva 2.1. Tässä työssä toteutetun lohkopohjaiseen liikkeenestimointiin perustuvan videokoodekin pakkaavan osan lohkokaavio. Tämän kandidaatintyön pääaihealue on korostettu punaisella laatikolla. Ensimmäisenä enkooderille syötteenä tuleva kehys on aina intra-kehys (engl. intra frame), joka pakataan bittivirtaan kuvankäsittelyn menetelmin ilman liikkeenestimointia tai erotuskuvan laskemista. Ensimmäinen toimenpide on spatiaalista redundanssia hyödyntävä muunnos. Spatiaalinen redundanssi tarkoittaa vierekkäisten pikselien samankaltaisuutta. Esimerkiksi sinisen taivaan muodostavat pikselit ovat kaikki väriarvoiltaan hyvin lähellä toisiaan, joten käyttämällä sopivaa muunnosta näihin arvoihin saadaan sama informaatio keskitettyä muutamaan kertoimeen, jolloin loput kertoimet voidaan jättää pienemmälle tarkkuudelle tai kokonaan huomiotta. Tätä varten kehys jaetaan loh-

10 4 koihin, jotka ovat kooltaan tyypillisesti 4x4 tai 8x8 pikseliä. Jokaiselle lohkolle suoritetaan erikseen muunnos ja sen tulos kvantisoidaan, eli arvot jaetaan ennalta määritetyillä kokonaisluvuilla ja pyöristetään, mikä tekee videonpakkauksesta häviöllisen. Kuva 2.2. havainnollistaa asiaa käyttäen diskreettiä kosinimuunnosta [5]. Kuva 2.2. Ylhäällä vasemmalla on esitetty alkuperäinen lohko, ylhäällä oikealla sama lohko kosinimuunnoksen jälkeen, alhaalla vasemmalla sama lohko kvantisoituna ja alhaalla oikealla sama lohko vastaavien käänteisten operaatioiden jälkeen. Lopuksi lohkot entropiakoodataan eli niiden arvoille annetaan vaihtelevan pituiset koodit. Entropiakoodauksessa useimmiten toistuville arvoille asetetaan lyhyempi koodi kuin harvemmin toistuville. Näin saadaan yhteensä lyhyempi bittijono verrattuna tilanteeseen, jossa kaikilla arvoilla olisi vakiomittainen koodi. Morsekoodi on esimerkki eräänlaisesta entropiakoodauksesta, jossa symbolien pituudet on alun perin määrätty kirjainten esiintymistiheyden perusteella englannin kielessä [6, s. 84]. Videonpakkauksessa eräs tyypillisesti käytettävä menetelmä on Huffman-koodaus [7], jota tässäkin työssä on käytetty. Entropiakoodatut lohkot syötetään bittivirtaan, joka puolestaan voidaan käyttötarkoituksesta riippuen esimerkiksi tallentaa tiedostoon tai lähettää samassa laitteessa sijaitsevalle dekooderille. Lisäksi enkooderi simuloi dekooderia ja suorittaa lohkoille käänteiset muunnokset, jolloin saadaan liikkeenestimoinnin käyttöön koottua täsmälleen sama kehys, kuin mikä dekooderilla on käytössään. Tällöin kvantisoinnista johtuvat virheet saadaan otettua huomioon liikkeenestimointivaiheessa. Dekoodattu kehys tallennetaan puskuriin odottamaan seuraavaa kehystä ja liikkeenestimointia. Intra-kehystä seuraavat kehykset ovat inter-kehyksiä (engl. inter frame), joiden pakkaamisessa käytetään hyödyksi jo pakattuja kehyksiä ja ajallista redundanssia. Ajallinen redundanssi tarkoittaa peräkkäisten kuvien samankaltaisuutta. Kehysnopeuden ollessa kymmeniä kehyksiä sekunnissa ei tilanne peräkkäisten kehysten välillä ehdi juuri muuttua, jolloin seuraava kehys K n voidaan esittää edellisen kehyksen K n 1 ja näiden kahden kehyksen välisen erotuskuvan (K n K n 1 ) summana. Kaavana tämä esitetään seuraavasti: K n = K n 1 + (K n K n 1 ) (1)

11 5 Tällöin riittää tallentaa pelkkä erotuskuva (K n K n 1 ), joka pakkautuu paremmin pienemmän entropiansa ansiosta (luku 4.1. Toteutettu koodekki). Entropia on muuttujassa, tässä tapauksessa pikselien väriarvoissa, esiintyvän satunnaisuuden mitta. Kuvassa 2.3 on esitetty esimerkkinä kehys K n ja erotuskuva (K n K n 1 ) sekä niiden entropiat. Kehys K n Erotuskuva (K n K n 1 ) Entropia 7,33 bittiä Entropia 5,70 bittiä Kuva 2.3. Kehys K n ja erotuskuva (K n K n 1 ) sekä niiden entropiat. Kehyksestä K n on esitetty vain kirkkausarvokomponentti. Erotuskuvassa neutraali harmaa tarkoittaa nollaa, tummat sävyt negatiivisia arvoja ja vaaleat sävyt positiivisia arvoja. Liikkeenestimointi kehittää tätä ideaa pidemmälle ja yrittää minimoida vastaavan erotuksen (K n K n 1 ) kokoamalla jo pakattujen kehysten osista uuden kehyksen K n 1, joka on mahdollisimman samankaltainen kehyksen K n kanssa. Kuvassa 2.4 on esitetty liikekompensoitu kehys K n 1 sekä selkeästi tasaisempi erotuskuva (K n K n 1 ) ja sen entropia. Liikekompensoitu kehys K n 1 Erotuskuva (K n K n 1 ) (Vastaa kehystä K n ) Entropia 4,62 bittiä Kuva 2.4. Liikekompensoitu kehys K n 1 sekä erotuskuva (K n K n 1 ) ja sen entropia. Kuvien oikeassa reunassa on havaittavissa epämuodostumia, sillä reunasta esiin tullut alue ei ole ollut nähtävissä edellisessä kehyksessä, joten sitä ei ole voitu kompensoida.

12 Liikkeenestimointilohko saa syötteenä nykyisen kehyksen K n sekä viitekehykset, joiden pohjalta liikkeenestimointi suoritetaan. Viitekehyksinä voidaan käyttää useampaa kehystä ja jopa tulevia kehyksiä sijoittamalla kehykset bittivirtaan sopivassa järjestyksessä, mutta tässä työssä käytetään viitekehyksenä ainoastaan edeltävää kehystä K n 1. Tämä tosin aiheuttaa sen, että mikäli kehykseen ilmestyy jotain uutta, ei sitä voida kompensoida kunnolla pelkän edellisen kehyksen avulla, kuten kuvan 2.4 oikeasta alareunasta voidaan havaita. Liikkeenestimointilohkon ulostulona ovat liikevektorit, jotka lähetetään sekä entropiakoodattavaksi bittivirtaan että liikkeenkompensointilohkolle. Liikkeenkompensointi kokoaa uuden kehyksen K n 1 käyttäen lohkoja, jotka on haettu viitekehyksistä liikevektoreiden avulla. Tuloksena saadaan liikekompensoitu kehys K n 1, joka muistuttaa nykyistä kehystä K n enemmän kuin yksikään viitekehyksistä yksinään. Lopuksi näiden kahden kehyksen väliselle erotuskuvalle (K n K n 1 ) suoritettavat toimenpiteet ovat lähes identtiset intra-kehysten kanssa: suoritetaan muunnos sekä entropiakoodaus ja tulos syötetään bittivirtaan. Lisäksi toteutetaan käänteiset muunnokset ja summataan dekoodattu erotuskuva (K n K n 1 ) liikekompensoidun kehyksen K n 1 kanssa, jolloin saadaan kvantisoinnista johtuvat virheet huomioonottava kehys K n jälleen käyttöön seuraavaksi vuorossa olevan kehyksen liikkeenestimointia varten. Ongelma on, että tästä kehysten kierrätyksestä johtuen virheet kasautuvat kehyksestä toiseen ja kuvanlaatu heikkenee. Ratkaisuna on käyttää tietyin väliajoin intra-kehystä, jolloin virheiden kasautuminen katkeaa ja pakkausprosessi voi alkaa uudelleen niin sanotusti puhtaalta pöydältä. Edellä kuvattua intra- ja inter-kehysten pakkaamista jatketaan kunnes syötteenä olleet kehykset loppuvat. 6

13 7 3 LIIKKEENESTIMOINTI 3.1 Yleistä liikkeenestimoinnista Liikkeenestimoinnin perusideana on mallintaa videossa esiintyvien kohteiden liikettä, jotta uudet kehykset voidaan esittää jo tunnettujen kehysten avulla muokkaamalla niitä liikkeen mukaisesti. Ideaalitapauksessa voitaisiin kaikki videossa esiintyvä liike mallintaa tarkasti ja tehokkaasti, mutta se ei ole käytännössä nykyteknologialla mahdollista. Kompromissina useimmat nykyiset liikkeenestimointialgoritmit perustuvat lohkopohjaiseen liikkeenestimointiin (engl. block based motion estimation) [8, s. 478], jonka toimintaperiaate on esitetty kuvassa 3.1. Nykyinen kehys K n jaetaan lohkoihin ja yksi kerrallaan jokaiselle lohkolle etsitään viitekehyksestä (tai viitekehyksistä) parhaiten täsmäävä lohko. Yhdessä kehyksessä on liian monta kandidaattia parhaaksi lohkoksi, jotta niitä kaikkia olisi järkevää käydä läpi yksitellen, joten etsintä keskitetään lohkon sijainnin ympärille tietyn kokoiselle hakualueelle. Tuloksena saadaan liikevektori, joka vastaa kysymykseen Mistä tämä lohko tuli? liikevektori hakualue Viitekehys K n 1 (edellinen kehys) Kehys K n (nykyinen kehys) Kuva 3.1. Lohkopohjaisen liikkeenestimoinnin toimintaperiaate. Tällä hetkellä käsiteltävän lohkon sijainti on merkitty punaisella, parhaiten täsmäävä lohko on merkitty vihreällä ja tuloksena saatu liikevektori on merkitty sinisellä. Viitekehys on reunustettu mustalla, sillä hakualue ylittää kehyksen rajat lohkon ollessa kehyksen reunalla. Lohkopohjaisessa liikkeenestimoinnissa on kuitenkin tiettyjä rajoituksia ja oletuksia. Ensinnäkin koska kehys jaetaan lohkoihin ja lohkon kaikkien pikselien liike ilmoitetaan yhden liikevektorin avulla siirtymänä kaksiulotteisessa tasossa, muun muassa loitonnusta, lähennystä ja pyörimistä ei voida mallintaa. Toisekseen kohteiden muoto ei välttämättä täsmää lohkojen rajojen kanssa ja yhdessä lohkossa saattaa olla useampia kohteita, jotka liikkuvat eri suuntiin, mikä aiheuttaa epätarkkuutta. Lisäksi liike ei ole sidottu kokonaisiin pikseleihin, vaan liike on diskreetin sijaan jatkuvaa. Viimeksi mai-

14 8 nittua voidaan mallintaa paremmin puolikkaan ja neljäsosapikselin estimaatiolla (engl. half and quarter pixel estimation) [9], mutta sitä ei käsitellä tässä työssä sen tarkemmin. Käytännön esimerkkinä kuvassa 3.2 on esitetty toteutetun koodekin Full Search - algoritmilla lasketut liikevektorit testivideon tennis yhdelle kehykselle. Liikevektori kertoo mihin edellisessä kehyksessä pitää siirtyä, jotta löytää parhaiten täsmäävän lohkon. Liikevektorin suunta on siis päinvastainen havaitun liikkeen kanssa. Kuva 3.2. Testivideon tennis erään kehyksen lohkojen liikevektorit. Tässä tapauksessa liikevektorit ovat onnistuneet mallintamaan liikettä melko hyvin. Pingispallon liikesuunta on alaspäin ja käsivarsi on myös liikkumassa alaspäin, mutta ei yhtä nopeasti. Tausta pysyy paikoillaan, joten liikevektori kertoo parhaan lohkon löytyvän samasta kohtaa kuin nykyinenkin lohko toisin sanoen liikevektori on siinä tapauksessa nollavektori. Kaikki liikevektorit eivät kuitenkaan ole yhdenmukaisia muiden kanssa, vaan näyttävät osoittavan ihan eri suuntaan. Tämä johtuu estimoinnin suorittamisesta numeerisesti ja parempi lohko saattaakin löytyä hieman eri paikasta tai nopea liikkeenestimointialgoritmi ei ole löytänyt parasta mahdollista vaihtoehtoa. Liikkeenestimointialgoritmin tehtävänä on löytää käsiteltävälle lohkolle sitä parhaiten vastaava lohko hakualueelta käyttäen kriteerinä tiettyä kustannusfunktiota. Tässä työssä on käytetty kustannusfunktiona keskineliövirhettä MSE (engl. mean square error) [3, s. 653], joka määritellään M x N -pikselin kokoisille lohkoille A ja B seuraavasti:

15 9 missä m ja n ovat pikselien indeksit. Eräs toinen nopea ja yleisesti käytetty kustannusfunktio on absoluuttinen keskivirhe MAE (engl. mean absolute error) [3, s. 653]. Liikkeenestimointialgoritmit käyvät läpi hakualueella etsintäpisteitä, jonka käsitettä on havainnollistettu tarkemmin kuvassa 3.3. Koska lohkon pikselien määrä on epäolennainen liikkeenestimointialgoritmeja kuvailtaessa, merkitään koko lohkoa vain yhtenä pisteenä, jonka sijainnin määrää lohkon vasemman yläkulman pikseli. Kuva 3.3. Esimerkki hakualueesta ja sen sisältämistä etsintäpisteistä, jotka on merkitty vaaleanharmaalla. Vasemmalla on esitetty yksityiskohtainen kuvaus hakualueesta, oikealla yksinkertaistettu kuvaus. Lohkon koko on 4x4-pikseliä. Vasemmanpuoleiseen kuvaan on rajattu punaisella hakualue, jonka säde on neljä pikseliä ja jonka sisältämät pikselit ovat kaikki mahdollisia etsintäpisteitä. Lohkon sijainnin määräävä vasemman yläkulman pikseli on merkitty sinisellä pallolla. Muut lohkoon kuuluvat pikselit on merkitty turkooseilla palloilla, ja tummanharmaalla pallolla merkittyjä pikseleitä tarvitaan kustannusfunktion laskemiseen etsintäpisteen osuessa hakualueen reunalle. Oikeanpuoleinen kuva esittää yksinkertaistetun kuvauksen hakualueesta. Pienenkin hakualueen kaikkien etsintäpisteiden läpikäyminen on laskentatehollisesti erittäin vaativaa, joten on kehitetty useita algoritmeja nopeuttamaan prosessia. Nopeat algoritmit eivät kuitenkaan välttämättä löydä parasta mahdollista lohkoa ja täten algoritmin valinta on tasapainoilua tehokkuuden ja nopeuden välillä. Seuraavissa kappaleissa on esitelty tarkemmin tässä työssä toteutetut liikkeenestimointialgoritmit. Algoritmeille ei ole olemassa vakiintuneita suomennoksia, joten työssä on käytetty englanninkielisiä termejä ja niiden lyhenteitä.

16 Toteutetut liikkeenestimointialgoritmit Full Search FS-algoritmi (engl. full search) käy läpi kaikki mahdolliset vaihtoehdot hakualueen sisällä ja täten löytää varmasti parhaan mahdollisen liikevektorin kyseiseltä alueelta. Kuva 3.2 esittää esimerkkitapauksen 17x17 pikselin hakualueelle. Kuva 3.2. Esimerkki Full Search -algoritmin toiminnasta. Hakualueen origo on merkitty mustalla pallolla ja origon lisäksi kokeiltavat pisteet on merkitty sinisellä pallolla. Kokeiltavia pisteitä on kaikkiaan 289. Käytännön sovelluksissa FS-algoritmia ei käytetä, koska algoritmi on erittäin hidas hakualueen ollessa suuri, sillä kokeiltavien pisteiden määrä kasvaa eksponentiaalisesti lausekkeen (2n+1) 2 mukaan, missä n on hakualueen säde pikseleinä. Vertailukohteena algoritmi on kuitenkin käyttökelpoinen.

17 Decimated Full Search DFS-algoritmi (engl. decimated full search) toimii muuten samalla periaatteella kuin FS-algoritmi, mutta kokeiltavien pisteiden määrä on desimoitu kertoimella n, eli kokeillaan vain joka n:s mahdollisuus. Kuva 3.3 esittää esimerkkitapauksen 17x17 pikselin hakualueelle, jossa kokeiltavien pisteiden lukumäärä on desimoitu kertoimella 4. Kuva 3.3. Esimerkki Decimated Full Search -algoritmin toiminnasta. Hakualueen origo on merkitty mustalla pallolla ja origon lisäksi kokeiltavat pisteet on merkitty sinisellä pallolla. Kokeiltavia pisteitä on kaikkiaan 81, joka on hieman yli neljäsosan kaikista mahdollisuuksista johtuen tavasta, jolla joka neljäs pikseli on valittu. DFS-algoritmi esittää yksinkertaisimman tavan nopeuttaa liikkeenestimointia jättämällä pois kokeiltavia pisteitä. Suurilla hakualueilla saavutettu hyöty ei ole merkittävä muihin nopeisiin algoritmeihin verrattuna, sillä kokeiltavien vektorien määrä kasvaa edelleen eksponentiaalisesti hakualueen säteeseen verrattuna.

18 Two-Dimensional Logarithmic Search 2DLS-algoritmi (engl. two-dimensional logarithmic search) esiteltiin alun perin jo vuonna 1979 [10]. Algoritmista on sittemmin kehitetty useita variaatioita pienillä muutoksilla, mutta työssä on toteutettu algoritmin alkuperäinen versio. Kuva 3.4 esittää esimerkkitapauksen 17x17 pisteen hakualueelle. 1. askel 2. askeleen uudet pisteet 3. askeleen uudet pisteet 4. askeleen uudet pisteet 5. askeleen uudet pisteet 6. askeleen uudet pisteet Kuva 3.4. Esimerkki Two-Dimensional Logarithmic Search -algoritmin toiminnasta. Ensimmäisen askeleen origo on merkitty mustalla pallolla. 2DLS-algoritmi on tässä tapauksessa kokeillut 25 pistettä. Vähimmäismäärä pisteitä tälle hakualueen koolle on 17, joka toteutuu vektorin löytyessä origosta tai välittömästi sen ympäriltä. Aluksi määritetään askelkoko s seuraavasti: missä n on hakualueen säde. Esimerkkitapauksessa säde n on 8, joten askelkooksi s saadaan 4. Ensimmäisessä vaiheessa kokeillaan origo sekä neljä x- ja y-akseleilla s:n etäisyydellä olevaa pistettä. Mikäli kustannusfunktion pienimmän arvon toteuttava piste ei ollut origo, siirretään origo kyseiseen pisteeseen ja toistetaan ensimmäinen vaihe. Muussa tapauksessa askelkoko puolitetaan ennen ensimmäisen vaiheen toistamista eikä origoa siirretä. Toisto jatkuu kunnes askelkoko on puolittamisen jälkeen yksi, jolloin sen hetkistä origoa ja sitä ympäröiviä kahdeksaa pistettä verrataan ja paras valitaan liikevektoriksi. Huomionarvoista on, että jo kokeiltuja pisteitä ei tarvitse kokeilla enää uudestaan ja mahdollisesti hakualueen ulkopuolelle osuvia pisteitä ei oteta huomioon.

19 Three Step Search TSS-algoritmi (engl. three step search) [11] muistuttaa hyvin pitkälle 2DLS-algoritmia. Suurimmat eroavaisuudet ovat askelkoon puolittaminen jokaisen askeleen jälkeen sekä yhdeksän pisteen vertaaminen joka askeleella viiden sijaan. Algoritmi on saanut nimensä siitä, että askelkoon ollessa aluksi kolme tai neljä, löytää algoritmi liikevektorin kolmen askeleen jälkeen. Tällöin etsittävien pisteiden lukumäärä on yhteensä aina 25, ja algoritmi ei löydä liikevektoreita kuin korkeintaan ±7 pikselin etäisyydeltä suuntaansa. Kuva 3.5. esittää esimerkkitapauksen 17x17 pisteen hakualueelle askelkoon ollessa aluksi neljä. Kuva 3.5. Esimerkki Three Step Search -algoritmin toiminnasta. Ensimmäinen vaihe on merkitty sinisellä, toinen vaihe vihreällä ja kolmas vaihe punaisella pallolla. Kokeiltuja pisteitä on 25, joka on vakio tälle hakualueen koolle. Algoritmista on kehitetty edistyneempiä versioita kuten NTSS-algoritmi (engl. new three step search) [12] sekä 4SS-algoritmi (engl. four step search) [13]. Tässä työssä käytetään kuitenkin TSS-algoritmista versiota, jossa askelkoko määrätään aluksi kaavan (3) mukaisesti, jolloin päästään eroon ±7 pikselin etäisyyden rajoituksesta suuremmilla hakualueilla.

20 Diamond Search DS-algoritmi (engl. diamond search) perustuu oletuksiin, joiden mukaan huomattavan suuri osa liikevektoreista sijaitsee kahden pikselin säteellä hakualueen origosta lohkon pysyessä paikallaan tai vaihtoehtoisesti pääasiassa joko pysty- tai vaakasuoraan johtuen kameran kääntymisestä [14]. Algoritmin ensimmäisessä vaiheessa kuvassa 3.6. esitetty suuri timanttikuvio asetetaan hakualueen origoon ja sen sisältämät pisteet kokeillaan. Mikäli kustannusfunktion pienimmän arvon toteuttava piste ei ollut origo, siirretään suuri timanttikuvio kyseiseen pisteeseen ja toistetaan ensimmäinen vaihe. Muussa tapauksessa siirrytään toiseen vaiheeseen, asetetaan kuvassa 3.6. esitetty pieni timanttikuvio origoon ja kokeillaan kuvion sisältämät pisteet, joista paras valitaan liikevektoriksi. Kuva 3.6. esittää esimerkkitapauksen 17x17 pikselin hakualueelle. Kuva 3.6. Vasemmalla esimerkki Diamond Search -algoritmin toiminnasta, oikealla ylhäällä suuri timanttikuvio ja oikealla alhaalla pieni timanttikuvio. DS-algoritmi on tässä tapauksessa kokeillut 27 pistettä. Vähimmäismäärä pisteitä on 13, joka toteutuu vektorin löytyessä origosta tai sen vierestä pienen timanttikuvion alueelta. Esimerkkitapauksessa algoritmi etenee ensin kolmesti oikealle alaviistoon ja kerran oikealle, jonka jälkeen pienin kustannusfunktion arvo löytyy sen hetkisestä origosta ja siirrytään toiseen vaiheeseen, eli käytännössä kokeillaan origon ylä- ja alapuolella sekä oikealla ja vasemmalla puolella välittömästi sijaitsevat pisteet. Huomionarvoista on, että jo kokeiltuja pisteitä ei tarvitse kokeilla enää uudestaan ja mahdollisesti hakualueen ulkopuolelle osuvia pisteitä ei oteta huomioon. Tällöin ensimmäisellä askeleella kokeillaan vain yhdeksän pistettä ja sitä seuraavilla tyypillisesti kolmesta viiteen pistettä.

21 15 4 KOODEKIN TOTEUTUS JA ALGORITMIEN VERTAILU 4.1 Toteutettu koodekki Koodekki on kuva- tai äänisignaalia pakkaavasta ja purkavasta osasta koostuva ohjelmisto. Tässä tapauksessa kyseessä on videoiden kuvasignaalia käsittelevä koodekki. Koodekin luomiseen käytettiin Matlab-ohjelmistoa ja kaikki lohkot toteutettiin itse. Tavoitteena oli rakentaa yksinkertainen koodekki erityisesti liikkeenestimointialgoritmien vertailua varten. Koodekin toteuttaminen itse mahdollisti algoritmien sekä parametrien hallinnan tarpeiden mukaan. Liikkeenestimointialgoritmeja toteutettiin viisi kappaletta: FS-, DFS-, 2DLS-, TSS- ja DS-algoritmi. Muunnokseksi valittiin diskreetti kosinimuunnos [5] ja entropiakoodaukseen käytettiin jakson pituuden koodausta RLE (engl. run-length encoding) [3, s. 20] sekä Huffman-koodausta [7] yksinkertaisuuden vuoksi. Seuraavissa kappaleissa on selostettu valitut metodit hieman tarkemmin ja selvitetty niiden taustaa lyhyesti. Diskreetti kosinimuunnos muuntaa lohkon sisältämän informaation eri taajuisten komponenttien summaksi. Kyseiset taajuuskomponentit 8x8 pikselin kokoiselle lohkolle on esitetty graafisesti kuvassa 4.1. Kuva 4.1. Diskreetin kosinimuunnoksen 64 taajuuskomponenttia 8x8 pikselin lohkolle. Kertoimet taajuuskomponenteille saadaan muunnoksen kaavasta, joka määritellään kahdessa ulottuvuudessa M x N -pikselin kokoiselle lohkolle L seuraavasti [3, s. 293]:

22 16 missä m ja n ovat lohkon pikselien indeksit, G ij on indekseillä i ja j indeksoitu kerroinmatriisi ja C i C j määritellään kaavan (5) mukaan: Numeerinen esimerkki diskreetistä kosinimuunnoksesta on esitetty kuvassa 2.2. Näin saadaan lohkon sisältämä oleellinen informaatio pakattua muutamaan matalataajuisen komponentin kertoimeen, jolloin korkeataajuisten, kuvan yksityiskohtia kuvaavien komponenttien kertoimet voidaan jättää vähemmälle huomiolle subjektiivisen kuvanlaadun juuri kärsimättä. Entropiakoodaus perustuu Shannonin esittämään teoreemaan [15], jonka mukaan n symbolin pituinen viesti voidaan tietyin oletuksin pakata häviöttömästi korkeintaan nh bitin pituiseksi, mutta ei lyhyemmäksi. Viestin entropia H voidaan laskea kaavalla: missä p i on viestin symbolien pistetodennäköisyydet, kun eri symboleita on q kappaletta. Mitä todennäköisempi symboli on, sitä pienempi on sen odotettu informaatiosisältö ja entropia, jolloin sen koodaamiseen kannattaa käyttää vähemmän bittejä. Intuitiivisesti voidaan ajatella, että firman oveen kiinnitetty lappu Pomo saapui tänään töihin normaalisti. ei ole kovin informatiivinen verrattuna ilmoitukseen Pomo on liikematkalla, eikä ole tavattavissa. Tällöin ei kannata tuhlata paperia edellä mainitun ilmoittamiseen. Tässä työssä on käytetty kahta entropiakoodausmenetelmää. Ensimmäinen käytetyistä menetelmistä on jakson pituuden koodaus eli RLE. Ideana on korvata monta kertaa peräkkäin toistuva merkki arvoparilla, joka kertoo montako kertaa merkki toistuu, ja mikä kyseinen merkki on. Esimerkiksi 12 numerosta koostuva lukujono koodattaisiin kuudella numerolla muodossa (5,2) (3,1) (4,3). Koska kuvan- ja videonpakkauksessa syntyvässä bittivirrassa on huomattavan suuri osa nollia, käytetään tästä variaatiota, joka kertoo montako nollaa edeltää seuraavaa nollasta poikkeavaa lukua ja mikä kyseinen nollasta poikkeava luku on. Esimerkiksi 12 numerosta koostuva lukujono koodattaisiin kahdeksalla numerolla muodossa (5,1) (2,2) (0,3) (1,4). Toinen käytetyistä menetelmistä on Huffman-koodaus, jota hyödynnetään yhdessä jakson pituuden koodauksen kanssa. Huffman-koodaus asettaa useimmiten toistuville arvoille lyhyemmän koodin kuin harvemmin toistuville ja se toimii seuraavalla periaatteella. Aluksi järjestetään symbolit (tässä työssä RLE:n arvoparit) niiden pistetodennäköisyyksien mukaan laskevaan järjestykseen, jonka jälkeen kaksi harvinaisinta symbolia yhdistetään uudeksi symboliksi, jolla on näiden kahden symbolin yhteenlaskettu todennäköisyys. Tähän kohtaan muodostuville niin sanotuille puun haaroille annetaan tunnisteeksi toiselle nolla ja toiselle ykkönen. Symbolien yhdistämistä jatketaan kunnes kaikki

23 17 symbolit on yhdistetty ja tuloksena saatu niin sanottu Huffman-puu, josta on kuvassa 4.2 esitetty esimerkki. p 1 =0,56 a 1 0 Symboli a i p i Koodi a 1234 p 2 =0,19 a a 1 0, p 1234 =1, a 2 0,19 10 a 234 a 3 0, p 3 =0,14 a 3 p 234 =0,44 1 a 4 0, a 4 1 p 4 =0,11 a 34 p 34 =0,25 Kuva 4.2. Esimerkki Huffman-puusta neljälle symbolille. Symbolin a 3 koodin muodostava reitti on korostettu punaisella. Symboleille asetetut koodit saadaan kulkemalla puun läpi ja keräämällä haarojen tunnisteista symbolille lopullinen koodi. Esimerkin symboleiden entropia on kaavalla (6) laskettuna 1,67 bittiä/symboli, kun taas tuloksena saadun Huffman-koodin keskimääräinen koodinpituus on 1,69 bittiä/symboli. Huffman-koodaus on siis tässä esimerkkitapauksessa melko optimaalinen menetelmä, koska se toimii parhaiten symbolien todennäköisyyksien mukaillessa negatiivisia kahden potensseja [3, s. 67]. 4.2 Vertailukriteerit Vertailukriteereinä algoritmien välillä käytettiin pääasiassa ulostulona saadun pakatun videon tiedostokokoa suhteessa liikkeenestimoinnissa kokeiltujen pisteiden lukumäärään. Liikkeenestimointiin käytetty suoritusaika suoritinaikana oli saatavilla Matlabohjelmiston kautta, mutta koska algoritmien toteutus ei ole välttämättä optimaalisin mahdollinen, valittiin kriteeriksi kokeiltujen pisteiden lukumäärä. Toinen vertailukriteereistä oli algoritmin löytämien optimaalisten liikevektoreiden lukumäärä prosentteina verrattuna FS-algoritmiin. Lisäksi algoritmeja vertailtiin niiden kuvanlaadun perusteella, jonka tulosmetriikaksi valittiin signaalikohinasuhde PSNR (engl. peak signal-to-noise ratio), joka määritellään keskineliövirheen MSE avulla seuraavasti [3, s. 272]: PSNR ja MSE ovat objektiivisia kuvanlaadun mittoja, mutta ne eivät välttämättä kerro subjektiivisesta kuvanlaadusta mitään riippuen kuvassa esiintyvien virheiden ja kohinan tyypistä. Wang et al. [16] esittävät esimerkin, jossa kaikilla testikuvilla on sama MSE, mutta subjektiivinen kuvanlaatu on täysin eri. Siitä huolimatta tässä työssä on käytetty

24 18 kuvanlaadun tulosmetriikkana signaalikohinasuhdetta PSNR, sillä se on yleisesti käytetty ja tässä tapauksessa tiedetään tarkkaan videoihin syntyvien virheiden syy ja laatu, jolloin algoritmeja voidaan objektiivisesti verrata keskenään. Lehtorannan mukaan hyvälaatuisen videon PSNR on yli 33 db ja yli 0,5 db muutos on merkittävä [17, s. 18, 21]. 4.3 Testimateriaali Testimateriaalina algoritmien vertailuun käytettiin Xiph.Org-säätiön kokoamia pakkaamattomia testivideoita [18]. Videoista valittiin testimateriaaliksi resoluutioltaan ja pakkautuvuudeltaan vaihtelevia videoita yhteensä viisi kappaletta, ja niiden tarkemmat tekniset ominaisuudet on koottu taulukkoon 4.1. Taulukko 4.1. Testeissä käytettyjen videoiden tekniset ominaisuudet. Pakkautuvuuden arvio perustuu tässä työssä saatuihin tuloksiin. Yleisesti ottaen pakkautuvuuteen vaikuttavat eniten yksityiskohtien sekä liikkeen määrä ja tyyppi. Videon nimi Resoluutio Kehyksiä Pakkautuvuus flower_garden 720x480 1) 360 kohtalainen foreman 352x hyvä mobile_calendar 352x vähäinen stockholm 1280x ) hyvä tennis 352x kohtalainen Videon flower_garden alkuperäinen resoluutio oli 720x486, mutta siitä rajattiin alimmat kuusi pikseliriviä pois, jotta pystyresoluutioksi saatiin lohkokoolla tasajaollinen luku (huomautus 1). Videon stockholm 604 kehyksestä käytettiin vain 300 ensimmäistä kehystä, sillä muuten FS-algoritmilla olisi kestänyt pakkauksessa liian kauan aikarajoitteisiin nähden (huomautus 2).

25 19 5 TULOKSET Kaikissa testeissä intra-kehysten väli, kvantisointikerroin sekä liikkeenestimointiin käytettyjen lohkojen koko pidettiin vakioina. Myös hakualueen koko oli vakio kaikissa muissa testeissä lukuun ottamatta yhtä testiä, johon ei otettu mukaan FS- ja DFSalgoritmeja niiden hitauden vuoksi. Ainoat varsinaiset muuttujat olivat siis itse video ja liikkeenestimointialgoritmi. Vertailun vuoksi mukana oli myös tapaus, jossa liikkeenestimointia ei käytetä, vaan otetaan pelkkä erotuskuva. Taulukossa 5.1 on esitetty tiivistettynä kaikki oleellisimmat parametrit. Taulukko 5.1. Yhteenveto testeissä käytetyistä parametreista Parametri Arvo Video yksi taulukossa 4.1 esitetyistä testivideoista Liikkeenestimointialgoritmi FS, DFS, 2DLS, TSS, DS tai pelkkä erotuskuvan otto Intra-kehysten väli 10 kehystä Kvantisointikerroin 16 Liikkeenestimoinnin lohkokoko 16x16 pikseliä Hakualueen koko 17x17 pikseliä, ellei toisin mainita Pääasiallisena vertailukriteerinä eri algoritmien välillä käytettiin ulostulona saadun pakatun videon tiedostokokoa suhteessa liikkeenestimointivaiheessa kokeiltujen pisteiden keskimääräiseen lukumäärään per lohko tosin sanoen pakkaussuhde verrattuna pakkausnopeuteen. Taulukossa 5.2 on esitetty testitulokset kaikkien algoritmien osalta kolmelle matalaresoluutioisimmalle videolle. Taulukko 5.2. Pakkaustehokkuuden ja -nopeuden vertailun testitulokset. KP tarkoittaa keskimääräistä etsintäpisteiden määrää per lohko ja PS tarkoittaa pakkaussuhdetta. Suurempi pakkaussuhde on parempi. foreman tennis mobile_calendar Algoritmi KP PS KP PS KP PS FS , , ,50 DFS 81 23, , ,75 TSS 25 26, , ,40 2DLS 18,86 26,64 18,74 18,21 17,39 8,42 DS 19,23 27,09 16,64 19,79 14,20 8,48 Erotuskuva - 18,73-15,11-6,63

26 20 Parhaimpaan pakkaustehokkuuteen yltää odotetusti FS-algoritmi, mutta sen vaatima laskenta-aika pelkän liikkeenestimoinnin osalta verrattuna nopeisiin algoritmeihin on jopa kertainen, mikä täsmää etsintäpisteiden lukumäärän suhteen kanssa. Pakkauksen vaatimassa kokonaisajassa ero nopeimpaan DS-algoritmiin verrattuna on kuitenkin vain noin viisinkertainen. Tulee kuitenkin muistaa, että toteutettu koodekki ei ole täysin optimoitu, joten kokonaissuoritusaika on vain suuntaa antava. Erot FS-algoritmin ja nopeiden algoritmien pakkaussuhteissa ovat noin 5 10 % luokkaa. Käytettäessä liikkeenestimointia pakkaussuhde kasvaa huomattavasti verrattuna tilanteeseen, jossa liikkeenestimointia ei käytetä tehokkuus kasvaa videosta riippuen noin %. Taulukossa 5.3 on esitetty taulukkoa 5.2 vastaavat tulokset kahdelle korkeamman resoluution videolle sekä keskiarvot kaikille viidelle videolle. Taulukko 5.3. Pakkaustehokkuuden ja -nopeuden vertailun tulokset korkeamman resoluution videoille sekä keskiarvot. KP tarkoittaa keskimääräistä etsintäpisteiden määrää per lohko ja PS tarkoittaa pakkaussuhdetta. Suurempi pakkaussuhde on parempi. flower_garden stockholm keskiarvo KP PS KP PS KP PS FS , , ,35 DFS 81 17, , ,77 TSS 25 18, , ,99 2DLS 20,20 18,47 21,10 33,57 19,25 21,06 DS 20,32 19,09 18,70 35,48 17,82 21,99 Erotuskuva - 10,35-17,03-13,57 Tulokset ovat pakkausnopeuden osalta muuten samaa luokkaa matalaresoluutiosten videoiden kanssa, mutta 2DLS- ja DS-algoritmi vaativat hieman enemmän etsintäpisteitä löytääkseen liikevektorin. Ero ei kuitenkaan ole merkittävän suuri. Muut algoritmit vaikuttavat saavuttavan FS-algoritmia pakkaustehossa resoluution kasvaessa DSalgoritmi jopa ylittää FS-algoritmin pakkaustehokkuuden pakattaessa videota stockholm, mikä viittaisi siihen, että kun käytetään keskineliövirhettä MSE liikkeenestimoinnin kustannusfunktiona, ei sen mukaan löydetty optimaalisin lohko olekaan aina pakkaustehokkuuden kannalta paras lohko. Lisäksi havaitaan, että käytettäessä liikkeenestimointia pakkaussuhde on tällä kertaa noin kaksinkertaistunut, eli tiedostokoko on puolittunut verrattuna pelkän erotuskuvan ottoon. Keskimääräisesti parhaiten nopeista algoritmeista suoriutuu DS-algoritmi niin nopeuden kuin tehokkuuden osalta. DFSalgoritmin suorituskyky on kautta linjan kehno. Algoritmeja vertailtiin myös kuvanlaadun perusteella, jonka tulosmetriikkana toimi yleisesti käytetty signaalikohinasuhde PSNR. Taulukossa 5.4 on esitetty testivideoiden signaalikohinasuhteiden keskiarvot jokaiselle algoritmille sekä erotuskuvan otolle. Taulukko 5.4. Keskiarvoiset signaalikohinasuhteet algoritmeille. FS DFS TSS 2DLS DS Erotuskuva PSNR (db) 33,58 33,53 33,57 33,48 33,55 33,99

27 21 Yllättävää oli pelkän erotuskuvan oton muita selkeästi parempi tulos, mikä johtunee erotuskuvaan tarvittujen ja käytettyjen bittien suuremmasta lukumäärästä. Muiden algoritmien tulokset olivat hyvin lähellä toisiaan, eikä niissä havaittu silminnähtävää eroa kuvanlaadullisesti. Suurin yksittäinen ero signaalikohinasuhteissa oli 0,94 db videossa flower_garden erotuskuvan oton ja 2DLS-algoritmin välillä, mutta johtuen videon suuresta yksityiskohtien määrästä, joka peittää epäkohtia, ei voida sanoa eron olleen silminnähden merkittävä. Ero oli kuitenkin juuri ja juuri havaittavissa. Huomattavin silminnähtävä epäkohta oli ajoittainen lohkojen rajojen näkyminen (engl. blocking artifacts), mikä johtui algoritmeista riippumattomasta syystä, eli siitä, ettei koodekkiin toteutettu suodatusta. Lisäksi tutkittiin kuinka monta prosenttia optimaalisista liikevektoreista kukin algoritmi löysi verrattuna FS-algoritmiin. Optimaalisuudella tarkoitetaan tässä sitä kuinka hyvin algoritmi löytää käytetyn kustannusfunktion minimin, eli toisin sanoen saman liikevektorin kuin FS-algoritmi. Tulokset on esitetty kuvassa 5.1 graafisesti. Löytyneitä optimaalisia liikevektoreita 100 % 90 % 80 % 70 % 60 % 50 % 40 % 30 % 20 % 10 % 0 % stockholm foreman flower_g tennis mobile_c Erotuskuva DFS TSS DS 2DLS Kuva 5.1. Löytyneiden optimaalisten liikevektorien määrä prosentteina verrattuna FSalgoritmiin. Kustannusfunktiona on käytetty keskineliövirhettä MSE. Optimaalisuus vaikuttaa korreloivan tietyllä tasolla pakkaustehokkuuden kanssa nopeiden algoritmien osalta, mutta erotuskuvan ja DFS-algoritmin prosenttiluvut vaihtelevat huomattavasti riippuen videosta. Erotuskuvan prosenttiluku kertoo käytännössä kuinka suuri osa optimaalisista liikevektoreista oli nollavektoreita ja DFS-algoritmi kokeili tässä tapauksessa noin 28 % kaikista vaihtoehdoista, mikä on yli nelinkertainen määrä DS-algoritmiin verrattuna. Tulokset näyttäisivät luultavasti erilaisilta, mikäli kustannusfunktioksi olisi valittu jokin muu kuin MSE. Hakualueen suurentamisen vaikutusta pakkaussuhteeseen tutkittiin TSS-, DS- ja 2DLS-algoritmien osalta. Muut algoritmit jätettiin pois epäolennaisina tai liian hitaina. Taulukossa 5.5 on esitetty testin tulokset sekä käytetyt videot ja hakualueiden koot.

28 22 Taulukko 5.5. Hakualueen koon vaikutus pakkaussuhteeseen. Video mobile_calendar flower_garden Hakualue 17x17 33x33 65x65 17x17 33x33 65x65 TSS 8,40 8,37 8,34 18,42 17,16 15,36 DS 8,48 8,48 8,48 19,09 19,18 19,18 2DLS 8,42 8,39 8,37 18,47 17,52 16,11 Molemmissa videoissa suurempi hakualue vain haittaa TSS- ja 2DLS-algoritmien toimintaa, sillä silloin ne aloittavat etsinnän kauempaa ja harvemmalta alueelta, jolloin ne eivät löydä lähellä origoa sijaitsevia liikevektoreita, vaan eksyvät helpommin kustannusfunktion lokaaleihin minimeihin. Lisäksi hakualueen laajentaminen 65x65-pikseliin hidasti näiden kahden algoritmin toimintaa noin 50 %. Videossa mobile_calendar DSalgoritmin toimintaan suurempi hakualue ei vaikuta merkittävästi suuntaan eikä toiseen, sillä suurin osa liikevektoreista sijaitsee origon läheisyydessä ja se löytää ne edelleen yhtä nopeasti. Videossa flower_garden hakualueen suurentaminen parantaa hieman DS-algoritmin suorituskykyä ja se kykenee löytämään parempia liikevektoreita kauempaa. Enempi hakualueen suurentaminen ei kuitenkaan auta, mikäli videossa ei ole niin nopeaa liikettä että laajennetulta hakualueelta löytyisi optimaalisia liikevektoreita. Laajempi 33x33-pikselin hakualue hidasti DS-algoritmin toimintaa vajaat 10 % pakkaussuhteen parantuessa noin 0,5 %, eli tässä tapauksessa hakualueen laajentaminen ei ole kannattavaa. Lopuksi kuvassa 5.2 on esitetty graafisesti tulokset kolmelle testivideoista pakkaustehokkuuden ja -nopeuden osalta. Kaaviossa on eroteltu eri videot eri väreillä sekä eri algoritmit eri symboleilla Pakkaussuhde Etsintäpisteitä keskimäärin per lohko Erotuskuva TSS DFS FS DS 2DLS Kuva 5.2. Videoiden mobile_calendar (violetti), flower_garden (sininen) sekä stockholm (punainen) pakkaussuhteen suhde pakkausnopeuteen esitettynä graafisesti. Suurempi pakkaussuhde ja vähäisempi etsintäpisteiden määrä on parempi tulos.

29 Suurempi pakkaussuhde ja vähäisempi kokeiltujen pisteiden määrä on parempi, eli mitä ylempänä vasemmalla symboli on, sitä parempi tulos on. Kuvan 5.2 ja edellisten tulosten perusteella DS-algoritmi on kokonaisuudessaan hieman 2DLS- ja TSS-algoritmia parempi. 23

30 24 6 YHTEENVETO Tässä kandinaatintyössä esiteltiin muutama yleisin ja tunnetuin videonpakkauksessa käytetty liikkeenestimointialgoritmi ja vertailtiin niitä Matlab-ohjelmistolla toteutetun videokoodekin avulla. Tärkeimpinä kriteereinä pidettiin videoiden pakkaustehokkuutta ja -nopeutta. Toissijaisena kriteerinä arvioitiin kuvanlaatua, ja lisäksi tutkittiin optimaalisten liikevektoreiden löytymistä hakualueelta sekä hakualueen koon vaikutusta. Paras pakkaussuhde saavutettiin Full Search -algoritmilla, mutta se ei ole käytännöllinen vaihtoehto sovelluksiin sen kohtuuttoman hitauden vuoksi. Toisiksi paras pakkaussuhde oli Diamond Search -algoritmilla, joka oli myös nopein algoritmi. Two Dimensional Logarithmic Search ja Three Step Search -algoritmit olivat lähes yhtä nopeita, mutta niiden tuottama pakkaussuhde oli kuitenkin heikompi. Decmated Full Search - algoritmi suoriutuu poikkeuksellisen heikosti verrattuna muihin algoritmeihin, sillä se ei ota huomioon välittömästi hakualueen origon ympärillä olevia pisteitä ja siksi sillä jää moni optimaalinen liikevektori löytämättä. Liikkeenestimoinnin käytöllä on kuvanlaatua laskeva vaikutus signaalikohinasuhteen mukaan, mutta ero on niin pieni, että se on mitätön saavutettuun pakkaussuhteeseen verrattuna, sillä kuvanlaatua voidaan tarvittaessa säädellä muilla keinoilla. Kaikkien algoritmien tuottamien videoiden signaalikohinasuhteet olivat hyvin lähellä toisiaan, eikä niissä havaittu silminnähtävää eroa kuvanlaadullisesti. Hakualueen laajentamista kokeiltiin vain kahdella videolla ja kolmella eri algoritmilla, joten yleispäteviä johtopäätöksiä ei voida tehdä. Havaittiin kuitenkin, että vaikutukset pakkaustehokkuuteen eivät aina ole positiivisia, vaan ne riippuvat huomattavasti sekä videosta että käytetystä liikkeenestimointialgoritmista. Pääteltiin, että hakualueen laajentamisella voidaan saavuttaa suurempi pakkaussuhde pakkausnopeuden kustannuksella, mikäli videossa esiintyy tarpeeksi nopeaa liikettä ja käytetty algoritmi kykenee löytämään liikevektoreita kauempaa. Muiden parametrien vaikutusta liikkeenestimointiin tai videonpakkaukseen ei tässä työssä testattu. Testivideoita, koodekin ominaisuuksia ja eri algoritmeja listaa voisi jatkaa loputtomiin olisi voinut olla kattavamminkin, mutta tehtyjen testien valossa yleispätevimmäksi liikkeenestimointialgoritmiksi toteutettujen algoritmien joukosta todettiin Diamond Search -algoritmi.

31 25 LÄHTEET [1] Cisco Visual Networking Index: Forecast and Methodology, USA 2012, Cisco Systems Inc., Cisco Visual Networking Index p. [2] Mullen, T.. The contrast sensitivity of human colour vision to red-green and blueyellow chromatic gratings. The Journal of Physiology, 359(1985), pp [3] Solomon, D. Data Compression: The Complete Reference. 3rd Edition. New York 2004, Springer. 900 p. [4] Poynton, C. Digital Video and HDTV: Algorithms and Interfaces. San Francisco 2003, Morgan Kaufmann Publishers. 763 p. [5] Ahmed, N., Natarajan T., Rao R.K. Discrete Cosine Transform. IEEE Transactions on Computers C-23(1974)1, pp [6] Burns, R.W. Communications: An International History of the Formative Years, London 2004, The Institution of Electrical Engineering and Technology. 651 p. [7] Huffman, D.A. A Method for the Construction of Minimum Redundancy Codes. Proceedings of the IRE 40(1952) 9, pp [8] Hanzo, L., Cherriman, P.J., Streit, J. Wireless Video Communications: Second to Third Generation Systems and Beyond. New York 2001, IEEE Press p. [9] Suh, J.W., Jeong, J. Fast Sub-pixel Motion Estimation Techniques Having Lower Computational Complexity. IEEE Transactions on Consumer Electronics 50(2004)3, pp [10] Jain, J.R., Jain, A.K. Displacement Measurement and Its Application in Interframe Image Coding. IEEE Transactions on Communications 29(1981)12, pp [11] Koga, T., Iinuma, K., Hirano, A., Iijima, Y., Ishiguro, T. Motion Compensated Interframe Coding for Video Conferencing. Innovative Telecommunications - Key to the Future. Proceedings of the National Telecommunications Conference, New Orleans, Louisiana, USA, December New York, IEEE. pp. G G5.3.5.

32 26 [12] Li, R., Zeng, B., Liou, M.L. A New Three-step Search Algorithm for Block Motion Estimation. IEEE Transactions on Circuits and Systems for Video Technology 4(1994)4, pp [13] Po, L.M., Ma, W.C. A Novel Four-Step Search Algorithm for Fast Block Motion Estimation. IEEE Transactions on Circuits and Systems for Video Technology 6(1996)3, pp [14] Zhu, S., Ma, K.K. A New Diamond Search Algorithm for Fast Block Matching Motion Estimation. IEEE Transactions on Image Processing 9(2000)2, pp [15] Shannon, C.E. A Mathematical Theory of Communication. Bell System Technical Journal 27(1948)3-4, pp , [16] Wang, Z., Bovik, A.C. A universal image quality index. IEEE Signal Processing Letters 9(2002)3, pp [17] Lehtoranta, O. Parallel Encoder Implementations for High Quality Video. Dissertation. Tampere Tampereen teknillinen yliopisto. Julkaisu - Tampere University of Technology. Publication p. [18] Xiph.Org Foundation Xiph.org Test Media. [WWW]. [Viitattu ]. Saatavissa:

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

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

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

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

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

Kaksintaistelun approksimatiivinen mallintaminen (valmiin työn esittely)

Kaksintaistelun approksimatiivinen mallintaminen (valmiin työn esittely) Kaksintaistelun approksimatiivinen mallintaminen (valmiin työn esittely) Juho Roponen 10.06.2013 Ohjaaja: Esa Lappi Valvoja: Ahti Salo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla.

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

S-114.2720 Havaitseminen ja toiminta

S-114.2720 Havaitseminen ja toiminta S-114.2720 Havaitseminen ja toiminta Heikki Hyyti 60451P Harjoitustyö 2 visuaalinen prosessointi Treismanin FIT Kuva 1. Kuvassa on Treismanin kokeen ensimmäinen osio, jossa piti etsiä vihreätä T kirjainta.

Lisätiedot

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

TL5503 DSK, laboraatiot (1.5 op) Audiosignaalit (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op) Audiosignaalit (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op), K2005 1 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja SPDemo-ohjelmistoja käyttäen. Kokoa

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

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

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

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

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

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

Kuvan- ja videontiivistys. Mikko Nuutinen 14.2.2013

Kuvan- ja videontiivistys. Mikko Nuutinen 14.2.2013 Kuvan- ja videontiivistys Mikko Nuutinen 14.2.2013 Oppimistavoitteet Redundanssi kuvissa: esimerkkitapauksina koodaus-, pikseleiden välinen sekä psykovisuaalinen redundanssi Kuvantiivistys: JPEG-koodauksen

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

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

MARKO VIITANEN H.264 LIIKKEENESTIMOINNIN TESTAUS JA OPTIMOINTI. Kandidaatintyö

MARKO VIITANEN H.264 LIIKKEENESTIMOINNIN TESTAUS JA OPTIMOINTI. Kandidaatintyö MARKO VIITANEN H.264 LIIKKEENESTIMOINNIN TESTAUS JA OPTIMOINTI Kandidaatintyö Tarkastaja: Erno Salminen 17. kesäkuuta 2010 II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Signaalinkäsittelyn ja tietoliikennetekniikan

Lisätiedot

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

Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM Puheenkoodaus Olivatpa kerran iloiset serkukset PCM, DPCM ja ADPCM PCM eli pulssikoodimodulaatio Koodaa jokaisen signaalinäytteen binääriseksi (eli vain ykkösiä ja nollia sisältäväksi) luvuksi kvantisointitasolle,

Lisätiedot

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti SG-1200 Signaalinkäsittelyn menetelmät, Tentti 21.3.2006 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle

Lisätiedot

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0. Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +

Lisätiedot

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa 9. Vektorit 9.1 Skalaarit ja vektorit Skalaari on koon tai määrän mitta. Tyypillinen esimerkki skalaarista on massa. Lukumäärä on toinen hyvä esimerkki skalaarista. Vektorilla on taas suuruus ja suunta.

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

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

Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi

Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi - Android 4.3 Jelly Bean ja 4.4 Kitkat käyttöjärjestelmien videotoiston suorituskyvyn vertailu Nexus 7 tabletilla

Lisätiedot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

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

4 Tehokkuus ja algoritmien suunnittelu

4 Tehokkuus ja algoritmien suunnittelu TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin

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

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (21.4.2015) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s. t. g(x) 0 h(x) = 0 x X olevan optimointitehtävän Lagrangen duaali on missä max θ(u, v) s. t.

Lisätiedot

Kombinatorinen optimointi

Kombinatorinen optimointi Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein

Lisätiedot

Vanhankaupunginkosken ultraäänikuvaukset Simsonar Oy Pertti Paakkolanvaara

Vanhankaupunginkosken ultraäänikuvaukset Simsonar Oy Pertti Paakkolanvaara Vanhankaupunginkosken ultraäänikuvaukset 15.7. 14.11.2014 Simsonar Oy Pertti Paakkolanvaara Avaintulokset 2500 2000 Ylös vaellus pituusluokittain: 1500 1000 500 0 35-45 cm 45-60 cm 60-70 cm >70 cm 120

Lisätiedot

Scratch ohjeita. Perusteet

Scratch ohjeita. Perusteet Perusteet Scratch ohjeita Scratch on graafinen ohjelmointiympäristö koodauksen opetteluun. Se soveltuu hyvin alakouluista yläkouluunkin asti, sillä Scratchin käyttömahdollisuudet ovat monipuoliset. Scratch

Lisätiedot

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

Lisätiedot

Harjoitus 6 ( )

Harjoitus 6 ( ) Harjoitus 6 (30.4.2014) Tehtävä 1 Määritelmän (ks. luentomoniste s. 109) mukaan yleisen, muotoa min f(x) s.t. g(x) 0 h(x) = 0 x X (1) olevan optimointitehtävän Lagrangen duaali on max θ(u,v) s.t. u 0,

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

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

Tekijä MAA2 Polynomifunktiot ja -yhtälöt = Vastaus a) K1 a) Tekijä MAA Polynomifunktiot ja -yhtälöt 6.8.016 ( + + ) + ( ) = + + + = + + + = + 4 b) 4 4 ( 5 + ) ( 5 + 1) = 5 + + 5 + 1 4 = + + + 4 = + 5 5 1 1 Vastaus a) 4 + b) 4 + 1 K a) f ( ) = + 1 f () = +

Lisätiedot

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

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

Integrointi ja sovellukset

Integrointi ja sovellukset Integrointi ja sovellukset Tehtävät:. Muodosta ja laske yläsumma funktiolle fx) x 5 välillä [, 4], kun väli on jaettu neljään yhtä suureen osaan.. Määritä integraalin x + ) dx likiarvo laskemalla alasumma,

Lisätiedot

Lineaarinen yhtälöryhmä

Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä 1 / 39 Lineaarinen yhtälö Määritelmä 1 Lineaarinen yhtälö on muotoa a 1 x 1 + a 2 x 2 + + a n x n = b, missä a i, b R, i = 1,..., n ovat tunnettuja ja x i R, i = 1,..., n ovat tuntemattomia.

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

Lineaarikuvauksen R n R m matriisi

Lineaarikuvauksen R n R m matriisi Lineaarikuvauksen R n R m matriisi Lauseessa 21 osoitettiin, että jokaista m n -matriisia A vastaa lineaarikuvaus L A : R n R m, jolla L A ( v) = A v kaikilla v R n. Osoitetaan seuraavaksi käänteinen tulos:

Lisätiedot

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof. Epätäydellisen preferenssiinformaation hyödyntäminen monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi 15.1.2018 Ohjaaja: Prof. Kai Virtanen Valvoja: Prof. Kai Virtanen Tausta Päätöspuu

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

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea. Roolit Tommi Perälä Department of Mathematics, Hypermedia Laboratory Tampere University of Technology 25.3.2011 J. Kleinberg kehitti -algoritmin (Hypertext Induced Topic Search) hakukoneen osaksi. n taustalla

Lisätiedot

ELEC-C5070 Elektroniikkapaja (5 op)

ELEC-C5070 Elektroniikkapaja (5 op) (5 op) Luento 5 A/D- ja D/A-muunnokset ja niiden vaikutus signaaleihin Signaalin A/D-muunnos Analogia-digitaalimuunnin (A/D-muunnin) muuttaa analogisen signaalin digitaaliseen muotoon, joka voidaan lukea

Lisätiedot

JONNE MÄKINEN VIDEONPAKKAUSSTANDARDIEN MPEG-4 PART 2 JA MPEG-4 PART 10 VERTAILU

JONNE MÄKINEN VIDEONPAKKAUSSTANDARDIEN MPEG-4 PART 2 JA MPEG-4 PART 10 VERTAILU JONNE MÄKINEN VIDEONPAKKAUSSTANDARDIEN MPEG-4 PART 2 JA MPEG-4 PART 10 VERTAILU Kandidaatintyö Tarkastaja: lehtori Heikki Huttunen ii TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Signaalinkäsittelyn ja

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

Vektoreiden virittämä aliavaruus

Vektoreiden virittämä aliavaruus Vektoreiden virittämä aliavaruus Määritelmä Oletetaan, että v 1, v 2,... v k R n. Näiden vektoreiden virittämä aliavaruus span( v 1, v 2,... v k ) tarkoittaa kyseisten vektoreiden kaikkien lineaarikombinaatioiden

Lisätiedot

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

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A) Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 017 Insinöörivalinnan matematiikan koe 30..017, Ratkaisut (Sarja A) 1. a) Lukujen 9, 0, 3 ja x keskiarvo on. Määritä x. (1 p.) b) Mitkä reaaliluvut

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

Lisätiedot

Ei välttämättä, se voi olla esimerkiksi Reuleaux n kolmio:

Ei välttämättä, se voi olla esimerkiksi Reuleaux n kolmio: Inversio-ongelmista Craig, Brown: Inverse problems in astronomy, Adam Hilger 1986. Havaitaan oppositiossa olevaa asteroidia. Pyörimisestä huolimatta sen kirkkaus ei muutu. Projisoitu pinta-ala pysyy ilmeisesti

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen SGN-5 Signaalinkäsittelyn sovellukset Välikoe.. Heikki Huttunen Tentissä ja välikokeessa saa käyttää vain tiedekunnan laskinta. Tenttikysymyksiä ei tarvitse palauttaa. Sivuilla - on. Sivuilla 4-6 on. Vastaa

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

Harjoitus 7: NCSS - Tilastollinen analyysi

Harjoitus 7: NCSS - Tilastollinen analyysi Harjoitus 7: NCSS - Tilastollinen analyysi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tilastollinen testaus Testaukseen

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

Matematiikan tukikurssi, kurssikerta 3

Matematiikan tukikurssi, kurssikerta 3 Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus

Lisätiedot

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen

Joonas Haapala Ohjaaja: DI Heikki Puustinen Valvoja: Prof. Kai Virtanen Hävittäjälentokoneen reitin suunnittelussa käytettävän dynaamisen ja monitavoitteisen verkko-optimointitehtävän ratkaiseminen A*-algoritmilla (valmiin työn esittely) Joonas Haapala 8.6.2015 Ohjaaja: DI

Lisätiedot

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5. Tekijä Pitkä matematiikka 5 7..017 31 Kirjoitetaan yhtälö keskipistemuotoon ( x x ) + ( y y ) = r. 0 0 a) ( x 4) + ( y 1) = 49 Yhtälön vasemmalta puolelta nähdään, että x 0 = 4 ja y 0 = 1, joten ympyrän

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

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen SGN- Signaalinkäsittelyn perusteet Välikoe.5.4 Heikki Huttunen Tentissä ja välikokeessa saa käyttää vain tiedekunnan laskinta. Tenttikysymyksiä ei tarvitse palauttaa. Sivuilla -3 on. Sivuilla 4-5 on. Sivulla

Lisätiedot

IIR-suodattimissa ongelmat korostuvat, koska takaisinkytkennästä seuraa virheiden kertautuminen ja joissakin tapauksissa myös vahvistuminen.

IIR-suodattimissa ongelmat korostuvat, koska takaisinkytkennästä seuraa virheiden kertautuminen ja joissakin tapauksissa myös vahvistuminen. TL536DSK-algoritmit (J. Laitinen)..5 Välikoe, ratkaisut Millaisia ongelmia kvantisointi aiheuttaa signaalinkäsittelyssä? Miksi ongelmat korostuvat IIR-suodatinten tapauksessa? Tarkastellaan Hz taajuista

Lisätiedot

10. Esitys ja kuvaus

10. Esitys ja kuvaus 10. Esitys ja kuvaus Kun kuva on ensin segmentoitu alueisiin edellisen luvun menetelmin, segmentoidut pikselit kootaan esittämään ja kuvaamaan kohteita muodossa, joka sopii hyvin jatkokäsittelyä varten.

Lisätiedot

Lineaarinen optimointitehtävä

Lineaarinen optimointitehtävä Lineaarinen optimointitehtävä Minimointitehtävä yhtälörajoittein: min kun n j=1 n j=1 c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m Merkitään: z = alkuperäisen objektifunktion arvo käsiteltävänä

Lisätiedot

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1). HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi II, syksy 017 Harjoitus 4 Ratkaisuehdotukset 4.1. Osoita, että tasa-arvojoukko S F (0), F : R 3 R, F (x) = 3x 1 x 3 + e x + x e x 3, on säännöllinen

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 8 Väliarvolause Oletetaan, että funktio f on jatkuva jollain reaalilukuvälillä [a, b] ja derivoituva avoimella välillä (a, b). Funktion muutos tällä välillä on luonnollisesti

Lisätiedot

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

Juuri 10 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Juuri 0 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 9..08 Kertaus K. a) Alapaineiden pienin arvo on ja suurin arvo 74, joten vaihteluväli on [, 74]. b) Alapaineiden keskiarvo on 6676870774

Lisätiedot

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Optimaalisuus: objektiavaruus f 2 min Z = f(s) Parhaat arvot alhaalla ja vasemmalla

Lisätiedot

MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ 24.9.2019 HYVÄN VASTAUKSEN PIIRTEITÄ Alustavat hyvän vastauksen piirteet on suuntaa-antava kuvaus kokeen tehtäviin odotetuista vastauksista ja tarkoitettu ensisijaisesti

Lisätiedot

Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty c) sin 50 = sin ( ) = sin 130 = 0,77

Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty c) sin 50 = sin ( ) = sin 130 = 0,77 Juuri 7 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty.5.07 Kertaus K. a) sin 0 = 0,77 b) cos ( 0 ) = cos 0 = 0,6 c) sin 50 = sin (80 50 ) = sin 0 = 0,77 d) tan 0 = tan (0 80 ) = tan 0 =,9 e)

Lisätiedot

2 Pistejoukko koordinaatistossa

2 Pistejoukko koordinaatistossa Pistejoukko koordinaatistossa Ennakkotehtävät 1. a) Esimerkiksi: b) Pisteet sijaitsevat pystysuoralla suoralla, joka leikkaa x-akselin kohdassa x =. c) Yhtälö on x =. d) Sijoitetaan joitain ehdon toteuttavia

Lisätiedot

Korkean resoluution ja suuren kuva-alueen SAR

Korkean resoluution ja suuren kuva-alueen SAR Korkean resoluution ja suuren kuva-alueen SAR Risto Vehmas, Juha Jylhä, Minna Väilä ja prof. Ari Visa Tampereen teknillinen yliopisto Signaalinkäsittelyn laitos Myönnetty rahoitus: 50 000 euroa Esityksen

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 10 1 Funktion monotonisuus Derivoituva funktio f on aidosti kasvava, jos sen derivaatta on positiivinen eli jos f (x) > 0. Funktio on aidosti vähenevä jos sen derivaatta

Lisätiedot

KOHINA LÄMPÖKOHINA VIRTAKOHINA. N = Noise ( Kohina )

KOHINA LÄMPÖKOHINA VIRTAKOHINA. N = Noise ( Kohina ) KOHINA H. Honkanen N = Noise ( Kohina ) LÄMÖKOHINA Johtimessa tai vastuksessa olevien vapaiden elektronien määrä ei ole vakio, vaan se vaihtelee satunnaisesti. Nämä vaihtelut aikaansaavat jännitteen johtimeen

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

4 Yleinen potenssifunktio ja polynomifunktio

4 Yleinen potenssifunktio ja polynomifunktio 4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako

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

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

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

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

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

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe SGN-00 Signaalinkäsittelyn menetelmät Välikoe 9.3.009 Sivuilla - on. Älä vastaa siihen, jos et ollut ensimmäisessä välikokeessa. Tentin kysymykset ovat sivuilla 3-4. Vastaa vain jompaan kumpaan kokeeseen,

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

Sami Hirvonen. Ulkoasut Media Works sivustolle

Sami Hirvonen. Ulkoasut Media Works sivustolle Metropolia ammattikorkeakoulu Mediatekniikan koulutusohjelma VBP07S Sami Hirvonen Ulkoasut Media Works sivustolle Loppuraportti 14.10.2010 Visuaalinen suunnittelu 2 Sisällys 1 Johdanto 3 2 Oppimisteknologiat

Lisätiedot

Aki Taanila AIKASARJAENNUSTAMINEN

Aki Taanila AIKASARJAENNUSTAMINEN Aki Taanila AIKASARJAENNUSTAMINEN 26.4.2011 SISÄLLYS JOHDANTO... 1 1 AIKASARJA ILMAN SYSTEMAATTISTA VAIHTELUA... 2 1.1 Liukuvan keskiarvon menetelmä... 2 1.2 Eksponentiaalinen tasoitus... 3 2 AIKASARJASSA

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

MAB3 - Harjoitustehtävien ratkaisut:

MAB3 - Harjoitustehtävien ratkaisut: MAB - Harjoitustehtävien ratkaisut: Funktio. Piirretään koordinaatistoakselit ja sijoitetaan pisteet:. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä. Funktiolla

Lisätiedot

11. kierros. 1. Lähipäivä

11. kierros. 1. Lähipäivä 11. kierros 1. Lähipäivä Viikon aihe AD/DA-muuntimet Signaalin digitalisointi Kvantisointivirhe Kvantisointikohina Kytkinkapasitanssipiirit Mitoitus Kontaktiopetusta: 6 tuntia Kotitehtäviä: 4 tuntia Tavoitteet:

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 14 To 20.10.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 14 To 20.10.2011 p. 1/39 p. 1/39 Nopeat Fourier-muunnokset Diskreetti Fourier-muunnos ˆf k = 1 N 1 N

Lisätiedot

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4). Tekijä Pitkä matematiikka 4 9.12.2016 212 Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4). Vastaus esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4) 213 Merkitään pistettä

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

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

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely)

Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely) Minimilatenssiongelman ratkaisualgoritmeja (valmiin työn esittely) Antti Salmela 03.03.2014 Ohjaaja: Harri Ehtamo Valvoja: Harri Ehtamo Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla.

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-2.3140 Lineaarinen ohjelmointi 4.10.2007 Luento 4 Ekstreemipisteiden optimaalisuus ja Simplex (kirja 2.4-2.6, 3.1-3.2) Lineaarinen ohjelmointi - Syksy 2007 / 1 Luentorunko Degeneroituvuus Ekstreemipisteiden

Lisätiedot

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Condess ratamestariohjelman käyttö Aloitus ja alkumäärittelyt Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Kun kysytään kilpailun nimeä, syötä kuvaava nimi. Samaa nimeä käytetään oletuksena

Lisätiedot

Tehtävä 2: Tietoliikenneprotokolla

Tehtävä 2: Tietoliikenneprotokolla Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli

Lisätiedot

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen Ohjelmistoradio tehtävät 4 P: Ekvalisointi ja demodulaatio Tässä tehtävässä dekoodata OFDM data joka on sijotetty synknonontisignaalin lälkeen. Synkronointisignaali on sama kuin edellisessä laskutehtävässä.

Lisätiedot