Smile Engineering blog ( スマイルエンジニアリング・ブログ )

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

サンプリング周波数とビットレート・後編(オーディオ符号化の圧縮率)

2018-08-10 18:00:00 | JSP-knowledge

オーディオ符号化の圧縮率は、エンコード時のビットレートで決まります。前回は原音(PCM)のビットレートを中心に書きましたが、今回はエンコード(符号化)のビットレートと圧縮率について書きたいと思います。

具体的には、低いビットレートを設定すれば圧縮率は高くなり、保存した時のファイルサイズが小さくなります。前回も書きましたが、圧縮前の音源(PCM)のビットレートは次になります。

  • PCMのビットレート = サンプリング周波数(Hz) × 量子化ビット数 × チャネル数

例えば、音楽CDは44.1kHzのステレオで次のビットレートになります。

  • 音楽CDのビットレート:44100Hz × 16bit × 2ch(ステレオ) = 1,411.2kbps

これをMP3やAAC等、例えば256kbpsでエンコードすると、圧縮率(原音を100%とした場合)は約18%で、ファイルサイズは1/5以下になります。

  • 音楽CDを256kbpsでエンコード:256kbps / 1,411.2kbps = 約18%

仮に4分の音楽の場合、ファイルサイスは次になります。

  • 原音:1,411.2kbps × 240秒 = 約40.4MB
  • 256kbpsでエンコード : 256kbps × 240秒 = 約7.3MB(+ヘッダ)

1曲が4分程度の場合、CD650MBに原音では16曲保存できますが、MP3やAACなど256kbpsでエンコードした場合、89曲収録できることになります。

  • 原音: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の時間差よりも音の大きさに影響を受けやすい性質を利用して、高い周波数の情報(量子化係数)をひとつにまとめてビットレートを削減します。

最後に

ビットレートが音質を示す指標と思われるかも知れませんが、デジタルオーディオの分野で原音のビットレートを超えた符号化ビットレートを指定することはありません。要はそれぞれの符号化(エンコーダ)に適したビットレートを使用することが大切だと思います。

 

moniswitch
  今お使いの離床センサーがそのまま使える!
  離床センサーのスイッチ入れ忘れ事故を防止するスマートスイッチ 

monipet
  動物病院の犬猫の見守りをサポート
  病院を離れる夜間でも安心

ASSE/CORPA
  センサー、IoT、ビッグデータを活用して新たな価値を創造
  「できたらいいな」を「できる」に

OSGi対応 ECHONET Lite ミドルウェア
  短納期HEMS開発をサポート!

GuruPlug
  カードサイズ スマートサーバ

株式会社ジェイエスピー
  横浜に拠点を置くソフトウェア開発・システム開発・
  製品開発(monipet)、それに農業も手がけるIT企業


最新の画像もっと見る

コメントを投稿