搜档网
当前位置:搜档网 › wav文件格式分析

wav文件格式分析

wav文件格式分析
wav文件格式分析

WAVE文件格式分析详解

By KS 2013/10/14

一、综述

本文借鉴了网络上的很多资料,经过自己实际开发案例的验证,以自己的理解重新编辑,可能存在错误的地方,欢迎提出,本文仅供参考,希望能为您提供帮助,同时也谢谢各位前辈所做的努力。

WAVE是计算机领域最常用的数字化声音文件格式之一,它是微软专门为Windows系统定义的波形文件格式,文件扩展名为*.wav,WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF 格式为标准的,RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF Chunk, fmt Chunk, fact Chunk(可选), data Chunk,前面三个Chunk可以看作是档头,包含了格式信息,后面的data Chunk是记录了详细的音频信息,最基本的WAVE文件是PCM(脉冲编码调制)格式,这个文件直接存储采样的声音数据,没有经过任何压缩,WAVE文件还有多种有损压缩的格式,比如DVI/IMA ADPCM,Microsoft ADPCM,被压缩的声音数据,需要先解压成PCM格式,才能用声卡来播放,本文将详细描述PCM格式和IMA ADPCM格式。

二,PCM格式分析

新建一个样本wav文件来分析,该wav内容为1s长的静音

查看其属性,如下:

再用uedit32查看wav文件的数据格式,需要注意,超过一字节的数据都是按照从低字节到高字节存储

File offset(bytes)field name Filed Size 解析

“RIFF”Chunk______________________________________________________________________

0x00~0x03 Chunk ID 4 16进制52 49 46 46=“RIFF”的ASCII码

0x04~0x07 ChunkSize 4 除去档头8个字节后,wav文件总长度(字节) ,

0x00007D24换算为十进制为32036,正好比样本wav

文件大小32044少8个字节

0x08~0x0b Format 4 16进制57 41 56 56=“WAVE”的ASCII码

“fmt ”Chunk______________________________________________________________________

0x0c~0x0f Subchunk1 ID 4 16进制66 6D 74 20=“fmt ”的ASCII码

0x10~0x13 Subchunk1 Size 4 描述fmt chunk的大小,该chunk去除ID和size所占

的字节数后剩下的其他字节数目,0x00000010表示后

面的16字节用于描述fmt chunk,不同的格式数值可能

不一样

0x14~0x15 AudioFormat 2 wav的数据编码格式,0x0001表示是PCM格式,其他

格式将是其他数值

0x16~0x17 Numchannels 2 wav的通道数,0x0001表示是单通道,0x0002表示是

双通道

0x18-0x1b Samplerate 4 wav的采样频率,描述每秒有多少个采样点,本例

0x00003E80,换算成10进制为16000

0x1c-0x1f byterate 4 wav每秒字节数=采样率*bit解析度*通道数/8,本例

wav采样率为16000,16bit,1通道,所以每秒字节数

=0x00007D00

0x20-0x21 BlockAlign 2 wav每个数据块字节数,pcm格式,一个采样点就是一

个块,本例一个采样点是16bit的pcm数据,所以占

用2个字节

0x22-0x23 BitsPerSample 2 wav的采样点bit解析度,一般取值是8/16/32

Fact Chunk(可选) _____________________________________________________________________ Fact Chunk是可选字段,一般当wav文件由某些软件转化而成,则包含该Chunk,对于PCM格式,这个chunk一般是省略掉的,其他的压缩格式一般都包含该chunk,IMA ADPCM格式就有这个chunk,后续章节再详细描述

Data Chunk_____________________________________________________________________

0x24-0x27: Subchunk2ID 4 16进制64 61 74 61= "data"的ASCII码

0x28-0x2b: Subchunk2Size 4 描述data chunk的大小,该chunk去除ID和size所占

的字节数后剩下的其他字节数目,此信息后的所有字

节都是音频数据,本例值为0x00007D00,表示音频

数据大小是32000字节,加上前面44个档头信息字

节,正好是wav文件总大小32044 0x2c~文件结束data n 从此位置开始到文件结束,全部用来记录音频信息。

根据Format Chunk中的声道数以及采样bit数,wav音频数据的排列位置可以分成以下几种形式:-----------------------------------------------------------------------------------------------------------------------------

| 单声道| 取样1 | 取样2 | 取样3 | 取样4 |

| |-------------------------------------------------------------------------------------------------------------- | 8bit量化| 声道0 | 声道0 | 声道0 | 声道0 |

-----------------------------------------------------------------------------------------------------------------------------

| 双声道| 取样1 | 取样2 |

| |-------------------------------------------------------------------------------------------------------------- | 8bit量化| 声道0(左) | 声道1(右) | 声道0(左) | 声道1(右) |

-----------------------------------------------------------------------------------------------------------------------------

| | 取样1 | 取样2 |

| 单声道|-------------------------------------------------------------------------------------------------------------- | 16bit量化| 声道0 | 声道0 | 声道0 | 声道0 |

| | (低位字节) | (高位字节) | (低位字节) | (高位字节) |

-----------------------------------------------------------------------------------------------------------------------------

| | 取样1 |

| 双声道|-------------------------------------------------------------------------------------------------------------- | 16bit量化| 声道0(左) | 声道0(左) | 声道1(右) | 声道1(右) |

| | (低位字节) | (高位字节) | (低位字节) | (高位字节) |

-----------------------------------------------------------------------------------------------------------------------------

需要注意,bit数为16bit,一个pcm采样点为带符号数据,取值范围是-32768~+32767,bit数为8bit,一个pcm采样点数据为无符号数据,取值范围是0~255(不确定所有的pcm编码wav文件都是这样,但是我个人电脑中的wav文件是这样的)。

三,IMA ADPCM格式分析

IMA-ADPCM是Intel公司开发的一种主要针对16bit采样波形数据的有损压缩算法,压缩比为4:1,ADPCM(差分脉冲编码调制)主要是针对连续的波形数据的,保存的是相邻波形的变化情况,以达到描述整个波形的目的。

将上面用到的样本wav文件另存为IMA ADPCM文件,文件扩展名还是*.wav,查看其属性,如下:

可以看到文件大小是PCM文件的1/4

