对照书上实现了LBG适量量化的算法,共享一下。
LBG是经典的矢量量化算法,通过对训练集的分析,生成矢量量化使用的码本。
实现过程简单明了,就一个CPP文件。
typedef struct _tTSVector { //training set vector
double data[VEC_DEM]; //vector data
int cluster; //cluster belong to
}tTSVector;
typedef struct _tCBVector { //code book vector
double data[VEC_DEM]; //vector data
int num; //number of vectors in this cluster
double sum[VEC_DEM]; //sum of vectors in this cluster, to calculate cluster center
}tCBVector;
tTSVector TrainingSet[TS_SIZE];
tCBVector CodeBook[CB_SIZE];
.........
1