このサイトは、ほんの入り口です

ここにあるのは、だれかが実際に調べ、考え、作ってきたことを集めたメモです。気になったら、ページの下の「参考にした情報源」から、もとの本や記事、それを生み出した人たちに、直接ふれてみてください。このメモには書ききれないおもしろさが、そこにあります。

MP3は、音の なにを すてて いるの?

MP3は音の何を捨てているのか ── 耳の都合に合わせた「捨て方」と「捨てない工夫」

MP3の非可逆圧縮 ── マスキング・量子化・ハフマン符号化と、プリエコーという限界

分野:技術

MP3には、音を すてる だんと、すてない だんが あります。CDの 音の データを、11ぶんの 1ほどに できます(128キロビットの ばあい)。それなのに、ふつうに きいて いると、そんなに わるく きこえません。

どうして でしょう。すてて いるのは、耳が きづきにくい ところです。そして、すてない ところも あります。その ふたつの くふうが わかります。

MP3は、CDの音のデータを約11分の1ほど(128キロビット毎秒に設定した場合の計算)に小さくできます。それなのに、ふつうに聞いて、それほど悪く聞こえないように作られています。

なぜ、そんなことができるのでしょうか。耳が気づきにくいところを粗くする「捨てる段」と、書き方を短くする「捨てない段」の二段構えが、その答えのひとつです。何を捨て、何を捨てないのかが分かります。

MP3は、音の情報を減らす量子化と、数値を短く書くハフマン符号化を組み合わせている。CDの音声(1,411.2kbit/s)を、128kbit/sの設定で約11分の1にできる非可逆圧縮だ[2]。ところが中身を調べると、「捨てる段」と「捨てない段」の二段構えになっている[1]。

聞こえない音を全部消すわけでもない。では、何を捨て、何を残し、どこで破たんするのか。論文と解説資料から、その設計の考え方が分かる。

読み方を切り替えられます。画面の上にある「よみかた」のボタンで、小学校低学年むけ・小学校高学年むけ・中学生むけの3つの書き方に切り替わります。むずかしいと思ったら、いつでもやさしい方に戻ってください。選んだ読み方はブラウザが覚えているので、次に別の記事を開いたときも同じ読み方で始まります。

1. CDの 11ぶんの 1で、いいの?

1. CDの約11分の1にして、音はどこへ消えたのか

1. 1,411.2kbit/sが128kbit/sになる ── 圧縮率11:1の意味

CDの 音は、1びょうあたり、たくさんの すうじで できて います。MP3は、その すうじの かずを へらします。

たとえば 128キロビットに すると、CDの 11ぶんの 1ほどに なります[2]。1411を 128で わると、11に ちかい かずです。

ただし、128は 一れいです。MP3の 大きさは、つくる ときに えらべます[1]。

これだけ へらしても、ふつうに きく ぶんには、そんなに こまらないように つくって あります。では、なにを へらしたの でしょう。

CDの音声は、1秒あたり1,411.2キロビットのデータでできています。MP3で128キロビット毎秒を使うと、約11分の1になります[2]。1411.2÷128=11.025なので、およそ11という計算です。

ただし、128は設定の一例です。ビットレートは作る人が選べて、MPEG-1の規格では32〜320キロビット毎秒の範囲があります[2]。開発者のブランデンブルクの論文は、ステレオの目標を約128キロビット毎秒とし、それより低いと質が急に落ちる、と説明しています[1]。

つまり11分の1は、ねらった設定の一例です。これだけ減らして、ふつうに聞く分には困らないようにするには、どこかを削るしかありません。何を削るのでしょうか。

CD音声の1,411.2kbit/sに対し、128kbit/sのMP3は1411.2÷128=11.025、およそ11:1の圧縮になる[2]。ただし128は設定値の一例で、固定の圧縮率ではない。MPEG-1 Layer-3では32〜320kbit/sの範囲で選べる[2]。

ブランデンブルクの論文は、Layer-3の目標を1サンプルあたり約1.33bit(48kHzのステレオで128kbit/s)とし、それ以下では質が急に落ちると述べる[1]。この水準を境に、削る量と聞こえ方のつり合いが崩れる、という読み方ができる。では何を削れば、この低い目標に届くのか。問いは、人の耳の側に移る。

2. 耳は、ぜんぶの 音を きいて いるの?

2. 耳は、すべての音を同じように聞いてはいない

2. 可聴域と絶対聴覚閾値 ── 耳の感度は周波数で変わる

人の 耳が きける 音の たかさには、はんいが あります。ふつうは 20〜20000ヘルツと いわれます[5]。

