WAV: Difference between revisions
WAVのRIFF構造、PCM、Broadcast Wave、RF64、DAW用途を詳説 |
NekoDensen (talk | contribs) Marked this version for translation |
||
| Line 2: | Line 2: | ||
<translate> | <translate> | ||
<!--T:1--> | |||
'''WAV'''(Waveform Audio File Format、WAVE)は、MicrosoftとIBMに由来するRIFF系の音声ファイル形式である。ファイル拡張子は通常<code>.wav</code>である。 | '''WAV'''(Waveform Audio File Format、WAVE)は、MicrosoftとIBMに由来するRIFF系の音声ファイル形式である。ファイル拡張子は通常<code>.wav</code>である。 | ||
<!--T:2--> | |||
WAVは[[<tvar name=1>Special:MyLanguage/PCM</tvar>|PCM]]音声を格納する用途で非常に広く使われるが、'''WAVそのものはPCM codecではなく、音声bitstreamとmetadata chunkを格納するwrapper/container形式'''である。 | WAVは[[<tvar name=1>Special:MyLanguage/PCM</tvar>|PCM]]音声を格納する用途で非常に広く使われるが、'''WAVそのものはPCM codecではなく、音声bitstreamとmetadata chunkを格納するwrapper/container形式'''である。 | ||
<!--T:3--> | |||
Library of CongressもWAVEを「audio bitstreamと他のdata chunkを組み込めるwrapper file format」として整理し、LPCMを代表的encodingの一つとしている。<ref name="loc-wav">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000001.shtml Library of Congress, ''WAVE Audio File Format'']</ref> | Library of CongressもWAVEを「audio bitstreamと他のdata chunkを組み込めるwrapper file format」として整理し、LPCMを代表的encodingの一つとしている。<ref name="loc-wav">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000001.shtml Library of Congress, ''WAVE Audio File Format'']</ref> | ||
<!--T:4--> | |||
== RIFF == | == RIFF == | ||
WAVは[[<tvar name=2>Special:MyLanguage/RIFF</tvar>|RIFF]](Resource Interchange File Format)を基礎とする。 | WAVは[[<tvar name=2>Special:MyLanguage/RIFF</tvar>|RIFF]](Resource Interchange File Format)を基礎とする。 | ||
<!--T:5--> | |||
ファイルはchunk単位で構成され、先頭のRIFF headerによってWAVE形式であることを識別する。 | ファイルはchunk単位で構成され、先頭のRIFF headerによってWAVE形式であることを識別する。 | ||
<!--T:6--> | |||
代表的には、 | 代表的には、 | ||
<!--T:7--> | |||
* <code>RIFF</code> | * <code>RIFF</code> | ||
* file size | * file size | ||
* <code>WAVE</code> | * <code>WAVE</code> | ||
<!--T:8--> | |||
に続いて各種chunkが配置される。 | に続いて各種chunkが配置される。 | ||
<!--T:9--> | |||
== fmt chunk == | == fmt chunk == | ||
<code>fmt </code> chunkには音声data formatに関する情報が入る。 | <code>fmt </code> chunkには音声data formatに関する情報が入る。 | ||
<!--T:10--> | |||
代表的な情報は、 | 代表的な情報は、 | ||
<!--T:11--> | |||
* format code | * format code | ||
* channel数 | * channel数 | ||
| Line 33: | Line 44: | ||
* bits per sample | * bits per sample | ||
<!--T:12--> | |||
などである。 | などである。 | ||
<!--T:13--> | |||
PCM以外のencodingでは追加parameterを持つ場合がある。 | PCM以外のencodingでは追加parameterを持つ場合がある。 | ||
<!--T:14--> | |||
== data chunk == | == data chunk == | ||
<code>data</code> chunkには実際のaudio sample / encoded audio dataが格納される。 | <code>data</code> chunkには実際のaudio sample / encoded audio dataが格納される。 | ||
<!--T:15--> | |||
LPCM WAVではPCM sample列がここに保存される。 | LPCM WAVではPCM sample列がここに保存される。 | ||
<!--T:16--> | |||
== PCM WAV == | == PCM WAV == | ||
DAWや録音で「WAV」と言う場合、多くはLPCMを格納したWAVを意味する。 | DAWや録音で「WAV」と言う場合、多くはLPCMを格納したWAVを意味する。 | ||
<!--T:17--> | |||
代表的な設定には、 | 代表的な設定には、 | ||
<!--T:18--> | |||
* 44.1 kHz / 16-bit | * 44.1 kHz / 16-bit | ||
* 48 kHz / 24-bit | * 48 kHz / 24-bit | ||
| Line 52: | Line 70: | ||
* 32-bit float | * 32-bit float | ||
<!--T:19--> | |||
などがある。 | などがある。 | ||
<!--T:20--> | |||
Library of CongressはWAVE with LPCMをWAVE formatの主要subtypeとして扱っている。<ref name="loc-wav-lpcm">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000002.shtml Library of Congress, ''WAVE with LPCM Audio'']</ref> | Library of CongressはWAVE with LPCMをWAVE formatの主要subtypeとして扱っている。<ref name="loc-wav-lpcm">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000002.shtml Library of Congress, ''WAVE with LPCM Audio'']</ref> | ||
<!--T:21--> | |||
== PCM以外のWAV == | == PCM以外のWAV == | ||
WAV containerはLPCMだけに限定されない。 | WAV containerはLPCMだけに限定されない。 | ||
<!--T:22--> | |||
歴史的にはADPCM、μ-law、A-law、MPEG系など様々なaudio format codeが利用されてきた。 | 歴史的にはADPCM、μ-law、A-law、MPEG系など様々なaudio format codeが利用されてきた。 | ||
<!--T:23--> | |||
そのため拡張子<code>.wav</code>だけを見て、内部dataが必ず非圧縮PCMであると判断するのは正確ではない。 | そのため拡張子<code>.wav</code>だけを見て、内部dataが必ず非圧縮PCMであると判断するのは正確ではない。 | ||
<!--T:24--> | |||
== Integer PCM == | == Integer PCM == | ||
integer PCMではsample値を固定小数的な整数で表現する。 | integer PCMではsample値を固定小数的な整数で表現する。 | ||
<!--T:25--> | |||
16-bit、24-bit、32-bit integerなどが使われる。 | 16-bit、24-bit、32-bit integerなどが使われる。 | ||
<!--T:26--> | |||
bit depthが増えると表現可能なquantization step数が増え、理論上のquantization noise floorを下げられる。 | bit depthが増えると表現可能なquantization step数が増え、理論上のquantization noise floorを下げられる。 | ||
<!--T:27--> | |||
== Floating-point WAV == | == Floating-point WAV == | ||
WAVはfloating-point PCMを格納する用途にも使われる。 | WAVはfloating-point PCMを格納する用途にも使われる。 | ||
<!--T:28--> | |||
DAWでは32-bit float WAVがbounce、freeze、内部受け渡しなどで使用されることがある。 | DAWでは32-bit float WAVがbounce、freeze、内部受け渡しなどで使用されることがある。 | ||
<!--T:29--> | |||
floating-point formatは整数PCMと異なるheadroom特性を持ち、編集工程で0 dBFSを超える数値を保持できる処理系もある。 | floating-point formatは整数PCMと異なるheadroom特性を持ち、編集工程で0 dBFSを超える数値を保持できる処理系もある。 | ||
<!--T:30--> | |||
== Endianness == | == Endianness == | ||
標準的なRIFF/WAVEのnumeric fieldやPCM sampleはlittle-endianを基本とする。 | 標準的なRIFF/WAVEのnumeric fieldやPCM sampleはlittle-endianを基本とする。 | ||
<!--T:31--> | |||
この点は歴史的にbig-endian PCMが一般的だったAIFFとの代表的な違いの一つである。 | この点は歴史的にbig-endian PCMが一般的だったAIFFとの代表的な違いの一つである。 | ||
<!--T:32--> | |||
ただしsoftware API内部での表現とfile上のbyte orderは分けて考える。 | ただしsoftware API内部での表現とfile上のbyte orderは分けて考える。 | ||
<!--T:33--> | |||
== WAVE_FORMAT_EXTENSIBLE == | == WAVE_FORMAT_EXTENSIBLE == | ||
channel layoutや高bit-depth PCM等をより明確に記述するため、WAVE_FORMAT_EXTENSIBLEが使用される。 | channel layoutや高bit-depth PCM等をより明確に記述するため、WAVE_FORMAT_EXTENSIBLEが使用される。 | ||
<!--T:34--> | |||
multichannel audioではspeaker mapping等の追加情報を持てる。 | multichannel audioではspeaker mapping等の追加情報を持てる。 | ||
<!--T:35--> | |||
== Broadcast Wave Format == | == Broadcast Wave Format == | ||
[[<tvar name=3>Special:MyLanguage/Broadcast Wave Format</tvar>|Broadcast Wave Format]](BWF)はWAVEを基礎とし、放送・制作・archive向けmetadataを追加した形式である。 | [[<tvar name=3>Special:MyLanguage/Broadcast Wave Format</tvar>|Broadcast Wave Format]](BWF)はWAVEを基礎とし、放送・制作・archive向けmetadataを追加した形式である。 | ||
<!--T:36--> | |||
EBU BWFでは<code>bext</code>(Broadcast Audio Extension)chunkが重要で、description、originator、timestamp等の運用情報を保持できる。 | EBU BWFでは<code>bext</code>(Broadcast Audio Extension)chunkが重要で、description、originator、timestamp等の運用情報を保持できる。 | ||
<!--T:37--> | |||
Library of CongressはBWFをMicrosoft WAVEを基礎にbext chunkを追加したbroadcast exchange formatとして説明している。<ref name="loc-bwf">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000356.shtml Library of Congress, ''Broadcast WAVE Audio File Format'']</ref> | Library of CongressはBWFをMicrosoft WAVEを基礎にbext chunkを追加したbroadcast exchange formatとして説明している。<ref name="loc-bwf">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000356.shtml Library of Congress, ''Broadcast WAVE Audio File Format'']</ref> | ||
<!--T:38--> | |||
== RF64 == | == RF64 == | ||
RIFF/WAVの従来size fieldには32-bit制約があり、大容量fileでは問題になる。 | RIFF/WAVの従来size fieldには32-bit制約があり、大容量fileでは問題になる。 | ||
<!--T:39--> | |||
[[<tvar name=4>Special:MyLanguage/RF64</tvar>|RF64]]は64-bit size情報を扱えるようWAVE系構造を拡張した形式で、長時間・多channel recording等に利用される。 | [[<tvar name=4>Special:MyLanguage/RF64</tvar>|RF64]]は64-bit size情報を扱えるようWAVE系構造を拡張した形式で、長時間・多channel recording等に利用される。 | ||
<!--T:40--> | |||
BWF関連仕様でもRF64/MBWFによって4 GB超のfileを扱う仕組みが定義される。<ref name="loc-rf64">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000356.shtml Library of Congress, ''Broadcast WAVE Audio File Format'']</ref> | BWF関連仕様でもRF64/MBWFによって4 GB超のfileを扱う仕組みが定義される。<ref name="loc-rf64">[https://www.loc.gov/preservation/digital/formats/fdd/fdd000356.shtml Library of Congress, ''Broadcast WAVE Audio File Format'']</ref> | ||
<!--T:41--> | |||
== Metadata == | == Metadata == | ||
WAVでは用途に応じて様々なchunkを追加できる。 | WAVでは用途に応じて様々なchunkを追加できる。 | ||
<!--T:42--> | |||
代表例には、 | 代表例には、 | ||
<!--T:43--> | |||
* LIST/INFO | * LIST/INFO | ||
* bext | * bext | ||
| Line 115: | Line 158: | ||
* axml | * axml | ||
<!--T:44--> | |||
などがある。 | などがある。 | ||
<!--T:45--> | |||
DAW、sampler、broadcast systemでは独自または標準化されたmetadata chunkを利用する。 | DAW、sampler、broadcast systemでは独自または標準化されたmetadata chunkを利用する。 | ||
<!--T:46--> | |||
== DAWでの利用 == | == DAWでの利用 == | ||
WAVはDAWで最も一般的なworking audio file formatの一つである。 | WAVはDAWで最も一般的なworking audio file formatの一つである。 | ||
<!--T:47--> | |||
主な用途は、 | 主な用途は、 | ||
<!--T:48--> | |||
* recording | * recording | ||
* import/export | * import/export | ||
| Line 133: | Line 181: | ||
* archive | * archive | ||
<!--T:49--> | |||
など。 | など。 | ||
<!--T:50--> | |||
PCM WAVはdecode負荷が小さく、software compatibilityも高いため、制作途中の中間形式として扱いやすい。 | PCM WAVはdecode負荷が小さく、software compatibilityも高いため、制作途中の中間形式として扱いやすい。 | ||
<!--T:51--> | |||
== WAVとAIFF == | == WAVとAIFF == | ||
[[<tvar name=5>Special:MyLanguage/AIFF</tvar>|AIFF]]もPCM音声を格納する代表的file formatである。 | [[<tvar name=5>Special:MyLanguage/AIFF</tvar>|AIFF]]もPCM音声を格納する代表的file formatである。 | ||
<!--T:52--> | |||
現代のDAWでは両者とも広く扱える。 | 現代のDAWでは両者とも広く扱える。 | ||
<!--T:53--> | |||
歴史的にはWAVがWindows/PC系、AIFFがMacintosh系で強く使われたが、現在はplatformをまたいで利用できる。 | 歴史的にはWAVがWindows/PC系、AIFFがMacintosh系で強く使われたが、現在はplatformをまたいで利用できる。 | ||
<!--T:54--> | |||
== WAVとFLAC == | == WAVとFLAC == | ||
[[<tvar name=6>Special:MyLanguage/FLAC</tvar>|FLAC]]は可逆圧縮を行うため、同じPCM内容ならWAVより小さくなることが多い。 | [[<tvar name=6>Special:MyLanguage/FLAC</tvar>|FLAC]]は可逆圧縮を行うため、同じPCM内容ならWAVより小さくなることが多い。 | ||
<!--T:55--> | |||
正しくlossless変換した場合、FLACをWAVへdecodeしたPCMは元データと一致する。 | 正しくlossless変換した場合、FLACをWAVへdecodeしたPCMは元データと一致する。 | ||
<!--T:56--> | |||
制作時のrandom accessやcompatibilityではWAV、保存容量ではFLACが有利な場合がある。 | 制作時のrandom accessやcompatibilityではWAV、保存容量ではFLACが有利な場合がある。 | ||
<!--T:57--> | |||
== 関連項目 == | == 関連項目 == | ||
* [[<tvar name=7>Special:MyLanguage/音声ファイル</tvar>|音声ファイル]] | * [[<tvar name=7>Special:MyLanguage/音声ファイル</tvar>|音声ファイル]] | ||
| Line 163: | Line 220: | ||
* [[<tvar name=16>Special:MyLanguage/Bit depth</tvar>|ビット深度]] | * [[<tvar name=16>Special:MyLanguage/Bit depth</tvar>|ビット深度]] | ||
<!--T:58--> | |||
== 参考資料 == | == 参考資料 == | ||
<references /> | <references /> | ||
</translate> | </translate> | ||
Latest revision as of 06:41, 9 October 2026
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が有利な場合がある。