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

语音压缩

开发平台:

Unix_Linux

  1. c==========================================================================
  2. c
  3. c ROUTINE
  4. c pitchencode
  5. c
  6. c FUNCTION
  7. c  
  8. c encode and quantize pitch gain (bb(3)) for various
  9. c quantizer types.
  10. c
  11. c SYNOPSIS
  12. c subroutine pitchencode(input, bits, type, index)
  13. c
  14. c   formal 
  15. c
  16. c                       data    I/O
  17. c       name            type    type    function
  18. c       -------------------------------------------------------------------
  19. c input i i pitch gain input (true value)
  20. c bits i i # bits for encode
  21. c type c i type of quantization
  22. c index r o encoded pitch gain index
  23. c pitchencode r f encoded pitch gain
  24. c
  25. c==========================================================================
  26. c
  27. c DESCRIPTION
  28. c
  29. c This funtion uses output level data obtained by Max's minimum
  30. c distortion quantization priciples and quantizes to the nearest
  31. c level (L1 norm).  (Using level data only was found superior to
  32. c using both of Max's level and boundry data.)
  33. c
  34. c==========================================================================
  35. c
  36. c REFERENCES
  37. c
  38. c Quantizing for Minimum Distorion
  39. c J. Max 
  40. c IRE Trans. Inform. Theory, vol. IT-6, pp.7-12, Mar. 1960
  41. c
  42. C==========================================================================
  43. C INPUT FILES
  44. C pgain.tbl pitch gain gain coding
  45. C
  46. c**************************************************************************
  47. c
  48. c
  49. real function pitchencode(input, bits, type, index)
  50. implicit undefined(a-z)
  51. c
  52. real input
  53. integer bits, index
  54. character*10 type
  55. integer i
  56. real quantize
  57. real pitch2max5(32)
  58. c
  59. include './pgain.tbl'
  60. convex #include "./pgain.tbl"
  61. c
  62. c *** Choose appropriate pitch
  63. c
  64. if (bits .eq. 5) then
  65.    if (type .eq. 'max2') then
  66.       pitchencode=quantize(input,pitch2max5,2**bits,index)
  67.    else
  68.       print *,' pitchencode:  unquantized pgain'
  69.    end if
  70. else
  71.    print *,' pitchencode:  unquantized pgain'
  72. end if
  73. return
  74. end