この はんいの 中でも、きこえやすい ところと、きこえにくい ところが あります。いちばん きこえやすいのは、2000〜5000ヘルツの あたりです[5]。

また、たかい 音ほど、年を とると きこえにくく なるのが ふつうです[5]。人に よって、ずいぶん ちがいます。

さて、もし 大きな 音の すぐ そばで、小さな 音が ならんだら、どうなるでしょう。

耳に聞こえる範囲

人が聞ける音の高さ(周波数)は、一般に20〜20,000ヘルツとされます。個人差が大きく、高い音への感度は年とともに下がるのが普通です[5]。

同じ大きさでも、聞こえ方は変わる

まわりに音がないとき、平均的な聴力の人が聞き取れる最小の音を、絶対聴覚閾値といいます。この値は周波数で変わり、2〜5キロヘルツあたりでいちばん敏感です[4]。耳は、すべての高さの音を同じ感度で聞いているわけではありません。

この耳の癖を知っていれば、「聞こえにくいところには、細かいデータを割かなくてもよいのでは」と考えられます。さらに、まわりに大きな音があるとどうなるのかが、次の話です。

人の可聴域は一般に20〜20,000Hzとされ、個人差が大きい。高音への感度が加齢で下がるのも通常のことだ。もっとも聞こえやすいのは2,000〜5,000Hzである[5]。

ほかの音がない状態で、正常な聴力の平均的な耳が聞き取れる純音の最小レベルが絶対聴覚閾値で、1kHzで0dB SPL(20μPa)を基準とする。感度は周波数で変わり、2〜5kHzがもっとも敏感だ[4]。圧縮の設計にとって大事なのは、この閾値より下の成分が耳に届かない、という点だ。ただし閾値は個人差があり、年齢でも変わる。

3. 大きな 音の そばで、小さな 音は どうなる?

3. 大きな音のそばで、小さな音が聞こえなくなる ── マスキング

3. 同時マスキングと時間的マスキング

うるさい ところで、小さな こえで はなして も、あいてに きこえない ことが ありますね。大きな 音が、小さな 音を かくして しまうのです。

この はたらきを「マスキング」と いいます。MP3は、人の 耳の この せいしつを つかって、データを へらして います[2]。

かくれるのは、同じ ときの 音だけでは ありません。大きな 音が なる すこし まえや あとの ほんの みじかい 時間にも、小さな 音は かくれやすく なると いわれます[3]。

ただし、どんな 音でも かくれる わけでは ありません。では、かくれる 音を どうやって へらすの でしょう。

同時マスキングと時間的マスキング

ある音が別の音のせいで聞こえなくなる現象を、聴覚マスキングといいます。MP3は、この人の聴覚の限界を利用して、符号化の精度を下げる非可逆圧縮です[2]。

同時に鳴る音による同時マスキングのほかに、時間的マスキングもあります。大きな音の鳴り始めの少し前と、鳴り終わりの少し後にも効果が及び、前側は約20ミリ秒、後ろ側は約100ミリ秒ほどで弱まると説明されています[3]。1ミリ秒は1000分の1秒です。

ただし、これは平均的な説明で、音の高さや大きさで変わります。それでも、「聞こえるはずの音が聞こえにくくなる場面は、耳には日常的にある」と分かれば、データを粗くしてよい場所を探す道が見えてきます。

聴覚マスキングは、ある音(マスカー)のために別の音が聞き取りにくくなる現象で、MP3はこの知覚上の限界を利用して符号化の精度を下げる[2]。時間軸にも広がり、マスカーの開始前の効果は約20ms、終了後の効果は約100msで弱まるとされる[3]。

これらの値は一般的な解説で示されたもので、音の種類や個人で変わる。重要なのは、耳が閾値を、周波数と時間の両方で動かしている点だ。エンコーダが「どこまで粗くしても気づかれないか」を見積もるには、この動く閾値を推定する必要がある。次に、その使い方を見る。

4. けす のでは なく、ざつ音を かくす

4. 聞こえない音を消すのではなく、雑音をかくす

4. 量子化雑音をマスキング閾値の下に収める

MP3は、「きこえない 音を ぜんぶ けす」のでは ありません。すうじを 大ざっぱに する ことで、すこし 「ざつ音」が まじります。その ざつ音を、マスキングで かくれる 大きさに おさえるのです[1]。

ものの 長さを いう ときを おもいだして ください。つくえは「何ミリ」と いいます。やまの 高さは「3000メートルくらい」と いいます。大きい ものほど、大ざっぱで こまりません。MP3も、大きな すうじほど あらく あらわします[1]。

