#include <vq.h>
Public Member Functions | |
Scalar_Quantizer () | |
Default constructor. | |
Scalar_Quantizer (const char *Name) | |
Create a VQ from a VQ file. | |
int | encode (double x) const |
Encode. | |
ivec | encode (const vec &x) const |
Encode the input vector. | |
double | decode (int Index) const |
Decode the index. | |
vec | decode (const ivec &Index) const |
Decode the indices. | |
double | Q (double x) const |
Quantize. | |
vec | Q (const vec &x) const |
Quantize the input vector. | |
double | operator() (double x) const |
Quantize. | |
vec | operator() (const vec &x) const |
Quantize the input vector. | |
void | set_levels (const vec &L) |
Initialize the codebook by a matrix. | |
vec | get_levels () const |
Returns the codebook. | |
int | size () const |
Returns the size (number of codevectors) of the VQ. | |
Protected Attributes | |
vec | Levels |
The vector containing the code book. | |
double | LatestDist |
The distortion at the latest time a vector was encoded. |
The following code illustrates how the quantizer can be initialized from a file and used to quantize a random vector.
Scalar_Quantizer Quantizer; double x,y; int i; Quantizer.load("random.sq"); x=randn(); i=Quantizer.encode(x); y=Quantizer.decode(i);