Vous êtes sur la page 1sur 13

IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 25, NO.

2, FEBRUARY 2016

713

Generalization of SPIHT: Set Partition


Coding System
Qiufu Li, Derong Chen, Wei Jiang, Bingtai Liu, and Jiulu Gong

Abstract This paper constructs a set partition coding


system (SPACS) to combine the advantages of different types of
set partition coding algorithms. General tree (GT) is an important conception introduced in this paper, which can represent
tree set and square set simultaneously. With the help of GT,
SPIHT is generalized to construct degree-k SPIHT based on
the analysis of two kinds of set partition operations. Using the
same coding mechanism, SPACS(k, p) is constructed, aided with
virtual subbands that are generated by recursive division on the
L L band. SPACS belongs to tree-set partition coding algorithms
if k and p take smaller values. In particular, SPACS(2,1) is the
classical SPIHT. SPACS tends toward a block-set partition coding
algorithm as k, p increases. Location bit, amplitude bit, and
unnecessary bit are presented, which can be used to analyze
the coding efficiency of SPACS. We compress 256 images with
512 512 using SPACS. The numerical results show SPACS
achieves some improvements in coding efficiency over SPIHT,
especially at very low bitrate. On average, to code every image,
SPACS(3,1) (at an average of 3.93 bpp) needs 7792 more location
bits but saves 10 218 unnecessary bits, compared with
SPIHT (3.94 bpp).
Index
SPACS.

Terms SPIHT,

general

tree,

virtual

subband,

I. I NTRODUCTION
ET PARTITION coding (SPC) algorithms based on
hierarchical subband transformation (for example, wavelet
transformation) consist of a series of important image coding
algorithms, including EZW [1], SPIHT [2], SPECK [3],
WQT [4], et al. A comprehensive tutorial on SPC and its
usage in wavelet coding systems can be found in [5] and [6].
SPC algorithms can be classified into tree-set partition
coding (T-SPC) algorithms and block-set partition
coding (B-SPC) algorithms.
T-SPC algorithms include EZW, SPIHT, et al. EZW and
SPIHT were constructed via tree sets in transformed image
matrix (TM) of original image, which exploit the energy
concentration (interband correlation) of TM. SPIHT is usually
considered as an improved version of EZW. In [7], the authors
proposed degree-k zerotree and degree-k zerotree coder based

Manuscript received July 1, 2015; revised October 16, 2015 and


December 7, 2015; accepted December 7, 2015. Date of publication December 22, 2015; date of current version January 5, 2016. The associate editor
coordinating the review of this manuscript and approving it for publication was
Dr. Joan Serra-Sagrista.
Q. Li, D. Chen, and J. Gong are with the National Laboratory for Mechatronic and Control, Beijing Institute of Technology, Beijing 100081, China
(e-mail: qiufu_li_1988@163.com; cdrmy@263.net; lujiugong@bit.edu.cn).
W. Jiang and B. Liu are with the Beijing Institute of Astronautical
Systems Engineering, Beijing 100076, China (e-mail: jianggweii@163.com;
liubingtaii@163.com).
Color versions of one or more of the figures in this paper are available
online at http://ieeexplore.ieee.org.
Digital Object Identifier 10.1109/TIP.2015.2509253

on analysis of EZW and SPIHT. They concluded that SPIHT


is the best coding algorithm among degree-k zerotree coders.
Because of its superior efficiency, SPIHT has been applied in
compression of hyperspectral image [8], video [9], fingerprint
image [10], medical image [11], and so on. Some scholars
combined SPIHT and encryption [12].
In [7], the authors did not present tangible process of
degree-k zerotree coders. Embedded descendent-only zerotree
wavelet coder was constructed in [13], which can be considered as degree-1 zerotree coder that falls between EZW
and SPIHT. In [14], the authors presented the process of
tuned degree-k zerotree wavelet coder (TDKZW) which is a
generalization of SPIHT. However, TDKZW is inflexible that
one must rewrite the program of the coder if the parameter k
is changed.
B-SPC algorithms include SPECK, WQT, et al. Besides
the energy concentration, local smoothness in same subband
(intraband correlation) of TM is exploited by these algorithms.
The data of coding efficiencies in the literatures we have
consulted show that SPIHT usually has better coding efficiency
than that of SPECK. However, in some cases (for example, in
compression of image Barbara [3], and lossless compression of
some hyperspectral images [15]), one can get better compression efficiency using SPECK instead of SPIHT. Furthermore,
in [16], the authors implemented a comparative study for SAR
complex image data compression, and proved that, among the
algorithms they considered, WQT achieves the best coding
performance for the data compression. These facts indicate
B-SPC algorithms have their unique advantage compared with
T-SPC algorithms.
In this paper, we present a generalization of SPIHT Set
PArtition Coding System (SPACS) to combine the advantages
of T-SPC and B-SPC algorithms. Firstly, general tree (GT) is
proposed. Then, SPIHT is generalized to construct degree-k
SPIHT (k-SPIHT) based on GT and analysis of two kinds
of set partition operations used in SPIHT. Virtual subband
is another important conception proposed in this paper.
SPACS(k, p) is constructed based on vitrual subbands and the
construction of k-SPIHT, where k and p are two parameters.
SPACS(2,1) is the classical SPIHT.
The paper is organized in the following manner.
In Section II, the conception of GT is presented. The set
partition operations used in SPIHT and SPECK are analyzed in Section III. In Section IV, k-SPIHT and SPACS are
constructed. Section V consists of a simple 8 8 example
illustrating SPACS. In Section VI, the numerical results of
images encoded using SPACS are presented. The conclusion
and remaining issues are listed in Section VII.

1057-7149 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.

714

IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 25, NO. 2, FEBRUARY 2016

Fig. 1.

Tree structure used in SPIHT, where q = 5, n d = 2.

Fig. 2. GT example using binary tree, with solid circle belongs to the GT
and empty circle does not.

II. S YSTEM OF N OTATIONS


In this section, we give the notations used in this paper.
1) For a given image I , C denotes its transformed image
matrix (TM) after n d level wavelet transformation,
where I, C Rrl and r, l are the row and column
number of I . Let r = l = 2q for convenience.
2) L L is low frequency subband in upper left corner of C.
3) The level number of subbands in C are shown in
Fig. 1. L L = Bnd +1 has the largest number n d + 1,
and the highest frequency subband has the smallest
number 1. The high frequency subbands in C are notated
as Bnd , Bnd 1 , , B1 , respectively.
4) ci j is the coefficient located at the coordinate (i, j ) in C,
and n i j denotes the subband level number to which (i, j )
belongs.
Tree structure among C is used in SPIHT, illustrated
in Fig. 1. This tree connects coefficients in different subbands
which express the information of same area in image I .
5) For SPIHT, a tree shown in Fig. 1 is called initial tree,
whose root node is located in L L.
6) T r ee(i, j ) denotes a tree whose root node is (i, j ). This
tree connects the coefficients in Bni j , Bni j 1 , , B1 .
The tree is defined in such a way that each node has
either no offspring (the leaves, belong to B1 ) or four
offspring which always form a group of 2 2 adjacent
nodes and correspond to the coefficients of the same
spatial orientation in the next finer subband of C. Each
node and its offspring express the information in the
same region of original image I .
7) In a very general way, GT (i, j ; n 1, n 2 , n 3 ) denotes a
general tree (GT), where n 1 = n i j , n 2 denotes the level
number of the first subband that T r ee(i, j ) overlaps, n 3
denotes the number of the last, i.e.,

 n
