4. 编码接口
AD16N目前支持的编码格式有:UMP3、A、和标准MP3三种格式,所有编码格式被统一管理。编码前需要配置编码采样率以及码率,各编码格式支持的采样率以及码率如下:
标准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
ump3编码 采样率(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)
A格式编码 码率(BR)/采样率(SR)对应关系
采样率(SR)
8000
12000
16000
24000
32000
码率(BR)
32kbps
48kbps
64kbps
96kbps
128kbps
编码功能控制函数:
void encoder_io(u32(*fun)(void *), void *pfile); void stop_encode(void *pfile, u32 dlen);各个格式的编码接口函数:
u32 mp3_encode_api(void *p_file); u32 ump3_encode_api(void *p_file); u32 a_encode_api(void *p_file);
4.1. 编码使用一般流程
在开始编码前需要调用函数u32 audio_adc_init_api(u32 sr, AUDIO_ADC_MODE mode, u32 ch)配置AUDIO_ADC采样率;
在编码之前要确保已经打开存放编码文件的设备,并创建新的文件进行编码,指定需要编码的格式,即可以按照预先设定的采样率以及码率进行编码流程:
调用encoder_io实现对编码器的控制,此函数的传参可以控制:
a.初始化指定编码格式; b.将编码数据,写入新创建的文件中;经过上面的一步已经完成了对编码的启动,此时可以调用stop_encoder实现停止编码的功能;
4.2. 编码功能控制接口函数
4.2.1. 函数void encoder_io(u32(*fun)(void *), void *pfile)
此函数实现初始化编码器并启动编码,其中参数:
1、(*fun)(void *):编码器初始化回调,传入指定解码器格式并进行初始化; 2、void *pfile,需要写入编码数据的文件句柄;
4.2.2. 函数void stop_encode(void *pfile, u32 dlen)
此函数实现停止编码器,其中参数:
1、void *pfile,需要写入编码数据的文件句柄; 2、dlen:对于nor_fs文件系统编码,该参数指定编码文件末尾舍弃的字节数;