見出し画像

今更人に聞きづらいディザリングの意義

前置き

本記事は計測ではなく人間の認知を優先しています。

そもそもディザリングを何のためにするのか

ディザリングは限られた解像度でディテール(小さな音)をより豊かに表現をするために行うものです。ディザリングを行うことで、16bitのオーディオであっても16bit以上の表現力を得る事が出来ます。

何故表現力が足りないのか

この章では解像度が不足すると何故表現力が足りなくなるのかを説明します。

例えば0と1の2通りの数字で量を表現する装置のことを考えます。入力に0や1が来てくれればそれぞれを0か1に割り振ることによって完璧なデジタルデータを作ることが出来ます。

ところが、例えば0.8のようなデータを0か1で表現しようとするとどうなるでしょうか。何もしなければ全て切り上げて「全部1でいいや」となったり切り捨てて「全部0にしよう」となったりします。そうなると、元の0.8とは違う数値が記録されてしまうことが分かります。

この時なるべく0.8という情報を正確に0と1だけで表現するために、0.8という入力が来る度に特定のルールに基づいて「今回は1!」「今回も1!」「今回は0で!」といった具合に0と1に割り振ることによって、0と1だけしか使っていないのに何となくその出現頻度によって0.8が表現できた感じになります。これがディザリングです。特定のルールは全くのランダムだったり、一定の傾向があったりします。

※用語の話をすると、0と1で表現しようとすることを量子化と言い、0.8が入力された時に1や0で表現しようとして生じる0.2や0.8の誤差のことを量子化誤差、量子化ノイズ、量子化雑音と言います。

よく「24bitから16bitに落とす時は云々」と言われる時の24bitや16bitのことを量子化のビット深度と言い、サンプリングされた瞬間の振幅の情報を何ビットで表現するかを指しています。

ディザリングによって加わる変更は元の入力信号と相関が無いためディザーノイズと呼ばれます。

ディザリングについての喩え話

ノイズを加えると言われると尻込みする方も多いと思いますが、実際ディザーノイズはどれくらいの大きさ(振幅)を持っているのかというと極めて小さく、通常は最下位ビットで表現する情報よりも更に小さな情報になります。

もう少しわかりやすく例を挙げて説明します。例えば2mのメジャーで50.18cmのものを図ろうとした時、目視だと「うーん50.2cmよりはちょっと小さいけどまあ50.2cmでいいか…」となると思います。このときの0.02cmが量子化雑音です。

もし50.18cmのものを10個同じ物差しで測ろうとした場合に「全部50.2cmにするのもなんだし2つくらい50.1cmってことにしておこう」と気を利かせて50.1cmという記録を混ぜる行為がディザリングです。

ここで何が言いたいかというと、ディザリングで足される情報はその物差しで測れる一番小さい情報よりも(基本的には)細かいということです。

量子化ノイズはどれくらい大きいのか

喩え終わったところでデジタルオーディオの話に戻りましょう。16bitのPCMデータでは振幅の情報を2の16乗である65,536通りの数値で表現しています。なので、最大の音(0dB)と最小の音(-∞dB)を32,768等分する表現力を持っています。(振幅は正負の数値をとるので2で割っています)

この時の量子化雑音の大きさは、0dBの音と-∞dBの音の音量差の32,768分の1より小さい値になります。つまりとても小さいということです。

どれくらい小さいかを考えてみましょう。ビット深度が1増えると、PCMオーディオのダイナミックレンジはおよそ6dB増えます。なので、16bitのPCMオーディオのダイナミックレンジは約96dBと言われます。

※高校数学が好きな方は
「信号AとBの音量差(dB) = 20log (Aの振幅/Bの振幅)」
という計算式とlog 2 ≒ 0.3010という近似からも1bit増えるごとに6.02dBほどダイナミックレンジが広がることを理解出来ると思います。logの底は10です。

この時、ここが重要なのですが量子化誤差やディザリングノイズは0dBFSに対して96dB以上小さい音量を持っています。16bitのPCMオーディオに対しディザリングを行うということは、-96dBFSよりも小さい音を問題視するということです。

量子化雑音は耳に聴こえるのか

結論を先に言うと理論的に聴くことは可能ですが実際に聴くには危険を伴います。

量子化雑音を耳で聴くためには波形の「ほぼ」無音部分を超大音量で再生する必要があります。どれくらい大音量かというと、16bitのオーディオの場合メーターが-96dBを指している時のシステムの出力がフロアノイズを上回るくらいの音量です。一般的な家庭のフロアノイズは低くてもせいぜい40dB SPL程度だと思われるため、その状態で量子化雑音が聴こえるところまでシステムの再生音量を上げた場合、そのセッティングで0dBFS付近の音を聴くと136dB SPLになります。これはジェットエンジンの音を真横で聴くくらいの音量で、耳にすれば当然聴覚には障害をきたします。これがもし24bitの場合ダイナミックレンジは144dBあるため184dB SPLほどまで音量を上げなければなりませんが、そんな爆音を出せるアンプはこの世に存在しないでしょうし、出せたとしたらそれは最早ほぼ衝撃波です。

実際には人間の耳には周波数特性があるためそこまで上げなくても2〜5kHzあたりの敏感な帯域は数十dB手前で聴こえてきますが、それでも相当な大音量で鳴らす必要があることは間違いありません。

何が言いたいかと言うと、耳を傷つけない音量で音楽を楽しんでいる限り量子化雑音を音として知覚することは現実的に不可能であるということです。

