.. _软件浮点EQ(pcm_eq_float): 软件浮点EQ(pcm_eq_float) ========================================= AD23N支持软件浮点EQ,支持的段数仅受CPU算力和可申请到的RAM资源限制,段数越多,运算量越大。 本章简要介绍软件浮点EQ音效(pcm_eq_float)及在最后小节简要说明新版本EQ使用流程。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _浮点EQ配置: 浮点EQ配置 ########################################### 一个浮点EQ音效由EQ系数表和总增益组成,其中: :: 1、EQ系数表默认使用10段EQ参数,每一段可以单独配置滤波器(LOW_PASS、HIGH_PASS、BAND_PASS等)、中心频点(20~20kHz)、增益(-18~18dB)以及Q值(0.3~30.0); 2、总增益默认配置范围为-90~20dB,影响每一段EQ系数。 所有EQ模式统一由eq_param_tab[]数组管理,不同EQ参数之间可以任意切换。 **注:如果用户的EQ参数段数有出现改动,除了修改参数以外,还需要修改头文件pcm_eq_float.h的EQ_SECTION_MAX的宏,宏配置的段数需要和实际EQ参数的段数一致。** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _EQ参数管理: EQ参数管理 ******************************************************************************************************************* 目前所有EQ参数统一由eq_param_tab[]数组管理,不同EQ参数之间可以任意切换。 .. image:: cmp-1-3-float-eq-config.png :alt: "图3 EQ参数由eq_param_tab[]数组管理" :align: center .. centered:: 图3 EQ参数由eq_param_tab[]数组管理 .. _浮点EQ相关接口: 浮点EQ相关接口 ################################################## 函数 void \*link_pcm_eq_sound(void \*p_sound_out, void \*p_dac_cbuf, void \**pp_effect, u32 sr, u32 channel) ******************************************************************************************************************* 此函数实现EQ模块的初始化。此函数主要实现移频啸叫抑制算法的启动,将抑制器链接到音频链路中: :: 1、p_sound_out:当前算法前级的音频通道句柄; 2、p_dac_cbuf:输出到DAC的OBUF; 3、pp_effect:存放当前音效算法的控制句柄指针的指针; 4、sr:当前输入音频的采样率; 5、channel:声道数; 6、返回值:启动之后最新的音频通道句柄; 函数 void eq_release(void \**ppeffect) ************************************************************************************************ 该函数用于释放音效申请的资源。适用于带有MMU的芯片(如AD23N) 1、ppeffect:存放当前音效算法控制句柄指针的指针,即link时传入的指针; 函数 void update_pcm_eq_float_param(void \*peffect) **************************************************************************************************** 此函数实现切换下一个EQ参数,可在EQ运行中调用,其中参数: :: 1、peffect:存放当前音效算法的控制句柄指针; 仅支持切换段数相同的EQ参数,不同段数的EQ参数对ram消耗不一致