Siirtoformaatit Johdanto Sovellusalueet Vaatimukset Raita- ja oliomalli Reaaliaikainen tiedonsiirto Erilaiset siirtoformaatit Vertailu 1
Johdanto Multimediatuotteiden siirrossa tarvitaan alusta- ja ohjelmistoriippumattomia siirtoformaatteja Siirtoformaattien perustana voi olla raidat oliot Suurin osa siirtoformaateista on tiedostoformaatteja, mutta osa tukee myös reaaliaikaista siirtoa 2
Yleistä Siirtoformaatti määrittelee: ajan, paikan, rakenteen ja toiminnan (skriptit) Ilman siirtoformaattia yhdellä sovelluksella tuotettua sisältöä ei voi lukea ja käyttää toisella sovelluksella Siirtoformaatit voivat olla julkisia tai valmistajakohtaisia Konversiotyökalut on huono ratkaisu 3
Sovellusalueet 1. Tallennusformaatti 2. Siirtoformaatti 3. Reaaliaikainen siirtoformaatti 1. 2. 4. Sovellusten välinen tiedonsiirto 3. 4. 4
Käyttötarkoitukset Multimediajärjestelmissä siirtoformaattia voidaan käyttää monessa paikassa: + sovellukset: sovellusten API + mediapalvelin: siirtoformaatti määrittelee ajoitukset + tietokannat: tiedot talletetaan ja luetaan siirtoformaatin määritysten mukaisesti + verkko: verkko ylläpitää ajoituksia siirtoformaatin mukaisesti 5
Eri formaatit Kategoria Esimerkki Yleinen formaatti ASN.1 Multimedia dokumentti HyTime DTD Esitysformaatti QuickTime, MHEG Yksi media MPEG 6
Vaatimukset Datamalli: aika, synkronointi, eri formaatit, osoitus, hyperlinkit, interaktiivisuus Skriptit: ohjelmointikieli tai graafinen ohjelmointi Kapasiteetti: määrittely ei yleensä vie paljon tilaa Hakuaika: purku oltava nopeaa, progressiivinen resoluutio ym. Siirrettävyys: laitteisto- ja alustariippumattomuus Laajennettavuus: uudet formaatit, parametrit jne. 7
Raitamalli Multimediadokumentti on lista, joka kertoo missä järjestyksessä eri komponentit haetaan ja esitetään Raitamallissa hakujärjestys on määritelty ajan perusteella Selostus Grafiikka Audio Video aika 8
Oliomalli Oliomallissa hakujärjestys on määritelty tietorakenteen mukaisesti 9
Raitamallin toteutus Raitamallissa tahdistetaan soittimia // Open Initialize clock Initialize movie, track, and media indices Initialize handlers // Players Repeat Get next segment of media Call handlers Advance clock 10
Oliomallin toteutus Oliomalli sallii paremmin vuorovaikutuksen toteuttamisen // Open Get table of contents, object tables Initialize presentation processes // Present Repeat Repeat Get set of objects to be presented Invoke players for each object Until media event or input condition Pass input condition to application or script to interpret Identify next set of object to present Until exit condition 11
Reaaliaikainen tiedonsiirto Mediaobjektit on siirrettävä ja näytettävä siirtoformaatin määritysten mukaisesti Objektien haku ja näyttö sekä käyttövaste on tapahduttava tiettyjen rajojen sisällä Tarvittaessa esim. kuvataajuutta ja resoluutiota voidaan tiputtaa Myös siirtoformaattia voidaan optimoida 12
Menetelmät Objektien sijainti samanaikaisesti haettavat mediaobjektit lähekkäin Osittainen objektien haku: isot objektit haetaan paloissa, koska niitä ei voi esittää kerralla Objektien järjestys: hakumekanismi ylläpitää esitysjärjestyksen Objektien indeksointi: luodaan nopea objektien hakutaulu 13
Menetelmät (jatk.) Objektien lomittelu: isoja objekteja haetaan vuorotellen Objektien kuvauksen ja sisällön haku erikseen: kuvaus haetaan ensin ja sisällön siirto optimoidaan sen perusteella Progressiivinen haku: kuvat haetaan ensin pienellä resoluutiolla Resurssisuositukset: ilmoitetaan etukäteen resurssivaatimukset 14
Erilaiset siirtoformaatit QuickTime MHEG HTML XML Macromedia 15
QuickTime QuickTime mahdollistaa eri mediatyyppien luomisen, integroinnin ja esittämisen QuickTime koostuu kolmesta eri tasosta: QuickTime Movie File QuickTime Media Abstraction Layer QuickTime Media Services QuickTime mahdollistaa multimediasovelluksen rakenteen, spatiaalisen ja ajallisen määrittelyn Sillä ei voi määrittää interaktiivisia toimintoja 16
QuickTime Media Format Applen multimediatiedosto -formaatti Perustuu raitamallille Yksi elokuva voi sisältää useampia raitoja Elokuvan aika ja näyttö Elokuva Raita Media Otsikko Referenssi Informaatio Data Ajallinen ja paikallinen kompositio Fyysiset parametrit Soitin Organisaatio Varsinainen sisältö 17
QuickTime-elokuvat Useasta raidasta koostuva elokuva Mediaelementeistä koostuva raita Mediaelementtien linkitys fyysiseen mediaa 18
MHEG ISO:n työryhmä Oliopohjainen multi- ja hypermedian siirtoformaatti Tukee interaktiivisuutta ja reaaliaikaista siirtoa Määrittelee lopullisen esitysmuodon 19
Ominaisuudet Määrittelee joukon alustariippumattomia komponentteja interaktiivisuutta varten Interaktiivisuus voidaan toteuttaa kahdella tapaa: komponentit linkitetään erilaisiin tapahtumiin käytetään skriptaus-kieltä Tapahtumat syntyvät ajoitusmäärityksistä tai käyttäjän toimenpiteistä 20
Ominaisuudet (jatk.) Sekä paikallisen että ajallisen sijainnin määrittely mahdollista Makrojen avulla voidaan määritellä monimutkaisia objekteja malleja käyttäen Sisältää myös tukea reaaliaikaista siirtoa varten 21
MHEG-luokkahierarkia MH-object Behavior Action Link Script Component Content Interaction Selection Modification Composite Descriptor Macro Macro Definition Macro Use 22
MHEG-demo Tekstitelevisio Laadittu MHEG-siirtoformaattia käyttäen Koostuu mediaelementeistä ja MHEGtiedostoista 23
MHEG-työkalut Useita puolivalmiita työkaluja Työkalut voidaan jakaa kolmeen ryhmään: MHEG-editorit Template-editorit Muunnostyökalut MHEG-formaattia on toistaiseksi käytetty vähän, joten markkinoita työkaluille ei vielä ole 24
HTML HTML-dokumentit koostuvat tekstistä ja ohjauskomennoista (markup commands) Nykyinen HTML 4.01 ei tue elementtien sijoittelua, synkronointia eikä interaktiivisuutta Tyylisivut (Cascading Style Sheets) mahdollistavat elementtien sijoittelun (CSS2) 25
HTML (jatk.) Interaktiiviisuus voidaan määritellä ECMAScript kielellä standardi pohjautuu JavaScript ja JScript -kieliin ECMAScript -ohjelmat voivat käsitellä dokumentteja Document Object Model (DOM) rajapinnan kautta Dokumenttien ajallinen synkronointi vasta tulossa Synchronized Multimedia Integration Language (SMIL) 26
Tyylisivut Tyylisivut mahdollistavat elementtien sijoittamisen, tyylin ja ulkoasun määrittelyn Www-sivu voi koostua useasta kerroksesta Esityksen sisältö ja ulkoasua voidaan määritellä erikseen Samaa sisältöä voi käyttää eri päätelaitteissa Tällä hetkellä CSS1 & CSS2 käytössä ja CSS3 tulossa 27
ECMAScript-262 Syntynyt JavaScriptin ja JScriptin pohjalta Yksinkertainen tulkattava kieli (Basic) Käyttäjä voi kirjoittaa skriptejä, jotka muokkaavat www-sivujen ulkoasua Mahdollistaa erilaisten sovellusten toteuttamisen 28
Document Object Model (DOM) Selaimen sisäinen puumainen tietorakenne Olio-orientoitunut ohjelmointirajapinta Selaimen sisällä dokumenttia voi käsitellä oliorakenteena Mahdollistaa kaikkien www-elementtien manipuloinnin Sama skripti toimii kaikissa selaimissa Toimii sekä HTML- että XML-sivujen kanssa 29
SMiL Esitys voi koostua useammista tiedostoista tai mediavirroista SMiL määrittelee elementtien välisen synkronoinnin Elementeistä voidaan eri tilanteissa käyttää eri versioita Erillinen XML-formaatissa oleva tiedosto 30
HTML-työkalut HTML 4.01 tukevia työkaluja on lukuisia WYSIWYG editorit suosittuja Tyylisivuja tukee vain harva työkalu (ja selain) SoftQuad HotMetaLPro 6.0 Macromedia Dreamweaver JavaScriptin käyttö vaatii ohjelmointitaitoja Netobjects ScriptBuilder SMiL ja HTML+TIME tuki vähäistä RealNetworks RealPlayer 6.0 31
XML XML on metakieli, jolla voidaan määrittää erilaisia dokumenttien kuvauksia (esim. HTML) Tyylisivut määritellään XSL määritysten mukaisesti Toinen vaihtoehto on käyttää CSS-tyylisivuja Interaktiivisuuden määrittelyyn käytetään ECMAScritp standardia ja DOM-mallia Ajallinen synkronointi vaatii SMIL:n käyttöä 32
Nimiavaruuksien sekoittaminen Sekoitettujen nimiavaruuksien (mixed namespaces) avulla samassa dokumentissa voidaan käyttää yhtä aikaa useampia XML-kieliä Merkinnän eteen lisätään etuliite, joka kertoo mihin kieleen se kuuluu esim. <smil:layout> 33
Timesheets SMIL 3.0 External Timing Module Mahdollistaa SMIL ajoitusten käyttämisen muiden XML kielten kanssa esim. XHTML ja SVG Perustuu SMIL-kielen ajoituselementeille Par, Seq ja Excl Isäntäkielen elementit valitaan CSS-kielen valitsimilla Esim. Id ja Class Tukee myös animointia ja esihakua 34
Timesheets esimerkki <smil:timesheet xmlns:smil=".../timesheets"> <smil:seq> <smil:item select="#slide1" dur="5s" /> <smil:item select="#slide2" dur="5s" /> <smil:item select="#slide3" dur="5s" /> </smil:seq> </smil:timesheet> 35
XML-työkalut XML on vasta tulossa selaimiin suurin osa selaimista toteuttaa osan määrittelyistä www.x-smiles.org Tarjolla on runsaasti ohjelmistokomponentteja Työkaluja on myös saatavilla Esim. Altova XML Spy ja Eclipse 36
Macromedia Macromedia on suurin multimedian tuotantotyökalujen tuottaja Macromedia Director yleisin tuotantotyökalu Macromedialla on kaksi siirtoformaattia wwwjakelua varten Macromedia Shockwave Macromedia Flash Kummankaan formaatti ei ole julkinen Macromedia on nykyään osa Adobea 37
Shockwave Mahdollistaa Directorilla tehtyjen multimedia-sovellusten näyttämisen wwwselaimessa Selaimeen asennetaan erillinen plug-in -ohjelma Tiedostot isoja ja vaikeita käyttää tämän päivän Internetissä 38
Flash Alkuperäinen nimi FutureSpash Macromedia osti tuotetta valmistavan yrityksen -97 Perustuu vektorigrafiikan käyttöön ei kuvia - vaan piirtokomennot Vaatii myös erillisen plug-in -ohjelman asentamisen www-selaimeen Sovellusten tuottamista varten oma työkalu suppea versio Macromedia Directorista 39
Flash-demot Grokbot www.grokbot.com Dancing Bush www.miniclip.com Humor Bin www.cards-n-toons.com 40
Vertailu Quick MHEG HTML XML Shock Flash Avoin Heikko Kyllä Kyllä Kyllä Ei Ei Raita/olio Raita Olio (DOM) (DOM) Raita Raita Interakt. Ei Kyllä Heikko Heikko Kyllä Kyllä Hyperlinkit Ei - Kyllä Kyllä - - Skriptit Ei Kyllä (ECMA) (ECMA) Kyllä (Kyllä) Synkron. Kyllä Kyllä (SMiL) (SMiL) Kyllä Kyllä 41