Abstract
This paper studies the codebook design problem arising in vector quantization, and presents a novel algorithm of polynomial time for this problem. The proposed algorithm first performs a step, called clustering, which partitions the given set of training vectors into a collection of disjoint clusters subject to a user-specified distortion constraint. Then, the proposed algorithm proceeds to reorganize the clusters and arrange them as a linearly ordered set. Finally, the dynamic programming technique is applied to further partition the linearly ordered set into a user-specified amount of groups, each of whose centroids corresponds to a codevector. The proposed algorithm has been implemented in C language. And the preliminary experimental results indicate that the proposed algorithm is capable of designing a better codebook in shorter run time than the well-known LBG algorithm.