[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