再用uedit32查看wav文件的数据格式

IMA ADPCM格式的档头结构和PCM很相似,只是fmt Chunk更长,增加了一些格式信息的描述,而且fact Chunk有用到

File offset(bytes)field name Filed Size 解析

“RIFF”Chunk______________________________________________________________________ 0x00~0x03 Chunk ID 4 16进制52 49 46 46=“RIFF”的ASCII码

0x04~0x07 ChunkSize 4 除去档头8个字节后,wav文件总长度(字节) ,

0x00001FE4换算为十进制为8164,正好比样本wav

文件大小8172少8个字节

0x08~0x0b Format 4 16进制57 41 56 56=“WAVE”的ASCII码

“fmt ”Chunk______________________________________________________________________ 0x0c~0x0f Subchunk1 ID 4 16进制66 6D 74 20=“fmt ”的ASCII码

0x10~0x13 Subchunk1 Size 4 描述fmt chunk的大小,该chunk去除ID和size所占

的字节数后剩下的其他字节数目,0x00000014表示后

面的20字节用于描述fmt chunk,不同的格式数值可能

不一样

0x14~0x15 AudioFormat 2 wav的数据编码格式,0x0011表示是IMA ADPCM格

式,其他格式将是其他数值

0x16~0x17 Numchannels 2 wav的通道数,0x0001表示是单通道,0x0002表示是

双通道

0x18-0x1b Samplerate 4 wav的采样频率,描述每秒有多少个采样点,本例

0x00003E80,换算成10进制为16000 0x1c-0x1f byterate 4 wav每秒字节数=采样率*256/505,本例wav采样率为

16000,所以每秒字节数=0x00001FAE,256是一个数

据块的字节数,505是一个数据块包含的采样点数0x20-0x21 BlockAlign 2 wav每个数据块字节数,IMA ADPCM一个数据块是

256字节,所以本例值为0x0100 0x22-0x23 BitsPerSample 2 wav的采样点bit解析度,IMA ADPCM为4bit,16bit

的PCM数据按照4:1的压缩,所以每个采样点是4bit 0x24-0x25 addedByte 2 增加的字节数,值是2,相比PCM格式,fmt chunk

在这里已经结束,IMA ADPCM需要再补充2个字节

来增加描述信息

0x26-0x27 BlockSize 2 数据块包含的采样点数,IMA ADPCM一个数据块包

含505个采样点,一个数据块包含1个未压缩的16bit

PCM采样点和504个压缩的4bit ADPCM采样点Fact Chunk_________________________________________________________________________

0x28-0x2b: Subchunk2ID 4 16进制66 61 63 74="fact"的ASCII码

0x2c-0x2f: Subchunk2Size 4 描述fact chunk的大小,该chunk去除ID和size所占

的字节数后剩下的其他字节数目,0x00000004表示后

面的4字节用于描述fact chunk

0x30-0x33: FileSampleSize 4 该文件包含的采样点总数,可以直接推算出解压缩后的

PCM文件大小

Data Chunk_____________________________________________________________________

0x34-0x37: Subchunk3ID 4 16进制64 61 74 61= "data"的ASCII码

0x38-0x3b: Subchunk3Size 4 描述data chunk的大小,该chunk去除ID和size所占

的字节数后剩下的其他字节数目,此信息后的所有字

节都是音频数据,本例值为0x00001FB0,表示音频

数据大小是8112字节,加上前面60个档头信息字节,

正好是wav文件总大小8172

0x3c~文件结束data n 从此位置开始到文件结束,全部用来记录音频信息。接下来本文将以单声道,16bit PCM压缩成4bit IMA ADPCM格式来详细说明IMA ADPCM的音频数据格式

IMA ADPCM的数据是以block形式来组织的,我把它叫做“块/段”,在将PCM文件压缩成IMA ADPCM文件时,并不是依次把所有的采样逐点进行压缩保存,而是分段进行的,这样有一个十分重要的好处是,如果只需要文件中某个位置的信息时,只需要解压此位置所在的块即可,没有必要从文件开始位置一个一个解压缩,同时也可以保证声音效果。

Block是由header和data两者组成,其中header结构如下:

byte0~1:block中第一个未压缩的16bit PCM采样值

byte2: 上一个block最后一个index,第一个block的index=0,这里的index是用来表示信号变化幅度的变量

byte3:尚未使用

接下来的data由504个压缩过的4bit数据组成,一共252字节,加上header的4个字节,一个块正好是256个字节。

IMA ADPCM保存相邻波形的变化情况,用来描述整个波形,算法中需要用到两个一维数组,steptab[89]b和indextab[16],压缩和解压缩的原理和C代码在网络上已经很容易找到,本来再简单赘述一次。

IMA-ADPCM压缩过程:

首先我们认为声音信号都是从零开始,需要初始化两个变量,并用到两个函数:

int index=0,prev_sample=0

读取16bit未压缩数据函数:GetNextSamp()

保存4bit压缩数据函数:SaveAdpcmCode()

实现一个16bit pcm数据压缩成4bit ima adpcm数据的过程如下:

//calculate diff

cur_sample= GetNextSamp(); //得到一个16bit未压缩数据

diff= cur_sample-prev_sample //计算出当前采样点和上一个的增量

if(diff<0)

{

diff=-diff;

code=8; //保存符号位code.bit3 负数

}

else

{

code=0; //保存符号位.bit3 正数

}

//set the rest of the code

if(diff>=steptab[index]) //code=4*diff/ steptab[index]

{

code=code|4;

diff=diff- steptab[index];

}

if(diff>=steptab[index]>>1)

{

code=code|2;

diff=diff- steptab[index] >>1;

}

if(diff>=steptab[index]>>2)

{

Code=code|1; //计算出了code的bit2~bit0

}

//predict the current sample based on the sample code

diff=0; //diff=steptab[index]*code/4+ steptab[index]/8) if(code&4) diff=diff+ steptab[index];

if(code&2) diff=diff+ steptab[index]>>1;

if(code&1) diff=diff+ steptab[index]>>2;

diff=diff+ steptab[index]>>3;

if(code&8)diff=-diff;

prev_sample= prev_sample+diff; //更新prev_sample,并且防止溢出

if(prev_sample<-32768) prev_sample=-32768;

