[XviD-devel] GME and Block ME

Michael Militzer michael at xvid.org
Tue Apr 22 16:18:32 CEST 2003


Hi,

Quoting Christoph Lampert <chl at math.uni-bonn.de>:

> On Fri, 18 Apr 2003, Radek Czyz wrote:
> 
> > Hi everyone,
> > 
> > gruel wrote:
> > > Currently, I "solve" this by using _two_ block searches, one
> pre-analysis
> > > before GME and the ordinary after GME. I can't just use MEAnalysis (for
> > > B-frame decision) as pre-analysis, because it's too coarse. I need at
> > > least 16x16 blocks in halfpel resolution, so just ordinary ME, except
> for
> > > 4MV. With MEAnalysis this make 3 step of block ME... suboptimal!
> > 
> > > Is anyone interested in a small discussion about how to get rid of this
> > > double/trippe work? Syskin perhaps?
> > 
> > After one day of thinking, I really didn't come up with anything...
> > So let me just ask you, how bad MEAnalysis is? I never checked it ;)
> > How bad would it be to follow it with halfpel refinement? This can
> > only be done in FrameCodeP, because we don't have halfpel-filtered
> > pictures available during p/b/i decision. We could also peform the
> > motion search for all edge macroblocks, because we have edges then (we
> > ignore all edge MBs during decision, not only because edges are not
> > available, but also because it could be difficult to find good motion
> > for them for example in case of camera panning).
> 
> 32x32 blocks is too coarse (I believe), at least in low sizes (352x288 and
> below). I rather think we should do a good MEAnalysis and reduce later ME
> instead of doing a coarse MEAnalysis and full ME. 

ok, unfortunately I'm lacking a deeper understanding of GMC so I can't help you 
here. Anyways, 3x ME (2x Block- and 1x GME) to allow GMC sounds not really 
optimal...

I wonder why do we perform this coarse MEAnalysis at all? Couldn't we simply do 
a full and precise ME step including halfpel instead? So in case we'd decide 
the current frame should become a P-frame, we would be finished already without 
any additional work needed. In case we code the frame as b-frame, we can store 
the results and then don't need to perform forward ME anymore when coding the b-
frame.

BTW: gruel, why do you need a precise ME, then GME, followed again by precise 
ME? Why is precise ME + GME no sufficient? Wouldn't it be possible to somwhow 
merge the steps or at least to somehow speed-up the final block search?

Would it be sufficient to first do a precise ME (but without refinement), then 
GME, then do an additional search using the GME result as predictor and finally 
perform the refinement step?

bye,
Michael


More information about the XviD-devel mailing list