我正在尝试制作兼容XDAIS的混合编解码器。但是我对正确的方法很困惑。
链接到melpe编解码器:https://github.com/gegel/pairphone/tree/master/melpe (感谢gegel提供实施)
我目前对G711编解码器(这是一个非常简单的编解码器)执行此过程,但是对于melpe编解码器,我不知道如何处理const和静态const变量。 例如在classify.c中:
const int16_t enlpf_coef[EN_FILTER_ORDER] = { /* Q14 */
/* the coefs of the filter (NOT h) */
6764, 4336, -274, -2536, -1491,
24, -228, -1370, -1502, -480,
383, 390, 57, -18, 104,
132, 51
};
const int16_t enhpf_coef[EN_FILTER_ORDER] = { /* Q14 */
/* the coefs of the filter (NOT h) */
7783, -5211, 439, 1707, -483,
-978, 564, 630, -861, 214,
205, -86, -82, 43, 26,
-18, 2
};
在阅读有关XDAIS的信息时,我发现以下注意事项:
Q1-如果我正确理解算法,则在实现过程中切勿使用全局变量。我说得对吗?
Q2-IAlg函数中定义的局部变量呢?是什么阻止了算法定义太多的局部变量,因为在从应用程序请求内存时,算法没有提及有关其局部变量需要多少内存的任何内容。这些变量在哪里存储在内存中?
Q3-如果Q1是正确的,我应该如何在XDAIS中处理这些全局常量变量?我到底应该把它们放在哪里?
Q4-从应用程序请求暂存和定义本地需要的变量之间到底有什么区别?因为暂存存储器也未初始化。
预先感谢