码迷,mamicode.com
首页 > 其他好文 > 详细

音频数据文件格式(PCM,WAV,MIDI)简记

时间:2016-08-26 15:37:14      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:多媒体   调色板   扩展名   动画   记录   

  1. PCM(Pulse Code Modulation):脉冲编码调制


    把声源数据按一定的频率进行脉冲调制进行存储的数据格式,简单来说就是对模拟声音信号的数字

    转换。




  2. WAV


    WAV是一种无损音频数据格式。WAV符合RIFF规范。符合RIFF规范的文件可用于存储 音频视频交错格

    式数据(.AVI) 、波形格式数据(.WAV) 、位图格式数据(.RDI) 、MIDI格式数据(.RMI) 、调色板格

    式(.PAL) 、多媒体电影(.RMN) 、动画光标(.ANI) 、其它RIFF文件,RIFF包含的数据文件格式有文

    件扩展名来标识。

    文件扩展名.WAV用来存储波形数据格式。WAV对于数据编码没有硬性规定,PCM是WAV多种编码格式当

    中的一种


    采用数据可用 采样频率(WAV通常有22050HZ、44100HZ两种)、采样幅度 2个参数来表示。WAV文件

    除开40个字节的开头,声音数据部分记录的就是采样的幅度:单声道的情况下,如果是单字节8-Bit

    的采样,就是把声音采样幅度分成2^8=256个等级,采样数据记录了当前采样幅度等级。双字节

    16-Bit的采样同理,只是幅度等级更丰富了(2^16=64K个等级)。双声道的情况道理一样,只不过每

    个声道都有一份数据,所以数据加倍。


    上面是对WAV格式技术上的描述。而通常我们采用 (采样频率 + 声道数) 或 传输速率 来描述。

    如:

    44100HZ 16bit stereo : 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体

                           声)。

    22050HZ 8bit  mono : 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道。

    44100 * 16 * 2 = 1411200 bits/s

    22050 * 8 * 1 = 176400 bits/s

    通过上面的计算公式知道了传输速率,如果还知道了WAV文件的数据的大小,可以通过下面的公式计

    算出播放的时长:

    播放时长 = WAV数据大小 / 传输速率


  3. MIDI(Musical Instrument Digital Interface)


    首先要明确的是,MIDI存储的数据和前面两种格式均不同,MIDI文件存储的是如何演奏的一系列指

    令。而真正的音频数据则来源一些预定义的乐器数据,如钢琴,贝斯等,每种乐器的不同音色都有

    对应的数据,这些就是平常所说的MIDI音色库。MIDI的通过一系列预定义的消息指令告诉系统怎样

    演奏,这些预定义的指令指定了使用的乐器,节拍,音调等。


    MIDI的存储格式除了以字串MThd标记的一个头部外,还有一个或多个以字串MTrk标记的音轨数据块。



  4. 更多细节以及参考资料

    http://www.jianshu.com/p/1d1f893e53e9

    http://blog.sina.com.cn/s/blog_622bd1660101aggj.html

    http://dev.gameres.com/Program/Listen/MidiFormat.htm

    http://wenku.baidu.com/link?url=rij6cVodqiPey0kz96y0p2r42TqoDixsjXdfRwVGoALHBkZtGWrVKJvP38_hEaoypfqwH1OcCwCipT3XpvTu4Azfua9nwBMkBvqzhQtdqVu

本文出自 “JiMoKuangXiangQu” 博客,请务必保留此出处http://4594296.blog.51cto.com/4584296/1842921

音频数据文件格式(PCM,WAV,MIDI)简记

标签:多媒体   调色板   扩展名   动画   记录   

原文地址:http://4594296.blog.51cto.com/4584296/1842921

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!