[XviD-devel] qpel+bframes

Michael Militzer xvid-devel@xvid.org
Wed, 20 Nov 2002 21:44:23 +0100


Hi,

----- Original Message -----
From: "Radek 'sysKin' Czyz" <radoslaw@syskin.cjb.net>
To: <xvid-devel@xvid.org>
Sent: Tuesday, November 19, 2002 2:19 PM
Subject: [XviD-devel] qpel+bframes


> Hi everyone.
> I've been working on qpel support for b-frames recently. I decided to
> commit the code a few moments ago.
>
> It's not perfect yet - for some reason, qpel refinement for
> interpolate mode increases filesize - there must be a bug. Commited
> code doesn't perform qpel refinement in interpolated searech just to
> be safe.
> The rest of the code looks ok - there may be (ie are) more bugs, but
> it seems so be stable. And looks very good, too.

good

> The search is very slow. I want to move from interpolation+sad to
> sadbi - that's the reason the interpolation is repeated in every qpel
> function instead of writing one interpolating function and just call
> it where it's needed.
> My next steps, apart from bug squashing, are to make the code shorter
> and faster.

well, sadbi only works if we keep the image based halfpel interpolation. Due
to the block boundary mirroring that is done during compensation, the 6tap
low-pass filter we're using for motion estimation is just an approximation.
Initially tests showed that the approximation is good, but there has been so
much changed in qpel behaviour since then, that I don't know if a
block-based approach might not yield in better quality now (this has to be
tested again). So I'd suggest you better don't make yourself too much work
by switching to sadbi before we aren't sure if we'll stay with image based
approximation or correct block-based interpolation in the future...

> Any comments?
>
> If you know what's it all about, I wouldn't mind if you looked for the
> bugs, too.
>
> Ah, and it would be nice if we had decoding for it ;>

I just uploaded qpel+bframes decoding support as well as some minor bframe
decoding fixes and speedups. Also qpel encoding should be noticably faster
now...

btw: while I was testing bframe decoding, I noticed that direct mode coded
objects seem to leave traces behind them (this is especially noticable with
higher quant values). Also interpolated mode introduces noise and the
reconstructed data looks somehow displaced along the y-axis.

I'm sure that this is no decoding problem (verified using fdam) and it
doesn't matter if qpel is switched on or not. So it's either a problem in me
or mc. Maybe the problems with interpolated mode + qpel are also caused by
this...

bye,
Michael