oggというのは、いろいろなメディアファイルを格納するための、フォーマット形式であり、別名コンテナと呼ばれる。一般的にoggファイルは、vorbis音声圧縮されたサウンドデータが格納されるので、oggという圧縮方式と勘違いされるが、mp3などに対応する音声圧縮方式は、このvorbis方式となる。
現在、マトロシュカ・コンテナ(拡張子mkv)形式のコンテナにも、vorbis圧縮のデータが可能できるようになり、ogg ファイルとしての存在価値は下がっているが、ゲーム開発などにおいては未だ最前線で利用されている。これは vorbis圧縮がライセンスフリーであり、また再生遅延が無い(再生ライブラリによっては存在するが)ので、遅延を許さないゲームサウンドシーンでは長方されるためだ。
oggのソースコードの導入には、下記のアドレスからダウンロードする。
http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
基本的に非常にシンプルな構造であり、内部の圧縮ファイルへのファイルアクセスの為の関数が提供されているだけとなる。
vorbisのソースコードの導入には、下記のアドレスからダウンロードする。
http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz
利用方法は基本的に展開するrawサウンド用のメモリを確保し、それに対して順に解凍しながらハードウェアに対して展開されたrawサウンドを設定する。この場合複数の領域を使って解凍を管理するため、それらのプログラミングに手間がかかる。
Tremorは arm用にカスタマイズされた vorvisの整数演算でデコードするライブラリ。内部では armのアセンブラを利用し、高速にデコードすることを目的としたもの。