WAV文件格式详解

WAV文件是在PC机平台上很常见的、最经典的多媒体音频文件,最早于1991年8月出现在Windows3.1操作系统上,文件扩展名为WAV,是WaveForm的简写,也称为波形文件,可直接存储声音波形,还原的波形曲线十分逼真。WAV文件格式简称WAV格式是一种存储声音波形的数字音频格式,是由微软公司和IBM联合设计的,经过了多次修订,可用于Windows,Macintosh,Linux等多种操作系统。WAV支持多种音频数字、取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1kHz的取样频率,16位量化数字,因此声音文件质量和CD相差无几。WAV的特点如下:真实记录自然声波形,基本无数据压缩,数据量大。[1]

一般来说,由WAV文件还原而成的声音的音质取决于声音卡采样样本的尺寸,采样频率越高,音质就越好,但开销就越大,WAV文件也就越大。

(来源 百度百科)

结构简述

WAV文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储。WAV文件一般由3个区块组成:RIFF chunk、Format chunk和Data chunk。另外,文件中还可能包含一些可选的区块,如:Fact chunk、Cue points chunk、Playlist chunk、Associated data list chunk等。

分析时主要关注RIFF chunk、Format chunk和Data chunk。

ID0x004Byte大端RIFF (0x52494646)Size0x044Byte小端fileSize – 8Type0x084Byte大端WAVE(0x57415645)

  • 'RIFF'为标识
  • Size是整个文件的长度减去 IDSize的长度
  • TypeWAVE表示后面需要两个子块: Format区块和 Data区块

ID0x004Byte大端fmt (0x666D7420)Size0x044Byte小端16AudioFormat0x082Byte小端音频格式NumChannels0x0A2Byte小端声道数SampleRate0x0C4Byte小端采样率ByteRate0x104Byte小端每秒数据字节数BlockAlign0x142Byte小端数据块对齐BitsPerSample0x162Byte小端采样位数

  • 以’fmt ‘为标识
  • Size表示该区块数据的长度(不包含ID和Size的长度)
  • AudioFormat表示Data区块存储的音频数据的格式,PCM音频数据的值为1
  • NumChannels表示音频数据的声道数,1:单声道,2:双声道
  • SampleRate表示音频数据的采样率
  • ByteRate每秒数据字节数 = SampleRate * NumChannels * BitsPerSample / 8
  • BlockAlign每个采样所需的字节数 = NumChannels * BitsPerSample / 8
  • BitsPerSample每个采样存储的bit数,8:8bit,16:16bit,32:32bit

ID0x004Byte大端data(0x64617461)Size0x044Byte小端NData0x08NByte小端音频数据

  • 'data'为标识
  • Size表示音频数据的长度,N = ByteRate * seconds
  • Data音频数据

对于Data块,由于声道数和采样率的不同,造成不同的布局(每列1字节):

1.8bit单声道

采样1采样2数据1数据2

2.8bit双声道

采样1采样2数据1低字节数据1高字节数据1低字节数据1高字节

3.16bit单声道

采样1采样2数据1低字节数据1高字节数据1低字节数据1高字节

4.16bit双声道

采样1声道1数据1低字节声道1数据1高字节声道2数据1低字节声道2数据1高字节采样2声道1数据2低字节声道1数据2高字节声道2数据2低字节声道2数据2高字节

实例分析

名称大小实际数据说明ID4Byte

和描述一致Size4Byte

文件大小为2718998字节Type4Byte

文件类型为WAVE

ID4Byte

fmt (0x666D7420)

描述一致

Size4Byte

大小为16AudioFormat2Byte

音频格式NumChannels2Byte

声道数

双声道

SampleRate4Byte

采样率为44100ByteRate4Byte

每秒数据字节数为176400BlockAlign2Byte

数据块对齐BitsPerSample2Byte

采样位数16bit

ID4Byte

data(0x64617461)

描述一致

Size4Byte

数据大小为2718908字节DataNByte实际数据

参考文献

Original: https://blog.csdn.net/m0_58972462/article/details/123593405
Author: 打工小菜
Title: WAV文件格式详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/498122/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球