2

GT (i, j ; n 1, n 2 , n 3 ) = T r ee(i, j )
Bn ,
n=n 3

where n 1 n 2 n 3 . Fig. 2 illustrates a GT using binary


tree. For a GT, n 1 n 2 and n 2 n 3 + 1 are its degree
and height, respectively. GT (i, j ; n 1, n 2 , n 3 ) is called
degree-(n 1 n 2 ) and height-(n 2 n 3 + 1) tree. Then,
the GT shown in Fig. 2 is degree-2 and height-3.
According to 7), one can find that
8) For (i, j ) C, GT (i, j ; n i j , n i j , 1) = T r ee(i, j ).

9) GT (i, j ; n i j , n i j 1, 1) and GT (i, j ; n i j , n i j 2, 1)


are tree without root node and tree without root and
its offspring nodes. They are equal to the sets D(i, j )
and L(i, j ) used in [2]. They are also trees of type A
and type B in SPIHT, and belong to degree-1 GTs and
degree-2 GTs, respectively.
10) GT (i, j ; n i j , n i j 1, n i j 1) is the offspring set of node
(i, j ), which is equal to O(i, j ) in [2].
11) GT (i, j ; n 1 , n 2 , n 3 ) is a square set in C when n 2 = n 3 ,
which is the set of type S used in SPECK [3].
12) GT (i, j ; n 1 , n 1 , n 1 ) is a single point.
III. S ET O PERATIONS
SPIHT and SPECK are set partition coding (SPC) algorithms constructed based on the idea of successive quantization
approximation. These algorithms partition the coefficient sets
of C step by step to find significant coefficients and code them.
In SPC algorithms, whether a set needs to be partitioned
will be decided by significance map. For a set T C, the
significance map is



1, max(i, j )T |ci j | 2n ,
n (T ) =
0, otherwise.
where 1 indicates the set is significant to threshold T = 2n ,
and 0 indicates insignificant. An insignificant degree-k tree is
equal to the degree-k zerotree in [7].
In SPIHT, tree sets are used. In its initialization, SPIHT
partitions L L into 22(qnd ) single points and puts them into
the list of insignificant points (LIP). Meanwhile, the algorithm
divides all high frequency subbands into 3 22(qnd 1) trees
of type A (degree-1 trees) and puts them into the list of
insignificant sets (LIS). In the process of SPIHT, a significant
tree of type A is partitioned into a tree of type B (degree-2
tree) and 4 single points; a significant tree of type B is divided
into 4 trees of type A with same height.
In SPECK, block sets are used. In the initialization of
SPECK, C is partitioned into two parts, as shown in Fig. 3(a).
The low frequency subband L L is treated as a square set S, and
the remainder of C is marked as H (it is I in [3]). In SPECK,
a significant square set is divided into four square sets in the
way shown in Fig. 3(b). This set operation is called quadtree
partitioning in [3]. If the set H is significant, it is partitioned

LI et al.: GENERALIZATION OF SPIHT: SPACS

715

Fig. 3. Set partition operations used in SPECK. (a) Initial partition of C.


(b) Quadtree partitioning (Divide). (c) Octave band partitioning (Extract).

into 3 square sets and a new set H , which is shown in Fig. 3(c).
This operation is called octave band partitioning in [3].
In SPIHT, insignificant points and insignificant sets are put
in LIP and LIS, respectively; but, in SPECK, they put in LIS
together. Significant points are put in the list of significant
points (LSP), in SPIHT and SPECK.
The operations executed on GT in SPIHT and SPECK can
be classified into set coding operations and set partition
operations.
A. Set Coding Operations
In SPC algorithms, the purposes of the significance map
(set coding operation) are coding GT and deciding the further
treatments to the GT. If the output of set coding operation is 1,
then the GT will be partitioned using a set partition operation,
otherwise the GT is prepared for the next set coding operation.
The codewords 0 and 1 output from set coding operations
constitute the mainbody of bit stream output from the SPC
algorithms, which can be classified into 3 parts. The codewords
coding multiple sets (the sets contain more than 3 nodes)
are called location bits, because these codewords express the
relative position of the significant coefficients in C under the
current threshold. The codewords coding significant points are
called amplitude bits, which refine the amplitude of the coefficients. The codewords (which are all 0s) coding insignificant
points are called unnecessary bits, because these codewords
are not needed if the coefficients are coded individually using
their binary expressions. The location bits in this paper have
function to express the partial ordering of the transformed
image elements by magnitude in [2].
In received bit stream, it is reasonable that one hopes there
are more amplitude bits, but less location bits and unnecessary
bits.
B. Set Partition Operations
Set partition operation is executed when a GT is significant,
which refines the relative position of significant coefficient
at the current threshold. If set partition operations are conformable to the distribution of the insignificant coefficients
in C, then location bits and unnecessary bits will be reduced.
However, it has to use regular sets in process of the algorithms,
otherwise the algorithm needs more overhead to express set
partition operations.
Set partition operations were classified into Divide
and Extract in [17]. Operation Divide partitions

Fig. 4. Illustrations for set partition operations used in SPIHT and SPECK
with binary tree. (a) Divide. (b) Extract.

GT (i, j ; n 1 , n 2 , n 3 ) into 4 (or 3) child GTs, i.e.,


