Ogg(/ ˈɒɡ / OG )は、デジタルマルチメディアの効率的なストリーミングと操作を可能にするために設計されたデジタルマルチメディアコンテナファイル形式です。Xiph.Org Foundationによって維持されており、ソフトウェア特許の制限を受けないフリーでオープンな形式です。[ 3 ]その名前は、コンピュータゲームNetrekの専門用語である「ogging」に由来しており、[ 4 ]ソフトウェアの初期バージョンの処理コストが高いことを示唆しています。[ 5 ]
Oggコンテナフォーマットは、音声、動画、テキスト(字幕など)、メタデータなど、複数の独立したストリームを多重化できます。Oggマルチメディアフレームワークでは、Theoraが非可逆動画レイヤーを提供します。音声レイヤーは、音楽向けのVorbisフォーマット、またはその後継であるOpusによって提供されるのが一般的です。可逆音声圧縮フォーマットには、FLACやOggPCMなどがあります。
2007 年までは、.oggファイル拡張子はOgg コンテナ形式を使用するすべてのファイルに使用されていました。それ以降、Xiph.Org Foundation は、Ogg Vorbis オーディオファイルにのみ使用することを推奨しています。Xiph.Org は、オーディオのみのファイル、音声の有無にかかわらずビデオ (Theora を含む)、多重化された Ogg.oggなど、さまざまな種類のコンテンツを記述するための新しいファイル拡張子とメディアタイプのセットを作成することを決定しました。[ 6 ].oga.ogv.ogx
Oggの様々なコーデックは、商用・非商用を問わず、数多くの無料および商用メディアプレーヤー、さらには様々なメーカーのポータブルメディアプレーヤーやGPS受信機に組み込まれている。
2017年11月7日現在、Xiph.Org Foundationのリファレンス実装の最新バージョンはlibogg 1.3.3です。[ 7 ]別のバージョンであるlibogg2は開発中ですが、2018年現在、書き直し待ちの状態です。[ 8 ]どちらのソフトウェアライブラリもフリーソフトウェアであり、New BSDライセンスの下でリリースされています。Oggリファレンス実装は2000年9月2日にVorbisから分離されました。[ 9 ]
Ogg Vorbisプロジェクトは1993年に始まりました。当初は「Squish」という名前でしたが、既に商標登録されていたため、プロジェクト名は変更されました。新しい名前「OggSquish」は2001年まで使用され、その後再び「Ogg」に変更されました。Oggはその後、コンテナフォーマットを指すようになり、現在はより大規模なマルチメディアプロジェクトであるXiph.orgの一部となっています。今日、「Squish」(現在は「Vorbis」として知られています)は、Oggコンテナフォーマットで一般的に使用される特定のオーディオ符号化フォーマットを指します。
Ogg は、コンピュータ ゲームNetrekの専門用語である「ogging」に由来し、将来のリソースの消耗を考慮せずに何かを強引に行うことを意味するようになった。[ 4 ] Ogg プロジェクトの開始当初、当時のPCハードウェアの限られた能力を考えると、作者たちはこのプロジェクトをやや野心的だと考えていた。Ogg という名前は、テリー プラチェットのディスクワールド小説に登場するナニー オッグとは関係ないが、「Vorbis」は、テリー プラチェットの小説『 Small Gods』に登場する別のキャラクターにちなんで名付けられている。[ 5 ]
主にXiph.Org財団によって設計された「Ogg」ビットストリームフォーマットは、マルチメディアファイルのエンコードとデコードのためのコンポーネントセットを作成することを目的とした、より大規模なイニシアチブの枠組みとして開発されました。これらのコンポーネントは無料で利用でき、ソフトウェアとハードウェアで自由に再実装できます。
このフォーマットは、「Oggページ」と呼ばれるデータの塊で構成されています。各ページは「OggS」という文字で始まり、ファイルがOggフォーマットであることを示しています。
ページヘッダーにある「シリアル番号」と「ページ番号」は、各ページがビットストリームを構成する一連のページの一部であることを示します。複数のビットストリームはファイル内で多重化される場合があり、その場合、各ビットストリームのページは含まれるデータのシーク時間に基づいて順序付けられます。また、ビットストリームは既存のファイルに追加される場合もあり、このプロセスは「チェイニング」と呼ばれ、ビットストリームが順番にデコードされるようにします。
BSDライセンスのライブラリ「libvorbis」は、「Vorbis」ストリームからのデータのエンコードとデコードに使用できます。独立したOgg実装は、RealPlayerやDirectShowフィルターセットなどのいくつかのプロジェクトで使用されています。[ 10 ]
MOGG(「Multi-Track-Single-Logical-Stream Ogg-Vorbis」)は、マルチチャンネルまたはマルチトラックのOggファイル形式です。
以下は、Oggページのヘッダーのフィールドレイアウトです。

