A Novel Index Coding Scheme for Vector Quantization - IOS Press

6 downloads 16532 Views 2MB Size Report
IOS Press. A Novel Index Coding Scheme for Vector Quantization. Chin-Chen Chang. Department of Information Engineering and Computer Science. Feng Chia ...
Fundamenta Informaticae 71 (2006) 215–227

215

IOS Press

A Novel Index Coding Scheme for Vector Quantization Chin-Chen Chang Department of Information Engineering and Computer Science Feng Chia University Taichung, Taiwan 407, R.O.C. [email protected]

Guei-Mei Chen Department of Computer Science and Information Engineering, National Chung Cheng University Chiayi, Taiwan 62107, R.O.C. [email protected] 

Yu-Chen Hu Department of Computer Science and Information Engineering, Providence University Taichung, Taiwan 433, R.O.C. [email protected]

Abstract. A novel method for the compression of the index table of vector quantization (VQ) is proposed in this paper. This method is designed based on the observation that neighboring image blocks are highly correlated. In other words, VQ-encoded neighboring image blocks tend to have similar indices if the codebook used in VQ is previously sorted by the principal component analysis technique. According to this characteristic, we find the same or similar indices around the current processing index to process it. In addition, the pre-statistics technique is employed to gather differences that appear most often in the index table. Simulation results indicate that the newly proposed scheme achieves significant reduction of bit rate without losing any image quality by the original VQ encoding. 

Also works: Department of Computer Science and Information Engineering, National Chung Cheng University, Chiayi, Taiwan 62107, R.O.C. Address for correspondence: Department of Computer Science and Information Engineering, Providence University, Taichung, Taiwan 433, R.O.C. 

216

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

1. Introduction The vector quantization (VQ) scheme has been found to be an effective scheme for the compression of speech signals and images [1, 4]. Before the compression procedure is performed, the VQ scheme trains some representative vectors (i.e. codewords), which is known as a codebook. In the compression process, the closest codeword in the codebook for each image vector of a given image is determined, and the corresponding index of this closest codeword is transmitted to the decoder. Note that these indices in turn compose an index table corresponding to this image. In the decoding process, the same codebook used in the encoder is stored and used in the decoder. The decoder can reconstruct each compressed image vector according to the received index using a codebook look-up procedure. After each index in the index table is sequentially used to reconstruct its corresponding encoded image vector, the whole compressed image can then be made available. In general, the VQ scheme can be roughly classified into two categories: memoryless VQ and memory VQ [5, 11]. In a memoryless VQ, each image block is encoded independently, while its corresponding index is sent to the decoder. In other words, it ignores a high correlation between neighboring image blocks. Some approaches for improving the compression rate of memoryless VQ are the use of standard coding schemes, such as Huffman coding [8], to compress the index table. In addition, some other schemes, such as search-order coding (SOC) [7], predictive mean search algorithm (PMS) [10], indexcompressed VQ (ICVQ) [16], and search-order plus correction code (SOPCC) [13] that explores the inter-index correlation to achieve this goal, have also been introduced. This means that these techniques improve the compression rate again in the index domain rather than in the pixel domain. On the other hand, a memory VQ exploits the inter-block (i.e. pixel domain) correlation to encode image blocks for improving the compression rate. Several related techniques have been proposed, such as predictive VQ (PVQ) [6], where the previously encoded blocks are used to predict the next block, address VQ (AVQ) [15], finite-state VQ (FSVQ), and dynamic finite-state VQ (DFSVQ) [14, 17]. FSVQ uses the previously encoded blocks to make a selection only from the sub-codebook. Hence some additional coding distortion may occur. The major difference between DFSVQ and FSVQ is that in DFSVQ, a large codebook, called a super-codebook, is designed, and for encoding each input vector, a sub-codebook of a much smaller size is generated. Therefore, the problem of designing separate sub-codebooks for each state is avoided in DFSVQ. But in fact, most of the memory VQ schemes are very complicated and require more computational cost than memoryless VQ. In this paper, we propose a lossless index compression scheme to reduce the bit rate by exploiting the indices similarity. The concept of the SOC scheme [7] is exploited to design the newly proposed method. Also, the principal component analysis (PCA) technique [2, 9] is employed to rearrange the order of the codewords in a codebook. This action lets more indices with values that are close appear near to each other in the index table and thus improves the compression rate. Furthermore, our scheme uses the concept of pre-statistics to compute the probability that the difference between each index and the mean of its left adjacent index and upper index occurs in advance. Generally, if the probability can be known in advance, the variable length coding (VLC) technique, such as the well-known Huffman coding method [8], may be exploited to improve compression performance. But, in fact, the lower bound of bit rate that can be achieved by the VLC technique has been proven higher than the SOC technique [7]. We therefore use a fixed length coding method (i.e. the special difference codes) to represent some index differences that appear most often. The rest of this paper is organized as follows. In Section 2, we shall review some related works, including the PCA technique [9] and the SOC algorithm [7]. In Section 3,

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

