`
isiqi
  • 浏览: 16487183 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

AMR音频编码器概述及文件格式分析

阅读更多

全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。

一、分类

1. AMR: 又称为AMR-NB,相对于下面的WB而言,

语音带宽范围:300-3400Hz,

8KHz抽样

2. AMR-WB:AMR WideBand,

语音带宽范围: 50-7000Hz

16KHz抽样

“AMR-WB”全称为“Adaptive Multi-rate - Wideband”,即“自适应多速率宽带编码”,采样频率为16kHz,是一种同时被国际标准化组织ITU-T和3GPP采用的宽带语音编码标准,也称 为G722.2标准。AMR-WB提供语音带宽范围达到50~7000Hz,用户可主观感受到话音比以前更加自然、舒适和易于分辨。

与之作比较,现在GSM用的EFR(Enhenced Full Rate,增强型全速率编码)采样频率为8kHz,语音带宽为200~3400Hz。

AMR-WB应用于窄带GSM(全速信道16k,GMSK)的优势在于其可采用从6.6kb/s, 8.85kb/s和12.65kb/s三种编码,当网络繁忙时C/I恶化,编码器可以自动调整编码模式,从而增强QoS。在这种应用中,AMR-WB抗扰 度优于AMR-NB。

AMR-WB应用于EDGE、3G可充分体现其优势。足够的传输带宽保证AMR-WB可采用从6.6kb/s到23.85kb/s共九种编码,语音质量超越PSTN固定电话。

二、编码方式

1. AMR-NB:

AMR 一共有16种编码方式, 0-7对应8种不同的编码方式, 8-15 用于噪音或者保留用。

Frame Type Mode Indication Mode Request Frame content (AMR mode, comfort noise, or other)

0 0 0 AMR 4,75 kbit/s

1 1 1 AMR 5,15 kbit/s

2 2 2 AMR 5,90 kbit/s

3 3 3 AMR 6,70 kbit/s (PDC-EFR)

4 4 4 AMR 7,40 kbit/s (TDMA-EFR)

5 5 5 AMR 7,95 kbit/s

6 6 6 AMR 10,2 kbit/s

7 7 7 AMR 12,2 kbit/s (GSM-EFR)

8 - - AMR SID

9 - - GSM-EFR SID

10 - - TDMA-EFR SID

11 - - PDC-EFR SID

12-14 - - For future use

15 - - No Data (No transmission/No reception)

2. AMR-WB:

Frame Type Index Mode Indication Mode Request Frame content (AMR-WB mode, comfort noise, or other)

0 0 0 AMR-WB 6.60 kbit/s

1 1 1 AMR-WB 8.85 kbit/s

2 2 2 AMR-WB 12.65 kbit/s

3 3 3 AMR-WB 14.25 kbit/s

4 4 4 AMR-WB 15.85 kbit/s

5 5 5 AMR-WB 18.25 kbit/s

6 6 6 AMR-WB 19.85 kbit/s

7 7 7 AMR-WB 23.05 kbit/s

8 8 8 AMR-WB 23.85 kbit/s

9 - - AMR-WB SID (Comfort Noise Frame)

10-13 - - For future use

14 - - speech lost

15 - - No Data (No transmission/No reception)

- -

二、AMR 帧格式:

AMR 有两种类型的帧格式:AMR IF1 和 AMR IF2

1. AMR IF1:

IF1 的帧格式如下图所示:

clip_image002

FrameType, Mode Indication, Mode Request 对应上面两个表格里的数。从上面的表格里我们可以看出,这三个域的值是相同的。所以在IF2中省略了Mode Indication, Mode Request 两个域。

Frame Quality Indicator: 0表示bad frame 或者corrupted frame; 1表示 good frame

每一帧的数据有分为三个部分:Class A/B/C

Class A:一帧中最敏感、最重要的数据。一旦这一部份数据有损坏,整个帧就无法解码,就损坏了。所以,一般在无线传输的时候要使用各种冗余的方式对这部分数据加以保护。

Class B:相对于Class A不那么重要的数据。

Class C:比Class B还不重要的数据。

2. AMR IF2:

IF2的帧格式如下图所示:

clip_image004

相对于IF1, IF2 省去了Frame Quality Indicator, Mode Indication, Mode Request 和CRC 校验。但是增加了bit 填充。因为AMR帧中数据的长度并不是字节(8bit)的整数倍,所以在有些帧的末尾需要增加bit填充,以使整个帧的长度达到字节的整数倍。

有关IF2帧中各个域的信息请参考下面的帧大小节的表格。

三、帧大小

1. AMR-NB

Frame Type Index Frame content Number of bits in Frame Type Number of Bits in AMR Core Frame Number of Bits in
Bit Stuffing Number of octets (N)

0 AMR 4,75 4 95 5 13

1 AMR 5,15 4 103 5 14

2 AMR 5,90 4 118 6 16

3 AMR 6,70 4 134 6 18

4 AMR 7,40 4 148 0 19

5 AMR 7,95 4 159 5 21

6 AMR 10,2 4 204 0 26

7 AMR 12,2 4 244 0 31

8 AMR SID 4 39 5 6

9 GSM-EFR SID 4 43 1 6

10 TDMA-EFR SID 4 38 6 6

11 PDC-EFR SID 4 37 7 6

12-14 For future use - - - -

15 No Data 4 0 4 1

Number of bits in Classes A, B, and C for each AMR codec mode

Frame Type AMR
codec mode Total number of bits Class A Class B Class C

0 4,75 95 42 53 0

1 5,15 103 49 54 0

2 5,90 118 55 63 0

3 6,70 134 58 76 0

4 7,40 148 61 87 0

5 7,95 159 75 84 0

6 10,2 204 65 99 40

7 12,2 244 81 103 60

2. AMR-WB:

Composition of AMR-WB IF2 Frames for all Frame Types

Frame Type Index Frame content Number of bits in Frame Type Number of bits in Frame Quality Indicator Number of Bits in AMR-WB Core Frame Number of Bits in Bit Stuffing Number of octets (N)

0 AMR-WB 6.60 kbit/s 4 1 132 7 18

1 AMR-WB 8.85 kbit/s 4 1 177 2 23

2 AMR-WB 12.65 kbit/s 4 1 253 6 33

3 AMR-WB 14.25 kbit/s 4 1 285 6 37

4 AMR-WB 15.85 kbit/s 4 1 317 6 41

5 AMR-WB 18.25 kbit/s 4 1 365 6 47

6 AMR-WB 19.85 kbit/s 4 1 397 6 51

7 AMR-WB 23.05 kbit/s 4 1 461 6 59

8 AMR-WB 23.85 kbit/s 4 1 477 6 61

9 AMR-WB SID (Comfort Noise Frame) 4 1 40 3 6

10-13 For future use - - - - -

14 speech lost 4 1 0 3 1

15 No Data (No transmission/No reception) 4 1 0 3 1

Frame Type AMR-WB
codec mode Total number of bits Class A Class B Class C

0 6.60 132 54 78 0

1 8.85 177 64 113 0

2 12.65 253 72 181 0

3 14.25 285 72 213 0

4 15.85 317 72 245 0

5 18.25 365 72 293 0

6 19.85 397 72 325 0

7 23.05 461 72 389 0

8 23.85 477 72 405 0

四、PCM16和AMR之间的转换
Amr 一帧为20毫秒
以AMR 4.75Kbits/s为例:
每秒产生的声音位数 = 4750bits/s
每20ms帧占用的位数 = 4750bits/s / 50frames/s = 95bits
每20ms帧占用的字节数 = 95bits / 8bits/byte = 11.875bytes - 圆整到12字节,不足的补0
加上一个字节的帧头,所以,20ms一帧的AMR: 12-bytes + 1-byte = 13-bytes
相反,转换回来就成了
13-bytes * 50frames/s * 8bits/byte = 5200bits/s
注意,这里两个数值并不对应,是由于圆整的原因

五、 AMR 文件的存储格式(RFC 3267):

AMR IF1, IF2定义了 AMR的帧格式, 用于无线传输用。 RFC 3267定义了把AMR数据存成文件的文件格式。

AMR的文件格式如下图1所示:

它包含一个文件头,然后就是一帧一帧的AMR数据了。

<!--[if !supportLists]-->1. <!--[endif]-->文件头格式:

AMR 文件支持单声道和多声道。单声道和多声道的文件头是不同的。

单声道:

AMR-NB文件头: "#!AMR\n" (or 0x2321414d520a in hexadecimal)(引号内的部分)

AMR-WB 文件头:"#!AMR-WB\n" (or 0x2321414d522d57420a in hexadecimal).(引号内)

多声道:

多声道的文件头包含一个magic number和32bit channle description域。

clip_image006

AMR-NB 的magic number:"#!AMR_MC1.0\n"

(or 0x2321414d525F4D43312E300a in hexadecimal).

AMR-WB的magic number:"#!AMR-WB_MC1.0\n"

(or 0x2321414d522d57425F4D43312E300a in hexadecimal).

clip_image008

32bit的channel description域的定义如下:

clip_image010

其中 reserved bits必须为0, CHAN:表示当前文件中含有几个声道。

帧头的格式:

帧头的格式如图2 所示, 它占1个字节(8个bit)

P为填充为设置为0

FT为编码模式, 即上面提到的16中编码模式。
Q为帧质量指示器,如果为0表明帧被损坏。

图3 列举了AMR-NB 5.9Kbit的一个帧的格式,

对于5.9kbit一帧的有118bit的数据,15*8=120=118+2, 所以在最后有2个bit的填充位。

参考文献:

RFC3267 RTP Payload Format for AMR and AMR-WB

3GPP TS 26.201 V6.0.0

3GPP TS 26.101 V6.0.0

分享到:
评论

相关推荐

    AMR音频编码器概述

    全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。

    AMR资料集.7z

    "**AMR音频编码器概述及文件格式分析 .doc**"可能深入解析了AMR编码器的工作机制,包括预处理、量化、熵编码等步骤,并对AMR文件的结构和格式进行了详细的剖析。此外,文档可能还探讨了不同编码模式的选择依据和性能...

    Android AMR 音频文件详细

    AMR (Adaptive Multi-Rate) 是一种专为高效压缩语音数据而设计的音频编码格式,在移动通信领域尤其是智能手机中广泛使用。随着多媒体技术的发展,AMR 文件格式成为了许多手机支持的标准之一,尤其是在音频播放方面。...

    java版amr文件转mp3

    JAVE是Java平台上的一款强大的音视频编码器,它封装了FFmpeg库,提供了一套简洁的API来处理音频和视频的编码、解码以及格式转换任务。通过JAVE,开发者可以在Java程序中轻松实现AMR到MP3的转换。 以下是一个简单的...

    3gp的文件格式解析

    3gp 文件格式在官方文档中有明确的定义,本文将对3gp 文件格式的核心概念进行深入解析,并重点探讨其对于AMR(自适应多速率语音编码)的支持及3gp 字幕的实现方式。 #### 二、3gp 文件格式官方定义文档解析 根据...

    IOS wav转amr代码例子

    - 将PCM数据分块送入编码器,编码器会输出AMR格式的数据流。 6. 保存AMR文件: - AMR数据是二进制流,可以直接写入文件,形成.amr文件。 7. 注意事项: - 确保处理音频文件时遵守版权规定,尤其是当处理受版权...

    zh_java_amr转_android_complexrad_

    总结,处理AMR音频格式需要对音频编码理论、文件格式规范以及可能涉及的开源库有深入的理解。通过以上步骤,你可以实现从WAV到AMR的转换以及AMR文件的合并。在实际开发中,还需要考虑性能优化和错误处理,以确保在...

    amr文件解析

    AMR(Adaptive Multi-Rate)是一种音频编码格式,主要用于语音通信领域。该标准由3GPP(第三代合作伙伴项目)制定,广泛应用于移动通信系统中,如GSM、UMTS等。AMR编码能够根据网络状况动态调整语音压缩率,从而在...

    amr与wave编解码

    AMR(Adaptive Multi-Rate)是一种高效的音频编码格式,特别针对移动设备设计,用于语音通信的音频压缩。AMR 文件格式因其高压缩比而在手机和其他便携式设备上广泛使用,但牺牲了一部分音质,更适合语音通话而非高...

    AMR 协议详解

    AMR文件格式是由3GPP(Third Generation Partnership Project)组织制定的,主要用于存储经过编码的语音数据。它采用了自适应码率技术,可以根据网络条件动态调整编码质量,从而在保持通话质量的同时节省带宽。AMR...

    Window编译opencore-amr

    - **定义**:OpenCORE-AMR是一个开源的AMR音频编码库,支持AMR-NB和AMR-WB标准。 - **下载地址**:[OpenCORE-AMR](https://sourceforge.net/projects/opencore-amr/) - **版本**:建议使用最新稳定版本,例如1.5版。...

    3gp文件下载 及解码播放

    1. **3GP文件格式概述** 3GP是一种容器格式,可以包含不同编码的音频和视频流。它的设计初衷是为了适应移动通信网络的限制,比如较低的数据速率和不稳定的连接。这种格式允许文件在不同网络环境下的高效传输,同时...

    AVS编码与解码

    本文介绍了一种基于AVS P10的语音和音频编码器,该编码器采用了ACELP(代数码激励线性预测)和TCX(变换编码扩展)技术,并提出了一种混合带宽扩展技术用于编码高频信号。文章概述了该编码器的架构,并展示了与ITU-T...

    3GP的pdf格式详细文档

    ### 一、3GP文件格式概述 3GP(3GPP File Format)是一种基于ISO基础媒体文件格式(ISO base media file format)的文件封装标准,主要用于3G网络中的多媒体数据传输。3GP格式由3GPP(3rd Generation Partnership ...

    3GPP TS 26.244 V7.2.0 (2007-06)

    6. **标识**:介绍了3GP文件格式的识别方式,如文件扩展名、MIME类型及品牌等。 7. **配置文件**:定义了几种不同的配置文件类型,每种配置文件都有特定的应用场景。 8. **文件品牌指导原则**:给出了如何正确地使用...

    Android多媒体功能开发-使用MediaRecorder类录制音频

    MediaRecorder还需要知道要使用的音频编码器,这可以通过`setAudioEncoder()`方法设置,常见的音频编码有AAC、AMR_NB等: ```java mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); ``` **设定...

    ffmpeg之参数详解29[参考].pdf

    - **解释**:该命令将“1.avi”文件转换为MP4格式,并设置了XVID编码器、AAC音频编码器以及相关的参数,同时提高了音量,以便在PSP设备上播放时获得更好的音质体验。 通过以上详细的参数介绍和示例应用,我们可以...

    SIM5218 SIM5215等SIM52XX系列WCDMA模块音频接口说明

    模块支持多种音频编码格式,如GSM Full Rate、AMR-NB、AMR-WB等,具体取决于所用的WCDMA网络和协议栈。 6. **电源管理**: 音频接口需要适当的电源管理,确保音频设备供电稳定且无噪声干扰。通常需要独立的电源轨...

Global site tag (gtag.js) - Google Analytics