セグメントは、セグメントをパケットにグループ化する方法を提供します。パケットは、デコーダにとって意味のあるデータ単位です。セグメントの長さが255と指定されている場合、次のセグメントはこのセグメントに連結され、同じパケットの一部であることを示します。セグメントの長さが0~254の場合、このセグメントはこのパケットの最後のセグメントであることを示します。パケットの長さが255の倍数である場合、最後のセグメントの長さは0になります。
最終パケットが次のページに続く場合、最終セグメント値は255となり、次のページで継続フラグが設定されて、新しいページの開始が前のページの続きであることを示します。
VorbisComment は、Ogg Vorbis で使用するために最初に作成された基本レベルのメタデータ形式です。その後、Theora、Speex、FLAC、Opusなど、他の Xiph.Org コーデックの Ogg カプセル化の仕様に採用されました。VorbisCommentは、Xiph.Org コーデックでメタデータを保存するための最もシンプルで広くサポートされているメカニズムです。[ 11 ]
特に、サムネイルとカバーアートのVorbisComment内の1 つ以上は、対応するFLACのBase64エンコードされた値を持っています。言い換えれば、FLAC はサムネイルとカバーアートをバイナリ ブロックに格納します。FLACタグの外側にリトルエンディアンで格納されます。[ 12 ] [ 13 ]METADATA_BLOCK_PICTURE=METADATA_BLOCK_PICTUREMETADATA_BLOCK_VORBIS_COMMENT
その他の既存および提案されているメカニズムは次のとおりです。[ 14 ]

