fc2ブログ

Entries

FAAD2を使ってAAC再生ソフトを作る(その1)

AACデコーダFAAD2を使う前に


【AAC】
Wikipedia:AAC
音声圧縮方式。MP3のようにMPEGで規定される動画の音声圧縮に使用される。
筆者はMP3にとって変わられると思っていた技術であるが、高圧縮、高音質よりも、手軽に変換圧縮できて、再生プレイヤーが続々と出てきたMP3に押される形となっていたが、Apple iPodの出現によりAACコーデックは再認知されるに至る。

AACは音声圧縮方式であるため、AACファイルといった場合には、ファイル格納方式を決める必要があるが、それは拡張子によってある程度決められている。筆者は.AAC ADTS形式での格納が一般的であると考えていたが、世の中にはいろいろ格納されているようで、m4a、.m4b、.m4p、.3g2など、MP4形式での格納もされているようである。

今回紹介するFAAD2は色々な部品を噛ませることで、様々な格納方式に対応しているが、本ブログでの解説は私がスタンダードだと考えているADTS形式にて説明を行う。

【ADTS】
ADTSとはAudio Data Transport Streamの略で、データ送信規格である。基本的なデータの送信はヘッダ部データ部 ヘッダ部データ部 と各種情報が格納されたヘッダ部と実際のデータが格納されたデータ部とにわかれる。

AAC ADTSヘッダ
より抜粋、図に再編集。
#誰も図で書いてくれないから自分で書いてみたよorz

AAC_ADTS_HEADER


aacファイルが手元にある場合はバイナリファイル等で開いてみると良い。筆者の手元にiPod Shuffleがあるが最近はメモリスティックと化しているので試せないが、iPodのAACファイルがあれば見てみても良いと思う。データ部は暗号化されているだろうが、ヘッダ部は暗号化されていないはずである。要するにADTSヘッダを解釈できればそのファイルの情報がわかるという仕組みである。

図の下部には、あるファイルの一部分を抜き出してみた。
図のとおりに解釈していくと
MPEG-2 保護なし LC 44100kbps 2channel オリジナル 情報長16byte VBR
という情報が取得できる。プロファイルとチャンネル数、ビットレート、そしてデータ長が解ればデコード出来る。MP3にも似たようなヘッダが存在するが、今回の記事では説明を省く。

ここまで書いたら疲れました、次回FAAD2ライブラリを実際に紹介します。
この記事にトラックバックする(FC2ブログユーザー)
http://nanncyatte.blog52.fc2.com/tb.php/26-c33977af

トラックバック

コメント

[C102] No title

作成いただいた図が役に立ちました。
ちなみにsampling_frequency_indexの単位が
kbpsとなっていますが、これはkHzの誤りではないでしょうか?
  • 2012-04-11 11:57
  • yama
  • URL
  • 編集

[C103] Re: No title

> 作成いただいた図が役に立ちました。
> ちなみにsampling_frequency_indexの単位が
> kbpsとなっていますが、これはkHzの誤りではないでしょうか?

ご指摘の通りです、sampling_frequencyなのでkHzが正しい単位です。
いまごろ間違いに気がつくとは・・・あぁぁぁぁ
  • 2012-04-13 14:14
  • おおにし
  • URL
  • 編集

[C104] 承認待ちコメント

このコメントは管理者の承認待ちです

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Appendix

プロフィール

おおにし

Author:おおにし
おおにしの好き勝手エッセイ

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

Amazon

サーチ:
キーワード:
Amazon.co.jp のロゴ