Amr格式分析

目录

1. 概述

2. AMR编码方式

3. AMR文件结构示范图

4. AMR帧头格式分析

5. 异常帧分析

6. AMR帧读取算法

7. 参考资料

1. 概述

现在很多智能手机都支持多媒体功能,特别是音频和视频播放功能,而AMR文件格式是手机端普遍支持的音频文件格式。

AMR,全称是:Adaptive Multi-Rate,自适应多速率,是一种音频编码文件格式,专用于有效地压缩语音频率。

AMR音频主要用于移动设备的音频压缩,压缩比非常高,但是音质比较差,主要用于语音类的音频压缩,不适合对音质要求较高的音乐类音频的压缩。

下面是两个AMR示范文件,一个是新闻类,一个是歌曲,可以听出来,音乐类压缩成AMR格式后,音质大大降低。

clip_image002说明:

l 比特率是指将数字声音由模拟格式转化成数字格式的采样率,采样率越高,还原后的音质就越好。

l 比特率值与现实音频对照:

16kbps=电话音质

24kbps=增加电话音质、短波广播、长波广播、欧洲制式中波广播

40kbps=美国制式中波广播

56kbps=话音

64kbps=增加话音(手机铃声最佳比特率设定值、手机单声道MP3播放器最佳设定值)

112kbps=FM调频立体声广播

128kbps=磁带(手机立体声MP3播放器最佳设定值、低档MP3播放器最佳设定值)

160kbps=HIFI高保真(中高档MP3播放器最佳设定值)

192kbps=CD(高档MP3播放器最佳设定值)

256kbps=Studio音乐工作室(音乐发烧友适用)

l 音频数据帧大小的计算:

amr 一帧对应20ms,那么一秒有50帧的音频数据。由于比特率不同,每帧的数据大小也不同。

如果比特率是12.2kbs,那么每秒采样的音频数据位数为:

12200 / 50 = 244bit = 30.5byte,取整为31字节。

取整要四舍五入。

再加上一个字节的帧头,这样数据帧的大小为32字节。

3. AMR文件结构示范图

clip_image004

4. AMR帧头格式分析

clip_image0066. AMR帧读取算法

因为可能存在异常帧,所以不一定所有的语音帧大小一致,对于跟正常帧大小不一致的,或者帧头跟正常帧头不一致的,就不交给解码器,直接抛弃该坏帧。

读取帧的算法,用C语言来编写,readAMRFrame.c,JAVA可以用类似的方法。

下面是算法描述流程图。

7. 参考资料

l rfc3267

http://www.rfc-editor.org/rfc/rfc3267.txt

http://ietfreport.isoc.org/rfc/PDF/rfc3267.pdf

l 3GPP TS 26.104 V 6.1.0 (2004-03)

http://www.3gpp.org/ftp/Specs/html-info/26104-CRs.htm

l 3GPP AMR Floating-point Speech Codec

http://www.3gpp.org/ftp/Specs/html-info/26104.htm

l “amr编程汇总”

http://blog.csdn.net/windcao/archive/2006/01/04/570348.aspx

l 关于AMR文件格式的解释

http://www.mcublog.com/blog/user1/11409/archives/2006/16832.html

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dinggo/archive/2007/12/25/1966444.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值