Re: Advanced Motion Compensation for sub 500kbit DVD Video
Lourens Veen <[email protected]> Fri, 19 Jul 2002 17:49:01 +0200
| Newsgroups | gmane.comp.multimedia.ogg.tarkin.devel |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Friday 19 July 2002 16:47, dan miller wrote: > not to pop any bubbles, but -- Don't worry. Poppable bubbles are no good anyway, and sharing experience only save work and time. There's no point in re-inventing the wheel (although there seems to be a point in patenting the wheel, but that's a wholly different issue). > we went down a substantially similar path several > years ago (triangular > MV's, texture compression, feature matching, etc). As > a model for generating images with a > small number of bits, it's very seductive. One can > imagine encodings that > are extremely economical. Yep. > I think if you pursue this, you will find that the > central issue is how to > encode the material. it proves to be surprisingly > difficult to generate > watchable 'motion fields' in this manner. The central > problem seemed to > us that when you try to build a motion field (which is > essentially what you are doing with feature > recognition & triangulation), you have a global > optimization problem. Any instability anywhere in the > frame can easily spread and make the other parts of > the frame look bad. The practical result is that, > with every algorithm we came up with to create the > field from source material, the resulting compression > had a very wierd 'warbly' look to it, as if you were > looking at the image through an old piece of glass > with irregular thickness, or a funhouse mirror. Hmm, interesting. What did the motionfields look like, were they correct in the sense that the pixels in one frame moved the way they did in the movie? I can see this going wrong if the wrong pixels are matched, but not if the matching is correct. Wait a second, I can see it going wrong. If the surface the triangle is mapped to isn't really flat, the linear interpolation across the traingle is going to be incorrect. You'd have to have some sort of displacement mapping for the texture instead of only the motion information from the traingles vertices. I think :-). Comments? > In stark contrast, the standard technique of > rectilinear tesselation (typically 4x4 to 16x16 > blocks), where each motion vector is local to the > block, followed by DCT type transforms, which are also > strictly local, has the advantage that the problem now > becomes a purely local optimization: for each block in > the image, find the best combination of motion > prediction and residual correction, using RD > optimization theory, or a hacked bunch of thresholds, > whatever. In any case, the result you get can have > artifacts (as we all know), but they tend to be > strictly local artifacts; a mistake coding one block > has no negative effect on any other blocks (that's not > 100% true in some of the more sophisticated, > context-sensitive algorithms such as H.26L, but it's > close enough). Errors do not propagate; and the > problem is conveniently broken down into modular, > disconnected pieces. I see. But it's rather hard to extrapolate motion vectors if they're jumping all over the place because there happened to be a better match somewhere else. Which potentially costs bits. Thanks for the warning anyway, I hadn't considered local vs. global issues yet. > None of this is meant to discourage the vibrant Tarkin > community from its ambitious goals; I in fact believe > an algorithm of this sort could be made to work. I > just hope by pointing out some existing results that I > can save someone a little time, or give some hints > about how to proceed. Vibrant? That may be a bit too optimistic :-). The way I see it is that with VP3 soon available, there's not really a 'market' for Tarkin unless it's substantially better than VP3, and other current codecs (someone once quipped "a movie on a zip-disk" and that's what I think Tarkin should aim for). I'm not quite sure where VP3 stands performance-wise, and from what I gather from the web it's not quite up to par with DivX, but it's a lot cheaper for sure, and with disk space in abundance the size difference only really matters in online distribution. There is OpenDivX, but that's not Free Software and also has patent issues, being an MPEG-4 encoder. So that's where something slightly better than VP3 would come in handy, but otherwise I don't think it would be that useful. Tarkin at the moment has been described by Monty as a research project, and that's what it is. I feel the goal should be to create a codec that is substantially better than anything currently available, which means we'll have to try new things (which we have to anyway to avoid patent problems). If something doesn't work, we simply have to try something else. Any help with figuring out what does and what doesn't work is very much appreciated, so keep 'em coming :-). Lourens - -- GPG public key: http://home.student.utwente.nl/l.e.veen/lourens.key -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE9ODUPvmNyqZHWDvURAgwxAJ9gn6zQ1ndNHP1+dbGUCfBZihNvkQCeNdeP ehLEsO9lYyc1ucbWd+qanyU= =6IPP -----END PGP SIGNATURE----- --- >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.