GT (k, l; n 1 1, n 2 , n 3 ), (k, l) GT (i, j ; n 1 , n 1 1, n 1 1).
Operation Extract contains 2 steps: 1. partition
into
GT (i, j ; n 1 , n 2 , n 2 )
and
GT (i, j ; n 1 , n 2 , n 3 )
GT (i, j ; n 1 , n 2 1, n 3 ), 2. partition GT (i, j ; n 1 , n 2 , n 2 )
using Divide (this step is not needed if n 1 = n 2 ). Fig. 4
describes Divide and Extract. For height-1 GT, Divide and
Extract are identical.
Due to interband correlation of C, the significant coefficients
are located in GT (i, j ; n 1, n 2 , n 2 ) with very large probability
when GT (i, j ; n 1, n 2 , n 3 ) is significant, which is the reason
that step 1 is implemented in Extract. Step 2 is implemented
according to intraband correlation of C. Operation Extract is
executed on set of type A (degree-1 tree) in SPIHT and the
set H in SPECK, when the sets are significant. But, in EZW,
Extract is executed on degree-0 tree if the algorithm ensures
the root node is significant, which complicates EZW and may
be the main reason that EZW is not considered as a strictly
SPC algorithm in [5].
Extract can be executed on significant GT continually to
reduce the GT to several individual points, which is the way
used in SPECK. However, in order to comply the distribution
of significant coefficients with extent possible, Divide has to be
executed at an appropriate stage. In SPIHT, Divide is executed
on significant GT if and only if the GT is degree-2 (type B).
C. About Degree-k Zerotree Coder
In [7], degree-k zerotree coder is defined as a zerotree coder
which can represent all zerotrees with degree-i , 0 i k. For
a given image, it is almost impossible to construct a coder that
meets all the features of the degree-k zerotree coder, unless
the structure of the image is extremely simple.
For most images with comparatively complex texture, it has
to partition GTs in C if one wants to code all zerotrees with

716

IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 25, NO. 2, FEBRUARY 2016

degree-i , 0 i k. There are some degree-(i + 1) GTs are


derived from degree-i GTs via Extract, but Extract will destroy
the degree-(i 1) zerotrees which can be derived from the
degree-i GTs via Divide, and vice versa.
IV. SPACS
A. K -SPIHT
In Section III.B, it has been found that SPIHT executes
Divide on significant GT if and only if the GT is degree-2.
Generally, one can execute Divide on significant GT if and
only if the GT is degree-k. Thus, k-SPIHT is constructed.
The initial tree used in k-SPIHT is illustrated in Fig. 1.
As in classical SPIHT, k-SPIHT consists of Initialization,
Sorting pass, Refinement pass and Threshold update, and
the lists LSP, LIP, LIS, are needed. The differences are: 1. the
format of entries of LSP in k-SPIHT is (i, j ; t ype), and the
value range of the variable t ype is {0, 1}, where t ype = 0
indicates the significant coefficient is individualized from the
past sorting pass and t ype = 1 indicates from the current
sorting pass; 2. the format of entries of LIS in k-SPIHT is
(i, j ; n 1 , n 2 , n 3 ) which have been introduced in Section II.A.
K -SPIHT
1) Initialization I: output n = log2 max(i, j ) |ci j | ; set LSP
as an empty list; for (i, j ) L L, add (i, j ) into
LIP, and add (i, j ; n d + 1, n d , 1) into LIS if (i, j ) has
descendants.
2) Sorting pass:
a) for every entry (i, j ) in LIP, do
i) output bi t = n (i, j ); [Amp-bit or Unne-bit]
ii) if bi t = 1, add (i, j ; 1) into LSP, and output
the sign of ci j , remove (i, j ) from LIP;
b) for every entry (i, j ; n 1, n 2 , n 3 ) in LIS, do
i) output bi t
=
n (GT (i, j ; n 1, n 2 , n 3 ));
[Loc-bit]
ii) if bi t = 1, Process(i, j, n 1 , n 2 , n 3 );
3) Refinement pass: for every entry (i, j ; t ype) in LSP, do
a) if t ype = 0, output the nth most significant bit
[Amp-bit] of |ci j |;
b) if t ype = 1, update t ype = 0;
4) Threshold update: decrement n by 1 and go to Step 2).
In k-SPIHT, the functions of Process(i, j, n 1, n 2 , n 3 ) is
partitioning GT (i, j ; n 1 , n 2 , n 3 ) controlled by k and n 1 , n 2 .
1 Process(i, j, n 1, n 2 , n 3 )
2 if n 1 n 2 < k
% if the degree of the GT
% is less than k
3
Ex(i, j, n 1, n 2 , n 3 )
4 if n 1 n 2 = k
% if the GT is degree-k
5
Di(i, j, n 1 , n 2 , n 3 )
6 remove (i, j ; n 1 , n 2 , n 3 ) from LIS
The functions of Di(i, j, n 1 , n 2 , n 3 ) and Ex(i, j, n 1, n 2 , n 3 )
are executing Divide and Extract on GT (i, j ; n 1 , n 2 , n 3 ),
respectively.
1 Ex(i, j, n 1, n 2 , n 3 )
2 Di(i, j, n 1, n 2 , n 2 )
3 if n 2 1 n 3
4
add (i, j ; n 1 , n 2 1, n 3 ) to the end of LIS
1 Di(i, j, n 1 , n 2 , n 3 )

% if the GT is a single point


if n 1 = n 2 = n 3
output bi t = n (i, j )
if bi t = 1 [Amp-bit]
add (i, j ; 1) to the end of LSP
output the sign of ci j
if bi t = 0 [Unne-bit]
add (i, j ) to the end of LIP
elseif n 1 1 = n 2 = n 3 % if the GT is a square set
% with size of 2 2
10
for (k, l) GT (i, j ; n 1 , n 2 , n 3 )
11
output bi t = n (k, l)
12
if bi t = 1 [Amp-bit]
13
add (k, l; 1) to the end of LSP
14
output the sign of ckl
15
if bi t = 0 [Unne-bit]
16
add (k, l) to the end of LIP
17 else, for (k, l) GT (i, j ; n 1, n 1 1, n 1 1)
18
add (k, l; n 1 1, n 2 , n 3 ) to the end of LIS
Loc-bit, Amp-bit and Unne-bit are short for location
bit, amplitude bit and unnecessary bit, respectively. They
are marked in k-SPIHT according to their definitions
in Section III.A. The parameter k can be set as any positive
integer. However, the height of GT is restricted to the level of
wavelet transformation n d . GT with degree higher than n d can
not be generated in k-SPIHT. The outputs of k-SPIHT with
k > n d and that of n d -SPIHT are same exactly, because Divide
and Extract are same for GT (i, j ; n 1 , n 2 , n 3 ) if n 2 = n 3 . So,
the value range of k is {1, 2, , n d }.
K -SPIHT belongs to T-SPC algorithm if k take smaller
value. Especially, 2-SPIHT is the classical SPIHT [2]. The
two algorithms are both executing Divide on significant GT
if and only if the GT is degree-2. K -SPIHT trends toward
B-SPC algorithm as k increases.
2
3
4
5
6
7
8
9

