Ogg -
Ogg

Från Wikipedia, den fria encyklopedin
Filnamnstillägg
.ogg, .ogv, .oga, .ogx, .ogm, .spx, .opus
Internetmedietyp
video/ogg, audio/ogg, application/ogg
Magiskt nummer OggS
Utvecklad av Xiph.Org Foundation
Typ av format Behållarformat
Behållare för Vorbis , Theora , Speex , Opus , FLAC , Dirac och andra.
Ja
libogg
Ogg Logo.svg
Utvecklare Xiph.Org Foundation
Stabil frisättning
1.3.4 / 31 augusti 2019
; 2 år sedan
 (
2019-08-31
)
Typ Referensimplementering ( multiplexer / demultiplexer )
Licens BSD-licens
Hemsida

Ogg är ett gratis , öppet behållarformat som underhålls av Xiph.Org Foundation . Författarna till Ogg-formatet uppger att det är obegränsat av programvarupatent och är utformat för att möjliggöra effektiv streaming och manipulation av högkvalitativ digital multimedia . Dess namn härrör från "ogging", jargong från dataspelet Netrek .

Ogg -behållarformatet kan multiplexera ett antal oberoende strömmar för ljud , video , text (t.ex. undertexter ) och metadata .

.

Före 2007 användes filnamnstillägget .ogg för alla filer vars innehåll använde Ogg -behållarformatet. Sedan 2007 rekommenderar Xiph.Org Foundation att .ogg endast används för Ogg Vorbis ljudfiler. Xiph.Org Foundation beslutade att skapa en ny uppsättning filtillägg och medietyper för att beskriva olika typer av innehåll, t.ex. Ogg.

Från och med den 7 november 2017 är den nuvarande versionen av Xiph.Org Foundation: s referensimplementering libogg 1.3.3. En annan version, libogg2, har utvecklats, men väntar på en omskrivning från och med 2018. Båda programbiblioteken är gratis programvara , som släpps under den nya BSD -licensen . Ogg -referensimplementering separerades från Vorbis den 2 september 2000.

Eftersom formatet är gratis och dess referensimplementering inte är föremål för begränsningar i samband med upphovsrätten har Oggs olika codecs införlivats i ett antal olika gratis och proprietära mediaspelare , både kommersiella och icke-kommersiella, samt bärbara mediaspelare och GPS -mottagare från olika tillverkare.

Namngivning

Ogg härstammar från "ogging", jargong från dataspelet Netrek , vilket kom att innebära att göra något kraftfullt, möjligen utan hänsyn till dräneringen på framtida resurser. Vid starten ansågs Ogg -projektet vara något ambitiöst med tanke på den begränsade kraften i dators hårdvara. Även om det ibland antar att namnet "Ogg" kommer från karaktären av Nanny Ogg i Terry Pratchett är Discworld romaner formatet utvecklare säger att det inte är sant. Ändå för att citera samma referens: "Vorbis, å andra sidan är uppkallat efter Terry Pratchett -karaktären från boken Small Gods ".

Den Ogg Vorbis projektet startade 1993. Det var ursprungligen namnet "Squish", men det namnet var redan varumärkes, så projektet genomgick ett namnbyte. Det nya namnet, "OggSquish", användes fram till 2001 då det ändrades igen till "Ogg". Ogg har sedan kommit att hänvisa till containerformatet , som nu är en del av det större Xiph.org -multimediaprojektet. Idag hänvisar "Squish" (nu känd som "Vorbis") till ett visst ljudkodningsformat som vanligtvis används med Ogg -behållarformatet.

Filformat

Den "Ogg" bitströmsformat , konstruerade huvudsakligen av Xiph.Org Foundation, har utvecklats som inom ramen för en större initiativ som syftar till att producera en uppsättning komponenter för kodning och avkodning av multimediafiler som finns tillgängliga kostnadsfritt och fritt återimplementerbar i programvara och hårdvara.

