[XviD-devel] Quality optimization
skal
xvid-devel@xvid.org
23 Jan 2003 19:03:48 +0100
On Thu, 2003-01-23 at 17:11, Christoph Lampert wrote:
> On 23 Jan 2003, skal wrote:
> > > * I'm sure that GMC can do better than our current version, in particular
> > > GME and mode decision.
> > >
> >
> > I've looked at your GME code (yeah, I couldn't help:) and
> > have some question:
> >
> > a) Where is GMC-accuracy taken into account?
>
> it isn't.
>
> > It should change the scaling of your solution...
>
> Errr, should it? I don't think so. Values for sprite reference points are
> (as far as I know) always stored in halfpel units, even in 16th-pel mode.
Oh yeah, you're right: accuracy is only used during the
bilinear interpolation. It's a pity, for sure. Why didn't
the decide that interpolation should be done at 1/16th pel
resolution, period. I don't quite see the need for that
(useless) parameter, if we can't tune the warp points
precision with...
> It's not possible to have e.g. 1/16th pel translation. Which is a pity,
> btw. except for that with 1 warppoint translational (as DIVX does), we
> will be able to able to re-use halfpel images and don't have to do
> "real" GMC decoding.
>
> > c) It's somehow agreed in the literature that scaling the
> > x-y coords to [-1,1] range is vital to ensure numerical
> > stability of the computations (or maybe this was only
> > required for the Kalman-filtering ... non linear stuff...
> > or maybe for the 4-pts case... dunno)
>
> Hm, I can't really see why at the moment. Matrix values are in the range
> of 10^7 and 10^{-7} and can (and will) easily be reduced by
> another factor of 64 or so... Maybe if I had to invert the 4x4 or 6x6
> matrix using numerical calculations, stability would become crucial,
> but I have a closed formula for the inverse, so it's just a few float
> operations per entry per iteration.
hmm... in our case, you're right, it shouldn't matter.
It's in fact more problematic for genuinely ill-defined
problem, see for instance:
http://citeseer.nj.nec.com/luong95fundamental.html
hopefully, 4-warp points is not used for sprite-GMC :)
bye
Skal