if(prev_sample>32767) prev_sample=32767

//adjust the step table index

index= index +indextab[code]; //更新index,并且防止溢出

if(index<0) index=0;

if(index>88) index=88;

SaveAdpcmCode(Code);//保存压缩后的4bit IMA ADPCM数据

IMA-ADPCM解压缩过程:

解压缩实际是压缩的逆过程, 用到两个函数:

读取4bit压缩数据函数:GetNextCode()

输出16bit解压缩数据函数:OutputSamp()

code= GetNextCode(); //得到一个需要解码的4bit压缩数据

//calculate

diff=0; //diff=steptab[index]*code/4+ steptab[index]/8) if(code&4) diff=diff+steptab[index];

if(code&2) diff=diff+(steptab[index]>>1);

if(code&1) diff=diff+(steptab[index]>>2);

diff=diff+(steptab[index]>>3);

if(code&8)diff=-diff;

cur_sample= prev_sample+diff; //更新prev_sample,并且防止溢出

//check sample

if(cur_sample<-32768) cur_sample=-32768;

if(cur_sample>32767) cur_sample=32767;

prev_sample =cur_sample;

//adjust index

index=index+indextab[code]; //更新index,并且防止溢出

if(index<0) index=0;

if(index>88) index=88;

OutputSamp(cur_sample); //输出一个16bit pcm数据

压缩和解压缩需要用到下面两个表格

Steptab[89]={

7, 8, 9, 10, 11, 12, 13, 14

16, 17, 19, 21, 23, 25, 28, 31

34, 37, 41, 45, 50, 55, 60, 66

73, 80, 88, 97, 107, 118, 130, 143

157, 173, 190, 209, 230, 253, 279, 307

337, 371, 408, 449, 494, 544, 598, 658

724, 796, 876, 963, 1060, 1166, 1282, 1411

1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024

3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484

7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899

15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794

32767

}

indextab [16]={

-1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8

}

wav音频格式

多媒体技术近年来发展很快,较好品质的声卡可以提供16位的立体声及44KHZ的播放录制能力,它不仅可以提供原音逼真的取样,其合成的音质也十分理想,有的声卡还加入了数字信号处理器,可编程控制的DSP具有强大的运算能力,它可以用来作声音信息的压缩和一些特殊效果的处理。具有此功能的声卡提供的WAV文件提供的语音信息可以满足语音特征识别的要求。 RIFF概念 在Windows环境下,大部分的多媒体文件都依循着一种结构来存放信息,这种结构称为"资源互换文件格式"(Resources lnterchange File Format),简称RIFF。例如声音的WAV 文件、视频的AV1文件等等均是由此结构衍生出来的。RIFF可以看做是一种树状结构,其基本构成单位为chunk,犹如树状结构中的节点,每个chunk由"辨别码"、"数据大小"及"数据"所组成。 图一、块的结构示意图 辨别码由4个ASCII码所构成,数据大小则标示出紧跟其后数据的长度(单位为Byte),而数据大小本身也用掉4个Byte,所以事实上一个chunk的长度为数据大小加8。一般而言,chunk本身并不允许内部再包含chunk,但有两种例外,分别为以"RIFF"及"L1ST"为辨别码

的chunk。而针对此两种chunk,RIFF又从原先的"数据"中切出4个Byte。此4个Byte 称为"格式辨别码",然而RIFF又规定文件中仅能有一个以"RIFF"为辨别码的chunk。 图二、RIFF/LIST块结构 只要依循此一结构的文件,我们均称之为RIFF档。此种结构提供了一种系统化的分类。如果和MS一DOS文件系统作比较,"RIFF"chunk就好比是一台硬盘的根目录,其格式辨别码便是此硬盘的逻辑代码(C:或D:),而"L1ST"chunk即为其下的子目录,其他的chunk则为一般的文件。至于在RIFF文件的处理方面,微软提供了相关的函数。视窗下的各种多媒体文件格式就如同在磁盘机下规定仅能放怎样的目录,而在该目录下仅能放何种数据。 WAV文件格式 WAVE文件是非常简单的一种RIFF文件,它的格式类型为"WAVE"。RIFF块包含两个子块,这两个子块的ID分别是"fmt"和"data",其中"fmt"子块由结构PCMWAVEFORMAT所组成,其子块的大小就是sizeofof(PCMWAVEFORMAT),数据组成就是PCMWAVEFORMAT结构中的数据。

wav文件头

一、各种W AV文件头格式 WAV文件也分好几个种类,相应的非数据信息存储在文件头部分,以下是各种WAV文件头格式。表18KHz采样、16比特量化的线性PCM语音信号的WAV文件头格式表(共44字节) 表28KHz采样、8比特A律量化的PCM语音信号的WAV文件头格式表(共58字节) 表38KHz采样、8比特U律量化的PCM语音信号的WAV文件头格式表(共58字节)

表4ADPCM语音编码后的WAV文件头格式表(共90字节) 表5GSM(Global System for Mobile Communication全球移动通信系统)语音编码后的WAV文件头格式表(共60字节)

表6SBC(Sub-Band Coding子带编码)语音编码后的WAV文件头格式表(共58字节) 表7CELP(Code Excited Linear Prediction码激励线性预测编码——近10年来最成功的语音编码算法)语音编码后的WAV文件头格式表(共58字节) 概念1、读取WAV文件,填写WAVEFORMATEX结构 WAVEFORMATEX

