[x264-devel] Re: Explanation request for ME
Loren Merritt
lorenm at u.washington.edu
Fri May 12 21:22:51 CEST 2006
On Fri, 12 May 2006, Teemu Tuominen wrote:
> I just quikly looked at the ME implementation in x264. It's quite
> understandable code, i would say. However, it would be very nice if someone
> could explain if there is some tricks beneath or above the search pattern
> code. If we leave subpel search out of the question, can fullsearch be
> comparable with other implementations. I am considering to use x264 in small
> ME testing environment and i would be pleased for any support.
>
> Here are some questions that i firstly wondered...
> SAD-functions seemed not to use early break feature.
MMX/SSE2 SAD is fast. Putting a branch in the middle makes it slower.
> Does x264 use some pixel desimation method for SAD.
No.
> In which phase is the interpolation done for subpel search.
Immediately after encoding a frame, we perform all the half-pixel
interpolations and save the results. Subpel search then reads the
interpolated pixels from there, and may average 2 of them to get a
quarter-pixel offset.
See common/mc.c:x264_frame_filter() (which also inits ESA).
> Is there any upper-level predictors for motion field that leaves BMA
> entirely out for certain blocks. In other words, how precisely can
> x264 cover the error surface if FS comparison is implemented.
Fast P-skip and B-skip will omit BMA (and all other decisions too) if the
Skip block type has sufficiently low residual. You can disable them in
x264 (--no-fast-pskip --subme=6 --b-rdo), in which case BMA is performed
on all blocks.
> Is the implemented ESA comparable with fullsearch at fullpel-level?
"exhaustive search" == "full search".
And successive elimination doesn't change the results at all, it's just
faster.
--Loren Merritt
--
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html
More information about the x264-devel
mailing list