Mpeg Audio入门(一)

参考博客:https://blog.csdn.net/u010650845/article/details/53520426

1.熟悉Mp3格式

Mp3是什么:是一种高效的音频编码方案,用高压缩比将音频编码为较小的文件,基本上保持音质。
对比Mp1、Mp2、Mp3不同技术,作为以后可能的研究的方向。
Mpeg1采用的技术:1~2个声道,采样率32KHz、44.1KHZ、48KHZ;
mp1码率从32kbps ~ 448kbps,mp2码率从32kbps ~ 384 kbps,mp3码率从32kbps ~ 320kbps;后续又出现了mp3pro对应的格式,对应也采用了1~2个声道,采样率为1半,比特率也变成了原来的一般为32kbps ~256kbps

1.1mp3数据组织形式

MP3文件大体上分为三个部分:ID3V2+音频数据+ID3V1
MPEG音频标签分为两种,一种是ID3v1,存在文件尾部,长度128字节,另一种是ID3v2,是对ID3v1的扩展,存在文件头部,长度不定。
ID3v1标签用来描述MPEG音频文件。包含艺术家,标题,唱片集,发布年代和流派。另外还有额外的注释空间。位于音频文件的最后固定为128字节。可以读取该文件的最后这128字节获得标签。
结构如下

1.1.1id3v2头格式

目前来说比较常见的id3v2头格式一般为idv3v2.3头格式,可以表现为,是由一个标签头和若干个标签帧组成,或者由一个扩展的标签头+至少一个标签帧组成。
标签头为10个字节,分别表示为

字节表示
3header(49 44 33)
1版本号
1副版本号
1标志(最高3bit)
4标签大小

标签大小共四个字节,每个字节只使用低7位,最高位不使用恒为0,计算时将最高位去掉,得到28bit的数据,计算公式如下:

Size=(Size[0]&0x7F)*0x200000+(Size[1]&0x7F)*0x400+(Size[2]&0x7F)*0x80+(Size[3]&0x7F) 
int label_frame_size;
label_frame_size=((Size[0]&0x7F)<<21)
                        + ((Size[1]&0x7F)<<14))
                        + ((Size[2]&0x7F)<<7)
                        + (Size[3]&0x7F);
1.1.1id3v1头格式
2数据帧的帧头
3.mp3音频参数的计算

采样率决定了每一秒音频的采样点数,直接决定了pcm对应数据的raw大小。MP3为音频压缩格式,下面举一个例子来分析如何计算各参数:

  • mpge1.3layer对应的帧的采样个数是1152个采样点,那么每一帧的采样时间为 = (1152)/采样率(32、44.1、48KHz)。通过计算得到的每一帧的采样时间为
采样频率每一帧的时间
44.1KHz1152/44.1*1000 = 26ms
48KHz1152/48*1000 = 24ms
  • 比特率是根据表格来确定的,上面已经说出了范围,具体的取值根据数据帧头的前四个字节获取。
  • frame对应的大小计算 = (bitrate1152)/采样率(32、44.1、48KHz)/ 8得出字节数。例如对应128kbps的frame大小
    = ((1152/8
    128K)/44.1K+0=417字节
  • frame对应的pcm数据大小 = (1152 * 16)/8*2 = 4K字节
  • 说明了mp3确实有11倍的压缩音质效果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值