ただし ほんとうは、こう かんたんでは ありません。音を たくさんの はんいに わけ、はんいごとに 何ビット つかうかを きめて います[1]。

でも、すうじを あらくした だけでは、まだ 小さく なりません。そこで もう ひとつの くふうが つかわれます。

消すのではなく、雑音を隠す

ブランデンブルクの論文によると、MP3のエンコーダは、時間と周波数ごとのマスキングの強さを、心理音響学の規則で見積もります。そして、数値を粗く丸める(量子化する)ときに生じる雑音が、その強さより下に収まるようにします[1]。「聞こえない音を全部消す」のではなく、「雑音を聞こえない範囲に隠す」ことが目標です。

どこに何ビットを使うか

エンコーダは、音をまず32の帯域に分け、それぞれをさらに18の細かい帯域に分けます。そして、各部分に何ビットを割り当てるかを、心理音響のモデルで決めます[1]。

数値の丸め方にも工夫があります。べき乗則の量子化という方法で、大きな値ほど自動的に粗く表されます[1]。山の高さは「約3000メートル」でよくても、机の長さは「ミリ」まで測るのに似ています。ただし、これは直感のためのたとえで、実際の計算とは別物です。

エンコーダは、時間・周波数ごとの実際のマスキング閾値を心理音響学の規則で推定する。そして、量子化で生じる雑音をその閾値より下に保つことを狙う[1]。したがって「聞こえない成分を削除する」という説明は正確でなく、「雑音を聞こえない範囲に隠す」と読むのがよい。

実装では、ポリフェーズ・フィルタバンクで音を32の帯域に分け、各帯域をMDCTでさらに細かい周波数成分に分ける(通常の長いブロックでは18成分)。各部分に何ビットを割り当てるかは、心理音響モデルが決める[1]。量子化はべき乗則の量子化器で行い、大きな値ほど自動的に粗く符号化される。雑音整形が量子化の過程に組み込まれている形だ[1]。

ただし、数値を粗くするだけでは、ビット数の削減に限りがある。量子化後の数値をどう書くかが、もうひとつの鍵になる。

5. すてない ところも ある ── ハフマン

5. 捨てたあとに、捨てない段がある ── ハフマン符号化

5. 量子化の後段のハフマン符号化 ── 可逆の短縮

すうじを あらくした あとで、MP3は、その すうじを みじかく かきなおします。この かきなおしを「ハフマンふごうか」と いいます[1]。

よく 出てくる すうじには みじかい しるしを、あまり 出てこない すうじには ながい しるしを つけます。りゃくじで かくのと おなじで、いみは かわらず、かく 手間だけ へります。

ハフマンは、この かきなおしです。かきなおした ものは、もとの すうじに もどせるように きめられて います。この ふたつの だんでは、すてるのは すうじを あらくした ときです。

つまり MP3は、「すてる」と「すてない」の ふたつを くみあわせて います。

「捨てる段」の次に来る「捨てない段」

粗く丸めた数値は、さらにハフマン符号化で書き直されます[1]。ハフマン符号化は、よく出てくる値に短い記号を、まれな値に長い記号を当てる方法です。ノートで、よく使う言葉を略語に書き換えるのに似ています。書き換えた内容は、元の数値に戻せる形に決められています。

この点は、論文が直接述べているのではなく、符号化の一般的な性質にもとづく説明です。

だからMP3の中には、元に戻せない「量子化」と、元に戻せる「ハフマン」の両方が入っています。「MP3は全部が不可逆」と言い切るのは、少し単純すぎる見方です。

量子化された値は、ハフマン符号化で符号化される[1]。ハフマン符号化は、出現頻度の高い値に短い符号を割り当てる可逆の符号化だ。したがってMP3は、情報を捨てる量子化と、捨てないハフマン符号化の両方を含む。

ここで可逆と述べた点は、論文の引用ではなく、符号化の一般的な性質にもとづく。論文は「量子化値はハフマン符号化される」と述べるにとどまる[1]。「MP3は不可逆圧縮」という分類は全体としては正しいが、中身は不可逆の段と可逆の段の組み合わせだ。

これで設計は一巡した。では、このやり方は、どんな音でもうまくいくのか。

6. にがてな 音は? ── 立ち上がりと 人の こえ

6. 苦手な音がある ── 音の立ち上がりと、人の声

6. プリエコーと、「Tom's Diner」での調整

MP3には、にがてな 音が あります。たいこの「ドン」のような、いきなり はじまる 音です。ドンの すこし まえに、ざつ音が ひろがって しまう ことが あります。これを「プリエコー」と いいます[1]。

