WAV
WAV(Waveform Audio File Format、WAVE)は、MicrosoftとIBMに由来するRIFF系の音声ファイル形式である。ファイル拡張子は通常.wavである。
WAVはPCM音声を格納する用途で非常に広く使われるが、WAVそのものはPCM codecではなく、音声bitstreamとmetadata chunkを格納するwrapper/container形式である。
Library of CongressもWAVEを「audio bitstreamと他のdata chunkを組み込めるwrapper file format」として整理し、LPCMを代表的encodingの一つとしている。[1]
RIFF
WAVはRIFF(Resource Interchange File Format)を基礎とする。
ファイルはchunk単位で構成され、先頭のRIFF headerによってWAVE形式であることを識別する。
代表的には、
RIFF- file size
WAVE
に続いて各種chunkが配置される。
fmt chunk
fmt chunkには音声data formatに関する情報が入る。
代表的な情報は、
- format code
- channel数
- sample rate
- byte rate
- block alignment
- bits per sample
などである。
PCM以外のencodingでは追加parameterを持つ場合がある。
data chunk
data chunkには実際のaudio sample / encoded audio dataが格納される。
LPCM WAVではPCM sample列がここに保存される。
PCM WAV
DAWや録音で「WAV」と言う場合、多くはLPCMを格納したWAVを意味する。
代表的な設定には、
- 44.1 kHz / 16-bit
- 48 kHz / 24-bit
- 96 kHz / 24-bit
- 32-bit float
などがある。
Library of CongressはWAVE with LPCMをWAVE formatの主要subtypeとして扱っている。[2]
PCM以外のWAV
WAV containerはLPCMだけに限定されない。
歴史的にはADPCM、μ-law、A-law、MPEG系など様々なaudio format codeが利用されてきた。
そのため拡張子.wavだけを見て、内部dataが必ず非圧縮PCMであると判断するのは正確ではない。
Integer PCM
integer PCMではsample値を固定小数的な整数で表現する。
16-bit、24-bit、32-bit integerなどが使われる。
bit depthが増えると表現可能なquantization step数が増え、理論上のquantization noise floorを下げられる。
Floating-point WAV
WAVはfloating-point PCMを格納する用途にも使われる。
DAWでは32-bit float WAVがbounce、freeze、内部受け渡しなどで使用されることがある。
floating-point formatは整数PCMと異なるheadroom特性を持ち、編集工程で0 dBFSを超える数値を保持できる処理系もある。
Endianness
標準的なRIFF/WAVEのnumeric fieldやPCM sampleはlittle-endianを基本とする。
この点は歴史的にbig-endian PCMが一般的だったAIFFとの代表的な違いの一つである。
ただしsoftware API内部での表現とfile上のbyte orderは分けて考える。
WAVE_FORMAT_EXTENSIBLE
channel layoutや高bit-depth PCM等をより明確に記述するため、WAVE_FORMAT_EXTENSIBLEが使用される。
multichannel audioではspeaker mapping等の追加情報を持てる。
Broadcast Wave Format
Broadcast Wave Format(BWF)はWAVEを基礎とし、放送・制作・archive向けmetadataを追加した形式である。
EBU BWFではbext(Broadcast Audio Extension)chunkが重要で、description、originator、timestamp等の運用情報を保持できる。
Library of CongressはBWFをMicrosoft WAVEを基礎にbext chunkを追加したbroadcast exchange formatとして説明している。[3]
RF64
RIFF/WAVの従来size fieldには32-bit制約があり、大容量fileでは問題になる。
RF64は64-bit size情報を扱えるようWAVE系構造を拡張した形式で、長時間・多channel recording等に利用される。
BWF関連仕様でもRF64/MBWFによって4 GB超のfileを扱う仕組みが定義される。[4]
Metadata
WAVでは用途に応じて様々なchunkを追加できる。
代表例には、
- LIST/INFO
- bext
- cue
- smpl
- iXML
- axml
などがある。
DAW、sampler、broadcast systemでは独自または標準化されたmetadata chunkを利用する。
DAWでの利用
WAVはDAWで最も一般的なworking audio file formatの一つである。
主な用途は、
- recording
- import/export
- stem
- sample
- mixdown
- mastering delivery
- video post-production
- archive
など。
PCM WAVはdecode負荷が小さく、software compatibilityも高いため、制作途中の中間形式として扱いやすい。
WAVとAIFF
AIFFもPCM音声を格納する代表的file formatである。
現代のDAWでは両者とも広く扱える。
歴史的にはWAVがWindows/PC系、AIFFがMacintosh系で強く使われたが、現在はplatformをまたいで利用できる。
WAVとFLAC
FLACは可逆圧縮を行うため、同じPCM内容ならWAVより小さくなることが多い。
正しくlossless変換した場合、FLACをWAVへdecodeしたPCMは元データと一致する。
制作時のrandom accessやcompatibilityではWAV、保存容量ではFLACが有利な場合がある。