typedef struct{WORD wFormatTag;WORD nChannels;DWORD nSamplesPerSec;DWORD nAvgBytesPe rSec; WORD nBlockAlign;WORD wBitsPerSample;WORD cbSize;} WAVEFORMATEX; 具体参数解释如下: wFormatTag:波形数据的格式,定义在MMREG.H文件中 nChannels:波形数据的通道数:单声道或立体声 nSamplesPerSec:采样率,对于PCM格式的波形数据,采样率有8.0 kHz,11.025kHz,22.05 kHz,44.1 kHz 等 nAvgBytesPerSec:数据率,对于PCM格式的波形数据,数据率等于采样率乘以每样点字节数nBlockAlign:每个样点字节数 wBitsPerSample:采样精度,对于PCM格式的波形数据,采样精度为8或16 cbSize:附加格式信息的数据块大小 概念2、定义设备头结构 以下WAVEHDR定义了指向波形数据缓冲区的设备头。 WAVEHDR typedef struct { LPSTR lpData; DWORD dwBufferLength; DWORD dwBytesRecorded; DWORD dwUser ; DWORD dwFlags; DWORD dwLoops; struct wavehdr_tag * lpNext; DWORD reserved; } WAVEHDR; lpData:波形数据的缓冲区地址 dwBufferLength:波形数据的缓冲区地址的长度 dwBytesRecorded:当设备用于录音时,标志已经录入的数据长度 dwUser:用户数据 dwFlags:波形数据的缓冲区的属性 dwLoops:播放循环的次数,仅用于播放控制中 lpNext和reserved均为保留值 注意:上述结构体以及我们在程序中所使用到的“HWAVEIN””HWAVEOUT”结构体均是系统已经存在的,我们只需要对其进行赋值即可。 二、PCM(44字节)的W AV文件头及其相关的编程方法 1、以下就经常见的一种格式PCM(44字节)的WAV文件头进行分析。 举例说明:kugoo下载的一首wav文件:魏三抹去泪水wav.wav(大小14,703,980 字节,时长2:46),文件头如下: ⑴地址00H-03H,值为“RIFF”标志;

WAV文件格式说明

WAV文件格式说明 ――杨少军WAVE文件是以RIFF(Resource Interchange File Format,"资源交互文件格式")格式来组织内部结构的。RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,最顶端是一个“RIFF”块,下面的每个块有“类型块标识(可选)”、“标志符”、“数据大小”及“数据”等项所组成,其中,format chunk和data chunk是必需要的,其它的chunk可选。在data chunk中存放的数据可能是压缩的也可能是非压缩的,这是根据format chunk中的wFormatTag来决定的,如果wFormatTag为WA VE_FORMA T_PCM 时,表示数据为非压缩的,其它的为压缩的。在非压缩格式时,存放的数据就是PCM码;而在采用压缩格式时,由于各个公司都有自己的压缩算法,没有一个统一的标准,所以压缩制式非常杂。下面主要以INTEL 公司的IMA-ADPCM压缩算法来讲W A V文件的结构。 1.WA V文件内部结构 在讲W A V文件结构时,主要以非压缩格式和以INTEL 公司的IMA-ADPCM压缩算法来论述。下面来谈谈INTEL 公司的IMA-ADPCM压缩算法。 IMA-ADPCM 是Intel公司首先开发的是一种主要针对16bit采样波形数据的有损压缩算法, 压缩比为4:1.它与通常的DVI-ADPCM是同一算法。它是将声音流中每次采样的16bit 数据以4bit 存储。具体的压缩算法可以参看其它文章。

在wFormatTag为W A VE_FORMA T_PCM时,没有Fact Chunk,也没有format chunk 中的wSamplesPerBlock,data chunk中紧跟着DataChunkSize后的就是PCM数据了。而在wFormatTag为WA VE_FORMA T_DVI_ADPCM时,表示采用INTEL 公司的IMA-ADPCM 压缩算法,W A V文件格式即为上表所示。 在采用IMA-ADPCM压缩算法时,“data”chuck中的数据是以block形式来组织的,把它叫做“段”,也就是说在进行压缩时,并不是依次把所有的数据进行压缩保存,而是分段进行的。Data Block一般是由block header (block头) 和data 两者组成的。其中block header是一个结构,它在单声道下的定义如下: Typedef struct { short sample0; //block中第一个采样值(未压缩) BYTE index; //上一个block最后一个index,第一个block的index=0; BYTE reserved; //尚未使用 }MonoBlockHeader; 有了blockheader的信息后,就可以不需要知道这个block前面和后面的数据而轻松地解出本block中的压缩数据。对于双声道,它的blockheader应该包含两个MonoBlockHeader 其定义如下: typedaf struct { MonoBlockHeader leftbher; MonoBlockHeader rightbher; }StereoBlockHeader; 在解压缩时,左右声道是分开处理的,所以必须有两个MonoBlockHeader;

很好的资料-wav文件头汇总

一、各种WA V文件头格式

概念1、读取WAV文件,填写WAVEFORMATEX结构WAVEFORMATEX

typedef struct{WORD wFormatTag;WORD nChannels;DWORD nSamplesPerSec;DWORD nAvgBytesPe rSec;WORD nBlockAlign;WORD wBitsPerSample;WORD cbSize;}WAVEFORMATEX; 具体参数解释如下: wFormatTag:波形数据的格式,定义在MMREG.H文件中 nChannels:波形数据的通道数:单声道或立体声 nSamplesPerSec:采样率,对于PCM格式的波形数据,采样率有8.0kHz,11.025kHz,22.05kHz,44.1kHz 等 nAvgBytesPerSec:数据率,对于PCM格式的波形数据,数据率等于采样率乘以每样点字节数nBlockAlign:每个样点字节数 wBitsPerSample:采样精度,对于PCM格式的波形数据,采样精度为8或16 cbSize:附加格式信息的数据块大小 概念2、定义设备头结构 以下WAVEHDR定义了指向波形数据缓冲区的设备头。 WAVEHDR typedef struct{LPSTR lpData;DWORD dwBufferLength;DWORD dwBytesRecorded;DWORD dwUser; DWORD dwFlags;DWORD dwLoops;struct wavehdr_tag*lpNext;DWORD reserved;}WAVEHDR; lpData:波形数据的缓冲区地址 dwBufferLength:波形数据的缓冲区地址的长度 dwBytesRecorded:当设备用于录音时,标志已经录入的数据长度 dwUser:用户数据 dwFlags:波形数据的缓冲区的属性 dwLoops:播放循环的次数,仅用于播放控制中 lpNext和reserved均为保留值 注意:上述结构体以及我们在程序中所使用到的“HWAVEIN””HWAVEOUT”结构体均是系统已经存在的,我们只需要对其进行赋值即可。 二、PCM(44字节)的W A V文件头及其相关的编程方法 1、以下就经常见的一种格式PCM(44字节)的WAV文件头进行分析。 举例说明:kugoo下载的一首wav文件:魏三抹去泪水wav.wav(大小14,703,980字节,时长2:46),文件头如下: ⑴地址00H-03H,值为“RIFF”标志;

wave文件(.wav)格式、PCM数据格式

wave文件(*.wav)格式、PCM数据格式 1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有44100 次采样, 采样数据用16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有22050 次采样, 采样数据用8 位(1字节)记录, 单声道; 当然也可以有16bit 的单声道或8bit 的立体声, 等等。 采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。 对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH); 而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位(左声道)和低八位(右声道)分别代表两个声道。 人对频率的识别范围是20HZ - 20000HZ, 如果每秒钟能对声音做20000 个采样, 回放时就足可以满足人耳的需求. 所以22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。这和电影的每秒24 帧图片的道理差不多。 每个采样数据记录的是振幅, 采样精度取决于储存空间的大小: 1 字节(也就是8bit) 只能记录256 个数, 也就是只能将振幅划分成256 个等级; 2 字节(也就是16bit) 可以细到65536 个数, 这已是CD 标准了; 4 字节(也就是32bit) 能把振幅细分到4294967296 个等级, 实在是没必要了. 如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍. 这样我们就可以根据一个wav 文件的大小、采样频率和采样大小估算出一个wav 文件的播放长度。 譬如"Windows XP 启动.wav" 的文件长度是424,644 字节, 它是"22050HZ / 16bit / 立体声" 格式(这可以从其"属性->摘要" 里看到), 那么它的每秒的传输速率(位速, 也叫比特率、取样率)是22050*16*2 = 705600(bit/s), 换算成字节单位就是705600/8 = 88200(字节/秒), 播放时间:424644(总字节数) / 88200(每秒字节数) ≈ 4.8145578(秒)。 但是这还不够精确, 包装标准的PCM 格式的WAVE 文件(*.wav)中至少带有42 个字节的头信息, 在计算播放时间时应该将其去掉, 所以就有:(424644-42) / (22050*16*2/8) ≈ 4.8140816(秒). 这样就比较精确了. 关于声音文件还有一个概念: "位速", 也有叫做比特率、取样率, 譬如上面文件的位速是705.6kbps 或705600bps, 其中的b 是bit, ps 是每秒的意思;

