[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