Misc Codec Questions....

"Sebastien St-Laurent" <[email protected]> Mon, 20 May 2002 08:25:41 -0700
Newsgroups gmane.comp.multimedia.ogg.tarkin.devel
Message-ID <004701c20012$9a6a8a40$0100000a@olivert>
Hi.

Recently i'v started to develop my own wavelet video codec (as a part
time/hobby thing). So i had a few questions/ideas to discuss and i though
this would be a good place.

First of all, what is the design philosophy behind the Tarkin codec. By this
i mean, is it targeted to be a totally open DivX replacement, to be a fast
codec,... In other words, what is the aim, compression ratio or speed?

Now, back to my codec... Currenly my codec is essentially a still frame
sequence coder. I use the wavelet refered to as the Two-Six Wavelet. The
wavelet is applied to the YUV color and then some basic quantization occurs
to bring all decompositions to the same perceptual level (essentialy based
on tests i did to see how much error can be introduced in each sub-band
without it being noticable). Once this is done, i encode the bits using a
modified SPHIT coder and a simple context model to encode de redundancy in
the SPHIT model.

Currently, i can acheive pretty good compression at ~1bpp. But i think it
could be better. Oh, and i guess i should mention that my codec is intended
for usage in video games for their movie playback so my target is decent
compression at a low run-time decoding cost.

The first issues is related to the wavelet transform, i'v initially chose
the TS (Two-Six) wavelet because i had read that if preforms fairly well in
terms of  image compression and it is very inexpensive to compute
(especially when compared to some other wavelets used in image like the 9/7
Daub.). Also, this wavelet was easy to implement in terms of the lifting
scheme with only adds and shifts, which seemed even better thinking of
future optimizations. Recently, after some more reading, i'v stumbled uppon
a document (don't remember the link) which compared different wavelets in
terms of their computational complexity VS image compression efficiency.
From this document the (2,2) wavelet (aka: 5/3) came out winner in terms of
the fastest one with the best compression. So i'v decided to write an
implementation of it....

Turns out that in my coder it seems to be preforming pretty poorly,
requireing lots more bits to acheive roughly the same quality. One thing i'v
notived... With the TS transform, for each set of treansform i do, the
average component gains one bit. This is understandable considering the fact
that the wavelet does not have the normalization factor (to keep it integer)
and this is compensated for in the inverse transform. With the
implementation of the (2,2) integer wavelet i have, there is no
normalization factor either. However, it seems like there is no bit growth.
I'm thinking this is the reason why it is performing worse with the (2,2)
because my bitcoder was written with the bit growth behavior of the TS
wavelet.

First of all, can someone confirm if the behavior i'm getting with the (2,2)
wavelet is the same (i,e: No bit growth)? Also, anybody have a clue as to
why compression using the (2,2) seems to be behaving worse than with the TS?

Second question... Anybody know of any bit coding scheme that is more memory
efficient and less computationally expensive than EZW or SPHIT? I don't
really care of the encode time but the SPHIT architecture seems like it
might be a bottleneck on the decode time also...

Third and final question for now... Anybody have reference of good wavelet
motion compensation? I'v found a few ones so far but not much. I somehow
beleive that doing the motion in the wavelet domain would yield much better
results than in the image space. First, you can do a multi-resolution motion
estimation. Second, i was considering doing some simple mo-comp then coding
the residuals with that ever i had left of my bit budget. And somehow i
think this would work better in wavelet domain because mo-comp in image
space could lead to discontinuities in the image which would lead to more
non-zero coeficients in the transform.

Anyways, any help/pointers will be greatly appreciated...
	Sebastien St-Laurent


--- >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.