217

the newly proposed scheme shall be described in detail. Then the comparative experimental results shall be given in Section 4. Finally, some conclusions shall be given in Section 5.

2. Related Works The PCA technique [9] is a multi-variant data analysis technique. We will briefly describe the concept of PCA in Subsection 2.1. In addition, the SOC algorithm [7] shall be briefly described in Subsection 2.2.

2.1. The Principal Component Analysis (PCA) Technique The PCA technique is a multi-variant data analysis technique in which the set of multi-variant data is transformed into a smaller set of uncorrelated variables, called principal components. The maximally variances among original data are preserved through the projection operation to the principal components. The dimensionality of the original data is reduced and the variance is preserved. It is usually used to simplify description retrieval, pattern recognition, and multi-dimensional sorting, etc. In the following paragraph, we will describe how to sort the multi-dimensional vectors by using the first principal component of the PCA. It is to find a special axis onto which all multi-dimensional vectors can be projected while their original characteristics are kept. Sorting of all multi-dimensional vectors can be done according to their projection points on the special axis. The detailed descriptions are given in the following.      , each vector The output is For given multi-dimensional vectors  is of  dimensions.         #"$   % to find a special projection axis    , where       such that (! ) can be projected onto  , and all projected points must keep their original largest differences between each other. Lee et al. [9] introduced an algorithm to solve the above problem by using the concept of PCA. The procedure is as follows: Algorithm of PCA:      Input: Multi-dimensional vectors In other words, each '(  '( %   , each '( vector is #of"$  dimensions.  

% vector can be expressed as '& & &   for ) .  Output: First principal component direction



Step 1: Normalize the multi-dimensional vectors Step 2: Compute the covariance matrix #"$   % (! ).

+

 

         , where      *

’s (!

#"$   %

.

).

according to all normalized multi-dimensional vectors

 

’s

 %   

Step 3: Find all eigenvalues of the covariance matrix + and denote them as , , ,  , where .- /-0   1      , ,       ,  . Then compute   2 which are the corresponding eigenvectors of , , ,  .

5-6   7 -





     

4-

. Here  3   keeps the greatest original characteristics (since , , ,  ) than the others do. This is the special axis, which is called the first principal component direction.

Step 4: Output

218

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