量子化雑音は音質に影響しているのか

そうなると、耳に聴こえていないはずの量子化雑音が全体の音の印象に影響を及ぼしているのではないかという疑問に辿り着くと思います。しかし、量子化雑音が元のシグナルの忠実度、再現度に影響を及ぼすことはありません。そもそも、元の信号に影響を与えるとしたらノイズという言葉は使われません。これは16bitに限らず8bitや4bitのPCMにおいても同じです。そこまでビット深度を下げればかなり量子化雑音が顕著に聴こえますが、あくまで雑音は雑音であって信号の忠実度には影響していません。

例えば台所で洗い物をしている時にリビングのTVの音が聞こえづらくなることがあると思いますが、洗い物の水音でTVの出音が変わったとは誰も思いません。これは洗い物の音とTVの音が無関係だからです。同じように、元のシグナルと量子化雑音も無関係です。

なので、16bit PCMの音楽とその量子化雑音の関係は極端に喩えると自宅のTVの音と二軒隣の家の中の洗い物の水音のような関係です。どんな雑音でも聴こえるスレッショルドを越えなければ人間にとっては存在していないことと同じです。(計測上は間違いなく存在しています)

ちょっと意地悪な言い方をすると「耳に聴こえないノイズを抑えるために耳に聴こえないノイズを加えることで、耳に聴こえない変化が生まれて細かい音の表現力が耳に聴こえないところで上がったような気がする」のが16bitのディザリングです。

というところでこの章の結論をまとめると以下のようになります。

  • PCMの量子化雑音は原音と無関係である

  • ビット深度を下げると量子化雑音の音量が大きくなって邪魔になる

  • 16bitをCDの基準にしたので量子化雑音を気にしなくてよくなった

  • 24bitなら更に48dB分気にしなくて良い

  • いわんや32bitをや

  • 量子化雑音を聴こうとすると耳にダメージを負う

余談ですが、ソニーとフィリップスが1970〜80年代にCD-DAのフォーマットを決める時にフィリップスが14bitにしようとしたところをソニー側が16bitにすべきだと主張しそれが通った経緯があるそうです。

具体的にディザリングを行うべきタイミングとは

例えば16bitに落とす時にディザリングして表現力が向上するのは-96dBFSよりも小さな部分の音声のみです。メーターが-96dBFS以上振れている間は単純にディザーノイズの分不要な情報が増えてしまうだけなのでデメリットの方が大きいです。

なので、ビット深度を落とす際楽曲の終わりやフェードアウトの消え際等で一瞬音がブツブツ言うのが気になってしまったときに初めてディザリングをして下さい。それ以外の場面での恩恵は無いといっていいでしょう。

と言っても前章で触れた通り16bitで量子化雑音が気になり始めるのは-96dBFSより信号が小さくなった時なので、フロアノイズが極端に低いマスタリングスタジオでラージスピーカーで爆音で確認していてもまだ聴こえないとは思います。

また音楽制作においてはレアケースですが、ゲーム用のアセットを作っていると非常に振幅の小さい波形を作るケースが出てくると思います。例えば、ピークの最大値で-48dBFSくらいにしかならないフォーリーを作ると、16bitに落とせば実効ダイナミックレンジは8bit分くらいしか無いためビット深度不足が目立つ可能性があります。そういった音ではディザリングを行った方が有利な場面があるかもしれません。

まとめ: 16bitにする時にディザリングは必要か

冒頭で本記事は測定ではなく人間の認知を優先するとは書いたものの、理論上聴覚で捉えられないような小さな雑音に対処するか否かは作り手の判断に委ねられるべきです。ディザリングは正しく行うことさえできさえすれば誰に迷惑をかけるものでもないですし、実際測定上のダイナミックレンジも増えます。なので、やるやらないは本当に好みの一環として捉えて良いと思います。

それ以外のディザリングのルール(最終書き出しの直前で1回だけやる等)は検索すれば無数に情報が出てくるので興味のある方は調べてみて下さい。

どう取り繕ったところでディザリングはノイズを加えることに他ならず、やり方を間違えると即座に聴感上のS/Nの低下に繋がるためご注意下さい。もし16bitに落とす時にディザリングを行うことで耳に聴こえる変化が起きたとしたらディザリングの設定が誤っているか、ディザーツールがディザリング以外の何らかのダイナミクス処理を裏で施している可能性が高いです。

おまけ: ノイズシェーピングについて

この記事ではベーシックなディザリングについてのみ触れてきましたが、実際にはディザリングはノイズシェーピングとセットで語られることが多いです。

ノイズシェーピングとは量子化雑音に特殊な処理を施して周波数特性を変化させることで、オーディオにおいては通常高周波にノイズ成分をかき集めて人間の耳で感じにくいようにすることです。ディザリングを行えば当然ノイズの総量は増えてしまうため、ノイズシェーピングによってそれを分からなくしてあげることが重要になります。

これは喩えるなら、床に散らばっているものを収納に押し込んで視界の外にやるようなものです。見えなくなるのできれいにはなりますが、収納のサイズが小さかったり詰め込み方が悪かったりするとはみ出して目に入ってしまうのはノイズシェーピングも同じです。

例えば44.1kHzの場合、聞こえづらい帯域となると20kHz付近より上の帯域になるため雑に言うと16〜22.05kHzあたりが収納スペースに相当します。この収納スペースはあまり広くはないので詰め込み方が悪いとすぐにはみ出て(ノイズが耳で聞き取れて)しまうため、注意深く行う必要があるのです。

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