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

语音压缩

开发平台:

Unix_Linux

  1. c==========================================================================
  2. c
  3. c ROUTINE
  4. c quantize
  5. c
  6. c FUNCTION
  7. c Nearest output level scalar quantizer
  8. c
  9. c SYNOPSIS
  10. c real function quantize(input, level, nlevel, index)
  11. c
  12. c   formal 
  13. c
  14. c                       data    I/O
  15. c       name            type    type    function
  16. c       -------------------------------------------------------------------
  17. c input real i Scalar to be quantized
  18. c level(nlevel) real i Output level table
  19. c nlevel int i Number of quantizer levels
  20. c index int o Index to quantized output (zero based!)
  21. c quantize real f Quantized input
  22. c
  23. c**************************************************************************
  24. c
  25. real function quantize(input, level, nlevel, index)
  26. implicit undefined(a-z)
  27. integer nlevel, index
  28. real input, level(nlevel)
  29. integer i
  30. real dist, low
  31. c
  32. c *** Quantize to nearest output level:
  33. c
  34. do 69 i = 1, nlevel
  35.    dist = abs(input - level(i))
  36.    if (dist .lt. low .or. i .eq. 1) then
  37.       low = dist
  38.       index = i
  39.    end if
  40. 69 continue
  41. quantize = level(index)
  42. index    = index - 1
  43. return
  44. end