WAVE
RIFF 構造上に構築されたオーディオファイルコンテナ。通常は非圧縮 PCM を保存するが、浮動小数点 PCM、圧縮オーディオ、拡張チャンネル情報もカプセル化できる。
詳細説明
WAVE(Waveform Audio File Format)は、Microsoft と IBM により RIFF(Resource Interchange File Format)上に定義されたオーディオファイル形式で、拡張子 `.wav` が一般的である。ファイルは 4 文字コードで識別されるチャンクから成る。RIFF ヘッダが WAVE 型を宣言し、`fmt ` チャンクがオーディオ符号化とパラメータを記述し、`data` チャンクがオーディオデータを保存する。他のチャンクは放送メタデータ、サンプラー情報、マーカー、追加説明を記録しうる。
WAVE はコンテナであり、PCM の同義語ではない。最も一般的な WAVE ファイルは整数リニア PCM を保存するが、`fmt ` チャンクは IEEE 浮動小数点 PCM、ADPCM、A-law、μ-law、登録形式コードによるその他符号化も識別できる。WAVE_FORMAT_EXTENSIBLE 拡張は有効ビット深度、チャンネルマスク、サブ形式を明示し、通常の WAVEFORMATEX が高位ビット深度、マルチチャンネル、複雑形式を十分記述できない問題に対応する。`.wav` 拡張子だけでは、内部が必ず 44.1 kHz、16-bit、非圧縮であるとは限らない。
古典的 RIFF はチャンク長に 32-bit 符号なし整数を用いるため、単一ファイルの表現可能サイズは 4 GiB 上限に近い。放送・制作系統は長時間、マルチチャンネル、高サンプリングレート録音のために RF64 などの拡張を発展させ、特殊長マーカーと追加データチャンクで 64-bit サイズを保存する。Wave64 は別の拡張構造で、RF64 や通常 RIFF WAVE と完全には同一ではない。
WAVE のチャンク設計により、アプリは認識不能な追加チャンクをスキップできるが、ソフト互換性はチャンク順序、整列、符号化コード、拡張支持にも依存する。Broadcast WAVE(BWF)は互換 WAVE 上に説明、時間参照、出所、ラウドネスなど制作メタデータを追加し、オーディオデータ自体は PCM のままでもよい。タグソフトが書き込む RIFF INFO、ID3、カスタムブロックはすべてのプレーヤーが解釈するとは限らない。
無損 PCM を WAVE で保存するのは通常編集・交換に便利だが、ファイルサイズは FLAC、ALAC などの無損失圧縮形式より大きい。正しく変換すれば両者は同一サンプルを含みうる。コンテナ選択だけでは音は自動的に変わらない。逆に、有損オーディオを WAVE にデコードしても非圧縮のデコード結果に過ぎず、既に失われた情報を原録音へ戻せない。