見出し画像

オーディオの量子化 bit 深度は何 bit 必要なのか?

「オーディオの量子化 bit 深度」に関しては、最近ではそれ程気にかけなくても良くなっているという認識だったので、ことさら取り上げていませんでした。

しかし、ここ最近「bit 深度そこまで要らなくない?聴き比べても分からなくない?」的な話をちょくちょく見かけるのが気になってしまいまして……、この話題について少しだけ触れてみることにしました。

正直あまり実用性が高い知識とは思わないのですが、デジタルオーディオに対しての解像度が深まるきっかけになれば嬉しいです!


前提条件の整理

こういうテーマでは前提条件の整理が重要です。

まず、対象は非圧縮の Linear PCM (以下 LPCM) とします。ファイル形式としては拡張子が .wav の所謂 wave ファイルであることが多いものです。

LPCM ではサンプリングレートの違いも大きな影響があります。本稿では 48kHz として考えることにしますが、今回の話に関しては 44.1kHz でもあまり違いはないと思います。
(CD は 44.1kHz 16bit LPCM ですが、DVD など映像系は 48kHz が多いです。また、ハイレゾなどを含む配信では色々な形式が使用されます。)

また、量子化ノイズが目立つかどうかは音源の特徴によって大きく異なります。目立ちやすい音源の特徴を簡単に条件化すると、

  • Sin 波に近いほど目立ちやすい、更に周波数が低いと目立ちやすい

  • 収録音量が小さい程目立ちやすい

のようになっています。今回のような検証を適当に準備した音源で行ってしまうと結果に偏りが出てしまうことになるので、注意する必要があります。

本稿のテーマは「何 bit 必要なのか?」ですので、一旦はオーディオコンテンツの表現としてあり得るうちなるべく条件の悪いケースを見ていくことにします。

(音源の種類よって検証結果が偏ってしまうことは「オーディオコーデック」の音質評価でも同様で、昨今では多分そっちのがほうが身近で重要な話です。既に note に書いていたりするので、興味がある人はそちらを優先して見てみてください。)

低い周波数の Sin 波は何 bit 必要なのか?

低い周波数の Sin 波は量子化ノイズを分かりやすく感じる音です。理由としては澄んだ音であることの他に下記などがあります。

  • 正確な周期性があること

  • 波形になだらかな傾斜を含むこと

量子化ノイズの説明として量子化精度ほど (16bit では -96dBFS とか) のホワイトノイズになるというような説明を見たことがある人もいるかもしれませんが、これは上記のような特徴が見られない波形においての話です。

下図は 3 種類の波形 (上からホワイトノイズ、1318.51Hz の Sin 波、82.407Hz の Sin 波) を 13bit 相当から 8bit 相当に落とした際の差分ノイズです。

波形に「正確な周期性」があることで、量子化ノイズにも周期性が生まれます。また、波形に「なだらかな傾斜」が含まれることでカドが目立つようになり、量子化ノイズとしては鋸波のような特徴が見られるようになります。こういった量子化ノイズは Peak の低さの割にある程度聴感に影響しやすいものになってきます。

というわけで音源も聴き比べてみましょう。

周波数が「低い」といってもあんまり低いと音量感も下がってしまうので、あくまで雰囲気ですが 80Hz あたりがワーストケースになりそうな気がします。また、微妙な周波数や音量の違いによっても誤差の出方が変わってしまうところでもあるので、ちょっとズルい?ですが予め聴き比べてノイズが目立っていることを確認してから、下記を 48kHz 16bit LPCM で準備してみました。

  • [実質 13bit] -18dBFS Peak の 82.407Hz Sin 波

  • [実質 12bit] -24dBFS Peak の 82.407Hz Sin 波を +6dB したもの

  • [実質 11bit] -30dBFS Peak の 82.407Hz Sin 波を +12dB したもの

  • [実質 10bit] -36dBFS Peak の 82.407Hz Sin 波を +18dB したもの

  • [実質 9bit] -42dBFS Peak の 82.407Hz Sin 波を +24dB したもの

  • [実質 8bit] -48dBFS Peak の 82.407Hz Sin 波を +30dB したもの

聴き比べ例 Wav ファイル集

どのあたりまでかは個人差や環境差があると思いますが、12bit くらいまでは十分聴き分けが可能なことが分かります。ここでは「12bit」としてみて次の話に行きましょう。

小さな音を収録するには何 bit 必要なのか?

収録されている音が小さいほど波形の表現に使える実質 bit 数が減り、相対的に量子化ノイズの影響は大きくなります。

なので必要な bit 数のワーストケースを考える場合は「コンテンツ中で最も小さい音量の箇所の音量」がどれくらいを考える必要があります。ダイナミックレンジが影響するとも言い換えられます。(何を指してダイナミックレンジと呼ぶか文脈によって変わってきてしまうのが辛いとこですが……)

これは結構想定に幅があるものなので言い出すとキリが無いのですが……、音楽でいうとクラシックや繊細なフェードアウト、映像系やゲームなどでは環境音を想定すると -48dBFS Peak くらいなら表現として全然有り得そうです。

-48dBFS Peak の波形を表現するためには、波形の表現に必要な bit 数に追加して 「8bit」 (≒48 / 6) 程度が必要になります。(とはいえ -48dBFS Peak の音がしっかり聴こえるくらい音量を上げるのか?と言われると一般家庭の環境ではあまり無さそうですが……)

オーディオの量子化 bit 深度は何 bit 必要なのか?

手前の 2 項目から、なるべく条件の悪いケースで考えるなら 12 + 8 で「少なくとも 20bit くらいは必要と言って良さそう」というあたりが本稿の一旦の結論?になります。

