Re: few technical questions

Maciek Urbanski <[email protected]> Tue, 18 Jun 2002 11:58:28 +0200
Newsgroups gmane.comp.multimedia.ogg.tarkin.devel
Message-ID <001a01c216ae$b287ccc0$24010a0a@limdul>
> Hmm, what you described here is only one step of the complete wavelet
> transform. What it does is indeed a separation of the data into two
> chunks, which may also be called the average section and the detail
> section (sums and diffs is ok, but blurs the interpretation of what is
> really happening).

I agree - I will call them "averages" and "detail" from now on.
...and I know it's only one step.

> A full wavelet transform iterates this: The average section is
> transformed again, so you end up with the unchanged detail of say Level
> J-1 (if original image has dimension of about 2^J) and then the averages
> and details of level J-2. And so on till Level K which may be 0. The
> number of subimages you get are (J-K+1)^d (here d(imension)=2), so you
> get 16 with three substeps. They have different sizes and most of them
> are not quadratic. Only if you stop after one substep, they are.

yup, that's wavelet ;-)

> The cool thing is that you can sort the coefficients by size, take as
> many of the largest ones as you want, and you are guaranteed that you
> have picked the right ones.
> I apologize if you know all this.

Don't mention it.

It seem, that little clarification is necessary.

Really, I know the principles of wavelet transform, and it can by expressed
(the principle) in warious ways. One of them is:
The 1D wavelet transform performed on 2D image in certain direction divides
signal (image) into two parts:
1) "averages" of signal in that direction
2) "detail" of signal in that direction

...and the key word is: "in that direction" ;-)

After vertical 1D pass, and horizontal 1D pass we end-up with one "averages"
section, and 3 "detail sections". But if you'll look closesy on the "detail"
parts you'll see there is a plenty of signal soherency to be exploited. Why
? Because vertical wavelet transform divided signal into 2 parts:
1) "averages" of signal in vertical direction
2) "detail" of signal in vertical direction
...the horizontal pass that followed divided signal 1) into:
1.1) "averages" of {"averages" of signal in vertical direction} in horizonal
direction
1.2) "detail" of {"averages" of signal in vertical direction} in horizontal
direction
...and signal 2) into:
2.1) "averages" of {"detail" of signal in vertical direction} in horizonal
direction
2.2) "detail" of {"detail" of signal in vertical direction} in horizontal
direction

Now, when you'll perform a wavelet transform on your favourite graphics tool
you'll see that in part 2.2) there is large signal strength in diagonal
axes. Try to perform a 1D wavelet transform on 2.2) part in diagonal
direction (left-top->right-bottom, followed by right-top->left-bottom), and
witness the energy compaction -).

I agree, the red-black wavelet transform would do the trick. In fact i'm
inwestigating it roght now. But red-black transform is hard to perform in
parallel, due to it's checkboard-interaved nature. The locality, and
isgnal-gathering properties are far superior than separable (orthogonal)
wavelet transform.



> The diagonals all have different lengths unless you continue them
> periodically. Is this intended (-> artefacts)? And I fear that you lose
> some approximation quality you get from a pure wavelet transform.

This is no problem. Width and height have different lengths on 99% of
images, and that's no problem, isn't it ?



> > In result we have 16 bands each with signal of different directionality.

Yup.

> I am positively curios how your method performs quality-wise against a
> three-level (or full) wavelet transform which also gets you 16 (or more)
> bands (and should be about equally fast) where you strictly go for
> coefficient size. Maybe better for diagonally dominant pictures and
> worse for vert/horiz symmetry (-> test examples)?


This approach would work good in wavelet transforms that shoud be performed
in parallel, but does not offer the perfect locality of red-black transform.
My current research focusses on building an adaptive red-black wavelet trans
form (look-up the adaprive wavelet transform (reduces ringing, better
preservation of shap features), and red-black trees), with different sizes
of "detail" kernel and fixed "averages" kernel. It's easily extendable into
3D wavelets (possibly motion-corrected).


Looking for further discusions.

Maciej

>
> Regards,
>
> Carsten
>
>
> --- >8 ----
> List archives:  http://www.xiph.org/archives/
> Ogg project homepage: http://www.xiph.org/ogg/
> To unsubscribe from this list, send a message to
'[email protected]'
> containing only the word 'unsubscribe' in the body.  No subject is needed.
> Unsubscribe messages sent to the list will be ignored/filtered.


--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to '[email protected]'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.