关键词不能为空

当前您在: 主页 > 英语 >

WAV文件解码

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 19:03
tags:

-

2021年2月1日发(作者:离线)





























wav


文件格式分析详解
































































































一、综述







WAV E


文件作为多媒体中使用的声波文件格式之一,它是以


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'

















| < /p>


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


|














Format Chunk






















|


|














ID = 'fmt '























|


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


|














Fact Chunk(optional)














|


|














ID = 'fact'























|


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


|














Data Chunk
























|


|














ID = 'data'























|


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















1



< /p>


Wav


格式包含


Chunk


示例








其中除了


Fact Chunk


外,< /p>


其他三个


Chunk


是必须的。


每个


Chunk


有各自的


ID






Chunk


最开始位置,


作为标示,


而且均为


4


个字节。

< br>并且紧跟在


ID


后面的是


Chu nk





( 去除


ID



Size

< br>所占的字节数后剩下的其他字节数目)



4


个字节表示,


低字节



表示 数值低位,高字节表示数值高位。下面具体介绍各个


Chunk


内容。



PS








所有数值表示均为低字节表示低位,高字节表示高位。




二、具体介绍



RIFF WAVE Chunk






==================================






|








|


所占字节数


|



具体内容





|






==================================






| ID





|



4 Bytes |




'RIFF'





|






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






| Size



|



4 Bytes |














|






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






| Type



|



4 Bytes |




'WAVE'





|






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















2



RIFF WAVE Chunk








'FIFF'


作为标示,


然后紧跟着为


size


字段,



size


是整个


wav


文件大小减去< /p>


ID



Size


所占用的字节数,即


FileLen - 8 = Size


。然后是


Type


字段,为


'WAVE '


,表



示是


wav


文件。







结构定义如下:




struct RIFF_HEADER



{




char szRiffID[4];



// 'R','I','F','F'




DWORD dwRiffSize;




char szRiffFormat[4]; // 'W','A','V','E'



};



Format Chunk






========================================= ======================


=====






|
















|




字节数




|















具体内容


















|






========================================= ======================


=====






| ID













|



4 Bytes



|




'fmt '






























|






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






| Size











|



4 Bytes



|


数值为

< p>
16



18


< p>
18


则最后又附加信息







|






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



----






| FormatTag






|



2 Bytes



|


编码方式,一般为


0x0001
















|






|






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






|






| Channels







|



2 Bytes



|


声道数目,


1--


单声道;


2--


双声道









|






|






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






|






| SamplesPerSec |



4 Bytes



|


采样频率































|






|






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






|






|


AvgBytesPerSec|



4


Bytes



|


每秒所需字节数

























|






|===> WAVE_FORMAT






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






|






| BlockAlign





|



2 Bytes



|


数据块对齐单位


(


每个采样需要的字节数

< p>
) |






|






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






|






| BitsPerSample |



2 Bytes



|


每个采样需要的


bit

< p>




















|






|






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






|






|
















|



2 Bytes



|


附加信息


(可选,


通过


Size


来判断有无)



|






|






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



----































3



Format Chunk








'fmt '


作为标示。一般情况下


Size



16


,此时最后附加信息没有;如果为


18


则最后多了


2


个字节的附加信息。主要由一些软件制成的


w av


格式中含有该


2


个字


节的



附加信息。







结构定义如下:




struct WAVE_FORMAT



{




WORD wFormatTag;




WORD wChannels;




DWORD dwSamplesPerSec;




DWORD dwAvgBytesPerSec;




WORD wBlockAlign;




WORD wBitsPerSample;



};



struct FMT_BLOCK



{




char



szFmtID[4]; // 'f','m','t',' '




DWORD



dwFmtSize;




WAVE_FORMAT wavFormat;



};




Fact Chunk






==================================






|








|


所占字节数


|



具体内容





|






==================================






| ID





|



4 Bytes |




'fact'





|






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






| Size



|



4 Bytes |




数值为


4




|






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






| data



|



4 Bytes |














|






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















4



Fact Chunk







Fact Chunk


是可选字段,


一 般当


wav


文件由某些软件转化而成,


则包含该


Chunk








结构定义如下:




struct FACT_BLOCK



{




char



szFactID[4]; // 'f','a','c','t'




DWORD



dwFactSize;



};



Data Chunk






==================================






|








|


所占字节数


|



具体内容





|






==================================






| ID





|



4 Bytes |




'data'





|






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






| Size



|



4 Bytes |














|






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






| data



|











|














|






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
















5 Data Chunk







Data Chunk


是真正保存< /p>


wav


数据的地方,


< br>'data'


作为该


Chunk


的标示。


然后是



数据的大小。


紧接着就是


wav


数据。

根据


Format Chunk


中的声道数以及采样


bit


数,



wav


数据的


bit


位置可以分成以下几种形 式:







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






|




单声道




|





取样


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(



)



|






|












| (


低位字节


)



| (


高位字节


)



| (


低位字节


)



| (


高位字节


)



|






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




























6 w av


数据


bit


位置安排方式



-


-


-


-


-


-


-


-



本文更新与2021-02-01 19:03,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/594663.html

WAV文件解码的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文