Abstract
Vector quantization (VQ) is an effective technique applicable in a wide range of areas, such as image compression and pattern recognition. The most time-consuming procedure of VQ is codebook training, and two of the frequently used training algorithms are LBG and self-organizing map (SOM). Nowadays, desktop computers are usually equipped with programmable graphics processing units (GPUs), whose parallel data-processing ability is ideal for codebook training acceleration. Although there are some GPU algorithms for LBG training, their implementations suffer from a large amount of data transfer between CPU and GPU and a large number of rendering passes within a training iteration. This paper presents a novel GPU-based training implementation for LBG and SOM training. More specifically, we utilize the random write ability of vertex shader to reduce the overheads mentioned above. Our experimental results show that our approach can run four times faster than the previous approach.
Similar content being viewed by others
Notes
In fact, we do not need to swap the contents of the two sets of textures. We only need to swap their texture IDs.
References
Linde Y, Buzo A, Gray RM (1980) An algorithm for vector quantizer design. IEEE Trans Commun 28(1):84–95
Gray RM (1984) Vector quantization. IEEE Acoust Speech Signal Process Mag 1(1):4–29
Gersho A, Gray RM (1991) Vector quantization and signal compression. Kluwer, Norwell
Lu Z-M, Xu D-G, Sun S-H (2000) Multipurpose image watermarking algorithm based on multistage vector quantization. IEEE Trans Image Process 14(6):822–831
Tsang PWM, Tsang WH (1996) Preservation of interlaced patterns in encoding video signals using side match vector quantization smoothing regularization of MLP for Jacobian stabilization. IEEE Trans Consu Electron 42(1):112–120
Mukherjee D, Chae JJ, Mitra SK, Manjunath BS (2000) A source and channel-coding framework for vector-based data hiding in video. IEEE Trans Circuits Syst Video Technol 10:630–645
Sim J-Y, Lee S-U (2008) Compression of 3D point visual data using vector quantization and rate-distortion optimization. IEEE Trans Multimed 10(3):305–315
Pham T (2003) Alignment-free sequence comparison with vector quantization and hidden markov models. In CSB ’03: Proceedings of the IEEE computer society conference on bioinformatics, Washington, DC, USA, 2003, p 534, IEEE Computer Society
Ramasubramanian V, Paliwal KK (1992) Fast k-dimensional tree algorithms for nearest neighborsearch with application to vector quantization encoding. IEEE Trans Signal Process 40(3):518–531
Laha A, Chanda B, Pal NR (2006) Accelerated codebook searching in a som-based vector quantizer. IJCNN 2006. 2006, pp 3306–3311
Kohonen T (2001) Self-organizing maps. Springer, Berlin
Mark WR, Glanville RS, Akeley K, Kilgard MJ (2003) Cg: A system for programing graphics hardware in a C-like language. ACM Trans Graph 22(3):896–907
Bolz J, Farmer I, Grinspun E, Schreoder P (2003) Sparse matrix solvers on the GPU: conjugate gradients and multigrid. ACM Trans Graph 22(3):917–924
Leung CS, Wong TT, Lam PM, Choy KH (2006) An RBF-based image compression method for image-based rendering. IEEE Trans Image Process 15(1):1031–1041
Garcia A, Shen HW (2005) GPU-based 3d wavelet reconstruction with tileboarding. Vis Comput 21(8–10):755–763
Wong TT, Leung CS, Heng PA, Wang J (2007) Discrete wavelet transform on consumer-level graphics hardware. IEEE Trans Multimed 9(3):668–673
Ho TY, Lam PM, Leung CS (2008) Parallelization of cellular neural networks on gpu. Pattern Recogn Lett 41(8):2684–2692
Bohn CA (1998) Kohonen feature mapping through graphics hardware. In: Proceedings of 3rd international conference on computational intelligence and neurosciences, pp 64–67
Takizawa H, Kobayashi H (2006) Hierarchical parallel processing of large scale data clustering on a pc cluster with gpu co-processing. J Supercomput 36:219–234
Togneri R, Lai E, Attikiouzel Y (1990) Kohonen’s algorithm for the numerical parametrisation of manifolds. Pattern Recognit Lett 11(5):313–319
Leung CS, Chan LW (1997) Transmission of vector quantized data over a noisy channel. IEEE Trans Neural Netw 8(3):582–589
Leung CS, Chan LW (1999) Design of trellis vetor quantizers using kohonen maps. Neural Netw 12(6):907–914
Acknowledgment
The work was supported by a research grant from the City University of Hong Kong (Project No.: 7002588).
Author information
Authors and Affiliations
Corresponding author
Appendix
Appendix
Rights and permissions
About this article
Cite this article
Xiao, Y., Leung, C.S., Ho, TY. et al. A GPU implementation for LBG and SOM training. Neural Comput & Applic 20, 1035–1042 (2011). https://doi.org/10.1007/s00521-010-0403-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00521-010-0403-7