123 lines
4.5 KiB
C
123 lines
4.5 KiB
C
|
||
#ifndef _MED_AEC3_COMM_H_
|
||
#define _MED_AEC3_COMM_H_
|
||
|
||
/*****************************************************************************
|
||
1 其他头文件包含
|
||
*****************************************************************************/
|
||
#include "codec_typedefine.h"
|
||
#include "med_fft.h"
|
||
#include "codec_com_codec.h"
|
||
#include "med_aec3_main.h"
|
||
|
||
#ifdef __cplusplus
|
||
#if __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
#endif
|
||
|
||
/*****************************************************************************
|
||
2 宏定义
|
||
*****************************************************************************/
|
||
/* FFT IFFT回调函数 */
|
||
typedef VOS_VOID (*MED_AEC_FFT_CALLBACK)(VOS_INT16 *, VOS_INT16 *);
|
||
|
||
#ifdef AEC_ONLY_SUPPORT_8k
|
||
#ifdef SPEECH_STREAM_UNIT_128
|
||
#define MED_AEC_FFT_LEN_NB (256)
|
||
#else
|
||
#define MED_AEC_FFT_LEN_NB (240)
|
||
#endif
|
||
#define MED_AEC_MAX_FFT_LEN (MED_AEC_FFT_LEN_NB) /* 宽带FFT长度 */
|
||
#else
|
||
#ifdef SPEECH_STREAM_UNIT_128
|
||
#define MED_AEC_FFT_LEN_NB (256)
|
||
#define MED_AEC_FFT_LEN_WB (512)
|
||
#else
|
||
#define MED_AEC_FFT_LEN_NB (240)
|
||
#define MED_AEC_FFT_LEN_WB (480)
|
||
#endif
|
||
#define MED_AEC_MAX_FFT_LEN (MED_AEC_FFT_LEN_WB) /* 宽带FFT长度 */
|
||
#endif
|
||
|
||
#define MED_AEC_HF_AF_M (6)
|
||
|
||
/* 临时全局数组,供AEC各模块使用 */
|
||
//extern VOS_INT16 g_ashwMedAecTmp1Len640[MED_AEC_MAX_FFT_LEN];
|
||
//extern VOS_INT16 g_ashwMedAecTmp2Len640[MED_AEC_MAX_FFT_LEN];
|
||
//extern VOS_INT32 g_aswMedAecTmp1Len320[CODEC_FRAME_LENGTH_WB];
|
||
//extern VOS_INT32 g_aswMedAecTmp1Len640[MED_AEC_MAX_FFT_LEN];
|
||
|
||
/* AEC 公共宏定义*/
|
||
//#define MED_AEC_GetshwVecTmp640Ptr1() (&g_ashwMedAecTmp1Len640[0]) /* 临时全局数组指针 长度640 INT16 */
|
||
//#define MED_AEC_GetshwVecTmp640Ptr2() (&g_ashwMedAecTmp2Len640[0]) /* 临时全局数组指针 长度640 INT16 */
|
||
//#define MED_AEC_GetswVecTmp320Ptr1() (&g_aswMedAecTmp1Len320[0]) /* 临时全局数组指针 长度320 INT32 */
|
||
//#define MED_AEC_GetswVecTmp640Ptr1() (&g_aswMedAecTmp1Len640[0]) /* 临时全局数组指针 长度640 INT32 */
|
||
|
||
#define MED_AEC_OFFSET_THD (60) /* 延迟补偿阈值 */
|
||
#define MED_AEC_MAX_OFFSET (960) /* 最大补偿长度,单位采样点 Q0*/
|
||
#define MED_AEC_MAX_TAIL_LEN (960) /* 最大尾端长度,单位ms,最大支持60ms尾端延迟 Q0*/
|
||
/*****************************************************************************
|
||
3 枚举定义
|
||
*****************************************************************************/
|
||
/* AF FFT长度 */
|
||
enum MED_AEC_AF_FFT_LEN_ENUM
|
||
{
|
||
#ifdef SPEECH_STREAM_UNIT_128
|
||
MED_AEC_AF_FFT_LEN_NB = 256, /* 窄带FFT长度 */
|
||
MED_AEC_AF_FFT_LEN_WB = 512, /* 宽带FFT长度 */
|
||
#else
|
||
MED_AEC_AF_FFT_LEN_NB = 240, /* 窄带FFT长度 */
|
||
MED_AEC_AF_FFT_LEN_WB = 480, /* 宽带FFT长度 */
|
||
#endif
|
||
MED_AEC_AF_FFT_LEN_BUTT
|
||
};
|
||
typedef VOS_INT16 MED_AEC_AF_FFT_LEN_ENUM_INT16;
|
||
|
||
/* 开关量枚举 */
|
||
enum CODEC_SWITCH_ENUM
|
||
{
|
||
CODEC_SWITCH_OFF = 0,
|
||
CODEC_SWITCH_ON,
|
||
CODEC_SWITCH_BUTT
|
||
};
|
||
typedef VOS_UINT16 CODEC_SWITCH_ENUM_UINT16;
|
||
|
||
/*****************************************************************************
|
||
4 全局变量声明
|
||
*****************************************************************************/
|
||
|
||
/*****************************************************************************
|
||
5 STRUCT定义
|
||
*****************************************************************************/
|
||
|
||
/*****************************************************************************
|
||
6 UNION定义
|
||
*****************************************************************************/
|
||
|
||
/*****************************************************************************
|
||
7 OTHERS定义
|
||
*****************************************************************************/
|
||
|
||
/*****************************************************************************
|
||
8 函数声明
|
||
*****************************************************************************/
|
||
#ifdef DEBUG_AEC
|
||
static VOS_VOID fprint_vec_int32(FILE *fd, VOS_INT32 *buf, VOS_INT32 len)
|
||
{
|
||
for (VOS_INT32 i = 0; i < len - 1; i++) {
|
||
fprintf(fd, "%d ", buf[i]);
|
||
}
|
||
fprintf(fd, "%d\n", buf[len - 1]);
|
||
}
|
||
#endif
|
||
|
||
#ifdef __cplusplus
|
||
#if __cplusplus
|
||
}
|
||
#endif
|
||
#endif
|
||
|
||
#endif /* end of med_aec_main.h*/
|
||
|