Ogg プロジェクトは、1993 年により大きなプロジェクトの一部として、シンプルなオーディオ圧縮パッケージから始まりました。[ 5 ]このソフトウェアは当初Squishという名前でしたが、既存の商標のためOggSquishに改名されました。この名前は後に Ogg プロジェクト全体に使用されるようになりました。1997 年に、Xiphophorus OggSquish は「現代のオーディオ アプリケーション用の柔軟な圧縮オーディオ フォーマットを作成するとともに、あらゆる現代のコンピュータ プラットフォームで共通の最初のオーディオ フォーマットを提供する試み」と説明されました。[ 16 ] 2000 年に、OggSquish は「関連する複数のマルチメディアおよび信号処理プロジェクトのグループ」と呼ばれました。2000 年に、計画されたリリースに向けて、Ogg Vorbis フォーマットと libvorbis (Vorbis のリファレンス実装) の 2 つのプロジェクトが活発に開発されていました。研究には、将来のビデオおよびロスレス オーディオ コーディングに関する作業も含まれていました。[ 5 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] 2001年にOggSquishはOggに改名され、「関連する複数のマルチメディアおよび信号処理プロジェクトのグループを包括するもの」と説明されました。[ 21 ] Oggは、より大きなXiph.orgマルチメディアプロジェクトの一部として、ファイル形式を表すようになりました。Squishは、Oggコーデックの1つの名前になりました。[ 5 ] 2009年には、Oggは「マルチメディアコンテナ形式であり、Xiph.orgマルチメディアコーデックのネイティブファイルおよびストリーム形式」と説明されました。[ 22 ]
Oggのリファレンス実装は、2000年9月2日にVorbisから分離されました。[ 9 ]
2003年5月、このフォーマットに関連する2つのインターネットRFCが公開されました。OggビットストリームはRFC 3533(「情報提供」に分類される)で定義され、そのインターネットコンテンツタイプ()はRFC 3534(2006年現在)で定義されています。 application/ogg (提案された標準プロトコル)。2008 年 9 月に RFC 3534 はRFC 5334によって廃止され、コンテンツ タイプ、およびファイル名拡張子 .ogx、.ogv、.oga、.spx が追加されました。 video/oggaudio/ogg
2002年、Oggに正式なビデオサポートがなかったため、 OGMファイル形式が開発されました。これはOggのハックであり、Microsoft DirectShowフレームワークからのビデオをOggベースのラッパーに埋め込むことができました。OGMは当初、クローズドソースのWindows専用ツールでのみサポートされていましたが、その後コードベースが公開されました。後に、ビデオ(および字幕)サポートがOggで正式に規定されましたが、OGMと互換性のない方法で行われました。これとは別に、Matroskaコンテナ形式が成熟し、Vorbisオーディオと任意のビデオコーデックを組み合わせることに関心のある人々に代替手段を提供しました。その結果、OGMはもはやサポートも開発もされておらず、Xiph.orgによって正式に推奨されていません。[ 23 ]現在、Oggのビデオは.ogvファイル拡張子で見つかり、これは正式に規定され、公式にサポートされています。.ogmファイルをサポートするソフトウェアとコーデックは無料で入手できます。[ 24 ]
OggはMPEG規格[ 25 ](例:MP3 / MP4)ほど普及していなかったが、 2006年時点ではOgg は、無料コンテンツ(無料音楽、ウィキメディア財団プロジェクトのマルチメディア、クリエイティブ コモンズファイルなど)のエンコードによく使用され、かなりの数のデジタル オーディオ プレーヤーでサポートされ始めていました。また、Doom 3、Unreal Tournament 2004、Halo: Combat Evolved、Jets'n'Guns、Mafia: The City of Lost Heaven、Myst IV: Revelation、StepMania、Serious Sam: The Second Encounter、Lineage 2、Vendetta Online、Battlefield 2、Grand Theft Autoエンジン、 JavaベースのゲームMinecraftのオーディオ ファイルなど、多くの人気ビデオゲーム エンジンも Ogg フォーマットをサポートしていました。より人気のある Vorbis コーデックは、多くのソフトウェア プレーヤーで組み込みのサポートがあり、残りのほとんどすべてに拡張機能が利用可能でした。
2007 年 5 月 16 日、フリー ソフトウェア財団 (FSF) は、「倫理的、法的、技術的に優れた、独自の MP3 フォーマットの代替オーディオ形式」として Vorbis の使用を増やすキャンペーンを開始しました。[ 26 ]また、ウェブサイトやブログにウェブ ボタンを追加することでキャンペーンを支援することも推奨されました。FSF が推奨する Ogg プレーヤー ( VLC )をダウンロードして使用したくない人のために、 Xiph.Org Foundation はWindowsおよびMac OS XのQuickTimeベースのアプリケーション( iTunesプレーヤーやiMovieアプリケーションなど)用の公式コーデックを提供していました。[ 27 ] また、Windows ユーザーはWindows Media Player 用の Ogg コーデックをインストールできました。[ 28 ]
2009年6月30日までに、TheoraとVorbisを使用したOggコンテナは、Firefox 3.5ウェブブラウザのHTML5 と要素の実装に含まれる唯一のコンテナ形式となった。[ 29 ] [ 30 ]これは、HTML5ドラフト仕様で概説されたものの、後に削除された当初の推奨事項に準拠していた( Ogg論争を参照)。<video><audio>
2010年3月3日、 FFmpeg開発者による技術分析で、マルチメディアコンテナフォーマットとしてのOggの汎用性について批判的な意見が述べられた。[ 31 ] Oggの作者は後に自身の記事でこれらの主張に反論した。[ 32 ]
Oggは単なるコンテナフォーマットです。コーデックによってエンコードされた実際の音声または映像データは、Oggコンテナ内に格納されます。Oggコンテナには、複数のコーデックでエンコードされたストリームが含まれる場合があります。例えば、音声付きビデオファイルには、音声コーデックと映像コーデックの両方でエンコードされたデータが含まれます。
コンテナ形式であるOggは、さまざまな形式(Dirac、MNG、CELT、MPEG-4、MP3など)のオーディオとビデオを埋め込むことができます[ 33 ] [ 34 ]が、Oggは、次のXiph.orgフリーコーデックと一緒に使用されることを意図しており、通常はそのように使用されています。
Ogg オーディオ メディアは、ファイル拡張子、、 およびを持つIANAメディア タイプ として登録されています。これは、ファイル拡張子 を持つOgg ビデオ メディア タイプ の適切なサブセットです。他の Ogg アプリケーションは、ファイル拡張子 を持つメディア タイプを使用します。これは のスーパーセットです。[ 34 ]ファイル拡張子 を持つOpusメディア タイプは、後にRFC 7587および7845で登録されました。audio/ogg.oga.ogg.spxvideo/ogg.ogvapplication/ogg.ogxvideo/oggaudio/opus.opus
オギング:これは、自殺ランによってキャリアまたは潜在的なキャリアを殺す技術です。
このライブラリはリリースされず、再設計が必要なようです。