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