PROGRAMMERING AV INTERAKTIV VIDEO
Espen S. Ore
Siden våren 1989 har undertegnede samarbeidet med forsker Signe Marie
Sanne ved Senteret om utviklingen av interaktive videosystemer for
språkundervisning på universitetsnivå. Tidligere har vi ved
Senteret også arbeidet med koblinger mellom referansedatabaser og
videoplater med stillbilder. I denne artikkelen vil jeg gjøre rede for
erfaringer med enkelte programmeringsverktøy og maskinkonfigurasjoner.
En arbeidsstasjon for interaktiv video består av en videoplatespiller og
en datamaskin som er koblet sammen med en seriekabel og skjerm(er) til visning
av video og datatekst og -grafikk. (Det finnes også andre
løsninger, f.eks. strekkodeleser og videospiller, men her har Senteret
liten erfaring, og de vil ikke bli omtalt i denne artikkelen.) Fra datamaskinen
sendes kommandoer til videoplatespilleren over seriekabelen. Kommandoene sendes
som klartekst (ASCII), og kommandosettene er forskjellige for de forskjellige
spillerne.
ÉNSKJERMS- ELLER TOSKJERMSLØSNING?
Det skjelnes gjerne mellom énskjerms- og toskjermsløsninger. I
toskjermsløsningene er det én skjerm (monitor) for videobildene
og én for datatekst og -grafikk. Dette er som regel de rimeligste
løsningene, fordi man kan bruke vanlig videomonitor og dataskjerm.
Énskjermsløsningene kan igjen deles i to: de som legger
datagrafikken ut på et videobilde og de som digitaliserer videobildet inn
på dataskjermbildet. Dette siste er som regel dyrest, men det gir best
kvalitet. Velger man en énskjermsløsning trenger man ekstrautstyr
(utvidelseskort) til datamaskinen som blander video- og datasignalet og
synkroniserer disse.
Hvorvidt det er best med én eller to skjermer, er i stor grad avhengig
av hva man skal bruke det hele til. Det er likevel vår erfaring at
spesielt i undervisning virker to skjermer ofte forvirrende. Enten vil brukeren
konsentrere seg om videobildet eller om den skjermen som inneholder signalene
fra datamaskinen. Det er imidlertid situasjoner der det er ønskelig med
to skjermer.
Bildet på skjermen dannes ved at en elektronstråle sveiper over den
linje for linje. Et vanlig video/fjernsynsbilde er satt sammen av to
halvbilder. Det ene består av skjermlinjene 1, 3, 5, 7 osv., det andre av
linjene 2, 4, 6 osv. De to halvbildene vises etter hverandre slik at ett helt
bilde blir vist hvert 25dels sekund. Dette virker vanligvis utmerket, men hvis
man legger datagrafikk ut på et slikt bilde, kan det oppstå
problemer. Dersom datamaskinen tegner en vannrett strek som er akkurat
én skjermlinje bred, vil den bare være med på halvparten av
halvbildene, og vi vil se tydelig flimring på skjermen. Dette er spesielt
merkbart hvis man bruker en Macintosh, siden det aktive skjermvinduet på
denne maskinen har åtte parallelle vannrette streker øverst. Det
må understrekes at dette problemet bare oppstår der man legger
datagrafikken ut på et (vanlig) videobilde. Velger man en løsning
der videobildet hentes inn på dataskjermen (jfr. ovenfor), er det ingen
problemer.
HVILKEN PLATESPILLER TRENGER MAN?
Det brukes idag tre forskjellige fjernsynsstandarder. Det er to av disse, PAL
(Europa) og NTSC (Nordamerika/Japan) som det er mest aktuelt å ta hensyn
til. En overvekt av de kommersielt tilgjengelige videoplatene er laget i
NTSC-standard. De fleste videoplatespillerne har modeller som er laget enten
for PAL eller NTSC, men det har etterhvert kommet på markedet spillere
som kan ta begge standarder. Her må man også tenke på resten
av utstyret som skal brukes. Et vanlig fjernsyn innkjøpt i Norge kan
være en rimelig videomonitor, men det vil som regel ikke kunne vise NTSC.
Enkelte av utvidelseskortene til datamaskinen som må brukes i en
énskjermsløsning, er også laget slik at de enten tar NTSC
eller PAL.
Å SKAFFE SEG PLATER
Idealet er for mange å presse sin egen plate slik at materialet er
spesialtilpasset den applikasjonen man ønsker å lage. Dette kan
bli et stort prosjekt der omkostningene ved selve pressingen utgjør en
liten del av totalkostnadene. I tillegg kommer behovet for
fotografi/film/videokompetanse, eventuelle utgifter til skuespillere,
redigering osv. Mange velger derfor gjenbruk (repurposing) av eksisterende
plater.
Hvis man kjøper kommersielt tilgjengelige plater, må man, bortsett
fra spørsmålet om NTSC eller PAL standard, også være
klar over at de fleste tilgjengelige filmplater er i CLV-format. (CLV =
Constant Linear Velocity) Dette formatet tillater produsenten å legge
flere bilder (dvs. lengre spilletid) inn på hver plateside. Imidlertid er
det stort sett uegnet til interaktiv video siden det normalt ikke tillater full
kontroll over platen. Til bruk i interaktiv video må platen være i
CAV-format (Constant Angular Velocity).
HVORLEDES KOMME I GANG?
En første, nødvendig forutsetning for interaktiv video er at man
har kontakt mellom datamaskinen og videospilleren slik at det er mulig å
sende kommandoer til spilleren. Dette er ikke alltid like enkelt. RS232C er
sannsynligvis en av verdens minst standardiserte standarder. Dette betyr at en
seriekabel som virker på én videospiller ikke nødvendigvis
virker på en annen. En teknisk referansehåndbok for den eller de
spillerne som skal brukes, er derfor nødvendig, men det hender at den
selges som (dyrt) ekstrautstyr. Spillerne må også være stilt
inn på riktig kommunikasjonshastighet. Dette gjøres ved å
stille små brytere (dip-switches) som i ekstreme tilfeller befinner seg
dypt inne i spillerens indre. En god hjelp under kabeltilpasningen er et vanlig
kommunikasjonsprogram, f.eks. Kermit. Med det kan man sette opp et
terminalvindu mot spilleren, prøve å sende kommandoer og se om man
får fornuftige svar.
PROGRAMMER SOM STYRER VIDEOPLATESPILLEREN
For i det hele tatt å lage en interaktiv videopresentasjon, må vi
kjenne videoplaten (selvfølgelig). Det betyr at vi må vite hvor
på platen de forskjellige sekvenser og enkeltbilder vi ønsker
å bruke, befinner seg. Vi må også vite om det er aktuelt
å bruke begge, bare én eller ingen av lydkanalene. Platene har
nemlig to lydkanaler. Dette var opprinnelig beregnet på stereolyd, men
det finnes plater der innholdet i de to lydkanalene er vidt forskjellig. En
plate Senteret eier, har tysk tale på det ene lydsporet og engelsk
på det andre. Slike faktorer gir muligheter for "dobbelt" utnyttelse av
platene idet samme videosekvens kan spilles med bruk av forskjellige lydspor.
Som nevnt ovenfor styres spillerne ved at forskjellige kommandostrenger sendes
over en seriekabel. Blant de grunnleggende kommandoene som trenges for en
interaktiv videoapplikasjon er:
- - gå til bilde nummer x
- - spill til bilde nummer y
- - slå av/på lydkanal 1
- - slå av/på lydkanal 2
Dessuten er det viktig å kunne finne ut hvor på platen man egentlig
er, dvs. at forespørselen "Hvor er vi?" må kunne sendes til
spilleren og et svar komme tilbake. Dette hadde vi ved Senteret enkelte
problemer med i forbindelse med en eldre platespiller. Problemet kan
omgås ved at programmet som styrer spilleren fører nøye
regnskap med hvor lang tid det har gått fra spilleren startet å
spille fra et kjent bildenummer.
Dessverre bruker spillerne forskjellige kommandosett. Sonys LDP-serie spillere
bruker for eksempel kommandoen "F" til å slå på lydkanal 1,
mens en Pioneer 4200 spiller bruker kommandoen "1 AD" til det samme. For at det
i det hele tatt skal være mulig å bruke det samme programmet med
forskjellige videospillere, er det viktig å holde de spillerspesifikke
kommandoene ute fra den generelle delen av programmet. Dette kan gjøres
ved at man skriver en gruppe rutiner som er spesifikke for hver spiller (en
"driver" for hvert kommandosett). I hovedprogrammet sørger man så
for at det på ett sted (gjerne i begynnelsen) blir definert hvilken
driver (dvs. hvilken spiller) som er aktiv. Dette er i praksis også det
som blir gjort i ferdige forfatterverktøy for interaktiv video.
FORFATTERVERKTØY ELLER "EGEN PROGRAMMERING"?
Et forfatterverktøy er et program eller en gruppe av programmer som skal
gjøre det lett for en ikke-programmerer å programmere. Det er
vanskelig å trekke noen absolutt grense mellom et generelt
programmeringsspråk og et forfatterverktøy, og det har kanskje
heller ingen hensikt. Undertegnede har hatt visse problemer med "rene"
forfatterverktøy som Quest og Icon Author. Hvis man ønsker
å gjøre programmeringen lettvint, blir de ferdige produktene lett
presset inn i en form som tilsvarer den formen utviklerne av
forfatterverktøyet har som ideal. Hvis man ønsker å sprenge
grensene, å lage noe helt etter sitt eget hode, blir det lett mye tukling
med et knotete "forfatterspråk", og programmeringen hadde sannsynligvis
gått vel så greit (og blitt bedre) om det hele var skrevet i f.eks.
Pascal fra bunnen av. (NB! Dette er undertegnedes høyst personlige
oppfatning og deles ikke nødvendigvis av andre som har arbeidet med
interaktiv video ved Senteret. NB!)
Når det gjelder verktøy som HyperCard (med slektninger) stiller
saken seg anderledes. Her er det også til en viss grad faste former - det
skal f.eks. svært meget til for å få en HyperCard stakk
(kortbunke er Apple Norges offisielle term) til å se ut som noe annet enn
en HyperCard stakk. Men på den andre siden er programmeringsmulighetene
her så utrolig mye bedre enn i de rene forfatterverktøyene. Det
har nå også kommet tilsvarende verktøy på MS-DOS siden
(ToolBook under Windows), og jeg tror det store flertall av fremtidens (dvs. de
neste par års) interaktive videoprodukter vil være laget med slike
verktøy.
De ovenfor omtalte verktøyene gir gratis en god del i form av
forhåndsdefinerte rutiner til å behandle lyd og bilder og ikke
minst pekeverktøy (mus). Dette står for meg som den viktigste
grunnen til at det blir slike utviklingsomgivelser og ikke ren programmering
som blir mest aktuelt fremover. Et verktøy som ikke er omtalt her, er
det norskutviklede Mosaikk. Grunnen til dette er at da det var aktuelt å
bruke det ved Senteret (høsten 1989), var Mosaikk inne i en utvikling
som gjorde det umulig å få tilgang på den nødvendige
dokumentasjon. Det kan imidlertid bli aktuelt å ta det opp igjen
senere.
PROSJEKT SATYRICON
Signe Marie Sanne omtaler de pedagogiske aspektene ved dette prosjektet et
annet sted i dette nummer av HD. Her vil jeg istedet komme litt inn på
valg av teknologi, programmeringsverktøy og datastrukturer.
Prosjekt Satyricon er en énskjermsløsning der video og
datagrafikk blir vist på en vanlig Apple fargemonitor. Utvidelseskortene
som brukes (ColorSpace IIc/ColorSpace FX) tillater at videoen blir vist i fulle
farger (24 bit pr. skjermpunkt/pixel) selv om datagrafikken bare blir vist som
8 bits farger. Disse utvidelseskortene tillater oss også å
manipulere videovinduet i sanntid. Det vil si at det kan flyttes, forminskes og
forstørres mens videoen spiller. (Kortene tillater også andre
"festlige" manipulasjoner som å invertere fargene i videobildet, speile
bildet osv., men det har vi ikke funnet noen anvendelse for i denne
forbindelse.) Satyricon (platen) følger amerikansk standard (NTSC) og vi
bruker for tiden en Sony kombinertspiller.
Som utviklingsverktøy har vi valgt SuperCard. Litt forenklet er
SuperCard et overbygg på HyperCard. Blant det som går utover
HyperCard, kan nevnes at SuperCard tillater at flere vinduer i forskjellig
størrelse er åpne samtidig, bruk av farger, muligheten til å
lage egne menyer og bruk av "standard" Macintosh vinduer. Alt er imidlertid
ikke bare rosenrødt med SuperCard. Hvis man ønsker å
utvikle og testkjøre samtidig bør man ikke satse på å
ha mindre enn 4 MB RAM i maskinen. HyperCard har i alle fall hittil blitt gitt
gratis med maskinen. Derfor har man alltid kunnet regne med at der det finnes
en Macintosh, finner man også en kopi av HyperCard. Imidlertid er ikke
dette noe stort problem, siden det er mulig å lage frittstående
programmer av SuperCard-prosjektene.
Det var videodriverne som skapte de største problemene for oss i
begynnelsen. Senteret har tidligere anskaffet Videodisc Toolbox - et sett med
programvare og drivere for bruk sammen med HyperCard - fra APDA (Apple
Programmers' and Developers' Association). I teorien skal eksterne kommandoer
og funksjoner for HyperCard kunne konverteres til SuperCard. Utviklerne av
SuperCard har dessverre valgt en ikke helt standard måte å
håndtere disse eksterne funksjonene på. Dette er ikke stedet for
å diskutere de mer intrikate delene av Macintosh-systemets
ressurshåndtering, men for den Mac-kyndige kan jeg si at problemet
vesentlig skyldes at SuperCard lagrer koderessursene i et prosjekts datagren og
ikke i ressursgrenen. Vi kunne heldigvis bruke deler av programmene fra APDA:
de som direkte styrer kommunikasjonen over serieporten. Selve videodriveren
(altså den spillerspesifikke delen) skrev vi så i SuperTalk
(SuperCards svar på HyperTalk). Hittil har prosjektet bare brukt en
Sony-spiller, så vi har ikke prøvd hvor lett eller vanskelig det
er å legge inn en ny driver, men ut fra tidligere erfaringer virker det
ikke spesielt komplisert.
Prosjekt Satyricon er forskjellig fra mange produksjoner av interaktiv video
idet det her skal være mulig når som helst under visningen av video
å stoppe denne, få frem italiensk tekst, lese norsk oversettelse
osv. Oftere er det slik at brukeren stilles overfor et valg, som et resultat av
dette valget vises en videosekvens, og brukeren får muligheten til
å gjøre et nytt valg. Dette er den modellen de fleste
forfatterverktøy legger opp til. Sannes valg av interaksjonsmodell har
nødvendigvis påvirket valget av datastrukturer.
Videomaterialet som benyttes, er delt opp i ti sekvenser. Disse er i det store
og hele uavhengige av hverandre, og det er naturlig å se på hver av
dem som en enhet. Sekvensene er igjen delt opp i språklig betingede
enheter som for eksempel en setning. Dette er de minste videoenhetene, og det
er disse det refereres til når brukeren får anledning til å
se om igjen eller få en norsk oversettelse.
For å ivareta den nødvendige informasjon definerte vi skjulte
referansekort (se fig. 1), ett for hver av de ti hovedsekvensene. I disse
kortene er det felt for italiensk tekst, norsk tekst, start- og stoppbilde for
de minste språkenhetene og start- og stoppbilde for hovedsekvensen.
Når brukeren har valgt en sekvens fra valgkortet (se Sannes artikkel),
lagres informasjon om hva som nå er gyldig referansekort. Når
brukeren kommer til valgkortet første gang, er alltid første
sekvens valgt som standardverdi. Det skal ikke være mulig å starte
videovisning uten at det er valgt en gyldig sekvens. Dette er en forutsetning
som hele systemets programlogikk bygger på.
Referansekortene ble laget ved at Sanne transkriberte og oversatte den
italienske teksten samtidig som hun noterte informasjon om start- og
stoppbilder. Dette ble gjort i et vanlig tekstbehandlingsprogram. Deretter ble
tekstene lest inn i referansekort med hjelp av et lite program som skjuler seg
bak knappen "Lagny" i fig. 1. Ordboken ble også fremstilt halvautomatisk.
Et lite program plukket ut alle ord i den italienske teksten og lagret dem
sammen med tekstlinjen de var plukket fra, opplysninger om hvilket
referansekort de var hentet fra og hvilken linje i kortfeltene de kom fra.
Deretter ble de sortert og til slutt etterredigert for hånd. Denne
fremgangsmåten var mulig nettopp fordi SuperTalk (og HyperTalk) er
så generelle programmeringsspråk at undertegnede kunne hente frem
sine gamle algoritmer for ordboksproduksjon og "oversette" dem fra Pascal eller
Simula.
Vi har hele tiden hatt for øye å utvikle et program som er mest
mulig generelt. Derfor kan deler av programvaren i Prosjekt Satyricon benyttes
til annet videomateriale uten særlig ny programmering, forutsatt at vi
ikke ønsker et vesentlig forskjellig pedagogisk opplegg.

Figur 1.