Image compression using modified block truncation coding algorithm

Image compression using modified block truncation coding algorithm

SIGNAL PROCESSING: Ill&GE COMMUNICATION Signal Processing: Imaye Communication 12 (1998) l-1 1 ELSEVIER Image compression using modified block trun...

1MB Sizes 0 Downloads 81 Views

SIGNAL PROCESSING:

Ill&GE COMMUNICATION Signal Processing: Imaye Communication 12 (1998) l-1 1

ELSEVIER

Image compression using modified block truncation coding algorithm Chung-Woei

Chao”,*,

Chaur-Heh

Hsiehb, Po-Ching

Lu”

“Department of Electrical Engineering, Chung Cheng Institute of Techdog?? Tahsi, Taoyuan, 33509. Taiwan, ROC b Department of Information Engineering, Mhou University. Tahsu, Kaohsiung, 84008, Taiwan, ROC

Received 1 April 1996

Abstract This paper presents a modified block truncation coding (BTC) algorithm for image compression. Similar blocks in an image are merged into a cluster and represented with the cluster center. Each cluster center is then encoded with a vision block truncation coding (VBTC) algorithm which uses a small set of predefined binary edge patterns to approximate the bit plane of the cluster center. Experimental results show that the computation efficiency of the proposed algorithm is significantly improved when compared to the original BTC. 0 1998 Elsevier Science B.V. All rights reserved. Keywords;

Image compression;

Block truncation

coding; Vector quantization;