wav文件格式分析详解

wav文件格式分析详解 一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。 RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个 字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选), Data Chunk。具体见下图: ------------------------------------------------ | RIFF WAVE Chunk | | ID = 'RIFF' | | RiffType = 'WAVE' | ------------------------------------------------ | Format Chunk | | ID = 'fmt ' | ------------------------------------------------ | Fact Chunk(optional) | | ID = 'fact' | ------------------------------------------------ | Data Chunk | | ID = 'data' | ------------------------------------------------ 图1 Wav格式包含Chunk示例 其中除了Fact Chunk外,其他三个Chunk是必须的。每个Chunk有各自的ID,位 于Chunk最开始位置,作为标示,而且均为4个字节。并且紧跟在ID后面的是Chunk大小(去除ID和Size所占的字节数后剩下的其他字节数目),4个字节表示,低字节 表示数值低位,高字节表示数值高位。下面具体介绍各个Chunk内容。 PS: 所有数值表示均为低字节表示低位,高字节表示高位。 二、具体介绍 RIFF WAVE Chunk ==================================

常见音频文件格式的特点

常见音频文件格式的特点。 要在计算机内播放或是处理音频文件,也就是要对声音文件进行数、模转换,这个过程同样由采样和量化构成,人耳所能听到的声音,最低的频率是从20Hz起一直到最高频率20KHZ,20KHz以上人耳是听不到的,因此音频的最大带宽是20KHZ,故而采样速率需要介于40~50KHZ之间,而且对每个样本需要更多的量化比特数。音频数字化的标准是每个样本16位-96dB的信噪比,采用线性脉冲编码调制PCM,每一量化步长都具有相等的长度。在音频文件的制作中,正是采用这一标准。 CD格式:正统血脉 当今世界上音质最好的音频格式是什么?当然是CD 了。因此要讲音频格式,CD自然是打头阵的先锋。在大多数播放软件的“打开文件类型”中,都可以看到*.cda格式,这就是CD音轨了。标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数,因为CD音轨可以说是近似无损的,因此它的声音基本上是忠于原声的,因此如果你是一个音响发烧友的话,CD是你的首选。它会让你感受到天籁

之音。CD光盘可以在CD唱机中播放,也能用电脑里的各种播放软件来重放。一个CD音频文件是一个*.cda文件,这只是一个索引信息,并不是真正的包含声音信息,所以不论CD音乐的长短,在电脑上看到的“*.cda文件”都是44字节长。注意:不能直接的复制CD格式的*.cda文件到硬盘上播放,需要使用象EAC这样的抓音轨软件把CD格式的文件转换成WAV,这个转换过程如果光盘驱动器质量过关而且EAC的参数设置得当的话,可以说是基本上无损抓音频。推荐大家使用这种方法。 WAV:无损 是微软公司开发的一种声音文件格式,它符合PIFFResource Interchange File Format 文件规范,用于保存WINDOWS平台的音频信息资源,被WINDOWS平台及其应用程序所支持。“*.WAV”格式支持MSADPCM、CCITT A LAW 等多种压缩算法,支持多种音频位数、采样频率和声道,标准格式的WAV文件和CD格式一样,也是44.1K的采样频率,速率88K/秒,16位量化位数,看到了吧,WAV格式的声音文件质量和CD相差无几,也是目前PC机上广为流行的声音文件格式,几乎所有的音频编辑软件都“认识”WAV格式。

请问如何将flac格式的视频转换成wav格式

flac和wav很相似,都是音频编码的一种音频压缩编码。而且flac 和wav都为无损压缩音频格式,标准格式化的WAV文件和CD格式一样,因此如果有些用户想要将下载的flac格式音频转换为wav也是比较容易实现的,只需要一款音频转换器便可轻松实现。以下即是小编常使用的一款迅捷音频转换器,一起来看看它是如何将flac转换wav 音频格式。 1、将此款迅捷音频转换器安装在电脑上,可鼠标双击软件图标将软件快速打开,有三种方式进行文件添加,第一是界面左上方的“添加文件”第二是点击中间的“+”号第三就很方便了,直接将flac文件拖拽进入即可。