B. SPACS
In this subsection, we will construct Set PAtition Coding
System (SPACS) based on the coding mechanism of k-SPIHT.
1) Virtual Subband: The initial trees used in SPIHT are
shown in Fig. 1. For each 2 2 block in L L, the upper
left point has no descendant tree. Other points in the block
are roots of trees branching along the corresponding spatial
orientations.
In initialization of SPIHT, the all high frequency subbands are partitioned into 3 22(qnd 1) sets of type A
(degree-1 trees) which are put into LIS. Because a degree-1
tree is GT that does not contain its root node, any modification
of the root node of this tree does not influence the later process
or the results of SPIHT. It means that one can obtain coding
results same exactly with that of SPIHT if the structure of the
initial trees are modified as that shown in Fig. 5(a).
In Fig. 5(a), L L is partitioned into 4 square sets with same
size. Every point in the upper left set does not have descendant
tree, and every point in the rest sets is root node of a quadtree.
The partition for L L shown in Fig. 5(a) can be considered
as a new subband decomposition. Two new subbands are
obtained, which are denoted as Bnd +2 , Bnd +1 afresh. Bnd +2
is the upper left set in L L and Bnd +1 consists of the rest.

LI et al.: GENERALIZATION OF SPIHT: SPACS

717

Fig. 5. (a) Revise version for structure of initial trees used in SPIHT, where
q = 5, n d = 2; (b) Coordinate split and virtual subbands.

This decomposition does not influence the coefficients in C,


which is completely executed on the coordinates of L L, so it
is called coordinate split in this paper, and the new subbands
are called virtual subbands.
In the same way, coordinate split can be executed on the
virtual subband Bnd +2 again to get new virtual subbands
Bnd +3 , Bnd +2 . Execute this process continually until the highest level subband has only one node. Because r = l = 2q ,
q + 1 subbands
Bq+1 , Bq , , Bnd +1 , Bnd , , B2 , B1
will be obtained at last, where Bnd , , B2 , B1 are true high
frequency subbands derived from I and wavelet transformation, and Bq+1 , Bq , , Bnd +1 are virtual subbands derived
from L L and coordinate split. Virtual subbands are shown in
Fig. 5(b), where q = 5, n d = 2.
2) Initialization: Except (0, 0), for any node (i, j ), its
offsprings are (2i, 2 j ), (2i, 2 j +1), (2i +1, 2 j ), (2i +1, 2 j +1).
From (i, j ), one can build up a quadtree connection among
coefficients of the same spatial orientation in different subbands. For example, Fig. 5(b) shows a quadtree started from
(3, 1). A tree is still denoted as T r ee(i, j ) if its root node is
(i, j ), and GT is defined as
 n

2

Bn
GT (i, j ; n 1 , n 2 , n 3 ) = T r ee(i, j )
n=n 3

where n 1 , n 2 , n 3 {1, 2, , n d , n d + 1, , q}.


For (0, 0) Bq+1 , its offsprings are (0, 1), (1, 0), (1, 1),
the only 3 nodes in Bq . Then, T r ee(0, 0) = GT (0, 0; q + 1,
q + 1, 1) covers the whole of C. The set H in Fig. 3 can be
denoted by GT (0, 0; q + 1, n 2 , 1), n 2 {1, 2, , n d }.

In summary, the Initialization I in k-SPIHT can be


modified as
Initialization I: output n = log2 max(i, j ) |ci j | ; set the LSP
as an empty list; for (i, j ) L L, add (i, j ) into LIP; for
(i, j ) Bnd +1 , add (i, j ; n d + 1, n d , 1) into LIS.
This modification does not influence the coding process or
results of k-SPIHT. In Initialization I, the high frequency
subbands (Bnd , , B2 , B1 ) are partitioned into 322(qnd 1)
degree-1 GTs, where the root nodes of the GTs locate in
Bnd +1 . Generally, one can partition the high frequency subbands into 3 22(qnd p) degree- p GTs, controlled by nodes
in Bnd + p .
Initialization II: output n = log2 max(i, j ) |ci j | ; set the LSP
as an empty list; for (i, j ) L L, add (i, j ) into LIP; for
(i, j ) Bnd + p , add (i, j ; n d + p, n d , 1) into LIS.
One can get SPACS(k, p) if the Initialization I of k-SPIHT
is changed as Initialization II.
In SPACS(k, p), k is same as that in k-SPIHT, and decides
whether execute Divide on significant GT (i, j ; n 1, n 2 , n 3 ).
The p is the degree of GTs that put into LIS in initialization.
GT added into LIS in Initialization II can be considered as
a tree block consisting of 2 p 2 p adjacent degree-0 trees
or a complete quadtree whose every node is 2 p 2 p block
(block tree).
q
q
For a given image I R2 2 , the value ranges of p, k
are {1, 2, , q n d + 1} and { p, p + 1, , n d + p 1},
respectively. The value of p can also be set as 0, but SPACS
cannot get better coding efficiency compared with SPIHT,
according to the analysis of EZW and SPIHT [7]. If k n d +
p, SPACS have same results with the case of k = n d + p 1.
C. Comparison of SPACS and SPIHT, SPECK
The extreme cases, SPACS( p, p) and SPACS(n d + p1, p),
belong to T-SPC and B-SPC algorithms, respectively.
When p = 1, Initialization II is reduced to Initialization I,
which means SPACS(k, 1) is k-SPIHT. SPACS is reduced to
the classical SPIHT if (k, p) = (2, 1).
There is only one item, i.e. (0, 0; q + 1, n d , 1), in initialized
LIS of SPACS with p = q n d + 1. GT (0, 0; q + 1, n d , 1) is
the initial set H in SPECK. For this set, SPACS(q, q n d +1)
and SPECK execute the same partition mechanism. Both of
the two algorithms are B-SPC algorithms, and the differences
between them are as follows:
1) the initial treatment to L L. SPECK treats L L as a square
set [3]. SPECK will split the set into 22(qnd ) single
points using quadtree partition (Divide) as threshold
decreases. However, in SPACS, each node of L L is
treated as single point and added into LIP directly. There
is a strong possibility that the quadtree partition executed
on L L offers no advantage in SPECK, since the coefficients in L L are in close order of amplitude magnitudes
with each other because of wavelet transformation.
2) the set order in LIS. The sets in LIS of SPACS are
sorted by their generation sequences, but by size in
SPECK. In the course of coding for a given bitplane
of C, the sort way used in SPECK contributes to find
significant coefficients [3], and that used in SPACS can
be implemented easily.

718

IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 25, NO. 2, FEBRUARY 2016

Fig. 6. The 8 8 matrix C and its 4 subbands. The numbers outside the
boxes are vertical and horizontal coordinates.

3) the treatment to the single points. In SPC algorithms,


