トップへ
田村研究室

マルチメディア論および演習

2009年度

2009
5/18

音声データファイル形式と音声圧縮

代表的なコンテナ形式の音声データファイル形式

音声を格納するファイル形式は,通常コンテナフォーマットと呼ばれる.「コンテナ」と称されるのは,拡張子などのファイル名などから判断される器に,様々な圧縮形式でデータを格納することができるためである.音声と映像データを圧縮・解凍するためのプログラムのことをコーデック(codec)と呼び,音声ファイル用のコンテナフォーマットは様々なコーデックに対応している.例えば,windowsで標準に用いられていた「.wav」のWAVE形式ファイルは,格納するデータに無圧縮形式のデータからmp3形式で圧縮されたデータなどまで格納することができる.

AU形式

Sun Microsystems社が定めたファイル形式.かつてのUNIX系OSではよく用いられていたため,UNIX上の音声処理プログラムでは一般的な形式であった.通常の利用では,8bitまたは16bitの無圧縮データまたは8bitのμ法則による圧縮データが格納される.その他の圧縮形式のデータも格納することも可能ではある.拡張子は「.au」であることが多い.

WAVE形式

拡張子「.wav」のファイルで,Windows標準の音声ファイル形式.このファイル形式も,実体のデータとしてはいろいろな圧縮形式のデータを格納することができる.ただし,通常無圧縮で用いられることも多い.

AIFF形式

Audio Interchange File Formatの略.拡張子「.aif」「.aiff」.主としてappleのマシンでよく使われる.無圧縮形式で用いられる.圧縮データを格納した場合には,「.aifc」という拡張子が用いられれることもある.

Ogg形式

拡張子は「.ogg」パテントフリー形式の圧縮コーデックVorbisを格納することができるコンテナフォーマット.ただし,事実上Vorbis専用であり,Ogg/Vorbisと呼ばれることが多い.

ASF

Microsoft社のWindowsで,DirectShow機能を利用するための標準コンテナフォーマット.例えばWindows標準の音声コーデックWMA形式などのデータや映像系のデータも格納できる.拡張子は「.asf」

MP4形式

MPEG-4形式のデータを格納するためのコンテナフォーマット.拡張子は様々で,拡張子は.mp4,.m4a,.m4b,.m4pがある.派生フォーマットには.3gp,.3g2などが存在する.これは3G携帯電話の業界団体が発足した標準化プロジェクト3GPP,その後の3GPP2に由来する.その携帯電話の標準フォーマットとしてMPEG-4が採用された.音声だけでなく映像なども格納できるコンテナとなっている.

代表的な専用形式の音声データファイル形式

コンテナ形式に対して,特定コーデックだけを格納する目的で作られた専用データファイル形式もある.

MP3形式

MP3によって圧縮されたデータを格納するための専用形式.拡張子は「.mp3」.

ATRAC3形式

ソニーによる独自の非可逆圧縮形式であるATRAC3を格納するための専用ファイル形式.拡張子は本来は「.aa3」であるが,OpenMGによる暗号化が行われることが一般的で,通常は「.omg」「.oma」である.

AAC

AAC形式の圧縮コーデックを利用したデータを格納するための専用フォーマット.

MIDIデータ

MIDIデータを格納する形式には,標準MIDI形式(standard MIDI format)がある.拡張子は「.mid」である.MIDIデータの場合には,楽器メーカによる独自形式などもあり,その楽器や音源特有の機能を使うためにはその専用形式を必要とする場合がある.

代表的な音声圧縮

音声データ用のコーデックは,次の音声圧縮技法に基づくものが多い.

DPCM/ADPCM

音声を対象とする可逆圧縮方法のひとつ.DPCM(Differential Plusse Code Modulation: 差分PCM)を一番単純な例で説明する.ひとつ前のサンプリング値xi-1と,現在のサンプリング値xiの差分をとる.

yi = xi - xi-1
						

通常の音の波形はほとんど連続的に変化するものが多いことから,隣り合ったサンプリング値が極端に変化することはあまりないと考えられる.このため,隣り合ったサンプリング値の差(yi)は通常小さな値であることが期待できる.これから,サンプリング値が16bitであっても,差分値は8bitやもっと小さなビット数で表現可能のはずである.つまり,この性質を利用すれば,サンプリング値xiを直接記録するのではなく前の値との差分値yiを記録することでより少ない情報量で音声波形を記録可能となる.

