Я пытаюсь сделать кодек melpe, совместимый с XDAIS.Но я не совсем понимаю, как правильно это сделать.
ссылка на кодек melpe: https://github.com/gegel/pairphone/tree/master/melpe (спасибо gegel за предоставленную реализацию)
В настоящее время я делал эту процедуру дляКодек G711 (который является чрезвычайно простым кодеком), но теперь для кодека melpe, я не знаю, что делать с константными и статическими константными переменными.например в 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, я нашел следующие заметки:
- Алгоритмы никогда сами выделяют память, а не запрашивают память у приложения.
- Следуя той же процедуре, что и в http://processors.wiki.ti.com/index.php/Porting_GPP_code_to_DSP_and_Codec_Engine, сначала я должен скомпилировать этот кодек в библиотеку, а затем использовать его в функциях-оболочках XDAIS (например, методах управления и управления)
- в примере FIR-фильтра, предоставленного TI, нет ни const, ни глобальной переменной, которая должна быть сохранена.
Q1 - Если я правильно понимаю, алгоритмы никогда не должны использовать глобальные переменные в своей реализации.Я прав?
Q2 - А как насчет локальных переменных, определенных в функциях IAlg?Что мешает алгоритмам определять слишком много локальных переменных, поскольку при запросе памяти из приложения алгоритмы ничего не упоминают о том, сколько памяти им нужно для своих локальных переменных.и где эти переменные хранятся в памяти?
Q3 - Если Q1 верен, как мне обращаться с этими глобальными постоянными переменными в XDAIS?Где именно я должен их разместить?
Q4 - В чем разница между запросом чистых данных из приложения и определением переменных, которые нам нужны локально?так как чистая память тоже неинициализирована.
Заранее спасибо