Tik-76.115 Toiminnallinen määrittely

Internet-televisio

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 $


Sisällysluettelo

1. Johdanto
2. Yleiskuvaus
3. Tiedot ja tietokanta
4. Toiminnot
5. Ulkoiset liittymät
6. Muut ominaisuudet


1. Johdanto

Internet-TV on helppokäyttöinen asiakasohjelma, jolla voidaan seurata Internet-verkossa lähetettyä audio- ja videomuotoista IP-multicast-liikennettä.

1.1. Tarve

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.

1.2. Käyttäjäryhmä

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.

1.3. Vastaanotettavat ohjelmat

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.

1.4. Dokumentin sisältö

Tämä määritysdokumentti koostuu seuraavista osista:

  1. Johdanto
  2. Yleiskuvaus: Loppukäyttäjäryhmä, käyttöympäristö, toteutustapa (ohjelmointikielet, valmiin koodin osat)
  3. Tiedot ja tietokanta: Vastaanotossa vaadittavat tietovuot (kuva, ääni), kanavatiedot, suorituskyky
  4. Toiminnot: Lista mahdollisista toiminnoista, TV-vastaanotto, kanavavalikko, vastaanoton purku
  5. Ulkoiset liittymät: Käyttöliittymä
  6. Muut ominaisuudet: Suorituskyky, virhetilanteet, käytettävyys, siirrettävyys ja ylläpidettävyys

Käytetyt termit on lisäksi selitetty erillisessä Termistö-dokumentissa.

2. Yleiskuvaus

2.1. Tuotteen loppukäyttäjät

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.

2.1.1. Satunnainen käyttäjä

2.1.2 Tavallinen käyttäjä

2.1.3 Taitava käyttäjä

2.1.4 Guru

2.2. Käyttöympäristö

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.

2.3. Toteutus

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.

2.3.1. Käytettävä valmis koodi

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ä
  • Kirjasto GSM 06.10 standardin mukaiseen äänen koodaukseen ja purkuun
  • Helppokäyttöinen rajapinta
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ä
  • kuvan koodaus ja purku. Tukee formaatteja: H261*,JPEG
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ä
  • kuvan koodaus ja purku. Tukee kuvaformaattia: H261
  • Äänen koodaus ja purku. Tukee ääniformaatteja: PCM,ADPCM ja VADPCM
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ä
  • SAP ja SDP -muotoisten kanavatietojen purku
  • Multicast-lähetyslistalle liittyminen
  • Uusien lähetysten perustaminen ilmoituskanavalle

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.

2.3.2. Vic:n pääluokat

Lisäksi mukana on kymmenkunta muuta luokkaa jotka hoitavat vain yhtä tai kahta tehtävää.

2.3.3. Vat:n pääluokat

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:

2.3.4. Versionhallinta

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.

3. Tiedot ja tietokanta

3.1. Kanavatiedot

Kanavatiedot saadaan esille käytämällä sdr:n (session directory) ohjelman määrittelemien protokollien (SAP, SDP) avulla. Protokollat ovat selitetty tarkemiin alla.

3.1.1 SAP (Session Announcement Protocol)

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.

3.1.1.1 SAP:n paketin muoto

 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

3.1.2 SDP (Session Description Protocol)

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

3.2. Kuvavirta

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).

http://www.mpeg.org/

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.

http://rice.ecs.soton.ac.uk/peter/h261/h261.html

Työssä on tarkoitus käsitellä H.261-lähetyksiä. Myöhemmässä vaiheessa voidaan toteuttaa MPEG-lähetysten käsittely.

3.3. Äänivirta

Ää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:

Pyrimme toteuttamaan mahdollisimman monen äänenkoodaustavan vastaanoton.

3.4. Suorituskyky

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.

3.5. Asetusten tallennus

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ä.

4. Toiminnot

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.

4.1. Lista mahdollisista 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ä

4.2. TV-vastaanotto

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-vastaanoton vaatimat syötteet

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ä.

TV-vastaanoton ulostulot

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.

4.3. Kanavan valinta