Formatet består av bitar av data som var och en kallas en " Ogg -sida ". Varje sida börjar med tecknen "OggS" för att identifiera filen som Ogg -format.

Ett "serienummer" och "sidnummer" i sidhuvudet identifierar varje sida som en del av en serie sidor som utgör en bitström . Flera bitströmmar kan multiplexeras i filen där sidor från varje bitström ordnas efter söktiden för den innehållna data. Bitströmmar kan också läggas till befintliga filer, en process som kallas "kedja", för att få bitströmmen att avkodas i sekvens.

Ett BSD-licensierat bibliotek, kallat "libvorbis", är tillgängligt för att koda och avkoda data från "Vorbis" -strömmar. Oberoende Ogg -implementeringar används i flera projekt som RealPlayer och en uppsättning DirectShow -filter.

Mogg, "Multi-Track-Single-Logical-Stream Ogg-Vorbis", är Ogg-filformatet med flera kanaler eller flera spår.

Sidstruktur

Följande är fältlayouten för ett Ogg -sidhuvud:

Fältlayouten för en Ogg -sidrubrik
Fånga mönster - 32 bitar
Capture -mönstret eller synk -kod är ett magiskt tal som används för att säkerställa synkronisering vid tolkning av Ogg -filer. Varje sida börjar med de fyra ASCII -teckensekvensen "OggS". Detta hjälper till att synkronisera en parser igen i fall där data har gått förlorad eller är skadad, och är en sanity check innan analys av sidstrukturen påbörjas.
Version - 8 bitar
Detta fält indikerar versionen av Ogg -bitströmformatet för att möjliggöra framtida expansion. Det är för närvarande mandat att vara 0.
Rubrikstyp - 8 bitar
Detta är ett 8 -bitars flaggfält som anger vilken typ av sida som följer.
Bit Värde Flagga Sidtyp
0 0x01 Fortsättning Det första paketet på denna sida är en fortsättning på det föregående paketet i den logiska bitströmmen.
1 0x02 BIM Början av strömmen. Denna sida är den första sidan i den logiska bitströmmen. BOS -flaggan måste ställas in på den första sidan i varje logisk bitström och får inte ställas in på någon annan sida.
2 0x04 EOS Delningen avslutad. Denna sida är den sista sidan i den logiska bitströmmen. EOS -flaggan måste sättas på den sista sidan i varje logisk bitström, och får inte sättas på någon annan sida.
Granulatposition - 64 bitar
En granulatposition är tidsmarkören i Ogg -filer. Det är ett abstrakt värde, vars betydelse bestäms av codec. Det kan till exempel vara en räkning av antalet prover, antalet ramar eller ett mer komplext schema.
Bitstream serienummer - 32 bitar
Detta fält är ett serienummer som identifierar en sida som tillhör en viss logisk bitström. Varje logisk bitström i en fil har ett unikt värde, och detta fält tillåter implementeringar att leverera sidorna till lämplig avkodare. I en typisk Vorbis- och Theora -fil är en ström ljudet (Vorbis), och den andra är videon (Theora)
Sidens sekvensnummer - 32 bitar
Detta fält är ett monotont växande fält för varje logisk bitström. Den första sidan är 0, den andra 1, etc. Detta gör att implementationer kan upptäcka när data har gått förlorade.
Checksumma - 32 bitar
Det här fältet innehåller en CRC32 -kontrollsumma för data på hela sidan (inklusive sidhuvudet, beräknat med kontrollsumfältet inställt på 0). Detta gör det möjligt att verifiera att data inte har skadats sedan de skapades. Sidor som misslyckas med kontrollsumman ska kasseras. Kontrollsumman genereras med ett polynomvärde på 0x04C11DB7.
Sidesegment - 8 bitar
Detta fält anger antalet segment som finns på den här sidan. Det anger också hur många byte som finns i segmenttabellen som följer detta fält. Det kan vara högst 255 segment på en sida.
Segmentbord
Segmenttabellen är en grupp med 8-bitars värden, var och en indikerar längden på motsvarande segment i sidkroppen. Antalet segment bestäms utifrån föregående sid segment segment. Varje segment har en längd mellan 0 och 255 byte.

