在TI XDAIS算法中正确使用const,静态const或全局变量的正确方法

时间:2019-04-27 18:57:31

标签: c codec texas-instruments

我正在尝试制作兼容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-从应用程序请求暂存和定义本地需要的变量之间到底有什么区别?因为暂存存储器也未初始化。

预先感谢

0 个答案:

没有答案