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

コンテナサイズと有効データサイズ

当初wBitsPerSampleは有効データサイズ、つまり1サンプル点を何ビットで表するのか、という意味で使われていました。(単位はBit)

ウェーブデータはバイト境界のメモリに収納されますが、データサイズが8Bitと16Bitしか無かった当時は、wBitsPerSampleが8の倍数であったため、コンテナサイズについて特に意識する必要はありませんでした。

コンテナサイズとデータサイズの対応は以下の表に示すとおり一目瞭然です。

wBitsPerSample コンテナサイズ
8Bit 1Byte
16Bit 2Byte

しかし20Bit高精度A/Dなど8の倍数でないデータサイズや、4Byteのコンテナに24Bitデータを収納するケースなどが登場すると、wBitsPerSampleだけでは正確に状況を表現できなくなりました。

そこで新しい規格では、WAVEFORMATEXTENSIBLE構造体にwValidBitsPerSampleという変数が導入され、以下の様に定義されました。これによってコンテナサイズとデータサイズを自由に定義できるようになりました。

wValidBitsPerSampleはwBitsPerSampleにゼロでない値が指定されている場合のみ有効です。

変数名 単位 意味 注意点
wBitsPerSample Bit 1チャンネル当り1サンプル点を収容するコンテナサイズ 8の倍数でなければならない
wValidBitsPerSample Bit 1チャンネル当り1サンプル点の表現に必要なデータサイズ wBitsPerSampleより等しいか小さくなければならない

もしデータサイズがコンテナサイズより小さい場合、データはMSB側に詰めて配置します。余ったLSB側はゼロで埋めておきます。

ドキュメントの先頭へ

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