ビット深度(量子化ビット数/量子化精度)とダイナミックレンジの関係は、直感的に理解しにくいものなので、よく使われる階段の例えに従って整理してみる。
ビット深度を増やすというのは、階段の0段目と頂上の高さはそのままに、途中の段数だけを増やして細かくしていくということ。16bitでも24bitでも頂上の高さは変わらない。ただ、段差(量子化ノイズ)がビット深度に比例して小さくなる。段差が小さいほど扱える最小変化量が小さくなるため、結果として「ダイナミックレンジが大きくなる」。
最大値は変わらないのにダイナミックレンジが大きくなるのは、最小値(ノイズフロア側)が下がるから。
直観を妨げているポイントは、「0段目が変わらないのに、なぜ最小値が下がるのか」というところだと思う。
これはノイズフロアが0段目の高さではなく、段差の大きさに由来する量子化ノイズで決まるため。
段差が大きい(=低ビット)と最小変化量も大きく、ノイズフロアが高くなる。段差が細かくなるほど最小変化量が小さくなり、ノイズフロアが下がってダイナミックレンジが広がる。
次に、16bitから24bitへ、あとから変換する場合について。
階段を作る基準にすべきなのは本来、元のアナログ波形の凸凹。しかし一度16bitで段を作ると、その凸凹の細部は失われる。そのため、後から24bitで階段を作り直しても、取り得る値は本質的には変わらない。
「変わらない」と言うと語弊があるが、実際には24bitは16bitより256倍細かいだけで、例えば16bitの「2」は24bitでは「512」、「4」は「1024」に対応する。
16bitで 2, 4 と記録された値を書き換えて 512, 1024 と保存しても、誤差構造は何も変わらないということ。
元の段数をそのまま残して24bitに変換する(=実質16bit表現のまま)なら、下位8bitをゼロで埋めればよい。いわゆるゼロパディング。
24bitの情報量を使う方法は2つしかない。
・元のアナログ波形から階段を作る段階で24bit精度を使う(制作段階で24bit処理されている場合)
・16bit以下で段を作ってしまった後に、元の波形を推定し直し、24bit精度で階段を作り直す(ビット深度拡張)
最後に、図を作りながら整理していたが、文章にすると必須ではなかったので補足として貼っておく。ここから先は、絶対量の量子化ノイズよりも、入力信号に相関する量子化ノイズをどう抑えるかという議論に発展していく。