2、点击右上方“选择输出格式”右边的倒三角符号。弹出格式选项,来到“音频”选项上,我们很快就可以找到并点击需要转换的wav格式文件。 3、如果想要wav文件转换出来的效果变得更好的,那么就要来到参数的设置项上。我们可以看到音频设置项上,有音频质量、声道、编码等设置。音频声道、质量越大,声音的效果就越好,文件也就越大;

这些功能参数可以按照自己的意愿随意更改设置。 4、在文件转换之前,我们接下来需要做的就是来到主界面下方的输出目录设置,点击输出目录右边的更改路径按钮,然后就在弹出的对话框上选择存放文件的地方。 5、等到所有都设置好了。我们就可以将flac文件进行转换啦,可以点击文件右边的“转换”按钮也可以点击下方的“开始转换”然后进行音频文件格式的转换。

6、相对于音频格式之间转换来说,一般一个文件的转换,其速度非常快的,一首歌曲只需要几秒钟就可以完成转换了。等到转换完成,你就可以到以上你设置好的输出目录上轻松又快速地找到wav音频文件了。 总结:在将flac转wav中,在整个过程中,选择格式和参数设置是最主要的两步。当你熟悉这款软件之后,你就会很快将音频格式文件轻

各种音视频编解码学习详解

各种音视频编解码学习详解 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间。尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析、应用开发、释放license收费等等。最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了。所以豆丁上看不出所以然,从wiki上查。中文的wiki信息量有限,很短,而wiki的英文内容内多,删减版也减肥得太过。我在网上还看到一个山寨的中文wiki,长得很像,红色的,叫―天下维客‖。wiki的中文还是很不错的,但是阅读后建议再阅读英文。 我对媒体codec做了一些整理和总结,资料来源于wiki,小部分来源于网络博客的收集。网友资料我们将给出来源。如果资料已经转手几趟就没办法,雁过留声,我们只能给出某个轨迹。 基本概念 编解码 编解码器(codec)指的是一个能够对一个信号或者一个数据流进行变换的设备或者程序。这里指的变换既包括将信号或者数据流进行编码(通常是为了传输、存储或者加密)或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流中恢复适合观察或操作的形式的操作。编解码器经常用在视频会议和流媒体等应用中。 容器 很多多媒体数据流需要同时包含音频数据和视频数据,这时通常会加入一些用于音频和视频数据同步的元数据,例如字幕。这三种数据流可能会被不同的程序,进程或者硬件处理,但是当它们传输或者存储的时候,这三种数据通常是被封装在一起的。通常这种封装是通过视频文件格式来实现的,例如常见的*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta. 这些格式中有些只能使用某些编解码器,而更多可以以容器的方式使用各种编解码器。 FourCC全称Four-Character Codes,是由4个字符(4 bytes)组成,是一种独立标示视频数据流格式的四字节,在wav、avi档案之中会有一段FourCC来描述这个AVI档案,是利用何种codec来编码的。因此wav、avi大量存在等于―IDP3‖的FourCC。 视频是现在电脑中多媒体系统中的重要一环。为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放。视频档实际上都是一个容器里面包裹着不同的轨道,使用的容器的格式关系到视频档的可扩展性。 参数介绍 采样率 采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数叫作采样周期或采样时间,它是采样之间的时间间隔。注意不要将采样率与比特率(bit rate,亦称―位速率‖)相混淆。 采样定理表明采样频率必须大于被采样信号带宽的两倍,另外一种等同的说法是奈奎斯特频率必须大于被采样信号的带宽。如果信号的带宽是100Hz,那么为了避免混叠现象采样频率必须大于200Hz。换句话说就是采样频率必须至少是信号中最大频率分量频率的两倍,否则就不能从信号采样中恢复原始信号。 对于语音采样: ?8,000 Hz - 电话所用采样率, 对于人的说话已经足够 ?11,025 Hz ?22,050 Hz - 无线电广播所用采样率 ?32,000 Hz - miniDV 数码视频camcorder、DAT (LP mode)所用采样率 ?44,100 Hz - 音频CD, 也常用于MPEG-1 音频(VCD, SVCD, MP3)所用采样率

wav 声音文件介绍

1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道; 当然也可以有 16bit 的单声道或 8bit 的立体声, 等等。 采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。 对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH); 而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位(左声道)和低八位(右声道)分别代表两个声道。 人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。这和电影的每秒 24 帧图片的道理差不多。 每个采样数据记录的是振幅, 采样精度取决于储存空间的大小: 1 字节(也就是8bit) 只能记录 256 个数, 也就是只能将振幅划分成 256 个等级; 2 字节(也就是16bit) 可以细到 65536 个数, 这已是 CD 标准了; 4 字节(也就是32bit) 能把振幅细分到 4294967296 个等级, 实在是没必要了. 如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍. 这样我们就可以根据一个 wav 文件的大小、采样频率和采样大小估算出一个 wav 文件的播放长度。

wav文件格式分析

一.RIFF概念 在Windows环境下,大部分的多媒体文件都依循着一种结构来存放信息,这种结构称为"资源互换文件格式"(Resources Interchange File Format),简称RIFF。例如声音的WAV文件、视频的AV1文件等等均是由此结构衍生出来的。RIFF可以看做是一种树状结构,其基本构成单位为chunk,犹如树状结构中的节点,每个chunk 由"辨别码"> '数据大小"及"数据"所组成。 图一、块的结构示意图 辨别码由4个ASCII码所构成,数据大小则标示出紧跟其后数据的长度(单位为Byte),而数据大小本身也用掉4个Byte,所以事实上一个chunk的长度为数据大小加8。一般而言,chunk本身并不允许内部再包 含chunk,但有两种例外,分别为以"RIFF"及"L1ST"为辨别码的chunk。而针对此两种chunk,RIFF又从 原先的"数据"中切出4个Byte。此4个Byte称为"格式辨别码",然而RIFF又规定文件中仅能有一个以 "RIFF"为辨别码的chunk。 图二、RIFF/LIST块结构 只要依循此一结构的文件,我们均称之为RIFF档。此种结构提供了一种系统化的分类。如果和MS —DOS 文件系统作比较,"RIFF"chunk就好比是一台硬盘的根目录,其格式辨别码便是此硬盘的逻辑代码(C :或D:),而"L1ST"chunk即为其下的子目录,其他的chunk则为一般的文件。至于在RIFF文件的处理方面,微软提供了相关的函数。视窗下的各种多媒体文件格式就如同在磁盘机下规定仅能放怎样的目录,而在该目录下仅能放何种数据。 二.WAV文件格式 WAVE文件是非常简单的一种RIFF文件,它的格式类型为"WAVE"。RIFF块包含两个子块,这两个子块 的ID分别是"fmt"和"data",其中"fmt"子块由结构PCMWAVEFORMAT 所组成,其子块的大小就是sizeofof (PCMWAVEFORMAT),数据组成就是PCMWAVEFORMAT 结构中的数据。

