[x264-devel] Question about interpolate

SiPing Tao anhuitsp at mail.ustc.edu.cn
Mon Mar 22 03:02:27 CET 2010


Hi kenter,

When I reading the x264 code, I find the same thing as you mentioned. Here is my thinking of this problem.

x264 interpolates (W+8*2)*(H+8*2) region, it's true, this is because only W*H region is NOT enough. H.264/AVC standard defines the reference picture interpolation process where padding samples also need to be interpolated.

However, if the six input samples are the same value T, sub-pixel interpolation result will be T too, so we don't need to interpolate the whole padding edge, and simple expanding is OK for some samples. I think this is why x264 interplolates (W+8*2)*(H+8*2) region, and expands the rest of the samples.

Hope this can help.

Best Regards,
Siping

-----Original E-mail-----
From: kenter <kenter83 at gmail.com>
Sent Time: 2010-3-19 14:57:24
To: "Mailing list for x264 developers" <x264-devel at videolan.org>
Cc:
Subject: [x264-devel] Question about interpolate


Hi,
    I have a question about interpolation. It seems x264_frame_filter will interpolate one MB line for each invoke. However, I find it also interp "margin" data as well. Let's suppose the dim of image is W*H and margin is 32 for both x and y direction. The x264_frame_filter  will interpolate (W+10*2)*(H+8*2) sized region and in x264_frame_expand_border_filtered, only (W+4*2)*(H+8*2) sized region will be choosed as "right" and leave other region to padding.
    My question is that why we interp so much data? Firstly, we can just interpolate W*H sized image, this can save some computing power. Secondly, it seems the excrescent interpolate of data out of image makes some difference to it's edge.
 
Thanks

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x264-devel/attachments/20100322/b2175063/attachment.htm>


More information about the x264-devel mailing list