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

语音压缩

开发平台:

C/C++

  1. /**************************************************************************
  2. *
  3. * ROUTINE
  4. * packtau (pack tau into binaru bit stream)
  5. *
  6. * FUNCTION
  7. * Input decimal value and number of binary bits, 
  8. * program returns binary value packed in array.
  9. *
  10. * SYNOPSIS
  11. * subroutine packtau(value, bits, pdencode, array, pointer)
  12. *
  13. *   formal 
  14. *
  15. *                       data    I/O
  16. *       name            type    type    function
  17. *       -------------------------------------------------------------------
  18. * value int I decimal value
  19. * bits int I number of bits to convert to
  20. * (ie. 01001 for 5 bits, 1st 0 incl.)
  21. * pdencode int I pitch delay indexing table
  22. * array short O array to which one bit is assigned
  23. * for binary representation
  24. * pointer int * I/O points to appropriate element in
  25. * array
  26. *
  27. ***************************************************************************
  28. *
  29. * DESCRIPTION
  30. *
  31. * This program packs a decimal value into a binary value
  32. * to be decoded by unpacktau.c in CELP synthesizer sections.
  33. *
  34. ***************************************************************************
  35. *
  36. * CALLED BY
  37. *
  38. * celp
  39. *
  40. * CALLS
  41. *
  42. *
  43. *
  44. **************************************************************************/
  45. packtau(value, bits, pdencode, array, pointer)
  46. int value, pdencode[], bits, *pointer;
  47. short array[];
  48. {
  49.   int i;
  50.   /* *change index to permuted index  */
  51.   value = pdencode[value];
  52.   /* insert in bitstream  */
  53.   for (i = 0; i < bits; (*pointer)++, i++)
  54.     array[*pointer] = (value & 1 << i) >> i;
  55. }