2. 各编码格式配置说明
AD16N、AW30N同时支持的编码格式有:标准MP2、UMP2、A格式三种格式;
AW30N还支持OPUS、ADPCM-IMA、SBC/MSBC/USBC、SPEEX编码格式。
下面介绍一下各个格式配置:
文件流解码格式:
数据流解码格式:
- 同时支持文件流解码和数据流解码格式:
8. “ump2编码”
2.1. 标准MP2编码
具体内容可以了解 mp3_encoder.c 和 mp3_encoder.h
(注意文件名是MP3,实际的编码格式是mp2)
标准MP2编码 码率(BR)/ 采样率(SR)对应关系
采样率(sr)
8000
12000
16000
22050
24000
32000
44100
48000
码率(BR)
8kbps
32kbps
16kbps
48kbps
24kbps
56kbps
32kbps
64kbps
40kbps
80kbps
48kbps
96kbps
56kbps
112kbps
64kbps
128kbps
80kbps
160kbps
88kbps
160kbps
96kbps
224kbps
112kbps
256kbps
128kbps
320kbps
160kbps
384kbps
2.2. ump2编码
具体内容可以了解 ump3_encoder.c 和 ump3_encoder.h
ump2编码 采样率(sr)/ 压缩比(cr)对应关系
采样率(SR)
8000
12000
16000
22050
24000
32000
44100
48000
压缩比(CR)
3
4
5
6
7
8
注:br的范围时:sr*16/压缩比(CR),压缩比的范围时3~8;例如SR=24K,那么BR的范围时:(24*16/8) ~ (24*16/3)
2.3. A格式编码
具体内容可以了解 a_encoder.c 和 a_encoder.h
A格式编码 码率(BR)/采样率(SR)对应关系
采样率(SR)
8000
12000
16000
24000
32000
码率(BR)
32kbps
48kbps
64kbps
96kbps
128kbps
2.4. OPUS格式编码
OPUS格式编码目前只包含三种封装格式:分别是百度、酷狗和OGG具体内容可以了解 opus_encoder.c 和 opus_encoder.h
OPUS格式编码 码率(BR)/采样率(SR)对应关系
采样率(SR)
16000
码率(BR)
16kbps
32kbps
64kbps
![]()
opus 相关参数配置
2.5. ADPCM_IMA格式编码
具体内容可以了解 ima_encoder.c 和 ima_encoder.h
压缩比:4:1
- ADPCM-IMA 采样率
没有限制。
- ADPCM-IMA 输出header控制
ima_enc_stream_header:编码每次输出是否包含header 0:不包含 1:包含输出的header占3个byte。前两个byte为prev pred,最后一个byte为index。输出时的长度包含在编码输出的长度中
- ADPCM-IMA 输入/输出量控制
ima_enc_stream_max_input:一次算法run input处理最大数据量(单位:样点数)ima_enc_stream_max_output:一次算法run output编码出来的最大数据量(单位:byte)两者影响算法库内运算buff大小。![]()
adpcm-ima 输入输出量控制
2.6. sbc/msbc/usbc编码格式
sbc / msbc / usbc 编码共用同一个算法库,但是三者编解码不可混用,用户需要注意做好区分。
即sbc的解码格式只能解码sbc的编码数据,msbc的解码格式只能解码msbc的编码数据,usbc的解码格式只能解码usbc的编码数据;
具体内容可以了解 sbc_encoder.c 和 sbc_encoder.h
sbc / msbc / usbc 编码选择
![]()
sbc / msbc / usbc 编码选择
sbc/msbc/usbc 相关参数配置
用户可以在sbc_stdenc_api.h头文件里查看相应参数配置信息。注意在选择msbc编码后,相关参数设置无效,具体可以看头文件说明。![]()
sbc/msbc/usbc 参数配置
采样率和码率之间的关系
SBC / USBC格式编码 码率(BR)/采样率(SR)对应关系
采样率(SR)
16000
32000
44100
48000
码率(BR)
(8*outdata_size*sr)/(subbands*blocks*1000);
MSBC格式编码 码率(BR)/采样率(SR)对应关系
采样率(SR)
16000
码率(BR)
62kbps
备注
用户可以根据这两个信息算出具体压缩比为多少
!["sbc/msbc/usbc 获取算法相关信息"](../_images/get_algorihm_information.png)
sbc/msbc/usbc 获取算法相关信息
备注
- msbc编码时,其余参数配置无效,固定配置为:
- sr=16000;nch=1;bitpool=26;subbands=8;blocks=15;
2.7. speex编码格式
speex编解码共用同一个算法库,主要应用于人声场景。具体内容可以了解 speex_encoder.c 和 speex_encoder.h
- SPEEXENC_SPEEDUP_EN:配置speex编码加速
该值只对编码效果有影响,提高提速越多,效果会变差
- sr:采样率
speex支持的采样率为 8k / 16k。
- quality:音频质量
quality:0 ~ 9。
sr 、 br 、 quality之间的关系
br \ quality
0
1
2
3
4
采样率:8000
2kbps
4kbps
6kbps
8kbps
8kbps
采样率:16000
4kbps
6kbps
8kbps
10kbps
12kbps
br \ quality
5
6
7
8
9
采样率:8000
11kbps
11kbps
15kbps
15kbps
18kbps
采样率:16000
16kbps
20kbps
24kbps
28kbps
34kbps
2.8. JLA_LW编码格式
JLA_LW编解码共用同一个算法库。该格式目前主要应用在对讲机应用上,用来和蓝牙连接间隔对齐。具体内容可以了解 jla_lw_encoder.c 和 jla_lw_encoder.h 和 jla_lw_codec_ctrl.h
jla_lw_br_level 压缩档位(位于app_config.c)
0档位适用于:
16k采样率,36kbps,每帧编码间隔为20ms; 32k采样率,72kbps,每帧编码格式为10ms;1档位适用于:
16k采样率,72kbps,每帧编码间隔为10ms;![]()
JLA格式的jla_lw_br_level配置
备注