Hi kenter,<br><br>When I reading the x264 code, I find the same thing as you mentioned. Here is my thinking of this problem.<br><br>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.<br><br>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.<br><br>Hope this can help.<br><br>Best Regards,<br>Siping<br><br><blockquote style="padding-left: 5px; margin-left: 5px; border-left: 2px solid rgb(160, 198, 229); margin-right: 0pt;">-----Original E-mail-----<br>
<b>From:</b> kenter <<a href="mailto:kenter83@gmail.com">kenter83@gmail.com</a>><br>
<b>Sent Time:</b> 2010-3-19 14:57:24<br>
<b>To:</b> "Mailing list for x264 developers" <<a href="mailto:x264-devel@videolan.org">x264-devel@videolan.org</a>><br>
<b>Cc:</b> <br>
<b>Subject:</b> [x264-devel] Question about interpolate<br><br><div>Hi,</div>
<div> I have a question about interpolation. It seems <em>x264_frame_filter</em> 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 <em>x264_frame_filter</em> will interpolate (W+10*2)*(H+8*2) sized region and in <em>x264_frame_expand_border_filtered</em>, only (W+4*2)*(H+8*2) sized region will be choosed as "right" and leave other region to padding.</div>
<div> 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.</div>
<div> </div>
<div>Thanks</div>
</blockquote><br><span></span>