您的位置:首页 > 其它

6/21/2011 9:11:39 AM

2011-06-21 15:47 169 查看
PlayChannel

确定一下xt800AMR编码头的问题

不转发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固定电话。

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

1. AMR IF1:

IF1 的帧格式如下图所示:

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的帧格式如下图所示:

这2中类型的帧格式

RFC 3267 定义了AMR文件的格式

Decoder_Interface_Decode

在什么情况下输入的是字节buffer,什么情况下输入的是字buffer?

什么是 ETSI
ETSI是欧洲地区性标准化组织,由欧共体委员会 1988 年批准建立的一个非赢利性的电信标准化组织,总部设在法国南部的尼斯。它是一个被CEN(欧共体委员会)和CEPT(欧洲邮电管理委员会)认可的电信标准协会,其任务包括负责GSM和UMTS网络的协议和传输方法的标准化, 宗旨是为贯彻CEPT和CEC确定的电信政策,满足市场各方面及管制部门的标准化需求,实现开放、统一、竞争的欧洲电信市场而及时制订高质量的电信标准(如GSM),以促进欧洲电信基础设施的融合;确保欧洲各电信网间互通;确保未来电信业务的统一;实现终端设备的相互兼容;实现电信产品的竞争和自由流通;为开放和建立新的泛欧电信网络和业务提供技术基础;并为世界电信标准的制订作出贡献。

欧洲的电信标准化组织

/* Declaration recieved frame types */
enum RXFrameType { RX_SPEECH_GOOD = 0,
RX_SPEECH_DEGRADED,
RX_ONSET,
RX_SPEECH_BAD,
RX_SID_FIRST,
RX_SID_UPDATE,
RX_SID_BAD,
RX_NO_DATA,
RX_N_FRAMETYPES /* number of frame types */
};

这是几种帧的类型

struct
{
int reset_flag_old; /* previous was homing frame */

enum RXFrameType prev_ft; /* previous frame type */
enum Mode prev_mode; /* previous mode */
void *decoder_State; /* Points decoder state */

}dec_interface_State;

解码接口状态 封装了解码器状态,还带有前面帧的类型 前面的模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: