OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 7: Tiedon esittäminen tietokoneessa, osa 2 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. 06.09.12
Viikkoharjoituksista Viikkoharjoitukset (6 kpl) ovat pakollinen osa kurssin suoritusta Voi tehdä myös itsenäisesti...tai pyytää apua viikkoharjoitustilaisuuksissa! Viikkoharjoitustilaisuuksissa ei ole pakko käydä istumassa, eikä niihin tarvitse ilmoittautua. Kun pulmia tulee vastaan, opiskelija voi mennä mihin ryhmään tahansa kysymään assarilta apua. Myös koko harjoituksen voi käydä tekemässä viikkoharjoitustilaisuudessa.
Mystiikkaa: Moodlen pistelasku Arvioinnit välilehdeltä pitäisi löytyä jokaisesta viikkoharjoituksesta arvosana 1,00. Tällöin tehtävä on suoritettu onnistuneesti. Prosenteista yms ei tarvitse välittää! Mikäli pistelaskussa on ongelmia, kysykää aiheesta viikkoharjoituksissa (tai laittakaa sähköpostia osoitteeseen titepk@cs.tut.fi) Katsotaanpa mistä tuo Arvioinnit-välilehti löytyy Moodlessa...
Mystiikkaa: Moodlen pistelasku
Vapaaehtoiset bonustehtävät 3 bonustehtävää -> 1p 5 bonustehtävää -> 3p 6 bonustehtävää -> 4p Arvosanojen välillä on noin neljä pistettä, eli tekemällä kaikki bonustehtävät hyväksytysti kurssin arvosana saattaa nousta yhden pykälän! Bonustehtävä palautetaan kunkin luentoviikon sunnuntaina klo 23.55 mennessä Moodlessa olevan palautusautomaatin kautta. Katsotaanpa miltä se näyttää...
Kurssin harjoitustyö: essee Parityönä yksin työskentelemiseen tarvitaan erittäin hyvä syy ja lisäksi etukäteen saatu lupa... Paria voi etsiä Moodlessa (palsta Harjoitustyöparin etsintä ) Tehtävänanto julkaistaan maanantaina 10.9.2012 Palautettava 14.10.2012 klo 23.55 mennessä Palautusautomaatti Moodlessa
Kysyttävää? Onko kurssin järjestelyissä vielä epäselvyyttä...?
Ohjelmistopatenteista: Apple vs. Samsung Samsung sai tuomion Applen patenttien loukkaamisesta puhelimissaan, joissa on Android-käyttöjärjestelmä Tuotteethan ovat huomattavan samannäköisiä... Androidissa hyödynnetään myös sellaisia patentoituja ominaisuuksia, jotka ovat nykyään Microsoftin omaisuutta Mitähän tästä mahtaa seurata...?
Luennon aiheet Reaalilukujen (desimaalilukujen) esittäminen tietokoneen muistissa Kuvat tietokoneen muistissa Näytteistäminen Tiedon tiivistäminen eli tiedon pakkaus Virheiden havaitseminen ja korjaus Massamuistien ominaisuuksista
Liukulukujen epätarkkuus Tietyllä määrällä bittejä voidaan esittää vain tietty määrä erilaisia lukuja Kokonaislukujen kohdalla ongelma ratkesi rajaamalla lukualuetta Nyt rajaaminen ei auta, koska mille tahansa välille mahtuu ääretön määrä desimaalilukuja Reaalilukua kuvataan liukuluvulla, joka on mahdollisimman lähellä reaalilukua Käytetään siis approksimaatiota Approksimaatio: (mat.) likiarvo, likiarvon laskeminen tai muu määrittäminen Epätäsmällinen esitys jostain asiasta siten, että se on suurin piirtein oikein
Approksimaation epätarkkuus Epätarkkuus ei haittaa useimmissa sovelluksissa Mistä tiedetään onko oma sovellus sellainen, jossa asialla on merkitystä? Mitä tehdään jos tarvitaan rajatonta tarkkuutta? Esimerkki reaalilukuongelmasta Patriot-ohjuksentorjuntaohjus ei toiminut, ihmisiä kuoli Syynä oli luvun 0,1 virheellinen esitys torjuntaohjuksen ohjausjärjestelmässä Käytössä oli reaalilukuesitys, jossa kokonaislukuosa ja murtolukuosa esitettiin http://www.ima.umn.edu/~arnold/disasters/patriot.html kumpikin 24 bitillä
Analoginen, diskreetti ja digitaalinen Analogisella tarkoitetaan jatkuvaa, yhdenmukaista Suurin osa reaalimaailman asioista on jatkuva-aikaisia signaaleja, eli analogisia signaaleja lämpötila, tuulen nopeus musiikki Diskreetti on jatkuvan vastakohta Diskreetti: (mat) erillinen piste tai arvo, tai sellaisista koostuva Diskreetti matematiikka tutkii rakenteita, joissa on äärellinen määrä alkioita Digitaalinen järjestelmä käyttää diskreettejä arvoja käsitellessään tietoa Tietoa esitetään täsmällisinä arvoina Tietoa on rajallinen määrä
Tietokone digitaalisena järjestelmänä Helmitaulu on digitaalinen järjestelmä Käsittelee tietoa täsmällisesti helmien avulla Taulussa on helmiä on rajallinen määrä Myös tietokone on digitaalinen laite Käsittelee tietoa täsmällisesti bittien avulla Bittejä mahtuu muistiin rajallinen määrä Tietokoneella on tarkalleen tietty tila Tilalla tarkoitetaan tietokoneen käsittelemän bittijoukon järjestystä ja arvoja tietyllä hetkellä Kiinalainen Suanpan-helmitaulumalli 1300-luvulta. Suanpanilla voi käsitellä heksadesimaalilukuja. Kuvalähde: http://en.wikipedia.org/wiki/abacus (26.8.2008)
Näytteistäminen (samplaus, sampling) 1 / 2 Analogista signaalia voidaan esittää tietokoneella ottamalla siitä tietyillä ajan hetkillä näytteitä Näytteenottotaajuus Kun näytteet laitetaan peräkkäin, saatu signaali approksimoi alkuperäistä AD-muunnos (analog to digital)
Näytteistäminen (samplaus, sampling) 2 / 2 Approksimaatio paranee kun näytteitä on enemmän Mikä on riittävä määrä? Näytteenottotaajuuden lisäksi approksimaation laatuun vaikuttaa muitakin asioita tarkkuus vahvistus Joskus signaali halutaan muuntaa takaisin jatkuvaaikaiseksi (esimerkiksi musiikki) DA-muunnos (digital to analog)
Näytteistetty ääni Ääni on ihmisen näkökulmasta ilmanpaineen (nopeaa) vaihtelua Ääni pitää muuntaa digitaaliseen muotoon tietokonetta varten Tietokoneessa käytetään usein samaa digitointitarkkuutta millä CD-levytkin tehdään 44.1 khz, 16 bittiä / näyte, stereoääneen 2 kanavaa 44.1 khz * 2 tavua/näyte * 2 kanavaa = ~1378 kb/s
Kuvien esittäminen: rasteri- eli pikselikuva 1/3 Hieman yksinkertaistaen kuvia voidaan esittää tietokoneissa joko rasterikuvina tai vektorikuvina Rasterikuva on joukko pikseleitä Pikseli on kuvapiste, jolla on tietty väri Vrt. ruutulehtiön sivu, jonka ruutuja väritetään Sana "pixel" tulee engannin kielisestä ilmaisusta "picture element" Pikselikuvassa on tieto jokaisen pikselin sijainnista ja väristä Resoluutio kertoo kuvapisteiden määrän Kuvan resoluutio voi olla vaikkapa 1280*1024 pistettä 1280*1024*3 tavua/piste = ~4MB/kuva
Kuvien esittäminen: rasteri- eli pikselikuva 2/3 Miten voidaan luoda bittijono, joka esittää seuraavaa 3x3 pikselin kuvaa? 0 1 2 0 1 2 Ratkaisu : sovitaan, että ensimmäinen tavu kertoo leveyden, toinen korkeuden, ja kolmas tavu kunkin pikselin värin: 00000000 00000000 00000000 00000001 00000000 00000001 00000010 00000000 00000000... 00000010 00000010 00000000 06.09.12
Kuvien esittäminen: rasteri- eli pikselikuva 3/3 Rasterikuva on näytteistetty kuva Myös värit näytteistetään valitsemalla jokaiselle pikselille "lähin" väri Pikselin väri määritellään yleensä RGB-arvoina RGB =Red Green Blue RGB-värejä kuvataan tyypillisesti 24 bitillä, eli kolmella tavulla Yksi tavu jokaiselle kolmesta sävystä 24-bittisillä väreillä voidaan esittää 2^24 = n. 16 miljoonaa eri väriä Ihmissilmä ei näe pieniä eroja vierekkäisten sävyjen välillä
Värejä heksadesimaalien avulla Värit esitetään usein RGB-koodattuina XML-koodaus: risuaita + 3 heksadesimaalilukua väliltä 0-255 #RRGGBB, esimerkiksi #50C882 Kuvalähde: http://en.wikipedia.org/wiki/rgb_color (25.8.2008) 06.09.12
Kurssiaikataulu nettisivulla Olisiko toiveita vierailuluennon aiheesta? 06.09.12
Väritehtävä Mikä kuutiossa oikeassa alakulmassa olevan värin XML-koodi? Kuvalähde: http://en.wikipedia.org/wiki/rgb_color (25.8.2008) 06.09.12 Tätä kulmaa kysytään
Väritehtävä Mikä kuutiossa oikeassa alakulmassa olevan värin XML-koodi? Desimaalina R: 0, G: 255, B: 255 Kuvalähde: http://en.wikipedia.org/wiki/rgb_color (25.8.2008) 06.09.12 Tätä kulmaa kysytään
Väritehtävä Mikä kuutiossa oikeassa alakulmassa olevan värin XML-koodi? Desimaalina R: 0, G: 255, B: 255 Binäärinä 0, 11111111, 11111111 Kuvalähde: http://en.wikipedia.org/wiki/rgb_color (25.8.2008) 06.09.12 Tätä kulmaa kysytään
Väritehtävä Mikä kuutiossa oikeassa alakulmassa olevan värin XML-koodi? Desimaalina R: 0, G: 255, B: 255 Binäärinä 0, 11111111, 11111111 Heksana 0, FF, FF, eli heksakoodi on #00FFFF Kuvalähde: http://en.wikipedia.org/wiki/rgb_color (25.8.2008) 06.09.12 Tätä kulmaa kysytään
Kuvien esittäminen: vektorikuva Vektorikuvat koostuvat graafisista peruselementeistä Esim. viiva, neliö, ympyrä, kaari, polygoni Vektorikuvasta talletetaan graafisten peruselementtien tyyppi, koko, väri ja sijainti Graafiset elementit voidaan ilmaista matemaattisten yhtälöitten kautta Yksinkertaistaen vektorikuva on kokoelma tietyn kuvan "piirto-ohjeita"
Kuvien esittäminen: vektorikuva
Kuvien esittäminen ja näyttöteknologia Näyttölaitteet käsittelevät ja ymmärtävät pikseleitä Pikseleiden esitys vaihtelee eri teknisissä toteutuksissa Kuvaputkinäytöissä elektronitykki "pommittaa" fluoresoivia elementtejä LCD-näytöt perustuvat kristallikiteisiin vaikuttamiseen sähkövirralla Näytön resoluutio kertoo paljonko pikseleitä on Tyypillinen näytön resoluutio voisi olla 1280*1024 pistettä Koska kuvaruudun solut ovat hyvin lähellä toisiaan ja hyvin pieniä, ei ihmissilmä erota niitä toisistaan Televisiot ovat toimineet näin pitkään
Tiedon pakkaaminen Pienennetään tiedon määrää pakkaamalla muodostetaan alkuperäistä dataa lyhyempi kuvaus, josta (lähes) alkuperäisen kaltainen data voidaan muodostaa Tallennus- ja siirtokapasiteetti on rajallista, joten pakkaaminen on tarpeellista Tarve ei ole katoamassa, vaikka kapasiteetti koko ajan kasvaa Pakkaaminen ja purkaminen vie koneen tehoa pois varsinaisesta asiasta jota halutaan tehdä Tiukempi pakkaus vie yleensä enemmän tehoa Usein tiedon pakkaaminen ja purkaminen on käyttäjälle näkymätöntä, mutta myös erillisiä pakkausohjelmia on olemassa
Häviöllinen ja häviötön pakkaus Pakkausmenetelmät voidaan jakaa kahteen luokkaan: häviötön ja häviöllinen pakkaus Häviöllinen pakkaus (lossy compression) Kadottaa osan tiedosta Pyrkii säilyttämään olennaisen Liian tiukka pakkaus ei enää pysty palauttamaan olennaista alkuperäisestä Kuvat ja ääni Häviölliset menetelmät käyttävät hyväkseen oletuksia pakattavan tiedon luonteesta ja ihmisen aistien toiminnasta Häviötön pakkaus (lossless compression) Data mahdollista palauttaa täysin alkuperäisenä Ei pakkaa yhtä pieneen tilaan kuin häviöllinen Teksti, ohjelmakoodi
Pakkaamisratkaisuja Toistuvan tiedon pakkaaminen Korvataan usein toistuva kuvio (pattern) lyhyemmällä Korvauksista tehdään kirjanpito, jonka avulla purkaminen onnistuu Suhteellinen pakkausmenetelmä Kerrotaan muutoksista suhteessa johonkin muuhun osaan pakattua tietoa Esimerkiksi videokuvassa peräkkäisten kuvien erot ovat yleensä pieniä Tilastollinen pakkaus Lasketaan eri bittikuvioiden esiintymistiheyksiä ja käytetään tilastollista tietoa niiden järjestämisessä uuteen muotoon Kts. Huffman-pakkaus
Esimerkkinä LZ77- pakkausmenetelmä LZ77on nimetty tekijöidensä mukaan: Abraham Lempel & Jacob Ziv, 1977 Pakkaa toistuvaa tietoa Perustuu nk. mukautuva sanavarasto -koodaukseen Sanakirja tallentaa joukon lohkoja Lohkot ovat toistuvia pätkiä tietoa Sanakirja voi muuttua pakkauksen edetessä LZ77 tunnetaan paremmin zippinä, zip-tiedostoja tuottavat ohjelmat käyttävät LZ77:aa tai sen sukulaismenetelmää Tutustumme seuraavaksi rutkasti yksinkertaistettuun esimerkkiin LZ77:n toimintaperiaatteesta
Esimerkkinä LZ77- pakkausmenetelmä Alkup. teksti: laturi, verkkolaturi, autolaturi, muu laturi. 44 merkkiä, a' 8 bittiä = 44*8 bittiä= 352 bittiä Pakattu teksti: laturi, verkko[14,8]auto[26,8]muu[38,6]. 23 merkkiä, 6 lukua, a' 8 bittiä = (23+6) * 8 bittiä = 232 bittiä
Esimerkkinä LZ77- pakkausmenetelmä Alkup. teksti: laturi, verkkolaturi, autolaturi, muu laturi. 44 merkkiä, a' 8 bittiä = 44*8 bittiä= 352 bittiä Pakattu teksti: laturi, verkko[14,8]auto[26,8]muu[38,6]. 23 merkkiä, 6 lukua, a' 8 bittiä = (23+6) * 8 bittiä = 232 bittiä Laturi, verkkolaturi, autolaturi, muu laturi 0 6 8 14 26 38 laturi, verkko[14,8]autolaturi, muu laturi laturi, verkko[14,8]auto[26,8]muu laturi. laturi, verkko[14,8]auto[26,8]muu[38,6].
Toistuvan tiedon pakkaaminen Miksi zip-tiedostoja pakkaavat ohjelmat eivät juurikaan saa pakattua zip-tiedostoja?
Toistuvan tiedon pakkaaminen Miksi zip-tiedostoja pakkaavat ohjelmat eivät juurikaan saa pakattua zip-tiedostoja? Zip-tiedostot ovat pakattu LZ77:lla tai jollakin sen sukulaismenetelmällä Tästä johtuen zippitiedostoissa ei ole enää toistuvaa tietoa Siksi niitä ei juurikaan voi pakata tiiviimmiksi toistuvan tiedon pakkaamiseen perustuvalla menetelmällä
Esimerkkejä pakkauksesta Osa menetelmistä on patentoitu, jolloin niitä ei voi vapaasti hyödyntää Kenen etu on mahdollisuus patentoida algoritmeja? JPEG pakkaa kuvia häviöllisesti, GIF ja PNG pakkaavat häviöttömästi Molemmilla on käyttönsä Esimerkkejä pakkausta käyttävistä tallennusmuodoista: Tekstimuotoisen tiedon pakkaus (OpenDocument, Office Open XML) Kuvien pakkaaminen (JPEG, GIF, PNG... ) Videokuvan pakkaus (MPEG, DivX) Äänen pakkaaminen (MP3, WAV, OGG)
Esimerkkejä pakkauksesta: MP3 MP3-tiedostot sisältävät näytteistettyä ääntä MP3 = MPEG-1 Audio Layer 3 MPEG = Movie Picture Experts Group Musiikkikappale vie huomattavasti vähemmän tilaa MP3-muodossa kuin musiikki-cd-levyllä Kappale kutistuu noin kymmenesosaan MP3:na Hyödyntää häviöllistä pakkausmenetelmää Jättää tiedostosta pois äänet, joita ihmiskorva ei kuule MP3-formaatissa voidaan valita montako bittiä käytetään näytteistämiseen sekuntia kohti Taajuuden 128 kb/s sanotaan muistuttavan CD:n laatua Pienempi näytteenottotaajuus johtaa pienempään tiedostoon ja heikompaan äänenlaatuun
Virheellisen tiedon käsittely Joskus bitti menee poikittain Tiedonsiirrossa siirtojohdot alttiina häiriöille Tallennusvälineissä kuten CD-levyissä saattaa olla naarmuja Virheen havaitseminen Virhe on havaittava että se voidaan korjata Jos alkuperäinen tieto on tallella, havaitseminen riittää Tietoliikenteessä voidaan pyytää lähettämään virheelliseksi havaittu tieto uudelleen Virheen korjaaminen Jos virhe on CD:lle tai kiintolevylle tallennetussa tiedossa, ei alkuperäistä virheetöntä tietoa ole enää saatavilla Olisi hyvä jos virheellisestä tiedosta voitaisiin päätellä alkuperäinen virheetön tieto
Virheen havaitseminen Eräs keino on lisätä varsinaiseen tietoon ylimääräistä tietoa, josta oikeellisuus voidaan päätellä Esim. pariteettitarkistus, tarkistussumma A:n ASCII-arvo sisältää parillisen määrän bittejä Pariteettibitti Pariteettibitti F:n ASCII-arvo sisältää parittoman määrän bittejä Koko bittijono sisältää parittoman määrän ykkösbittejä Koko bittijono sisältää parittoman määrän ykkösbittejä
Virheen korjaaminen On olemassa useita erilaisia tapoja korjata virheitä Esimerkiksi mitä merkitsee bittijono 010100? Kirjain Koodi Kirjain Tulkittavan bittijonon ja kirjaimen välinen etäisyys Pienin etäisyys
Virheen korjaaminen entäpä ASCII Onnistuisiko alla olevalla menetelmällä virheen korjaaminen ASCII-merkistön tapauksessa? Kirjain Koodi Kirjain Tulkittavan bittijonon ja kirjaimen välinen etäisyys Pienin etäisyys
Virheen korjaaminen entäpä ASCII Onnistuisiko alla olevalla menetelmällä virheen korjaaminen ASCII-merkistön tapauksessa? Ei, emme tiedä edes onko virhettä tapahtunut Kirjain Koodi Kirjain Tulkittavan bittijonon ja kirjaimen välinen etäisyys Pienin etäisyys
Massa- eli tukimuistien ominaisuuksia Hinta talletustilan suhteen olennaista erityisesti kuluttajatuotteissa Virrankulutus olennaista lähinnä kannettavissa laitteissa Nopeus latenssi ja siirtonopeus Fyysinen koko tavua kohti Vikaantuminen tiheys ja aiheuttajat Virheenkorjausmenetelmät ja virheiden havaitseminen Tiedon säilyvyys Kaikkea kivaa ei voida saada tässäkään asiassa, vaan eri muistityypit tarjoavat erilaisia kompromisseja haluttujen asioiden välillä
Magneettiset levyt Levykkeet, kiintolevyt, zip-levyt Ura jaettu sektoreihin Levy Luku/kirjoituspää Hakuvarsi Levyn liikesuunta Varren liikesuunta
Optiset levyt CD, DVD, HD-DVD, Blue Ray Tieto tallennettu yhdelle uralle, joka jakaantuu sektoreihin, jotka laajenevat levyn ulkosyrjää kohti Levyn liike
Flash-muistit Käytössä mm. USB-muistitikuissa ja muistikorteissa Flash-muisti on ROM-piiri, jonka sisältöä voidaan tarvittaessa muuttaa Muuttaminen on kuitenkin huomattavasti hitaampaa kuin lukeminen Flash-muisteja käytetään lähinnä tukimuistina Nykyisin myös kiintolevyjen korvikkeena
Muistien ominaisuuksia Kiintolevy Nopea, suurikapasiteettinen, halpa / tavu CD, DVD Hidas, kapasiteetti riittää moniin tarkoituksiin, halpa HD-DVD, Blue Ray Kirjoittavat asemat vielä kalliita, suuri kapasiteetti Flash-muistit Fyysisesti pieni, kestävä, vie vähän sähköä, melko kallis Magneettinauhat Kestäviä, tallettavat helposti suuria tietomääriä Käytetään varmuuskopiointiin
Tiedon säilyminen Kiintolevy voi vikaantua Optinen levykin voi vikaantua Optiset levyt pilaantuvat lukukelvottimiksi ajan kuluessa Miten kauan tieto säilyy? Jos on tarve säilyttää jotain tietoa pitkiä aikoja, miten voidaan varmistaa että se saadaan säilymään? Patenttiratkaisua ei ole toistaiseksi olemassa kuluttajille
Yhteenveto Reaalilukujen (desimaalilukujen) esittäminen tietokoneen muistissa Kuvat tietokoneen muistissa Näytteistäminen Tiedon tiivistäminen eli tiedon pakkaus Virheiden havaitseminen ja korjaus Massamuistien ominaisuuksista
Thomson MP3-formaatista To create mp3, Brandenburg analyzed how the human ear and brain perceive sound. The coding technique effectively fools the ear by eliminating the less essential parts of a music file. For example, if two notes are very similar, or if a high and low tone occur at exactly the same time, the brain perceives only one of them; so the mp3 algorithm selects the more important signal and discards the other. The resulting mp3 file is reduced to less than a tenth of the original size of the audio file. For example, a three-minute track will normally take up about 30MB of hard-disk space. The equivalent mp3 file will use only about 3MB of space with little audible loss in quality. Through the early 90s, mp3 was mainly used in professional applications. In these pre-web days, Thomson was the only major industrial player to share Brandenburg's vision, and its engineers worked alongside the Fraunhofer team to develop and improve mp3 encoding and decoding applications. Their combined research and development resulted in twenty patents covering the mp3 standard, with Thomson issuing the licenses under these patents from 1993 onward.