the single points are classified into significant points
and insignificant points. In SPACS, the two kinds of
points are placed in LSP and LIP respectively. But, in
SPECK, the insignificant points are put in LIS, together
with insignificant sets. According to the set sorting way
in LIS, the scan in SPECK is in order as significant
points, insignificant points and insignificant sets, which
is same with that in SPACS.
According to above analysis, one can find that SPIHT is a
special case of SPACS. The main difference between SPECK
and SPACS(q, q n d + 1) is the initial treatment to L L.
As a generalization of SPIHT, SPACS inherits most properties of SPIHT, including low complexity. The computational
complexities of the two algorithms are in same level.
V. A S IMPLE E XAMPLE
In this section, a simple example is presented to highlight
the sets and set operations used in SPACS. Fig. 6 depicts the
8 8 matrix C and its subbands resulted from a two-level
wavelet transformation and coordinate split.
The L L is partitioned into the 2 virtual subbands
B4 = {(0, 0)} and B3 = {(0, 1), (1, 0), (1, 1)} which shown
in Fig. 6 with dashed boxes. B2 , B1 are 2 high frequency
subbands.
Initialize n = 5. We will give the bits encoding the bitplane
defined by threshold 25 . In initialization of SPACS, the 4 nodes
in L L are treated as single point sets and put into LIP.
Because q = 3, n d = 2, the value ranges of p and k are
{1, 2} and { p, p + 1}, respectively. In SPACS(k, p), under the
threshold 25 , the bits output from the sorting pass of LIP are
1, +, 1, , 0, 0. The underlined 0s are unnecessary bits.
A. p = 1
If p = 1 < q + 1 n d , 3 22(qnd p) = 3 initial trees are
used in SPACS, which are T r ee(i, j ), (i, j ) Bnd + p , i.e.,
GT (i, j ; 3, 3, 1), (i, j ) Bnd + p = B3 ,
and are shown in Fig. 7(a). In the initial trees, the nodes
located in L L = B4 B3 have been put into LIP, so only
the parts contained in B2 B1 , i.e.,
GT (i, j ; 3, 2, 1) = T r ee(i, j ) (B2 B1 ), (i, j ) B3 ,
are put into LIS. These GTs are shown in Fig. 7(b).
At the begin of sorting pass of LIS, output the significance
of the trees in LIS, 1, 1, 0. The bold 0s or 1s are location bits.

Fig. 7. (a) Initial trees in SPACS with p = 1. (b) GTs in the initialized LIS.

Fig. 8.

Two different partition of G T (1, 0; 3, 2, 1). (a) Divide. (b) Extract.

1) SPACS(1,1): Because k = 1, SPACS(1,1) executes


Divide on the 2 significant degree-1 trees, GT (0, 1; 3, 2, 1)
and GT (1, 0; 3, 2, 1) (line 4 5 in Process). Eight child GTs
are generated and added to the end of LIS. The child GTs
corresponding to GT (1, 0; 3, 2, 1) are
GT (k, l; 2, 2, 1), (k, l) GT (1, 0; 3, 2, 2)
and shown in Fig 8(a).
Output the significance of the 8 child GTs. Among this
process, Extract is executed on significant degree-0 trees
(line 2 3 in Process). For example, GT (0, 2; 2, 2, 1) is
partitioned into GT (0, 2; 2, 2, 2) and GT (0, 2; 2, 1, 1) at first;
and secondly, Divide is executed on GT (0, 2; 2, 2, 2) (line 2
in Ex). However, there is only one node in GT (0, 2; 2, 2, 2),
so output its significance directly and put it into LIP or
LSP (line 2 8 in Di). The multipixel set, GT (0, 2; 2, 1, 1),
is added to the end of LIS (line 3 4 in Ex). The
same operations are executed on the significant degree-0 tree
GT (2, 1; 2, 2, 1). In a word, the bits encoding the 8 GTs are
1, 1, +, 0, 0, 0; 0, 1, 0, 0, 0.
Now, in LIS, there are only 2 sets which have not been
processed, i.e., GT (0, 2; 2, 1, 1) and GT (2, 1; 2, 1, 1). Output
the significance of the 2 GTs. For significant degree-1 tree,
GT (2, 1; 2, 1, 1), Divide is executed. The only 4 nodes in this
GT will be test their significance directly and put into LIP
or LSP (line 9 16 in Di). The bits encoding the 2 GTs are
0; 1, 0, 1, +, 0, 0.
Finally,
LIP = {(1, 0), (1, 1), (2, 1), (4, 2), (5, 2), (5, 3)},
LIS = {(1, 1; 3, 2, 1), (0, 3; 2, 2, 1), (1, 2; 2, 2, 1),
(1, 3; 2, 2, 1), (2, 0; 2, 2, 1), (3, 0; 2, 2, 1),
(3, 1; 2, 2, 1), (0, 2; 2, 1, 1)},
LSP = {(0, 0; 1), (0, 1; 1), (0, 2; 1), (4, 3; 1)}.

LI et al.: GENERALIZATION OF SPIHT: SPACS

719

in the simple matrix C, the maximum amplitude in L L and that


in high frequency subbands are in same order by magnitude,
which does not conform to the features of wavelet transformed
image matrixes.
2) SPACS(3,2): Because k = 3, the significant degree-2
tree is partitioned by Extract into 4 child GTs (line 2 3
in Process),

GT (k, l; 3, 2, 2), (k, l) GT (0, 0; 4, 3, 3) = B3 ,
GT (0, 0; 4, 1, 1),
(a) GT in initialized LIS with p = 2. (b) Extract of the GT.

Fig. 9.

In LSP, all nodes are with t ype = 1, so there is no bit output


from refinement pass. In summary, SPACS(1,1) uses 27 bits
to code the bitplane defined by the threshold 25 .
2) SPACS(2,1): Because k = 2, SPACS(2, 1) executes Extract on the 2 significant trees (line 23 in
Process). For example, Fig. 8(b) shows the Extract result of
GT (1, 0; 3, 2, 1), and the 5 subsets are

GT (k, l; 2, 2, 2), (k, l) GT (1, 0; 3, 2, 2),
GT (1, 0; 3, 1, 1).
SPACS(2, 1) is the classical SPIHT. In [5], the authors have
described in detail the process of encoding the C using SPIHT.
SPACS(2,1) needs 29 bits to code the 1st bitplane; the bits are
1, +, 1, , 0, 0
1, 1, +, 0, 0, 0; 1, 0, 0, 0, 0; 0
0; 1, 0, 1, 0, 1, +, 0, 0, 0, 0.

which are shown in Fig. 9(b).


Add the 4 GTs to the end of LIS, and output the
significance of them. Among this process, Extract and
Divide are executed on degree-1 tree GT (0, 1; 3, 2, 2) and
degree-3 tree GT (0, 0; 4, 1, 1), respectively. The 4 nodes in
GT (0, 1; 3, 2, 2) are put into LIP or LSP. The 3 child GTs of
GT (0, 0; 4, 1, 1),
GT (k, l; 3, 1, 1), (k, l) GT (0, 0; 4, 3, 3),
are added to the end of LIS. These actions correspond to
line 2 3 and line 4 5 in Process. The output bits in this
stage are 1, 1, +, 0, 0, 0, 0, 0, 1.
Output the significance bits of the last 3 GTs in LIS, 0, 1, 0.
And, using Extract, partition the significant degree-2 tree,
GT (1, 0; 3, 1, 1), into 4 GTs,
GT (k, l; 2, 1, 1), (k, l) GT (1, 0; 3, 2, 2).
These 4 GTs also are added to the end of LIS. And, the bits
encoding them are 0, 1, 0, 1, +, 0, 0, 0, 0.
In summary, SPACS(3,2) needs 28 bits to code the 1st
bitplane of the C,
1, +, 1, , 0, 0

B. p = 2
If p = 2 = q + 1 n d , there is only 1 initial tree used in
SPACS, i.e., T r ee(0, 0) = GT (0, 0; 4, 4, 1). This tree covers
the whole matrix C. GT (0, 0; 4, 2, 1) is the part of T r ee(0, 0)
that contained in B2 B1 , which is the only GT put into LIS
in the initialization of SPACS and is shown in Fig. 9(a).
At begin of sorting pass of LIS, output the significance 1
of the GT in LIS.
1) SPACS(2,2): Because k = 2, the significant degree-2
tree, GT (0, 0; 4, 2, 1), is partitioned by Divide into 3 child
GTs (line 4 5 in Process),

1; 1, 1, +, 0, 0, 0, 0, 0, 1
0, 1, 0; 0, 1, 0, 1, +, 0, 0, 0, 0
One can find the bits output from SPECK and encoding
the same bitplane in [5]. SPECK needs one more bit 1 to
divide the L L into 4 single points. The remainder bits are
identical to that from SPACS(3,2). However, it is coincident.
In the two coders, the set orders in LIS are different, so the
bits are coding different sets or points. For example, the last
bit 0 is coding GT (3, 1; 2, 1, 1) in SPACS(3,2), but coding
GT (1, 1; 3, 1, 1) (S 2 (4, 4) in [5]) in SPECK.

GT (i, j ; 3, 2, 1), (i, j ) GT (0, 0; 4, 3, 3),


which have been shown in Fig 7(b). Because the values of
parameter k in the two coders are same, the treatment to
above 3 GTs in SPACS(2,2) is exactly same with that in
SPACS(2,1). So, SPACS(2,2) needs 30 bits to code the first
bitplane of C,
1, +, 1, , 0, 0
1; 1, 1, +, 0, 0, 0; 1, 0, 0, 0, 0; 0
0; 1, 0, 1, 0, 1, +, 0, 0, 0, 0
The above result does not conform to the phenomenon 1
in Section VI.A and the analysis in VI.B.2. The reason is that,

VI. N UMERICAL E XPERIMENTS


Some images, including Lena and Barbara, were tested
using SPACS. We also tested the first 256 images in database
named Pascal voc2007. Pascal voc2007 is a well known image
database which consists thousands of images with objects
of 20 different categories. The 256 images were resized to
512 512 and transformed to monochrome, 8 bpp, in Matlab
(R2010a) using commands imresize and rgb2gray. The
following test procedures were:
1. decompose image using Daubechiess biorthogonal
9/7 wavelet with 5 level to obtain C;
2. set the minimum threshold T = 1;

720

IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 25, NO. 2, FEBRUARY 2016

TABLE I
PSNR G ET BY SPACS(2,1) AND O PTIMAL PSNR G ET BY SPACS
AT S OME S PECIAL B ITRATES FOR L ENA AND B ARBARA

3. code C using SPACS(k, p), where p = 1, 2, , 5 and


k = p, p + 1, , p + 4, to obtain the code streams;
4. decode the streams at each bitrate node, where the step
size of bitrate is 0.025 bpp;
5. measure the distortion by peak signal to noise
ratio (PSNR).
The code streams outputted from SPACS were not further
coded by any entropy coding (Huffman or arithmetic).
A. Numerical Results
Among the 3 famous SPC algorithms EZW, SPIHT
and SPECK, SPIHT usually has the best coding efficiency.
So, SPIHT, i.e., SPACS(2,1), is regarded as benchmark in
this paper. For a given image, let PSNRkp () be function with
variable of bitrate, which characterizes the distortion (PSNR)
of images compressed using SPACS(k, p). Let
kp = PSNRkp PSNR21 ,
where p = 1, 2, , 5 and k = p, p + 1, , p + 4,
respectively. 21 = 0 is always satisfied.
The numerical results of Lena and Barbara are shown in
Fig. 10 and Fig. 11. From the figures, we find that
1) Compared with that of SPACS with p = 1, the coding
efficiencies of SPACS with p = 2, 3, 4, 5 have obvious
increase at very low bitrate ( 0.1bpp)
2) In
the
bitrate
interval,
11 , 21 , 22
meet
11 < 21 = 0 < 22 , which means SPACS(2,1) is
superior compared with SPACS(1,1), and SPACS(2,2)
is better than SPACS(2,1).
In fact, the above 2 phenomena are emerged in all numerical
results of images involved in this paper.
From Fig. 10, one can find that, for image Lena, the curves
of kp with p 2 (except 22 ) decrease rapidly at first and
then increase slowly with the increase of bitrate. There is a
U-valley on the curves. The bottom of the U-valley is under
the line of 21 = 0 obviously. However, for Barbara, one can
find from Fig. 11 that the efficiencies of SPACS (k 2) are
superior than that of SPACS(2,1) at each bitrate node.
Table I shows the best PSNR obtained by SPACS at some
special bitrates for Lena and Barbara, where numbers in
parentheses are corresponding values for k and p. As a
comparison, PSNRs obtained by SPACS(2,1) are also shown
in the table. The above results show that, among SPACS,
SPACS(2,1) cannot get the best coding efficiency.
From Fig. 10 11, one can find that, at high bitrate,
the coding efficiencies of SPACS(k, p) with k close to

n d + p 1 (B-SPC algorithms) are better than that of


SPACS(2,1) for Lena, Barbara. This conclusion is true for
most images involved in this paper, but it is not always true.
For encodings of the 256 images taken from Pascal voc2007,
Fig. 12 shows the amounts of bits saved by SPACS(9,5)
against SPACS(2,1). There are 49 images that SPACS(9,5)
needs more bits to code them, which means, at high bitrate,
the efficiency of SPACS(9,5) is inferior to that of SPACS(2,1)
for these 49 images. However, for the rest 207 (80.86%)
images, SPACS(9,5) saves thousands of bits compared with
SPACS(2,1). For the 256 images, the average amount of bits
saved by SPACS(9,5) is 2463. The average performance of
SPACS(9,5) is with 3.93 bpp and 56.50 dB.
B. Analysis
1) Comparison of SPACS(k,1) and Degree-k Zerotree
Coder: In [7], the authors regarded SPIHT as the best coding
algorithm among degree-k zerotree coders. They conjectured
that, as k increases, degree-k zerotree coder needs more
overhead to identify the locations of high degree zerotrees
(or significant coefficients). And, if k > 2, they consider that
the occurrences of degree-k zerotree are so less that the coding
gain cannot counteract the overhead.
SPACS(k, 1) has the functions to code all degree-k zerotrees
and part of degree-i (0 i < k) zerotrees in C, which means
SPACS(k, 1) implements part of functions of degree-k zerotree
coders. However, from the numerical results of Barbara, we
find the coding efficiency of SPACS(k, 1) with k > 2 improves
obviously compared with that of SPACS(2,1), i.e., SPIHT.
For Lena and Barbara, we calculated the amounts of the
three kinds of bits encoding every bitplane of C coded
by SPACS(2,1) and SPACS(3,1). The numbers are shown
in Table II and Table III. In the two tables, the 2nd column are
amounts of bits encoding signs of new significant coefficients
generated in each bitplane. 1 and 2 are amounts of location bits and unnecessary bits saved by SPACS(3,1) against
SPACS(2,1), and  = 1 + 2 . The accumulated bitrate
and PSNR values are list in the last 3 columns. Compared
with SPACS(2,1), SPACS(3,1) saves 5254 and 10643 to code
Lena and Barbara, respectively. For the 256 images taken from
Pascal voc2007, the amounts of bits saved by SPACS(3,1)
against SPACS(2,1) are shown in Fig. 13. To code every image,
SPACS(3,1) (at an average of 3.93 bpp) needs 7792 more
location bits but saves 10218 unnecessary bits, compared with
SPIHT(2,1) (3.94 bpp). The average coding performance is
also 56.50 dB.
For given C, the amount of significant coefficients is
decided by the threshold, so the amounts of amplitude bits
used in any SPC algorithms are identical.
The results shown in Table II, Table III and Fig. 13 indicate
that SPACS(3,1) needs more location bits compared with
SPACS(2,1), which proves the conjecture of [7]. However,
SPACS(3,1) needs less unnecessary bits, which is the source
of its improved coding efficiency.
2) At Very Low Bitrate: Due to wavelet transformation, the
amplitude magnitude of L L and that of other subbands are
in different orders. For most images involved in this paper,

LI et al.: GENERALIZATION OF SPIHT: SPACS

721

Fig. 10.

Lena and its numerical results.

the amplitude magnitude of L L is higher than that of high


frequency subbands with 1 order at least, i.e., there are only
0s in the first bitplanes of high frequency subbands of C.
The high frequency subbands are initialized to
3 22(qnd p) degree- p trees, GT (i, j ; n d + p, n d , 1),

(i, j ) Bnd + p , by SPACS(k, p), 1 p q n d .


It is just 1 tree, GT (0, 0; q + 1, n d , 1), initialized by
SPACS(k, q n d + 1). Then, to code the first bitplane of C,
SPACS(k, p), 1 p 4, need 3 22(qnd p) = 3 44 p
location bits; SPACS(k, 5) needs just 1. In this stage, the

722

IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 25, NO. 2, FEBRUARY 2016

Fig. 11.

Barbara and its numerical results.

amplitude bits and unnecessary bits are identical in these


SPC algorithms. This analysis indicates that, as p increases,
SPACS needs less bits to code the first bitplane of C, which
is the reason that the efficiency of SPACS(k, p) increases as
p increases at very low bitrate.

For the 256 images, Fig. 14 shows the amounts of bits saved
by SPACS(5, p) (1 p 5) against SPACS(2,1) to encode
the first 3 bitplanes of C. On average, the 5 coders save 5 bits,
344 bits, 404 bits, 415 bits, 416 bits, respectively, to code the
3 bitplanes for every image.

LI et al.: GENERALIZATION OF SPIHT: SPACS

723

TABLE II
C OMPARISON OF A MPLITUDE B ITS , L OCATION B ITS AND U NNECESSARY B ITS U SED IN SPACS(2,1) AND SPACS(3,1) FOR L ENA

TABLE III
C OMPARISON OF A MPLITUDE B ITS , L OCATION B ITS AND U NNECESSARY B ITS U SED IN SPACS(2,1) AND SPACS(3,1) FOR BARBARA

Fig. 12.

Amounts of bits saved by SPACS(9,5).

3) Comparison of SPACS(2,2) and SPACS(2,1): Before the


significant coefficients of high frequency subbands emerge,
the location bits used in SPACS(2,2) are less than that used
9
22(qnd ) for every bitplane of C.
in SPACS(2,1) with 16
When the significant coefficients emerge, SPACS(2,2) needs
3
2(qn d ) location bits, at most, to divide the all significant
16 2
degree-2 trees GT (i, j ; n d + 2, n d , 1), (i, j ) Bnd +2 , into
degree-1 trees GT (k, l; n d +1, n d , 1), (k, l) GT (i, j ; n d +2,
n d + 1, n d + 1) Bnd +1 which have been put into LIS at
initialization of SPACS(2,1). The treatment to these degree-1
trees are identical exactly in SPACS(2,2) and SPACS(2,1),

Fig. 13.

Amounts of different kinds of bits saved by SPACS(3,1).

because the value of parameter k are identical. Then, the bits


used in SPACS(2,2) are always less than that of SPACS(2,1)
6
22(qnd ) at least.
with 16
Fig. 15 shows the amounts of bits saved by SPACS(2,2)
against SPACS(2,1) encoding the 256 images. For most
9
6
22(qnd ) + 16
22(qnd ) =
images, SPACS(2,2) saves 1 16
240 bits at least. It is easy to explain this result based on the
preceding analysis and the fact that the amplitude magnitude
of L L is higher than that of high frequency subbands with
1 order at least for these images.

724

IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 25, NO. 2, FEBRUARY 2016

hierarchical subband transformation (e.g., mutilwavelets,


wavelet frames, et al) to obtain C?
F) The entry format of LIS in SPACS is more complex
than that of SPIHT, which is a hinder to implement the
algorithms in hardware.
R EFERENCES

Fig. 14. Amounts of bits saved by SPACS(5, p), 1 p 5, to encode the


first 3 bitplanes of C.

Fig. 15.

Amounts of bits saved by SPACS(2,2).

VII. C ONCLUSION AND R EMAINING I SSUES


In this paper, we presented a generalization of
SPIHT Set PArtition Coding System (SPACS). We also
presented the conceptions of location bit, amplitude bit and
unnecessary bit to analyze the performances of different SPC
algorithms.
The remaining issues of this paper are listed as following.
A) It is concluded from the numerical results shown in
Section VI.A that the best coding algorithm is different for different images, among SPACS(k, p). It needs
adjustment of k and p to get the best coding efficiency
for a given image. It is an issue of worthy discussion to
construct criteria for adjusting k and p.
B) Entropy coding can increase the performance of the
coding algorithms [2]. The influence of entropy coding
used on the output of SPACS should be discussed.
C) The numerical results show that the efficiencies of
SPACS(k, p), (k > 2) are almost always better than that
of SPIHT at high bitrate, which makes us believe a good
result may be received if compress images lossless using
SPACS.
D) In this paper, SPACS is described in the mode of breadth
first search [5], [6]. SPACS can be modified to be in the
mode of depth first search [5], [6].
E) In Section VI, a fixed procedure of experiment is used
to compress images. What will occur if the procedure is different, for example, using another tool of