Kanavanvalinnasta käyttöliittymäryhmä tekee oman ehdotuksensa. Periaatteessa on useita tapoja valita kanava:

  1. Tekstimuotoisesta listasta tällä hetkellä tulevia ohjelmia. Listalla näkyy ohjelman nimi, kesto, lähettäjä jne. Huom! Vaatii lukutaitoa!
  2. Kuvamuotoisesta listasta tällä hetkellä tulevia ohjelmia. Vastaanotin tutkii tulevia kanavia ja näyttää jokaisesta pienen pysäytyskuvan taikka liikkuvan otoksen näyttöruudulla.
  3. Etukäteisasetuksista (joita perinteisessä televisiovastaanottimessa vastaavat numeroidut kanavat). Näitä voivat olla esim. viimeksi katsotut kanavat, useimmin katsotut kanavat, taikka käyttäjän määrittelemät kanavat. Nimenomaan tästä toivomme käyttöliittymäryhmän ehdotuksia.
  4. Seuraava/edellinen kanava. Siirrytään tulevien ohjelmien listalla joko eteen- tai taaksepäin, taikka etukäteen määritellyissä kanavissa ylös/alaspäin. Vaihtoehtoisesti voidaan siirtyä myös viimeksi katseltuun kanavaan.

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

Kanavanvalinnan tietotarve riippuu olennaisesti valintatavasta. Ylläolleeseen listaan viitaten tarvitaan:

  1. Kanavien otsikkotiedot (tulevat erilliseltä kontrollikanavalta), kuten ohjelman nimi, alkamisaika ja kesto, lähettäjä, jotain teknisiä tietoja jne.
  2. Kanavien otsikkotiedot ja lisäksi kuvavirtaa.
  3. Tietokantaan tallennetut viimeksi katsotut kanavat, useimmin katsotut kanavat, taikka käyttäjän määrittelemät kanavat.
  4. Joko tietokantaan tallennetut kanavatiedot taikka yllämainitusta IP-osoitteesta tulevat kanavien otsikkotiedot.

4.4. Lähetyksen vastaanotto ja purku

4.4.1. Vastaanoton vaatimat syötteet

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).

4.4.2. Vastaanoton ulostulot

4.4.2.1. Ulostulomuodot

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.

4.4.2.2. Ulostulojen laatuominaisuudet

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.

4.5. Järjestelmältä vaadittava älykkyys

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.

Kanavavalikko

Vastaanoton laadun seuranta

Kanavainformaation parsiminen

4.6. Osien linkit toisiinsa

Seuraavassa kuvassa on hyvin karkealla tasolla kuvattu järjestelmän tietovirtoja.

4.6.1 Protokollakerroksista

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.

5. Ulkoiset liittymät

5.1. Hahmotelma käyttöliittymästä

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.

Vastaanottoikkuna

Kuva 1

Vastaanottoikkunan olennaiset osat ovat siis

Kyseessä on siis vasta alustava hahmotelma, ja käyttöliittymäryhmältä saamme hyviä ideoita lopulliseen toteutukseen.

Kanavavalikko

Kun ohjelma käynnistetään, tulee ensimmäisenä näkyviin kanavavalikko. Kanavavalikosta pääsee kanavan valitsemalla vastaanottoruutuun ja vastaanottoruudusta takaisin kanavavalikkoon.

Kuva 2

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.

6. Muut ominaisuudet

6.1. Suorituskyky

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.

6.2. Virhetilanteet

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.

6.2.1. Yhteyshäiriöt Lähetyksen siirrossa vastaanottajalle voi tapahtua seuraavanlaisia häiriöitä.

Osa lähetyksestä häviää

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ä.

Vastaanotettu tieto on virheellistä

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.

Koko lähetys häviää

Tietopakettien vastaanotto loppuu joko

  1. yhteyden katkeamisen vuoksi taikka
  2. lähetyksen loputtua (mikä itse asiassa ei välttämättä ole virhetilanne, vaan lähetys loppuu, koska lähettäjä haluaa lopettaa ohjelmansa)

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ä.

6.2.2. Häiriöilmoitukset käyttäjälle

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:

  1. Odottaa ja yrittää vastaanottoa uudelleen
  2. Valita uusi kanava
  3. Poistua ohjelmasta

Nämä vaihtoehdot esitetään käyttäjälle painonappien muodossa.

6.2.3. "Tyhjät" kanavat

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ää".

6.3. Käytettävyys

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ä.

6.4. Siirrettävyys ja ylläpidettävyys

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.

Taulukko olemassaolevista ohjelmaversioista eri käyttöjärjestelmiin

            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/.