00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #ifndef QUANTISE_H
00025 #define QUANTISE_H
00026 
00046 class Quantise {
00047 public:
00048 
00050   Quantise(int levels, float lower, float upper);
00051 
00053   Quantise(void);
00054   virtual ~Quantise(void);
00055 
00057   void calculateBounds(int levels, float lower, float upper);
00058 
00060   virtual int convertToInt(float value);
00061 
00063   virtual float convertToFloat(int value);
00064 
00066   void buildLookUpTable(void);
00067 
00069   float useLookUpTable(int value);
00070 
00072   float lowerBound(void);
00073 
00075   float upperBound(void);
00076 
00078   int levels(void);
00079 
00080 private:
00081   int _levels;
00082   float _lower;
00083   float _upper;
00084 
00085   float _factor;
00086   float _logLower;
00087 
00088   float *_quantiseTable;
00089 };
00090 
00091 #endif