Video og tids-synkronisering
Abstract
Video brukes i dag i mange sammenhenger. I tillegg til å lyde og bilde, kan det være ønskelig å knytte andre typer data til et video-opptak. Denne dataen kommer fra det vi i denne rapporten kaller for en sensor. En sensor kan være alt fra en klokke til en pulsmåler til en GPS-mottaker. Når man gjør et opptak vil det oppstå en viss forsinkelse fra opptaket blir gjort, til videoen ligger lagret på harddisken. Når man i tillegg bruker en MPEG-2 enkoder slik som vi har gjort i denne oppgaven, blir forsinkelsen enda større siden hver ramme må kodes i henhold til MPEG-2 algoritmen. Sensorer som klokker, pulsmålere og GPS-mottakere oppdateres med relativt stor hyppighet, kanskje flere ganger i sekundet. Med forsinkelse på video-strømmen er vi nødt til å finne en metode for å synkronisere den med sensor-dataen. I denne oppgaven har vi satt som mål å kunne synkronisere med en videorammes nøyaktighet. En videoramme varer i 40 ms, noe som tilsier at vi har maks ± 20 ms i synkroniseringsfeil å gå på. Vi har valgt å holde oss til kun systemtiden som sensor i denne oppgaven, men bruk av andre sensorer er mulig uten veldig store modefikasjoner. Første ledd i synkroniseringen er å finne ut hvor stor forsinkelsen er, og om den er konstant. Testene viser at forsinkelsen varierer noe på forskjellige systemer, men at den holder seg relatvit konstant på samme system. Noe variasjon er det i forsinkelsen, men den er i størstedelen av testene ikke mer enn de ± 20 millisekundene vi hadde som mål å holde oss innenfor. Testene viser også at forsinkelsen verken blir større eller mer varierende om man filmer noe som gir stor variasjon i bildet, i forhold til noe som gir liten variasjon. Andre ledd er å finne metoder for synkronisering og teste dem. Den føste metoden benytter seg av DirectShow-filteret SampleGrabber for å lagre avspillingstiden til hver videoramme. Tiden lagres sammen med sensor-dataen, i dette tilfellet systemtiden, slik at man for hvert tuppel har lagret samsvarende videotid. Den andre metoden er avhengig av at det lagres tidsdata sammen med sensordataen. I dette tilfellet er sensordataen systemtiden, så tidsdataen er med i utgangspunktet. For å finne samsvarende videotid til et tuppel, må man beregne differansen mellom ønsket tuppel og første registrerte tuppel. Så må man gjøre en justering med en fast synkroniseringsforskyvning. Testene viser at vi kan oppnå ganske god synkronisering ved bruk av metodene over. Testene viser også resultatene ved bruk av de to testene er så like at det med tanke på synkronisering er likegyldig hvilken man velger.