Music TO GO!

2011年12月02日

32bit 整数型と32bit 浮動小数点型

32bit再生について前に記事を書きましたが、これは音源が「32bit integer(整数)」であることが前提の話です。DAWなどでは「32bit float(浮動小数点形式)」が使われているようなので補足しておきます。
24bitというのは整数のタイプしかないので明記する必要はありませんが、32bit幅のデータには整数型(int/integer)と浮動小数点型(float)があります。(32bitの浮動小数点型は単精度、64bitの浮動小数点型は倍精度といいます。)
前のCoreAudio記事にも書きましたが、32bit浮動小数点形式のデータの表現形式は24bitが数値を表現するのに使われていて、8bitは指数表現するために使われていますから、中身は24bit整数と同じになります。だから192kHz,32bit floatは192kHz,24bit intと実質的に同じです。再生しても24bit精度になりますね。
24bit精度と言っているのはつまり24bitというのは最小00000000000000000000から最大111111111111111111111111までですが、これを10進数に直すと0から16777215までになります。言い換えるとこれは16777216通りの数を表現できると言うことです。32bit floatでも数値を表現できる仮数部は24bitですから、実際に表現できる数はやはり16777216通りです。ですから表現できる幅は同じです。

これが32bit整数ではさらに16777216 x 2^8と大きく増えるわけですが、オーディオですからこのビット幅はダイナミックレンジに反映されます。ダイナミックレンジはあくまで聴覚に関するものなので対数的に増加してdBで表現します。(省略しますが)これは計算式があって1bit増加するごとに6dB増えます。つまりCD品質の16bitでは16x6=96dBがダイナミックレンジになり、ハイレゾの24bitでは24x6で144dB、32bitなら32x6で192dBとなるでしょう。うがった言い方をすれば24bitから32bitへの変化(144:192)は16bitから24bitへの変化(96:144)ほどはないともいえるかもしれません。

ちなみにビット幅のことを量子化ビット数とも書きますが、量子化というのはあくまでサンプリング時点の話ですから、中身が32bit floatである場合には量子化32bitではなく量子化24bitの32bit浮動小数点形式というべきでしょうね。ですから32bit音源データの場合はユーザーが迷わないように32bit intか32bit floatかを明記することが必要でしょう。
なぜDAWなどでは32bit floatを使うかと言うと、なんらかの計算をするときは整数ではなく小数点形式が必要なので、もとの音源のデータが整数でも小数点形式に変換しますが、これをマスタリングのプロジェクトとして中間形式で保存しておくためです。そして最終成果物である音源にするときはまた整数にするわけです。それはDAC(あるいはCDプレーヤー)が整数データを音源として必要だからです。
DACの32bitというのはあくまで32bit整数(いわゆるnative format)ですから、32bit DACで32bit再生するという場合には32bit整数での音源が必要と言うことになります。その上で先の記事に書いた"32bit perfect"の経路の話になるということです。
posted by ささき at 00:31 | TrackBack(0) | __→ PCオーディオ・ソフト編 | このブログの読者になる | 更新情報をチェックする

この記事へのトラックバック