[XviD-devel] Subpelrefine_Fast

Radek Czyz syskin at ihug.com.au
Fri Sep 12 23:48:04 CEST 2003


Hi everyone.

I've been looking at new Subpelrefine_Fast() and I have some
questions. Isibaar, I hope you'll find time to answer them :)

First - do you think the idea will be useful for halfpel-refinement?
It looks like halfpel-ready, but you only use it for qpel.
The way I see it, the total number of checks will actually increase
for halfpel... Am I wrong?

Second - a bug? You seem to check 8 halfpel positions first, to find
the "second best" vector among them. Makes sense but...
    second_best = *data->currentMV;
As long as data->qpel_precision is set (and it is), CheckCandidates
will not change data->currentMV, but data->currentQMV instead.

As a result, it just can't work correctly - or I missed something ;)


The _fast idea is very good, and will be even more useful for VHQ
refinement and b-frame refinement. To implement them, I plan to change
it a bit. There will only be one CheckCandate, but the information
about "second best" etc will only be stored in memory if
qpel_precision is active. Should work as expected, and not be too
slow.
I'll combine it with halfpixel refinement to save some extra halfpixel
checkcandidates (from 3 to 8).

BTW I kinda fear about the complexity of CheckCandidates... On
average, CheckCandidate16 takes about 94 cpu cycles. That doesn't
include functions it calls (like sad16v). Do you think it's slow?


Radek



More information about the XviD-devel mailing list