常见音频文件格式

音频格式详解 以下是常见音频文件格式的特点。 要在计算机内播放或是处理音频文件,也就是要对声音文件进行数、模转换,这个过程同样由采样和量化构成,人耳所能听到的声音,最低的频率是从20Hz 起一直到最高频率20KHZ,20KHz以上人耳是听不到的,因此音频的最大带宽是20KHZ,故而采样速率需要介于40~50KHZ之间,而且对每个样本需要更多的量化比特数。音频数字化的标准是每个样本16位-96dB的信噪比,采用线性脉冲编码调制PCM,每一量化步长都具有相等的长度。在音频文件的制作中,正是采用这一标准。 CD格式:正统血脉 当今世界上音质最好的音频格式是什么?当然是CD了。因此要讲音频格式,CD自然是打头阵的先锋。在大多数播放软件的“打开文件类型”中,都可以看到*.cda格式,这就是CD音轨了。标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数,因为CD音轨可以说是近似无损的,因此它的声音基本上是忠于原声的,因此如果你是一个音响发烧友的话,CD是你的首选。它会让你感受到天籁之音。CD光盘可以在CD唱机中播放,也能用电脑里的各种播放软件来重放。一个CD音频文件是一个*.cda文件,这只是一个索引信息,并不是真正的包含声音信息,所以不论CD音乐的长短,在电脑上看到的“*.cda文件”都是44字节长。注意:不能直接的复制CD格式的*.cda文件到硬盘上播放,需要使用象EAC这样的抓音轨软件把CD格式的文件转换成WAV,这个转换过程如果光盘驱动器质量过关而且EAC的参数设置得当的话,可以说是基本上无损抓音频。推荐大家使用这种方法。 WAV:无损 是微软公司开发的一种声音文件格式,它符合 PIFFResource Interchange File Format 文件规范,用于保存WINDOWS平台的音频信息资源,被WINDOWS 平台及其应用程序所支持。“*.WAV”格式支持MSADPCM、CCITT A LAW等多种压缩算法,支持多种音频位数、采样频率和声道,标准格式的WAV文件和CD格式一样,也是44.1K的采样频率,速率88K/秒,16位量化位数,看到了吧,WAV 格式的声音文件质量和CD相差无几,也是目前PC机上广为流行的声音文件格式,几乎所有的音频编辑软件都“认识”WAV格式。但缺点是体型过于“巨大”。 AIFF与AU 这里顺便提一下由苹果公司开发的AIFF(Audio Interchange File Format)格式和为UNIX系统开发的AU格式,它们都和WAV非常相像,在大多数的音频编辑软件中也都支持它们这几种常见的音乐格式。 MP3:流行

WAV文件结构

WAV文件结构 WAVE是录音时用的标准的WINDOWS文件格式,文件的扩展名为“WAV”,数据本身的格式为PCM或压缩型。 WAV文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采用RIFF文件格式结构,非常接近于AIFF和IFF格式。符合RIFF Resource Interchange File Format 规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。 WAV文件作为最经典的Windows多媒体音频格式,应用非常广泛,它使用三个参数来表示声音:采样位数、采样频率和声道数。 声道有单声道和立体声之分,采样频率一般有11025Hz(11kHz)、22050Hz(22kHz)和44100Hz(44kHz)三种。WAV文件所占容量=(采样频率×采样位数×声道)×时间/8(1字节=8bit)。 WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。多媒体应用中使用了多种数据,包括位图、音频数据、视频数据以及外围设备控制信息等。RIFF为存储这些类型的数据提供了一种方法,RIFF文件所包含的数据类型由该文件的扩展名来标识,能以RIFF文件存储的数据包括: 音频视频交错格式数据(.AVI) 、波形格式数据(.WAV) 、位图格式数据(.RDI) 、MIDI格式数据(.RMI) 、调色板格式(.PAL) 、多媒体电影(.RMN) 、动画光标(.ANI) 、其它RIFF文件(.BND) 。 WAVE文件可以存储大量格式的数据,通常采用的音频编码方式是脉冲编码调制(PCM)。由于WAV格式源自Windows/Intel环境,因而采用Little-Endian字节顺序进行存储。WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAVE文件各部分内容及格式见附表。 常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。 对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。 WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。WAVE文件是由样本组织而成的。在单声道WAVE文件中,声道0代表左声道,声道1代表右声道。在多声道WAVE文件中,样本是交替出现的。 WAVE文件的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式。 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。 RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选), Data Chunk。具体见下图:

常用文件类型解析

