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.