EZW - 14.7 Embedded Zerotree Coder 479 In this example we...

Info iconThis preview shows pages 1–14. Sign up to view the full content.

View Full Document Right Arrow Icon
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 2
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 4
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 6
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 8
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 10
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 12
Background image of page 13

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 14
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 14.7 Embedded Zerotree Coder 479 In this example we used a simple scalar quantizer for quantization of the coefficients. However, if we use strategies that are motivated by the properties of the coefficients them— selves, we can obtain significant performance improvements. In the next sections we examine two popular quantization strategies developed specifically for wavelets. 14.7 Embedded ZeroII-ee Coder The embedded zerotree wavelet (EZW) coder was introduced by Shapiro [212]. It is a quan- tization and coding strategy that incorporates some characteristics of the wavelet decompo— sition. Just as the quantization and coding approach used in the JPEG standard, which were motivated by the characteristics of the coefficients, were superior to the generic zonal cod ing algorithms, the EZW approach and its descendants significantly outperform some of the generic approaches. The particular characteristic used by the EZW algorithm is that there are wavelet coefficients in different subbands that represent the same spatial location in the im— age. If the decomposition is such that the size of the different subbands is different (the first two decompositions in Figure 14.12), then a single coefficient in the smaller subband may represent the same spatial location as multiple coefficients in the other subbands. In order to put our discussion on more solid ground, consider the lO-band decomposition shown in Figure 14.15. The coefficient a in the upper-left corner of band I represents the same spatial location as coefficients al in band II, 612 in band III, and :13 in band IV. In turn, the coefficient (11 represents the same spatial location as coefficients (111 76112, (113, and 5114 in band V. Each of these pixels represents the same spatial location as four pixels in band VIII, and so on. In fact, we can visualize the relationships of these coefficients in the form of a tree: The coefficient a forms the root of the tree with three descendants a1, a2, and (13. The coefficient all has descendants a11,a12, c113, and d14. The coefficient a2 has descendants c121, 6122, (123, and £124, and the coefficient 613 has descendants 6131,6132, 5133, and (134. Each of these coefficients in turn has four descendants, making a total of 64 coefficients in this tree. A pictorial representation of the tree is shown in Figure 14.16. Recall that when natural images are decomposed in this manner most of the energy is compacted into the lower bands. Thus, in many cases the coefficients closer to the root of the tree have higher magnitudes than coefficients further away from the root. This means that often if a coefficient has a magnitude less than a given threshold, all its descendants will have magnitudes less than that threshold. In a scalar quantizer, the outer levels of the quantizer correspond to larger magnitudes. Consider the 3—bit quantizer shown in Figure 14.17. If we determine that all coefficients arising from a particular root have magnitudes smaller than To and we inform the decoder of this situation, then for all coefficients in that tree we need only use 2 bits per sample, while getting the same performance as we would have obtained using the 3—bit quantizer. If the binary coding scheme used in Figure 14.17 is used, in which the first bit is the sign bit and the next bit is the most significant bit of the magnitude, then the information that a set of coefficients has value less than T 0 is the same as saying that the most significant bit of the magnitude is 0. If there are N coefficients in the tree, this is a savings of N bits minus however many bits are needed to inform the decoder of this situation. Before we describe the EZW algorithm, we need to introduce some terminology. Given a threshold T, if a given coefficient has a magnitude greater than T, it is called a significant 480 'I4 WAVELET-BASED COMPRESSION —*—> “i \ “H “12 ulllaHZalZIalZZ a an an; \ ali'xailautzsdlu I ll ‘ am “ml/1141 “I42 “m 11114 “in “H4 i + VI VII IX X _—_______________—————————— F I 6 II R E 'I 4 . 'I 5 A IO-bund wavelel decomposilion. coefficient at level T. If the magnitude of the coefficient is less than T (it is insignificant), and all its descendants have magnitudes less than T, then the coefficient is called a zerotree root. Finally, it might happen that the coefficient itself is less than T but some of its descendants have a value greater than T. Such a coefficient is called an isolated zero. The EZW algorithm is a multiple-pass algorithm, with each pass consisting of two steps: significance map encoding or the dominant pass, and refinement or the subordinate pass. If cmaX is the value of the largest coefficient, the initial value of the threshold T0 is given by T0 : 2L10g2 Urnaxl. ) 14.7 Embedded Zerotree Coder 481 “11 “12 “13 _ “14 “21 “22 “23 “24 “31 “32 “33 “111 “112 “113 “114 “121 “122 “123 “124 “131 “132 “133 “134 “141 “142 “143 “144 H F l 6 I! II E 'l 4 . I 6 Duh slruciuro used in “lo EZW coder. E F l 6 II II E 'I 4 . I 1 A 3-5“ mldriso quanllzer. 482 I4 WAVELET-BASED COMPRESSION F I G U R E I 4 . I 8 A lhree-Ievel midlread quunlizer. This selection guarantees that the largest coefficient will lie in the interval [T0, 2T0). In each pass, the threshold T1- is reduced to half the value it had in the previous pass: T,- : éTH. (14.92) For a given value of Ti, we assign one of four possible labels to the coefficients: significant positive (Sp), significant negative (sn), zerotree root (zr), and isolated zero (iz). If we used a fixed-length code, we would need 2 bits to represent each of the labels. Note that when a coefficient has been labeled a zerotree root, we do not need to label its descendants. This assignment is referred to as significance map coding. We can View the significance map coding in part as quantization using a three—level midtread quantizer. This situation is shown in Figure 14.18. The coefficients labeled signifi- cant are simply those that fall in the outer levels of the quantizer and are assigned an initial reconstructed value of 1.5Ti or —1.5Ti, depending on whether the coefficient is positive or negative. Note that selecting Ti according to (14.91) and (14.92) guarantees the significant co— efficients will lie in the interval [T, 2T). Once a determination of significance has been made, the significant coefficients are included in a list for further refinement in the refinement or subordinate passes. In the refinement pass, we determine whether the coefficient lies in the upper or lower half of the interval [T, 2T). In successive refinement passes, as the value of T is reduced, the interval containing the significant coefficient is narrowed still further and the reconstruction is updated accordingly. An easy way to perform the refinement is to take the difference between the coefficient value and its reconstruction and quantize it using a two- level quantizer with reconstruction values :: T / 4. This quantized value is then added on to the current reconstruction value as a correction term. The wavelet coefficients that have not been previously determined significant are scanned in the manner depicted in Figure 14.19, with each parent node in a tree scanned before its 14.7 Embedded Zerotree Coder 483 L :. FIGURE 14.19 Scanning of wuvolol coofllclonls for encoding using "I. IZW algorilhln. offspring. This makes sense because if the parent is determined to be a zerotree root, we would not need to encode the offspring. Although this may sound confusing, in order to see how simple the encoding procedure actually is, let’s use an example. Example 1 4.7.1: Let’s use the seven-level decomposition shown below to demonstrate the various steps of EZW: To obtain the initial threshold value To, we find the maximum magnitude coefficient, which in this case is 26. Then To = zllogzzéi = 16. Comparing the coefficients against 16, we find 26 is greater than 16 so we send Sp. The next coefficient in the scan is 6, which is less than 16. Furthermore, its descendants (13, 10, 6, and 4) are all less than 16. Therefore, 6 is a zerotree root, and we encode this entire set with the label zr. The next coefficient in the scan is —7, which is also a zerotree root, as is 7, the final 484 I4 WAVELET-BASED COMPRESSION element in the scan. We do not need to encode the rest of the coefficients separately because they have already been encoded as part of the various zerotrees. The sequence of labels to be transmitted at this point is sp zr zr zr Since each label requires 2 bits (for fixed-length encoding), we have used up 8 bits from our bit budget. The only significant coefficient in this pass is the coefficient with a value of 26. We include this coefficient in our list to be refined in the subordinate pass. Calling the subordinate list LS, we have LS : {26}. The reconstructed value of this coefficient is 1.5T0 2 24, and the reconstructed bands look like this: The next step is the subordinate pass, in which we obtain a correction term for the re- construction value of the significant coefficients. In this case, the list L5 contains only one element. The difference between this element and its reconstructed value is 26 — 24 = 2. Quantizing this with a two-level quantizer with reconstruction levels :tT0/4, we obtain a cor- rection term of 4. Thus, the reconstruction becomes 24 + 4 : 28. Transmitting the correction term costs a single bit, therefore at the end of the first pass we have used up 9 bits. Using only these 9 bits, we would obtain the following reconstruction: We now reduce the value of the threshold by a factor of two and repeat the process. The value of T1 is 8. We rescan the coefficients that have not yet been deemed significant. To emphasize the fact that we do not consider the coefficients that have been deemed significant in the previous pass, we replace them with *: The first coefficient we encounter has a value of 6. This is less than the threshold value of 8; however, the descendants of this coefficient include coefficients with values of 13 and 10. Therefore, this coefficient cannot be classified as a zerotree root. This is an example of what we defined as an isolated zero. The next two coefficients in the scan are —7 and 7. Both of 14.7 Embedded Zerol'ree Coder 485 these coefficients have magnitudes less than the threshold value of 8. Furthermore, all their descendants also have magnitudes less than 8. Therefore, these two coefficients are coded as zr. The next two elements in the scan are 13 and 10, which are both coded as Sp. The final two elements in the scan are 6 and 4. These are both less than the threshold, but they do not have any descendants. We code these coefficients as iz. Thus, this dominant pass is coded as iz zr zr Sp Sp iz iz which requires 14 bits, bringing the total number of bits used to 23. The significant coefficients are reconstructed with values l.5T1 = 12. Thus, the reconstruction at this point is 12 0 We add the new significant coefficients to the subordinate list: L5 = {26,13,10}. In the subordinate pass, we take the difference between the coefficients and their rec0n~ structions and quantize these to obtain the correction or refinement values for these coeffi— cients. The possible values for the correction terms are iT1/4 : :2: 26 — 28 = —2 => Correction term : —2 l3 — l2 : l :> Correction term : 2 (14.93) 10 ~ 12 = —2 => Correction term 2 —2 Each correction requires a single bit, bringing the total number of bits used to 26. With these corrections, the reconstruction at this stage is If we go through one more pass, we reduce the threshold value to 4. The coefficients to be scanned are The dominant pass results in the following coded sequence: Sp sn Sp Sp Sp Sp sn iz iz Sp iz iz iz This pass cost 26 bits, equal to the total number of bits used previous to this pass. The recon- struction upon decoding of the dominant pass is 486 I4 WAVELET-BASED COMPRESSION The subordinate list is L5 = {26,13,10,6 — 7,7, 6,4,4, —4,4} By now it should be reasonably clear how the algorithm works. We continue encoding until we have exhausted our bit budget or until some other criterion is satisfied. 9 There are several observations we can make from this example. Notice that the encoding process is geared to provide the most bang for the bit at each step. At each step the bits are used to provide the maximum reduction in the reconstruction error. If at any time the encoding is interrupted, the reconstruction using this (interrupted) encoding is the best that the algorithm could have provided using this many bits. The encoding improves as more bits are transmitted. This form of coding is called embedded coding. In order to enhance this aspect of the algorithm, we can also sort the subordinate list at the end of each pass using information available to both encoder and decoder. This would increase the likelihood of larger coefficients being encoded first, thus providing for a greater reduction in the reconstruction error. Finally, in the example we determined the number of bits used by assuming fixed-length encoding. In practice, arithmetic coding is used, providing a further reduction in rate. 14.8 Sel Purliiioning in Hierarchical Tree: The SPIHT (Set Partitioning in Hierarchical Trees) algorithm is a generalization of the EZW algorithm and was proposed by Amir Said and William Pearlman [199]. Recall that in EZW we transmit a lot of information for little cost when we declare an entire subtree to be insignif- icant and represent all the coefficients in it with a zerotree root label zr. The SPIHT algorithm uses a partitioning of the trees (which in SPIHT are called spatial orientation trees) in a man- ner that tends to keep insignificant coefficients together in larger subsets. The partitioning decisions are binary decisions that are transmitted to the decoder, providing a significance map encoding that is more efficient than EZW. In fact, the efficiency of the significance map encoding in SPIHT is such that arithmetic coding of the binary decisions provides very lit- tle gain. The thresholds used for checking significance are powers of two, so in essence the SPIHT algorithm sends the binary representation of the integer value of the wavelet coeffi- cients. As in EZW, the significance map encoding, or set partitioning and ordering step, is followed by a refinement step in which the representations of the significant coefficients are refined. Let’s briefly describe the algorithm and then look at some examples of its operation. How- ever, before we do that we need to get familiar with some notation. The data structure used by the SPIHT algorithm is similar to that used by the EZW algorithm—although not the same. The wavelet coefficients are again divided into trees originating from the lowest resolution 14.8 Set Partitioning in Hierarchical Trees 487 a|b £7112a II IV VI VII l_. ___________————————-———-—— F I G U R E ‘I 4 . 2 0 Data structure used in the SPIH'I' algorithm. band (band I in our case). The coefficients are grouped into 2 x 2 arrays that, except for the coefficients in band I, are offsprings of a coefficient of a lower resolution band. The coeffi- cients in the lowest resolution band are also divided into 2 X 2 arrays. However, unlike the EZW case, all but one of them are root nodes. The coefficient in the top—left corner of the array does not have any offsprings. The data structure is shown pictorially in Figure 14.20 for a seven—band decomposition. The trees are further partitioned into four types of sets, which are sets of coordinates of the coefficients: I 0(1', j) This is the set of coordinates of the offsprings of the wavelet coefficient at lo- cation (i, j). As each node can either have four offsprings or none, the size of 00‘, j) is 488 I4 WAVELET-BASED COMPRESSION either zero or four. For example, in Figure 14.20 the set (9(0, 1) consists of the coordi- nates of the coefficients b1, b2, b3, and b4. l D(i, j) This is the set of all descendants of the coefficient at location (i, j). Descendants include the offsprings, the offsprings of the offsprings, and so on. For example, in Fig- ure 14.20 the set D(0, 1) consists of the coordinates of the coefficients b1, . . . ,b4,b11, . . . ,b14, . . . ,b44. Because the number of offsprings can either be zero or four, the size of DU, j) is either zero or a sum of powers of four. I “H This is the set of all root nodes—essentially band I in the case of Figure 14.20. I £(i, j) This is the set of coordinates of all the descendants of the coefficient at location (i, j) except for the immediate offsprings of the coefficient at location (i, j). In other words, Z _ In Figure 14.20 the set £(07 1) consists of the coordinates of the coefficients b“ , . . . , 1714, - - - ,544- A set D(i, j) or £(i, j) is said to be significant if any coefficient in the set has a magnitude greater than the threshold. Finally, thresholds used for checking significance are powers of two, so in essence the SPIHT algorithm sends the binary representation of the integer value of the wavelet coefficients. The bits are numbered with the least significant bit being the zeroth bit, the next bit being the first significant bit, and the kth bit being referred to as the k — 1 most significant bit. With these definitions under our belt, let us now describe the algorithm. The algorithm makes use of three lists: the list of insignificant pixels (LIP), the list of significant pixels (LSP), and the list of insignificant sets (LIS). The LSP and LIS lists will contain the coordinates of coefficients, while the LIS will contain the coordinates of the roots of sets of type D or A We start by determining the initial value of the threshold. We do this by calculating n = Llogz cmaxj where cmax is the maximum magnitude of the coefficients to be encoded. The LIP list is initialized with the set H. Those elements of H that have descendants are also placed in LIS as type D entries. The LSP list is initially empty. In each pass, we will first process the members of LIP, then the members of LIS. This is essentially the significance map encoding step. We then process the elements of LSP in the refinement step. We begin by examining each coordinate contained in LIP. If the coefficient at that coordi- nate is significant (that is, it is greater than 2”), we transmit a 1 followed by a bit representing the sign of the coefficient (we will assume 1 for positive, 0 for negative). We then move that coefficient to the LSP list. If the coefficient at that coordinate is not significant, we trans- mit a 0. After examining each coordinate in LIP, we begin examining the sets in LIS. If the set at coordinate (i, j) is not significant, we transmit a 0. If the set is significant, we transmit a 1. What we do after that depends on whether the set is of type D or £. 14.8 Set Partitioning in Hierarchical Trees 489 If the set is of type D, we check each of the offsprings of the coefficient at that coordinate. In other words, we check the four coefficients whose coordinates are in O(i,j). For each coefficient that is significant, we transmit a l, the sign of the coefficient, and then move the coefficient to the LSP. For the rest we transmit a 0 and add their coordinates to the LIP. Now that we have removed the coordinates of 0(1‘, j) from the set, what is left is simply the set £(i,j). If this set is not empty, we move it to the end of the LIS and mark it to be of type L. Note that this new entry into the LIS has to be examined during this pass. If the set is empty, we remove the coordinate (i, j) from the list. If the set is of type E, we add each coordinate in (9(1', j) to the end of the LIS as the root of a set of type D. Again, note that these new entries in the LIS have to be examined during this pass. We then remove (i, j) from the LIS. Once we have processed each of the sets in the LIS (including the newly formed ones), we proceed to the refinement step. In the refinement step we examine each coefficient that was in the LSP prior to the current pass and output the nth most significant bit of Ci},- . We ignore the coefficients that have been added to the list in this pass because, by declaring them significant at this particular level, we have already informed the decoder of the value of the nth most significant bit. This completes one pass. Depending on the availability of more bits or external factors, if we decide to continue with the coding process, we decrement n by one and continue. Let’s see the functioning of this algorithm on an example. Example I 4.8. I : Let’s use the same example we used for demonstrating the EZW algorithm: We will go through three passes at the encoder and generate the transmitted bitstream, then decode this bitstream. First Pass: The value for n in this case is 4. The three lists at the encoder are LIP: {(0,0) ~> 26, (0, 1) —> 6, (1,0) —> —7,(1,1)—> 7} L18: {(0, 1)D, (1,0)1), (1, 1)D} LSP: In the listing for LIP, we have included the —> # to make it easier to follow the example. Beginning our algorithm, we examine the contents of LIP. The coefficient at location (0,1) is greater than 16. In other words, it is significant; therefore, we transmit a 1, then a 0 to indicate the coefficient is positive and move the coordinate to LSP. The next three coefficients are all insignificant at this value of the threshold; therefore, we transmit a 0 for each coefficient and leave them in LIP. The next step is to examine the contents of LIS. Looking at the descendants 490 I4 WAVELET-BASED COMPRESSION of the coefficient at location (0, 1) (13, 10, 6, and 4), we see that none of them are significant at this value of the threshold so we transmit a 0. Looking at the descendants of 610 and c1 1, we can see that none of these are significant at this value of the threshold. Therefore, we transmit a 0 for each set. As this is the first pass, there are no elements from the previous pass in LSP; therefore, we do not do anything in the refinement pass. We have transmitted a total of 8 bits at the end of this pass (10000000), and the situation of the three lists is as follows: LIP: {(0,1) —> 6, (1,0) —> ‘7, (1, 1) —> 7} L18: {(0, 1)D, (1,0)1), (1, 1)D} LSP: {(0, 0) —> 26} Second Pass: For the second pass we decrement n by 1 to 3, which corresponds to a thresh— old value of 8. Again, we begin our pass by examining the contents of LIP. There are three elements in LIP. Each is insignificant at this threshold so we transmit three US. The next step is to examine the contents of LIS. The first element of LIS is the set containing the descendants of the coefficient at location (0, 1). Of this set, both 13 and 10 are significant at this value of the threshold; in other words, the set D(0, 1) is significant. We signal this by sending a 1 and examine the offsprings of cm. The first offspring has a value of 13, which is significant and positive, so we send a 1 followed by a 0. The same is true for the second offspring, which has a value of 10. So we send another 1 followed by a 0. We move the coordinates of these two to the LSP. The next two offsprings are both insignificant at this level; therefore, we move these to LIP and transmit a 0 for each. As [,(0, 1) = we remove (0, 1)D from LIS. Looking at the other elements of LIS, we can clearly see that both of these are insignificant at this level; therefore, we send a 0 for each. In the refinement pass we examine the contents of LSP from the previous pass. There is only one element in there that is not from the current sorting pass, and it has a value of 26. The third MSB of 26 is 1; therefore, we transmit a 1 and complete this pass. In the second pass we have transmitted 13 bits: 0001101000001. The condition of the lists at the end of the second pass is as follows: LIP: {(0,1) —> 6,(1,0) —> —7, (1, 1) —> 7(1,2) —> 6, (1,3) —> 4} LIS: {(1,0)D,(1,1)D} LSP: {(0,0) —> 26, (0,2) —> 13, (0,3) —> 10} Third Pass: The third pass proceeds with n 2 2. As the threshold is now smaller, there are significantly more coefficients that are deemed significant, and we end up sending 26 bits. You can easily verify for yourself that the transmitted bitstream for the third pass is 10111010101101100110000010. The condition of the lists at the end of the third pass is as follows: LIP: {(3,0) —> 2, (3, 1) —> —2, (2,3) —> —3, (3,2) —> —2, (3,3) —> 0} L18: LSP: {(0, 0) —> 26, (0,2) —> 13, (0,3) —> 10, (0, 1) —> 6, (1,0) —> —7, (1, 1) —> 7, (1,2) —> 6, (1,3) —> 4(2,0) —> 4, (2, l) —> —4, (2,2) —> 4} 14.8 Set Partitioning in Hierarchical Trees 49] Now for decoding this sequence. At the decoder we also start out with the same lists as the encoder: LIP: {(070)7(071))(170)a(171)} LIS: {(0,1)D,(1,0)D,(1,1)D} LSP: We assume that the initial value of n is transmitted to the decoder. This allows us to set the threshold value at 16. Upon receiving the results of the first pass (10000000), we can see that the first element of LIP is significant and positive and no other coefficient is significant at this level. Using the same reconstruction procedure as in EZW, we can reconstruct the coefficients at this stage as and, following the same procedure as at the encoder, the lists can be updated as LIP: {(0, 1), (1,0), (1, 1)} L18: {(0,1)D,(1,0)D,(1,1)D} LSP: {(0,0)} For the second pass we decrement n by one and examine the transmitted bitstream: 0001101000001. Since the first 3 bits are 0 and there are only three entries in LIP, all the entries in LIP are still insignificant. The next 9 bits give us information about the sets in LIS. The fourth bit of the received bitstream is 1. This means that the set with root at coordinate (0, l) is significant. Since this set is of type D, the next bits relate to its offsprings. The 101000 sequence indicates that the first two offsprings are significant at this level and positive and the last two are insignificant. Therefore, we move the first two offsprings to LSP and the last two to LIP. We can also approximate these two significant coefficients in our reconstruction by 1.5 x 23 = 12. We also remove (0, 1)?) from LIS. The next two bits are both 0, indicating that the two remaining sets are still insignificant. The final bit corresponds to the refinement pass. It is a I, so we update the reconstruction of the (0, 0) coefficient to 24 + 8/2 : 28. The reconstruction at this stage is and the lists are as follows: LIP: {(0, 1), (1,0), (1, 1), (1,2), (1,3)} LIS: {(1,0)1), (1, 1)D} LSP: {(0, 0), (0, 2), (0, 3)} 492 'I4 WAVELET-BASED COMPRESSION For the third pass we again decrement n, which is now 2, giving a threshold value of 4. Decoding the bitstream generated during the third pass (101 1101010110] 1001 10000010), we update our reconstruction to and our lists become LIP: {3,0),(3, 1)} L18: « LSPZ{(0,0),(072),(0,3)7(0:1)a(1?0)>(171)’(172)7(270)7(271)’(372)} At this stage we do not have any sets left in LIS and we simply update the values of the coefficients. 6 Finally, let’s look at an example of an image coded using SPIHT. The image shown in Figure 14.21 is the reconstruction obtained from a compressed representation that used 0.5 bits per pixel. (The programs used to generate this image were obtained from the following website: http://ipl.rpi.edu/SPIHT.) Comparing this with Figure 14.14, we can see a definite improVement in the quality. Wavelet decomposition has been finding its way into various standards. The earliest ex- ample was the FBI fingerprint image compression standard. The latest is the new image com- pression being developed by the JPEG committee, commonly referred to as J PEG 2000. We take a brief look at the current status of JPEG 2000. F I G U R E I 4 . 2 I Recenslruclien oi Sinun image encoded using SPIII'I' cl 0.5 bils per pixel. ...
View Full Document

This note was uploaded on 06/09/2011 for the course CAP 5015 taught by Professor Mukherjee during the Spring '11 term at University of Central Florida.

Page1 / 14

EZW - 14.7 Embedded Zerotree Coder 479 In this example we...

This preview shows document pages 1 - 14. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online