MP3は320kbps固定より可変ビットレートの方が音質が高い
去年9月、HydrogenAudioのIgorC氏によるテスト結果で、LAME MP3のエンコーダでなんと320kbps CBRよりV0 VBR(260kbps程度)の方が音質が高いと示されていた。
結果には同時にAACのテスト結果も示されており、それによると、192kbpsのApple AACは全てのMP3の結果を凌いでいることもわかる(一番右)。AACの優秀さは驚くことではなく、本サイトでも何度かApple AACの優秀さを示している。
なぜ可変ビットレートの方が音質が高い?
AACはともかく、なぜMP3において固定ビットレートの最高設定の限界の320kbpsより可変ビットレートの最高設定(V0)の方が音質が高いのだろうか。
固定ビットレート(CBR)という圧縮方法は、必ず指定されたビットレートを維持しなければならない(例えば320kbps)。つまり、無音やとても単純な音が来ても必ず320kbpsに合わせないといけないのであり、例えてみるならば、乗車定員320人の電車に320人乗らなかったので、320人分の「重し」を積み込んでみました、というのに近い。定員320人なのに、30人しか来なかったので、290人分の重し、例えば17.4トンの砂を積んだわけだ。この電車のダイヤは、曲が終わるまで続く。無音に近い曲なら、320人分の重しだけを最後まで運ぶのだ。これをパディングという。
これは無駄が多いので可変ビットレート(VBR)というものが生み出された。30人乗るなら30人の車両、320人来た場合は、320人の車両を用意する。毎回、人数分キッカリの席数、長さの電車が来て、人数ちょうどを運ぶイメージだ。人数が減れば車両を減らし、増えれば車両を増やす。無駄がない。
MP3では固定ビットレートにおいて、全てのフレーム(車両の数)を同じサイズにする。一方で、可変ビットレートでは車両の数(座席数と言い換えても良い)が変わるのである。
MP3の規格上では、全体で見た場合は320kbpsが限界である。しかし、一瞬だけ320kbpsを超えられるビットリザーバーという仕組みがある。単純な音の場合はそれほどビットレートを割り振る必要がないので、ビットリザーバーにその力を「貯金」しておく。そして、複雑な音が来たらその「貯金」を取り崩して、ビットレートをあげ、音質を上げるのである。
つまり、貯金をしていた分だけ局所的により多くのビットレートを割り振れ、ブーストが掛けられるので、音質が良くなるのだ。
電車の例で考えると良い。運んだ人数に対して最も車両数が少なかったのは可変ビットレートであることは疑う余地もないだろう。無駄な重しを積んでいないのだ。車両数が少ないので、全長(ファイルサイズ)も小さくなる。
ビットリザーバーは固定ビットレートでも可変ビットレートでも共に使われるが、LAMEの場合その処理が異なるため、可変ビットレートの方が音質が良くなったようである。
LAMEのV0で圧縮した場合、不要なビットレートを抑えつつも、瞬間的にはビットレートをブーストしているが、平均的には260kbpsになるようになっている。
圧縮で固定ビットレートを使う意味は(ほぼ)ない
VBRが適切に再生されない再生機や、VBRのアルゴリズムが洗練されていない時代、固定ビットレートは敬遠されてきた。また、インターネットが低速だった時代は、ダウンロード時間が予測できたり、回線の上限にキャップしないように固定ビットレートが望まれた。あるいは、ドライブレコーダーやデジタルカメラにおいてはハードウェアの制限で固定ビットレートが使われていることもある。
また、AVIなど古い動画コンテナの場合も固定ビットレートが好まれた。AVIは固定ビットレートにしか対応しない古い設計で、可変ビットレートでは音のズレなどが現れた。現在はMP4やMKVなど優れたコンテナが広く使われているので、これらに固定ビットレートを使用する意味はない。
しかし、現在は固定ビットレートに固執する時期はすぎており、ほぼ全ての場面で可変ビットレートで良い。
MP3の低ビットレートでは固定ビットレートや平均ビットレート(ABR)が音質がいい場合もあるが、その領域ではMP3を使うよりOpusや(HE-)AACなどを利用するのが良い。
固定ビットレート不要論は、他のコーデックや動画にもいえるが、必要な場面もある
今回はMP3の話であったが、同じことはAACでもいえるし、Opusに至ってはVBRが強く推奨される。ではなぜ固定ビットレートがあるのか。例えば地上デジタルテレビの例を考えたい。
地デジは限られた電波の帯域を利用し、それをフルに過不足なく使い切って映像と音声を伝送している。ビットレートが高すぎて帯域が不足すれば伝送できないし、足りなければ割り当てられた電波の帯域が無駄になる。限られた帯域を過不足なく使い切るには、固定ビットレートしか選択肢がない。こうした技術的制限がある場合に固定ビットレートが推奨される。
他に、固定ビットレートが使われる場面にライブ配信がある。YouTubeライブのマニュアルでは強く固定ビットレートによる配信を推奨している。これはインターネットの帯域に対して予測可能な上りビットレートを割り振るためであり、求められる画質に対して、インターネット回線が十分太ければ、可変ビットレートでも良いのだ。
それは配信サイド(送出側)に限った話であり、ライブ配信を見る側(視聴者)はYouTubeの再エンコードにより、可変ビットレートでの動画を見ている。これは帯域幅を最小限に抑える方法としては可変ビットレートの方が固定ビットレートより優れているからに他ならない。同じコンテンツを同じ品質で送る場合、必ず固定ビットレートより可変ビットレートの方がサイズが同等か小さくなる。
固定ビットレートはサイズを予測したり、帯域幅に制限がある場合でかつそれを過不足なく使い切る時に力を発揮するが、それ以外の場合は無駄である。例えば音楽をUSBメモリに保存する場合や、ポッドキャストでの配信の場合も固定ビットレートである必然性はない。逆に固定ビットレートにすることで音質が損なわれたり、無駄に容量を使用する。
一般的に、エンコーダの開発者は可変ビットレートの品質改善に力を注いでいる。可変ビットレートは固定ビットレートに比べて設計が複雑になるが、サイズに対する品質が良くなるからだ。何らかの制約がない限り、可変ビットレートをまず採用するべきだろう。