Filending |
.ogg |
---|---|
MIME-type |
application/ogg |
Magisk tal | OggS |
Utvikla av | Xiph.org Foundation |
Formattype | Konteinarformat |
Konteinar for | FLAC, Vorbis, Theora, Speex, etc. |
Nettstad | Xiph.org |
Ogg er eit patentfritt, open standard konteinarformat for digitale multimedia-bitstraumar, definert av Xiph.Org Foundation. Ei Ogg-fil kan innehalda fleire ulike mediafiler, organiserte for effektiv avspeling.
Filene i ei Ogg konteinarfil kan kodast og dekodast med mange ulike open kjeldekode kodekar for lyd, video og tekst (for til dømes undertitlar). Filer med endinga «.ogg» kan innehalda alle typar Ogg-mediafiler og på grunn av at formatet er lisensfritt har dei ulike Ogg-kodekane vorte nytta i mange forskjellige mediaavspelarar, både gratis og kommersielle. Mange produsentar av bærbare mediaspelarar nyttar òg Ogg-kodekar.
Ogg-filer vert ofte nytta for Vorbis-koda audio-filer, som då vert kalla «Ogg-Vorbis-format», eller «Ogg-Vorbis-filer». Andre populære Xiph-kodekar er videokodeken Theora og talekodeken Speex.
Ogg-formatet, er ein del av eit større Xiph.org Foundation-initiativ for å utvikla opne og gratis standardar for koding og dekoding av multimediainnhald. Xiph har laga ein såkalla referanseimplementering som er kan lastast ned gratis. Siste versjonen er libogg 1.1.3[1].
Ogg-filer inneheld dataeiningar som vert kalla «Ogg pages» (Ogg-sider). Kvar side startar med tekststrengen «OggS», som identifiserer fila som ei Ogg-fil. Kvar side har eit sidehovud som inneheld eit serienummer og eit sidenummer, som identifiserer sida som ei av fleire sider som til saman utgjer ein bitstraum. Ei Ogg-fil kan innehalda feire bitstraumar, som vert avspela saman (audio og video til dømes). Dei individuelle sidene i kvar bitstraum er da merkte slik at dei vert avspela til rett tid. Bitstraumar kan òg verta lagt til andre filer, slit at bitstraumane vert dekoda sekvensielt. Dette vert kalla «chaining» (lenking).
Strukturen til sidehovudet i ei Ogg-fil ser slik ut:
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| Byte +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | opptaksmønster: Magisk nummer for sidestart «OggS» | 0-3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | versjon | hovudtype | granule_posisjon | 4-7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | 8-11 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | bitstraum serienummer | 12-15 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | sidesekvensnummer | 16-19 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | CRC_sjekksum | 20-23 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | sidesegment | segmenttabbel | 24-27 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | 28- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Bit | Verdi | Flagg | Sidetype |
---|---|---|---|
0 | 0x01 | Framhald | Den fyrste pakken i denne sida er framhald av den førre pakken i den logiske bitstraumen. |
1 | 0x02 | BOS | Beginning Of Stream (Straumstart). Denne sida er den fyrste sida i den logiske bitstraumen. BOS-flagget må vera sett i den fyrste sida i kvar logisk bitstraum og må ikkje vera sett i noko anna side. |
2 | 0x04 | EOS | End Of Stream (straumslutt). Denne sida er den siste sida i ein logisk bitstraum. EOR-flagget må vera sett i den siste sida av kvar logisk bitstraum og må ikkje vera sett i noko anna side. |
Segmenta kan grupperast i pakkar, som er meiningsfylte dataeiningar for ein dekodar. Når segmentlengda er 255 tyder dette at det etterfyljande segmentet høyrer til i same pakke og at det skal skøytast på etter dette segmentet. Når segmentlengda er 0 - 254 tyder det at dette er det siste segmentet i denne pakken. Når pakkelengda er eit multippel av 255 vil det siste segmentet ha lengd 0.
Når den siste pakken held fram i neste side vil lengda til siste segment vera 255 og framhaldsflagget vil vera sett i den etterfyljande sida, for å syna at starten på neste side er framhald av føregåande side.
Ogg er berre eit konteinarformat; audio- og/eller videomaterialet ligg i Ogg-«konteinarar» inne i Ogg-fila. Desse konteinarane kan innehalda audio og video koda med ymse kodekar. Ei Ogg-fil som inneheld ein film vil (som oftast) innehalda både ein videostraum og ein audiostraum. Desse to straumane vil vera koda med to ulike kodekar, ein videokodek og ein audiokodek.
I mars 2003 vart to Internet RHC publiserte: RFC 3533 og RFC 3534. RFC 3534 har no (2006) status som «Framlegg til protokollstandard».
Ogg har enda ikkje same utbreiing som MPEG-standarane (2006), men held på å få ei utbreiing for å koda gratis innhald, som til dømes musikk og multimedia-innhald på Wikipedia. Fleire og fleire digital audio spelarar får òg støtte for Ogg. Ogg-foratet vert òg nytta for mange spel, som til dømes Doom 3, Unreal Tournament 2004 og «Serious Sam: The Second Encounter engines». Dei mest pupulære Ogg Vorbis kodekane har innebygd støtte for mange spelarar og utvidingar er tilgjegeleg for dei fleste andre. Dei andre Ogg-kodekane har enda meir sporadisk støtte, men utvidingar er tilgjengelege for mange av dei.