オーディオ符号化の圧縮率
オーディオ符号化の圧縮率は、エンコード時のビットレートで決まります。前回( サンプリング周波数とビットレート・前編 - Smile Engineering Blog) では、原音(PCM)のビットレートを中心に書きましたが、今回はエンコード(符号化)のビットレートと圧縮率について書きたいと思います。
具体的には、低いビットレートを設定すれば圧縮率は高くなり、例えばファイル保存した場合、そのサイズが小さくなります。前回も書きましたが、圧縮前の音源(PCM)のビットレートは次です。
例えば、音楽CDは44.1kHzのステレオで、ビットレートは、
これをMP3やAAC等、例えば256kbpsでエンコードすると、圧縮率(原音を100%とした場合)は約18%で、ファイルサイズは1/5以下になります。
- 音楽CDを256kbpsでエンコード:256kbps / 1,411.2kbps = 約18%
仮に4分の音楽の場合、ファイルサイスは次になります。
サンプリング周波数44.1kHzの録音 | 4分の曲のファイルサイズ |
---|---|
原音のまま | 1,411.2kbps × 240秒 = 約40.4MB |
256kbpsでエンコード | 256kbps × 240秒 = 約7.3MB(+ヘッダ) |
最近は、CDという媒体で曲を入手する時代ではないので、古い話になりますが・・・
1曲が4分の場合、CD650MBに原音では16曲保存できますが、MP3やAACなど256kbpsでエンコードした場合、89曲収録できることになります。
サンプリング周波数44.1kHzの録音 | 4分の曲がCD(650MB)に収まる曲数 |
---|---|
原音のまま(音楽CD) | CD650MB / 40.4MB = 約16曲 |
256kbpsでエンコード | CD650MB / 7.3MB = 約89曲 |
webを参照するとビットレートの違いによる音質の聞き比べなどが出てきます。多分ビットレート以外は全て同じという条件とは思いますが、そもそも元の音源(PCM)のサンプリング周波数と、量子化ビット数によって音質に違いがあります(原音のビットレートが変わります)。アナログからデジタル変換(ADC)した時点でその条件により音質が決まります。条件の悪い音源をいくら高いビットレートでエンコードしても音質は悪いままです。また、同じビットレートでも、チャネル数(ステレオ or モノラル)によって、圧縮率は変わります。従って音質に対する評価も厳密に言うとビットレートの違いだけでは判断できません。 例えば48kHzと44.1kHzの16bitPCMを, 32kbps ~ 320kbpsでエンコードした場合の圧縮率は次になります。
PCM16bitの圧縮比(原音を100%とした時)
符号化 ビットレート | 48kHzステレオ (1,536kbps) |
48kHzモノラル (768kbps) |
44.1kHzステレオ (1,411.2kbps) |
44.1kHzモノラル (705.6kbps) |
---|---|---|---|---|
320kbps | 320/1,536 = 約 21% | 約42% | 320/1,411.2 = 約 23% | 約45% |
256kbps | 256/1,536 = 約 17% | 約33% | 256/1,411.2 = 約 18% | 約36% |
192kbps | 192/1,536 = 約 13% | 約25% | 192/1,411.2 = 約 14% | 約27% |
160kbps | 160/1,536 = 約10% | 約21% | 160/1,411.2 = 約 11% | 約23% |
128kbps | 128/1,536 = 約 8% | 約17% | 128/1,411.2 = 約 9% | 約18% |
64kbps | 64/1,536 = 約 4% | 約 8% | 64/1,411.2 = 約 5% | 約 9% |
32kbps | 32/1,536 = 約 2% | 約 4% | 32/1,411.2 = 約 2% | 約 5% |
原音との比較
ちょっとひねくれた考え方ですが、例えば、上記の条件のステレオとモノラルでどちらが原音に近いのでしょうか? 圧縮率だげで考えると後者になります。もちろん、ステレオは音の奥行が表現されるなどモノラルより表現方法で優っているのでこれを比較して音質を評価するのは意味がなですが、エンコードではステレオを利用して圧縮を効率良く行うアルゴリズム(M/Sステレオやインテンシティステレオ)がありますので、モノラルの半分の品質にはならず、ステレオの分効率よく圧縮がされています。
聞き比べ
実際に聞いてみると・・・
過去に検証した時の記憶では、上記表の条件でAACの128kbpsでは原音(PCM)と聞き分けが難しかったと記憶しています。これは個人差があると思いますし、私自身オーディオ、音響に携わっているにも関わらず、自分の耳が大したことがないと自覚をしていますので、もう少し上のレートでも原音との差が分かる人はいらっしゃると思います。低いところの32kbpsになると、さすがに音質の違いがはっきり分かります。音楽でいうとドラムのハイハットの金属音が良く分かると思います。
個人的には、音楽CDの44.1Hz, 16bit(ステレオ)ならば128kbps(1/10以下の圧縮)でも、十分に音質も失われず保存できると思っています。MP3でもAACでも128kbpsくらいあれば私の耳には十分です。
ビットレートは圧縮率で
仮に音声16kHz(量子化ビット数16ビットのモノラル)に、符号化ビットレート256kbpsを設定するとどうでしょう。。。圧縮率は100%なので原音と同じになります。原音と変わらない音質になるはずですが、フリーで出回っているエンコーダによっては変な挙動を招くかも知れません。
サンプリング周波数 | 量子化ビット数 | チャネル数 | 原音(PCM)のビットレート | 備考 |
---|---|---|---|---|
32kHz | 16 | 1 | 512 kbps | Super wide band |
24kHz | 16 | 1 | 384 kbps | |
16kHz | 16 | 1 | 256 kbps | Wide band |
8kHz | 16 | 1 | 128 kbps | Narrow band |
非可逆圧縮のAAC, MP3に関しては、いかに低レートでエンコードするかという研究の成果と思っていますので、圧縮率50%以上のビットレートを設定すると逆に良いことがないと個人的には思っています。50%くらいの圧縮率ならば、ロスレスがお勧めです(可逆圧縮、MPEG-4 ALSなど)。保存を考えるだけならPCMのままzipで圧縮しても、無音区間がある音声では半分くらいになる気がします。非可逆圧縮のAAC, MP3などでは、音質を重視するなら15~20%前後、高圧縮を重視して10%程度でも十分な音質と思います。 さらに、音声目的では10%未満で5%くらいでも大丈夫と思いますが、音声の場合は、48kHzや44.1kHzでビットレートを抑えるよりも、サンプリング周波数を落とすことを勧めます(8kHzや16kHz)。
M/Sステレオ(Middle-Side)
左右の信号を和/差信号とするもので、両チャネルの和信号(L+R)と差信号(L-R)をそれぞれ符号化することで、ステレオのようにチャネル間の相関が高い場合、符号化効率が向上します。例えば音楽のボーカル(L/R同位相、同振幅)などで符号化効率を高めることができます。
インテンシティステレオ
高い周波数を聴く時に、L/Rの時間差よりも音の大きさに影響を受けやすい性質を利用して、高い周波数の情報(量子化係数)をひとつにまとめてビットレートを削減します。
最後に
ビットレートが音質を示す指標と思われるかも知れませんが、デジタルオーディオの分野で原音のビットレートを超えた符号化ビットレートを指定することはありません。要はそれぞれの符号化(エンコーダ)に適したビットレートを使用することが大切だと思います。