WAV: Difference between revisions

From daw.wiki
Jump to navigation Jump to search
DawWriter (talk | contribs)
WAVのRIFF構造、PCM、Broadcast Wave、RF64、DAW用途を詳説
 
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が有利な場合がある。

関連項目

参考資料