《2022年WAV文件结构 .pdf》由会员分享,可在线阅读,更多相关《2022年WAV文件结构 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、WAV 文件结构 WAVE是录音时用的标准的WINDOWS 文件格式,文件的扩展名为“WAV ”,数据本身的格式为 PCM 或压缩型。 WAV 文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采用 RIFF 文件格式结构,非常接近于AIFF 和 IFF 格式。符合RIFF Resource Interchange File Format规范。所有的WAV 都有一个文件头,这个文件头音频流的编码参数。 WAV 文件作为最经典的Windows 多媒体音频格式,应用非常广泛,它使用三个参数来表示声音: 采样位数、采样频率和声道数。声道有 单声道 和立体声 之分,采样频率一般有1102
2、5Hz(11kHz)、 22050Hz( 22kHz)和44100Hz(44kHz)三种。 WAV文件所占容量=(采样频率采样位数声道)时间/8 (1字节 =8bit )。 WAV 对音频流的编码没有硬性规定,除了PCM 之外,还有几乎所有支持ACM 规范的编码都可以为WAV 的音频流进行编码。多媒体应用中使用了多种数据,包括位图、音频数据、视频数据以及外围设备控制信息等。RIFF 为存储这些类型的数据提供了一种方法,RIFF 文件所包含的数据类型由该文件的扩展名来标识,能以 RIFF 文件存储的数据包括:音频视频交错格式数据(.AVI) 、波形格式数据(.WAV) 、位图格式数据(.RDI)
3、 、MIDI 格式数据 (.RMI) 、调色板格式 (.PAL) 、多媒体电影 (.RMN) 、动画光标 (.ANI) 、其它 RIFF 文件(.BND) 。 WAVE文件可以存储大量格式的数据,通常采用的音频编码方式是脉冲编码调制(PCM)。由于 WAV 格式源自Windows/Intel环境,因而采用Little-Endian字节顺序进行存储。WAVE 文件作为多媒体中使用的声波文件格式之一,它是以 RIFF 格式为标准的。 RIFF 是英文Resource Interchange File Format的缩写, 每个 WAVE 文件的头四个字节便是“RIFF”。WAVE 文件由 文件头
4、和数据体 两大部分组成。 其中文件头又分为RIFFWAV 文件标识段 和声音数据格式说明段两部分。 WAVE 文件各部分内容及格式见附表。常见的声音文件主要有两种,分别对应于单声道(11.025KHz 采样率、 8Bit的采样值)和双声道( 44.1KHz 采样率、 16Bit的采样值)。采样率是指:声音信号在“模数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。对于 单声道 声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于 双声道立体声 声音文件,每次采样数据为一个16 位的整数( int ),高八位和低八位分别代表左右两个声道
5、。 WAVE文件数据块包含以脉冲编码调制(PCM ) 格式表示的样本。WAVE 文件是由样本组织而成的。在单声道WAVE 文件中,声道0 代表左声道,声道1 代表右声道。在多声道WAVE 文件中,样本是交替出现的。WAVE 文件的每个样本值包含在一个整数i 中, i 的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i 的高有效位上,剩下的位置为0,这样 8 位和 16 位的 PCM波形样本的数据格式。 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF 格式为标准的。RIFF 是英文 Resource Interchange File Format
6、的缩写, 每个 WAVE 文件的头四个字节便是“RIFF”。WAVE 文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选 ), Data Chunk。具体见下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - .Wav 文件的四个组成部分:RIFF WA VE Chunk ID = RIFF RiffType= WA VE Form
7、at Chunk ID = fmt Fact Chunk (optional) ID = fact Data Chunk ID =data 其中 RIFF WAVE Chunk :名称长度内容ID 4 Bytes RIFF Size 4 Bytes FileLen-8 ,整个文件大小-8 Type 4 Bytes WAVE struct RIFF_HEADER char szRiffID4; / R,I,F,F DWORD dwRiffSize; char szRiffFormat4; / W,A,V,E ;其中 Format Chunk:名称长度内容ID 4 Bytes fmt Size 4
8、 Bytes 18/16 ( 有无附加信息 ) 本结构大小(除ID,Size )FormatTag 2 Bytes 通常 0 x0001 编码方式Channels 2 Bytes 1-单声道; 2-双声道立体声声道数目SamplesPerSec 4 Bytes 采样频率AvgBytesPerSec 4 Bytes 每秒所需字节数BlockAlign 2 Bytes 数据块对齐单位BitsPerSample 2 Bytes 每个采样需要的位bit 数附加信息2 Bytes (可选,通过Size 来判断有无)附加信息结构定义如下:struct WAVE_FORMA T WORD wFormatTa
9、g; WORD wChannels; DWORD dwSamplesPerSec; DWORD dwAvgBytesPerSec; WORD wBlockAlign; WORD wBitsPerSample; ; struct FMT_BLOCK char szFmtID4; / f,m,t, DWORD dwFmtSize; WAVE_FORMAT wavFormat; ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 其中
10、Fact Chunk (optional) : (可选)ID 4 Bytes fact Size 4 Bytes 数值为 4 data 4 Bytes struct FACT_BLOCK char szFactID4; / f,a,c,t DWORD dwFactSize; ; 其中 Data Chunk:ID 4 Bytes data Size 4 Bytes 数据区大小data 4 Bytes 数据区,真正存储数据的地方Data Chunk 头结构 定义如下:struct DATA_BLOCK char szDataID4; / d,a,t,a DWORD dwDataSize; ; WA
11、VE 文件格式剖析WAVE 文件作为多媒体中使用的声波文件格式之一,它是以RIFF 格式为标准的。RIFF 是英文Resource Interchange File Format 的缩写,每个WAVE 文件的头四个字节便是“ RIFF ”。WAVE 文件由文件头和数据体两大部分组成。其中文件头又分为RIFF WAV 文件标识段和声音数据格式说明段两部分。 WAVE 文件各部分内容及格式见附表。常见的声音文件主要有两种,分别对应于单声道 (11.025KHz 采样率、 8Bit 的采样值)和 双声道(44.1KHz 采样率、 16Bit 的采样值)。采样率是指:声音信号在“ 模数 ” 转换过程中
12、单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH) ;而对于双声道立体声声音文件,每次采样数据为一个16 位的整数( int) ,高八位和低八位分别代表左右两个声道。 WAVE 文件数据块包含以脉冲编码调制(PCM) 格式表示的样本。 WAVE 文件是由样本组织而成的。在单声道WAVE文件中,声道0 代表左声道,声道1 代表右声道。在多声道WAVE 文件中,样本是交替出现的。WAVE 文件格式说明表文件头偏移地址字节数数据类型内容00H 4 char RIFF 标志04H 4 long int
13、文件长度08H 4 char WAVE标志0CH 4 char fmt 标志10H 4 过渡字节(不定)14H 2 int 格式类别( 10H 为 PCM 形式的声音数据 ) 16H 2 int 声道数 ,单声道为1,双声道为2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 18H 2 int 采样频率,(每秒样本数) ,表示每个通道的播放速度,1CH 4 long int 波形音频数据传送速率,其值为通道数每秒数据位数 每样
14、本的数据位数 8。播放软件利用此值可以估计缓冲区的大小。20H 2 int 数据块的调整数(按字节算的),其值为通道数 每样本的数据位值8。播放软件需要一次处理多个该值大小的字节数据,以便将其值用于缓冲区的调整。22H 2 采样位数, 每样本的数据位数,表示每个声道中各个样本的数据位数。如果有多个声道,对每个声道而言,样本大小都一样。24H 4 char 数据标记符 data 28H 4 long int 语音数据的长度PCM数据的存放方式:样本 1 样本 2 8 位单声道 0 声道0 声道8 位立体声 0 声道(左)1 声道(右)0 声道(左)1 声道(右)16 位单声道 0 声道低字节0
15、声道高字节0 声道低字节0 声道高字节16 位立体声 0 声道(左)低字节0 声道(左)高字节1 声道(右)低字节1 声道(右)高字节WAVE 文件的每个样本值包含在一个整数i 中, i 的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i 的高有效位上,剩下的位置为0,这样 8 位和 16 位的 PCM波形样本的数据格式如下所示。样本大小数据格式最大值最小值8 位 PCM unsigned int 225 0 16 位 PCM int 32767 -32767 声音三参数:声道数,采样频率,采样位数所以,总言之,一个 Wav 文件的文件头包含45 个字节。第 23 和 24 存放 声道数 ,第 25 ,26 ,27 ,28 四个字节存放 采样频率 ,第 33 和 34 字节存放 采样位数 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -
限制150内