c2_11pf.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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 : c2_11pf.h
  11. * Purpose : Searches a 11 bit algebraic codebook containing 2 pulses
  12. * in a frame of 40 samples.
  13. *
  14. ********************************************************************************
  15. */
  16. #ifndef c2_11pf_h
  17. #define c2_11pf_h "$Id $"
  18. /*
  19. ********************************************************************************
  20. * INCLUDE FILES
  21. ********************************************************************************
  22. */
  23. #include "typedef.h"
  24. /*
  25. ********************************************************************************
  26. * LOCAL VARIABLES AND TABLES
  27. ********************************************************************************
  28. */
  29. /*
  30. ********************************************************************************
  31. * DEFINITION OF DATA TYPES
  32. ********************************************************************************
  33. */
  34. /*
  35. ********************************************************************************
  36. * DECLARATION OF PROTOTYPES
  37. ********************************************************************************
  38. */
  39. /*************************************************************************
  40. *
  41. * FUNCTION: code_2i40_11bits()
  42. *
  43. * PURPOSE: Searches a 11 bit algebraic codebook containing 2 pulses
  44. * in a frame of 40 samples.
  45. *
  46. * DESCRIPTION:
  47. * The code length is 40, containing 2 nonzero pulses: i0...i1.
  48. * All pulses can have two possible amplitudes: +1 or -1.
  49. * Pulse i0 can have 2x8=16 possible positions, pulse i1 can have
  50. * 4x8=32 positions.
  51. *
  52. * i0 : 1, 6, 11, 16, 21, 26, 31, 36.
  53. * 3, 8, 13, 18, 23, 28, 33, 38.
  54. * i1 : 0, 5, 10, 15, 20, 25, 30, 35.
  55. * 1, 6, 11, 16, 21, 26, 31, 36.
  56. * 2, 7, 12, 17, 22, 27, 32, 37.
  57. * 4, 9, 14, 19, 24, 29, 34, 39.
  58. *
  59. *************************************************************************/
  60. Word16 code_2i40_11bits(
  61. Word16 x[], /* i : target vector */
  62. Word16 h[], /* i : impulse response of weighted synthesis filter */
  63. /* h[-L_subfr..-1] must be set to zero. */
  64. Word16 T0, /* i : Pitch lag */
  65. Word16 pitch_sharp, /* i : Last quantized pitch gain */
  66. Word16 code[], /* o : Innovative codebook */
  67. Word16 y[], /* o : filtered fixed codebook excitation */
  68. Word16 * sign /* o : Signs of 2 pulses */
  69. );
  70. #endif