340 likes | 969 Views
Image Compression using Vector Quantization. Nopparat Pantsaena Manas Sangworasil Chinnapat Nantajiwakornchai Tanasak Phanprasit. Research Center for Communication and Information Technology (ReCCIT) King Mongkut’s Institute of Technology Ladkrabang (KMITL) Bangkok, Thailand. Objective.
E N D
Image Compression using Vector Quantization Nopparat Pantsaena Manas Sangworasil Chinnapat Nantajiwakornchai Tanasak Phanprasit Research Center for Communication and Information Technology (ReCCIT) King Mongkut’s Institute of Technology Ladkrabang (KMITL) Bangkok, Thailand
Objective This research presents the Splitting solution to implement the Codebook, which improves the image quality by average Training Vectors and then splits the average result to Codebook that has minimum distortion.
Outline • Introduction • Codebook Design • Steps of LBG • Splitting Codebook design • Experimental and Result • Conclusion
Introduction Source Image Training Vector
Introduction Training Vector Codebook Design Codebook Table
Introduction New Image (Index Table) Codebook Table
Introduction ….(1) Block diagram of Vector Quantization Intro
Codebook Design • There are two kinds of Codebook • Random Codebook • Splitting Codebook
Comparison between Random and Splitting Codebook Design • Splitting has certain loops to find new codebook. • Splitting faster than Random algorithm. • Codebook’s size define by 2R. Random technique will not work if R is not an integer. But we can use the Spitting algorithm.
Codebook Design • Linde-Buzo-Gray’s Algorithm (LBG) xj(k)=[ xj(1) xj(2) xj(3)…xj(k) ] j = 1,2,3,…,n; n = number of the image parts k = vector dimension; (k=1,2,3,…,16)
Steps of LBG • Initial the value for Codebook Xi(k)=[(1)(2)(3)…(k)]; i=1,2,3,…,Nc Nc is number of vector in Codebook Back
Steps of LBG • Grouping the Training Vectors
Steps of LBG • P((k) ) = (Si; i=1,2,3,…,Nc); Si is the set of minimum distortion vectors • xj Si if • Minimum Distortion Values ….(2)
Steps of LBG • Average distortion • The average distortion can be calculated from each group, is given by ….(3)
Steps of LBG • Stop update the codebook if • And we can obtain the New Codebook
Steps of LBG • Otherwise, the process will continue update in the Codebook by average the group in 2nd step vectors as: ….(4)
Splitting Codebook design Split the Codebook to 2 vectors: and START Divide the image into small blocks Update Ym M=2M Arranging vector Ym={x1,x2,..xn} LGB Algorithm Set M=1 then Ym={x1 ,x2 ,..x16} Find centroid of vector by No M=Nc Yes END Keep Ym
Splitting Codebook design • From Training Vector, find the average of Training Vectors for setting the Codebook as follows k=1,2,3,…,16 n =1,2,3,…,16384 ….(5) Back
Splitting Codebook design • Split the Codebook to 2 vectors: ….(7) ….(6) j =1,2,3,…,Nc ni =1,2,3,…,16 Back
Splitting Codebook design • Split the Codebook to 2 vectors: Back
Experimental and Result • The value of PSNR is calculated from • RMSE when f(i,j) is the gray level of pixel i in the original image f(i,j)’ is the gray level of pixel i in the decompressed image. N is the total number of pixels in the image. ….(8) ….(9)
Experimental and Result Figure1. Lena
Experimental and Result Figure 2. Milk drop
Experimental and Result Figure 3. Mandrill
Experimental and Result Figure 4. Girl
Conclusion This paper proposed the implementation of Codebook to Vector Quantization image compression. From the experiment, the Split Codebook can achieve higher image quality than Random Codebook at the same bits rate. In another words, the proposed algorithm achieves lower bits rate at the same image quality