Copyright 1999 IEEE, Proceedings of DCC'99, Snowbird, March 1999


Fast, Modified Z-Coding of Wavelet Pyramids

William Lynch, Krasimir Kolarov, Bill Arrighi

Interval Research Corporation, 1801-C Page Mill Road, Palo Alto, CA 94304

(, )


This paper describes a fast, low-complexity, entropy efficient coder for wavelet pyramids. This coder approaches the entropy-limited coding rate of video wavelet pyramids, is fast in both hardware and software implementations, and has low complexity (no multiplies) for use in ASIC's. It consists of a modified Z-coder used to code the zero/non-zero significance function without adaptation. The wavelet pyramid is further sharpened by scaling to match the characteristics of the human visual system (HVS).

We derive the statistical characteristics of quantized wavelet pyramids from NTSC video viewed under standard conditions. These video pyramids have substantial runs of zeros and also substantial runs of non-zeros. To explore those we developed a modification of the Z-coder and explored an application of it to code zero vs. non-zero. Z-codecs have the advantage of a simple (no multiplies) and fast implementation combined with coding performance approximating that of an arithmetic codec.

The video wavelet pyramid coefficients, by block, were quantized to about 0.5 bits/pixel. About 85% of the wavelet coefficients are zero. The significance value of a coefficient is most likely to be the significance value of the preceding coefficient. Using this rule, 95% of the significance values are correctly predicted. There is an asymmetry in that a significant coefficient preceded by an insignificant coefficient is much more likely than an insignificant coefficient preceded by a significant one. An isolated significant coefficient embedded in a (fine subband) run of insignificant ones is much more likely than an isolated insignificant one in a (coarse subband) of significant ones.

Extending the preceding context to more than just the preceding coefficient does not qualitatively change the prediction but it does affect the probability of the significance of the next coefficient. We discovered that using 8 context states is sufficient.

The Modified Z-encoder that we developed is very simple:


if (bit = MPS and Z<) { A := Z; return; }

else {

if (Z>) { Z := Z/2+; }

if (bit = LPS) {

Zgtr := false;

while (A>0) {

if (A< and not Z< and Zgtr =false) { Zgtr := true;}

emit(floor(2A)); A := mod(2A, 1); Z := mod(2Z, 1); }

if (not Zgtr) {

A := 1-Z;

while (not A<) { emit(0); A := mod(2A, 1); } } }

else {

A := Z;

while (A>) { emit (1); A := mod(2A, 1); } } }

(LPS and MPS stand for least and most probable symbols resp. A is the normalized lower bound for the codeword. Z is the split point for the D -s in the z-coder.)

Our experiments showed that this coder compares favorably with straight arithmetic coding. Our encoder has significant speed advantage due to low cost implementation.

[1] L. Bottou, P.G. Howard and Y. Bengio, "The Z-coder Adaptive Coder", Proceedings of the Data Compression Conference, pp.13-22, Snowbird, Utah, March 1998.