多媒体原理与系统设计第3章:音频数据处理程序设计_第1页
多媒体原理与系统设计第3章:音频数据处理程序设计_第2页
多媒体原理与系统设计第3章:音频数据处理程序设计_第3页
多媒体原理与系统设计第3章:音频数据处理程序设计_第4页
多媒体原理与系统设计第3章:音频数据处理程序设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多媒体原理与系统设计第三章音频数据处理程序设计音频数据格式分析音频程序设计接口音频回放功能实现音频转码程序设计一、音频数据格式分析波形音频文件格式波形音频文件的概念:波形音频文件是存储数字音频样本(samples)序列的格式文件,这些样本直接记录了音频的波形,故称波形音频文件。波形音频文件为音频数据处理提供了最基本的数据源。MIDI音频和各类压缩格式的音频文件最终都要转换成波形音频才能应用。WAVE波形音频文件整体结构:

WAVE文件是使用最广泛的声波音频文件,它遵从RIFF(ResourceInterchangeFileFormat)格式标准。WAVE文件的头四个字节是“RIFF”。WAVE文件由若干个块(Chunk)组成。按照在文件中出现的先后顺序,一般有四个块,即RIFFWAVE

Chunk,FormatChunk,FactChunk(可选),DataChunk。如下图所示。------------------------------------------------RIFFWAVEChunkID=‘RIFF’

RiffType=‘WAVE’

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

FormatChunk

ID=‘fmt’

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

FactChunk(optional)

ID=‘fact’

------------------------------------------------DataChunk

ID=‘data’

------------------------------------------------WAVE波形音频文件整体结构:-----------------------------------|

ID|4Bytes|‘RIFF’|-----------------------------------|

Size|4Bytes|

|-----------------------------------|

Type|4Bytes|'WAVE'|-----------------------------------以‘RIFF’作为标示,然后紧跟着的为size字段,该size是整个wav文件大小减去ID和Size所占用的字节数,即FileLen-8=Size。然后是Type字段,为‘WAVE’,表示是wav文件。RIFFWAVEChunk:RIFFWAVEChunk结构定义:structRIFF_HEADER{

charszRiffID[4];//'R','I','F','F'

DWORDdwRiffSize;

charszRiffFormat[4];//'W','A','V','E'};FormatChunk:------------------------------------|ID|4Bytes|'fmt'------------------------------------|Size|4Bytes|数值为16或18,18则最后又附加信息------------------------------------|FormatTag|2Bytes|编码方式,一般为0x0001,PCM------------------------------------|Channels|2Bytes|声道数目,1--单声道;2--双声道------------------------------------|SamplesPerSec|4Bytes|采样频率------------------------------------|AvgBytesPerSec|4Bytes|每秒所需字节数------------------------------------|BlockAlign|2Bytes|数据块对齐单位(每个采样需要的字节数)

------------------------------------|BitsPerSample|2Bytes|每个采样需要的bit数------------------------------------|&n|2Bytes|附加信息(可选,通过Size来判断有无)------------------------------------structWAVE_FORMAT{

WORDwFormatTag;

WORDwChannels;

DWORDdwSamplesPerSec;

DWORDdwAvgBytesPerSec;

WORDwBlockAlign;

WORDwBitsPerSample;};structFMT_BLOCK{

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

DWORDdwFmtSize;

WAVE_FORMATwavFormat;};FormatChunk结构定义:-----------------------------------|

ID|4Bytes|‘fact’|-----------------------------------|

Size|4Bytes|

|-----------------------------------|

Data|4Bytes||-----------------------------------FactChunk是可选字段,一般当wav文件由某些软件转化而成时,则包含该Chunk。FACTChunk:-----------------------------------|

ID|4Bytes|‘data’|-----------------------------------|

Size|4Bytes|

|-----------------------------------|

Data|||-----------------------------------DataChunk是真正保存wav数据的地方,以‘data’作为该Chunk的标示。然后是数据的大小。紧接着就是wav数据。根据FormatChunk中的声道数、采样bit数,wav数据的bit格式可以分成以下几种形式:DataChunk:单声道8bit量化采样1声道0采样2声道0声道0声道0采样3采样4双声道8bit量化采样1采样2声道0声道1声道0声道1单声道16bit量化采样1采样2声道0声道0声道0声道0双声道16bit量化采样1声道0声道0声道1声道1单声道、每样本8Bits情形(singlechannel,8Bitspersample):Channel0Channel0Channel0...Sample1Sample2Sample3双声道、每样本8Bits情形(doublechannels,8Bitspersample):Channel0Channel1Channel0...Sample1Sample2Channel1Sample1Sample2单声道、每样本16Bits情形(singlechannel,16Bitspersample):Channel0Channel0Channel0...Sample1Sample2Channel0双声道、每样本16Bits情形(doublechannels,16Bitspersample):Channel0Channel0Channel1Sample1Sample1Channel1Channel0Channel0Channel1Sample2Sample2Channel1二、音频回放与编程接口Windows环境下,应用程序有多种音频数据回放方法:方法1:使用PlaySound函数PlaySound(L“music.wav",NULL,SND_ASYNC|SND_NOSTOP);方法2:使用MCI(MultimediaControlInterface)函数WORDm_wDeviceID;//打开音频设备MCI_OPEN_PARMSOpenParms;OpenParms.lpstrDeviceType="waveaudio";OpenParms.lpstrElementName="HelloWin.wav";if(mciSendCommand(0,MCI_OPEN,MCI_OPEN_ELEMENT|MCI_OPEN_TYPE,(DWORD)(LPVOID)&OpenParms))return0;m_wDeviceID=OpenParms.wDeviceID;//播放MCI_PLAY_PARMSPlayParms;mciSendCommand(m_wDeviceID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&PlayParms);方法3:基于DirectShow开发包的应用程序Why------TheChallengeofMultimedia:Workingwithmultimediapresentsseveralmajorchallenges:Multimediastreamscontainlargeamountsofdata,whichmustbeprocessedveryquickly.Audioandvideomustbesynchronizedsothatitstartsandstopsatthesametime,andplaysatthesamerate.Datacancomefrommanysources,includinglocalfiles,computernetworks,televisionbroadcasts,andvideocameras.Datacomesinavarietyofformats,suchasAudio-VideoInterleaved(AVI),AdvancedStreamingFormat(ASF),MotionPictureExpertsGroup(MPEG),andDigitalVideo(DV).Theprogrammerdoesnotknowinadvancewhathardwaredeviceswillbepresentontheend-user'ssystem.DirectShowisdesignedtoaddresseachofthesechallenges.ItsmaindesigngoalistosimplifythetaskofcreatingdigitalmediaapplicationsontheWindowsplatform,byisolatingapplicationsfromthecomplexitiesofdatatransports,hardwaredifferences,andsynchronization.DirectShowArchitecture方法4:基于MediaFoundation开发包的应用程序

MicrosoftMediaFoundationisthenextgenerationmultimediaplatformforWindowsthatenablesdevelopers,consumers,andcontentproviderstoembracethenewwaveofpremiumcontentwithenhancedrobustness,unparalleledquality,andseamlessinteroperability.MediaFoundationrequiresWindowsVistaorlater.Itusesthecomponentobjectmodel(COM)andrequ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论