Re: Advanced Motion Compensation for sub 500kbit DVD Video
Ray Heasman <[email protected]> 19 Jul 2002 15:09:24 -0700
| Newsgroups | gmane.comp.multimedia.ogg.tarkin.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Dan, On Fri, 2002-07-19 at 14:30, dan miller wrote: > --- Lourens Veen <[email protected]> wrote: > ...[our triangle-based codec] > > > 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. > > The problem was subtle, and to be fair we gave up on > it before truly completing the research. It seems to > me that our problems started once we tried to compute > the new image off of the previously reconstructed > image, as opposed to just morphing a single image over > several frames. The slightest error in the motion > vectors would multiply, creating a 'jiggling' effect. > It didn't seem likely that residual coding was going > to be very beneficial with this sort of instability. > Then again, we barely scratched the surface of what > you could try. This problem is definitely solvable. My codec (OIC, as yet unreleased) uses dense motion fields and continuously warps frames. I have some careful processing built into my motion field generator. It was quite difficult to do it well and fastish, but I have something that is "good enough" (ie. No visible artifacts and a compression rate of about 3 frames/sec on a 1GHz machine without any SIMD tricks). I tend to look at the motion vectors as a sort of phase modulation, and residual error removal as an AM operation. I can use the PM to generate sharp edges using fairly smooth motion fields, and this is where I win. There is some "wibbling" but I can control this by controlling the frequency content of my motion fields. The residual error removal is usually pretty lean on bits. I'm not sure if I'll be able to hit 500kbit/s average for DVD frames. I guess I'll just have to wait and see. My implementation is entirely ad hoc and pragmatic, and I suggest that others take the same approach. Try, try, fiddle, tweak, try again... :-) I'll be releasing full source when I am near version 1.0, but I have a day job too, and the current code is undergoing major changes. :-) Best of luck, Ray --- >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.