この ざつ音は、ふせぐのが いちばん むずかしい ものの ひとつと いわれて います[1]。

もうひとつ。つくった 人の ブランデンブルクさんは、スザンヌ・ヴェガさんの うた「Tom's Diner」を つかって、ちょうせいしたと はなして います。ほかの きょくでは よく きこえる 大きさでも、この うたの こえは ひどく きこえたそうです[6]。

人の 耳は、こえの ちがいに とくに びんかんだから、と かれは せつめいして います。ただし、MP3が この きょく せんようで 作られた わけでは ありません。

音の立ち上がりの前に、雑音が広がる

MP3の代表的な弱点が、プリエコーです。太鼓のように急に始まる音の、始まりの前に、雑音が広がります。論文は、この種の不具合は避けるのが最も難しいものの一つだ、と述べます[1]。論文では、音を処理する時間のまとまりがLayer-3で48キロヘルツのとき約18.6ミリ秒、AACでは短いブロックで約5.3ミリ秒、と比べられています。ただし、これは両者を比べるための数字で、MP3の遅延そのものではありません。

アカペラの声で、調整した

ブランデンブルクは、スザンヌ・ヴェガの「Tom's Diner」(伴奏のない歌)を使ってエンコーダを調整した、と語っています。ほかの曲ではよく聞こえる設定でも、彼女の声はひどく聞こえたそうです。人の耳は声の変化に特に敏感だから、というのが彼の説明です[6]。MP3がこの曲専用に作られたわけではありません。

彼は別の場面で、音楽の70%を処理するだけなら大学の学部生の課題でも簡単で、仕事は、ほぼすべてに対応させることだ、とも述べています[6]。むずかしい声や鋭い音を相手にするのが、技術者のやりがいだったのかもしれません。

プリエコーは、音の立ち上がりの前に量子化雑音が広がる不具合で、論文は、この種のアーティファクトは避けるのが最も難しいものに属すると述べる[1]。比較の文脈では、インパルス応答がLayer-3で48kHzのとき18.6ms、AACの短いブロックで5.3msとされる[1]。これは両方式の比較の数字で、MP3全体の遅延ではない。

ブランデンブルクは、インタビューで、スザンヌ・ヴェガのアカペラ曲「Tom's Diner」で調整したと語っている。他の曲ではよい設定でも、彼女の声はひどく聞こえた。理由として、人は言葉を理解しようとするため、声の変化にとくに敏感だと説明する[6]。MP3はこの曲専用ではない。

彼は、音楽の70%を扱うのは学部生のプロジェクトでも簡単で、仕事は、ほぼ完璧にすべてへ対応させることだ、とも述べた[6]。これはインタビューでの発言で、開発全体の評価ではない。

7. ぜんぶ のこす やりかたは? ── FLAC

7. 全部を残したいときは ── 可逆圧縮のFLAC

7. FLAC ── 残差をRice符号で符号化する可逆圧縮

こんどは、ひとつも すてない やりかたです。FLACは、「かぎゃくあっしゅく」と いう しゅるいで、もとの 音と まったく おなじに もどせます[7]。

まず、音の かたちを おおまかに あらわします。もとの 音との ちがいだけを、みじかい ふごうで かきます[7]。

ですから、すてた ぶんは ありません。そのかわり、MP3のように 11ぶんの 1までは 小さくなりません。

MP3も FLACも、「小さく したい」ねがいは おなじです。ちがうのは、ひとつも すてたく ないか、すこし すてても いいかです。

ひとつも捨てない圧縮

FLACは、可逆圧縮のファイル形式です。まず信号を近似し、元の音との差(残差)をライス符号という方法で可逆に符号化します。そのため、デコーダは元の音を正確に再構成できます[7]。

MP3が「耳に気づかれにくい範囲で粗くする」圧縮なのに対し、FLACは「元に戻せる範囲で短くする」圧縮です。どちらが良いかは、目的しだいです。小さくしたいのか、元の音をそのまま残したいのかで、選びたい形が変わります。

FLACの具体的な圧縮率は、この記事では示しません。

FLACは信号を近似し、元との差(残差)をRice符号で可逆に符号化する。デコーダは元の音声を正確に再構成できる[7]。MP3の量子化に当たる「捨てる段」を持たないため、情報は残る。その代わり、MP3の約11:1のような大きな圧縮率は、一般には期待できない。

