• No results found

2.3 Exempel på användningsområden

3.4.2 MPEG-4

Det ursprungliga målet med MPEG-4, som påbörjades 1993, var att skapa en flexibel standard som hanterar låga datatakter. Detta ändrades dock snart till en mer generell inriktning mot kodning av multimedia. Den första delen av standarden, version 1, färdig- ställdes 1999 och en utökning, version 2, blev klar 2000.

Med MPEG-4 introducerades ett nytt tänkande inom multimediakodningen. Scener och videosekvenser ses som en hierarkisk sammansättning av olika objekt. Ett objekt kan till exempel vara en bakgrund, en eller flera personer, en animerad figur, ett ljudspår eller helt enkelt en klassisk videosekvens. Varje objekt kodas för sig med metoder anpassade för det objektets struktur. En komplett scen innehåller en eller flera sådana objekt samt en object description, OD, som är en beskrivning av hur scenen är sammansatt, både i rum och i tid. För beskrivningen används ett speciellt språk som kallas Binary Format for

Scene Descriptions, BIFS. Den hierarkiska strukturen ges i figur 10.

Figur 10: Den hierarkiska strukturen för en MPEG-4 scen [22].

Video Session (VS)

Video Object (VO)

Video Object Layer (VOL)

Video Object Plane (VOP)

}

}

VS1 VS2

VO1 VO2

VOL1 VOL2

VOP1 VOP2 VOP1 VOP2

Video session är en komplett scen som kan bestå av ett eller flera video object. Ett video

object motsvarar ett objekt i scenen och är i enklaste fallet en fyrkantig bild. Varje video object består i sin tur av ett eller flera video object layer. Ett video objekt layer motsvarar icke-skalbar kodning och flera video object layer motsvarar skalbar kodning, se avsnitt 3.3.4. Slutligen består varje video object layer av flera video object plane. Dessa mot- svarar ett tidsampel och för bilder kan de liknas med de olika frames som finns i MPEG- 2. Precis som för MPEG-2 finns också motsvarigheterna I-VOP, P-VOP och B-VOP och funktionen är densamma, se avsnitt 3.4.1.

Ett vanligt förekommande begrepp vid hantering av MPEG-4 kodat material är

elementary stream, ES. Detta begrepp används för att beskriva den egentliga bitström

som hanteras efter kodningen. Varje ES innehåller ett eller delar av ett kodat objekt, en scene description eller kontrollinformation. Till exempel kan en videoscen generera en ES som innehåller ljud, en ES som innehåller video och en ES som innehåller system- information i form av en OD.

Standarden är uppdelad i tio delar [8]. Några av de mest intressanta är: • Systems

Definierar hur olika objekt skall hanteras för att bygga upp en scen. Innehåller en beskrivning av BIFS och filformat. Beskriver även hur olika ES hanteras och modifieras.

• Visual

Definierar verktyg för att koda visuellt material i olika former. Stöd finns bland annat för vanliga bilder, syntetiska två- och tredimensionella bilder, skalbar kod- ning, ansiktskodning och texturkodning. Standarden hanterar både interlaced och progressivt material.

• Audio

Definierar verktyg för att koda ljud i olika former. Speciella verktyg finns bland annat för tal och syntetiskt ljud. Bland de metoder som stöds kan nämnas AAC, TwinVQ och CELP [24].

• Delivery Multimedia Integration Framework

DMIF definierar ett gränssnitt mellan applikationen och transportlagret. Detta gör att ingen hänsyn till detta behöver tas på applikationsnivå.

• 4 on IP framework

MPEG-4 definierar inte transportlagret men en del anpassningar till existerande transportlager har gjorts, till exempel MPEG-2 TS.

3.4.2.1 Profiler

Precis som i MPEG-2 finns ett antal profiler definierade [24]. Varje profil är en delmängd av MPEG-4 standarden. Därmed behöver inte alla avkodare implementera hela standarden utan kan begränsas till en eller flera profiler. Profilerna sätter alltså en begränsning på vilka funktioner som måste implementeras i avkodaren och komplexiteten kan hållas nere utan att kompatibiliteten förloras. Till varje profil hör också en nivå, eller level, även detta som i MPEG-2. Nivåerna används för att begränsa den nödvändiga datorkraften.

Videokodning

MPEG-4-kompatibel settop-box för IP-nät baserad på öppna standarder 23 Profiler finns definierade för ljud, video, grafik och scenbeskrivningar. De vanligaste profilerna för video är:

• Simple profile

Används för att koda rektangulära objekt och passar bra till mobila nätverk. • Advanced simple profile

Liknar simple profile men har några extra verktyg för att öka effektiviteten. Dessa är B-VOP, 1/4 pixel rörelsekompensation, några extra kvantiserings- tabeller och global rörelsekompensation.

Den vanligaste profilen för ljud är: • High quality audio profile

Använder CELP för talkodning och AAC för ljudkodning.

3.4.2.2 Feltolerans

Feltolerans, eller error resilience, är en förutsättning för överföring av bildsekvenser i miljöer där fel lätt uppkommer. Exempel på sådana kan vara mobila nätverk där data ofta skickas över radio. MPEG-4 Visual tillhandahåller fyra olika verktyg för att öka fel- toleransen:

• Resynchronization

Detta är det vanligaste sättet att göra data feltolerant. På vissa ställen i bit- strömmen placeras unika markeringar. Om avkodaren upptäcker fel väntar den på nästa synkroniseringsmarkering och fortsätter där [22].

• Data partitioning

Detta innebär att data med rörelser separeras från data med texturer. Om ett fel uppstår kan effektivare metoder användas för att åtgärda felet [22].

• Header extension code

Detta är binära koder som tillåter redundant header-information. På så sätt minskar sannolikheten för felaktig header [22].

• Reversible VLC:s

Variabellängdskoder som ytterligare minskar sannolikheten för fel. Dessa kod- ord kan avkodas både framifrån och bakifrån. Om ett fel upptäckts och avkodaren väntat på nästa synkroniseringsmarkering kan den även avkoda bakåt från markeringen för att minska felets inverkan [22].

3.4.2.3 Filformat

I MPEG-4 Systems definieras ett format för att lagra MPEG-4-kodat material i filer. For- matet är mycket flexibelt och är baserat på QuickTime-formatet från Apple Computer [26]. En MPEG-4 fil har filändelsen .mp4 och benämns därför mp4-fil. Det generella utseendet på en mp4-fil ges i figur 11.

Figur 11: Generellt utseende på en mp4-fil [24].

Filen är uppbyggd av objektorienterade strukturer som kallas atoms. Varje atom identi- fieras med hjälp av en unik märkning och sin längd. Det finns flera olika typer av atoms; vissa innehåller information och pekare (t extrak) medan andra innehåller aktuell media (mdat). Alla dessa atoms är samlade i en huvudatom, moov, som kan ses som filen. Mediainformationen behöver inte finnas fysiskt i filen utan kan vara länkad från andra platser via URL:er [24].

För att göra det enkelt att skicka (strömma) media över nätverk finns möjlighet att skapa så kallade hint tracks. Det är metadata som sparas i filen som en speciell atom och som beskriver hur filen lämpligast delas upp i mindre delar. Vad som är lämpligaste upp- delningen är beroende av vilket transportprotokoll som används. För att möjliggöra transport över flera protokoll kan flera hint tracks skapas i samma fil. För mer information om protokoll, se kapitel 3, och för mer information om att strömma MPEG- 4, se kapitel 5.

Related documents