Ogg

Z Multimediaexpo.cz

Propagační tlačítko FSF

Ogg je projekt, který si klade za cíl vytvořit svobodný software pro digitální multimédia. Datový formát Ogg propagovaný nadací Xiph.org byl vytvořen jako výchozí materiál větší iniciativy, která si klade za cíl vyvinout komponenty pro kódování a dekódování multimediálního obsahu, přičemž tyto komponenty budou svobodně dostupné a svobodně reimplementovatelné v softwaru (BSD licence). Formát Ogg je definován v RFC 3533 a jeho MIME typ application/ogg v RFC 3534. Různé části projektu jsou zamýšleny jako alternativy k nesvobodným standardům, jakými jsou kodeky MPEG, Real, QuickTime, Windows Media; formáty RIFFWAV a AVI.

Obsah

Ogg jako formát

Datový formát Ogg propagovaný nadací Xiph.org byl vytvořen jako výchozí materiál větší iniciativy, která si klade za cíl vyvinout komponenty pro kódování a dekódování multimediálního obsahu, přičemž tyto komponenty budou svobodně dostupné a svobodně reimplementovatelné v softwaru (BSD licence). Formát Ogg je definován v RFC 3533 a jeho MIME typ application/ogg v RFC 3534.

Formát se skládá z kusů dat nazývajících se stránka ogg. Každá stránka začíná řetězcem "OggS" k identifikaci souboru jako Ogg formátu. Sériové číslo a číslo stránky v záhlaví stránky identifikuje každou stránku jako část série stránek tvořících proud bitů (bitstream). Vícenásobný bitstreams může být multiplexní v souboru kde stránky z každého bitstreamu jsou seřazené podle doby hledání obsažených dat. Bitstream může být také připojený k existujícím souborùm, proces známý jako spojování, způsobuje, že bitstreamy jsou dekódovány po sekvencích. Knihovna libogg spadající pod BSD licenci, je k dispozici ke kódování a dekódování dat z Ogg streamů. Nezávislé implementace Ogg jsou užívány v několika projektech jako RealPlayer a sada DirectShow filtrů.

Různé části projektu jsou zamýšleny jako alternativy k nesvobodným standardům, jakými jsou kodeky MPEG, Real, QuickTime, Windows Media; formáty RIFFWAV a AVI.

Struktura stránky

Následující je rozložení pole z hlavičky Ogg stránky:

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| zachytávací_zdroj: kouzelné číslo pro začátek stránky "OggS"  | 0-3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| verze         | typ_hlavičky  | pozice_zrna                   | 4-7
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               | 8-11
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               | seriové_číslo bitstreamu      | 12-15
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               | číslo_sekvence_stránky        | 16-19
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               | CRC_kontrolní_součet          | 20-23
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               | segmenty_str.|segment_tabulky | 24-27
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ...                                                           | 28-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Zachytávací zdroj - 32 bitové
Zachytávací vzor nebo synchronizační kód je kouzelné číslo užívané pro zajišťování synchronizace při rozebírání Ogg souborů. Každá stránka začíná čtyř bajtovou sekvencí 'OggS'. Toto napomáhá při synchronizaci kontrolujícího programu v případech kde data byla ztracena nebo porušena a je to rozumná kontrola před zahájením rozboru stránkové struktury.
Verze - 8 bitové
Toto pole ukazuje verzi bitstreamu Ogg formátu k povolení pro budoucí rozšíření. V současné době je nastaveno na 0.
Hlavičkový typ - 8 bitové
Je to 8 bitové pole příznaků, které ukazují typ stránky která následuje. Pravý krajní nebo nejnižší platný bit je považovaný za bit 0 s hodnotou 0x01 a další nejnižší platná číslice je bit 1 s hodnotou 0x02. Třetí je bit 2 s hodnotou 0x04, a tak dále.
Bit Hodnota Příznak Typ stránky
0 0x01 Pokračující První paket na této stránce je pokračováním předchozího paketu v logickém bitstreamu.
1 0x02 BOS Začátek proudu (Beginning Of Stream). Tato stránka je první stránka logického bitstreamu. BOS příznak musí být nastaven na první stránku každého logického bitstreamu a nesmí být nastaven na jinou stránku.
2 0x04 EOS Konec proudu (End Of Stream). Tato stránka je poslední stránka v logickém bitstreamu. EOS příznak musí být nastaven na konec stránky každého logického bitstreamu a nesmí být nataven na jinou stránku.


