int_lpc.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /*
  2. ********************************************************************************
  3. *
  4. * GSM AMR-NB speech codec R98 Version 7.6.0 December 12, 2001
  5. * R99 Version 3.3.0
  6. * REL-4 Version 4.1.0
  7. *
  8. ********************************************************************************
  9. *
  10. * File : int_lpc.h
  11. * Purpose : Interpolates the LSPs and converts to LPC parameters
  12. *
  13. ********************************************************************************
  14. */
  15. #ifndef int_lpc_h
  16. #define int_lpc_h "$Id $"
  17. /*
  18. ********************************************************************************
  19. * INCLUDE FILES
  20. ********************************************************************************
  21. */
  22. #include "typedef.h"
  23. /*
  24. ********************************************************************************
  25. * DEFINITION OF DATA TYPES
  26. ********************************************************************************
  27. */
  28. /*
  29. ********************************************************************************
  30. * DECLARATION OF PROTOTYPES
  31. ********************************************************************************
  32. */
  33. /*
  34. **************************************************************************
  35. *
  36. * Function : Int_lpc_1and3
  37. * Purpose : Interpolates the LSPs and converts to LPC parameters
  38. * to get a different LP filter in each subframe.
  39. * Description : The 20 ms speech frame is divided into 4 subframes.
  40. * The LSPs are quantized and transmitted at the 2nd and
  41. * 4th subframes (twice per frame) and interpolated at the
  42. * 1st and 3rd subframe.
  43. *
  44. * |------|------|------|------|
  45. * sf1 sf2 sf3 sf4
  46. * F0 Fm F1
  47. *
  48. * sf1: 1/2 Fm + 1/2 F0 sf3: 1/2 F1 + 1/2 Fm
  49. * sf2: Fm sf4: F1
  50. * Returns : void
  51. *
  52. **************************************************************************
  53. */
  54. void Int_lpc_1and3 (
  55. Word16 lsp_old[], /* i : LSP vector at the 4th subfr. of past frame (M) */
  56. Word16 lsp_mid[], /* i : LSP vector at the 2nd subfr. of
  57. present frame (M) */
  58. Word16 lsp_new[], /* i : LSP vector at the 4th subfr. of
  59. present frame (M) */
  60. Word16 Az[] /* o : interpolated LP parameters in all subfr.
  61. (AZ_SIZE) */
  62. );
  63. /*
  64. **************************************************************************
  65. *
  66. * Function : Int_lpc_1and3_2
  67. * Purpose : Interpolation of the LPC parameters. Same as the Int_lpc
  68. * function but we do not recompute Az() for subframe 2 and
  69. * 4 because it is already available.
  70. * Returns : void
  71. *
  72. **************************************************************************
  73. */
  74. void Int_lpc_1and3_2 (
  75. Word16 lsp_old[], /* i : LSP vector at the 4th subfr. of past frame (M) */
  76. Word16 lsp_mid[], /* i : LSP vector at the 2nd subframe of
  77. present frame (M) */
  78. Word16 lsp_new[], /* i : LSP vector at the 4th subframe of
  79. present frame (M) */
  80. Word16 Az[] /* o :interpolated LP parameters
  81. in subframes 1 and 3 (AZ_SIZE) */
  82. );
  83. /*
  84. **************************************************************************
  85. *
  86. * Function : Int_lpc_1to3
  87. * Purpose : Interpolates the LSPs and converts to LPC parameters
  88. * to get a different LP filter in each subframe.
  89. * Description : The 20 ms speech frame is divided into 4 subframes.
  90. * The LSPs are quantized and transmitted at the 4th
  91. * subframes (once per frame) and interpolated at the
  92. * 1st, 2nd and 3rd subframe.
  93. *
  94. * |------|------|------|------|
  95. * sf1 sf2 sf3 sf4
  96. * F0 F1
  97. *
  98. * sf1: 3/4 F0 + 1/4 F1 sf3: 1/4 F0 + 3/4 F1
  99. * sf2: 1/2 F0 + 1/2 F1 sf4: F1
  100. * Returns : void
  101. *
  102. **************************************************************************
  103. */
  104. void Int_lpc_1to3 (
  105. Word16 lsp_old[], /* i : LSP vector at the 4th SF of past frame (M) */
  106. Word16 lsp_new[], /* i : LSP vector at the 4th SF of present frame (M) */
  107. Word16 Az[] /* o : interpolated LP parameters in all SFs (AZ_SIZE) */
  108. );
  109. /*
  110. **************************************************************************
  111. *
  112. * Function : Int_lpc_1to3_2
  113. * Purpose : Interpolation of the LPC parameters. Same as the Int_lpc
  114. * function but we do not recompute Az() for subframe 4
  115. * because it is already available.
  116. * Returns : void
  117. *
  118. **************************************************************************
  119. */
  120. void Int_lpc_1to3_2 (
  121. Word16 lsp_old[], /* i : LSP vector at the 4th SF of past frame (M) */
  122. Word16 lsp_new[], /* i : LSP vector at the 4th SF present frame (M) */
  123. Word16 Az[] /* o :interpolated LP parameters in SFs 1, 2, 3
  124. (AZ_SIZE) */
  125. );
  126. #endif