Algorithm for Sorting Multi-Dimensional Vecotrs Axis: '(  the '(  First '(   Using     Principal Step 1: For each given multi-dimensional vector , where )'   '  & & &

  (         pute its'projected point onto         

  by using the expression &

   ( &   .

#"$   %   '(   &

, com-





Step 2: Sort the multi-dimensional vectors according to their projection points.

2.2. Review of the Search-Order Coding Algorithm The search-order coding (SOC) scheme [7] was proposed to reduce the bit rate of VQ. It exploits the inter-index correlation to compress the index table. It also uses the characteristic: an image is generally encoded block by block in a raster scan order, that is, from left to right and from top to bottom, so that an index table can be generated. The idea behind this scheme is that it searches the previously generated VQ indices and sends the corresponding search-order codes to the decoder if any previous index matches the current index. In other words, it replaces the current index by the previous index that is efficiently represented by the search-order codes. The search-order codes are binary representations and must be less than the index for the compression process to be achieved. Now the problems are how to find the same one of the previous indices with the current index and how to generate the search-order codes.

Figure 1. Search paths of SOC (a) Search direction = 1 (b) Search direction = 4

In an index table, which is generated from left to right and from top to bottom, each current encoding index is denoted as a search center (SC). For example, there are two 7 7 index tables in Figure 1, and the black dot is the SC, namely, the current encoding index. These two tables signify two different search paths for searching a matching point with the SC. And the search directions shown in Figure 1 were defined in Figure 2. A matching point is found when this point’s index value is equal to that of the current index. The solid boundary squares are the search points (SP) that are already encoded and sent to the receiver. On the other hand, non-search points cannot be considered in a search path because they appear after the SC (since in the raster scan order). The main idea is to search the SP’s along the search " 

 

path (  level, level, , and so on) until the first matching point is found or none of the SP’s is matched. To start a search, we must first choose a starting search point (SSP), shown in Figure 2. There

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

219

are four search directions defined by the SOC algorithm. However, the experimental results showed that the selection of the SSP is not critical, because the resulting compression rates are approximately the same when different SSP’s are chosen. Once the SC and SSP have been determined, the search path in a clockwise direction, as shown in Figure 1, is run.

Figure 2. Four search directions with starting search points

First we search for four SP’s in the   level. If any matching point is found then the search-order "  level, and so on. If a matching codes are sent to the receiver. Otherwise, we continue to search the point can not be found, the original index value of the SC is sent. The search order is defined as the order in which an SP is compared with the SC. To differentiate the original index from the search-order codes by the decoder, an extra bit, called an    , is also sent to the decoder. Additionally, according to the characteristic of images, there are usually many repetition indices in the neighborhood of the SC. If they are excluded in a search path, this will make the algorithm more effective. For example, in Figure 3, we assume that the index of (3,3), which equals to 18, is the search center and the index of (3,2), which equals to 19, is the starting search point. A repetition point means that its index value is equal to the previous SP along the search path, such as the indices of (2,2) and (3,1), which are equal to 19 and 20, respectively. If they are not excluded, the matched index of (2,1), which equals to 18, will be lost in this search because the number of bits of the search-order codes,  , is limited ( = 2 in this example). In other words, the search-order codes are given only to the non-repetition points, and the exclusion of repetition indices will increase the probability of finding the matching point. So in such a case, the corresponding search-order codes of the SC, the index of (3,3), will be 11. The above processing steps can be used to process the indices having enough neighboring indices in most cases. But for the indices in the boundary of the index table, the exception handling process is required. To simplify the proposed scheme, those indices in the boundary of the index are transmitted directly. In the decoder, the indices are sequentially decoded in a raster scan order. According to the indicator of each point of the received compression codes, the decoder can distinguish search-order codes from the indices. Once the index table is recovered, we can use the traditional VQ codebook lookup procedure to reconstruct the image. Note that the SOC algorithm will not cause decoding distortion again.

3. The Proposed Scheme The goal of the proposed scheme is to reduce the bit rate of VQ by encoding the indices of VQcompressed blocks. The proposed scheme makes use of the index processing technique that was introduced by SOC and exploits the reorganization of codewords in the codebook. The SOC algorithm just

220

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

Figure 3. The 4 4 index table for showing the exclusion of repetition points

searches the same index value around the search center. However, it ignores the processing of similar indices around the search center. To increase the similarity of indices of VQ-encoded image blocks, the codebook used in the proposed scheme is reordered by using the PCA technique. Under such an arrangement, the neighboring VQ-encoded blocks of a given digital image will tend to have the same or similar index values. The scan order of indices in the index table is the raster scan order. In other words, the order of index processing is from left to right and from top to bottom. In the proposed scheme, all the indices in the index table can be classified into three groups. The first group contains the indices with compression codes that can be represented by the search-order codes. In addition, the indices in the second group are those that have been excluded from the first group and have differences appearing most often. Otherwise, all the other indices belong to the third group. This means that neither the same index in the predefined search order nor the similar indices can be found for each index in the third group. Note that in order to distinguish these three groups in the compression codes by the decoder, an additional indicator should be added in their compression codes. To encode each index in the index table, we first check whether this index belongs to the first group. The SOC algorithm is executed to search around the current index to find the same index value in the search order. If a same index value is found in the predefined search order, the current processing index is then classified into the first group. To encode the current index, a one-bit indicator plus the search-order codes are sent to the decoder as the compression codes of the current index. The indicator indicates that these search-order codes are generated from the SOC algorithm. If the current processing index does not belong to the first group, we then check whether this index belongs to the second group. Before the checking process is performed, the pre-statistics process should be executed first. The goal of the pre-statistics process is to collect differences that appear most often between each index and the mean value of its adjacent left index (ALI) and upper index (AUI) in the index table. This means that the difference value equals to the current index- (ALI+AUI)/2 . After the pre-statistics process is executed, a set of frequent difference values is obtained. Note that the set of frequent difference "  values will be inserted into the header of the total compression code. For example, we assume that kinds of difference values which appear most often are -4, -2, 1, 2 corresponding to 



Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

221

Figure 4. Example of storing frequent different values generated in the pre-statistics process

the special difference codes ”00”, ”01”, ”10 ”, ”11”, respectively. The special difference codes indicate that the order of differences placed in the header is represented with binary values. So we insert -4, -2, " 1, and 2 into the header of the total compression code, as shown in Figure 4.  bits (3 bits can be used to represent the integers ranged from -4 to 3) are appended to the header in this example. To determine whether the current processing index belongs to the second group, the difference value between this index and the mean value of its ALI and AUI is computed. If the computed value belongs to the set of frequent different values generated in the pre-statistics process, then this index is classified into the second group. To encode the current index, a two-bit indicator plus the special difference codes are sent to the decoder as the compression codes of the current index. If the current processing index does not belong to the first or second group, it is classified into the third group. To encode this index, a two-bit indicator plus the original index value are sent to the decoder. A detailed description of the proposed algorithm is given as follows:



The Proposed Algorithm Notations: (  ) an index table with 







   



indices.

   

the number of bits for an original index value. the indicator with the bit ”0”. Similarly, denotes ”11”.

 

 $



denotes the indicator with the bits ”10”.

the binary representation of the search-order codes in the first group, and its length is





    bits.



the binary representation of the special difference codes in the second group, and its length is " bits. Note that bits can be used to represent kinds of differences.



the length of difference with binary representation, and it denotes that the difference values " "  are ranged form to .

 



 



Algorithm: " Step 1: Pre-statistics is done in (  ). Gather the kinds of differences which appear most often "  bits to the header of the between every index and the mean of its ALI and AUI. Then append total compression codes. Step 2: Compress (  ) in the raster scan order. Aiming at the current index, check whether it is in Group 1 or not. If the return is successful, the corresponding compression codes     (a one-bit indicator plus the search-order codes) will be sent to the decoder. Step 3: Check whether it is in Group 2. If the return is successful, the corresponding compression codes     $ (a two-bit indicator plus the special difference codes) will be sent to the decoder.



 



 

222

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

Step 4: Finally, the current index is placed in Group 3. So the compression codes indicator plus the original index) will be sent. Step 5: Repeat Steps 2 to 4 until all the indices are processed.



   



(a two-bit

4. Experimental Results Several simulations using real images were carried out to evaluate the efficiency of the proposed lossless index compression scheme. Five standard images, Airplane, Boat, Lena, Sailboat and Toys, of 512 512 pixels with 256 gray levels, were used to train the codebooks using the well-known LBG algorithm [12]. Six original test images of 512 512 pixels are shown in Figure 5. Note that there are three images, Airplane, Lena and Toys, inside the training set, and the other ones, Girl, Peppers and Tiffany, outside the training set. In our experiments, the VQ codebooks of sizes 256, 512 and 1024, respectively, were used.

(a) Airplane

(d) Peppers

(b) Girl

(e) Tiffany

(c) Lena

(f) Toys

Figure 5. Original images of 512 512 pixels

The experimental results of the image quality of the VQ scheme using different codebook sizes are shown in Table 1. In the VQ scheme, the reconstructed image quality is better when a larger codebook is used. However, more computational cost is required. The results of the VQ-compressed images using a codebook of size 256 corresponding to the original images that are shown in Figure 5 are given in Figure 6. Generally, the size of each image block is pixels. In other words, the bit rates

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

223

Table 1. Experimental results of image quality of the VQ scheme using different sizes of codebooks (PSNR:dB)

Codewords

Airplane

Girl

Lena

Peppers

Tiffany

Toys

256 512 1024

30.5819 31.5776 33.2400

31.1740 31.9713 32.6237

31.3728 32.2483 33.2110

30.7279 31.4075 32.1460

30.3179 30.7335 31.1584

29.9204 31.1565 32.5420



 "











"







 "

of the traditional memoryless VQ scheme are  $   ,   $    , and  " 

 "    $    for the codebooks of sizes 256, 512 and 1024, respectively. In addition, the bit rate of the proposed scheme is given by

 













 

   & 



 



 



! "#  $%





where ')( ' *

  

',+

',+

 

',+.-

codebook size; image size; the same definitions as in Section 3; the total number of indices using search-order codes, special difference codes, and original index value as their compression codes, respectively.

In the proposed scheme, Table 2 shows an example in terms of the count of differences, where  the image is Lena and    = (5,6) with a codebook of 1024 codewords. Experimental results of bit rates of the SOC scheme, SOPCC, and the proposed algorithm using 256, 512, and 1024 codewords are shown in Tables 3, 4 and 5, respectively. While implementing SOC [7], we use search direction=1 and  =2 as the number of bits assigned to the search-order codes, since the authors pointed out that it results in minimum bit rates for all images in [7]. Similarly, the experimental parameters of SOPCC [13], according to the authors’ suggestion, are  = 1 and = 4, where  and are the length of a search-order code and a correction code, respectively. Furthermore, the search direction also equals to ”1” such as  SOC in our scheme here and    = (5,6). From the experimental results as shown in Tables 3, 4 and 5, it is not difficult to see that SOPCC does not guarantee outperforming than SOC. The reasons are stated below. When an image is encoded with a great number of indices, which are the same, we find that SOPCC is in an unfavorable situation because the length of its indicator used in the search-order codes is more than SOC. And according to experimental statistics, the case commonly occurs in the index tables of images by VQ encoding. So the SOPCC method is therefore sometimes worse than the SOC method. Comparing to the traditional







 " 0/   ), 32.64% ( 0 VQ system, our method reduces the bit rates 38.30% ( 0

01

 "

 "

 " /2 ), and 28.27% (   /  ) for codebooks of sizes 256, 512 and 1024, respectively. In fact, the newly proposed scheme provides the best performance in terms of bit rates. Finally, the comparisons between the proposed scheme and the Discrete Wavelet Transform (DWT) based image compression method such as SPIHT (Set Partitioning in Hierarchical Trees) [18, 19] are





 





    

    







224

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

(a) Airplane

(d) Peppers

(b) Girl

(e) Tiffany

(c) Lena

(f) Toys

Figure 6. Reconstructed image of 512 512 pixels of the proposed scheme

shown in Table 6. Note that the SPIHT method didn’t include arithmetic coding here. From this table, it is obvious that the bit rates of our scheme are less than SPITH while the similar PSNR are considered ( =32 in SPIHT).



5. Conclusions We have proposed a novel scheme to compress the VQ index table without losing any image quality by the original VQ encoding. This scheme does not search only the same index around the current index but also similar ones. In terms of finding the same index, compression is achieved by exploiting a proposed search-order coding method. And for similar indices, the differences are computed with relatively addressing technique. Additionally, in order to increase the compression rate, the PCA technique is exploited to rearrange the order of the codewords in a codebook. Comparing the traditional VQ system with our method, our algorithm can effectively reduce the bit rate about 30%. And when we compare SOC with our algorithm, we find that our method can further reduce the bit rate about 6%. Similarly, when we compare the SOPCC method with our algorithm, we find that ours can reduce the bit rate about 5%. In a word, we conclude that our method indeed outperforms than the traditional VQ encoding method, the SOC method as well as the SOPCC method.

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

225

Table 2. Example of 32 frequent difference values with their counts from the image Lena

Difference value Counts

-23 93

-20 101

-18 101

-17 101

-16 102

-15 109

-13 124

-11 132

Difference value Counts

-10 139

-9 143

-8 145

-7 148

-6 155

-5 162

-4 144

-3 127

Difference value Counts

-2 137

0 138

1 135

2 136

3 125

4 137

5 140

6 118

Difference value Counts

7 124

8 120

9 125

10 99

11 110

12 101

13 117

17 92

Table 3. Experimental results of bit rates of the proposed scheme and two other methods proposed previously using a VQ codebook with 256 codewords

Images

SOC[7]

SOPCC[13]

Our scheme

Airplane Girl Lena Peppers Tiffany Toys

0.3241 0.3769 0.3567 0.3510 0.2816 0.2680

0.3446 0.3744 0.3653 0.3604 0.3024 0.3024

0.3122 0.3540 0.3375 0.3306 0.2579 0.2589

Average

0.3264

0.3416

0.3085

Table 4. Experimental results of bit rates of the proposed scheme and two other methods proposed previously using a VQ codebook with 512 codewords

Images

SOC[7]

SOPCC[13]

Our scheme

Airplane Girl Lena Peppers Tiffany Toys

0.4331 0.4680 0.4523 0.4425 0.3476 0.3007

0.4125 0.4462 0.4323 0.4259 0.3448 0.3286

0.3984 0.4443 0.4183 0.4099 0.3120 0.2903

Average

0.4074

0.3984

0.3789

226

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

Table 5. Experimental results of bit rates of the proposed scheme and two other methods proposed previously using a VQ codebook with 1024 codewords

Images

SOC[7]

SOPCC[13]

Our scheme

Airplane Girl Lena Peppers Tiffany Toys

0.4925 0.5476 0.5484 0.5288 0.4087 0.3604

0.4551 0.5203 0.5242 0.5069 0.3794 0.3710

0.4481 0.5277 0.5184 0.4981 0.3542 0.3432

Average

0.4811

0.4595

0.4483

Table 6. Performance comparisons between the SPIHT method and our scheme using a VQ codebook with 256 codewords

Images

Airplane Girl Lena Pepper Tiffany Toys



SPIHT



PSNR

=64 Bit Rate

PSNR

=32 Bit Rate

28.24 27.89 28.24 28.63 29.44 28.53

0.2866 0.2443 0.2578 0.2594 0.2094 0.2796

31.77 30.81 31.40 31.86 32.19 32.21

0.4805 0.4459 0.4395 0.4277 0.3399 0.4603

Our scheme PSNR Bit Rate 30.58 31.17 31.37 30.73 30.32 29.92

0.3122 0.3540 0.3375 0.3306 0.2579 0.2589

References [1] Akrout, N., Prost, R., Goutte, G.: Image Compression by Vector Quantization: a Review Focused on Codebook Generation, Image and Vision Computing, 12(10), 1994, 627-637. [2] Chang, C. C., Lin, D. C., Chen, T. S.: An Improved VQ Codebook Search Algorithm Using Principal Component Analysis, Journal of Visual Communication and Image Representation, 8(1), 1997, 27-37. [3] Chang, C. C., Sung, C. H., Chen, T. S.:A Locally Adaptive Scheme for Image Index Compression, Proceedings of the 1997 Conference on Computer Vision, Graphics, and Image Processing, Taichung, Taiwan, 1997, 93-99. [4] Gray, M.: Vector Quantization, IEEE Transactions on Information Theory, 28,1982, 157-166. [5] Gray, R. M., Gersho, A.: Vector Quantization and Signal Compression, Norwell, MA: Kluwer Academic Publishers, 1992.

Ch.-Ch. Chang et al. / A Novel Index Coding Scheme for Vector Quantization

227

[6] Hang, H. M., Woods, J. M.: Predictive Vector Quantization of Images, IEEE Transactions on communications, 33, 1985, 1208-1279. [7] Hsieh, C. H., Tsai, J. C.: Lossless Compression of VQ Index with Search-Order Coding, IEEE Transactions on Image Processing, 5(11), 1996, 1579-1582. [8] Huffman, D. A.: A Method for the Construction of Minimum Redundancy Codes, in Proceedings of IRE, 40, 1952, 1098-1101. [9] Lee, R. C. T., Chin, Y. H., Chang, S. C.: Application of Principal Component Analysis to Multikey Searching, IEEE Transactions on Software Engineering, SE-2(3), 1976, 185-193. [10] Lo, K. T., Feng, J.: Predictive Mean Search Algorithms for Fast VQ Encoding of Images, IEEE Transactions on Consumer Electronics, 41(2), 1995, 327-331. [11] Li, W., Zhang, Y. Q.: Vector-Based Signal Processing and Quantization for Image and Video Compression, Proceedings of the IEEE, 83(2), 1995, 317-335. [12] Linde, Y., Buzo, A., Gray, R. M.: An Algorithm for Vector Quantizer Design, IEEE Transactions on Communications, 28, 1980, 84-95. [13] Liu, E. C., Wang, T. C.: An Improvement on Lossless VQ Indices, Proceedings of the 1998 Compression   TheofBridge IEEE Global Telecommunications Conference to Global Integration, Sydney, Australia, 3, 1998, 1699-1704. [14] Nasrabadi, N. M., Choo, C. Y., Feng, Y.: Dynamic Finite-State Vector Quantization, IEEE Transactions on Communications, 42(5), 1994, 2145-2154. [15] Nasrabadi, N. M., Feng, Y.: Image Compression Using Address-Vector Quantization, IEEE Transactions on Communications, 38(12), 1990, 2166-2173. [16] Shanbehzadeh, J., Ogunbona, P. O.: Index-Compressed Vector Quantization Based on Index Mapping, IEE Proceedings on Vision, Image and Signal Processing, 144, 1997, 31-38. [17] Tsai, J. C., Hsieh, C. H., Hsu, T. C.: A New Dynamic Finite-State Vector Quantization Algorithm for Image Compression, IEEE Transactions on Image Processing, 9(11), 2000, 1825-1836. [18] Jarvi, A., Lehtien, J., Nevalainen, O.: Variable Quality Image Compression System Based on SPIHT, Signal Processing: Image Communication, 14(9), 1999, 683-696. [19] Said, A., Pearlman, W. A.: A New, Fast, and Efficient Image Codec Based on Set Partitioning in Hierarchical Trees, IEEE Transactions on Circuits and System for Video Technology, 6(3), 1996, 243-250.