Pozice zrna - 64 bitové
Pozice zrna je časová značka v Ogg souborech. Je to abstraktní hodnota, jejíž význam je určen kodekem. To může být například součet počtu vzorků, počet rámů nebo větší komplexní schéma.
Sériové číslo bitstreamu - 32 bitové
Toto pole je sériové číslo, které identifikuje stránku náležící částečnému logickému bitstreamu. Každý logický bitstream v souboru má jedinečnou hodnotu a toto pole povoluje implementace k doručení stránek příslušnému dekodéru. V typickém vorbis+theora souboru bude jeden proud audio (vorbis), a další bude video (theora).
Stránkové pořadové číslo - 32 bitové
Toto pole je monotonně rostoucí pole pro každý logický bitstream. První stránka je 0, druhá 1, atd. Dovoluje implementacím zjistit, kdy byla data ztracena.
Kontrolní součet - 32 bitové
Toto pole poskytuje kontrolní součet dat na celé stránce, pole nastaveno na 0 po vykonaném kontrolním součtu. To povoluje ověření, že data nebyla porušena od vytvoření. Stránky, kterým selže kontrolní součet by měly být vyřazené.
Segmenty stránky - 8 bitové
Toto pole ukazuje počet segmentů, které existují na této stránce. To také ukazuje kolik bajtů je v segmentu tabulky, které následují toto pole. Tam může být maximálně 255 částí na každé stránce.
Tabulka segmentů
Tabulka segmentů je 8 bitový vektor hodnot ukazující délku každého segmentů uvnitř těla stránky. Počet segmentů je stanovený z předcházejícího pole segmentů stránky. Každý segment má délku mezi 0 a 255 bajty.

Segmenty poskytují způsob jak seskupit segmenty do paketů, které jsou smysluplnými jednotkami dat pro dekodér. Když délka segmentu ukazuje na 255, to ukazuje, že následující segment je zřetězený do jednoho a je částí stejného paketu. Když délka segmentu je 0-254, ukazuje to, že tento segment je konečný segment v tomto paketu. Kde délka paketu je násobek 255, konečná segment bude délky 0. Kde konečný paket pokračuje na další stránce, konečná hodnota segmentu bude 255 a pokračující příznak bude nastaven na následující stránku aby ukazovala, že začátek nové stránky je pokračováním poslední stránky.

Zdroje

Výchozí prací byl bezeztrátový kodek Squish. Dnes je základem ztrátový zvukový kodek Vorbis (16 - 256 Kb/s na kanál). Dalšími jsou video kodek Theora, který vychází z komerčního kodeku VP3 firmy On2 Technologies, zvukový kodek pro mluvenou řeč Speex (8 - 32 Kb/s na kanál) a bezeztrátový zvukový kodek pro kvalitní přenos zvuku FLAC. Writ je kodek pro vkládání titulků.

Název

Laikové často předpokládají, že název Ogg je odvozen od postavy stařenky Oggové z fantasy série Terryho Pratchetta Zeměplocha. Ve skutečnosti jde o slangový termín pocházející z počítačové hry Netrek. Původně znamenal sebevražedný útok, později získal širší význam vrhat se do něčeho po hlavě - důrazně a možná bez rozmyslu, zejména bez ohledu na možné vyčerpání zdrojů: tak musel být projekt vnímán vzhledem k jeho hardwarovým požadavkům v době vzniku v roce 1994.

Ogg kodeky

Ogg je jen kontejnerový formát. Vlastní audio nebo video zakódované kodekem bude uložené uvnitř Ogg kontejneru. Ogg kontejnery mohou obsahovat streamy zakódované s vícenásobnými kodeky, například, audio nebo video soubor může obsahovat data zakódovaná audio kodekem i video kodekem. Formát Ogg může uložit audio a video v různých formátech (jako MPEG-4 , MP3 a jiní) ale obvykle Ogg je používaný s následujícími:

The media player is loading... Prehravac se nahrava...

Ogg video – bombardování Hamburgu (1943)
  • Audio kodeky
  • Textový kodek
    • Writ: textový kodek k vkládání titulků nebo popisků
    • CMML: textový/aplikační kodek pro časová metadata, popisování, a formátování
  • Video kodeky
    • Theora: kodek, který byl vyvinut nadací Xiph.org jako součást projektu Ogg. Theora by měla konkurovat formátu MPEG-4 a kodekům RealVideo, Windows Media Video.
    • Tarkin: experimentální kodek využívající Diskrétní vlnkovou transformaci v třech dimenzích (šířka, výška a čas). To bylo dané na od února 2000, příchodem kodeku Theora jako hlavní ohnisko zakódování videa.
    • Dirac: experimentální kodek vyvinutý BBC jako základ nového kodeku pro přenos videa přes internet. Projekt Schrödinger chce poskytovat přenosné knihovny, napsané v C obsažené v kodeku Dirac.
      To také dovoluje vložit Dirac dovnitř kontejnerového formátu Ogg.
    • OggUVS: kodek pro ukládání nekomprimovaného videa.
  • Titulkové struktury
    • Annodex: Volná a opensource sada standardů od CSIRO k poznámkování a indexování síťových medií.

Související kategorie

Externí odkazy


        Formáty multimediálních dat
Obrázky

APNGBMPGIFJPEGJPEG 2000JPEG XRMNGPCXPNGSVGTIFFWBMPXPM

Video

MPEG-1MPEG-2MPEG-4M4VH.264 (MPEG-4 AVC)HuffYUVRealVideoTheoraDiracVP8WMV

Zvuk

AACApple LosslessAC-3AMRATRACFLACG.711G.729MP3MODSpeexVorbisOpusWAVWMAMusepack

Kontejnery

3GPAVIOggMPEGQuickTimeASFMP4MatroskaWebM