On Mon, 20 Aug 2007, Kostya wrote: > On Mon, Aug 20, 2007 at 02:46:54PM +0200, Michael Niedermayer wrote: > >> your code looks odd >> that what you call RV40_MB_B_INTERP looks like DIRECT, that what you call >> direct looks like bidirectional >> >> direct uses the motion vectors from another frame (not the surrounding >> blocks) >> (that is in early h264 and mpeg4 later h264 can use the surrounding blocks >> too IIRC) > > Well, here's what I know: > Both interpolated and direct(or bidirectional) are known to me since VC-1, > interpolated block just have zero motion vectors and acts as skip type block.
direct != bidirectional > Motion vectors on B-frames are predicted only from other vectors on that frame > (and interpolated counts as no vectors). I've verified this on real data and > this scheme is correct. > > During motion compensation interpolated blocks (not sure about bidirectional) > reuse vectors from previous/next frame and even may perform 8x8 compensation > if previous frame has such partitioning. But they add vectors only for > compensation, actual value is not modified. I will try to implement this soon. In h264, the terms are: predicted: block contains 1 coded mv bidirectionally predicted: block contains 2 coded mvs direct: block contains no coded mvs, instead 1 or 2 mvs are derived from neighboring blocks (can be spatial or temporal neighbors). skip: a direct block that also has no nonzero dct coefficients. --Loren Merritt _______________________________________________ FFmpeg-soc mailing list [email protected] http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
