dcodcbi.c
上传用户:tsjrly
上传日期:2021-02-19
资源大小:107k
文件大小:2k
源码类别:

语音压缩

开发平台:

C/C++

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