もちろん音源に条件を付ければもっと少ない bit 数でも十分と言うことはできると思いますが、昨今の環境で容量を減らす意味ではオーディオコーデックによる影響の方がずっと大きく、あまり生産的な議論にならないため直接は掘り下げません。

ここで本稿の区切りを付けて、残りは取り巻く条件について簡単に補足していきます。

デジタル処理を行う場合

これまで触れてきた「何 bit 必要なのか?」は単にオーディオをデジタル表現する場合の話なので、デジタル処理を行う場合は別問題です。

デジタル処理を行う場合は多くの場合「20bit」でも心許ないので、素直?に 32bit/64bit float PCM などを使用するのが良いと思います。(余談ですが、浮動小数点数は量子化幅が均等ではないので "Linear" PCM では無かったりします)

また、64bit float を使うかどうかの判断などのために、計算精度的に条件の悪い処理を挙げてみますが、そんなに気にしすぎなくても良いとは思います。

  • 192kHz などの高サンプリングレート環境で低域に効くきついカーブの IIR フィルターを適用するとき

  • EQ 適用を何度も行うなど処理回数が多い場合

波形はカクカクになるのか?

なんか bit 深度を下げても波形はカクカクにならない的な意見も見てしまったので……、一応触れておきます。

波形に「なだらかな傾斜」を含む場合、その部分は量子化によって「カクカクになることがあります」。もちろん DA した場合は完全な直角にはならず DAC のフィルターによって甘くなりますが、カクカク感が消えるほどではないです。

下図は 82.407Hz の Sin 波 の 8bit 相当です。拡大して見れば頂点付近にカクカク感が見られます。

下図は 82.407Hz の Sin 波 の 6bit 相当です。ここまで来るとちゃんとカクカクです。

ただし、量子化精度に対して波形が十分に激しく動くときはカクカク感は出ないので、「いつもカクカク」では無いことは知っておくと良いかもしれません。

余談ですが、Bitcrusher 的なエフェクトを作る場合にはむしろどんな入力でもカクカクになって欲しい場合が多いので、量子化軸だけでなく時間軸側も解像度が下がるような工夫を施すのが有効だったりするわけです。(余談のほうが実用可能性がある……)

ディザリングについて

「ディザリング」は聴感への影響としてはそこまで大きくない割に色々な意見が飛び交っている正直あまり触れたくない話題です、笑。とはいえ量子化ノイズの話には欠かせない存在というか量子化ノイズの話そのものであるともいえるので、少しだけ触れていきます。

いろいろ繰り返しになってしまいますが、波形に「正確な周期性」や「なだらかな傾斜」を含む場合、量子化ノイズは目立ちやすくなります。また逆に「正確な周期性」や「なだらかな傾斜」を含まない場合、量子化ノイズは量子化精度ほどのホワイトノイズに近くなり、その状態は量子化ノイズ対策としては良い状態です。

ディザリングは波形に微小なノイズを加える処理ですが、この「正確な周期性」や「なだらかな傾斜」を取り除き、量子化ノイズをホワイトノイズに変える処理と言い換えることもできます。そのため、元から「正確な周期性」や「なだらかな傾斜」を含まず量子化ノイズが既にホワイトノイズになっている音源に対しては、ディザリングは量子化ノイズ対策としてあまり意味を持ちません。

今回聴き比べた波形のようにソフトウェアで生成された 16bit LPCM の波形を出力するような場合は元音源のノイズが量子化精度より十分に少ないのでディザリングは有効に働きますが、例えば録音物の 32bit float PCM → 24bit LPCM 変換などでは (普通 -144dBFS 以上のノイズを最初から含むので) ディザリングは殆どの場合必要無いということになります。

(ディザリングに加えてノイズシェーピングが行われる場合もありますが、こちらも元から量子化精度以上のノイズを含む場合はそれほど意味がありません。)

まぁ、ディザリングしてしまったとしてもやはり大した変化ではないので特に問題もなく、不必要性を声高に主張する意味もまたありません……。

ディザリングがまだ意味を持ち得る 16bit LPCM が CD という媒体で生き残っているのでまだ少し議論は残るかもしれませんが、個人的には制作者レベルでオーディオのディザリングを気にすることは無くなっていくんじゃないかなぁと思っています。

ただ、一周回って「低 bit 深度でのディザリングの質感が好き」とかは有り得るかもしれませんね!

おわりに

ちょっと触れるだけのつもりでも結構長くなってしまうので、やっぱり量子化 bit 深度の話題は苦手だなあと思ってしまいました……、笑。

昨今では制作において十分な量子化 bit 深度を使用できる環境が増えてきて、量子化 bit 深度に関する悩みは減っているはずです。また、音圧競争を防ぐというような意味でも素直に量子化 bit 深度を十分に確保した制作やリリースを広めるほうが明らかに近道です。

また、リリース時の容量を減らす意味ではオーディオコーデックによる影響に隠れてしまいますし、細かい音質追求の文脈でもより防ぎ辛い SRC やエイリアシングなどに関する対策を優先すべきです。

そんなわけで「オーディオの量子化 bit 深度」について一番伝えたいことは、「ある程度十分に確保しておいてあまり気にしないほうがいいよ!」ということでした。おつかれさまです!

参考

ANALOG DEVICES, MT001:「S/N 比=6.02N+1.76DB」、その意味と利用上の注意点

https://www.analog.com/media/jp/training-seminars/tutorials/MT-001_jp.pdf

(下記リンクでタイトルから検索できます)

https://www.analog.com/jp/search.html


この記事が気に入ったらサポートをしてみませんか?