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ファイルが手元にある場合はバイナリファイル等で開いてみると良い。筆者の手元にiPod Shuffleがあるが最近はメモリスティックと化しているので試せないが、iPodのAACファイルがあれば見てみても良いと思う。データ部は暗号化されているだろうが、ヘッダ部は暗号化されていないはずである。要するにADTSヘッダを解釈できればそのファイルの情報がわかるという仕組みである。
図の下部には、あるファイルの一部分を抜き出してみた。
図のとおりに解釈していくと
MPEG-2 保護なし LC 44100kbps 2channel オリジナル 情報長16byte VBR
という情報が取得できる。プロファイルとチャンネル数、ビットレート、そしてデータ長が解ればデコード出来る。MP3にも似たようなヘッダが存在するが、今回の記事では説明を省く。
ここまで書いたら疲れました、次回FAAD2ライブラリを実際に紹介します。
- http://nanncyatte.blog52.fc2.com/tb.php/26-c33977af
トラックバック
ちなみにsampling_frequency_indexの単位が
kbpsとなっていますが、これはkHzの誤りではないでしょうか?