FreeCalypso > hg > gsm-codec-lib
changeset 325:67c31802392b
libtwamr: integrate calc_cor.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 18 Apr 2024 20:12:48 +0000 |
parents | dc3b7caa59c4 |
children | bfe74a9edd5a |
files | libtwamr/Makefile libtwamr/calc_cor.c libtwamr/calc_cor.h libtwamr/namespace.h |
diffstat | 4 files changed, 130 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libtwamr/Makefile Thu Apr 18 20:05:14 2024 +0000 +++ b/libtwamr/Makefile Thu Apr 18 20:12:48 2024 +0000 @@ -2,8 +2,8 @@ CFLAGS= -O2 OBJS= a_refl.o agc.o autocorr.o az_lsp.o b_cn_cod.o basicop2.o bgnscd.o \ bitno.o bits2prm.o c1035pf.o c2_11pf.o c2_9pf.o c3_14pf.o c4_17pf.o \ - c8_31pf.o c_g_aver.o cor_h.o gmed_n.o graytab.o inv_sqrt.o oper_32b.o \ - prmno.o s10_8pf.o set_sign.o sqrt_l.o tls_flags.o window.o + c8_31pf.o c_g_aver.o calc_cor.o cor_h.o gmed_n.o graytab.o inv_sqrt.o \ + oper_32b.o prmno.o s10_8pf.o set_sign.o sqrt_l.o tls_flags.o window.o LIB= libtwamr.a INSTALL_PREFIX= /usr/local
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/calc_cor.c Thu Apr 18 20:12:48 2024 +0000 @@ -0,0 +1,78 @@ +/* +******************************************************************************** +* +* GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 +* R99 Version 3.3.0 +* REL-4 Version 4.1.0 +* +******************************************************************************** +* +* File : calc_cor.c +* Purpose : Calculate all correlations for prior the OL LTP +* +******************************************************************************** +*/ + +/* +******************************************************************************** +* MODULE INCLUDE FILE AND VERSION ID +******************************************************************************** +*/ +#include "namespace.h" +#include "calc_cor.h" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include "typedef.h" +#include "basic_op.h" +#include "oper_32b.h" +#include "no_count.h" +#include "cnst.h" + +/* +******************************************************************************** +* PUBLIC PROGRAM CODE +******************************************************************************** +*/ +/************************************************************************* + * + * FUNCTION: comp_corr + * + * PURPOSE: Calculate all correlations of scal_sig[] in a given delay + * range. + * + * DESCRIPTION: + * The correlation is given by + * cor[t] = <scal_sig[n],scal_sig[n-t]>, t=lag_min,...,lag_max + * The functions outputs the all correlations + * + *************************************************************************/ +void comp_corr ( + Word16 scal_sig[], /* i : scaled signal. */ + Word16 L_frame, /* i : length of frame to compute pitch */ + Word16 lag_max, /* i : maximum lag */ + Word16 lag_min, /* i : minimum lag */ + Word32 corr[]) /* o : correlation of selected lag */ +{ + Word16 i, j; + Word16 *p, *p1; + Word32 t0; + + for (i = lag_max; i >= lag_min; i--) + { + p = scal_sig; move16 (); + p1 = &scal_sig[-i]; move16 (); + t0 = 0; move32 (); + + for (j = 0; j < L_frame; j++, p++, p1++) + { + t0 = L_mac (t0, *p, *p1); + } + corr[-i] = t0; move32 (); + } + + return; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtwamr/calc_cor.h Thu Apr 18 20:12:48 2024 +0000 @@ -0,0 +1,49 @@ +/* +******************************************************************************** +* +* GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001 +* R99 Version 3.3.0 +* REL-4 Version 4.1.0 +* +******************************************************************************** +* +* File : calc_cor.h +* Purpose : Calculate all correlations for prior the OL LTP +* +******************************************************************************** +*/ +#ifndef calc_cor_h +#define calc_cor_h "$Id $" + +/* +******************************************************************************** +* INCLUDE FILES +******************************************************************************** +*/ +#include "typedef.h" + +/* +******************************************************************************** +* DECLARATION OF PROTOTYPES +******************************************************************************** +*/ +/************************************************************************* + * + * FUNCTION: comp_corr + * + * PURPOSE: Calculate all correlations of scal_sig[] in a given delay + * range. + * + * DESCRIPTION: + * The correlation is given by + * cor[t] = <scal_sig[n], scal_sig[n-t]>, t=lag_min,...,lag_max + * The functions outputs all correlations in the given range + * + *************************************************************************/ +void comp_corr (Word16 scal_sig[], /* i : scaled signal. */ + Word16 L_frame, /* i : length of frame to compute pitch */ + Word16 lag_max, /* i : maximum lag */ + Word16 lag_min, /* i : minimum lag */ + Word32 corr[] /* o : correlation of selected lag */ + ); +#endif
--- a/libtwamr/namespace.h Thu Apr 18 20:05:14 2024 +0000 +++ b/libtwamr/namespace.h Thu Apr 18 20:12:48 2024 +0000 @@ -77,6 +77,7 @@ #define cor_h AMR__cor_h #define cor_h_x AMR__cor_h_x #define cor_h_x2 AMR__cor_h_x2 +#define comp_corr AMR__comp_corr #define Bits2prm AMR__Bits2prm #define Prm2bits AMR__Prm2bits