Research R.port 310 Advances in predictive wavelet transform image coding Ian Levy Roland Wilson RR3lO In this work, it is shown that fractal image coding can be placed in a conventional predictive framework by using a wavelet representation. This has the significant advantages of simplifyrng decoding by avoiding iteration and of relating the technique to traditional coding methods. The resulting coder is a iombination of transform and predictive techniques. A novel frequency domain subblock search is presented along with a tree structured vector quantizer. Some results are presented for a variety of images and bit-rates followed by some speculation on further research. Department of Computer Science University of Warwick Coventry CV4lAL United Kingdom July 1996 Advances in predictive wavelet transform image coding Ian Levy, Roland Wilson Department of Computer Science, University of Warwick, Coventry July 30, 1996 Abstract In this work, it is shown that fractal image coding can be placed in a cortvetttional predictive framework by using a wavelet representation. This has the significant advantages of simplifying decoding by avoiding iteration and of relating tire technique to traditional coding methods. Tire resulting coder is a combination of transform and predictive techniques. A novel frequency dorna.in subblock search is presented along with a tree structured vector quantizer. Some results are presented for a variety of images and bit-rates followed by sorne speculation on further research. Contents 1 Introduction The New Algorithm 2.I Introduction 2.2 Basic Algorithm 2.3 2.4 The Block Search Alsorithm The Karhunen-Lobve transform The Tree Structured Vector Quantizer 3.1 Introduction 3.2 Building a Tree Structured Vector Quantizer 3.3 The Linde-Buzo-Gray Vector Quantizer Design Algorithm 3.4 Restructuring an Unbalanced Tree 2 a! .) al d i) 6 (i / 8 :, Coder Results T2 TYee Structured Vector Ouantizer Results 16 Discussion,Conclusions and F\rrther Work 27 References 28 List of Figures 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 Coder block diagram Two clusters, the centroids (shaded) and their separating hyperplane 6 8 Incremental growing of a tree structured vector quantizer 10 A tree generated from artificial data . 11 the root from tree restructured The 12 Reconstruction of Lena with no search i3 Reconstruction of Lena with full search 13 Reconstruction of Boats with no search L4 full search with Reconstruction of Boats 15 JPEG Reconstruction at 0.22bpp, PSNR 30.7i 20 Results fol data in the training set o2 : 1000 : 21 Results for data outside training set o2 1000 : 25 set o2 200 Results for data in the training 26 Results for data outside training set o2 : 200 Introduction In recent years) both fractal coding and wavelet transform coding algorithms have been thc subject of extensive research t1] i7] [4] [11] [14]. Although they sharc a I'eliance on the scaling properties of the edge features which dominate normal irnages, there has previously been little attempt to marry them (see [13] however ). In a wavelet decomposition, the image is recursively decomposed into frecluenc.l' bands. The wavelet subbands contain the high frequency components of the image in the horizontal, vertical and diagonal directions. These components can easily be vectol quantized with low visible distortion because ( it is argued ) the waveiets are ltetter matched to edge features than the sinusoidal basis functions used in earlier transform coders. Fractal image coding relies on the concepts of self-similality ancl affi.ne maps) which may be used to describe how to transform one image region intcr the other. The image is tiled with such regions and the collection of the affine maps wlriclr results is known as the fractal code for the image. An approximation to the or-iginal image is reconstructed from the fractal code by iterating the affine rnaps orr any initial image t7l t4l I3l. Recentllr, there have been several attempts to combine fractal and trarrsforn coinpr-ession rnethods [13] [5] [6]. These have, for the most part, used DCT basis vectors to replesent the t:r-r-or resulting frorn the fractal approximation. There have been fer,v aclvances iri searching for fractal based systems. In this paper) a novei search method is presented which takes into account the isometry group used. Also, a tree structured vector quantizer is presented, based on the LBG algorithm. This structure also embodies a rate-distortion rneasure, allowing variable rate encoding rrsing the same data. This structure will be used to address domain blocks in near-optimal nnnber of bits. 2 The New Algorithm 2.1 Introduction The new method is largely based on the coder presented in [8] and [9]. It can be seen as a predictive coder, in which blocks of data representing larger scales are trsecl to predict those at smallel scales. Errors are coded using a Ka,rhunen-Lobve transfolrn coder operating in the wavelet domain. 2.2 Basic Algorithm The novel algorithm plesented combines parts of both wavelet and fractal coding. The image to be coded is decomposed by the wavelet transform to a given level, say /, known as the base level. The first level to be approximated, called the d,omai'n leuel, ts then decided. This is any level below the base level. The range leuel ts then the level from which the prediction occurs (usually the level above the clornain level). Levels from / to the range level are quantized using a linear qua,ntizel for the highpass coeficients and a separate quantizer for the lowpass coefficients at the highest level. The quantized approximation is used as the range level of coefficieuts tcr reduce errors at the decoder. Each of the bands in tire domain level is partitioned into L} non-overlapping domain blocks. Let {Dy , {D!'} and {Dy'} be the domain bloclis from each subband. For- each domain block set {D:IL,D!r',Dyn} ) a col'responding range block set {Rflr, Rlr,Ry,} must be founcl rvhich minimizes the error ,: wlrere llD!' - by"ll' + lln?" - bln ll' + DY' ll by'll' b{ : t;(a;' R;I), R, is a normalised range block from sub-band (ti : . ny',n!' >+< ily",Dy" >+< R!',D!'> .\ llihuu.rriRHH -. +. l \ Ry",Ry" > + < Rlu,A!' , (1) X, (2) and {r;}l:6 is the dihedral group of the squale. Hence, the blocks from the tluee subbands are scaled by the same factor. Since an orthogonal wavelet transform is used, the subbands are all orthogonal. Hence, no iteration of the affine maps is required. Since there will be no iteration of the maps in the decoding process, the value of a; is unconstrained. Given a domain block size d" and and search radius r, we define the search reg'ion as the subset of the strbband T g1enby ([" -rd,r*rd)x[y -rd,A-trd)))I. A search within this region is performed using the method described in section 2.3. This method constrains tirrr maps so that each range block Rf ( X € {HH.HL,LH} )is in t}re same reiativcr position, but in different subbands. The reasoning behind this is that if two blocks a,re similar, then their horizontal, vertical and cliagonal componeuts mttst also be sinrilar. This process is then repeated on successive levels of the wavelet decomposition. The approximation of the domain level generated by the coder thus becorrres thc lan€te coefficients for the next itera,tion. Separate affine map coefficients are genera,tecL between levels, up to levei 1. As it stands, the coder attempts to extrapolate a bloclr in the range level to a block in the domain level in each subband. However, if thele iri not a good match between wavelet levels, the overall reconstruction error will ilcrcase. To overcome this, block proiection is performed after the fractal coding on eac[ ler,el to leduce errors) in the same vein as Huang and Gharavi-Alkhansari [6]. The prcscn,, method, however, is simpler, since it is based on the Karhunen-Lobve transfolrn fo: the symmetrised error vectors. A block diagram of the coder is shown in figur-c 1. It is worth noting that the coder can operate in a variety of modes, depending on the application. It is possible to vary the block size, enable or disable the Karhune)nLobve transform sub-system and enable or disable the block searching ( ie restrict tht: search region to a single block ). Obviously, different configurations will be suitable for clifferent applications, each having different bit rate and error requilements. The parameter sets that describe the blockrvise maps and the basis projection coefficients are linearly quantized and encoded using an order zero arithmetic coder. A rate aaltr"e determines how many bins the quantizer uses and how many symbols tht: ar-itirmetic coder can encodc. R,econstruction proceeds much the same as for st:indarcl frac,tal coding. The major difference is that this rnethod does not require iteration of the rnaps. If the Karhunen-Lobve transform sub-system is enabled, then the projecterl ettol vector-s are added to the reconstructed approximation of the block. An inrtrsr. wavelet transform from the base level reconstructs the original irnage. 2.3 The Block Search Algorithm Most, if not all, fractal based coders use a simple search on the dornain pool. Thest: searches usually proceed by extracting a domain block from the pool and applying each isometry to the domain block to find which orientation of the block most closclv matches tlie range block. This is repeated or.el all blocks in the domairr pool t<r find the best in the least-squales sense. This has obvious disadvantages in both cornputational complexity and the tirnc required to perform the search. The method to be presented here is a Fourier-domain search. Define -F(r) to irc the Fourier transform of r, r* to be the compiex conjugate of r ancl 7(r) to bc thc inverse Fourier transform of r. Given an ?z x rl range block -R ancl a normalised dornain block D, the domain block is padded with zeros to n x n. A correction factor matlix. C, is generated from the range block by Ci.L : Ii=o It' Ri'+rr'r;*rt rt2 C represents the energy in each sub-block in the range bloch. (3) U ; .9 E a F J at !E !a r E .E A Fs. Figure 1: Coder block diagram ii: The correiation ma,trix between the two blocks is generated by p : Re(r (F(R)F-(D))) Then, the norrnalised correlation between the two blocks is simply defirred i,.r: ! (4) as (5) vl,J The position of the highest value in p corresponds to the origin of the best matching block. The block isometries are applied to the padded domain block transform. If the isometry contains a rotation of n radians, the transform is simply conjugated. The sealch is actually performed across all three bands simultaneously. The p matrices derived from each band are added up and the highest value found. This is thcn the origin of the three blocks that match the domain blocks the best. 2.4 The Karhunen-Lobve transform The Karhuuen-Lobve transform I is well knorvn in the field of image plocessing. Ir, will be described briefly here for completeness. Given a sarnple from a populatiorr o[ rrr:ctors {r;} of the form r, : {z;, ,...,lti,,}, the couariance ntatrir is estimatecl usirrg the sample mearl 1M ,,: *f ,'0,'i f,=l r,vhere er is the mean of the sample. defined -.'r'' (6r as 1M _1 \- M fi=lL**",^' (7) Tht: element c;, of C, is the covariance of the elements r; and r;. Hence, thr: rna,trix C,. is reai and s}'rrmetric. Therefore, it is always possiblc to fincl a set of lc'a1 eigenvectols of C,. It is thesc eigcnvcctors that are used as the basis vectors lor elror: correction in the coder. That is, any residual error in the coder after the waveler prediction is projected onto thesc basis vectors and the coefficients transrnittecl. The actual vectors use<l ale calcr-rlated over a valietr' of images ancl alc krrorvrr to both the' errcocler- and decoder. rAlso known :rs the Hotelling, t:igerrvcctor or principal component transfornr 5 ooo \ ..OO \-/o ot Figure 2: Two clusters, the centroids (shaded) and their separating hyper-plane 3 The Tlee Structured Vector Quantizer 3.1 Introduction Even with the frequency domain block search, extracting each range block in the search region and testing it is still slow. It would obviously speed the sear-ch if only si.m,i,lar blocks were tested. Also, building a history of plevious blocks is bound to reduce erlor Late, since the coder is given a mole richly populated vector space to predict from. Vector Quantization is a common method of providing lossl' data compression. The vector quantizer works by providing a codebook of vectors rvhich is used to approximate input vectors. The main problem with general VQ methods is that they are highty compute intensive. One method of overcoming this is to structure the quantizer. A particular example of this subclass is the tree structrued vector quantizer. There have been some attempts to generate Tree Structuled \rector Quantizers [I2) l2]. These, however, work in an off-line manner ( all the da,ta rnust be present when the tree is built ) or impose some condition on the source. However', for this application, an incremental method is required with no limitations. Consider a set of data in the Euclidean n-space, {r; : i :0,..., n - 1'} e ft"' Assuming n ) 2, it is possible to partition the data into two optimal clusters, C1 and C2, separated by a decision hyperplane. The situation is shown in Figure 2. The decision hyperplane is defined by H -- {*, € ft" : llr, where /r1 and 112 are - prll : llt'o - Prll} the centroids of the clusters. Expanding this conditiorr gives ll"o ,T ,, - 2rT - p' ll : p, -l 2rT - pt : ,T t"Lt) : pT t', pT 0l, - llrr r, (8) us prtt - 2"T t, + ttT - pT p' (e) Hence, Fz - LLt is the direction of the decision hyperplane normal and 1l{ p2 - ftl ttt is the distance along the normal to the point of intersection with the hyperplane itself. Given a new vector,r, it is a simple to decide which cluster the vector should lie in, without caiculating the mean square error between the new vector and each o:: the cluster centroids. All that is required is to calculate the value of 2rr(pt,2 Obviouslv. 2r'(t', - p) < pT p, * p' if r € Ct 2r'(1,,, - p,t) > pl' p, - pT t,t il r € Cz pT l.Lt). (10't with an arbitrary choice being made if equality occurs. 3.2 Building a Tlee Structured Vector Quantizer Each node in the tree will contain the following information o Pointers to the left son, right son and parent nodes o The data vector associated with this node o The direction of the separating hyperplane normal vector and intersection point o The average distortion between all leaf data and the data vector at this riocle o A usage count which indicates the number of leaves below this node When aclding a vector to an existing tree, the following method is applied. At each node, a dichotomy mnst be evaluated to deciclc which path to traverse. It recpires :rsimple inner product calculation. The decision is made in the same way as that of equation 10. All dichotomies down a particular path are evaluated until a ieaf nocle is reached. As each node is passed, its average distortion.d6', updated by equation 11 and the usage count,n,, is then incremented. n,, _ (dc x ",)-t llr n'+1 - ryl|' (11t Once a leaf node has been reached, a comparison is made to see if the <lata to bc added is already plesent in the leaf. If it is, the usage count of the leaf in inclenr:tttecl ancl no more is clone. Otherwise, two chiid nocles are spawned fronr the old leaf nocle. One of these has the data from the old leaf copied down and the other has the rrern' data placed in it. The average distortion between the old leaf node and ther tu'o nen children is then calculated and stored in the old leaf node, followed bv the hvperplane, norrnal directiorr arrd intersection point. It is worth notirrg explicitli,' that if thr: olcl leaf has a usage count greater than one, this is copied down to the duplicate chiicl nocle. Thc incrernental growing of the tree is depicted irr figurc 3. Figure 3: Incremental growing of a tree structured vector quantizer Since the separating hyperplanes are fixed by their placement between the fir'st 2 vectors, it is quite possible, if not likely, that the tlee will become unbalanced at auy point below the root. To combat this, a method for restructuling subtrees has been designed, based on the Linde-Buzo-Gray vector quantizer design algorithm. detailed next. 3.3 The Linde-Buzo-Gray vector Quantizer Design Algorithm The LBG algorithm for vector quatizer design [10] is used to design near-optirnal block quantizels with a certain number of representative vectors. The quantizer is trained by a sequence of training data, usually taken to be representative of the population that the quantizer must encode. The algorithm produces an optirnum partition of the training set. This is simply extended into an n-dirnensional optimum paltition of Euclidean n-space by the nearest neighboul rule. Given N, the number of representative vectols in the final quantizer, a tlaining sequence {ri, j - 0,.. . )n- 1}, and an error threshold e ) 0, the algorithrn pr-oceeds as follows. o Initialisation - Given {r;}, set Ao(f ) : f whele f is the centroid of the training sequence. - Given Ao(M), containing M vectors, ^perturb each vector in the set by a small, fixed vector, /. So, each y; € Ao(M) is replaced by the trn'o vectors {y, + ,,y; - - u} € Ao(2M). Set M:2M. Repeat previous step until M : N. Then, the resultant set ,ao(l{) is the initial set to which the partitioning algorithm is applied. o Partitioning find the minimum distortion partition P(A^) : {Co:i: 1,...,1/) of the training set by assigning each vector r1 to a clnster C; using the rule r, € C; ++ ll", - yoll < llr, - v,llvt. (r2l Given - A-, Caicrilate the averase distortion n-1 D^:l TI ( If D^;::D^ Um - c stop with A^ I min ll";, yll. (13 ) .i-o Y€A^ as the final set of representative Re-estimate the centroids of the clusters {C,}. Set A-*1 1,...,1/). Set Tn: IrL * 1. Repeat the partitioning step. : vector.s. {e , 3.4 Restructuring an Unbalanced Tlee Before a restructure is performed, it must first be decided where ( or if ) the treer is actually unbalanced. Since the usage count in anv node represents the number of leaf clata nodes below it, a comparison of usage counts of sibling nodes is an appropr-iatt: measure of how unbalanced the subtree is. Note that the root node usage connt is the total number of leaf node data vectols in the subtree. A recursive traversal down the tree is performed from the root. At any point. rLRoottTLLeJtt?tRight, the usage counts in the subtree root node and the current left ancl right child nodes, are known and it is sirnple to calculate p6 and p; thusly pR:ro,2(A) pL : rosz(:.*) \rLRisht / A subtree is deerred unbalanced if lpn - pLl > 0.5. Once an unbala,nced ( 14) (15 ) subtrer-' is found, thc leaf data is extractcd and the subtlee is dcstroyed. The subtree root clata value is set to the centroid of all the leaf data. Then, tht: LBG algorithrn is lun on the leaf data to produce two cluster centroicls. These centroids are usecl as the data for the child nodes of the subtree root node. The separating hyperplanc is calculated and its normal vector and intersection point are stored in the subtrcc root. The application of the LBG algorithrn implicitly gencrates two rrew subtrr:c lool nodes and two sets of ieaf data nodcs. These are thc two sets of data that constitutcr tire clusters generated by the aigor-ithrn. The proccdure is applied recursivc.ly until only 2 data, vectors rr:rnain. Thr:n, a simple split is perforrned and thc stibtrt,:<: is fulll' restructured. The final procedrtre in the restructure is to work back up the subtr-ee 24 23 22 2! 20 L9 1A 17 16 a5 a4 13 12 11 ao 9 e 7 6 5 a 3 2 1 o Node 2 - OOOOOO 2 - OOOOOO 9. OOOOOO 9. OOOOOO 9 - OOOOOO 9 - OOOOOO 9, OOOOOO 10 - OOOOOO 10 - OOOOOO 15. OOOOOO 15, OOOOOO 14 - OOOOOO 32 - OOOOOO 32 - OOOOOO 34 - OOOOOO 34. OOOOOO 44 -OOOOOO 44.OOOOOO 54 -OOOOOO oooooo 100. 100 - oooooo Aa - OOOOOO Aa - OOOOOO AA - OOOOOO a - oooooo DaCa n\rmber 23 1 22 19 15 aO 5 5 3 2 I 1 5 2 3 a 2 a 1 4 2 2 1 1 3 Figure 4: A tree generated from artificial data to the subtree root in order to update the usage counts in each node. This is a simirle by-product of the recursive nature of the procedure. A tlee generated by a small set of artificial data is shown in figule 4. The LBGbased restructure algorithm was applied to the root node and the result is shown in figure 5. Note that the algorithm has produced a tree which repr-esents the optirnal clustering of the data at each node. This will prove useful in providing near-optimal bit rates when encoding data to a specified rate. 10 24 23 22 21 20 I9 lg 1.7 a6 as 14 13 a2 r1 ao 9 a a 6 5 4 3 2 1 o =Z -923047 45. AOOOOO 93,750000 100 - OOOOOO g7 - 500000 A7 000000 gg - oooooo 54 000000 a5 111111 35 _ 500000 44. OOOOOO 32 _ 666664 32 - OOOOOO 34. OOOOOO 9 -2a5aa4 11_ AOOOOO a4 - 500000 14 - OOOOOO 15. OOOOOO 10 - OOOOOO a. aaggag B - 625000 L OOOOOO 9 - OOOOOO 2, oooooo 5 2 I a4 5 2 1 1 3 9 a 3 5 1 Figure 5: The tree restructr-rred from the root L1 Image Lena Lena Boats Boats Compression Ratio 32:I Search Rate (bpp) Full None 0.25 0.20 Full 0.34 40:1 23.5:1 None 0.28 28.5:1 Peak-RMS SNR 31.61 dB 31.52 dB 29.95 dB 29.94 dB Table 1: Coder test results Figure 6: Reconstruction of Lena with no search 4 Coder Results In this section, sample compressed and reconstructed images at low bit rates with and witlrout searching on the standard Lena and Boats images are presented. The test irnages are 512 x 5I2 pixels in 8-bit greyscale. For the tests, a block size of 4 pixels square and the Daubechies 8 point filter are used and the Karhunen-Lobve transform sub-system is enabled. The results of these tests are shown in the Table 1 and the following figures. For comparison, Figure 10 shows the Lena image coded at 0.22 bits pcl pixcl with the JPEG system. This image has a PSNR of 30.71 dB and rnuch more visitrle artifacts. Shapiro's EZW coder [14] codes Lena at 0.25 bpp with a Peak-RMS SNR, t2 Figure 7: Reconstruction of Lena with full search Figure 8: Reconstruction of Boats with no search 13 Fisure 9: Reconstruction of Boats with full search of 33.17 dB and at 0.125 bpp with a PSNR of 30.23 dB. The coder presented here, achieves 31.52 dB at 0.20 bpp, a comparable figure. As can be seen from the above results, at low bit rates, the search does not inplovc the coder performance. However, further tests have shown that at higher bit lates, a search is advantageous. Using a full search, the Lena image can be codecl at 1.49 bpp with a PSNR of 38.67 dB. With no search, the image is coded in 7.44 bpp with a PSNR of 38.07 dB. At these bit rates, a gain of 0.6 dB for 0.05 bpp is significalt. t4 ffi ffii w:i:: iiiil,T$l Iiti,s$:. ffi ffi. Figure 10: JPEG Reconstruction at 0.22 bpp, PSNR 30.71 1t: 5 Tree Structured Vector Quantizer Results In this section, results for the tree structured vector quantizer are presented. The quantizer is run on several sets of random data taken from Gaussian sources of different variances in one dimension. The results are compared with the theoretical rate, r4, for encoding random data from a Gaussian distribution with var..iance o2 at distortion d. r4 / ,-z\ : Iog,IZJ (16) The quantizer is presented with 32768 points taken from a Gaussian distlibution of variance o2. Data points are rounded to the nearest integer (to allow multipleclata in leaf nodes). Once the tree has been built, the training data is presented to be coded at various allowable distortions. The average rate is recorded and cornpared with the theoretical value. Also, the actual average error is reported. Then, the tree is restructured ( if necessary) and the same data applied again. Finally, teu randorn random sets of data from outside the training set are applied and the results averaged. This is repeated for a variety of variances on the underlying Gaussian distribution. Note that the minimum bit rate for any particular vector is 1 bit. This is simply because the coder must ernit at least a singie bit to indicate that a vectol has allivecl. t6 Max Error Actual Rate Theoretical Rate 0 7.57724 9.96578 0 50 3.56409 3.46811 4.32193 3.32193 2.73697 2.32193 25.9754 29.313 32.1 1 16 tr .\ q,71 A oL.Lt t+ 2 64.9643 1.73697 95.3608 95.3608 95.3608 195.78 100 150 200 250 300 350 400 3.4006 3.09796 2.96752 2.66391 2.66391 2.66391 500 2.279rr 2.2791r 550 1.60513 600 1.60513 1.60513 1.60513 1.60513 450 650 700 750 r.57457 1.32193 1.152 i95.78 1 0.862496 0.736966 0.621488 0.514573 0.415037 850 1.60513 1.60513 900 1 950 1 0.327928 0.234465 0.152003 0.0740006 1000 1 0 800 Actuai Error 373.108 373.108 373.108 373.108 373.108 373.108 373.108 735.434 735.434 735.434 Table 2: Results on trainins set before LBG restructure oz I7 : 1000 Actual Ellol Max Error Actual Rate Theoretical Rate 0 7.20t97 3.14724 2.4782r 2.34482 2.34482 9.96578 0 4.32193 3.32193 2.73697 2.32193 23.1866 58.3728 69.9259 2 2 rr7.279 r17.279 r17.279 361.154 361.154 36 1.154 bU 100 tbt, 200 250 300 69.9259 350 2 o L 400 1 r.73697 r.51457 1.32193 450 1 I.752 500 1 a 550 1 36 1.154 600 1 650 1 700 1 i 51., 1 800 1 850 1 900 1 950 1 0.862496 0.736966 0.621488 0.514573 0.415037 0.321928 0.234465 0.152003 0.0740006 1000 1 0 361.154 1 361.154 36 1.154 361.154 361.154 361.154 361.154 361.154 361.154 Table 3: Results on trainins set after LBG restructure o2 18 : 1000 Max Error Actual Rate Theoretical Rate 0 7.2087r 50 100 3.14101 2.47671 150 2.3439r 200 2.34391 9.96578 4.32193 3.32193 2.73697 2.32193 250 L o L 300 2 Actual Error 0.00557251 23.1801 58.6911 70.3585 70.3585 117.863 117.863 350 L 400 1 1.73697 1.51457 1.32193 450 1 1.I52 500 1 i 550 1 0.862496 363.283 363.283 363.283 600 1 650 1 700 1 363.283 363.283 363.283 363.283 117.863 363.283 750 i 0.736966 0.621488 0.514573 0.415037 800 1 0.321928 850 1 363.283 363.283 363.283 363.283 363.283 900 1 950 1 0.234465 0.152003 0.0740006 1000 1 0 Tabie 4: Results outside trainins set after LBG restructure oz 19 : 1000 o o o r =(l)o .u5= oc)c) Lff a'!LL ID U) (t) Soo FEE O O eb @ b< co o L L LU X o <- O O N q)f.-(Oto-f,Cf)NrO (strE) eteU Figure 11: Results for data in the training set o2: 1000 O O O ll ?O i;(l) ';= u, 9or o-L oc ;-(s 1-L O (l) p @ U) f o o L = C) fL a (l) o O cc (o L (D lrr X z N @1.-(OtO$cONrO (s1rg) egeg Figure 12: Results for data outside trainins set o2 21 : 1000 Actual Error Max Error Actual Rate Theoretical Rate 0 7.1 1093 7.64386 0 10 4.64316 4.5694 3.85818 3.76474 3.76474 3.76474 3.65417 3.61078 2.96503 2.96503 2.59347 2.5934L 1.88943 1.88943 1.88943 1.88943 1.88943 1.88943 1.88943 1.88943 4.32193 3.32193 2.73697 2.32793 3.25531 3.86703 20 30 40 50 60 70 80 90 100 110 I20 130 140 150 160 170 180 190 200 2 7.73697 r.57457 1.32193 T.T52 1 0.862496 0.736966 0.621488 0.514573 77.9718 79.4426 19.4426 19.4426 24.2237 27.066r 40.8026 40.8026 56.8199 56.8199 98.681 1 98.6811 0.415037 98.6811 0.321928 a.234465 0.152003 0.0740006 98.6811 98.6811 98.6811 98.6811 0 98.6811 Table 5: Results on trainine set before LBG restructure 22 o' :200 Max Error Actual Rate Theoretical Rate Actual Error 0 0369 7 64386 0 10 15997 a^ 32I93 20 51111 3 32193 30 35965 35965 2 73697 4.40185 10.9694 13.6658 13.6658 40 2 32193 50 o L 60 1 73697 70 1 51457 80 1 32193 90 1 '1 XO LOL 100 1 110 0 862496 120 0 736966 130 0 621488 140 0 514573 150 0 415037 160 0 327928 170 0 234465 180 0 152003 190 0 0740006 204 0 23.8173 23.8173 23.8173 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 73.7492 Table 6: Results on traininq set after LBG lestlucture ot ta :200 Max Error Actual Rate Theoretical Rate 0 6.04124 3.15867 2.50854 2.35868 2.35868 7 64386 10 20 30 40 4 32193 q .) 32793 2 73697 2 32193 50 2 60 1 73697 70 1 80 1 90 1 5r457 32193 152 100 1 110 0 862496 I20 0 736966 130 0 621488 140 0 514573 150 0 415037 160 0 190 321928 0 234465 0 152003 0 0740006 200 U 170 180 Actual Errol 0.0007141i 1 4.41232 10.9812 13.666 13.666 23.7635 23.7635 23.7635 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 73.0034 Table 7: Results outside training set aftel LBG lestructure ot NA : 200 N =oo u5= (l)oC) Lff a'tLL IDAU) +(l)(D FEE Ya) o b< m r c. L 5lrr rX O ro @ 1..- (O LO .<t O CY) N F (s1rg) eleg Figure 13: Results for data in the training set o2 : 200 C) o O N li 45(D .E U' 9ol o.L oc -(U I-L o E o rO '@ :f o o L f C) fL U) to L (D L o 5uJ L -)($ O r-O o @F-(OrO$cDNFO (s1rg) aleg Figure 14: Results for data outsicle training set o2 : 200 6 Discussion,Conclusions and F\rrther Work This paper has shown that it is possiblc to place fractal coding into a multiresolution predictivc framework by using an orthonormal n'avelet transform and a novel blocl: searching technique. Initial results from the coder show that the method has real prornise in applications. AIso, a novel tree structured vector quantizer has becn presented which exhibits near optimal rate-distortion performance. One significa,nr problem with this technique is the excessive search time. For the highest quality ( ie a full search ), coding time is prohibit,ive. However, integrating the tree structulecl search should help in this matter. Another area requiring more work is the choice of wavelets - the lack of symmetry of the separable Daubechies wavelets clear'ly has arr impact on the quality of the results. A wavelet packet type basis could be employerl to aid orientation matching. Finally, the coder could be extended to operate in 3 dimensional space, that ir; video sequences. The tree structured vectol quantizer rvould plovide an cvel growing pool of blocks to be used for prediction between frames and it could be relativel.,' quickly lestructured when required. This rvould hopefully exploit the redunclancv betr'veen fr-ames at very low bit cost. )7 References [1] M Antonini, M. Barlaud, P. Mathieu, and I. Daubechies. Image codirrg using Wavelet Transform. In IEEE Transact'ions on Image Processing, volurne I,1992. [2] M. Balakrishnan, W. Pearlman, and L. Lu. Variable-Rate Tree-Stluctnred Vectol Quantizers. In IEEE Transact'ions on Informati,on Theory, volume 41. 1995. [3] M Barnsley and S. Demko. Iterated Function Systems and the Global Constmction of Fractals. In Proc. Royal Soci,ety of London, 1985. [4] M. Barnsley and L. Hurd. Fractal Image Compressi,on. AK Peter-s, 1992. [5] K. Barthel and T. Voy6. Adaptive Fractal Image Coding in t]re FrecpreucS' Dsmain. In Proceedings of International Workshop on Image. Processing. 1994. M [6] Gharavi-Alkhansari and T. Huang. Flactal-Based Techniques fol a Genelalized Image Coding Method. In Proc. IEEE ICASSP, 1994. [7] A E. Jacquin. A Novel Fractal Block-Coding Technique for Digital Images. Irr Proc. ICASSP '90. 1990. [8] I. Lcvy and R. \Vilson. A Hybrid Fractal-Wavelet Transform Image Data Compression Algorithm. Technical Report 289. University of Warwick, Depa,rtment of Computer Science, Septernber 1995. [9] I. Levy and R. Wiison. Predictive Waveiet Transform Coding : Uniff ing Fract;rl and Tlansform coding. In Proceedings PC596,7996. [10] Y. Linde, A. Buzo, and R Gray. An Algolithm for Vectol Quantizel Design. In IEEE Transact'ions on. Cornrnu"nicat'ions, r'olurne 28, 1980. [11] D. Monro and F. Dudbridge. Fractal Apploximation of image Blocks. ht Prctc. IEEE ICASSP. 1992. [12] L-M. Po and C-K. Chan. Adaptive Dirnensionality R.cduction Tec]urirlttes for' Tree-structured Vector Quantization. In IEEE Transact'ions on, Cornm,u.ntcut'ions, volurre 42. 1994. [13] R. Rinaldo and G. Calvagno. Image Coding by Block Prediction of Nfultilesolution Subirnages. Technical report, Universitd cli Padova, 1995. [14] J. Shapiro. Embecldecl Image Coding Using Zerotrees of Wavelet Coefficients. In IEEE Transactions on Signal Processing, r'olttme 41, 1993. 28