基本能力复习(信息技术)——常用文件类型解析 计算机中的文件名由主文件名和扩展文件名组成,中间用·隔开。主名可由使用者自行决定,扩展名则用来标明文件的类型。在图形用户界面(GUI)下,计算机会根据扩展名使用一种图标来表示某一类型的文件,这样我们看起来就一目了然了。 文件的扩展名代表着某一种类型的文件,一般会由某一种特定的软件产生和处理。 视频格式: .mpg(采用MPEG-1标准压缩的视频文件,与VCD使用的格式非常相近,提供CD质量的音频信号和320*240的视频分辨率,目前的媒体播放软件大都能播放,Microsoft的WMV8和MPEG-4压缩的A VI文件是其强大的竞争对手),.mpeg类似于.mpg。 .avi(一种使用Microsoft RIFF规范的Windows多媒体文件格式,用于存储声音和移动的图片)。 .rm,.ram,.rmvb(Windows下的RealPlayer所支持的视频压缩文件,网上非常流行的流式视频文件,很多实时视频新闻等都是采用这种格式的). .mov(使用Apple's QuickTime格式的电影文件,在Macintosh中由Sparkle、Fast Player、Movie Player 等软件播放,在Windows中可由Quick time播放), .asf(微软的媒体播放器支持的视频流,可以使用Windows Media Player播放), .dat(VCD中的图象声音文件,VCD播放软件可调用,或是通过VCD机播放) 音频格式: .mp3(采用MPEG-1 Layout 3标准压缩的音频文件,是网上主要的压缩音频文件,这种文件由于具有极高的压缩率和失真低的特点,是目前音乐盗版的主要文件格式,但目前受到VQF,WMA等新标准的挑战)。 .wma,由微软公司开发,音质可与MP3相比,而大小只有MP3格式的一半,同时支持音频流技术,可用于Internet。 .rm, .ram是RealNetworks公司开发的一种新型流式音频、视频文件格式,主要用在广域网上进行实时传送和实时播放。 .wav(音频文件,此文件格式是在Windows上用于保存音频信息的资源格式。 .MID:国际MIDI协会开发的声音文件格式,被Windows平台和许多应用程序所支持,用于为乐器创建数字声音。 图片格式: .GIF(Graphics Interchage format):支持透明背景图像,文件很小,色彩限定在256色以内,主要应用在网络上。在各种平台的各种图形处理软件上均能够处理的,经过压缩的一种图形文件格式。.bmp:Microsoft paint的固定格式,文件几乎不压缩,占用磁盘空间大,普遍应用于Windows中。.jpg:JPEG文件格式是静态图像压缩的国际标准,是应用广泛的图像压缩格式,多用于网络和光盘读物上,可使用PhotoShop等图象处理软件创建(.jpeg:一种图片压缩文件,同.jpg)。 .png:PNG格式是目前保证最不失真的格式,它汲取了GIF及JPEG的特点,不支持动画应用效果,是一种新兴的网络图像格式。 .psd:是PhotoShop中使用的一种标准图形文件格式,能够保存图像数据的每一个细小部分,包括层,附加的蒙版通道以及其他内容。 .wmf :Microsoft Windows中常见的一种图元文件格式,它具有文件短小,图案造型化的特点,整个图形常由各个独立的组成部分拼接而成,但其图形往往较粗糙,并且只能在Microsoft Office中调用编辑

wav文件格式详解

WAV (Waveform audio format )是微软与IBM 公司所开发的一种声音编码格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows 平台的音频信息资源,被Windows 平台及其应用程序所广泛支持,也是其音乐发烧友中常用的指定规格之一。由于此音频格式未经过压缩,所以在音质方面不会出现失真的情况,但档案的体积因而在众多音频格式中较为大。该格式支持多种音频数字,取样频率和声道,标准格式化的WAV 文件和CD 格式一样,也是44.1K 的取样频率,16位量化数字,因此在声音文件质量和CD 相差无几! WAV 打开工具是WINDOWS 的媒体播放器。每个WAVE 文件的头四个字节便是“RIFF”。WAVE 文件由文件头和数据体两大部分组成。其中文件头又分为RIFF /WAV 文件标识段和声音数据格式说明段两部分。WAVE 文件各部分内容及格式见下表。 文件头 声音数据块 偏移地址 字节数 类型 内容 24H~27H 4 字符 数据标志符(data ) 28H~2BH 4 长整型 采样数据总数 2CH... ... 采样数据 示例 下图是用UltraEdit 打开的wav 文件的部分截图 偏移地址 字节数 类型 内容 00H~03H 4 字符 资源交换文件标志(RIFF ) 04H~07H 4 长整数 从下个地址开始到文件尾的总字节数 08H~0BH 4 字符 WAV 文件标志(WAVE ) 0CH~0FH 4 字符 波形格式标志(FMT ) 10H~13H 4 整数 过滤字节(一般为00000010H ) 14H~15H 2 整数 格式种类(值为1时,表示数据为线性PCM 编码) 16H~17H 2 整数 通道数,单声道为1,双声音为2 18H~1BH 4 长整数 采样频率 1CH~1FH 4 长整数 波形数据传输速率(每秒平均字节数) 20H~21H 2 整数 数据的调整数(按字节计算) 22H~23H 2 整数 样本数据位数

wav文件文件头格式

一、WAVE文件格式剖析 WA VE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。 RIFF是英文ResourceInterchangeFileFormat的缩写,每个W A VE文件的头四个字节便是“RIFF”。WA VE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV 文件标识段和声音数据格式说明段两部分。W A VE文件各部分内容及格式见附表。 常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。采样率是指:声音信号在“模→数” 转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。 对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。 WA VE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。W A VE文件是由样本组织而成的。在单声道W A VE文件中,声道0代表左声道,声道1代表右声道。 在多声道W A VE文件中,样本是交替出现的。 WA VE文件格式说明表 偏移地址字节数数据类型内容 文件头 00H4char"RIFF"标志 04H4longint文件长度 08H4char"WA VE"标志 0CH4char"fmt"标志 10H4过渡字节(不定) 14H2int格式类别(10H为PCM形式的声音数据) 16H2int通道数,单声道为1,双声道为2 18H2int采样率(每秒样本数),表示每个通道的播放速度, 1CH4longint波形音频数据传送速率,其值为通道数×每秒数据位数×每样本的数据位数/8。播放软件利用此值可以估计缓冲区的大小。 20H2int数据块的调整数(按字节算的),其值为通道数×每样本的数据位值/8。播放软件需要一次处理多个该值大小的字节数据,以便将其值用于缓冲区的调整。 22H2每样本的数据位数,表示每个声道中各个样本的数据位数。如果有多个声道,对每个声道而言,样本大小都一样。 24H4char数据标记符"data" 28H4longint语音数据的长度 PCM数据的存放方式: 样本1样本2 8位单声道0声道0声道 8位立体声0声道(左)1声道(右)0声道(左)1声道(右) 16位单声道0声道低字节0声道高字节0声道低字节0声道高字节 16位立体声0声道(左)低字节0声道(左)高字节1声道(右)低字节1声道(右)高字节

相关主题