wav文件格式分析
2017-04-25 19:09
211 查看
基本概念 WAV为微软公司开发的一种声音文件格式,它符合RIFF文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几。 通常使用三个参数来表示声音,量化位数,取样频率和采样点振幅。量化位数分为8位,16位,24位三种,声道有单声道和立体声之分,单声道振幅数据为n*1矩阵点,立体声为n*2矩阵点,取样频率一般有11025Hz(11kHz) ,22050Hz(22kHz)和44100Hz(44kHz) 三种,不过尽管音质出色,但在压缩后的文件体积过大。相对其他音频格式而言是一个缺点,其文件大小的计算方式为:WAV格式文件所占容量(B) = (取样频率 X量化位数X 声道) X 时间 / 8 (字节= 8bit) 每一分钟WAV格式的音频文件的大小为10MB,其大小不随音量大小及清晰度的变化而变化。WAV是最接近无损的音乐格式,所以文件大小相对也比较大。所有的WAV都有一个文件头,这个文件头音频流的编码参数。 RIFF的格式辨别码为WAVE。整个文件由2chunk组成:辨别码“fmt”(注意,最后一个是空白字符)和“data”。 在fmt的chunk下包含了一个PCMWAVEFORMAT数据结构,其定义如下: typedef struct pcmwwaveformat-tag{ WAVEDOEMAT wf; WORD wBitsPerSample; }PCMWAVEFORMAT; typedef struct waveformat-tag{ WORD wFoematTag; WORD nChannels; DWORD nSamplesPerSec;\DWORD nAvgBytesperSec ; WROD nBlockAlign; }WAVEFORMAT; 其意义分别为: 1、wFormatTag记录此声音的格式代号, 例如WAVE_FORMAT_PAM、WAVE_FORMAT_ADPCM等。 2、nChannels:记录声音的频道数。 3、nSamplesPerSec:记录每秒取样数。 4、nAvgBytesPerSec:记录每秒的数据量。 5、nBlockAlign:记录区块的对齐单位。 6、wBitsPerSample:记录每个取样所需的位元数。 1、8比特和16比特样值得二进制编码表示一样吗? 不一样,8比特样值的数据格式是unsigned bytes,范围是0~255;16比特样值的数据格式是signed integers,范围是-32768~32767.
2、现有的wav支持哪几种音频压缩方法?