前回Waveファイルのサンプリングレート変換らしいことをしてみたので、次はビットレートの変換もできるようにしました。ビットレートというよりはビット深度ですか。
前回軽く解説的なことをしたので、今回もメモ的に残してみます。とはいえややこしいところは少ないので、周波数の変換に比べればだいぶ楽ですね。
Waveファイルのフォーマットではだいたい8ビット、16ビット、24ビット、32ビットの4種類が使われていて、
それぞれsigned char, short, int, floatの型で表すことができます(32ビット整数型もありますがややこしいのでスルー)。
それぞれのビットレートで持てる値の範囲は以下の通り。
- 8bit
- 0 ~ 255
- 16bit
- -32768 ~ 32767
- 24bit
- -8388608 ~ 8388607
- 32bit float
- -1.0 ~ 1.0(範囲外の値も持てる)
基本的に値が0の時に無音なのですが、8ビットのみ128で無音になるので注意が必要ですね。