概述
一、WAV文件概述
WAV是最常见的声音文件格式之一,是微软公司专门为Windows开发的一种标准数字音频文件,该文件能记录各种单声道或立体声的声音信息,并能保证声音不失真。数据本身的格式为PCM或压缩型,属于无损音乐格式的一种。WAV符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几。
二、WAV文件格式
WAV文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储。WAV文件一般由3个区块组成:RIFF chunk、Format chunk和Data chunk。另外,文件中还可能包含一些可选的区块,如:Fact chunk、Cue points chunk、Playlist chunk、Associated data list chunk等。
(1)RIFF区块
名称 | 偏移地址 | 字节数 | 内容 |
ID | 0x00 | 4 | 'RIFF' |
Size | 0x04 | 4 | fileSize-8 |
Type | 0x08 | 4 | 'WAVE' |
以'RIFF'为标识
Size是整个文件的长度减去ID和Size的长度
Type是WAVE表示后面需要两个子块:Format区块和Data区块
(2)Format区块
名称 | 偏移地址 | 字节数 | 内容 |
ID | 0x00 | 4 | 'fmt' |
Size | 0x04 | 4 | 数据长度 |
AudioFormat | 0x08 | 2 | 音频格式 |
NumChannels | 0x0A | 2 | 声道数 |
SampleRate | 0x0C | 4 | 采样率 |
ByteRate | 0x10 | 4 | 每秒字节数 |
BlockAlign | 0x14 | 2 | 数据块对齐 |
BitsPerSample | 0x16 | 2 | 采样位数 |
以'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
(3)Data区块
名称 | 偏移地址 | 字节数 | 内容 |
ID | 0x00 | 4 | 'data' |
Size | 0x04 | 4 | N |
Data | 0x08 | N | 音频数据内容 |
以'data'为标识
Size表示音频数据的长度,N = ByteRate * seconds
Data音频数据
三、具体文件分析
以二进制形式打开一个WAV格式文件
(1)RIFF区块
第1-4字节:52 49 46 46 为资源交换文件标志 ( RIFF ),固定写法
第5-8字节:02 15 16 00 表示从下个地址开始到 WAV 文件结尾的总字节数,整个 WAV 文件的大小就是该数值 + 8
第9-12字节:57 41 56 45 WAVE文件标志,是 WAVE 四个字母的 ASCII 码 , 固定写法
(2)Format区块
第13-16字节:66 6D 74 20 波形格式标志, 一般都是 fmt , 其中 0x20 对应的字符是空格
第17-20字节:28 00 00 00 过渡字节
第21-22字节: FE FF 格式种类,1 时表示线性 PCM 编码 (此处不为1)
第23-24字节:02 00 通道数,1 表示单声道 , 2 表示立体声
第25-28字节:44 AC 00 00 采样频率,此处为44.1kHz
第29-32字节:98 09 04 00 波形数据传输速率 , 即每秒中的字节数
第33-34字节:数据块调整长度 , 06 00 , 6 字节
第35-36字节:18 00 每个样本的数据位数,24位,3字节
(3)Data区块
(第37-72字节为文件所包含的其他区块,此处不再介绍)
第73--76字节:64 61 74 61 数据标记 , data 的 ASCII 码值
第77-80字节 :BA 14 16 00 表示数据总长度, 单位为字节
参考资料:https://blog.csdn.net/shulianghan/article/details/117351966?ops_request_misc=&request_id=&biz_id=102&utm_term=wav%E6%96%87%E4%BB%B6%E5%88%86%E6%9E%90&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-9-117351966.142^v32^new_blog_pos_by_title,185^v2^control&spm=1018.2226.3001.4187
最后
以上就是俭朴蜜蜂为你收集整理的数据压缩作业3.1 WAV文件格式分析的全部内容,希望文章能够帮你解决数据压缩作业3.1 WAV文件格式分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复