http://www.niksula.cs.hut.fi/projects/ohtace/documents/tm.html
CVS Info: $Id: tm.html,v 1.6 1997/04/22 09:58:13 mtuisku Exp $
1. Johdanto
2. Yleiskuvaus
3. Tiedot ja tietokanta
4. Toiminnot
5. Ulkoiset liittymät
6. Muut ominaisuudet
Internet-TV on helppokäyttöinen asiakasohjelma, jolla voidaan seurata Internet-verkossa lähetettyä audio- ja videomuotoista IP-multicast-liikennettä.
Internet-TV:lle on selvä tarve. Televisio on yksi suosituimmista vapaa-ajan harrastuksista maailmassa. TV-lähetysten seuraaminen vaatii investointeja vastaanottimeen ja antenneihin. Lisäksi useat kanavat ovat maksullisia. Lähetykset ovat usein maakohtaisia, vaikkakin yhä useammat kanavat kattavat useampia maita.
TV-ohjelmien lähettäminen vaatii myös hyvin kalliita investointeja ja useissa maissa erityisiä lupia.
Uusi Internet-teknologia tarjoaa kuitenkin mahdollisuuden lähettää TV-ohjelmia ympäri maapallon huokeammin kustannuksin. Vastaanottajan kannalta tilanne on myös kehittymässä parempaan suuntaan, sillä vastaanottaja ei ole enää rajoittunut vain omalla alueellaan näkyviin lähetyksiin.
Markkinoilla ei tietojemme mukaan tällä hetkellä ole ainuttakaan Internet-televisiolähetysten vastaanottamiseen tarkoitettua ohjelmaa, joka olisi tarpeeksi yksinkertainen ja helppokäyttöinen "tavallista" tietokoneenkäyttäjää ajatellen. "Tavallisella" tietokoneenkäyttäjällä tarkoitetaan tässä henkilöä, jolla ei ole liiemmälti kokemusta tietokoneista taikka tietoliikenteen erityistuntemusta.
Tuotteen käyttäjiä on useita ryhmiä: lukutaidottomia lapsia, "tavallisia" aikuisia ihmisiä, eläkeläisiä, sekä tietenkin "tietokonenörttejä". Kaikille näille on yhteistä halu seurata TV-lähetyksiä, mikä tulevaisuudessa on mahdollista Internetissä.
Eri käyttäjäryhmiä on käsitelty tarkemmin kappaleessa 2.1.
Internet-TV:llä pystyy vastaanottamaan IP-multicast-liikennettä, joka käytännössä tarkoittaa sitä, että yksi lähettäjä lähettää joltain Internettiin liittyneeltä työasemalta tai palvelimelta samaa lähetystä useille eri vastaanottajille. (tarkempi selvitys IP-multicastista)
Kukin ohjelma muodostaa oman kanavansa. Yksi kanava voi olla käytössä 24 h/vrk, esimerkiksi tavanomainen TV-asema jos aloittaa Internet-lähetykset, se voi lähettää kaiken ohjelmansa verkkoon sellaisenaan. Toisaalta Internet mahdollistaa myös väliaikaisten kanavien perustamisen, jolloin tietyltä kanavalta tulee ohjelmaa vaikkapa vain kerran (esim. jonkin tapahtuman televisiointi) taikka tunnin päivässä tiettynä aikana.
Lähetys voi olla mitä tahansa televisio-ohjelmaa, jolle on ominaista, että lähettäjä itse kontrolloi lähetettävää materiaalia. Kyseessä ei siis ole tilausvideo-tyyppinen palvelu, jossa vastaanottaja tilaa lähetyksen haluamanaan hetkenä.
Ohjelmaan ei ole tarkoitus toteuttaa piirteitä, jotka mahdollistaisivat kuvan tai äänen lähetyksen verkkoon tai unicast-tyyppisen vastaanoton.
Tämä määritysdokumentti koostuu seuraavista osista:
Käytetyt termit on lisäksi selitetty erillisessä Termistö-dokumentissa.
Ohjelmatyössä varaudutaan siihen, että tuotteen loppukäyttäjä on nk. tyhmä käyttäjä, jolta ei odoteta mitään teknisiä valmiuksia. Itse asiassa käyttäjältä ei odoteta muita valmiuksia kuin kädet joilla käyttää hiirtä tai näppäimistöä, ja silmät ja korvat joilla seurata lähetyksiä.
Tarkoitus on, että ohjelmaa pystyy käyttämään lähes kuka tahansa, joka pystyy käyttämään perinteistä televisiota. Tähän ryhmään kuuluvat mm. lukutaidottomat lapset.
Idealistiseen ihanteeseen kaikkien käytettävissä olevasta Internet-TV:stä teemme kuitenkin seuraavat varaukset:
Käyttöliittymäseminaarin yhteistyöryhmämme on vaatimusanalyysissään erotellut seuraavat käyttäjäryhmät.
Käyttöympäristö on tavanomainen ikkunoitu käyttöjärjestelmä. Tässä vaiheessa rajoitumme UNIX (Solaris 2.5) -käyttöjärjestelmään ja X11 käyttöliittymäympäristöön.
Tavoitteena on, että ohjelma kyettäisiin vähäisellä työmäärällä siirtämään myöhemmin muihin käyttöympäristöihin. Tähän pyritään käyttämällä käyttöjärjestelmäriippumattomia toteutustyökaluja.
Varsinainen ohjelmointi toteutetaan C/C++-kielellä ohjelmakoodin siirrettävyyden aikaansaamiseksi. C/C++-kääntäjänä käytetään gcc C/C++ kääntäjän versiota 2.7.2. Käyttöliittymä luodaan Tcl/Tk -kielillä käyttäen viimeisintä stabiilia Tcl/Tk versiota (tällä hetkellä tcl7.6 ja tk4.2).
Ohjelmatyöryhmä suorittaa kaiken tarvittavan ohjelmakoodauksen itse (käytettävissä olevien valmiiden rutiinien lisäksi). Käyttöliittymän suunnittelussa avustava käyttöliittymäseminaarin työryhmä ei toteuta itse koodia.
Ohjelmatyössä on tarkoitus hyödyntää mahdollisimman paljon valmiina saatavia komponentteja. Näitä onkin varsin hyvin saatavilla. Käyttötarkoituksia ovat erityisesti kuva- ja äänitiedon vastaanotto ja purku.
Tähän on koottuna aiheeseen liittyvistä ohjelmistoista lisenssitietoja ja kuvaukset ko. ohjelmiston eri komponenteista.
Ohjelmisto | Kuvaus | Saatavuus (ftp-site tms) | Lisenssi | lisätietoja |
---|---|---|---|---|
vat - LBNL Audio Conferencing Tool | Äänen vastaanottoon ja kuunteluun tarkoitettu ohjelma | ftp://ftp.ee.lbl.gov/ conferencing/vat/ |
"Regent" lisenssi. -> Ohjelmiston komponentit käytettävissä, copyright säilytettävä |
|
GSM 06.10 13 kbit/s RPE/LTP speech compression | GSM-koodatun äänen vastaanottorutiinit | ftp://ftp.cs.tu-berlin.de/ pub/local/kbs/tubmik/gsm/ |
Vapaa, alkuperäinen copyright säilytettävä |
|
vic - LBNL Video Conferencing Tool | Liikkuvan kuvan vastaanottoon tarkoitettu ohjelma | ftp://ftp.ee.lbl.gov/ conferencing/vic/ |
"Regent" lisenssi. -> Ohjelmiston komponentit käytettävissä, copyright säilytettävä |
|
ivs - INRIA Videoconferencing System | Liikkuvan kuvan sekä äänen vastaanottoon tarkoitettu ohjelma | ftp://ftp.ucs.ed.ac.uk/ pub/videoconference/ivs/ |
Vapaa, alkuperäinen copyright säilytettävä |
|
sdr - Session Directory program | IP-multicast-ohjelmien kanavanvalinta- ja hallintaohjelma. |
ftp://ftp.ucs.ed.ac.uk/pub/ videoconference/sdr/ |
"Regent" lisenssi. -> Ohjelmiston komponentit käytettävissä, copyright säilytettävä |
|
Esitutkinnassa päädyimme siihen tulokseen, että parhaat valmiit osat tarjoaa vic sekä vat, mistä seuraavassa tarkemmin.
Kummankin ohjelman hyvänä puolena on se, että niitä kehitetään samassa paikassa, jolloin ohjelmien synkronointi on helpompaa. Lisäksi kummassakin ohjelmassa on selkeä erottelu käyttöliittymän ja matalan tason rutiinien välillä. Eikä tässä vielä kaikki, matalan tason rutiinit ovat toteuttettu c++ luokkien avulla, jolloin modulaarisuus kasvaa ja omien rutiinien lisääminen, esimerkiksi MPEG2-videokuvan purku, on suhteellisen helppoa. Alla on kuvattu karkeasti minkälaisia luokkia vic ja vat sisältävät. Sekä vicin että vatin käyttöliittymä on totettu tcl:lää käyttäen.
Lisäksi mukana on kymmenkunta muuta luokkaa jotka hoitavat vain yhtä tai kahta tehtävää.
Vatin luokkajako noudattaa pääpirteittäin samaa jakoa kuten vicinkin luokkajako. Luokat ovat hämentävästi suurimmaksi osaksi täysin saman nimisiä ja ne tekeveät täsmälleen samoja asioita. Ainoat eroavaisuudet ovat siinä, että vatille ominaiset ruutiinit keskittyvät äänen käsittelyyn. Tälläinen luokka (ja sen aliluokat) on:
Kehityksen apuna käytetään tarpeen vaatiessa sopivaa versionhallintaohjelmistoa. Tämä tulee olemaan CVS. CVS valittiin siksi, että ryhmämme jäsenellä (Ville) oli jo etukäteen vankka käyttökokemus ko. tuotteesta, tämän vuoksi käyttökynnys jää muille ryhmän jäsenille hieman matalammaksi. Lisäksi CVS on teknisenäkin ratkaisuna varsin oiva valinta monen hengen kehitysympäristöön, koska se ei sisällä varsinasta lukituskäytäntöä, vaan jokaisella käytäjällä on mahdollisuus saada oma työkopio lähdekoodista. Käytäjä tekee vain muutokset koodiin, ja lisää ne sitten takaisin kaikkien muidenkin saataville.
Kanavatiedot saadaan esille käytämällä sdr:n (session directory) ohjelman määrittelemien protokollien (SAP, SDP) avulla. Protokollat ovat selitetty tarkemiin alla.
SAP:n avulla lähetetään määrämuotoista informaatiota siitä, minkälaisia lähetyksiä parhaillaan on meneillä tai (lähi)tulevaisuudessa on tulossa. SAP:n välittämää dataa kuunnellaan hyvin määritellyistä multicast-osoitteista.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | V=1 | MT |E|P| auth len | msg id hash | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | orig source | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | optional authentication header | | .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | optional timeout | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | optional random field | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | text payload | | .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Yllä olevassa kuvassa olevat kirjaimet tarkoittavat seuraavaa V: Versio numero, MT: Viestin Tyyppi, joka on yksi kolmesta vaihtoehdosta: 0 Yhteyden kuvauksen ilmoituspaketti. 1 Yhteyden kuvauksen poistamispaketti. 2 Multicast-osoitteen testi E Salausbitti. P Täytebitti.(padding bit). Asetaan paalle siinä tapauksessa jos autentikointiosan pituus ei ole 32 bitin monikerta. text payload: paketin varsinainen hyötykuorma Yllä ei ole selitetty valinnaisia (optional) kenttiä, koska niiden lopullinen määrittely on vielä kesken.
Tarkka määrittely on seuraavan linkin takana. SAP draft
SDP:n avulla määritellään minkälaistä lähetystä valitulta kanavalta on tulossa. SDP määrittelyt sisältävät seuraavat osa-alueet: lähetyksen nimi ja tarkoitus, ajankohdat jolloin lähetys tulee, ne mediat joista lähetys koostuu ja tieto siitä kuinka näitä medioita otetaan vastaan
TV-lähetys (kuva + ääni) on vastaanotettava, purettava ja siirrettävä ruudulle ja kaiuttimiin.
Kuva voidaan lähettää erilaisilla pakkausmetodeilla pakattuna. Tällaisia metodeja ovat mm.
Pakkausmetodi | Selitys | |
---|---|---|
MPEG | Moving Pictures Experts Group | Liikkuvan kuvan ja siihen synkronissa yhdistetyn äänen standardeja kehittävä ISO:n alainen ryhmä (ISO/IEC JTC1 SC29 WG11). Eri MPEG standardeja ovat mm. MPEG-1 (vaatimaton video, CD-tasoinen audio, n. 1,5 Mbps), MPEG-2 (MPEG-1:n laajennettu ja parannettu versio, TV-tasoinen kuvanlaatu, bittinopeus 4-9 Mbps), MPEG-3 (MPEG-2:n laajennus HDTV laatuiselle kuvalle, nyttemmin osa MPEG-2 standardia, bittinopeus 20-40 Mbps) ja MPEG-4 (työn alla oleva standardi, joka tähtää bittinopeuksiin 4800-64000 bps 10 Hz:n kuvataajuudella ja 176 x 144 resoluutiolla). |
H.261 | ITU-T:n (International Telecommunication Union) standardi videokuvan koodaamiseksi nopeudella p * 64 kbps, jossa p on 1-30. P:n arvoilla 1-2 tuloksena on 176x144 resoluutioinen kuva, joka kuvataajuus on n. 10 Hz. Toinen tuettu resoluutio on 352x288, ja kuvataajuus 30 Hz. Standardi on tehty ISDN-yhteyksiä silmälläpitäen. |
Työssä on tarkoitus käsitellä H.261-lähetyksiä. Myöhemmässä vaiheessa voidaan toteuttaa MPEG-lähetysten käsittely.
Ääntä voidaan koodata monella eri tavalla. Tärkeimpiä parametreja ovat ainakin koodauksen tuloksen bittinopeus, näytteenottotaajuus, bittien määrä per näyte, koodaustapa ja pakkaus.
Seuraavassa on lueteltu tärkeimpiä koodaustapoja ja niiden ominaisuuksia:
Sample rate Line speed Coding ----------- ---------- ------ 16 kHz 64 kbps ADPCM 8 kHz 32 kbps ADPCM
Pyrimme toteuttamaan mahdollisimman monen äänenkoodaustavan vastaanoton.
Pyrkimys on, että ohjelma sinänsä ei rajoita vastaanotettavan informaation määrää. Käytännössä tämä tarkoittaa sitä, että ohjelmalla on pystyttävä vastaanottamaan vaikkapa koko kuvaruudun kokoisia lähetyksiä 25 kuvaa sekunnissa. Koska äänen ja kuvan purku kuitenkin vaatii paljon laskentakapasiteettia, on algoritmien tehokkuuteen ja komponenttien välisen kommunikoinnin tehokkuuteen kiinnitettävä erityistä huomiota.
Käytännössä tiedonsiirto- ja laitteistokapasiteetti saattavat asettaa suorituskyvylle rajoitteita. On oletettavaa, että työssä kyetään kuitenkin saavuttamaan 5-10 kuvaa sekunnissa olevia nopeuksia kohtuullisen kokoisella vastaanottimen ruudulla. Tietokoneiden nopeuskehitys on kuitenkin perinteisesti ollut voimakasta, ja poistanee tässäkin tapauksessa suorituskykyrajoitteita lähivuosien aikana.
Tärkeä osa työtä on, että vastaanotetun äänen ja kuvan purku sujuu tehokkaasti ilman virheitä ja kuva ja ääni pysyvät synkronissa.
Käyttäjän asetukset, kuten pikavalintojen kanavat ja ikkunan koko tallennetaan ohjelman päättyessä yksinkertaiseen tekstitiedostoon, josta ne luetaan ohjelmaa jälleen käynnistettäessä.
Seuraavassa on ensin listattu joukko toimintoja, joita voidaan ajatella liitettävän Internet-TV:hen. Tämän jälkeen seuraavat yksityiskohtaisemmat kuvaukset ensisijaisesti toteutettavaksi valituista toiminnoista.
Toiminnot on priorisoitu seuraavalla asteikolla.
Prioriteetti | Kuvaus |
---|---|
1 | Toiminto toteutetaan joka tapauksessa |
2 | Toiminto toteutetaan mikäli aika ja tekniset seikat sallivat |
3 | Toiminto toteutetaan vain, mikäli korkeamman prioriteetin tehtävät on tehty |
Ei toteuteta | Toimintoa ei toteuteta tämän ohjelmatyöprojektin puitteissa |
Toiminto | Prioriteetti | Selitys/Testaus |
---|---|---|
TV-kuvan katselu | 1 | 1) Käynnistä Int-TV 2) Valitse video-ohjelma 3)
Käynnistyykö videokuva? 4) riittävän nopeasti? 5) Onko kuvanlaatu tyydyttävä? 6) Valitse näytöltä joku toinen toiminto, vaikuttaako kuvantoistoon? 7) Ilmaiseeko ohjelma lähettämättömän kanavan? 8) Valitse toinen video-ohjelma 9) Sulkeutuuko vanha kanava hallitusti? 10) Riittävän nopeasti? 11) Käynnistyykö uusi kanava? 12) Riittävän nopeasti? TV:n kuvan katselussa on tärkeintä, että kuvan laatu on hyvä, katseltava ohjelma käynnistyy nopeasti ja kanavan vaihto onnistuu jouhevasti lennosta. Lisäksi ohjelman pitää ilmaista jollakin tapaa, mikäli kanavalta ei lähetystietojen vastaisesti tulekaan ohjelmaa. |
TV-äänen kuuntelu | 1 | 1) Käynnistä Int-TV 2) Valitse audio/video-ohjelma
3) Käynnistyvätkö sekä videokuva, että audiontoisto?
4) samanaikaisesti? 5) Riittävän nopeasti? 6) Onko
äänentoisto ymmärrettävää? 7) Ilmeneekö virheitä
? 8) Ovatko ääni ja kuva tahdistettuja? 9) Esiintyykö
havaittavaa dubbausefektiä? 10) Valitse näytöltä
jokin toinen toiminto, vaikuttaako äänentoistoon? 11)
Valitse toinen audio/video-ohjelma 12) Sulkeutuuko vanha
kanava hallitusti? 13) Käynnistyykö uusi kanava? 14)
Riittävän nopeasti? TV:n äänen kuuntelussa on tärkeintä, että äänen laatu on hyvä, kuunneltava ohjelma käynnistyy nopeasti. Mikäli samanaikaisesti tulee videomateriaalia on näiden yhdessä toistuttava synkronissa samaan tahtiin. Äänen ja kuvan katselua eivät saa muut toiminnot häiritä ja kanavien vaihto tulee onnistua jouhevasti lennosta. |
Kanavan valinta | 1 | Valitaan TV-kanava tällä hetkellä näkyvistä
kanavista 1) Käynnistä Int-TV 2) Avaa kanavavalikko 3) Ilmaantuvatko pysäytyskuvat? 4) kanavatekstit? 5) riittävän nopeasti? 6) Käynnistä ohjelmakanava 7) Kysyykö ohjelma katselutietojasi? 7) Alkaako lähetys? 8) Lopeta kanava ja valitse toinen 9) Muistaako ohjelma katselutietosi? Kanavan valinta voidaan tehdä joko pysäytyskuvien tai kanavatekstien avulla. Näiden tietojen esitysnopeus pitää olla riittävä. Kanavan valitsemisen ja käyttäjän tietojen kysymisen jälkeen ohjelman tulee alkaa. Käyttäjän tiedot kerätään muistiin ohjelman tuleville käyttökerroille. |
Tulevien ohjelmien selaus | 2 | Tiedot TV-ohjelmista, jotka tulevat myöhemmin,
esimerkiksi tänä iltana 1) Käynnistä Int-TV 2) Valitse tulevat ohjelmat 3) Näetkö tulevia ohjelmia? 4) Pystytkö selaamaan eteenpäin, taaksepäin? 5) Onko ohjelmien selaus helppoa? 6) Ymmärrettävää? 7) Lopeta toiminto 8) Jatkuuko ohjelman toiminta normaalisti? Ohjelmakalenterista tulee nähdä vaivattomasti tulevat ohjelmat. Kalenterin käyttö ei saa häiritä ohjelman muuta toimintaa kuten kanavan katselua. |
Lähetyksen lisätiedot | 1 | Selitystekstin näyttö tulevasta ohjelmasta 1) Käynnistä Int-TV 2) Valitse kanavan lisätiedot 3) Avautuvatko lisätiedot? 4) Onko tiedot esitetty ymmärrettävästi? 5) Lopeta toiminto 6) Jatkuuko ohjelman toiminta normaalisti? Ohjelmasta kuin ohjelmasta on valittaessa nähtävä käytettävät lähetystiedot. Lisätietojen näyttäminen ei saa häiritä muun ohjelman toimintaa. |
Lähetyksen taustatiedot (WWW) | 2 | Lähetyksen taustatietojen näyttö
WWW-selaimessa 1) Käynnistä Int-TV 2) Valise kanavan taustatiedot 3) Avautuvatko lisätiedot WWW-selaimeen? 4) Lopeta toiminto 5) Jatkuuko ohjelman toiminta normaalisti? Ohjelmasta on oltava mahdollisuus taustatietojen selaamiseen WWW-selaajalla. Taustatietojen näyttäminen ei saa häiritä muun ohjelman toimintaa. |
Äänenvoimakkuuden säätö | 1 | 1) Käynnistä Int-TV 2) Valitse audio-ohjelma 3)
Käynnistyykö audion toisto? 4) Säädä ääntä
voimakkaammaksi 5) Kuuletko audion voimakkaammin? 6)
Tapahtuiko säädön jälkeen muutoksia? 7) Lopeta kanava
8) Jatkuuko ohjelman toiminta normaalisti? Audio-ohjelman äänenvoimakkuutta on voitava säätää. Se ei saa häiritä muun ohjelman toimintaan. |
Kuvan kirkkauden säätö | 2 | 1) Käynnistä Int-Tv 2) Valitse video-ohjelma 3)
Käynnistyykö videon toisto? 4) Säädä kuvan
kirkkautta 5) Muuttuiko videokuva haluttuun suuntaan? 6)
Tapahtuiko säädön jälkeen muutoksia 7) Lopeta kanava
8) Jatkuuko ohjelman toiminta normaalisti? Video-ohjelman kuvan kirkkautta on voitava säätää. Se ei saa häiritä muun ohjelman toimintaan. |
Kuvan kontrastin säätö | 3 | 1) Käynnistä Int-Tv 2) Valitse video-ohjelma 3)
Käynnistyykö videon toisto? 4) Säädä kuvan
kontrastia 5) Muuttuiko videokuva haluttuun suuntaan? 6)
Tapahtuiko säädön jälkeen muutoksia 7) Lopeta kanava
8) Jatkuuko ohjelman toiminta normaalisti? Video-ohjelman kuvan kontrastia on voitava säätää. Se ei saa häiritä muun ohjelman toimintaan. |
Kuvan värisävyjen säätö | 3 | 1) Käynnistä Int-Tv 2) Valitse video-ohjelma 3)
Käynnistyykö videon toisto? 4) Säädä kuvan
värisävyjä 5) Muuttuiko videokuva haluttuun suuntaan?
6) Tapahtuiko säädön jälkeen muutoksia 7) Lopeta
kanava 8) Jatkuuko ohjelman toiminta normaalisti? Video-ohjelman kuvan värisävyjä on voitava säätää. Se ei saa häiritä muun ohjelman toimintaan. |
Kuvakoon sovitus | 1 | Kuvakoko sovitetaan haluttuun ohjelmaikkunan
kokoon automaattisesti. Nopeuden saamiseksi kuvan
suurennuskerroin on jokin kahden potenssi. Kuvaa
sovitettaessa sen kokoa muutetaan sekä pysty- että
vaakasuunnassa yhtä paljon, jotta kuva ei vääristyisi. 1) Käynnistä Int-Tv 2) Valitse video-ohjelma 3) Käynnistyykö videon toisto? 4)Onko videokuva jouheva? 5) Säädä käsin kuvakokoa suuremmaksi 6) Muuttuko videokuva huonommaksi? 7) Valitse alkuperäinen kuvakoko 8) Säädä käsin kuvakokoa pienemmäksi 9)Muuttuuko videokuva paremmaksi? 10) Lopeta kanava 11) Jatkuuko ohjelman toiminta normaalisti? Videokuvan koko tulisi säätyä automaattisesti optimaaliseen arvoonsa. Tästä seuraa, ettei käsisäädöllä voida säätää kuvanlaatua paremmaksi. Kuvan käsisäätö ei saa häiritä ohjelman muuta toimintaa. |
Ruudun kokoinen näyttö | 1 | Ohjelma täyttää haluttaessa koko kuvaruudun 1) Käynnistä Int-TV 2) Valitse video-ohjelma 3) Käynnistyykö videon toisto? 4) Säädä kuvakoko maksimiin 5) Onko videokuva katseltavaa? 6) Lopeta kanava 7) Jatkuuko ohjelman toiminta normaalisti? Videokuva tulisi säätyä ruudunkokoiseksi, ohjelman toiminnan siitä häiriintymättä. |
Vastaanoton nopeuden valinta | 3 | Käyttäjä voi valita haluamansa
kuvanpäivitysnopeuden (kuvaa sekunnissa) 1) Käynnistä Int-TV 2) Valitse video-ohjelma 3) Käynnistyykö videon toisto? 4) Säädä virkistystaajuutta pienemmäksi 5) Muuttuko videokuva huonommaksi? 6) Säädä virkistystaajuutta alkuperäisasetusta suuremmaksi 7) Muuttuko videokuva paremmaksi? 8) Lopeta kanava 9) Jatkuuko ohjelman toiminta normaalisti? Videon toisto jakaantuu ruudun piirtoon ja kuvavirran lukemiseen. Normaalisti nämä säätyvät automaattisesti oikeaan suhteeseen, mutta mikäli kuvavirran lukemiseen käytetään enemmän aikaa, niin video-kuvan päivitykseen jää vähemmän ja kuva heikkenee. Mikäli kuvanpiirtoon käytetään enemmän aikaa, niin puskuriin ei välttämättä jää mitään esitettävää. Ts. virkistystaajuuden säätö suuntaan tai toiseen ei saa parantaa kuvan laatua. |
Vastaanoton laadun valinta | 3 | Käyttäjä voi valita, kuinka monta prosenttia
lähetyksestä on kadottava matkalla, ennen kuin yhteys
katkaistaan (esim. 50%) 1) Käynnistä Int-TV 2) Valitse video-ohjelma 3) Käynnistyykö videon toisto? 4) Säädä katoamisprosentti 1%:iin. 5) Katkeaako ohjelmayhteys? 6) Lopeta kanava 7) Jatkuuko ohjelman toiminta normaalisti? Kadotettujen audio/video-pakettien määrän ollessa katoamisprosentin suuruinen ohjelman esitys tulee katketa. |
Pysäytyskuva | 3 | Käyttäjä voi pysäyttää kuvan ja jatkaa
katselua. Kuvan ollessa pysähtyneenä vastaanotettava
tieto hävitetään, ja ohjelma jatkuu siitä, missä
kohti lähetys on menossa. 1) Käynnistä Int-TV 2) Valitse video-ohjelma 3) Käynnistyykö videon toisto? 4) Valitse pysäytyskuva 5) Onko kuvan laatu hyvä? 6) Vapauta videotoisto 7) Jatkuuko ohjelman toiminta normaalisti? 8) Lopeta kanava 8) Jatkuuko ohjelman toiminta normaalisti? Videokuvasta voidaan napata pysäytyskuvia, ja jatkaa ohjelmaa valittaessa. Tämä ei saa häiritä ohjelman muuta toimintaa. |
Usean lähetyksen katselu yhtaikaa | Ei toteuteta | Käyttäjä voi seurata usean kanavan kuvavirtaa yhtaikaisesti - ääni tulee vain yhdeltä kanavalta. |
Vastaanoton puskurointi | 2 | Kuvan "nytkähtelyn" ja äänen
katkeilun välttämiseksi vastaanotettu lähetys
puskuroidaan, jolloin voidaan varautua lyhyisiin
yhteyskatkoksiin. 1) Käynnistä Int-TV 2) Valitse audio/video-ohjelma 3) Käynnistyykö videon toisto? 4)Käynnistyykö audion toisto? 5) Säädä puskurin koko maksimiin 6) Muuttuko videokuva? 7) audion laatu? 8) Lopeta kanava 9) Jatkuuko ohjelman toiminta normaalisti Videon ja audion puskurointia voidaan muuttaa käsin, tämän pitäisi parantaa kuvan ja äänen laatua lähinnä ohjelman käynnistysnopeuden kustannuksella. Puskurin pituuden säätö ei saa häiritä muun ohjelman toimintaa. |
Useiden kuvaformaattien vastaanotto | 2 | Aluksi pyritään yhdellä tavoin koodatun kuvan
vastaanottoon (H.261), myöhemmin voidaan toteuttaa myös
useampien koodaustapojen vastaanotto (MPEG 1-3) 1) Käynnistä Int-TV 2) Valitse video-ohjelma, jonka lähetystietojen mukaan on tuetussa formaatissa ... vrt. TV-kuvan katselu aiemmin tässä kpl:ssa. Ohjelman tulisi toimia erilaisilla kuvaformaateilla. |
Useiden ääniformaattien vastaanotto | 1 | Työssä pyritään mahdollisimman monella tavoin
koodatun äänen vastaanottoon, sillä ei ole olemassa
sellaista yhtä ainoaa koodaustapaa, joka olisi yleisesti
käytössä. 1) Käynnistä Int-TV 2) Valitse audio/video-ohjelma, jonka lähetystietojen mukaan on tuetussa formaatissa ... vrt. TV-äänen kuuntelu aiemmin tässä kpl:ssa. Ohjelman tulisi toimia erilaisilla ääniformaateilla. |
Videonauhuritoiminnot | Ei toteuteta | Lähetyksen nauhoitus ja katselu myöhemmin |
TV-ohjelman lähetys | Ei toteuteta | TV-kuvan ja äänen lähetys |
Hiiriohjaus | 1 | Käyttäjä voi ohjata Internet-TV:tä
tietokoneen hiirellä 1) Käynnistä Int-TV 2) Kokeile ohjelman toiminnot läpi hiirellä (valikot, painikkeet, säätimet) 3) Valitse audio/video-ohjelma, jotta saat kaikki toiminnot kokeiltua 4) Toimivatko kaikki moitteetta? 5) Onko jäänyt joitain toimintoja, joita ei voi hiirellä ohjata? Ohjelman tärkeimmät ja mielellään mahdollisimman moni toiminto tulisi toimia myös pelkällä hiiri-ohjauksella, koska osa käyttäjistä pitää hiiriohjauksesta. |
Näppäimistöohjaus | 1 | Käyttäjä voi ohjata Internet-TV:tä
tietokoneen näppäimistöltä 1) Käynnistä Int-TV 2) Kokeile ohjelman toiminnot läpi näppäimillä (valikot, painikkeet, säätimet, kentät) 3) Valitse audio/video-ohjelma, jotta saat kaikki toiminnot kokeiltua 4) Toimivatko kaikki moitteetta? 5) Onko jäänyt joitain toimintoja, joita ei voi näppäimillä ohjata? Ohjelman tärkeimmät ja mielellään mahdollisimman moni toiminto tulisi toimia myös pelkällä näppäimistö-ohjauksella, koska osa käyttäjistä pitää näppäimistö-ohjausta parempana. |
Kaukosäädinohjaus | Ei toteuteta | Käyttäjä voi ohjata Internet-TV:tä tietokoneeseen liitetyllä kaukosäätimellä |
Vastaanottoruudulla näkyy itse vastaanotettava TV-ohjelma. Lähetys puretaan kuvaruutuun, joka on mahdollisesti kooltaan säädettävissä vallitsevat resurssit huomioon ottaen sopivaksi käyttöliittymäryhmän ehdotusten mukaan, yksinkertaisimmillaan ikkunan reunoista vetämällä. Kuvasuhde (pystykoko : vaakakoko) pysyy muuttumattomana kuvakokoa muutettaessa, jottei kuva vääristyisi.
Kuten perinteisessä televisiossa, käyttäjä voi vastaanottoruudulta säätää äänenvoimakkuutta. Kuvan laadun säätimet, kuten kontrastin, valoisuuden ja värikylläisyyden säätimet, eivät ole työssä keskeisiä. Käyttöliittymää suunniteltaessa nämä on kuitenkin syytä ottaa huomioon. Ne voidaan resurssien ja laskentakapasiteetin näin salliessa toteuttaa työn loppuvaiheessa. - On huomattava, että itse monitorissa usein on jo vastaavat säätimet, jotka tosin vaikuttavat sitten myös muiden ohjelmien näyttöön.
Käyttäjän on myös kyettävä vaihtamaan katseltavaa kanavaa vastaanottoruudulta käsin melko nopeasti. Käyttöliittymäryhmä antanee tähän oman ehdotuksensa.
Säätöjä ja valintoja varten ruudussa on sopivat säätimet helposti saatavilla, mieluiten siten, että käyttäjällä on koko ajan näkyvissä ainakin jokin painike, josta pääsee eteenpäin.
TV-vastaanotto vaatii seuraavat tiedot: kanavan kontrolli-informaatio sekä TV-kuva, ääni ja synkronointitiedot. Näitä tietoja on käsitelty luvussa 3. Äänen ja kuvan synkronointia kuvataan luvussa 4.6.1.
Kanavatietojen mukana seuraa joitain lisätietoja, kuten WWW-osoitteita, joista voidaan näyttää ohjelmaan liittyviä lisätietoja.
Lisäksi käyttäjä antaa ohjelmalle syötteitä ohjaamalla sitä näppäimistöltä tai hiireltä.
Luonnollisesti TV-kuva projisoidaan näyttöruudulle ja ääni lähetetään kaiuttimiin.
Kanavaan liittyvä tekstimuotoinen informaatio näytetään käyttäjälle erillisessä TV-ruudun reunalla olevassa näyttöruudussa. Käyttäjä voi hankkia kanavan tarjonnasta lisätietoja seuraamalla teksti-informaation mukana tulevia WWW-linkkejä. Tällöin kutsutaan erillistä WWW-selainta (kuten Netscape), jolle haluttu WWW-osoite annetaan parametrina.
Kanavanvalinnasta käyttöliittymäryhmä tekee oman ehdotuksensa. Periaatteessa on useita tapoja valita kanava:
Näistä toteutetaan ensisijaisesti yhdistetty teksti- ja kuvamuotoinen lista (kohdat 1 ja 2), jossa on pysäytyskuvat kanavien tarjonnasta ja kanavan otsikko kuvan alla. Mikäli kanavasta ei juuri sillä hetkellä saada kuvaa, näytetään kanavan kohdalla tyhjä ruutu taikka sopiva symboli.
Lisäksi on teknisesti mahdollista toteuttaa myöhemmin tulevien ohjelmien luettelo, esim. lista tämän illan ohjelmatarjonnasta. Tämä ei ole kuitenkaan tässä ohjelmatyössä keskeisellä sijalla.
Kanavan valitsemistapa on yksi TV:n käytettävyyteen olennaisesti vaikuttavista tekijöistä, ja siihen kiinnitetään erityistä huomiota.
Kanavanvalinnan tietotarve riippuu olennaisesti valintatavasta. Ylläolleeseen listaan viitaten tarvitaan:
Ohjelman syötteet ovat multicast-tietovirta verkosta (luvuissa 3.2. ja 3.3. käsitellyt kuva ja ääni) sekä käyttäjän ohjauskomennot.
Kanavainformaatio saadaan verkosta tiettyä vakiokanavaa kuuntelemalla. Kanavainformaatio sisältää tiedot kustakin lähetyksestä, tärkeimpänä lähetyksen kuvaus sekä lähetyksen parametrit, joiden avulla lähetys voidaan vastaanottaa (ip-osoite, porttinumero ja koodaustapa, kaikki tiedot sekä äänelle että kuvalle erikseen).
Järjestelmän tärkeimmät ulostulot ovat synkronissa olevat kuva- ja äänivirrat.
Ulostuloja ovat myös kanavaan liittyvät lisätiedot, jotka esitetään käyttäjän niin halutessa sopivassa muodossa. Myös WWW-selaimen käynnistäminen ja kanavan taustatietojen hakeminen voidaan katsoa ulostuloihin liittyväksi toiminnoksi.
Tässä ohjelmassa ulostulojen esteettinen laatu on varsin merkittävä seikka, johon kiinnitetään erityistä huomiota.
Tärkeä osa laatua on kuvan ja äänen synkronointi. Synkronointi toteutetaan RTP v2-protokollan mukaisesti, jonka päällä itse kuva- ja ääni-informaatio kulkee.
Toinen tärkeä ominaisuus on se, ettei vastaanotto saisi nytkähdellä taikka jopa katkeilla. Tähän voidaan vaikuttaa puskuroimalla sisääntuleva tietovirta sopivasti, jolloin vastaanottoa voidaan jatkaa laadun heikentymättä. Puskurointi suoritetaan sisääntulevalle pakatulle tietovirralle, jotta muistitilaa säästyisi ja saataisiin ajallisesti mahdollisimman suuri puskuri.
Vastaanotettavan lähetyksen, erityisesti kuvan, laatu vaikuttaa puskurin kokoon. Työn tavoitteena olevan H.261-muotoisen TV-lähetyksen viemä tiedonsiirtokapasiteetti on p * 64 kbps sekunnissa. Jos oletetaan, että p=2 ja kuvan resoluutio 176x144, tarvittu tiedonsiirtokapasiteetti on 128 bittiä sekunnissa, eli 5 sekunnin kuvapuskuri vaatisi 80 kilotavua.
Vaatimattoman MPEG-1-tyyppisen vastaanoton (resoluutio 176x144) tiedonsiirtokapasiteetin tarve sen sijaan on jo 1,5 Mbps. Tällöin 5 sekunnin puskuri vaatisi muistia jo lähes 1 megatavun verran. Haluttaessa TV- tasoista kuvaa on käytettävä koodausstandardia MPEG-2, joka vaatii kapasiteettia jo 4-9 Mbps, eli 5 sekunnin puskuri vaatisi muistia 2,5 - 5,6 megatavua. Tässä aletaan jo liikkua puskurin koon ylärajoilla.
Jotta käyttöliittymän helppokäyttöisyys- ja yksinkertaisuusvaatimukset voivat täysin toteutua, on järjestelmän tehtävä tiettyjä valintoja ja arvioita käyttäjän puolesta.
Seuraavassa kuvassa on hyvin karkealla tasolla kuvattu
järjestelmän tietovirtoja.
Jokaiseen mediavirtaan (esim. ääni tai kuva) liittyy kaksi erillistä tietovirtaa: RTP ja RTCP. RTP (Real-time Transport Protocol) kuljettaa itse mediavirran lähettäjältä kaikille vastaanottajille. Tämä kanava on yksisuuntainen. Toisen tietovirran muodostaa RTCP (RTP Control Protocol). Tämä on kaksisuuntainen tietovirta, jonka avulla hallitaan mediavirtaa. Se sisältää raportteja niin lähettäjältä kuin kaikilta vastaanottajiltakin, joissa kerrotaan mm. hukkuneiden pakettien määrästä, verkkoviiveistä ja kanavalle liittyneistä vastaanottajista.
RTP ja RTCP tietovirrat muodostavat aina porttiparin: RTP käyttää parillista porttinumeroa ja RTCP yhtä suurempaa porttinumeroa (siis pariton). Kun vastaanotetaan yhtä aikaa ääntä ja kuvaa, on siis auki yhteensä vähintään neljä porttia: RTP ja RTCP kanavat sekä äänelle että kuvalle. Jos samaan aikaan vielä halutaan seurata kanavainformaatiota, on auki vielä yksi portti.
Seuraavassa on kuvattu esimerkkinä osa RTP kanavan protokollakerroksista vastaanotettaessa H.261 koodattua videokuvaa käyttäen TCP/IP protokollaa RTP:n alla.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | ... | | IP-header | +---------------------------------------------------------------+ -- | source port | destination port | UDP +-------------------------------+-------------------------------|header | length | checksum | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -- |V=2|P|X| CC |M| PT | sequence number | \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | timestamp | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ RTP | synchronization source (SSRC) identifier | header +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | | contributing source (CSRC) identifiers | | | .... | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - |SBIT |EBIT |I|V| GOBN | MBAP | QUANT | HMVD | VMVD |H.261 header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | H.261 stream | | .... |
Ylläolevassa kuvassa RTP-otsakkeen PT (Payload Type) kenttä kertoo, mitä RTP-paketin hyötykuorma sisältää. Sequence number on RTP-pakettien juokseva järjestysnumero, jonka perusteella vastaanottaja havaitsee hukkuneet paketit. Timestamp on monotonisesti kasvava kello, joka kertoo ensimmäisen tavun näytteenottohetken RTP-paketin hyötykuormassa. Kellon taajuus riippuu siirrettävästä protokollasta. Esim. H.261:n tapauksessa se on 90000 Hz. Tälläiset protokollakohtaiset yksityiskohdat on määritelty ns. RTP-profiileissa (RFC 1890). H.261:n RTP-profiili on märitelty dokumentissa
ftp://ds.internic.net/internet-drafts/draft-ietf-avt-h261-03.txt.
Alla hahmotelma siitä, millaisia osia käyttöliittymään ainakin tulee. Käyttöliittymäryhmältä saamme myöhemmin paljon viimeistellympiä ja harkitumpia ehdotuksia, joten tässä vaiheessa riittävät karkeat hahmotelmat vaadittavista toiminnoista.
Vastaanottoikkunan olennaiset osat ovat siis
Kyseessä on siis vasta alustava hahmotelma, ja käyttöliittymäryhmältä saamme hyviä ideoita lopulliseen toteutukseen.
Kun ohjelma käynnistetään, tulee ensimmäisenä näkyviin kanavavalikko. Kanavavalikosta pääsee kanavan valitsemalla vastaanottoruutuun ja vastaanottoruudusta takaisin kanavavalikkoon.
Kanavavalikon päätarkoitus on luonnollisesti valita katseltava kanava. Helppokäyttöisin on pienikokoisia pysäytyskuvia sisältävä ruudukko, josta yllä onkin kuva. Pysäytyskuvavalikon rinnalle toteutetaan myös tekstimuotoinen listavalikko.
Ohjelman tärkeimpänä suorituskykyvaateena on TV-lähetyksen jouheva seuranta siten, että ääni ja kuva ovat synkronissa eikä vastaanotto nyi eikä katkeile. Tämä vaatii puskurointia mahdollisten virhetilanteiden korjauksen varalta. Alkuvaiheessa puskurointia ei ole tarkoitus toteutttaa.
Olennaista on myöskin, että käyttöliittymä toimii joustavasti ja nopeasti. Pienetkin viiveet käyttöliittymässä häiritsevät käyttäjää nopeasti.
Vaikkakaan tämäntyyppisessä ohjelmassa ei ole suurena uhkana käyttäjän tietojen katoaminen, ei ohjelman ei ole syytä kaatua missään tilanteessa, erityisesti ei kesken lähetyksen vastaanoton, sillä käyttäjä ei kauan tällaista televisiota katsele.
Osa lähetettävistä tietopaketeista häviää matkalla. Tämän seurauksena kuva päivittyy vain osittain.
Lähetyksen häviämiseen varaudutaan siten, että kun hävikki on liian suurta ja sitä jatkuu esimerkiksi yli 10 sekuntia, vastaanotto katkaistaan ja käyttäjälle annetaan ilmoitus sopivalla kuvasymbolilla ja tekstillä.
Osa lähetetyistä tietopaketeista muuntuu matkalla. Tämän seurauksena kuvaan tulee virheitä. Virheet häviävät kuvasta hetken kuluttua lähetyksen jatkuessa. Virheelliseen kohtaan tulee uutta - toivon mukaan oikeaa - kuvainformaatiota.
Virheellisen tiedon vastaanottoon voitaisiin varautua esimerkiksi laskemalla tarkistussummia. Käytännössä tämä laskisi suorituskykyä, joten tässä työssä virheellisen tiedon vastaanottoon ei varauduta.
Tietopakettien vastaanotto loppuu joko
Koko lähetyksen häviämiseen reagoidaan siten, että kun lähetystä ei ole vastaanotettu esimerkiksi yli 10 sekuntiin, vastaanotto katkaistaan ja käyttäjälle annetaan ilmoitus sopivalla kuvasymbolilla ja tekstillä.
Kuten edellä mainittu, häiriön toteamisen jälkeen odotetaan hieman häiriön korjaantumista. Jos häiriö ei korjaannu, vastaanotto katkaistaan ja käyttäjälle annetaan ilmoitus sopivalla kuvasymbolilla ja tekstillä. Nämä esitetään varsinaisen kuvaruudun paikalla. Kuvasymbolin on oltava sellainen, että siitä ymmärtää lähetyksen katkenneen. Tekstillä voidaan selventää syytä vastaanoton katkaisuun, esimerkiksi "Yhteys on huonotasoinen" taikka "Yhteys on katkennut".
Käyttäjän loogisia toimenpiteitä vastaanoton katkettua ovat:
Nämä vaihtoehdot esitetään käyttäjälle painonappien muodossa.
Osa Internet-TV-kanavista on sellaisia, joilta ei juuri nyt tule ohjelmaa, mutta on luvassa myöhemmin. Kanavavalikon tehtävänä on huolehtia, ettei käyttäjä ei valitse katseltavaksi sellaista kanavaa, jolta ei pitäisikään tulla mitään ohjelmaa.
On myös mahdollista, että TV-lähettäjä on ilmoittanut, että hänen kanavaltaan tulee ohjelmaa, mutta jostain syystä se katoaa matkalla eikä saavu vastaanottajalle asti. Tällöin toimitaan kuten siinä yllä mainitussa tapauksessa "Koko lähetys häviää".
Kuten edellä mainittu, ohjelman tulee olla niin helppokäyttöinen, että sitä osaa kuka lähes tahansa käyttää. Tähän antaa oman panoksensa käyttöliittymäseminaarin työryhmä. Vastuu on kuitenkin ohjelmatyöryhmällä.
Toteutettavan koodin osalta pyritään luomaan siirrettävää koodia, joka voisi toimia myös useammassa laiteympäristössä, esim. Windowsissa. Tavoitteena on myös mahdollisimman selkeä ja ylläpidettävä ohjelmakoodi. Erityisesti ohjelmakoodin kommentoinnilla pyritään ylläpidon helpottamiseen. Valmiiden komponenttien rajapinnat pyritään kuvaamaan hyvin, mikäli tälläistä kuvausta ei ole olemassa.
SDR VAT VIC RAT NT WB IVS NEVOT MMCC IMM IP Multicast Mrouted
SunOS 4.x 2.2a23 4.0b2 2.8 2.6a14 1.5a22 1.60 3.5 3.31 55a 3.4 3.5 3.8 SunOS 5.4 2.2a23 4.0b2 2.8 2.6a14 1.5a23 1.60 3.5 3.31 55a 3.4 3.5 3.8 SunOS 5.5 2.2a23 4.0b2 2.8 2.6a14 1.5a23 1.60 3.5 3.31 55a 3.4 3.5 3.8 SunOS 5.5.1 3.5 3.8 SGI 2.2a23 4.0b1 2.8 2.6a14 1.5a22 1.60 3.5 3.30 55a 3.4 3.5 3.8 DEC Ultrix n/a below 2.8 n/a n/a 1.59 3.5 n/a 55a 3.4 3.3 n/a DEC OSF/1 2.2a19 4.0b1 2.8 n/a n/a 1.59 3.5 n/a 55a 3.4 3.5 3.8 HP 2.2a23 4.0b1 2.8 n/a 1.5a22 1.59 3.5 3.30 55a 3.4 3.5 3.8 FreeBSD 2.2a23 4.0b1 2.8 n/a n/a 1.59 3.5 n/a n/a n/a 3.5 3.8 NetBSD 2.2a23 4.0b1 2.8 n/a n/a 1.59 3.5 n/a n/a 3.4 3.5 3.8 Linux 2.2a23 4.0a2 2.7a32 n/a 1.5a19 1.59 3.5 n/a n/a n/a 3.5 3.81 NeXT 2.2a9 n/a 2.7b1 n/a n/a n/a n/a n/a n/a n/a n/a n/a RS6000/AIX 2.2a23 4.0a8 n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a Windows/95 2.2a12 4.0b2 2.7b3 2.6a5 1.5a20 n/a n/a n/a n/a n/a n/a n/a Windows/NT 2.2a12 4.0b2 2.7b3 2.6a5 1.5a20 n/a n/a n/a n/a n/a n/a n/a Macintosh n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a n/a Source n/a 4.0b2 2.8 n/a n/a n/a 3.5 3.31 n/a 3.3 n/a 3.8
Taulukko on peräisin osoitteesta http://ugwww.ucs.ed.ac.uk/mice/archive/.