[Ffmpeg-devel] Motion estimation related refactoring (was: Native H.264 encoder)
Michael Niedermayer
michaelni
Thu Jan 18 18:17:09 CET 2007
Hi
On Thu, Jan 18, 2007 at 04:59:19PM +0100, Panagiotis Issaris wrote:
[...]
> > > Or should a new indepent context be created, that is not specific to
> > > mpeg (and related codecs) encoding but contains enough info to allow
> > > motion estimation? But, ... I'd guess the result would be nearly the
> > > same as moving all the needed stuff to MotionEstContext, right?
> >
> > thats an option too, but one very important thing is that the context
> > can be accessed without an additional pointer dereference (like AVFrame)
> > what i mean is that the common variables like width/height/... could
> > be in a common context which is at the begin of MotionEstContext and
> > MotionEstContext is part of MpegEncContext and SnowContext
> Hmm... I am not sure I understand the above correctly. Are you
> suggesting something like this?
>
> struct SomeNewContext {
> int width;
> ...
> };
>
> struct MotionEstContext {
> SomeNewContext sn;
> ...
>
> };
>
> struct MpegEncContext { MotionEstContext me; ... };
> struct SnowContext { MotionEstContext me; ... };
>
>
> Or do imply moving all the fields needed for motion estimation out of
> MpegEncContext into MotionEstContext (at the top)?
>
> struct MotionEstContext {
> /* new MotionEstContext fields */
> int width;
> ...
> /* older MotionEstContext fields */
> ...
> };
>
> struct MpegEncContext { MotionEstContext me; ... };
> struct SnowContext { MotionEstContext me; ... };
i meant something like:
#define ME_FIELDS\
int width;\
int height;\
...
struct MotionEstContext {
ME_FIELDS
}
struct SnowContext {
ME_FIELDS
...
}
struct MpegEncContext {
ME_FIELDS
...
}
but the more i think about it the less i like it ...
the problem with your suggestion above is that it would result in code like
s.me.width instead of s.width which is a big problem readability wise ...
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I know you won't believe me, but the highest form of Human Excellence is
to question oneself and others. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070118/08d0e882/attachment.pgp>
More information about the ffmpeg-devel
mailing list