カクタスソフトウェア
カクタスソフトウェア
サウンド MIDI マルチメディア アプリケーション

ウェーブの分解能

PCMデータの表現範囲とダイナミックレンジを示します。

8Bit

8Bitデータはunsigned char(0〜255)のレンジを用い、無音状態を128(0x80)、最小を0(0x00)、最大を255(0xff)と表現します。

log( 2^8 ) * 20 = 約48dB

8Bitデータだけ無音状態がゼロではなく、特別な表現になっています。そのため初期化や別の分解能との間でデータ変換する時は注意して下さい。

16Bit

16Bitデータは、shortで記録されます。無音状態を0(0x0000)、最小を-32768(0x8000)、最大を32767(0x7fff)と表現します。

log( 2^16 ) * 20 = 約96dB

24Bit

24Bitデータは、int(long int)で記録されます。無音状態を0(0x000000)、最小を-8388608(0x800000)、最大を8388607(0x7fffff)と表現します。

log( 2^24 ) * 20 = 約144dB

float

floatデータは、IEEE float(32Bit)で記録されます。無音状態を0.0f、最小を-1.0f、最大を1.0fと表現します。

ダイナミックレンジは極めて広く、ハードウェアの能力を大きく超えていると思われます。

double

doubleデータは、IEEE double(64Bit)で記録されます。無音状態を0.0、最小を-1.0、最大を1.0と表現します。

doubleはウェーブファイルのフォーマットとしては可能ですが、サウンドAPIが対応していないため再生できません。もしウェーブファイルでdoubleを利用する場合は、再生時floatへ変換するなどの対策が必要です。

以下に代表的な波形の表現範囲を図示します。

8Bit 16Bit float

ドキュメントの先頭へ

カクタスソフトウェア 技術協力 資料室 資料室の広場 SourceForge.jp お問い合わせ