Linde–Buzo–Gray (LBG), a traditional method of vector quantization (VQ) generates a local optimal codebook which results in lower PSNR value. The performance of vector quantization (VQ) depends on the appropriate codebook, so researchers proposed optimization techniques for global codebook generation. Particle swarm optimization (PSO) and Firefly algorithm (FA) generate an efficient codebook, but undergoes instability in convergence when particle velocity is high and non-availability of brighter fireflies in the search space respectively. In this paper, we propose a new algorithm called BA-LBG which uses Bat Algorithm on initial solution of LBG. It produces an efficient codebook with less computational time and results very good PSNR due to its automatic zooming feature using adjustable pulse emission rate and loudness of bats. From the results, we observed that BA-LBG has high PSNR compared to LBG, PSO-LBG, Quantum PSO-LBG, HBMO-LBG and FA-LBG, and its average convergence speed is 1.841 times faster than HBMO-LBG and FA-LBG but no significance difference with PSO.
Vector quantization ; Linde–Buzo–Gray (LBG) ; Particle swarm optimization (PSO) ; Quantum particle swarm algorithm (QPSO) ; Honey bee mating optimization (HBMO) ; Firefly algorithm (FA) ; Bat algorithm (BA)
Image compression plays a major role in applications like internet browsing, medical science, navy applications, TV broadcasting and many more applications. Several techniques have been proposed by many researchers over the past decades for image compression. Vector Quantization (VQ) technique, performance is better than scalar quantization methods such as pulse code modulation (PCM), differential PCM (DPCM), Adaptive DPCM. Vector Quantization (VQ) [1] and [2] is basically a c-means clustering method widely used for image compression, pattern recognition [3] and [4] , speech recognition [5] , face detection [6] speech and image coding because of its excellent rate distortion performance. VQ is popular because it has simple decoding structure and can provide high compression ratio. Basically VQ is performed in three steps: 1. Vector formation: – division of image into non-overlapping blocks or vectors called input vectors, 2. Codebook generation: – a set of representative image blocks of the input blocks (vectors) is selected which is called a codebook and each representative image vector is called a codeword 3. Quantization: – here each input vector is approximated to a codeword in the codebook and corresponding index of this codeword is transmitted. VQ methods are classified into two categories, namely crisp and fuzzy [7] . Crisp VQ is based on hard decision making processes and appears to be sensitive in codebook initialization. The most representative algorithms of this category are the c-means. To improve the behavior of c-means, Linde et al. introduced the Linde–Buzo–Gray (LBG) algorithm, which begins with the smallest codebook size and gradually increase it using a splitting procedure [8] . The performance of the LBG is improved by embedding special functions called utility measures in the learning process. Fuzzy VQ is carried out in terms of fuzzy cluster analysis. The most representative algorithms of this category is the fuzzy c-means. The fuzzy c-means assume that each training vector belongs to multiple clusters with different participation degrees (i.e. Membership degrees). Therefore, the learning is a soft decision making process [9] . LBG Algorithm undergoes local optimum problem [10] . So Patane and Russo proposed a clustering algorithm called enhanced LBG (ELBG) [11] . They used the concept of utility of a codeword to overcome the local optimal problem of LBG by shifting the lower utility codewords to the one with higher utility. Recently, the evolutionary optimization algorithms had been developed to design the codebook for improving the results of LGB algorithm. Rajpoot, Hussain, Saleem and Qureshi designed a codebook by using an ant colony system (ACS) algorithm [12] . In this algorithm, codebook is optimized by representing the vector coefficients in a bidirectional graph, followed by defining a suitable mechanism of depositing pheromone on the edges of the graph. Tsaia, Tsengb, Yangc, and Chiangb proposed a fast ant colony optimization for codebook generation by observing the redundant calculations [13] . In addition, particle swarm optimization (PSO) vector quantization [14] outperforms LBG algorithm which is based on updating the global best (gbest) and local best (lbest) solution. Feng, Chen, and Fun showed that Evolutionary fuzzy particle swarm optimization algorithm [15] has better global and robust performances than LBG learning algorithms. Quantum particle swarm algorithm (QPSO) was proposed by Wang, Feng, Huang, Zhou, and Liang to solve the 0–1 knapsack problem [16] . The QPSO performance is better than PSO as it computes the local point from the pbest and gbest for each particle and updates the position of the particle by choosing appropriate parameters u and z.
Horng and Jiang applied honey bee mating optimization algorithm for Vector quantization [17] . HBMO has high quality reconstructed image and better codebook with small distortion compared to PSO-LBG, QPSO-LBG and LBG algorithm. Horng applied a firefly algorithm (FA) to design a codebook for vector quantization [18] . The firefly algorithm has become an increasingly important tool of Swarm Intelligence that has been applied in almost all areas of optimization, as well as engineering problems. Firefly algorithm is encouraged by social activities of fireflies and the occurrence of bioluminescent communication. A Firefly with lighter intensity value move towards the brighter intensity firefly, and if there is no brighter firefly then it moves randomly. Chang, Chiang, Yeh proposed a tree structured vector quantization for fast codebook design with the help of employing the triangle inequality to achieve efficient pruning of impossible codewords [19] . Chen, Hwang and Tsou proposed a fast codebook search algorithm based on triangular inequality estimation [20] . Kekre, Sarode, Sange, Natu and Natu proposed a fast codebook search algorithm with different codebook sizes in 8, 16, 32, 64, 128 and 256 based on the kekres fast codebook generation algorithm [21] . Kekre, Sarode, Thepade and Vaishali proposed a Kekres fast codebook generation in VQ with various color spaces for colorization of grayscale images [22] . Yang, RuiXia, Wang, and Jiao proposed an Evolutionary clustering based vector quantization for image compression based on One-step gradient descent genetic algorithm (OSGD-GA). OSGD-GA is designed for optimizing the codebooks of the low-frequency wavelet coefficient by defining the importance of each coefficient and utilizing fuzzy membership to address the automatic clustering [23] . Multivariate vector quantization (MVQ) approach is useful for compression of hyper spectral imagery (HSI) based on a linear combination of two codewords from the codebook, and the indexed maps and their corresponding coefficients are separately coded and compressed [24] . Contextual vector quantization (CVQ) compresses the medical ultrasound (US) images [25] . Contextual region is defined as a region containing the most important information and must be encoded without considerable quality loss. Attempts are made to encode this region with high priority and high resolution CVQ algorithm. Huanga, Wanga and Chen proposed a dynamic learning vector–scalar quantization for compression of ECG image by forming DWT coefficients into tree vector (TV) and on which vector–scalar quantization is performed [26] . Tripathy, Dash and Tripathy proposed a network layout optimization based on dynamic programming using optimization techniques [27] . Tsolakis et al. (in 2012) proposed a Fuzzy vector quantization for image compression based on competitive agglomeration and a novel codeword migration strategy [28] . George et al. proposed an improved batch fuzzy learning vector quantization for image compression [29] . Tsekouras (in 2005) proposed a fuzzy vector quantization by assigning an input vector to more than one codeword based on the crisp relation [30] . Tsolakis et al. developed a fast fuzzy vector quantization for gray scale image compression by combining three different learning modules. Those are: 1. Remove codewords that are affected by a specific training pattern; 2. Reduce the number of training patterns; 3. Codewords of small clusters have moved to the neighborhood of large ones [31] .
Bat algorithm (BA) is a nature inspired Metaheuristic algorithm developed by Yang in 2010 [32] . There is functional similarity between bat algorithm and radio detection and ranging (RADAR). The radar works based on examination of reflected signals/echo signal from the object. Similarly, the basic idea behind Bat algorithm is an echolocation feature of micro bats. Bat algorithm is based on the echolocation behavior of micro bats with varying pulse rates of emission and loudness. The bat emits some sounds with different pulse rate and loudness. These sound signals are reflected back from objects called echo signals. With these echo signals, bats can determine the size of the object and distance to object, speed of the object and even their texture in fractions of a second because of their sophisticated sense of hearing. Frequency tuning, automatic zooming and parameter control features helps the Bat algorithm to be efficient and speedy. Also Bat algorithm is simple and flexible. A detailed comparison of bat algorithm with LBG, PSO, QPSO, HBMO and FA for image compression with vector quantization is given in Table 5 , Table 6 , Table 7 , Table 8 , Table 9 , Table 10 , Table 11 and Table 12 and Fig. 6 , Fig. 7 , Fig. 8 , Fig. 9 , Fig. 10 , Fig. 11 , Fig. 12 , Fig. 13 , Fig. 14 and Fig. 15 . From comparison, we conclude clearly that BA has advantages over other algorithms. Along with optimization problems [33] , Bat algorithm can also be applied to classification, clustering, data mining [34] , image matching [35] , Fuzzy logic [36] , and parameter estimation [37] problems.
This paper is organized into five sections including the introduction. In section 2 , recent methods of codebook design are discussed along with their algorithms. The proposed method of BA-LBG algorithm is presented with the procedures in section 3 . The results and discussions are given in section 4 . Finally, the conclusion is given in section 5 .
As discussed in section 1 , the major important technique for image compression is Vector Quantization (VQ), which is to be optimized. The Vector Quantization (VQ) is one of the block coding technique for image compression. Codebook design is an important task in the design of VQ that minimizes the distortion between reconstructed image and original image with less computational time. Fig. 1 shows the encoding and decoding process of vector quantization. The image (size Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://test.scipedia.com:8081/localhost/v1/":): {\textstyle N\times N}
), to be vector quantized, is subdivided into Nb Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://test.scipedia.com:8081/localhost/v1/":): {\textstyle \left(\frac{N}{n}\times \frac{N}{n}\right)} blocks with size n × n pixels. These divided image blocks or training vectors of size n × n pixels are represented with Xi (i = 1, 2, 3,…,Nb ) . The Codebook has a set of code words, where Ci (i = 1…NC) is the ith codeword. The total number of codewords in Codebook is Nc . Each subdivided image vector is (approximated) represented by the index of a codeword based on the minimum Euclidean distance between the corresponding vector and code words. The encoded results from the index table. During the decoding procedure, the receiver uses the same codebook to translate the index back to its corresponding codeword for reconstructing the image. The distortion D between training vectors and the codebook is given as
|
( 1) |
Subject to the following constraints:
|
( 2) |
uij is one if Xi is in the jth cluster, otherwise zero.
|
Fig. 1. Encoding and decoding process of vector quantization. |
Two necessary conditions exist for an optimal vector quantizer.
|
( 3) |
|
( 4) |
where Nj is the total number of vectors belonging to Rj .
The most commonly used methods in VQ are the Generalized Lloyd Algorithm (GLA) which is also called Linde–Buzo–Gray (LBG) algorithm. The algorithm is as follows:
The distortion becomes smaller after recursively executing the LBG algorithm. Actually, the LBG algorithm can guarantee that the distortion will not increase from iteration to the next iteration. However, it cannot guarantee the resulting codebook will become the optimum one, and the initial condition will significantly influence the results. Therefore, in the LBG algorithm, we should pay more attention to the choice of the initial codebook.
The PSO was proposed by Kennedy and Eberhart in the year 1995 [38] . It is based on social behavior of bird flocking or fish schooling. There are two categories of PSO models: gbest and lbest models. PSO gbest model was used by Chen, Yang and Gou [39] to design a codebook for vector quantization by initializing the result of a LBG algorithm as gbest particle so that it will increase the speed of convergence of PSO. In PSO, particles (or codebooks) alter their values based on their previous experience and the best experience of the swarm to generate a best codebook. The structure of codebook for optimization techniques with size Nc and length Nb is shown in Fig. 2 . Here, codebook is assumed as particles. The PSO algorithm follows:
|
( 5) |
|
( 6) |
|
( 7) |
Where k is the number of solutions, i is position of the particle, c1 , c2 are cognitive and social learning rates respectively. r1 and r2 are random numbers.
|
Fig. 2. The structures of codebook in Swarm optimization techniques (a) The first codebook (Nc × Nb ); (b) the (n − k)th , codebook (Nc × Nb ) (c) The nth codebook (Nc × Nb ). |
Unlike PSO, the QPSO computes the local point Pi[8] from the pbest and gbest for ith codebook according to Equation (8) .
|
( 8) |
Furthermore, two parameters, u and z , are defined to update the position of the particle associated with the local point. To sum up, the three parameters are used to update the particle. Here, codebook is assumed as particle. The detail algorithm
|
( 9) |
|
( 10) |
|
Where z is non-negative constant and is less than Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://test.scipedia.com:8081/localhost/v1/":): {\textstyle 1/ln\sqrt{2}}
and t is the current iteration time.
Many algorithms are proposed by the researchers based on the behavior of honey bees [40] . These algorithms are mainly divided in two categories according to their behavior in the nature, the foraging behavior and the mating behavior. Based on the foraging behavior of the bees, the Artificial Bee Colony (ABC) Algorithm was proposed by Karaboga and Basturk [41] , Honey Bee Mate optimization (HBMO) is based on mating process of honey bees [42] . Here, codebooks are assumed as Bees. The detailed algorithm for vector quantization is as follows:
|
( 11) |
|
( 12) |
|
( 13) |
|
( 14) |
where β and α are random numbers ranged between 0 and 1.
Honey Bee Mate optimization (HBMO) techniques performance is based on many parameters, i.e. many interdependent parameters are required to tune for efficient codebook design, and its a difficult task for the researchers. So, the Firefly algorithm (FA) was introduced by Yang (in 2008) [43] . The FA is inspired by the flashing pattern and characteristics of fireflies. The brightness of a firefly is equal to objective function value. The lighter firefly (lower fitness value) moves towards brighter firefly (higher fitness value). Here, codebooks are assumed as fireflies. FF-LBG algorithm is faster than the PSO, QPSO and HBMO algorithms and the reconstructed images get higher quality than those generated from the LBG, PSO and QPSO, but it is no significant superiority to the HBMO algorithm. The detailed FA algorithm is given below.
|
( 15) |
Here, Xi is randomly selected codebook, Xj is brighter codebook
|
( 16) |
|
( 17) |
where uij is random number between 0 to1, k = 1,2,…,Nc , h = 1,2,…,L.
|
( 18) |
PSO and Quantum PSO generate an efficient codebook but undergo instability in convergence when particle velocity is of very high value [44] . HBMO algorithm provides a near optimum codebook in a limited runtime period. Firefly algorithm (FA) was developed to generate near global codebook, but it experienced a problem when no such significant brighter fireflies are found in the search space [45] . So we developed a Bat algorithm (BA) that gives a global codebook with minimum number of iterations and with two tuning parameters (loudness and pulse rate). It is a nature inspired metaheuristic algorithm developed by Yang in 2010. Bat algorithm works with the three assumptions: 1) All bats use echolocation to sense distance, and they also ‘know’ the difference between food (called prey) and background barriers in some magical way; 2. Bats fly randomly with velocity Vi at position Xi with a fixed frequency Qmin , varying wavelength λ and loudness A0 in search for prey. They can automatically adjust the wavelength (or frequency) of their emitted pulses and adjust the rate of pulse emission r € [0, 1], depending on the proximity of their target; 3. Although the loudness can vary in many ways, we assume that the loudness varies from a large (positive) A0 to a minimum constant value Amin . Intensification (local search/local optimum) of the algorithm is attained with pulse rate and diversification (global search/local optimum) is attained with loudness parameter [46] . The structure of the codebook is as shown in Fig. 2 . Here, codebooks are assumed as Bats. Bat algorithm works with the calculation of distance between bat and object, the position of the bat and the frequency of a bat. To calculate the frequency of bat, let us consider the codebook C and the number of bats are {B1, B2,…,Bk,…,Bn }. Each codebook is considered as one bat. Let us denote the frequency of a sound as Q for a bat B . The frequency Qk of bat Bk can be achieved by Eq (19) . Where R1 is the pulse rate used to control the frequency Qk of bat Bk , and when it reaches near or far from the object, the value of R1 is auto adjusted in each iteration by Eq. (23) .
|
( 19) |
The Distance S of the object z from bat Bk is calculated by multiplying Ck with some random weight value multiplied by Qk for each object z .
|
( 20) |
In Eq (20) , w is a step size of random walk. After calculating the error by Eq (21) , the bat position can be changed by Eq (22) .
|
( 21) |
|
( 22) |
When bat starts flying, it assumes that the position is initialized to zero. Its position keeps on changing when it reaches nearer to the object. As closer it moves to the pray, error Ek and position Xk reduces to zero. Update frequency Q and step size for random walk w after change of position of bat. As the bat reaches nearer to its object the frequency starts reducing. This can be achieved by controlling the value of R1 in Eq (19) by using Eq (23) . R2 is a constant treated as the bat learning parameter
|
( 23) |
|
( 24) |
Where u is random number.
The flow chart of Bat algorithm is as shown in Appendix . The detailed Bat algorithm is as follows:
|
( 25) |
|
( 26) |
|
( 27) |
|
( 28) |
Here, w is the step size for random walk which is selected randomly within 0 to 1.
In section three, we discussed different optimization techniques for vector quantization. In this section, we carried out computational experiments to show the effectiveness of our newly proposed BA-LBG method. The empirical experiments are performed on Windows XP PC with an Intel (R) Core (TM) i5-2540 Machine with 2.60 GHz CPU, and 2.94 GB of RAM. Moreover, all the programs are written and compiled on MATLAB version 7.9.0 (R2009b). We have chosen five tested images: “LENA”, “BABOON”, “PEPPER”, “BARB” and “GOLDHILL” for comparison of bat algorithm with other algorithms, as shown in Fig. 3 and Fig. 4 respectively. All the images are grayscale images of size 512 × 512 pixels. Among all the images, pepper is “.png” format and remaining images are “jpg” format. The images are compressed with BA-LBG, FA-LBG, HBMO-LBG, QPSO-LBG, PSO-LBG and generalized Lloyd algorithm (LBG). As discussed in section 2 , the image to be compressed is subdivided into non-overlapping images with size 4 × 4 pixels. Each subdivided image is treated as a training vector with (4 × 4) 16 dimensions. So there are 16384 Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://test.scipedia.com:8081/localhost/v1/":): {\textstyle \left(\frac{512}{4}\times \frac{512}{4}\right)}
training vectors to be encoded.
|
Fig. 3. The five test images: (a) LENA, (b) BABOON, (c) PEPPERS, (d) BARB and (e) GOLDHILL. |
The parameters used for comparison of proposed bat algorithm with others are bitrate/bits per pixel, Peak Signal to Noise Ratio (PSNR) and Mean Square Error (MSE) as given in Eqs. (29) , (30) and (31) respectively. PSNR and fitness values are calculated for all the images with different codebook sizes of 8, 16, 32, 64, 128, 256, 512 and 1024. We use bpp (bit per pixel) to evaluate the data size of the compressed image for various codebook sizes of 8, 16, 32, 64, 128, 256, 512 and 1024. We then use the PSNR (peak signal-to-noise ratio) to evaluate the quality of the reconstructed image.
|
( 29) |
Where Nc is codebook size and k is non-overlapping image block size (4 × 4)
|
( 30) |
Where (MSE) which is given by the equation
|
( 31) |
Where M × N is the size of the image, i and j represents the pixel coordinates of original and decompressed images. In our experiment, we have taken N = M , that means a square image. Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://test.scipedia.com:8081/localhost/v1/":): {\textstyle f\left(i,\mbox{ }j\right)}
is an original image and Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://test.scipedia.com:8081/localhost/v1/":): {\textstyle \overline{f}\left(i,\mbox{ }j\right)} is a reconstructed image of size 512 by 512 each. The Bat algorithm parameter values used for simulating the images are chosen based on the maximum of average PSNR of experiments being performed (three times in our case) and are shown in Fig. 4 . From experimental observations, we selected Loudness = 0.7 and Pulse rate = 0.2 parameters values for later experiments. But the step-size of random walks = 0.19 is selected randomly. BA can use echolocation or frequency tuning for problem solution, but experimentally it is observed that for vector quantization BA works well with frequency tuning instead of echolocation. The parameters used for simulating PSO-LBG, HBMO-LBG, FA-LBG and BA-LBG are tabulated in Table 1 , Table 2 , Table 3 and Table 4 . All the experiments are performed three times. To understand the performance of proposed method, we have drawn the graphs of average peak signal to noise ratio (PSNR) of each method against bitrate (BR). Fig. 5 , Fig. 6 , Fig. 7 , Fig. 8 and Fig. 9 shows the average peak signal to noise ratio of different tested images against bitrate. Experimentally, it is shown that bat algorithm improves the PSNR values by around 0.2 dB at low bit rates and 0.5 dB at higher bit rates. Bat algorithm PSNR is better even for pepper image which has low spatial frequency components. Experimentally, it is observed from the graphs that for different codebook sizes, bat algorithm PSNR value is better than LBG, PSO-LBG, QPSO-LBG, HBMO-LBG and FA-LBG. These graphs reveal that for all algorithms PSNR value is better than the LBG algorithm.
|
Fig. 4. Average PSNR of LENA image being performed 5 times for selection of parameter (a) loudness (b) pulse rate. |
Parameter | Explanation | Value |
---|---|---|
S | Number of particles | 30 |
iter | Number of iterations | 20 |
l | Random numbers | [0,1] |
r1 | Random number | [0,1] |
r2 | Random number | [0,1] |
z | Non-negative constant | 0.9 |
Lb | Lower limit | 0 |
Ub | Upper limit | 255 |
Parameter | Explanation | Value |
---|---|---|
Number of queens | 1 | |
M | Number of drones | 30 |
c | Number of threshold | 2 |
L | The grayscale of image | 255 |
iter | Number of iterations | 20 |
a | Speed reduction schema | 0.98 |
nsperm | Capacity of spermatheca | 50 |
S (0) | Speed of queen at first of flight | [0.5, 1] |
Pc | The breeding ratio | 0.8 |
Pm | Mutation ratio | 0.01 |
e | Mutation variation | 0.5 |
Parameter | Explanation | Value |
---|---|---|
n | Population size | 30 |
itrer | Iterations | 20 |
α | Alpha | 0.01 |
β0 | Beta minimum | 1 |
γ | Gamma | 1 |
Ub | Upper limit | 255 |
Lb | Lower limit | 0 |
Parameter | Explanation | Value |
---|---|---|
n | Population size | 30 |
iter | Iterations | 20 |
A | Loudness | 0.7 |
R | Pulse rate | 0.2 |
Qmin | Frequency minimum | 20 |
Qmax | Frequency maximum | 38 |
Lb | Lower limit | 0 |
Ub | Upper limit | 255 |
Q | Initial frequency | 0 |
V | Initial velocity | 0 |
W | Step sizes of random walk | 0.19 |
|
Fig. 5. The average PSNR of six vector quantization methods for LENA image. |
|
Fig. 6. The average PSNR of six vector quantization methods for BABOON image. |
|
Fig. 7. The average PSNR of six vector quantization methods for PEPPER image. |
|
Fig. 8. The average PSNR of six vector quantization methods for BARB image. |
|
Fig. 9. The average PSNR of six vector quantization methods for GOLDHILL image. |
Table 5 , Table 6 , Table 7 , Table 8 , Table 9 , Table 10 , Table 11 and Table 12 shows the average computation time or convergence time of different algorithms with different bitrates. Horng and Jiang in his paper [18] simulated the five algorithms in ‘C++6.0’ with windows XP operating systems, number of codebooks/solutions 100 and iterations 50. Whereas we simulated the six algorithms in MATLAB with codebooks 30 and iterations 20, so there is some dissimilarity of average computational time between proposed BA-LBG and FA-LBG. The C++ computation time is 10 to 100 times faster than MATLAB when numbers of instruction lines are more than 50 to 100 [47] . In similar Ming-Huwi Horng in his paper [19] simulated the five algorithms in MATLAB with 100 iterations. As we run all the algorithms in MATLAB with 30 solutions and 20 iterations, there is small dissimilarity in computational time between proposed BA-LBG and FA-LBG. From the observations of table LBG algorithm, computational time is very less compared to all other algorithms, but has lesser PSNR and bad reconstructed image. The average computation time of Bat algorithm is around 1.841 times faster than the firefly algorithm and honey bee mate optimization techniques. Automatic zooming feature of BA helps to reduce the convergence time of codebook design for vector quantization. As the convergence speed of Bat algorithm is fast, it is applied to design a fast codebook for vector quantization. So we call bat algorithm as one of the fastest vector quantization codebook search algorithm. The average computation time of bat algorithm is almost similar to that of PSO and QPSO. The normal fitness values of the five experiment images by using the six vector quantization algorithms are shown in Fig. 10 , Fig. 11 , Fig. 12 , Fig. 13 and Fig. 14 . These investigations confirmed that the fitness of the five test images using the BA-LBG algorithm is higher than the LBG, PSO-LBG, QPSO-LBG, HBMO-LBG and FA-LBG algorithm. Fig. 15 , Fig. 16 , Fig. 17 , Fig. 18 and Fig. 19 shows the six vector quantization methods, decompressed five test images with codebook size 256 and block size 16. It is observed that the reconstructed image quality of the BA-LBG algorithm has superior quality than the LBG, PSO-LBG, QPSO-LBG, HBMO-LBG and FA-LBG algorithms.
Codebook size: 8 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 3.371542 | 254.357919 | 261.299374 | 890.254347 | 877.123889 | 323.150506 |
PEPPER | 3.416869 | 247.181509 | 252.652972 | 676.344334 | 660.141175 | 276.213142 |
BABOON | 4.313500 | 322.996476 | 326.493443 | 723.897865 | 705.210035 | 271.339974 |
GOLDHILL | 3.622867 | 247.211833 | 346.986628 | 681.978545 | 661.281546 | 298.879569 |
BARB | 3.843362 | 257.520535 | 268.403187 | 654.976675 | 631.435366 | 317.623761 |
Average | 3.713628 | 265.8536544 | 291.1671208 | 725.4903532 | 707.0384022 | 297.4413904 |
Codebook size: 16 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 3.405184 | 252.001592 | 267.208254 | 528.995495 | 507.183026 | 255.030922 |
PEPPER | 4.575627 | 250.411978 | 253.430517 | 567.656548 | 534.304628 | 323.788582 |
BABOON | 4.537825 | 321.669194 | 333.844743 | 952.324245 | 943.362724 | 335.664621 |
GOLDHILL | 4.907262 | 318.004351 | 376.746590 | 589.097844 | 574.986090 | 261.008145 |
BARB | 4.391757 | 264.414665 | 312.586584 | 745.876776 | 737.332125 | 328.523493 |
Average | 4.363531 | 281.300356 | 308.763337 | 676.790181 | 659.433718 | 300.803152 |
Codebook size: 32 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 5.262231 | 306.532039 | 318.314149 | 761.346655 | 710.810851 | 343.742084 |
PEPPER | 6.241595 | 338.618858 | 272.908139 | 571.875346 | 594.783631 | 347.997686 |
BABOON | 5.171656 | 272.346143 | 289.707195 | 726.638634 | 723.566566 | 319.597288 |
GOLDHILL | 4.481844 | 277.087057 | 313.025201 | 779.098764 | 755.606849 | 279.303908 |
BARB | 6.675448 | 281.853149 | 315.750745 | 896.897654 | 877.698960 | 281.087256 |
Average | 5.5665548 | 295.2874492 | 301.9410858 | 747.1714106 | 732.4933714 | 314.3456444 |
Codebook size: 64 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 4.958598 | 311.440476 | 320.119462 | 745.345347 | 711.452695 | 320.128532 |
PEPPER | 5.768537 | 305.034406 | 305.952327 | 636.967533 | 633.629908 | 315.600282 |
BABOON | 6.728556 | 314.850105 | 323.926381 | 775.232423 | 768.088085 | 395.513511 |
GOLDHILL | 8.795603 | 382.040368 | 391.577189 | 968.356788 | 934.453184 | 394.381707 |
BARB | 11.21273 | 308.216570 | 312.251758 | 874.778777 | 846.853926 | 395.330121 |
Average | 7.4928048 | 324.316385 | 330.7654234 | 800.1361736 | 778.8955596 | 364.1908306 |
Codebook size: 128 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 11.888536 | 522.284262 | 534.054431 | 889.324333 | 866.079748 | 515.178820 |
PEPPER | 16.421532 | 507.584419 | 570.995410 | 957.734356 | 914.451402 | 527.300916 |
BABOON | 19.623416 | 405.582369 | 465.000805 | 964.673393 | 920.112334 | 836.092615 |
GOLDHILL | 15.216410 | 697.720161 | 718.694109 | 1180.36544 | 1122.441935 | 419.510528 |
BARB | 27.346822 | 521.941565 | 531.267813 | 1164.09897 | 1145.650131 | 506.671338 |
Average | 18.0993432 | 531.0225552 | 564.0025136 | 1031.239298 | 993.74711 | 492.1654005 |
Codebook size: 256 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 20.913288 | 875.945256 | 894.622455 | 799.356456 | 789.138474 | 665.040551 |
PEPPER | 18.116559 | 750.584419 | 750.584419 | 997.987876 | 972.207816 | 567.219080 |
BABOON | 28.028078 | 594.620811 | 563.620811 | 1011.56545 | 1032.44629 | 567.649493 |
GOLDHILL | 29.701560 | 924.444311 | 556.342111 | 843.534555 | 827.919726 | 974.396983 |
BARB | 27.619608 | 683.999751 | 692.899838 | 840.246767 | 830.791279 | 591.144534 |
Average | 24.8758186 | 765.9189096 | 691.6139268 | 898.5382208 | 890.500717 | 699.450287 |
Codebook size: 512 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 56.316994 | 1156.908559 | 1196.316994 | 1790.444554 | 1716.80639 | 1342.511572 |
PEPPER | 82.002117 | 1950.230780 | 1851.809192 | 1387.908655 | 1357.86469 | 1112.212354 |
BABOON | 63.433322 | 2010.197209 | 2187.580293 | 2178.565466 | 2212.438038 | 2458.561205 |
GOLDHILL | 77.850099 | 1291.175546 | 1332.753876 | 2116.445100 | 2126.344435 | 1960.104396 |
BARB | 115.21079 | 1296.291040 | 1123.215648 | 1396.123567 | 1386.554184 | 1102.154651 |
Average | 78.9626644 | 1540.960627 | 1538.335201 | 1773.897468 | 1760.001547 | 1595.108836 |
Codebook size: 1024 | ||||||
---|---|---|---|---|---|---|
Image | Average computation time (sec) | |||||
LBG | PSO-LBG | QPSO-LBG | HBMO-LBG [[#bib0095|[18]]] | FF-LBG [[#bib0100|[19]]] | BA-LBG | |
LENA | 145.725844 | 3422.799272 | 3518.889707 | 4290.667555 | 4229.809396 | 3511.563824 |
PEPPER | 140.346789 | 2262.336878 | 2558.192815 | 2773.786877 | 2723.738130 | 1892.857151 |
BABOON | 156.576716 | 3376.804469 | 3386.370076 | 3914.987866 | 3848.840251 | 3917.097539 |
GOLDHILL | 181.405248 | 2594.207355 | 2624.493640 | 2854.564565 | 2842.180938 | 1485.623620 |
BARB | 211.115436 | 2847.841612 | 2826.772350 | 2254.343435 | 2221.664446 | 2131.103154 |
Average | 167.0340066 | 2900.797917 | 2982.943718 | 3217.67006 | 3173.246632 | 2587.649058 |
|
Fig. 10. The average fitness values of six vector quantization methods for LENA image. |
|
Fig. 11. The average fitness values of six vector quantization methods for BABOON image. |
|
Fig. 12. The average fitness values of six vector quantization methods for PEPPERS image. |
|
Fig. 13. The average fitness values of six vector quantization methods for BARB image. |
|
Fig. 14. The average fitness values of six vector quantization methods for GOLDHILL image. |
|
Fig. 15. Decompressed BARB image of six VQ techniques with codebook size of 256 (a) LBG (b) PSO-LBG, (c) QPSO-LBG (d) HBMO-LBG (e) FA-LBG (f) BA-LBG. |
|
Fig. 16. Decompressed BABOON image of six VQ techniques with codebook size of 256 (a) LBG (b) PSO-LBG, (c) QPSO-LBG (d) HBMO-LBG (e) FA-LBG (f) BA-LBG. |
|
Fig. 17. Decompressed GOLDHILL image of six VQ techniques with codebook size of 256 (a) LBG (b) PSO-LBG, (c) QPSO-LBG (d) HBMO-LBG (e) FA-LBG (f) BA-LBG. |
|
Fig. 18. Decompressed LENA image of six VQ techniques with codebook size of 256 (a) LBG (b) PSO-LBG, (c) QPSO-LBG (d) HBMO-LBG (e) FA-LBG (f) BA-LBG. |
|
Fig. 19. Decompressed PEPPER image of six VQ techniques with codebook size of 256 (a) LBG (b) PSO-LBG, (c) QPSO-LBG (d) HBMO-LBG (e) FA-LBG (f) BA-LBG. |
In this paper, a Bat algorithm based vector quantization has been proposed for image compression. The Peak signal to noise ratio of vector quantization is optimized by employing BA technique. The algorithm has been investigated by varying all possible parameters of Bat algorithm for efficient codebook design and efficient vector quantization of training vectors. Intensification and diversification of the algorithm are achieved with Frequency-tuning and loudness parameter respectively. It is observed that the Bat algorithm peak signal to noise ratio and quality of the reconstructed image is superior to LBG, PSO-LBG, QPSO-LBG, HBMO-LBG and FA-LBG. From the simulation results, it is observed that BA-LBG is around 1.841 times faster convergence rate than that of the HBMO-LBG and FA-LBG. However, The BA-LBG algorithm requires some additional parameters compared with that of the PSO-LBG, QPSO-LBG and FA-LBG.
Published on 07/04/17
Licence: Other
Are you one of the authors of this document?