Title: Image Compression using Vector Quantization
1Image Compression using Vector Quantization
- Nopparat Pantsaena
- Manas Sangworasil
- Chinnapat Nantajiwakornchai
- Tanasak Phanprasit
Research Center for Communication and Information
Technology (ReCCIT) King Mongkuts Institute of
Technology Ladkrabang (KMITL) Bangkok, Thailand
2Objective
- 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.
3Outline
- Introduction
- Codebook Design
- Steps of LBG
- Splitting Codebook design
- Experimental and Result
- Conclusion
4Introduction
Source Image
Training Vector
1 2 3 ..
..
5Introduction
Training Vector
Codebook Design
Codebook Table
6Introduction
New Image (Index Table)
Codebook Table
i1 i5 i39 i10
i45 i45 i200 i12
i54 i256 i96 i78
i256 i54 i5 i9
7Introduction
.(1)
Block diagram of Vector Quantization
Intro
8Codebook Design
- There are two kinds of Codebook
- Random Codebook
- Splitting Codebook
9Comparison between Random and Splitting Codebook
Design
- Splitting has certain loops to find new codebook.
- Splitting faster than Random algorithm.
- Codebooks size define by 2R.
- Random technique will not work if R is not an
integer. But we can use the Spitting algorithm.
10Codebook Design
- Linde-Buzo-Grays 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 (k1,2,3,,16)
11Steps of LBG
- Initial the value for Codebook
-
-
- Xi(k)(1)(2)(3)(k) i1,2,3,,Nc
- Nc is number of vector in Codebook
Back
12Steps of LBG
- Grouping the Training Vectors
13Steps of LBG
- P((k) ) (Si i1,2,3,,Nc)
- Si is the set of minimum distortion vectors
- xj ? Si if
- Minimum Distortion Values
.(2)
14Steps of LBG
- Average distortion
- The average distortion can be calculated from
each group, is given by
.(3)
15Steps of LBG
- Stop update the codebook if
- And we can obtain the New Codebook
16Steps of LBG
- Otherwise, the process will continue update in
the Codebook by average the group in 2nd step
vectors as -
.(4)
17Splitting Codebook design
Split the Codebook to 2 vectors and
START
Divide the image into small blocks
Update Ym M2M
Arranging vector Ymx1,x2,..xn
LGB Algorithm
Set M1 then Ymx1 ,x2 ,..x16 Find centroid of
vector by
No
MNc
Yes
END
Keep Ym
18Splitting Codebook design
- From Training Vector, find the average of
Training Vectors for setting the Codebook as
follows - k1,2,3,,16
- n 1,2,3,,16384
.(5)
Back
19Splitting Codebook design
- Split the Codebook to 2 vectors
.(7)
.(6)
j 1,2,3,,Nc
ni 1,2,3,,16
Back
20Splitting Codebook design
- Split the Codebook to 2 vectors
Back
21Experimental 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)
22Experimental and Result
Figure1. Lena
23Experimental and Result
Figure 2. Milk drop
24Experimental and Result
Figure 3. Mandrill
25Experimental and Result
Figure 4. Girl
26Conclusion
- 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
27Thank you for your attention.