[FFmpeg-soc] [soc]: r1043 - rv40/rv40.c

Kostya kostya.shishkov at gmail.com
Tue Aug 21 09:37:17 CEST 2007


On Tue, Aug 21, 2007 at 01:18:46AM -0600, Loren Merritt wrote:
> 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.

The same here except that bidirectionally predicted is called direct and direct is
called interpolated. Terminology at its best.
 
> --Loren Merritt



More information about the FFmpeg-soc mailing list