Segmenten ger ett sätt att gruppera segment i paket, som är meningsfulla dataenheter för avkodaren. När segmentets längd indikeras till 255, indikerar detta att följande segment ska sammanfogas med detta och är en del av samma paket. När segmentets längd är 0–254 indikerar detta att detta segment är det sista segmentet i detta paket. Där ett pakets längd är en multipel av 255, är det sista segmentet längd 0.

Där det slutliga paketet fortsätter på nästa sida, är det slutliga segmentvärdet 255, och fortsättningsflaggan sätts på följande sida för att indikera att början på den nya sidan är en fortsättning på sista sidan.

Metadata

VorbisComment är ett metadataformat på basnivå som ursprungligen skapades för användning med Ogg Vorbis. Det har sedan antagits i specifikationerna för Ogg -inkapslingar för andra Xiph.Org -codecer inklusive Theora , Speex , FLAC och Opus . VorbisComment är den enklaste och mest stödda mekanismen för lagring av metadata med Xiph.Org-codecs.

I synnerhet har en eller flera METADATA_BLOCK_PICTURE=… i en VorbisComment för miniatyrbilder och omslagsbilder Base64 -kodade värden för motsvarande FLAC METADATA_BLOCK_PICTURE . Med andra ord lagrar FLAC miniatyrbilder och omslagsbilder i binära block-utanför FLAC-taggarna i en liten endian METADATA_BLOCK_VORBIS_COMMENT .

Andra befintliga och föreslagna mekanismer är:

Historia

Spela ogg.png
Den Play Ogg web knappen

Ogg -projektet började med ett enkelt ljudkomprimeringspaket som en del av ett större projekt 1993. Programvaran hette ursprungligen Squish men på grund av ett befintligt varumärke byttes det namn till OggSquish . Detta namn användes senare för hela Ogg -projektet. År 1997 beskrevs Xiphophorus OggSquish som "ett försök både att skapa ett flexibelt komprimerat ljudformat för moderna ljudapplikationer såväl som att tillhandahålla det första ljudformat som är vanligt på alla moderna datorplattformar". OggSquish kallades 2000 för "en grupp av flera relaterade multimedia- och signalbehandlingsprojekt". År 2000 var två projekt under aktiv utveckling för planerad lansering: Ogg Vorbis -format och libvorbis - referensimplementeringen av Vorbis. Forskning omfattade också arbete med framtida video och förlustfri ljudkodning. År 2001 döptes OggSquish om till Ogg och det beskrevs som "paraplyet för en grupp av flera relaterade multimedia- och signalbehandlingsprojekt". Ogg har kommit att stå för filformatet , som en del av det större Xiph.org -multimediaprojektet. Squish blev bara namnet på en av Ogg -codecs. Under 2009 beskrivs Ogg som "ett multimediebehållarformat och det inbyggda fil- och strömningsformatet för Xiph.org -multimediekodkerna".

Ogg -referensimplementeringen separerades från Vorbis den 2 september 2000.

I maj 2003 publicerades två Internet -RFC: er om formatet. Ogg -bitströmmen definierades i RFC 3533 (som klassificeras som "informativ") och dess Internetinnehållstyp ( application/ogg) i RFC 3534 (som från och med 2006 är ett föreslaget standardprotokoll). I september 2008 RFC 3534 föråldrat av RFC 5334, som läggs innehållstyper video/ogg, audio/oggoch filnamnstillägg .ogx, .ogv, .oga, .spx.

OGM

