This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentThis preview has intentionally blurred sections. Sign up to view the full version.
View Full Document
Unformatted text preview: 14.7 Embedded Zerotree Coder 479 In this example we used a simple scalar quantizer for quantization of the coefﬁcients.
However, if we use strategies that are motivated by the properties of the coefﬁcients them—
selves, we can obtain signiﬁcant performance improvements. In the next sections we examine
two popular quantization strategies developed speciﬁcally for wavelets. 14.7 Embedded ZeroIIee 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 coefﬁcients, were superior to the generic zonal cod
ing algorithms, the EZW approach and its descendants signiﬁcantly outperform some of the
generic approaches. The particular characteristic used by the EZW algorithm is that there are
wavelet coefﬁcients 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 ﬁrst
two decompositions in Figure 14.12), then a single coefﬁcient in the smaller subband may
represent the same spatial location as multiple coefﬁcients in the other subbands. In order to put our discussion on more solid ground, consider the lOband decomposition
shown in Figure 14.15. The coefﬁcient a in the upperleft corner of band I represents the same
spatial location as coefﬁcients al in band II, 612 in band III, and :13 in band IV. In turn, the
coefﬁcient (11 represents the same spatial location as coefﬁcients (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 coefﬁcients in the form of a tree: The
coefﬁcient a forms the root of the tree with three descendants a1, a2, and (13. The coefﬁcient all
has descendants a11,a12, c113, and d14. The coefﬁcient a2 has descendants c121, 6122, (123, and £124,
and the coefﬁcient 613 has descendants 6131,6132, 5133, and (134. Each of these coefﬁcients in turn
has four descendants, making a total of 64 coefﬁcients 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 coefﬁcients closer to the root of
the tree have higher magnitudes than coefﬁcients further away from the root. This means that
often if a coefﬁcient 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 coefﬁcients arising from a particular root have magnitudes smaller than To
and we inform the decoder of this situation, then for all coefﬁcients 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
ﬁrst bit is the sign bit and the next bit is the most signiﬁcant bit of the magnitude, then the
information that a set of coefﬁcients has value less than T 0 is the same as saying that the most
signiﬁcant bit of the magnitude is 0. If there are N coefﬁcients 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 coefﬁcient has a magnitude greater than T, it is called a signiﬁcant 480 'I4 WAVELETBASED 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 IObund wavelel decomposilion. coefﬁcient at level T. If the magnitude of the coefﬁcient is less than T (it is insigniﬁcant), and
all its descendants have magnitudes less than T, then the coefﬁcient is called a zerotree root.
Finally, it might happen that the coefﬁcient itself is less than T but some of its descendants
have a value greater than T. Such a coefﬁcient is called an isolated zero. The EZW algorithm is a multiplepass algorithm, with each pass consisting of two steps:
signiﬁcance map encoding or the dominant pass, and reﬁnement or the subordinate pass. If
cmaX is the value of the largest coefﬁcient, 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 35“ mldriso quanllzer. 482 I4 WAVELETBASED COMPRESSION F I G U R E I 4 . I 8 A lhreeIevel midlread quunlizer. This selection guarantees that the largest coefﬁcient 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 coefﬁcients: signiﬁcant
positive (Sp), significant negative (sn), zerotree root (zr), and isolated zero (iz). If we used
a ﬁxedlength code, we would need 2 bits to represent each of the labels. Note that when
a coefﬁcient has been labeled a zerotree root, we do not need to label its descendants. This
assignment is referred to as signiﬁcance map coding. We can View the signiﬁcance map coding in part as quantization using a three—level
midtread quantizer. This situation is shown in Figure 14.18. The coefﬁcients labeled signiﬁ
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 coefﬁcient is positive or
negative. Note that selecting Ti according to (14.91) and (14.92) guarantees the signiﬁcant co—
efﬁcients will lie in the interval [T, 2T). Once a determination of signiﬁcance has been made,
the signiﬁcant coefﬁcients are included in a list for further reﬁnement in the reﬁnement or
subordinate passes. In the reﬁnement pass, we determine whether the coefﬁcient lies in the
upper or lower half of the interval [T, 2T). In successive reﬁnement passes, as the value of T
is reduced, the interval containing the signiﬁcant coefﬁcient is narrowed still further and the
reconstruction is updated accordingly. An easy way to perform the reﬁnement is to take the
difference between the coefﬁcient 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 coefﬁcients that have not been previously determined signiﬁcant 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 cooﬂlclonls 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 sevenlevel decomposition shown below to demonstrate the various steps of
EZW: To obtain the initial threshold value To, we ﬁnd the maximum magnitude coefﬁcient, which in this case is 26. Then
To = zllogzzéi = 16. Comparing the coefﬁcients against 16, we ﬁnd 26 is greater than 16 so we send Sp. The next
coefﬁcient 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 coefﬁcient in the scan is —7, which is also a zerotree root, as is 7, the ﬁnal 484 I4 WAVELETBASED COMPRESSION element in the scan. We do not need to encode the rest of the coefﬁcients 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 ﬁxedlength encoding), we have used up 8 bits from
our bit budget. The only signiﬁcant coefﬁcient in this pass is the coefﬁcient with a value of
26. We include this coefﬁcient in our list to be reﬁned in the subordinate pass. Calling the
subordinate list LS, we have LS : {26}. The reconstructed value of this coefﬁcient 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 signiﬁcant coefﬁcients. 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 twolevel 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 ﬁrst 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 coefﬁcients that have not yet been deemed signiﬁcant. To
emphasize the fact that we do not consider the coefﬁcients that have been deemed signiﬁcant
in the previous pass, we replace them with *: The ﬁrst coefﬁcient we encounter has a value of 6. This is less than the threshold value of
8; however, the descendants of this coefﬁcient include coefﬁcients with values of 13 and 10.
Therefore, this coefﬁcient cannot be classiﬁed as a zerotree root. This is an example of what
we deﬁned as an isolated zero. The next two coefﬁcients in the scan are —7 and 7. Both of 14.7 Embedded Zerol'ree Coder 485 these coefﬁcients have magnitudes less than the threshold value of 8. Furthermore, all their
descendants also have magnitudes less than 8. Therefore, these two coefﬁcients are coded as
zr. The next two elements in the scan are 13 and 10, which are both coded as Sp. The ﬁnal 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 coefﬁcients 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 signiﬁcant coefﬁcients
are reconstructed with values l.5T1 = 12. Thus, the reconstruction at this point is 12
0 We add the new signiﬁcant coefﬁcients to the subordinate list:
L5 = {26,13,10}. In the subordinate pass, we take the difference between the coefﬁcients and their rec0n~
structions and quantize these to obtain the correction or reﬁnement values for these coefﬁ—
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 coefﬁcients 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 WAVELETBASED 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 satisﬁed. 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 coefﬁcients
being encoded ﬁrst, thus providing for a greater reduction in the reconstruction error. Finally, in the example we determined the number of bits used by assuming ﬁxedlength
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 coefﬁcients 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 insigniﬁcant coefﬁcients together in larger subsets. The partitioning
decisions are binary decisions that are transmitted to the decoder, providing a signiﬁcance
map encoding that is more efﬁcient than EZW. In fact, the efﬁciency of the signiﬁcance map
encoding in SPIHT is such that arithmetic coding of the binary decisions provides very lit
tle gain. The thresholds used for checking signiﬁcance are powers of two, so in essence the
SPIHT algorithm sends the binary representation of the integer value of the wavelet coefﬁ
cients. As in EZW, the signiﬁcance map encoding, or set partitioning and ordering step, is
followed by a reﬁnement step in which the representations of the signiﬁcant coefﬁcients are
reﬁned. Let’s brieﬂy 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 coefﬁcients are again divided into trees originating from the lowest resolution 14.8 Set Partitioning in Hierarchical Trees 487 ab £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 coefﬁcients are grouped into 2 x 2 arrays that, except for the
coefﬁcients in band I, are offsprings of a coefﬁcient of a lower resolution band. The coefﬁ
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 coefﬁcient 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 coefﬁcients: I 0(1', j) This is the set of coordinates of the offsprings of the wavelet coefﬁcient at lo
cation (i, j). As each node can either have four offsprings or none, the size of 00‘, j) is 488 I4 WAVELETBASED COMPRESSION either zero or four. For example, in Figure 14.20 the set (9(0, 1) consists of the coordi
nates of the coefﬁcients b1, b2, b3, and b4. l D(i, j) This is the set of all descendants of the coefﬁcient 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 coefﬁcients 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 coefﬁcient at location
(i, j) except for the immediate offsprings of the coefﬁcient at location (i, j). In other
words, Z _ In Figure 14.20 the set £(07 1) consists of the coordinates of the coefﬁcients b“ , . . . ,
1714,    ,544 A set D(i, j) or £(i, j) is said to be signiﬁcant if any coefﬁcient in the set has a magnitude
greater than the threshold. Finally, thresholds used for checking signiﬁcance are powers of
two, so in essence the SPIHT algorithm sends the binary representation of the integer value of
the wavelet coefﬁcients. The bits are numbered with the least signiﬁcant bit being the zeroth
bit, the next bit being the ﬁrst signiﬁcant bit, and the kth bit being referred to as the k — 1 most
signiﬁcant bit. With these deﬁnitions under our belt, let us now describe the algorithm. The algorithm
makes use of three lists: the list of insigniﬁcant pixels (LIP), the list of signiﬁcant pixels (LSP),
and the list of insigniﬁcant sets (LIS). The LSP and LIS lists will contain the coordinates of
coefﬁcients, 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 coefﬁcients 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 ﬁrst process the members of LIP, then the members of LIS. This is
essentially the signiﬁcance map encoding step. We then process the elements of LSP in the
reﬁnement step. We begin by examining each coordinate contained in LIP. If the coefﬁcient at that coordi
nate is signiﬁcant (that is, it is greater than 2”), we transmit a 1 followed by a bit representing
the sign of the coefﬁcient (we will assume 1 for positive, 0 for negative). We then move that
coefﬁcient to the LSP list. If the coefﬁcient at that coordinate is not signiﬁcant, 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 signiﬁcant, we transmit a 0. If the set is signiﬁcant, 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 coefﬁcient at that coordinate.
In other words, we check the four coefﬁcients whose coordinates are in O(i,j). For each
coefﬁcient that is signiﬁcant, we transmit a l, the sign of the coefﬁcient, and then move the
coefﬁcient 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 reﬁnement step. In the reﬁnement step we examine each coefﬁcient that
was in the LSP prior to the current pass and output the nth most signiﬁcant bit of Ci}, . We
ignore the coefﬁcients that have been added to the list in this pass because, by declaring them
signiﬁcant at this particular level, we have already informed the decoder of the value of the
nth most signiﬁcant 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 coefﬁcient at location (0,1) is
greater than 16. In other words, it is signiﬁcant; therefore, we transmit a 1, then a 0 to indicate
the coefﬁcient is positive and move the coordinate to LSP. The next three coefﬁcients are all
insigniﬁcant at this value of the threshold; therefore, we transmit a 0 for each coefﬁcient and
leave them in LIP. The next step is to examine the contents of LIS. Looking at the descendants 490 I4 WAVELETBASED COMPRESSION of the coefﬁcient at location (0, 1) (13, 10, 6, and 4), we see that none of them are signiﬁcant
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 signiﬁcant at this value of the threshold. Therefore, we transmit
a 0 for each set. As this is the ﬁrst pass, there are no elements from the previous pass in LSP;
therefore, we do not do anything in the reﬁnement 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 insigniﬁcant at this threshold so we transmit three US. The next step is
to examine the contents of LIS. The ﬁrst element of LIS is the set containing the descendants
of the coefﬁcient at location (0, 1). Of this set, both 13 and 10 are signiﬁcant at this value of
the threshold; in other words, the set D(0, 1) is signiﬁcant. We signal this by sending a 1 and
examine the offsprings of cm. The ﬁrst offspring has a value of 13, which is signiﬁcant 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 insigniﬁcant 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 insigniﬁcant at this level;
therefore, we send a 0 for each. In the reﬁnement 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 signiﬁcantly more coefﬁcients that are deemed signiﬁcant, 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 ﬁrst pass (10000000), we can see that
the ﬁrst element of LIP is signiﬁcant and positive and no other coefﬁcient is signiﬁcant at this
level. Using the same reconstruction procedure as in EZW, we can reconstruct the coefﬁcients
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 ﬁrst 3 bits are 0 and there are only three entries in LIP, all the
entries in LIP are still insigniﬁcant. 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 signiﬁcant. Since this set is of type D, the next bits relate to its offsprings. The 101000
sequence indicates that the ﬁrst two offsprings are signiﬁcant at this level and positive and the
last two are insigniﬁcant. Therefore, we move the ﬁrst two offsprings to LSP and the last two
to LIP. We can also approximate these two signiﬁcant coefﬁcients 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 insigniﬁcant. The ﬁnal bit corresponds to the reﬁnement
pass. It is a I, so we update the reconstruction of the (0, 0) coefﬁcient 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 WAVELETBASED 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
coefﬁcients. 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 deﬁnite
improVement in the quality. Wavelet decomposition has been ﬁnding its way into various standards. The earliest ex
ample was the FBI ﬁngerprint 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.
 Spring '11
 Mukherjee

Click to edit the document details