diff libtwamr/az_lsp.h @ 253:54f6bc41ed10

libtwamr: integrate a* modules
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 05 Apr 2024 06:08:15 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libtwamr/az_lsp.h	Fri Apr 05 06:08:15 2024 +0000
@@ -0,0 +1,65 @@
+/*
+********************************************************************************
+*
+*      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             : az_lsp.h
+*
+********************************************************************************
+*/
+#ifndef az_lsp_h
+#define az_lsp_h "$Id $"
+ 
+/*
+********************************************************************************
+*                         INCLUDE FILES
+********************************************************************************
+*/
+#include "typedef.h"
+ 
+/*
+********************************************************************************
+*                         DEFINITION OF DATA TYPES
+********************************************************************************
+*/
+ 
+/*
+********************************************************************************
+*                         DECLARATION OF PROTOTYPES
+********************************************************************************
+*/
+/*
+**************************************************************************
+*
+*  Function    : Az_lsp
+*  Purpose     : Compute the LSPs from the LP coefficients
+*  Description : - The sum and difference filters are computed
+*                  and divided by 1+z^{-1} and 1-z^{-1}, respectively.
+*
+*                  f1[i] = a[i] + a[11-i] - f1[i-1] ;   i=1,...,5
+*                  f2[i] = a[i] - a[11-i] + f2[i-1] ;   i=1,...,5
+*
+*                - The roots of F1(z) and F2(z) are found using
+*                  Chebyshev polynomial evaluation. The polynomials
+*                  are evaluated at 60 points regularly spaced in the
+*                  frequency domain. The sign change interval is
+*                  subdivided 4 times to better track the root. The
+*                  LSPs are found in the cosine domain [1,-1].
+*
+*                - If less than 10 roots are found, the LSPs from 
+*                  the past frame are used.
+*  Returns     : void
+*
+**************************************************************************
+*/
+void Az_lsp (
+    Word16 a[],        /* (i)  : predictor coefficients (MP1)              */
+    Word16 lsp[],      /* (o)  : line spectral pairs (M)                   */
+    Word16 old_lsp[]   /* (i)  : old lsp[] (in case not found 10 roots) (M)*/
+);
+ 
+#endif