ただし、FLACの具体的な圧縮率は、使った資料に数字がなく、ここでは示さない。MP3は耳の限界を利用して精度を下げ、FLACは元の音を完全に残す。どちらも「小さくする」ための設計だが、問いの出し方が違う。前者は「どこまで粗くしても気づかれないか」、後者は「どうすれば同じ情報を短く書けるか」だ。

8. かくれる 音を、じぶんの 耳で さがそう

8. 小さな音がかくれる様子を、自分の耳で試す

8. マスキングを体験し、資料の読みどころを知る

しずかな へやで、ちいさく カチカチ なる とけいを みつけます。うでどけいでも、おき時計でも かまいません。まず、とけいの 音が きこえる ところまで、とけいから 遠ざかって みましょう。

つぎに、せんぷうきを「よわ」で まわして もらいます。おなじ ところで、とけいの 音は どう きこえるでしょう。きこえなく なったら、すこし ちかづきます。

せんぷうきの 風を、からだに あてすぎないように します。大きな 音で 耳を いためない ように、おうちの 人と やりましょう。

音が きこえにくく なったら、それも マスキングの 一れいです。きこえかたは、人に よって ちがいます。

静かな部屋で、小さくカチカチと鳴る時計を用意します。腕時計でも置き時計でもかまいません。まず、時計の音がぎりぎり聞こえる距離まで離れてみます。

次に、家の人に扇風機を「弱」で回してもらいます。同じ場所で、時計の音はどう聞こえるでしょうか。聞こえなくなったら、少しずつ近づいてみます。扇風機の風を体に当てすぎないこと、耳を痛めるような大きな音を出さないことは守ってください。

ここで起きたことは、マスキングの一例です。音の高さや部屋によって変わるので、結果は人や場所でちがってかまいません。

もっと知りたくなったら、MP3の中身を書いたブランデンブルクの論文[1]や、FLACの公式な説明[7]を開いてみてください。

家庭でマスキングを確かめるなら、静かな部屋で小さく鳴る時計を使い、ぎりぎり聞こえる距離を測る。次に扇風機を「弱」で回し、同じ位置での聞こえ方を比べる。扇風機の風を体に当て続けない、大きな音を出さない、の2点は守る。結果は部屋・時計・個人で変わり、閾値を測る実験ではなく、現象の体感にとどまる。

資料を読むなら、MP3の設計全体はブランデンブルクのAES第17回国際会議の論文[1](英語)が一次資料になる。声への敏感さと調整の逸話は同氏のインタビュー[6]、可逆圧縮の仕組みはFLACの公式な形式説明[7]が読める。MP3とFLACの音の差を実際に聞き分けられる人の割合は、この記事の範囲外で、調べる価値のある問いだ。

しらべた もとの じょうほう

参考にした情報源

参考にした情報源と、その使い方

出典について:開発者の論文、Wikipedia、インタビュー、FLACの公式な説明を使った。何に使ったかは、それぞれの項目の最後に書いている。

  1. Karlheinz Brandenburg, "MP3 and AAC explained", AES 17th International Conference, 1999(英語)。https://www.ee.columbia.edu/~dpwe/papers/Brand99-mp3.pdf (マスキング閾値、量子化、ハフマン符号化、プリエコー、目標ビットレートについて。一次資料)
  2. MP3(Wikipedia、英語)。https://en.wikipedia.org/wiki/MP3 (CDとMP3のビットレート、圧縮率、聴覚マスキングの利用について。二次資料)
  3. Auditory masking(Wikipedia、英語)。https://en.wikipedia.org/wiki/Auditory_masking (同時マスキングと時間的マスキングについて。二次資料)
  4. Absolute threshold of hearing(Wikipedia、英語)。https://en.wikipedia.org/wiki/Absolute_threshold_of_hearing (聞き取れる最小の音について。二次資料)
  5. Hearing range(Wikipedia、英語)。https://en.wikipedia.org/wiki/Hearing_range (人の聞こえる範囲と年齢による変化について。二次資料)
  6. Internet History Podcast, "On the 20th birthday of the MP3, an interview with the father of the MP3, Karlheinz Brandenburg"(2015年、英語)。https://www.internethistorypodcast.com/2015/07/on-the-20th-birthday-of-the-mp3-an-interview-with-the-father-of-the-mp3-karlheinz-brandenburg (Tom's Dinerでの調整と、声への敏感さについての本人の発言。インタビュー)
  7. Xiph.org, FLAC format overview(英語)。https://xiph.org/flac/documentation_format_overview.html (FLACが可逆圧縮であることについて。公式資料)

なおした ところ

更新履歴

更新履歴(改版の記録)

  •  初版を公開。

このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。