「libvorbis」の編集履歴(バックアップ)一覧はこちら
「libvorbis」(2009/03/01 (日) 23:46:31) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*libvorbisソースコードの解説
libvorbisは(Ogg)Vorbisのエンコードとデコードのための統合ライブラリ。現状のソースコード(Xiph.Org libvorbis1.2.0)にあるファイルについて述べる。これらの説明は適切でない部分もあるかも知れない。私自身も全てを正確に理解している訳ではないので、その辺はご了承願いたい。なにか間違いなどあれば、上記のメニューより連絡されたし。
以下は私的なメモより抜粋したものを修正・加筆したものである。このページがlibvorbisに興味がある方々の参考になれば幸いである。
**\lib
***analysis.c
一つのブロックを分析する時に使う。詳細は不明。
***backends.h
residueやmappingのバックエンド周りの定義。
***barkmel.c
bark melなどの心理聴覚モデルのための単位変換。実際のエンコード処理には使われない。
***bitrate.c
ビットレートのトラッキングとマネージメント。主にマネージメントモード用。
***bitrate.h
bitrate.cのヘッダファイル。
***block.c
ブロック周りの処理、初期化、開放、エンコード・デコード処理を含む。
***codebook.c
コードブックのエンコード・デコード処理。
***codebook.h
codebook.cのヘッダファイル。
***codec_internal.h
全体で使われる構造体などの定義。
***envelope.c
ブロックスイッチングのための分析処理。
***envelope.h
envelope.cのヘッダファイル。
***floor0.c
floor0のデコード処理。
***floor1.c
floor1のエンコード・デコード処理。
***info.c
ヘッダの処理(Vorbisコメントなど)
***lookup.c
ルックアップ参照元関数定義。
***lookup.h
loockup.cのヘッダファイル。
***lookup_data.h
lookup.cで使われるテーブル。
***lpc.c
LPC処理。floor0で使われる。
***lpc.h
lpc.cのヘッダファイル。
***lsp.c
LSP(LSF)変換処理。floor0で使われる。
***mapping0.c
ブロック毎のエンコード・デコードのメインシーケンスとして使われる。mappingは本来、特定のステレオマッピングを表すが、現状mapping0しか存在しない(mono/stereo)。
***masking.h
ATH/Masking(tone)パラメータ定義。
***mdct.c
直交変換。
***misc.h
メモリ確保周りの定義など。
***os.h
処理系依存の定義。
***psy.c
ビットレート割り当てや心理聴覚モデルの肝。
***psy.h
psy.cのヘッダファイル。
***psytune.c
チューニングに使われるもので実際には使用されない。
***registry.c
floor/residue/mapping(channel)バックエンド処理のためのレジストリ。
***registry.h
registry.cのヘッダファイル。
***res0.c
residueのpack/unpack処理。
***scales.h
スケール変換関連。
***sharedbook.c
shared codebookのエンコード・デコード処理。
***smallft.c
fft処理。tone maskingカーブ作成に使われる。
***synthesis.c
デコードのための下位API。
***tone.c
テスト用。
***vorbisenc.c
エンコードのためのAPI及び、セットアップ処理。
***vorbisfile.c
デコードのための上位API(フロントエンド)がある。
***window.c
PCMデータに窓処理をする。
***window.h
window.cのヘッダファイル。
**lib\books 以下
各種コードブック。
**lib\modes 以下
セットアップパラメータ・チューニングパラメータ群。
***floor_all.h
floorのセットアップ。使用するハフマンコードブックやfloorカーブの設定などを行う。
***psych_*.h
心理聴覚モデルのパラメータ群。
***residue_*.h
residueのセットアップ。使用するコードブック(ハフマン、ベクトル)の設定を行う。
***setup_*.h
変数類をtemplateにセットする。
----
用語関連
***ブロック
MDCTのブロック。また、VorbisにおけるブロックサイズはWindowサイズと一致する。周波数分解能はブロックサイズの半分である。
***floor(カーブ)
大体のオーディオスペクトルを表す。常にチャンネル毎に符号化される。
***residue
オーディオスペクトルからfloorカーブ分を取り去った残り。オーディオの詳細を表す。
*libvorbisソースコードの解説
libvorbisは(Ogg)Vorbisのエンコードとデコードのための統合ライブラリ。現状のソースコード(Xiph.Org libvorbis1.2.0)にあるファイルについて述べる。これらの説明は適切でない部分もあるかも知れない。私自身も全てを正確に理解している訳ではないので、その辺はご了承願いたい。なにか間違いなどあれば、上記のメニューより連絡されたし。
以下は私的なメモより抜粋したものを修正・加筆したものである。このページがlibvorbisに興味がある方々の参考になれば幸いである。
**\lib
***analysis.c
一つのブロックを分析する時に使う。詳細は不明。
***backends.h
residueやmappingのバックエンド周りの定義。
***barkmel.c
bark melなどの心理聴覚モデルのための単位変換。実際のエンコード処理には使われない。
***bitrate.c
ビットレートのトラッキングとマネージメント。主にマネージメントモード用。
***bitrate.h
bitrate.cのヘッダファイル。
***block.c
ブロック周りの処理、初期化、開放、エンコード・デコード処理を含む。
***codebook.c
コードブックのエンコード・デコード処理。
***codebook.h
codebook.cのヘッダファイル。
***codec_internal.h
全体で使われる構造体などの定義。
***envelope.c
ブロックスイッチングのための分析処理。
***envelope.h
envelope.cのヘッダファイル。
***floor0.c
floor0のデコード処理。
***floor1.c
floor1のエンコード・デコード処理。
***info.c
ヘッダの処理(Vorbisコメントなど)
***lookup.c
ルックアップ参照元関数定義。
***lookup.h
loockup.cのヘッダファイル。
***lookup_data.h
lookup.cで使われるテーブル。
***lpc.c
LPC処理。floor0で使われる。
***lpc.h
lpc.cのヘッダファイル。
***lsp.c
LSP(LSF)変換処理。floor0で使われる。
***mapping0.c
ブロック毎のエンコード・デコードのメインシーケンスとして使われる。mappingは本来、特定のステレオマッピングを表すが、現状mapping0しか存在しない(mono/stereo)。
***masking.h
ATH/Masking(tone)パラメータ定義。
***mdct.c
直交変換。
***misc.h
メモリ確保周りの定義など。
***os.h
処理系依存の定義。
***psy.c
ビットレート割り当てや心理聴覚モデルの肝。
***psy.h
psy.cのヘッダファイル。
***psytune.c
チューニングに使われるもので実際には使用されない。
***registry.c
floor/residue/mapping(channel)バックエンド処理のためのレジストリ。
***registry.h
registry.cのヘッダファイル。
***res0.c
residueのpack/unpack処理。
***scales.h
スケール変換関連。
***sharedbook.c
shared codebookのエンコード・デコード処理。
***smallft.c
fft処理。tone maskingカーブ作成に使われる。
***synthesis.c
デコードのための下位API。
***tone.c
テスト用。
***vorbisenc.c
エンコードのためのAPI及び、セットアップ処理。
***vorbisfile.c
デコードのための上位API(フロントエンド)がある。
***window.c
PCMデータに窓処理をする。
***window.h
window.cのヘッダファイル。
**lib\books 以下
各種コードブック。
**lib\modes 以下
セットアップパラメータ・チューニングパラメータ群。
***floor_all.h
floorのセットアップ。使用するハフマンコードブックやfloorカーブの設定などを行う。
***psych_*.h
心理聴覚モデルのパラメータ群。
***residue_*.h
residueのセットアップ。使用するコードブック(ハフマン、ベクトル)の設定を行う。
***setup_*.h
変数類をtemplateにセットする。
----
用語関連
***ブロック
処理する単位。VorbisにおけるブロックサイズはWindowサイズと一致する。周波数分解能はブロックサイズの半分である。
***floor(カーブ)
大体のオーディオスペクトルを表す。常にチャンネル毎に符号化される。
***residue
オーディオスペクトルからfloorカーブ分を取り去った残り。オーディオの詳細を表す。
表示オプション
横に並べて表示:
変化行の前後のみ表示: