Content deleted Content added
m Bot: links syntax |
→C. Scanning order for coefficients: syntax and link to existing wikipedia page |
||
(47 intermediate revisions by 26 users not shown) | |||
Line 1:
'''Embedded zerotrees of wavelet transforms''' ('''EZW''') is a lossy [[image compression]] [[algorithm]]. At low bit rates, i.e. high compression ratios
By considering the transformed coefficients as a [[Tree
In zerotree based image compression scheme such as EZW and [[SPIHT]], the intent is to use the statistical properties of the trees in order to efficiently code the locations of the significant coefficients. Since most of the coefficients will be zero or close to zero, the spatial locations of the significant coefficients make up a large portion of the total size of a typical compressed image. A coefficient (likewise a tree) is considered '''significant''' if its magnitude (or magnitudes of a node and all its descendants in the case of a tree) is above a particular threshold. By starting with a threshold which is close to the maximum coefficient magnitudes and iteratively decreasing the threshold, it is possible to create a compressed representation of an image which progressively adds finer detail. Due to the structure of the trees, it is very likely that if a coefficient in a particular frequency band is insignificant, then all its descendants (the spatially related higher frequency band coefficients) will also be insignificant.
Line 14 ⟶ 13:
The coding performance of EZW has since been exceeded by [[SPIHT]] and its many derivatives.
==
'''Embedded zerotree wavelet algorithm''' (EZW) as developed by J. Shapiro in 1993, enables scalable image transmission and decoding. It is based on four key concepts: first, it should be a discrete wavelet transform or hierarchical subband decomposition; second, it should predict the absence of significant information when exploring the [[self-similarity]] inherent in images; third, it has entropy-coded successive-approximation quantization, and fourth, it is enabled to achieve universal lossless data compression via adaptive arithmetic coding.
Besides, the EZW algorithm also contains the following features:
(1) A discrete wavelet transform which can use a compact multiresolution representation in the image.
(2) Zerotree coding which provides a compact multiresolution representation of significance maps.
(3) Successive approximation for a compact multiprecision representation of the significant coefficients.
(4) A prioritization protocol which the importance is determined by the precision, magnitude, scale, and spatial ___location of the wavelet coefficients in order.
(5) Adaptive multilevel arithmetic coding which is a fast and efficient method for entropy coding strings of symbols.
== Embedded zerotree wavelet coding ==
=== A. Encoding a coefficient of the significance map ===
In a significance map, the coefficients can be represented by the following four different symbols. With using these symbols to represent the image information, the coding will be less complicated.
==== 1. Zerotree root ====
If the magnitude of a coefficient is less than a threshold T, and all its descendants are less than T, then this coefficient is called zerotree root. And if a coefficient has been labeled as zerotree root, it means that all of its descendants are insignificant, so there is no need to label its descendants.
==== 2. Isolated zero ====
If the magnitude of a coefficient is lower than a threshold T, but it still has some significant descendants, then this coefficient is called isolated zero.
==== 3. Positive significant coefficient ====
If the magnitude of a coefficient is greater than a threshold T at level T, and also is positive, than it is a positive significant coefficient.
==== 4. Negative significant coefficient ====
If the magnitude of a coefficient is greater than a threshold T at level T, and also is negative, than it is a negative significant coefficient.
=== B. Defining threshold ===
The threshold used above can be defined as follows.
==== 1. Initial threshold T<sub>0</sub>, assuming C<sub>max</sub> is the largest coefficient: ====
<span>[[File:Threshold-0119.png|126x126px]]</span>
==== 2. Threshold T<sub>i</sub> is iteratively reduced to half of the value of the previous threshold: ====
[[File:Threshold-01192.png|frameless|133x133px]]
=== C. Scanning order for coefficients ===
'''[[Raster scan]]''' is used in a way such that no children nodes are scanned before their parent nodes. Also, all coefficients in a given subband are scanned before those of the next subband.
=== D. Two-pass bitplane coding ===
==== (1) Refinement pass (or subordinate pass) ====
This determine that if the coefficient is in the interval [Ti, 2Ti). And a refinement bit is coded for each significant coefficient.
In this method, it will visit the significant coefficients according to the magnitude and raster order within subbands.
==== (2) Significant pass (or dominant pass) ====
This method will code a bit for each coefficient that is not yet be seen as significant. Once a determination of significance has been made, the significant coefficient is included in a list for further refinement in the refinement pass. And if any coefficient already known to be zero, it will not be coded again.
== Example ==
<pre>
DCT data ZeroTree scan order (EZW)
63 -34 49 10 7 13 -12 7 A B BE BF E1 E2 F1 F2
-31 23 14 -13 3 4 6 -1 C D BG BH E3 E4 F3 F4
15 14 3 -12 5 -7 3 9 CI CJ DM DN G1 G2 H1 H2
-9 -7 -14 8 4 -2 3 2 CK CL DO DP G3 G4 H3 H4
-5 9 -1 47 4 6 -2 2 I1 I2 J1 J2 M1 M2 N1 N2
3 0 -3 2 3 -2 0 4 I3 I4 J3 J4 M3 M4 N3 N4
2 -3 6 -4 3 6 3 6 K1 K2 L1 L2 O1 O2 P1 P2
5 11 5 6 0 3 -4 4 K3 K4 L3 L4 O3 O4 P3 P4
D1: pnzt p ttt tztt tttttptt (20 codes)
PNZT P(t) TTT TZTT TPTT (D1 by M-EZW, 16 codes)
PNZT P(t) Z(t) TZ(p) TPZ(p) (D1 by NM-EZW, 11 codes)
P N (t), P or N above zerotree scan
P N Z(t p), p=pair T, t=triple T, P/N + TT/TTT in D1 code
S1: 1010
D2: ztnp tttttttt
S2: 1001 10 (Shapiro PDF end here)
D3: zzzz zppnppnttnnp tpttnttttttttptttptttttttttptttttttttttt
S3: 1001 11 01111011011000
D4: zzzzzzztztznzzzzpttptpptpnptntttttptpnpppptttttptptttpnp
S4: 1101 11 11011001000001 110110100010010101100
D5: zzzzztzzzzztpzzzttpttttnptppttptttnppnttttpnnpttpttppttt
S5: 1011 11 00110100010111 110101101100100000000 110110110011000111
D6: zzzttztttztttttnnttt
( http://www.polyvalens.com/wavelets/ezw/ )
Detailed: (new S is first, other computed by before cycles)
s-step 1 21 321
val D1 S1 R1 D2 S2 R2 D3 S3. ... R3 ... D4,S4...
A 63 P 1 >=48 56 Z .1 >=56 60 Z ..1 >=60 62
B -34 N 0 <48 -40 T .0 <40 -36 Z ..0 <36 -36
C -31 IZ <32 0 N 1. >=24 -28 Z .1. >=28 -30
D 23 T <32 0 P 0. <24 20 Z .1. >=20 22
BE 49 P 1 >=48 56 .0 <56 52 Z ..0 <52 50
BF 10 T <32 0 P 0 <12 10
BG 14 T <32 0 P 1 >=12 14
BH -13 T <32 0 N 1 >=12 -14
CI 15 T <32 0 T <16 0 P 1 >=12 14
CJ 14 IZ <32 0 T <16 0 P 1 >=12 14
CK -9 T <32 0 T <16 0 N 0 <12 -10
CL -7 T <32 0 T <16 0 T <8 0
DM 3 T <16 0 T <8 0
DN -12 T <16 0 N 1 >=12 -14
DO -14 T <16 0 N 1 >=12 -14
DP 8 T <16 0 P <12 10
E1 7 T <32 0 .E,F,G,H(1,2,3,4)
E2 13 T <32 0 .I,J,K(1,2,3,4)
E3 3 T <32 0 .N,O,P(1,2,3,4)
E4 4 T <32 0 .
J1 -1 T <32 0 .
J2 47 P 0 >48 40 1 >=40 44 .
J3 -3 T <32 0
J4 2 T <32 0
D = dominant pass (P=positive, N=negative, T=ZeroTree, IZ=Izolated zero)
S = subordinate pass;
(R = back reconstructed value)
</pre>
==See also==
* [[Set
==References==
*{{cite Q|Q56883112}}
==External links==
{{
*{{cite web |url=http://www.polyvalens.com/blog/wavelets/ezw/ |title=EZW encoding |author=Clemens Valens |date=2003-08-24 |archive-url=https://web.archive.org/web/20090203181451/http://pagesperso-orange.fr/polyvalens/clemens/ezw/ezw.html |archive-date=2009-02-03 |url-status=live }}
{{Compression methods}}
[[Category:Image compression]]
[[Category:Trees (data structures)]]
[[Category:Lossy compression algorithms]]
[[Category:Data compression]]
|