1. Introduction Block truncation coding (BTC) [3] was originally developed at Purdue IJniversity. Since BTC has the advantages including the preservation of signal pixel resolution and edges and low computational complexity, it is extensively used in many image compression applications. The original BTC, as shown in Fig. 1, an input image is first divided into nonoverlapping small blocks and a two-level adaptive moment-preserving quantizer is then applied to the pixels of each block. The quantizer preserves local statistics moments of an input block (e.g., the sample mean X and standard deviation (T)in the output block. In

* Corresponding author. 0923-5965/98/$19.00 0 1998 Elsevier Science B.V. All rights reserved PII SO923-5965(97)00030-l

LBG algorithm

the original BTC [3], X is adopted as the quantizer threshold and two-level bit plane is obtained by comparing each pixel value Xi with the threshold. If Xi < X, the pixel is represented by ‘0’; otherwise, it is represented by ‘1’. Each input block is transmitted as a bit plane along with quantized information on the X and 0. For a 4 x 4 block, the original BTC represents both R and 0 by 8 bits each. In addition, 16 bits are needed to specify the bit plane. Consequently, a bit-rate of 2 bits/pixel (bpp) is achieved. The decoder reconstructs two gray levels H and L, corresponding to ‘1’ or ‘0’ received, by

(1) (2)

C.-W. Chao et al. / Signal Processing:

bit

Image Communication

12 (I 998) I-I I

pland

Fig. I. The original BTC system

where p and 4 are the number of O’sand l’s in a bit plane, respectively. Since the bit-rate of the original BTC is relatively high when compared to other still image compression techniques such as JPEG [14] or vector quantization (VQ) [5, 11, 133, many modifications of BTC have been proposed to further reduce the bit-rate. A lo-bit two-dimensional quantizer [3] is used to simultaneously code X and (T, thus the resulting bit-rate is reduced to 1.63 bpp. In [l], a median filter roots method is proposed to code the bit plane, and the bit-rate is further reduced to about 1.38 bpp. Recently, the VQ technique has also been introduced into BTC by Raina [ 151 where the VQ was used for encoding the bit plane or/and mean vector. The resulting bit-rate is in the range of 1.0-1.5 bpp. Zeng et al. [ 161 proposed two interpolative BTC with VQ schemes, and demonstrated that they are superior to Raina’s scheme [15]. The better one (hereafter called IBTC scheme) achieves the bit-rate of about 1.0 bpp. Mohamed and Fahmy [12] presented a VQ-BTC to further reduce the bit-rate and improve edge reproduction. On the average, the bit-rate of VQ-BTC is about 0.8 bpp. Obviously, the hybrid BTC/VQ techniques reduce the bit-rate significantly. However, they need a large amount of extra computation for encoding and codebook generation [4,6-91. This makes the hybrid BTC/VQ techniques less attractive in practice. The above BTC techniques process each block independently. However, our experiences indicate that many neighbouring blocks in an original image are highly correlated, especially for a small block size. In other words, many blocks in an image may be very similar. If the interblock correlation is efficiently exploited, we can expect better compression performance. In this work, we first merge the similar blocks into a cluster. The cluster center is

then processed using a novel vision BTC (VBTC) scheme. The VBTC employs a set of predesigned binary edge patterns which are visually sensitive to approximate the bit plane. Experiment results show that the compression ratio of the proposed algorithm is much higher than that the original BTC offered. They also show that the performance of the proposed method is comparable to or superior to the VQ. This paper is organized as follows. Section 2 describes the proposed algorithm. The experimental results are given in Section 3. Finally, we conclude this paper in Section 4.

2. Tbe proposed algorithm The proposed compression algorithm is shown in Fig. 2. It mainly consists of three processes: block clustering, search-order coding and vision BTC (VBTC). The input image blocks are clustered by the block clustering scheme (BCS). Each cluster center is processed with the VBTC which preserves visually sensitive information at low bit-rate. The overhead information bits generated in the block clustering are reduced by the search-order encoding. The detail of the proposed algorithm is described as follows.

2.1. Block clustering scheme (BCS) Since many neighbouring image blocks (with size of 4 x 4) are very similar, the pixel value distribution of a block is very close to that of neighbouring blocks. In this work, we categorize each block sequentially by a block clustering scheme (BCS). The similar blocks belonging to the same cluster are then merged together and represented with the

C.-W. Chao et al. / Signal Processing:

so

lllpllt

,

Block

image

Clustering

Encoding

12 (I 998) I-I I

3

so cluster * decodi”g+in&x

so

-

Image Communication

-b

recovering

b

Fig. 2. The proposed

MBTC

system.

been clustered and represented by its corresponding center block. Here, we compute the meansquare error (MSE) between the current block and the center blocks corresponding to previous blocks, respectively. The MSE function is given by

MSE = ; +_l__+

__~---+_’

I I I L.__-l___L___l___I___I

q : Currentblock Fig. 3. Searching

I

0 priority

I

I

: Previous block of BCS.

cluster center block. The BCS is performed in a raster scan order, i.e., from left to right and top to bottom. In order to find the similar blocks efficiently, the BCS searches the previous blocks, in a predefined manner shown in Fig. 3, to determine which previous block is most similar to the current block. The label in each previous block denotes its searching priority. The label ‘1’ denotes the highest priority, ‘2’ denotes the second highest priority, and so on. Note that the searching priority is determined by considering the distances between the current block and each previous block. Since the interblock correlation is inversely proportional to the distance in general, the higher searching priority is given to the nearer previous block. Now we need a criterion to determine the similarity of blocks. In BCS, each previous block has

$ (x(i) -

1-l

gd9)2,

where m is the number of pixels in a block, x(i) is the current block and gk(i) denotes the center block of the kth cluster. The center block that yields the minimum MSE implies that the corresponding previous block is most similar to the current block. If the minimum MSE value is less than a predefined matching threshold Mth, the previous block is regarded as the ‘matched’ block. The current block is categorized into the cluster of the matched block, and the cluster index of the matched block is assigned to the current block. Once the current block has been categorized, the corresponding cluster center is updated by using the block data. The updating operation is given by 1 __ Nk

4%

i =

1, 2,

, m,

+I

(4) where + denotes the updating operation that updates the left-hand-side term by using the result of the right-hand side, Nk is the total number of blocks merged into the cluster k before this updating. If the minimum MSE is not less than Mth, the ‘mismatched’ case occurs. In this case, the current block does not belong to the clusters of the previous blocks. Therefore, a new cluster must be created,

4

C.-W. Chao et al. J Signal Processing:

and the current block is regarded as the center of the new cluster. It is possible that several previous blocks belong to the same cluster. In other words, they are with the same cluster index and center. If we directly search them block-by-block, it will yield many unnecessary searches. Therefore, we search only the previous blocks which belong to different clusters. In other words, when we search a previous block, we first check its cluster index. If the cluster index is equal to that of the other previous block which has been searched, it means that the corresponding center block has been calculated before, thus we bypass this search. Consequently, this will improve the coding efficiency. As stated above, when a matched block is found, the current block is categorized into the cluster that the matched block belongs to. In such case, the current block can be recovered by using the cluster center of the matched block if the offset address of the current block and the matched block is sent to the decoder. To reduce the overhead information bits, we use the search order (SO) of the matched block to represent the offset address. The SO is defined as the order that the previous blocks with different cluster indexes are compared with the current block. An interesting problem is how many previous blocks should be searched. Here, we define a search range R which represents the maximum allowed number of blocks to be searched. It is clear that the larger R will yield the higher possibility for finding out the matched block. However, it needs more bits to represent the search order. The relationship between R and the resulting bit-rate will be discussed in Section 3.

2.2. Search-order

(SO) encoding

Once the matched block is found, the corresponding SO is encoded and sent to the decoder. Since the histograms of the outcomes of the search order within R are not uniform in general, the codes are basically designed according to the occurrence probabilities that can be applied to further improve the coding efficiency. In other words, we assign the codes with a few bits to the SO with high probability values and codes with more bits to the SO with

Image Communication

12 (1998) I-1 I

lower probability values so that the average number of bits is reduced. Through our experiments, we find that, in normal case, the SO = 1,2 and > R (corresponding to ‘mismatched case) give relatively higher occurrence probability values. Hence, we use fewer bits codes ‘OO’,‘01’ and ‘10’ to represent SO = ‘l’, ‘2’ and ‘ > R’, respectively. For the other search order cases, the code ‘11’ followed by an S-bit code is used to represent the search order of 3 to 2” +2. For instance, if S =2, the search orders are SO = 3, 4, $6. In such case, the search range R =2” +2 = 6.

2.3. Vision BTC After all image blocks are performed with BCS, the center blocks of all clusters are obtained. Then, we encode all center blocks by using the vision BTC algorithm. As mentioned earlier, the original BTC generates mean, standard deviation and bit plane. For a 4 x 4 block, it needs 16 bits to specify the bit plane. This will yield 216 binary patterns. However, our experiments indicate that only a small fraction of these patterns occurs in the coding of nature images. Furthermore, many complicated patterns occurred contribute very little to visual quality. This allows us to design a small set of visually sensitive patterns to approximate the bit plane. Recently, Chen et al. [2] indicated that the cortical cells of human eyes are particularly sensitive to localized edge- and bar-like structures and the orientations of these structures in an image. Based on this concept, we design a small set of five basic patterns (shown in Fig. 4) to approximate the bit plane. These basic patterns are designed independently of the images to be transmitted. By simply changing the polarization (positive and negative) and orientations (o”, 90”, 180” and 270”) of the basic patterns, it produces 32 edge patterns. Each final

Fig. 4. Basic binary

edge patterns.

C.-W. Chao et al. / Signal Processing:

edge pattern is thus represented by a 5-bit address. The address of a best-matched edge pattern is then transmitted along with quantized mean and standard deviation. In order to find the best-matched pattern, a twostep operation is performed. The binary distortion BD between the coding bit plane and each edge pattern is first calculated by BD = f

(Bi 0 Pi),

(5)

i=l

where Bi and Pi denote the binary value of the ith location of the coding bit plane and an edge pattern, respectively, m is the number of pixels of a block and 0 denotes the modulo-2 addition. The patterns which yield the minimum BD are the candidate patterns. If only one candidate pattern is obtained, it is the best-matched pattern and its corresponding address is sent to the decoder. Otherwise, the second step is performed, which calculates the gray-level distortion GD between the input block and the reconstructed block corresponding to each candidate pattern. The GD is defined as GD = f

(hi - CL)‘,

(6)

i=l

where hi denotes the gray level of the ith location pixel of the coding block and Ci is the reconstructed pixel value corresponding to a candidate pattern. The candidate pattern which yields the minimum value of GD is the best-matched pattern. In this scheme, only 5 bits, rather than 16 bits in the original BTC, are required for each bit plane, thus the further compression is achieved.

2.4. The proposed algorithm The encoding procedure of the proposed algorithm is summarized as follows. Encoding procedure

1. Determine the search range R and reset the cluster index counter.

Image Communication

I2 (1998) I-I I

5

2. Input a block in a raster scan order and reset the search order counter. 3. Read R center blocks which have different cluster indexes according to the searching priority defined in Fig. 3. Then, assign search order SO = ‘l’, ‘2’, . . . , ‘R’ to the center blocks, respectively. 4. Compute the MSE between the current block and each center block, respectively, using Eq. (3). The center block which generates the minimum MSE is the best-matched block. 5. If the minimum MSE < Mth, the current block belongs to the cluster of the best-matched block. Assign the cluster index of the bestmatched block to the current block. Then, update the cluster center block by using Eq. (4). 6. Encode search order SO and the results are sent to the decoder. (a) For SO = 1, the code ‘00’ is sent. (b) For SO =2, the code ‘01’ is sent. (c) For 2 < SO < R, send the code ‘11’ followed by the corresponding binary code of so-2. 7. If the minimum MSE value is not less than Mth, the ‘mismatched’ case occurs and the mismatched code ‘10’ is sent to the decoder. The current block is regarded as a new cluster and the current block is adopted as the center of the new cluster. Give the content of the cluster index counter as the index of the new cluster. Then increase the cluster index counter. 8. Go to Step 2 for the next input block until all blocks in an image are finished. 9. Read a cluster center block. 10. Compute the _Y,0 and bit plane of each cluster center block. 11. Encode the bit plane by comparing it with the binary edge patterns. 12. Send the address of the best-matched pattern and the quantized 1 and 0. 13. Go to Step 10 for next cluster center block until all center blocks are coded. The decoding process is very simple. In the decoder, it also has a search order counter, a cluster index counter and an identical edge patterns as the encoder. When the search order code is received, it can easily recover the cluster index of a block by

C.-W. Chao et al. / Signal Processing:

6

Image Communication

ever, our experimental results show that the blocks with G > 63 are only a very small portion in an g-bit image. Therefore, if the dynamic range of 0 is first limited to a lower value before quantization, we can expect better performance. Thus, in this paper, the dynamic range of 0 is first limited to O-63 and then 0 is uniformly quantized with 4 bits. The bit-rate of the proposed algorithm is given by

searching the previous indexes according to the same searching priority shown in Fig. 3. If the mismatched code ‘10’ is received, the cluster index of the current block is recovered by the content of the cluster index counter. After the cluster indexes of all blocks have been recovered, the decoder reconstructs the center blocks by using the recovered bit plane, X and 0. The bit plane is simply recovered by performing table look-up operation with the received pattern address. Finally, the decoder uses the reconstructed center blocks to recover the image according to the cluster indexes.

BR JN1 +Nz +N3)~2+Nqx(2+S)+Ncx(5+6+4) 512 x 512 =

3. Experimental

I2 (1998) I-11

2xN+SxNq+15xNc 262144

The performance of the proposed algorithm is evaluated by its bit-rate BR, peak signal-to-noise ratio (PSNR) and coding time T. All experiments are done on an IBM PC486-100. All programs were written in C language. The performance evaluation is conducted with four 512 x 512 monochrome standard test images. The brightness resolution is 8 bits and block size is 4 x 4. In [3], the authors pointed out that the quantized of X with 6 bits and of 0 with 4 bits introduce only a small degradation. We thus quantize X uniformly with 6 bits. How-

Mth=20.563 Mth=65.025 Mth=129.74

n

0.5 ^p P eo4 \

~th=205.627 Mth=6SO.25 ---+

E. +... 2 0.3 -& ----yc ..._... +._ __ \-. u - -” 0.2 ~---A._

.._..

. “,“_

-*--

....~

~ ... ......--+

--8--------o ...-... ~ ...__ _ _._.. _-___-c +

~--.-+--.

0.1 -

0’1 0

s

’ 1

-

’ 2

Fig. 5. Bit-rate



’ 3 S (bit)



where N = N1 + NZ + N3 + N4 is the total number of blocks, N1 the total number of matched blocks with search order (SO) = 1, N2 the total number of matched blocks with SO =2, N3 the total number of mismatched blocks, N4 the total number of matched blocks with 2 < SO < R (= 2” +2), NC the total number of clusters, and S the number of bits assigned to search order (SO - 2). The performance of BR, PSNR and T of the proposed algorithm at various values of search range R and threshold Mth are evaluated and shown in Figs. 5, 6 and 7, respectively. Here R is

results

---+--.+__._+_

2



’ 4

versus search

a

i 5





6

range at various

M,,,.

C-W.

Chao et al. / Signal Processing:

Image Communication

12 (1998) I-l I

Mth=20.563 Mth=65.025 Mth=129.74 l

f

29

Mth=205.627

28.5

Mth=650.25 _o

u E ;2

28

27.5

l*...

.‘o-c

/_A-.-

--‘-*._-.._..+_.-~’

+-.‘.--_.__*

27 :26.5 u 0

1

2

’ 4

3

’ 5

’ 6



S (bit) Fig. 6. PSNR

versus search

range at various

Ml,,

80

0 0

1

2

Fig. 7. Coding

represented

3 S (bit)

time versus search

by the number of bits assigned with It is clear that the larger the R is, the higher the possibility for finding out the matched block will be. However, it needs more bits to represent the search order, thus resulting in the decrease of the coding efficiency: From Fig. 5, we recognize R =2” +2.

5

4

6

range at various

M,,,.

that the bit-rate improvement is small when S becomes larger. From the PSNR-S curve, shown in Fig. 6, it is obvious that the performance is only slightly affected by varying S. Finally, we evaluate the relations between S and coding time T at various M,,. It is clear that, for the larger S, the BCS

8

C.-W. Chao et al. / Signal Processing: Image Communication I2 (1998) I-1 I

will take more time to search the matched block. The resulting T-S curve, shown in Fig. 7, indicates that the coding time is approximately linearly growing with S for 0 < S < 2 (R < 6), but approximates exponential growth for S > 2. From the results described above, we may conclude that the best choice of R is 6 (S =2). To study the effect of different Mth on the performance, we chose five different values of Mth: 20.563, 65.025, 129.74, 205.627 and 650.25 (corresponding to PSNR =35, 30, 27, 25 and 20 dB, respectively). A small value of Mth means that the matching condition is high, thus it is more difficult to find out the matched block. Consequently, the resulting bitrate is relatively high. However, it decreases the extra distortion introduced in the clustering process, and thus the relatively higher PSNR is achieved. These were confirmed from the results shown in Figs. 5 and 6. On the average, for Mth = 20.563, the resulting bit-rate is in the range of 0.539-0.592 bpp, and the resulting PSNR is about 29.86 dB. For Mth = 650.25, the bit-rate is in the range of 0.154-0.183 bpp, and the PSNR is about 27.38 dB. From the T-S curves, shown in Fig. 7, the coding times are slightly different for various Mth. Therefore, the selection of Mth is mainly dependent on the expected bit-rate and PSNR in a certain application. Table 1 compares the original BTC, VQ, IBTC and the proposed algorithm (at R = 6) in terms of the bit-rate BR, PSNR and coding time T. Compared to the original BTC and IBTC, the bit-rate reduction (BRR) is (2.0-0.578)/2.0*100% = 71.1% and (l.O-0.578)/1.0*100% = 42.2% for M,, =20.563, respectively. For Mth = 650.25, the BRR is also

evaluated that the proposed algorithm provides (2.0-0.175)/2.0*100% =91.25% and (l.O-0.175)/ l.O*lOO% = 82.5% respectively, as compared to the original BTC and IBTC. The results also indicate that the bit-rate and PSNR of the proposed algorithm are clearly comparable to or superior to the VQ offered. The coding time needed by only about proposed algorithm is the (15/120)*100% =12.5% of that needed by VQ. The coding time of the proposed algorithm is also comparable to or superior to the other VQ-based BTC algorithms, such as IBTC and VQ-BTC. Since the IBTC algorithm only needs one two-dimensional codebook for the mean vector, it is much faster than the VQ-BTC algorithm which needs 31 multidimensional codebooks for the low- and high-detail blocks. However, it is seen from Table 1 that the coding time and PSNR of IBTC is about the same as that of the proposed algorithm (Al), but our algorithm provides much lower bit-rates than those obtained by IBTC. Moreover, the visual patterns used in the proposed algorithm are designed independent of the images, which avoids the very timeconsuming process of the codebook design in VQ. In order to demonstrate the visual quality, we compare the coded images produced by the proposed algorithm at R =6, the original BTC, VQ and IBTC. For VQ, we adopt the well-known LBG algorithm [lo] to train the codebook. To generate the codebook, the LBG algorithm takes 11.54 h. The codebook size is 256, hence the bit-rate of VQ is 0.5 bpp. Figs. 8 and 9 show the coded images of ‘F16’ and ‘Water’ using BTC, VQ, IBTC and the proposed algorithm for M,,, = 20.563 and 650.25, respectively, Figs. 8(a) and 9(a) show the original

Table 1 Performance comparisons for BTC, VQ. IBTC and proposed algorithm at M,,, = 20.563 (Al) and iv&,,= 650.25 (A2) PSNR (dB)

BR (bw)

Coding time T(sec)

Images

BTC

VQ

IBTC

Al

A2

BTC

VQ

IBTC

Al

A2

BTC

VQ

IBTC

Al

A2

Lena Peppers F16 Water Average

2.0 2.0 2.0 2.0 2.0

0.5 0.5 0.5 0.5 0.5

1.0 1.0 1.0 1.0 1.0

0.612 0.743 0.532 0.429 0.579

0.173 0.175 0.21 0.145 0.175

31.8 32.03 30.54 34.39 32.19

29.06 28.72 28.07 30.37 29.05

30.11 29.67 28.12 31.36 29.82

29.91 29.66 28.32 31.55 29.86

27.14 27.03 26.67 28.69 27.38

9.4 10.3 10.1 9.8 9.9

120.4 120.1 120.3 119.9 120.1

14.5 14.4 14.6 14.5 14.5

14.6 15.0 14.1 15.2 14.7

14.9 15.2 14.8 16.3 15.3

C.-W. Chao et al. / Signal Processing.

Image Communication

I2 (1998) I-1 I

Fig. 8. Comparison of BTC, VQ, IBTC and MBTC algorithms of ‘F16’: (a) original image; (b) BTC-coded image (0.5 bpp); (d) IBTC-coded image (1.0 bpp); (e) MBTC-coded image (0.532 bpp); (f) MBTC-coded

image (2.0 bpp); (c) VQ-coded image (0.21 bpp).

10

C.-W. Chao et al. / Signal Processing.

Image Communication

12 (1998) l-11

Fig. 9. Comparison of BTC, VQ, IBTC and MBTC algorithms of ‘Water’: (a) original image; (b) BTC-coded image (2.0 bpp); (c) VQcoded image (0.5 bpp); (d) IBTC-coded image (0.429 bpp); (e) MBTC-coded image (0.429 bpp); (f) MBTC-coded image (0.145 bpp).

images. The coded images using the original BTC to 2.0 bpp are shown in Figs. 8(b) and 9(b). Figs. 8(c) and 9(c) display the images coded by VQ at 0.5 bpp. Figs. 8(d) and 9(d) show the images reconstructed

by IBTC at 1.0 bpp. The coded ‘F16’ and ‘Water’ using the proposed algorithm for M,,, = 20.563 at 0.532 and 0.429 bpp are shown in Figs. 8(e) and 9(e), respectively. The visual quality obtained with the

C.-K

Chao et al. / Signal Processing:

proposed algorithm for M,, = 20.563 is very close to that of the original BTC, although the PSNR performance is degraded. However, the bit-rate is significantly reduced. Comparing to the coded images produced by VQ (Figs, 8(c) and 9(c)) and IBTC (Figs. 8(d) and 9(d)), the images reproduced by the proposed algorithm, shown in Figs. 8(e) and 9(e), gives less blocky effect especially in flat regions such as the cloud portion of ‘F16’ image and background portion of ‘Water’ image. Visually, better quality over VQ and IBTC is achieved by the proposed algorithm. The coded ‘F16’ and ‘Water’ using the proposed algorithm for Mth = 650.25 at 0.21 and 0.145 bpp are shown in Figs. 8(f) and 9(f), respectively. Since the matching threshold is high, many blocks in the original images are grouped into the same cluster. High compression ratio is thus achieved at the cost of extra degradation of PSNR. However, the visual quality is still remarkable.

4. Conclusions In this paper, we presented a modified BTC (MBTC) algorithm. It first exploits the similarities among the image blocks to cluster the image blocks into several clusters. For each image block, the search-order code is sent to the decoder. Then, only the cluster center blocks rather than all original image blocks are coded by the vision BTC (VBTC) algorithm. The VBTC designs a small set of visually sensitive edge patterns to approximate the bit plane of each center block. We also proposed a simple two-step operation to find the best-matched pattern. Each center block is then transmitted as the address of the best-matched pattern along with quantized information on the mean and standard deviation. Experimental results indicate that the compression ratio of the proposed algorithm is much higher than that of the original BTC with similar picture quality. The results also demonstrate that the proposed algorithm is superior to the IBTC concerning both compression ratio and visual quality. The compression performance achieved is comparable to or superior to the VQ with much less amount of computation.

Image Communication

I2 (1998) I-I I

11

Acknowledgements The authors would like to thank the anonymous reviewers for their helpful comments and suggestions.

References BTC image coding using Cl1 G.R. Arce, NC. Gallagher, median filter roots, IEEE Trans. Commun. COM-31 (6) (1983) 7844793. f21 D. Chen, A.C. Bovik, Visual pattern image coding, IEEE Trans. Commun. 38 (1990) 213772146. using block c31 E.J. Delp, O.R. Mitchell, Image compression truncation coding, IEEE Trans. Commun. CQM-27 (I 979) 1335-1342. clustering algor41 W. Equitz, A new vector quantization rithm, IEEE Trans. Acoust. Speech Signal Process. 37 (1989) 1568-1575. R.M. Gray, A. Gersho, Vector Quantization and Signal rM51 Compression, Kluwer Academic Publishers, Dordrecht, 1992. Clustering Algorithm, Wiley, New York, C61J.A. Hartigan, 1975. 171 C.H. Hsieh et al., Fast codebook generation algorithm for vector quantization of images, Pattern Recognition Lett. 12 (1991) 605-609. codebook design for vector PI C.H. Hsieh, DCT-based quantization of images, IEEE Trans. Circuits Systems Video Technol. 2 (1992) 401-409. for vector c91 Y. Linde, A. Buzo, R.M. Gray, An algorithm quantizer design, IEEE Trans. Commun. COM-28 (1980) 84-95. for vector Cl01 Y. Linde. A. Buzo, R.M. Gray, An algorithm quantizer design, IEEE Trans. Commun. 28 (1980) 84-95. [11] J. Makhoul et al., Vector quantization in speech coding, Proc. IEEE 73 (1985) 1551-1588. [I27 S.A. Mohamed, M.M. Fahmy, Image compression using VQ-BTC. IEEE Trans. Commun. 43 (7) (1995) 2177--2182. [13] N.M. Nasrabadi, R.B. King, Image coding using vector quantization: a review, IEEE Trans. Commun. COM-36 (1988) 957-971. J.L. Mitchell, JPEG Still Image Data 1141 W.B. Pennebaker, Compression Standard, Van Nostrand Reinhold, New York. 1993. [ISI V.R. Udpikar, J.P. Raina, BTC image coding using vector quantization, IEEE Trans. Commun. COM-35 (1987) 352-355. BTC image coding with Cl61 B. Zeng, Y. Neuvo, Interpolative vector quantization, IEEE Trans. Commun. 41 (1993) 143661438.