dcodpg.c
上传用户:szhypcb168
上传日期:2007-01-06
资源大小:2187k
文件大小:2k
源码类别:

语音压缩

开发平台:

Unix_Linux

  1. /**************************************************************************
  2. *
  3. * ROUTINE
  4. * dcodpg.c
  5. *
  6. * FUNCTION
  7. *  Decodes all pitch gain values for a frame
  8. *
  9. *
  10. * SYNOPSIS
  11. * subroutine dcodpg(pgbits,bitsum1,bitsum2,bitpointer,
  12. *   nn,stream,pgs)
  13. *
  14. *   formal
  15. *
  16. *                       data    I/O
  17. *       name            type    type    function
  18. *       -------------------------------------------------------------------
  19. * pgbits int i number of bits for quantization
  20. * bitsum1 int i number of bits for odd subframes
  21. * bitsum2 int i number of bits for even subframes
  22. * bitpointer int i number of bits used
  23. * nn int i number of subframes/frame
  24. * stream short i bit stream
  25. * pgs float o vector of pitch gains
  26. *
  27. ***************************************************************************
  28. *
  29. * DESCRIPTION
  30. *
  31. *
  32. ***************************************************************************
  33. *
  34. * CALLED BY
  35. *
  36. *       celp
  37. *
  38. * CALLS
  39. *
  40. *       pitchdecode      unpack
  41. *
  42. ***************************************************************************
  43. *
  44. * REFERENCES
  45. *
  46. *
  47. **************************************************************************/
  48. dcodpg(pgbits, bitsum1, bitsum2, bitpointer, nn, stream, pgs)
  49. int pgbits, bitsum1, bitsum2, *bitpointer, nn;
  50. short stream[];
  51. float pgs[];
  52. {
  53.   int i, pointer, index;
  54.   pointer = *bitpointer;
  55.   for (i = 0; i < nn; i++)
  56.   {
  57.     unpack(stream, pgbits, &index, &pointer);
  58.     pitchdecode(index, &pgs[i]);
  59.     if (i == 0 || i == 2 || i == 4)
  60.       pointer += bitsum2 - pgbits;
  61.     else if (i == 1 || i == 3 || i == 5)
  62.       pointer += bitsum1 - pgbits;
  63.     else
  64.       printf("dcodpg:  Error in decoding pitch gainn");
  65.   }
  66.   *bitpointer += pgbits;
  67. }