この単純な例を一般化する.隣り合ったサンプリング値の差分ではなく,数個のサンプリング値を使って次のサンプリング値を予測する式が構築することを考えよう.例えば,現在のサンプリング値の他に直前のふたつの値を,ある係数を乗じて加えた式を考えると次のようなものになる.

zi = a×xi + b×xi-1 + c×xi-2
						

適切な係数を決めることができて,予測式が実際のサンプリング値とよく適合すれば,予測値と実際のサンプリング値の差は,より小さな値ばかりとなる.

yi = xi - zi
						

DPCMではこの予測式は圧縮対象に対して固定されてしまうが,実際に利用されるADPCM(Adaptive DPCM:適応DPCM)では,サンプリング値ごとに予測式を修正変化させることで,さらに予測値と実際のサンプリング値の差を小さく抑えて,圧縮率を向上している.

μ法則/A法則4

人間の聴覚特性では,単純にいって音量が大きいと,細かな音の大きさの違いが聞き取れなくなる.例えば,音の大きさが13bitで量子化されているとき(0から8192まで),10の音と11の音の大きさの違いははっきりわかるものの,4000と4001の音の大きさの違いは認識できない.これから,音が大きいときはより大雑把な量子化をしても人間の聴覚にはさほど影響をあたえないため,音の大きさを単純にそのまま二進数で量子化するのではなく,音の大きさの対数を符号化することで音の振幅値の表現を圧縮する.

実際には,対数そのものを計算せずに,整数による変換表が規格化されており,日本・アメリカで用いられるμ法則と,ヨーロッパで用いられるA法則が存在する.両者とも同じ考え方だが,実際の変換表の数値が異なる.変換表を使って,ある範囲の値を特定の値に丸めるため,非可逆圧縮となる.

MPEGオーディオ圧縮

この圧縮方法を用いたファイルとしては,一般にMP3として表現されるものがよく用いられている.MPEGとは,後の講義で説明する動画形式のひとつであり,使用環境別に3種類存在する.

  • MPEG-1 通常のテレビ画像などを対象とし,Video-CDなどに格納する用途
  • MPEG-2 HDTVなども対象とし,DVD-Videoなどに格納する用途
  • MPEG-4 インターネットでの配信や携帯電話などを対象とした用途

※MPEG-3は,MPEG-2と統合されたため欠番

これらMPEGのうちAudio部分だけのものも音声ファイルとして単独利用されている.これは圧縮率の違いによりレイヤ1からレイヤ3まで3段階に分けられるが,特に,MPEG-1/Audioでもっとも圧縮率の高いレイヤ3の音声ファイルのことをMP3と呼ぶ.

一番単純なMPEG-1/Audioのレイヤ1では,音声波形を一度周波数成分に変換する.変換には通常のFFTとは異なるPFB(Polyphase Filter Bank)と呼ぶ手法を用いる.これは周波数成分を,いくつかのサブバンドに区切って取り出す.MPEG-1/Audioでは全周波数を32分割する.

人間の聴覚の特性として,実は周波数によって聞き取れる音の小ささが異なることがわかっている(絶対可聴域).基本的に低い周波数の音は小さくても聞き取れるが,高い周波数成分(例えば15kHz以上)だと大きい音でないと聞き取れない.また,ある周波数の大きい音が存在すると,その周波数に近い小さな音は聞き取れないことがわかっている.これをマスキング効果と呼んでいる.

このふたつの聴覚特性から,サブバンドごとに聞き取れることのできる音の大きさが決定できる.その大きさ以下の音は聞き取れないため,その音を省略してしまっても人間の耳には影響しない.これを利用して,情報を削除する非可逆圧縮を行う.

レイヤ3では,このレイヤ1での圧縮に対する基本的な考え方に加えて,通常のハフマン圧縮や,非線型量子化・MDCTなどの技術を追加してさらに圧縮率を向上している.

MPEG-2 AAC/ MPEG-4 AAC

MP3に変わる音声圧縮方式として普及.iPodやPSP,携帯電話(着うたフル)で広く利用されている.この形式のデータを含むコンテナ形式は,MP4形式があるため,拡張子は.mp4,.m4a,.m4b,.m4p,.3g2,.aacなどで使用されている.

ATRAC

ソニーによる独自圧縮形式.

Vorbis

パテント(ライセンス料)フリーの圧縮方式.企業によるAACと,性能面でもひけをとらないとされる.ただし,普及はいまひとつ.コンテナとしては事実上Oggだけであり,Ogg/Vorbisと一くくりにされることが多い.

MWA(Windows Media Audio)形式

Microsoft社が開発した現在のWindowsでの標準音声コーデック.