Under 2002 resulterade bristen på formellt videosupport i Ogg i utvecklingen av OGM- filformatet, ett hack på Ogg som möjliggjorde inbäddning av video från Microsoft DirectShow- ramverket i en Ogg-baserad omslag. OGM stöddes ursprungligen endast av slutna källverktyg för Windows, men kodbasen öppnades därefter. Senare specificerades video (och undertexter) formellt för Ogg men på ett sätt som inte var kompatibelt med OGM. Oberoende uppnådde Matroska -behållarformatet mognad och utgjorde ett alternativ för personer som är intresserade av att kombinera Vorbis -ljud och godtyckliga videokodeker. Som ett resultat stöds eller utvecklas inte OGM längre och avskräcks formellt av Xiph.org. Idag finns video i Ogg med filtillägget .ogv, som formellt specificeras och officiellt stöds. Programvara och codecs som stöder .ogm -filer är tillgängliga utan kostnad.

2006

. Den mer populära Vorbis-codecen hade inbyggt stöd för många programvaruspelare, och tillägg fanns tillgängliga för nästan alla andra.

2007

Den 16 maj 2007 startade Free Software Foundation en kampanj för att öka användningen av Vorbis "som ett etiskt, juridiskt och tekniskt överlägset ljudalternativ till det egna MP3 -formatet". Människor uppmuntrades också att stödja kampanjen genom att lägga till en webbknapp på sin webbplats eller blogg . För dem som inte ville ladda ner och använda FSF: s föreslagna Ogg -spelare ( VLC ), hade Xiph.Org Foundation en officiell codec för QuickTime -baserade applikationer i Windows och Mac OS X , till exempel iTunes -spelare och iMovie -applikationer; och Windows -användare kan installera en Windows Media Player Ogg -codec.

2009

Den 30 juni 2009 var Ogg -behållaren, genom användning av Theora och Vorbis, det enda behållarformatet som ingår i Firefox 3.5 webbläsares implementering av HTML5 <video> och <audio>element. Detta var i överensstämmelse med den ursprungliga rekommendationen som beskrivs i, men senare tas bort från, HTML5 -utkastspecifikationen (se Ogg -kontrovers ).

2010

Den 3 mars 2010 var en teknisk analys av en FFmpeg -utvecklare avgörande för Oggs allmänna ändamål för Ogg som ett multimediabehållarformat. Författaren till Ogg svarade senare på dessa påståenden i en egen artikel.

Ogg codecs

Ogg är bara ett containerformat. Själva ljudet eller videon som kodas av en codec lagras i en Ogg -behållare. Ogg -behållare kan innehålla strömmar som är kodade med flera codecs; till exempel innehåller en videofil med ljud data som kodas av både en ljudkodek och en videokodek.

Som ett behållarformat kan Ogg bädda in ljud och video i olika format (som Dirac , MNG , CELT , MPEG-4 , MP3 och andra) men Ogg var avsett att användas och brukar användas med följande Xiph.org gratis codecs:

  • Audio
    • Förlorad
      • Speex : hanterar röstdata vid låga bithastigheter (~ 2,1–32 kbit/s/kanal)
      • Vorbis : hanterar allmän ljuddata med variabla bithastigheter på mellan till hög nivå (–16–500 kbit/s per kanal)
      • Opus : hanterar röst, musik och generiskt ljud vid låga och höga variabla bithastigheter (≈6–510 kbit/s per kanal)
    • Förlust mindre
      • FLAC hanterar arkiv- och högupplöst ljuddata.
      • OggPCM gör det möjligt att lagra vanligt okomprimerat PCM -ljud i en Ogg -behållare
  • Video
  • Text
    • Continuous Media Markup Language : en text-/applikationskodek för tidsbestämda metadata, textning och formatering.
    • Annodex : En uppsättning standarder med fri och öppen källkod som utvecklats av CSIRO för att kommentera och indexera nätverksmedier.
    • OggKate: En overlay -codec, ursprungligen designad för karaoke och text, som kan multiplexeras i Ogg.

Medietyper

7587 och 7845
.

Se även

Referenser