[1] J. M. Shapiro, Embedded image coding using zerotrees of


wavelet coefficients, IEEE Trans. Signal Process., vol. 41, no. 12,
pp. 34453462, Dec. 1993.
[2] A. Said and W. A. Pearlman, A new, fast, and efficient image codec
based on set partitioning in hierarchical trees, IEEE Trans. Circuits
Syst. Video Technol., vol. 6, no. 3, pp. 243250, Jun. 1996.
[3] W. A. Pearlman, A. Islam, N. Nagaraj, and A. Said, Efficient,
low-complexity image coding with a set-partitioning embedded block
coder, IEEE Trans. Circuits Syst. Video Technol., vol. 14, no. 11,
pp. 12191235, Nov. 2004.
[4] A. Munteanu, J. Cornelis, G. Van Der Auwera, and P. Cristea, Wavelet
image compressionThe quadtree coding approach, IEEE Trans. Inf.
Technol. Biomed., vol. 3, no. 3, pp. 176185, Sep. 1999.
[5] W. A. Pearlman and A. Said, Set partition coding: Part I of set
partition coding and image wavelet coding systems, Found. Trends
Signal Process., vol. 2, no. 2, pp. 95180, 2008.
[6] W. A. Pearlman and A. Said, Image wavelet coding systems: Part II of
set partition coding and image wavelet coding systems, Found. Trends
Signal Process., vol. 2, no. 3, pp. 181246, 2008.
[7] Y. Cho and W. A. Pearlman, Quantifying the coding performance of
zerotrees of wavelet coefficients: Degree-k zerotree, IEEE Trans. Signal
Process., vol. 55, no. 6, pp. 24252431, Jun. 2007.
[8] A. J. S. Dutra, W. A. Pearlman, and E. A. B. da Silva, Successive
approximation wavelet coding of AVIRIS hyperspectral images, IEEE
J. Sel. Topics Signal Process., vol. 5, no. 3, pp. 370385, Jun. 2011.
[9] K.-H. Lee and P.-C. Chung, An attention emphasized bit arrangement
in 3D SPIHT video coding for human vision, J. Vis. Commun. Image
Represent., vol. 24, no. 3, pp. 255269, Apr. 2013.
[10] K. T. Shanavaz and P. Mythili, Faster techniques to evolve wavelet
coefficients for better fingerprint image compression, Int. J. Electron.,
vol. 100, no. 5, pp. 655668, 2013.
[11] E. Cavero, A. Alesanco, L. Castro, J. Montoya, I. Lacambra, and
J. Garcia, SPIHT-based echocardiogram compression: Clinical evaluation and recommendations of use, IEEE J. Biomed. Health Inform.,
vol. 17, no. 1, pp. 103112, Jan. 2013.
[12] H.-L. Yeh, S.-T. Gue, P. Tsai, and W.-K. Shih, Wavelet bit-plane based
data hiding for compressed images, AEU-Int. J. Electron. Commun.,
vol. 67, no. 9, pp. 808815, 2013.
[13] W. C. Chia, L.-M. Ang, and K. P. Seng, Embedded descendent-only
zerotree wavelet coding for image compression, in Proc. IMECS, 2009,
pp. I:922I:926.
[14] L. W. Chew, W. C. Chia, L.-M. Ang, and K. P. Seng, An optimum
approach for image compression: Tuned degree-k zerotree wavelet
coding, IAENG Int. J. Comput. Sci., vol. 36, no. 2, pp. 175182, 2009.
[15] K.-J. Cheng and J. Dill, Lossless to lossy dual-tree BEZW compression
for hyperspectral images, IEEE Trans. Geosci. Remote Sens., vol. 52,
no. 9, pp. 57655770, Sep. 2014.
[16] X. Hou, M. Han, C. Gong, and X. Qian, SAR complex image data
compression based on quadtree and zerotree coding in discrete wavelet
transform domain: A comparative study, Neurocomputing, vol. 148,
no. 1, pp. 561568, 2015.
[17] L. Cicala, Performance analysis of generalized zerotree coders varying
the maximum zerotree degree, in Proc. Adv. Concepts Intell. Vis. Syst.,
vol. 5259. Oct. 2008, pp. 112.

Qiufu
Li
received
the
B.Sc.
degree
in mathematics and information science and
the M.Sc. degree in wavelet analysis and signal
processing from the Beifang University of
Nationalities, in 2010 and 2013, respectively.
He is currently pursuing the Ph.D. degree with
the Beijing Institute of Technology. His research
interests are in the areas of wavelet analysis and
digital image processing.

LI et al.: GENERALIZATION OF SPIHT: SPACS

Derong Chen received the B.Eng. degree from the


Beijing University of Aeronautics and Astronautics,
in 1988, and the Ph.D. degree from the
Beijing Institute of Technology, (BIT), in 2002.
From 2008 to 2009, she was a Visiting Scholar
with Oklahoma State University.
She has been with the China Academy of Launch
Vehicle Technology for ten years as a Research
Staff Member since1988. After graduation from
BIT, she worked two years as a Senior Engineer
with the Department of Electronics, Tsinghua

725

Bingtai Liu received the B.Eng. degree in


mechatronic engineering from Chongqing University, in 1998, and the M.Eng. degree in flight vehicle
design from Northwestern Polytechnical University,
in 2012.
He has been a Senior Engineer and worked with
the Beijing Institute of Astronautical Systems Engineering. He is responsible for system planning and
project appraisal, and acting as a Chief Designer.
His research interests are in the areas of electrical
system and signal processing.

University.
She has been a Faculty Member with the Department of Mechanical and
Electrical Engineering, BIT, since 2004, where she is currently a Professor.
Her research interests are in the areas of vision measurement and data
compression.
Wei Jiang received the B.Eng. degree in electronics
and information engineering and the M.Eng. degree
in teletracking and controlling from the Beijing Institute of Technology, in 2007 and 2009, respectively.
He has been an Engineer and worked with the
Beijing Institute of Astronautical Systems Engineering for six years. His research interests are in the
areas of electrical system and signal processing.

Jiulu Gong received the B.Eng., M.Eng., and


Ph.D. degrees from the Beijing Institute of Technology, in 2007, 2009, and 2013, respectively. He was
a Visiting Student with the College of Electrical and
Computer Engineering, Oklahoma State University,
from 2011 to 2013.
He has been a Faculty Member with the
Beijing Institute of Technology since 2013. His
current research interests include target recognition
and image compression.

Vous aimerez peut-être aussi